refactor(treewide): format with alejandra
This commit is contained in:
		
							parent
							
								
									7fefb94400
								
							
						
					
					
						commit
						61cef505da
					
				
					 216 changed files with 5995 additions and 3969 deletions
				
			
		|  | @ -1,11 +1,11 @@ | |||
| { lib, config, ... }:  | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.cursor; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     home.pointerCursor = { | ||||
|       package = cfg.package; | ||||
|  | @ -16,4 +16,3 @@ in | |||
|     }; | ||||
|   }; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| {  | ||||
| { | ||||
|   imports = [ | ||||
|     ./fonts.nix | ||||
|     ./cursor.nix | ||||
|  |  | |||
|  | @ -1,21 +1,21 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.fonts; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     fonts.fontconfig.enable = true; | ||||
|     home.packages = [  | ||||
|     home.packages = [ | ||||
|       cfg.monospace.package | ||||
|       cfg.regular.package | ||||
| 
 | ||||
|       pkgs.noto-fonts | ||||
|       pkgs.noto-fonts-cjk | ||||
|       pkgs.noto-fonts-emoji | ||||
|    ]; | ||||
|     ]; | ||||
|   }; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,12 +1,15 @@ | |||
| { config, pkgs, inputs, lib, ... }: | ||||
| 
 | ||||
| let | ||||
|   inherit (inputs.nix-colors.lib-contrib { inherit pkgs; }) gtkThemeFromScheme; | ||||
| { | ||||
|   config, | ||||
|   pkgs, | ||||
|   inputs, | ||||
|   lib, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (inputs.nix-colors.lib-contrib {inherit pkgs;}) gtkThemeFromScheme; | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.gtk; | ||||
| in | ||||
| { | ||||
|   config = mkIf cfg.enable (rec { | ||||
| in { | ||||
|   config = mkIf cfg.enable rec { | ||||
|     gtk = { | ||||
|       enable = true; | ||||
|       font = { | ||||
|  | @ -15,7 +18,7 @@ in | |||
|       }; | ||||
|       theme = { | ||||
|         name = config.colorscheme.slug; | ||||
|         package = gtkThemeFromScheme { scheme = config.colorscheme; }; | ||||
|         package = gtkThemeFromScheme {scheme = config.colorscheme;}; | ||||
|       }; | ||||
|       iconTheme = { | ||||
|         name = "Papirus-Dark"; | ||||
|  | @ -30,6 +33,5 @@ in | |||
|         "Net/IconThemeName" = gtk.iconTheme.name; | ||||
|       }; | ||||
|     }; | ||||
|   }); | ||||
|   }; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,15 +1,16 @@ | |||
| { config, lib, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   config, | ||||
|   lib, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.qt; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     qt = { | ||||
|       enable = true; | ||||
|       style.name = "gtk2";  | ||||
|       style.name = "gtk2"; | ||||
|       platformTheme.name = "gtk2"; | ||||
|     }; | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,19 +1,23 @@ | |||
| { lib, config, inputs, pkgs, osConfig, ... }: | ||||
| let  | ||||
|   inherit (inputs.nix-colors.lib-contrib { inherit pkgs; }) nixWallpaperFromScheme; | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   inputs, | ||||
|   pkgs, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (inputs.nix-colors.lib-contrib {inherit pkgs;}) nixWallpaperFromScheme; | ||||
|   inherit (lib) mkDefault mkIf; | ||||
| 
 | ||||
|   monitors = osConfig.ooknet.host.hardware.monitors; | ||||
|   cfg = config.ooknet.wallpaper; | ||||
| in | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     ooknet.wallpaper.path = | ||||
|       let | ||||
|         largest = f: xs: builtins.head (builtins.sort (a: b: a > b) (map f xs)); | ||||
|         largestWidth = largest (x: x.width) monitors; | ||||
|         largestHeight = largest (x: x.height) monitors; | ||||
|       in | ||||
|     ooknet.wallpaper.path = let | ||||
|       largest = f: xs: builtins.head (builtins.sort (a: b: a > b) (map f xs)); | ||||
|       largestWidth = largest (x: x.width) monitors; | ||||
|       largestHeight = largest (x: x.height) monitors; | ||||
|     in | ||||
|       mkDefault (nixWallpaperFromScheme | ||||
|         { | ||||
|           scheme = config.colorscheme; | ||||
|  | @ -23,4 +27,3 @@ in | |||
|         }); | ||||
|   }; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,19 +1,20 @@ | |||
| { lib, config, osConfig, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkDefault; | ||||
|   admin = osConfig.ooknet.host.admin; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   programs.home-manager.enable = true; | ||||
|   systemd.user.startServices = "sd-switch"; | ||||
|    | ||||
| 
 | ||||
|   home = { | ||||
|     username = admin.name; | ||||
|     homeDirectory = "/home/${config.home.username}"; | ||||
|     stateVersion = mkDefault "22.05"; | ||||
|     sessionPath = [ "${config.home.homeDirectory}/.local/bin" ]; | ||||
|     sessionPath = ["${config.home.homeDirectory}/.local/bin"]; | ||||
|     sessionVariables = { | ||||
|       TZ = "Pacific/Auckland"; | ||||
|     }; | ||||
|  |  | |||
|  | @ -1,7 +1,5 @@ | |||
| { pkgs, ... }: | ||||
| 
 | ||||
| { | ||||
|   home.packages = [ pkgs.xdg-utils ]; | ||||
| {pkgs, ...}: { | ||||
|   home.packages = [pkgs.xdg-utils]; | ||||
|   xdg.mimeApps = { | ||||
|     enable = true; | ||||
|   }; | ||||
|  |  | |||
|  | @ -1,6 +1,4 @@ | |||
| { config, ... }: | ||||
| 
 | ||||
| { | ||||
| {config, ...}: { | ||||
|   xdg = { | ||||
|     enable = true; | ||||
|     configHome = "${config.home.homeDirectory}/.config"; | ||||
|  |  | |||
|  | @ -1,17 +1,19 @@ | |||
| { inputs, config, pkgs, lib, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   inputs, | ||||
|   config, | ||||
|   pkgs, | ||||
|   lib, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (config) colorscheme; | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.editor.helix; | ||||
|   console = config.ooknet.console; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   imports = [ | ||||
|     ./languages.nix | ||||
|   ]; | ||||
|    | ||||
| 
 | ||||
|   config = mkIf (cfg.enable || console.editor == "helix") { | ||||
|     programs.helix = { | ||||
|       enable = true; | ||||
|  | @ -49,9 +51,9 @@ in | |||
|             select = "underline"; | ||||
|           }; | ||||
|           statusline = { | ||||
|             left = [ "mode" "spinner" ]; | ||||
|             center = [ "file-name" ]; | ||||
|             right = [ "diagnostics" "selections" "position" "file-encoding" "file-line-ending" "file-type" ]; | ||||
|             left = ["mode" "spinner"]; | ||||
|             center = ["file-name"]; | ||||
|             right = ["diagnostics" "selections" "position" "file-encoding" "file-line-ending" "file-type"]; | ||||
|           }; | ||||
|           lsp = { | ||||
|             display-messages = true; | ||||
|  | @ -64,7 +66,7 @@ in | |||
|           W = ":set whitespace.render none"; | ||||
|         }; | ||||
|       }; | ||||
|       themes = import ./theme.nix { inherit colorscheme; }; | ||||
|       themes = import ./theme.nix {inherit colorscheme;}; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -1,12 +1,13 @@ | |||
| { pkgs, lib, config, ... }:  | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   pkgs, | ||||
|   lib, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf getExe; | ||||
|   cfg = config.ooknet.editor.helix; | ||||
|   console = config.ooknet.console; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (cfg.enable || console.editor == "helix") { | ||||
|     programs.helix.languages = { | ||||
|       language = let | ||||
|  |  | |||
|  | @ -1,19 +1,21 @@ | |||
| 
 | ||||
| { colorscheme }: { | ||||
| {colorscheme}: { | ||||
|   "${colorscheme.slug}" = { | ||||
|     palette = builtins.mapAttrs (_name: value: "#${value}") colorscheme.colors; # Add leading '#' | ||||
|     "attributes" = "base09"; | ||||
|     "comment" = { fg = "base03"; modifiers = [ "italic" ]; }; | ||||
|     "comment" = { | ||||
|       fg = "base03"; | ||||
|       modifiers = ["italic"]; | ||||
|     }; | ||||
|     "constant" = "base09"; | ||||
|     "constant.character.escape" = "base0C"; | ||||
|     "constant.numeric" = "base09"; | ||||
|     "constructor" = "base0D"; | ||||
|     "debug" = "base03"; | ||||
|     "diagnostic" = { modifiers = [ "underlined" ]; }; | ||||
|     "diagnostic.error" = { underline = { style = "curl"; }; }; | ||||
|     "diagnostic.hint" = { underline = { style = "curl"; }; }; | ||||
|     "diagnostic.info" = { underline = { style = "curl"; }; }; | ||||
|     "diagnostic.warning" = { underline = { style = "curl"; }; }; | ||||
|     "diagnostic" = {modifiers = ["underlined"];}; | ||||
|     "diagnostic.error" = {underline = {style = "curl";};}; | ||||
|     "diagnostic.hint" = {underline = {style = "curl";};}; | ||||
|     "diagnostic.info" = {underline = {style = "curl";};}; | ||||
|     "diagnostic.warning" = {underline = {style = "curl";};}; | ||||
|     "diff.delta" = "base09"; | ||||
|     "diff.minus" = "base08"; | ||||
|     "diff.plus" = "base0B"; | ||||
|  | @ -23,49 +25,114 @@ | |||
|     "info" = "base0D"; | ||||
|     "keyword" = "base0E"; | ||||
|     "label" = "base0E"; | ||||
|     "markup.bold" = { fg = "base0A"; modifiers = [ "bold" ]; }; | ||||
|     "markup.bold" = { | ||||
|       fg = "base0A"; | ||||
|       modifiers = ["bold"]; | ||||
|     }; | ||||
|     "markup.heading" = "base0D"; | ||||
|     "markup.italic" = { fg = "base0E"; modifiers = [ "italic" ]; }; | ||||
|     "markup.italic" = { | ||||
|       fg = "base0E"; | ||||
|       modifiers = ["italic"]; | ||||
|     }; | ||||
|     "markup.link.text" = "base08"; | ||||
|     "markup.link.url" = { fg = "base09"; modifiers = [ "underlined" ]; }; | ||||
|     "markup.link.url" = { | ||||
|       fg = "base09"; | ||||
|       modifiers = ["underlined"]; | ||||
|     }; | ||||
|     "markup.list" = "base08"; | ||||
|     "markup.quote" = "base0C"; | ||||
|     "markup.raw" = "base0B"; | ||||
|     "markup.strikethrough" = { modifiers = [ "crossed_out" ]; }; | ||||
|     "markup.strikethrough" = {modifiers = ["crossed_out"];}; | ||||
|     "namespace" = "base0E"; | ||||
|     "operator" = "base05"; | ||||
|     "special" = "base0D"; | ||||
|     "string" = "base0B"; | ||||
|     "type" = "base0A"; | ||||
|     "ui.background" = { bg = "base00"; }; | ||||
|     "ui.bufferline" = { fg = "base04"; bg = "base00"; }; | ||||
|     "ui.bufferline.active" = { fg = "base00"; bg = "base03"; modifiers = [ "bold" ]; }; | ||||
|     "ui.cursor" = { fg = "base04"; modifiers = [ "reversed" ]; }; | ||||
|     "ui.cursor.insert" = { fg = "base0A"; modifiers = [ "underlined" ]; }; | ||||
|     "ui.cursor.match" = { fg = "base0A"; modifiers = [ "underlined" ]; }; | ||||
|     "ui.cursor.select" = { fg = "base0A"; modifiers = [ "underlined" ]; }; | ||||
|     "ui.cursorline.primary" = { fg = "base05"; bg = "base01"; }; | ||||
|     "ui.gutter" = { bg = "base00"; }; | ||||
|     "ui.help" = { fg = "base06"; bg = "base01"; }; | ||||
|     "ui.linenr" = { fg = "base03"; bg = "base00"; }; | ||||
|     "ui.linenr.selected" = { fg = "base04"; bg = "base01"; modifiers = [ "bold" ]; }; | ||||
|     "ui.menu" = { fg = "base05"; bg = "base01"; }; | ||||
|     "ui.menu.scroll" = { fg = "base03"; bg = "base01"; }; | ||||
|     "ui.menu.selected" = { fg = "base01"; bg = "base04"; }; | ||||
|     "ui.popup" = { bg = "base01"; }; | ||||
|     "ui.selection" = { bg = "base02"; }; | ||||
|     "ui.selection.primary" = { bg = "base02"; }; | ||||
|     "ui.statusline" = { fg = "base0B"; bg = "base02"; }; | ||||
|     "ui.statusline.inactive" = { bg = "base01"; fg = "base02"; }; | ||||
|     "ui.statusline.insert" = { fg = "base00"; bg = "base0B"; }; | ||||
|     "ui.statusline.normal" = { fg = "base00"; bg = "base04"; }; | ||||
|     "ui.statusline.select" = { fg = "base00"; bg = "base0E"; }; | ||||
|     "ui.background" = {bg = "base00";}; | ||||
|     "ui.bufferline" = { | ||||
|       fg = "base04"; | ||||
|       bg = "base00"; | ||||
|     }; | ||||
|     "ui.bufferline.active" = { | ||||
|       fg = "base00"; | ||||
|       bg = "base03"; | ||||
|       modifiers = ["bold"]; | ||||
|     }; | ||||
|     "ui.cursor" = { | ||||
|       fg = "base04"; | ||||
|       modifiers = ["reversed"]; | ||||
|     }; | ||||
|     "ui.cursor.insert" = { | ||||
|       fg = "base0A"; | ||||
|       modifiers = ["underlined"]; | ||||
|     }; | ||||
|     "ui.cursor.match" = { | ||||
|       fg = "base0A"; | ||||
|       modifiers = ["underlined"]; | ||||
|     }; | ||||
|     "ui.cursor.select" = { | ||||
|       fg = "base0A"; | ||||
|       modifiers = ["underlined"]; | ||||
|     }; | ||||
|     "ui.cursorline.primary" = { | ||||
|       fg = "base05"; | ||||
|       bg = "base01"; | ||||
|     }; | ||||
|     "ui.gutter" = {bg = "base00";}; | ||||
|     "ui.help" = { | ||||
|       fg = "base06"; | ||||
|       bg = "base01"; | ||||
|     }; | ||||
|     "ui.linenr" = { | ||||
|       fg = "base03"; | ||||
|       bg = "base00"; | ||||
|     }; | ||||
|     "ui.linenr.selected" = { | ||||
|       fg = "base04"; | ||||
|       bg = "base01"; | ||||
|       modifiers = ["bold"]; | ||||
|     }; | ||||
|     "ui.menu" = { | ||||
|       fg = "base05"; | ||||
|       bg = "base01"; | ||||
|     }; | ||||
|     "ui.menu.scroll" = { | ||||
|       fg = "base03"; | ||||
|       bg = "base01"; | ||||
|     }; | ||||
|     "ui.menu.selected" = { | ||||
|       fg = "base01"; | ||||
|       bg = "base04"; | ||||
|     }; | ||||
|     "ui.popup" = {bg = "base01";}; | ||||
|     "ui.selection" = {bg = "base02";}; | ||||
|     "ui.selection.primary" = {bg = "base02";}; | ||||
|     "ui.statusline" = { | ||||
|       fg = "base0B"; | ||||
|       bg = "base02"; | ||||
|     }; | ||||
|     "ui.statusline.inactive" = { | ||||
|       bg = "base01"; | ||||
|       fg = "base02"; | ||||
|     }; | ||||
|     "ui.statusline.insert" = { | ||||
|       fg = "base00"; | ||||
|       bg = "base0B"; | ||||
|     }; | ||||
|     "ui.statusline.normal" = { | ||||
|       fg = "base00"; | ||||
|       bg = "base04"; | ||||
|     }; | ||||
|     "ui.statusline.select" = { | ||||
|       fg = "base00"; | ||||
|       bg = "base0E"; | ||||
|     }; | ||||
|     "ui.text" = "base05"; | ||||
|     "ui.text.focus" = "base05"; | ||||
|     "ui.virtual.indent-guide" = { fg = "base03"; }; | ||||
|     "ui.virtual.ruler" = { bg = "base01"; }; | ||||
|     "ui.virtual.whitespace" = { fg = "base01"; }; | ||||
|     "ui.window" = { bg = "base01"; }; | ||||
|     "ui.virtual.indent-guide" = {fg = "base03";}; | ||||
|     "ui.virtual.ruler" = {bg = "base01";}; | ||||
|     "ui.virtual.whitespace" = {fg = "base01";}; | ||||
|     "ui.window" = {bg = "base01";}; | ||||
|     "variable" = "base08"; | ||||
|     "variable.other.member" = "base08"; | ||||
|     "warning" = "base09"; | ||||
|  |  | |||
|  | @ -1,16 +1,19 @@ | |||
| { config, lib, inputs, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.editor.nvim; | ||||
|   console = config.ooknet.console; | ||||
| 
 | ||||
|   ookvim = inputs.ookvim.packages.${pkgs.system}.default; | ||||
| in | ||||
|    | ||||
| { | ||||
|    | ||||
|   config, | ||||
|   lib, | ||||
|   inputs, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   inherit (config.ooknet) console; | ||||
| 
 | ||||
|   cfg = config.ooknet.editor.nvim; | ||||
| 
 | ||||
|   ookvim = inputs.ooks-vim.packages.${pkgs.system}.ooks-vim; | ||||
| in { | ||||
|   config = mkIf (cfg.enable || console.editor == "nvim") { | ||||
|     home.packages = [ ookvim ]; | ||||
|     home.packages = [ookvim]; | ||||
|     home.sessionVariables.EDITOR = mkIf (console.editor == "nvim") "nvim"; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -1,13 +1,14 @@ | |||
| { config, lib, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   config, | ||||
|   lib, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (config.colorscheme) palette; | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.multiplexer.tmux; | ||||
|   console = config.ooknet.console; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (cfg.enable || console.multiplexer == "tmux") { | ||||
|     programs.tmux = { | ||||
|       enable = true; | ||||
|  | @ -22,39 +23,43 @@ in | |||
|           plugin = tmuxPlugins.mode-indicator; | ||||
|         } | ||||
|       ]; | ||||
|       extraConfig = /* sh */ '' | ||||
|         # General Settings | ||||
|         set -g set-clipboard on | ||||
|         #Appearance | ||||
|         set -g status-position top | ||||
|         set -g status-style "fg=#${palette.base05} bg=#${palette.base00}" | ||||
|         #Windows | ||||
|         set -g status-justify "centre" | ||||
|         setw -g window-status-current-format "#[bg=#${palette.base0B},fg=#${palette.base00},bold] #W " | ||||
|         setw -g window-status-format "#[bg=#${palette.base03},fg=#${palette.base05}] #W " | ||||
|         #Left | ||||
|         set -g status-left " #{tmux_mode_indicator} #[bg=#${palette.base0B},fg=#${palette.base00}] #S" | ||||
|         set -g status-right '%Y-%m-%d %H:%M #{tmux_mode_indicator}' | ||||
|         #Move to Pane | ||||
|         bind -n M-Left select-pane -L | ||||
|         bind -n M-h select-pane -L | ||||
|         bind -n M-Right select-pane -R | ||||
|         bind -n M-l select-pane -R | ||||
|         bind -n M-Up select-pane -U | ||||
|         bind -n M-k select-pane -U | ||||
|         bind -n M-Down select-pane -D | ||||
|         bind -n M-j select-pane -D | ||||
|         #Split Pane | ||||
|         bind -n M-- split-window -h | ||||
|         bind -n M-= split-window -v | ||||
|         #Resize Pane | ||||
|         bind -n C-M-Up resize-pane -U 5 | ||||
|         bind -n C-M-Down resize-pane -D 5 | ||||
|         bind -n C-M-Left resize-pane -L 5 | ||||
|         bind -n C-M-Right resize-pane -R 5 | ||||
|         #Move to Window | ||||
|         bind -n M-1  | ||||
|       ''; | ||||
|       extraConfig = | ||||
|         /* | ||||
|         sh | ||||
|         */ | ||||
|         '' | ||||
|           # General Settings | ||||
|           set -g set-clipboard on | ||||
|           #Appearance | ||||
|           set -g status-position top | ||||
|           set -g status-style "fg=#${palette.base05} bg=#${palette.base00}" | ||||
|           #Windows | ||||
|           set -g status-justify "centre" | ||||
|           setw -g window-status-current-format "#[bg=#${palette.base0B},fg=#${palette.base00},bold] #W " | ||||
|           setw -g window-status-format "#[bg=#${palette.base03},fg=#${palette.base05}] #W " | ||||
|           #Left | ||||
|           set -g status-left " #{tmux_mode_indicator} #[bg=#${palette.base0B},fg=#${palette.base00}] #S" | ||||
|           set -g status-right '%Y-%m-%d %H:%M #{tmux_mode_indicator}' | ||||
|           #Move to Pane | ||||
|           bind -n M-Left select-pane -L | ||||
|           bind -n M-h select-pane -L | ||||
|           bind -n M-Right select-pane -R | ||||
|           bind -n M-l select-pane -R | ||||
|           bind -n M-Up select-pane -U | ||||
|           bind -n M-k select-pane -U | ||||
|           bind -n M-Down select-pane -D | ||||
|           bind -n M-j select-pane -D | ||||
|           #Split Pane | ||||
|           bind -n M-- split-window -h | ||||
|           bind -n M-= split-window -v | ||||
|           #Resize Pane | ||||
|           bind -n C-M-Up resize-pane -U 5 | ||||
|           bind -n C-M-Down resize-pane -D 5 | ||||
|           bind -n C-M-Left resize-pane -L 5 | ||||
|           bind -n C-M-Right resize-pane -R 5 | ||||
|           #Move to Window | ||||
|           bind -n M-1 | ||||
|         ''; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -1,13 +1,16 @@ | |||
| { osConfig, lib, config, pkgs, ... }: | ||||
| let | ||||
| { | ||||
|   osConfig, | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (config.colorscheme) palette; | ||||
|   inherit (lib) mkIf; | ||||
|   inherit (config.ooknet) console; | ||||
|   inherit (osConfig.ooknet.host) admin; | ||||
|   cfg = config.ooknet.multiplexer.zellij; | ||||
|   console = config.ooknet.console; | ||||
|   admin = osConfig.ooknet.host.admin; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (cfg.enable || console.multiplexer == "zellij") { | ||||
|     programs.zellij = { | ||||
|       enable = true; | ||||
|  | @ -16,6 +19,7 @@ in | |||
|         default_shell = "${admin.shell}"; | ||||
|         default_layout = "default"; | ||||
|         pane_frames = false; | ||||
|         scrollback_editor = "${console.editor}"; | ||||
|         themes = { | ||||
|           "${config.colorscheme.slug}" = { | ||||
|             fg = "#${palette.base05}"; | ||||
|  | @ -35,29 +39,160 @@ in | |||
|     }; | ||||
| 
 | ||||
|     # Layouts | ||||
|     # Default layout | ||||
|     xdg.configFile."zellij/layouts/default.kdl" = import ./layouts/defaultLayout.nix { inherit pkgs config; }; | ||||
|     # Layout for bash scripts | ||||
|     xdg.configFile."zellij/layouts/script.kdl" = import ./layouts/scriptLayout.nix { inherit pkgs config; }; | ||||
|     # Layout for configuring my flake | ||||
|     xdg.configFile."zellij/layouts/flake.kdl" = import ./layouts/flakeLayout.nix { inherit pkgs config; }; | ||||
|     xdg.configFile = { | ||||
|       # Default layout | ||||
|       "zellij/layouts/default.kdl" = import ./layouts/defaultLayout.nix {inherit pkgs config;}; | ||||
|       # Layout for bash scripts | ||||
|       "zellij/layouts/script.kdl" = import ./layouts/scriptLayout.nix {inherit pkgs config;}; | ||||
|       # Layout for configuring my flake | ||||
|       "zellij/layouts/flake.kdl" = import ./layouts/flakeLayout.nix {inherit pkgs config;}; | ||||
|       # Additional keybinds | ||||
|       "zellij/config.kdl".text = | ||||
|         # kdl | ||||
|         '' | ||||
|           keybinds clear-defaults=true { | ||||
|               shared_except "locked" { | ||||
|                   bind "Alt 1" { GoToTab 1; } | ||||
|                   bind "Alt 2" { GoToTab 2; } | ||||
|                   bind "Alt 3" { GoToTab 3; } | ||||
|                   bind "Alt 4" { GoToTab 4; } | ||||
|                   bind "Alt 5" { GoToTab 5; } | ||||
|                   bind "Alt 6" { GoToTab 6; } | ||||
|                   bind "Alt 7" { GoToTab 7; } | ||||
|                   bind "Alt 8" { GoToTab 8; } | ||||
|                   bind "Alt 9" { GoToTab 9; } | ||||
|                   bind "Alt -" { Resize "Decrease" ; } | ||||
|                   bind "Alt =" { Resize "Increase" ; } | ||||
|               } | ||||
| 
 | ||||
|     # Additional keybinds | ||||
|     xdg.configFile."zellij/config.kdl".text = /* kdl */ '' | ||||
|       keybinds { | ||||
|           shared_except "locked" { | ||||
|               bind "Alt 1" { GoToTab 1; } | ||||
|               bind "Alt 2" { GoToTab 2; } | ||||
|               bind "Alt 3" { GoToTab 3; } | ||||
|               bind "Alt 4" { GoToTab 4; } | ||||
|               bind "Alt 5" { GoToTab 5; } | ||||
|               bind "Alt 6" { GoToTab 6; } | ||||
|               bind "Alt 7" { GoToTab 7; } | ||||
|               bind "Alt 8" { GoToTab 8; } | ||||
|               bind "Alt 9" { GoToTab 9; } | ||||
|               locked { | ||||
|                   bind "Alt g" { SwitchToMode "Normal" ; } | ||||
|               } | ||||
| 
 | ||||
|               resize { | ||||
|                   bind "Alt r" { SwitchToMode "Normal" ; } | ||||
|                   bind "h" "Left" { Resize "Increase Left" ; } | ||||
|                   bind "j" "Down"  { Resize "Increase Down" ; } | ||||
|                   bind "k" "Up"    { Resize "Increase Up" ; } | ||||
|                   bind "l" "Right" { Resize "Increase Right" ; } | ||||
|               } | ||||
| 
 | ||||
|               pane { | ||||
|                   bind "Alt p"     { SwitchToMode "Normal" ; } | ||||
|                   bind "c"         { Clear ; } | ||||
|                   bind "e"         { TogglePaneEmbedOrFloating ; SwitchToMode "Normal" ; } | ||||
|                   bind "f"         { ToggleFocusFullscreen ; SwitchToMode "Normal" ; } | ||||
|                   bind "j" "Down"  { NewPane "Down" ; SwitchToMode "Normal" ; } | ||||
|                   bind "l" "Right" { NewPane "Right" ; SwitchToMode "Normal" ; } | ||||
|                   bind "n"         { NewPane ; SwitchToMode "Normal" ; } | ||||
|                   bind "p"         { SwitchFocus ; SwitchToMode "Normal" ; } | ||||
|                   bind "r"         { SwitchToMode "RenamePane" ; PaneNameInput 0 ; } | ||||
|                   bind "w"         { ToggleFloatingPanes ; SwitchToMode "Normal" ; } | ||||
|                   bind "x"         { CloseFocus ; SwitchToMode "Normal" ; } | ||||
|                   bind "z"         { TogglePaneFrames ; SwitchToMode "Normal" ; } | ||||
|               } | ||||
|               move { | ||||
|                   bind "Alt m"     { SwitchToMode "Normal"; } | ||||
|                   bind "h" "Left"  { MovePane "Left" ; } | ||||
|                   bind "j" "Down"  { MovePane "Down" ; } | ||||
|                   bind "k" "Up"    { MovePane "Up" ; } | ||||
|                   bind "l" "Right" { MovePane "Right" ; } | ||||
|               } | ||||
|               tab { | ||||
|                 bind "Alt t" { SwitchToMode "Normal" ; } | ||||
|                 bind "b"     { BreakPane; SwitchToMode "Normal" ; } | ||||
|                 bind "h"     { MoveTab "Left" ; } | ||||
|                 bind "l"     { MoveTab "Right" ; } | ||||
|                 bind "n"     { NewTab ; SwitchToMode "Normal" ; } | ||||
|                 bind "r"     { SwitchToMode "RenameTab" ; TabNameInput 0 ; } | ||||
|                 bind "x"     { CloseTab ; SwitchToMode "Normal" ; } | ||||
|                 bind "1"     { GoToTab 1 ; SwitchToMode "Normal" ; } | ||||
|                 bind "2"     { GoToTab 2 ; SwitchToMode "Normal" ; } | ||||
|                 bind "3"     { GoToTab 3 ; SwitchToMode "Normal" ; } | ||||
|                 bind "4"     { GoToTab 4 ; SwitchToMode "Normal" ; } | ||||
|                 bind "5"     { GoToTab 5 ; SwitchToMode "Normal" ; } | ||||
|                 bind "6"     { GoToTab 6 ; SwitchToMode "Normal" ; } | ||||
|                 bind "7"     { GoToTab 7 ; SwitchToMode "Normal" ; } | ||||
|                 bind "8"     { GoToTab 8 ; SwitchToMode "Normal" ; } | ||||
|                 bind "9"     { GoToTab 9 ; SwitchToMode "Normal" ; } | ||||
|             } | ||||
|             scroll { | ||||
|                 bind "Alt s"    { SwitchToMode "Normal" ; } | ||||
|                 bind "e"        { EditScrollback; SwitchToMode "Normal" ; } | ||||
|                 bind "d"        { HalfPageScrollDown ; } | ||||
|                 bind "u"        { HalfPageScrollUp ; } | ||||
|                 bind "j" "Down" { ScrollDown ; } | ||||
|                 bind "k" "Up"   { ScrollUp ; } | ||||
|                 bind "Home"     { ScrollToTop ; SwitchToMode "Normal" ; } | ||||
|                 bind "End"      { ScrollToBottom ; SwitchToMode "Normal" ; } | ||||
|                 bind "PageDown" { PageScrollDown ; } | ||||
|                 bind "PageUp"   { PageScrollUp ; } | ||||
|                 bind "s"        { SwitchToMode "EnterSearch" ; SearchInput 0 ; } | ||||
|             } | ||||
|             search { | ||||
|                 bind "Alt s" { SwitchToMode "Normal" ; } | ||||
|                 bind "n"     { Search "down" ; } | ||||
|                 bind "p"     { Search "up" ; } | ||||
|                 bind "c"     { SearchToggleOption "CaseSensitivity" ; } | ||||
|                 bind "w"     { SearchToggleOption "Wrap" ; } | ||||
|                 bind "o"     { SearchToggleOption "WholeWord" ; } | ||||
|             } | ||||
|             entersearch { | ||||
|                 bind "Alt c" "Esc" { SwitchToMode "Scroll" ; } | ||||
|                 bind "Enter"       { SwitchToMode "Search" ; } | ||||
|             } | ||||
|             renametab { | ||||
|                 bind "Alt c" { SwitchToMode "Normal" ; } | ||||
|                 bind "Esc"   { UndoRenameTab ; SwitchToMode "Tab" ; } | ||||
|             } | ||||
|             renamepane { | ||||
|                 bind "Alt c" { SwitchToMode "Normal"; } | ||||
|                 bind "Esc" { UndoRenamePane; SwitchToMode "Pane"; } | ||||
|             } | ||||
|             session { | ||||
|                 bind "Alt o" { SwitchToMode "Normal" ; } | ||||
|                 bind "d"     { Detach ; } | ||||
|                 bind "w"     { | ||||
|                     LaunchOrFocusPlugin "session-manager" { | ||||
|                         floating true | ||||
|                         move_to_focused_tab true | ||||
|                     }; | ||||
|                     SwitchToMode "Normal" | ||||
|                 } | ||||
|             } | ||||
|             shared_except "locked" { | ||||
|                 bind "Alt g"             { SwitchToMode "Locked" ; } | ||||
|                 bind "Alt q"             { Quit ; } | ||||
|                 bind "Alt h" "Alt Left"  { MoveFocusOrTab "Left" ; } | ||||
|                 bind "Alt l" "Alt Right" { MoveFocusOrTab "Right" ; } | ||||
|                 bind "Alt j" "Alt Down"  { MoveFocus "Down" ; } | ||||
|                 bind "Alt k" "Alt Up"    { MoveFocus "Up" ; } | ||||
|                 bind "Alt ["             { PreviousSwapLayout ; } | ||||
|                 bind "Alt ]"             { NextSwapLayout ; } | ||||
|             } | ||||
|             shared_except "normal" "locked" { | ||||
|                 bind "Enter" "Esc" { SwitchToMode "Normal" ; } | ||||
|             } | ||||
|             shared_except "pane" "locked" { | ||||
|                 bind "Alt p" { SwitchToMode "Pane" ; } | ||||
|             } | ||||
|             shared_except "resize" "locked" { | ||||
|                 bind "Alt r" { SwitchToMode "Resize" ; } | ||||
|             } | ||||
|             shared_except "scroll" "locked" { | ||||
|                 bind "Alt s" { SwitchToMode "Scroll" ; } | ||||
|             } | ||||
|             shared_except "session" "locked" { | ||||
|                 bind "Alt o" { SwitchToMode "Session" ; } | ||||
|             } | ||||
|             shared_except "tab" "locked" { | ||||
|                 bind "Alt t" { SwitchToMode "Tab" ; } | ||||
|             } | ||||
|             shared_except "move" "locked" { | ||||
|                 bind "Alt m" { SwitchToMode "Move" ; } | ||||
|             } | ||||
|           } | ||||
|       } | ||||
|     ''; | ||||
|         ''; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,60 +1,64 @@ | |||
| { pkgs, config, ... }: | ||||
| 
 | ||||
| let | ||||
|   inherit (config.colorscheme) palette; | ||||
| in | ||||
| 
 | ||||
| { | ||||
|   text = /* kdl */ '' | ||||
|     layout { | ||||
|       default_tab_template { | ||||
|         pane size=2 borderless=true { | ||||
|           plugin location="file:${pkgs.zjstatus}/bin/zjstatus.wasm" { | ||||
|             format_left  "{mode}" | ||||
|             format_right "{session} {command_git_branch} {datetime}" | ||||
|             format_center "#[fg=#${palette.base0D},bold] {tabs}" | ||||
|             format_space "" | ||||
|   pkgs, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (config.colorscheme) palette; | ||||
| in { | ||||
|   text = | ||||
|     /* | ||||
|     kdl | ||||
|     */ | ||||
|     '' | ||||
|       layout { | ||||
|         default_tab_template { | ||||
|           pane size=2 borderless=true { | ||||
|             plugin location="file:${pkgs.zjstatus}/bin/zjstatus.wasm" { | ||||
|               format_left  "{mode}" | ||||
|               format_right "{session} {command_git_branch} {datetime}" | ||||
|               format_center "#[fg=#${palette.base0D},bold] {tabs}" | ||||
|               format_space "" | ||||
| 
 | ||||
|             border_enabled  "true" | ||||
|             border_char     "─" | ||||
|             border_format   "#[fg=#${palette.base05}]{char}" | ||||
|             border_position "bottom" | ||||
|               border_enabled  "true" | ||||
|               border_char     "─" | ||||
|               border_format   "#[fg=#${palette.base05}]{char}" | ||||
|               border_position "bottom" | ||||
| 
 | ||||
|             hide_frame_for_single_pane "true" | ||||
|               hide_frame_for_single_pane "true" | ||||
| 
 | ||||
|             mode_normal       "#[fg=#${palette.base0D}] " | ||||
|             mode_tmux         "#[fg=#${palette.base0E}] " | ||||
|             mode_pane         "#[fg=#${palette.base08}] " | ||||
|             mode_tab          "#[fg=#${palette.base08}] " | ||||
|             mode_rename_tab   "#[fg=#${palette.base08}] " | ||||
|             mode_rename_pane  "#[fg=#${palette.base08}] " | ||||
|             mode_session      "#[fg=#${palette.base08}] " | ||||
|             mode_locked       "#[fg=#${palette.base05}] " | ||||
|             mode_move         "#[fg=#${palette.base0B}] " | ||||
|             mode_resize       "#[fg=#${palette.base0B}] " | ||||
|             mode_prompt       "#[fg=#${palette.base0A}] " | ||||
|             mode_search       "#[fg=#${palette.base0A}] " | ||||
|             mode_enter_search "#[fg=#${palette.base0A}] " | ||||
|               mode_normal       "#[fg=#${palette.base0D}] " | ||||
|               mode_tmux         "#[fg=#${palette.base0E}] " | ||||
|               mode_pane         "#[fg=#${palette.base08}] " | ||||
|               mode_tab          "#[fg=#${palette.base08}] " | ||||
|               mode_rename_tab   "#[fg=#${palette.base08}] " | ||||
|               mode_rename_pane  "#[fg=#${palette.base08}] " | ||||
|               mode_session      "#[fg=#${palette.base08}] " | ||||
|               mode_locked       "#[fg=#${palette.base05}] " | ||||
|               mode_move         "#[fg=#${palette.base0B}] " | ||||
|               mode_resize       "#[fg=#${palette.base0B}] " | ||||
|               mode_prompt       "#[fg=#${palette.base0A}] " | ||||
|               mode_search       "#[fg=#${palette.base0A}] " | ||||
|               mode_enter_search "#[fg=#${palette.base0A}] " | ||||
| 
 | ||||
|             tab_normal   "#[bg=#${palette.base01}] {name} " | ||||
|             tab_active   "#[bg=#${palette.base02}] {name} " | ||||
|             tab_separator "  " | ||||
|               tab_normal   "#[bg=#${palette.base01}] {name} " | ||||
|               tab_active   "#[bg=#${palette.base02}] {name} " | ||||
|               tab_separator "  " | ||||
| 
 | ||||
|             command_git_branch_command     "git rev-parse --abbrev-ref HEAD" | ||||
|             command_git_branch_format      "#[fg=#${palette.base0C}] {stdout} " | ||||
|             command_git_branch_interval    "10" | ||||
|             command_git_branch_rendermode  "static" | ||||
|               command_git_branch_command     "git rev-parse --abbrev-ref HEAD" | ||||
|               command_git_branch_format      "#[fg=#${palette.base0C}] {stdout} " | ||||
|               command_git_branch_interval    "10" | ||||
|               command_git_branch_rendermode  "static" | ||||
| 
 | ||||
|             datetime        "#[fg=#${palette.base05},bold] {format} " | ||||
|             datetime_format "%I:%M %p" | ||||
|             datetime_timezone "${config.home.sessionVariables.TZ}" | ||||
|               datetime        "#[fg=#${palette.base05},bold] {format} " | ||||
|               datetime_format "%I:%M %p" | ||||
|               datetime_timezone "${config.home.sessionVariables.TZ}" | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|       children | ||||
|     } | ||||
|       tab name="terminal" focus=true { | ||||
|           pane name="term" focus=true | ||||
|         children | ||||
|       } | ||||
|     } | ||||
|   ''; | ||||
|         tab name="terminal" focus=true { | ||||
|             pane name="term" focus=true | ||||
|         } | ||||
|       } | ||||
|     ''; | ||||
| } | ||||
|  |  | |||
|  | @ -1,66 +1,70 @@ | |||
| { pkgs, config, ... }: | ||||
| 
 | ||||
| let | ||||
|   inherit (config.colorscheme) palette; | ||||
| in | ||||
| 
 | ||||
| { | ||||
|   text = /* kdl */ '' | ||||
|     layout { | ||||
|       default_tab_template { | ||||
|         pane size=2 borderless=true { | ||||
|           plugin location="file:${pkgs.zjstatus}/bin/zjstatus.wasm" { | ||||
|             format_left  "{mode}" | ||||
|             format_right "{session} {command_git_branch} {datetime}" | ||||
|             format_center "#[fg=#${palette.base0D},bold] {tabs}" | ||||
|             format_space "" | ||||
|   pkgs, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (config.colorscheme) palette; | ||||
| in { | ||||
|   text = | ||||
|     /* | ||||
|     kdl | ||||
|     */ | ||||
|     '' | ||||
|       layout { | ||||
|         default_tab_template { | ||||
|           pane size=2 borderless=true { | ||||
|             plugin location="file:${pkgs.zjstatus}/bin/zjstatus.wasm" { | ||||
|               format_left  "{mode}" | ||||
|               format_right "{session} {command_git_branch} {datetime}" | ||||
|               format_center "#[fg=#${palette.base0D},bold] {tabs}" | ||||
|               format_space "" | ||||
| 
 | ||||
|             border_enabled  "true" | ||||
|             border_char     "─" | ||||
|             border_format   "#[fg=#${palette.base05}]{char}" | ||||
|             border_position "bottom" | ||||
|               border_enabled  "true" | ||||
|               border_char     "─" | ||||
|               border_format   "#[fg=#${palette.base05}]{char}" | ||||
|               border_position "bottom" | ||||
| 
 | ||||
|             hide_frame_for_single_pane "true" | ||||
|               hide_frame_for_single_pane "true" | ||||
| 
 | ||||
|             mode_normal       "#[fg=#${palette.base0D}] " | ||||
|             mode_tmux         "#[fg=#${palette.base0E}] " | ||||
|             mode_pane         "#[fg=#${palette.base08}] " | ||||
|             mode_tab          "#[fg=#${palette.base08}] " | ||||
|             mode_rename_tab   "#[fg=#${palette.base08}] " | ||||
|             mode_rename_pane  "#[fg=#${palette.base08}] " | ||||
|             mode_session      "#[fg=#${palette.base08}] " | ||||
|             mode_locked       "#[fg=#${palette.base05}] " | ||||
|             mode_move         "#[fg=#${palette.base0B}] " | ||||
|             mode_resize       "#[fg=#${palette.base0B}] " | ||||
|             mode_prompt       "#[fg=#${palette.base0A}] " | ||||
|             mode_search       "#[fg=#${palette.base0A}] " | ||||
|             mode_enter_search "#[fg=#${palette.base0A}] " | ||||
|               mode_normal       "#[fg=#${palette.base0D}] " | ||||
|               mode_tmux         "#[fg=#${palette.base0E}] " | ||||
|               mode_pane         "#[fg=#${palette.base08}] " | ||||
|               mode_tab          "#[fg=#${palette.base08}] " | ||||
|               mode_rename_tab   "#[fg=#${palette.base08}] " | ||||
|               mode_rename_pane  "#[fg=#${palette.base08}] " | ||||
|               mode_session      "#[fg=#${palette.base08}] " | ||||
|               mode_locked       "#[fg=#${palette.base05}] " | ||||
|               mode_move         "#[fg=#${palette.base0B}] " | ||||
|               mode_resize       "#[fg=#${palette.base0B}] " | ||||
|               mode_prompt       "#[fg=#${palette.base0A}] " | ||||
|               mode_search       "#[fg=#${palette.base0A}] " | ||||
|               mode_enter_search "#[fg=#${palette.base0A}] " | ||||
| 
 | ||||
|             tab_normal   "#[bg=#${palette.base01}] {name} " | ||||
|             tab_active   "#[bg=#${palette.base02}] {name} " | ||||
|             tab_separator "  " | ||||
|               tab_normal   "#[bg=#${palette.base01}] {name} " | ||||
|               tab_active   "#[bg=#${palette.base02}] {name} " | ||||
|               tab_separator "  " | ||||
| 
 | ||||
|             command_git_branch_command     "git rev-parse --abbrev-ref HEAD" | ||||
|             command_git_branch_format      "#[fg=#${palette.base0C}] {stdout} " | ||||
|             command_git_branch_interval    "10" | ||||
|             command_git_branch_rendermode  "static" | ||||
|               command_git_branch_command     "git rev-parse --abbrev-ref HEAD" | ||||
|               command_git_branch_format      "#[fg=#${palette.base0C}] {stdout} " | ||||
|               command_git_branch_interval    "10" | ||||
|               command_git_branch_rendermode  "static" | ||||
| 
 | ||||
|             datetime        "#[fg=#${palette.base05},bold] {format} " | ||||
|             datetime_format "%I:%M %p" | ||||
|             datetime_timezone "${config.home.sessionVariables.TZ}" | ||||
|               datetime        "#[fg=#${palette.base05},bold] {format} " | ||||
|               datetime_format "%I:%M %p" | ||||
|               datetime_timezone "${config.home.sessionVariables.TZ}" | ||||
|             } | ||||
|           } | ||||
|         children | ||||
|         } | ||||
|         tab name="terminal" focus=true { | ||||
|             pane name="term" cwd="$FLAKE" focus=true | ||||
|         } | ||||
|         tab name="editor" { | ||||
|             pane name="edit" edit="$FLAKE" | ||||
|         } | ||||
|         tab name="git" { | ||||
|             pane name="git" cwd="$FLAKE" command="lazygit" | ||||
|         } | ||||
|       children | ||||
|       } | ||||
|       tab name="terminal" focus=true { | ||||
|           pane name="term" cwd="$FLAKE" focus=true | ||||
|       } | ||||
|       tab name="editor" { | ||||
|           pane name="edit" edit="$FLAKE" | ||||
|       } | ||||
|       tab name="git" { | ||||
|           pane name="git" cwd="$FLAKE" command="lazygit" | ||||
|       } | ||||
|     } | ||||
|   ''; | ||||
|     ''; | ||||
| } | ||||
|  |  | |||
|  | @ -1,64 +1,68 @@ | |||
| { pkgs, config, ... }: | ||||
| 
 | ||||
| let | ||||
|   inherit (config.colorscheme) palette; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| text = /* kdl */ '' | ||||
|   layout { | ||||
|     default_tab_template { | ||||
|       pane size=2 borderless=true { | ||||
|         plugin location="file:${pkgs.zjstatus}/bin/zjstatus.wasm" { | ||||
|           format_left  "{mode}" | ||||
|             format_right "{session} {command_git_branch} {datetime}" | ||||
|             format_center "#[fg=#${palette.base0D},bold] {tabs}" | ||||
|             format_space "" | ||||
|   pkgs, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (config.colorscheme) palette; | ||||
| in { | ||||
|   text = | ||||
|     /* | ||||
|     kdl | ||||
|     */ | ||||
|     '' | ||||
|       layout { | ||||
|         default_tab_template { | ||||
|           pane size=2 borderless=true { | ||||
|             plugin location="file:${pkgs.zjstatus}/bin/zjstatus.wasm" { | ||||
|               format_left  "{mode}" | ||||
|                 format_right "{session} {command_git_branch} {datetime}" | ||||
|                 format_center "#[fg=#${palette.base0D},bold] {tabs}" | ||||
|                 format_space "" | ||||
| 
 | ||||
|             border_enabled  "true" | ||||
|             border_char     "─" | ||||
|             border_format   "#[fg=#${palette.base05}]{char}" | ||||
|             border_position "bottom" | ||||
|                 border_enabled  "true" | ||||
|                 border_char     "─" | ||||
|                 border_format   "#[fg=#${palette.base05}]{char}" | ||||
|                 border_position "bottom" | ||||
| 
 | ||||
|             hide_frame_for_single_pane "true" | ||||
|                 hide_frame_for_single_pane "true" | ||||
| 
 | ||||
|             mode_normal       "#[fg=#${palette.base0D}] " | ||||
|             mode_tmux         "#[fg=#${palette.base0E}] " | ||||
|             mode_pane         "#[fg=#${palette.base08}] " | ||||
|             mode_tab          "#[fg=#${palette.base08}] " | ||||
|             mode_rename_tab   "#[fg=#${palette.base08}] " | ||||
|             mode_rename_pane  "#[fg=#${palette.base08}] " | ||||
|             mode_session      "#[fg=#${palette.base08}] " | ||||
|             mode_locked       "#[fg=#${palette.base05}] " | ||||
|             mode_move         "#[fg=#${palette.base0B}] " | ||||
|             mode_resize       "#[fg=#${palette.base0B}] " | ||||
|             mode_prompt       "#[fg=#${palette.base0A}] " | ||||
|             mode_search       "#[fg=#${palette.base0A}] " | ||||
|             mode_enter_search "#[fg=#${palette.base0A}] " | ||||
|                 mode_normal       "#[fg=#${palette.base0D}] " | ||||
|                 mode_tmux         "#[fg=#${palette.base0E}] " | ||||
|                 mode_pane         "#[fg=#${palette.base08}] " | ||||
|                 mode_tab          "#[fg=#${palette.base08}] " | ||||
|                 mode_rename_tab   "#[fg=#${palette.base08}] " | ||||
|                 mode_rename_pane  "#[fg=#${palette.base08}] " | ||||
|                 mode_session      "#[fg=#${palette.base08}] " | ||||
|                 mode_locked       "#[fg=#${palette.base05}] " | ||||
|                 mode_move         "#[fg=#${palette.base0B}] " | ||||
|                 mode_resize       "#[fg=#${palette.base0B}] " | ||||
|                 mode_prompt       "#[fg=#${palette.base0A}] " | ||||
|                 mode_search       "#[fg=#${palette.base0A}] " | ||||
|                 mode_enter_search "#[fg=#${palette.base0A}] " | ||||
| 
 | ||||
|             tab_normal   "#[bg=#${palette.base01}] {name} " | ||||
|             tab_active   "#[bg=#${palette.base02}] {name} " | ||||
|             tab_separator "  " | ||||
|                 tab_normal   "#[bg=#${palette.base01}] {name} " | ||||
|                 tab_active   "#[bg=#${palette.base02}] {name} " | ||||
|                 tab_separator "  " | ||||
| 
 | ||||
|             command_git_branch_command     "git rev-parse --abbrev-ref HEAD" | ||||
|             command_git_branch_format      "#[fg=#${palette.base0C}] {stdout} " | ||||
|             command_git_branch_interval    "10" | ||||
|             command_git_branch_rendermode  "static" | ||||
|                 command_git_branch_command     "git rev-parse --abbrev-ref HEAD" | ||||
|                 command_git_branch_format      "#[fg=#${palette.base0C}] {stdout} " | ||||
|                 command_git_branch_interval    "10" | ||||
|                 command_git_branch_rendermode  "static" | ||||
| 
 | ||||
|             datetime        "#[fg=#${palette.base05},bold] {format} " | ||||
|             datetime_format "%I:%M %p" | ||||
|             datetime_timezone "${config.home.sessionVariables.TZ}" | ||||
|                 datetime        "#[fg=#${palette.base05},bold] {format} " | ||||
|                 datetime_format "%I:%M %p" | ||||
|                 datetime_timezone "${config.home.sessionVariables.TZ}" | ||||
|             } | ||||
|           } | ||||
|           children | ||||
|         } | ||||
|           tab name="edit" focus=true { | ||||
|               pane edit="./" name="edit" focus=true size="85%" borderless=true | ||||
|               pane name="term" focus=false size="15%" borderless=false | ||||
|           } | ||||
|           tab name="git" focus=false { | ||||
|               pane name="git" focus=false command="lazygit" | ||||
|           } | ||||
|       } | ||||
|       children | ||||
|     } | ||||
|       tab name="edit" focus=true { | ||||
|           pane edit="./" name="edit" focus=true size="85%" borderless=true | ||||
|           pane name="term" focus=false size="15%" borderless=false | ||||
|       } | ||||
|       tab name="git" focus=false { | ||||
|           pane name="git" focus=false command="lazygit" | ||||
|       } | ||||
|   } | ||||
| ''; | ||||
|     ''; | ||||
| } | ||||
|  |  | |||
|  | @ -1,12 +1,13 @@ | |||
| { config, lib, osConfig, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   config, | ||||
|   lib, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.shell.bash; | ||||
|   admin = osConfig.ooknet.host.admin; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (cfg.enable || admin.shell == "bash") { | ||||
|     programs.bash.enable = true; | ||||
|   }; | ||||
|  |  | |||
|  | @ -1,14 +1,16 @@ | |||
| { lib, config, osConfig, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   osConfig, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf getExe; | ||||
|   inherit (pkgs) bat eza dust nh; | ||||
|    | ||||
| 
 | ||||
|   cfg = config.ooknet.shell.fish; | ||||
|   admin = osConfig.ooknet.host.admin; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (cfg.enable || admin.shell == "fish") { | ||||
|     programs.fish = { | ||||
|       shellAliases = { | ||||
|  |  | |||
|  | @ -1,16 +1,18 @@ | |||
| { lib, config, osConfig, ... }: | ||||
| 
 | ||||
| let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.shell.fish; | ||||
|   admin = osConfig.ooknet.host.admin; | ||||
| in | ||||
| 
 | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   inherit (osConfig.ooknet.host) admin; | ||||
| 
 | ||||
|   cfg = config.ooknet.shell.fish; | ||||
| in { | ||||
|   config = mkIf (cfg.enable || admin.shell == "fish") { | ||||
|     programs.fish.functions = { | ||||
|       fish_user_key_bindings = '' | ||||
|         bind --preset -M insert \cf fe | ||||
|         bind --preset -M insert \cf $EDITOR $FLAKE | ||||
|         bind --preset -M insert \ec fzf_cd_widget | ||||
|       ''; | ||||
|     }; | ||||
|  |  | |||
|  | @ -1,12 +1,14 @@ | |||
| { lib, config, osConfig, ... }: | ||||
| 
 | ||||
| let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.shell.fish; | ||||
|   admin = osConfig.ooknet.host.admin; | ||||
| in | ||||
| 
 | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   inherit (osConfig.ooknet.host) admin; | ||||
| 
 | ||||
|   cfg = config.ooknet.shell.fish; | ||||
| in { | ||||
|   imports = [ | ||||
|     ./plugins.nix | ||||
|     ./binds.nix | ||||
|  | @ -27,7 +29,8 @@ in | |||
|           set fish_cursor_insert      line       blink | ||||
|           set fish_cursor_replace_one underscore blink | ||||
|           set fish_cursor_visual      block | ||||
|         '' + | ||||
|         '' | ||||
|         + | ||||
|         # Use terminal colors | ||||
|         '' | ||||
|           set -U fish_color_autosuggestion      brblack | ||||
|  | @ -60,4 +63,3 @@ in | |||
|     }; | ||||
|   }; | ||||
| } | ||||
|   | ||||
|  |  | |||
|  | @ -1,12 +1,14 @@ | |||
| { lib, config, pkgs, osConfig, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.shell.fish; | ||||
|   admin = osConfig.ooknet.host.admin; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (cfg.enable || admin.shell == "fish") { | ||||
|     programs.fish = { | ||||
|       plugins = [ | ||||
|  | @ -26,4 +28,3 @@ in | |||
|     }; | ||||
|   }; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,16 +1,17 @@ | |||
| { lib, config, osConfig, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.shell.zsh; | ||||
|   admin = osConfig.ooknet.host.admin; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   imports = [ | ||||
|     ./plugins.nix | ||||
|   ]; | ||||
|    | ||||
| 
 | ||||
|   config = mkIf (cfg.enable || admin.shell == "zsh") { | ||||
|     programs.zsh = { | ||||
|       enable = true; | ||||
|  |  | |||
|  | @ -1,12 +1,14 @@ | |||
| { lib, pkgs, config, osConfig, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.shell.zsh; | ||||
|   admin = osConfig.ooknet.host.admin; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (cfg.enable || admin.shell == "zsh") { | ||||
|     programs.zsh.plugins = [ | ||||
|       { | ||||
|  |  | |||
|  | @ -1,11 +1,12 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.tools.bat; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     programs.bat = { | ||||
|       enable = true; | ||||
|  |  | |||
|  | @ -1,11 +1,11 @@ | |||
| { lib, config, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.tools.btop; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     programs.btop = { | ||||
|       enable = true; | ||||
|  |  | |||
|  | @ -1,11 +1,11 @@ | |||
| { lib, config, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.tools.direnv; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     programs.direnv = { | ||||
|       enable = true; | ||||
|  |  | |||
|  | @ -1,11 +1,11 @@ | |||
| { lib, config, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.tools.eza; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     programs.eza = { | ||||
|       enable = true; | ||||
|  |  | |||
|  | @ -1,12 +1,13 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.tools.ffmpeg; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     home.packages = [ pkgs.ffmpeg ]; | ||||
|     home.packages = [pkgs.ffmpeg]; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -1,12 +1,13 @@ | |||
| { lib, config, osConfig, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   admin = osConfig.ooknet.host.admin; | ||||
|   cfg = config.ooknet.tools.fzf; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     programs.fzf = { | ||||
|       enable = true; | ||||
|  |  | |||
|  | @ -1,26 +1,27 @@ | |||
| { pkgs, config, lib, osConfig, ... }: | ||||
| 
 | ||||
|   let  | ||||
|     inherit (lib) mkIf; | ||||
|     cfg = config.ooknet.tools.git; | ||||
|     admin = osConfig.ooknet.host.admin; | ||||
|   in | ||||
|    | ||||
| {  | ||||
| { | ||||
|   pkgs, | ||||
|   config, | ||||
|   lib, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.tools.git; | ||||
|   admin = osConfig.ooknet.host.admin; | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     programs.git = { | ||||
|       enable = true; | ||||
|       package = pkgs.gitAndTools.gitFull; | ||||
|       userName = admin.gitName; | ||||
|       userEmail = admin.gitEmail; | ||||
|       ignores = [ ".direnv" "result" ]; | ||||
|       ignores = [".direnv" "result"]; | ||||
|       lfs.enable = true; | ||||
|     }; | ||||
|    | ||||
| 
 | ||||
|     home.packages = with pkgs; [ | ||||
|       lazygit | ||||
|       gh | ||||
|     ]; | ||||
|   }; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,12 +1,13 @@ | |||
| { lib, config, inputs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   inputs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.tools.nixIndex; | ||||
| in | ||||
| 
 | ||||
| { | ||||
|   imports = [ inputs.nix-index-db.hmModules.nix-index ]; | ||||
| in { | ||||
|   imports = [inputs.nix-index-db.hmModules.nix-index]; | ||||
|   config = mkIf cfg.enable { | ||||
|     programs = { | ||||
|       nix-index = { | ||||
|  |  | |||
|  | @ -1,12 +1,13 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.tools.sourcegraph; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     home.packages = [ pkgs.src-cli ]; | ||||
|     home.packages = [pkgs.src-cli]; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -1,11 +1,12 @@ | |||
| { lib, config, osConfig, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.tools.ssh; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     programs.ssh = { | ||||
|       enable = true; | ||||
|  |  | |||
|  | @ -1,11 +1,11 @@ | |||
| { config, lib, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   config, | ||||
|   lib, | ||||
|   ... | ||||
| }: let | ||||
|   cfg = config.ooknet.tools.starship; | ||||
|   inherit (lib) concatStrings mkIf; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     programs.starship = { | ||||
|       enable = true; | ||||
|  | @ -73,4 +73,3 @@ in | |||
|     }; | ||||
|   }; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,14 +1,15 @@ | |||
| { pkgs, lib, config, ... }: | ||||
| 
 | ||||
| let | ||||
|   cfg = config.ooknet.tools.utils; | ||||
| in | ||||
| 
 | ||||
| { | ||||
|   pkgs, | ||||
|   lib, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   cfg = config.ooknet.tools.utils; | ||||
| in { | ||||
|   config = lib.mkIf cfg.enable { | ||||
|     home.packages = with pkgs; [ | ||||
|       bc # Calculator | ||||
|      | ||||
| 
 | ||||
|       # file utility | ||||
|       duf | ||||
|       du-dust | ||||
|  | @ -19,7 +20,7 @@ in | |||
|       zip | ||||
|       unzip | ||||
|       unrar | ||||
|      | ||||
| 
 | ||||
|       # file transfer | ||||
|       wget | ||||
|       httpie # Better curl | ||||
|  | @ -31,7 +32,7 @@ in | |||
|       gum | ||||
|       # audio ctrl | ||||
|       pamixer | ||||
|            | ||||
| 
 | ||||
|       diffsitter # Better diff | ||||
|       jq # JSON pretty printer and manipulator | ||||
|       tldr # Community maintained help pages | ||||
|  |  | |||
|  | @ -1,6 +1,11 @@ | |||
| { pkgs, lib, inputs, config, osConfig, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   pkgs, | ||||
|   lib, | ||||
|   inputs, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf mkMerge; | ||||
| 
 | ||||
|   addons = inputs.firefox-addons.packages.${pkgs.system}; | ||||
|  | @ -22,16 +27,13 @@ let | |||
|     "application/x-extension-xht" = ["firefox.desktop"]; | ||||
|     "application/json" = ["firefox.desktop"]; | ||||
|   }; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| 
 | ||||
|   imports = [ ./tridactyl.nix ]; | ||||
|   config = mkMerge [  | ||||
| in { | ||||
|   imports = [./tridactyl.nix]; | ||||
|   config = mkMerge [ | ||||
|     (mkIf (cfg.enable || browser == "firefox") { | ||||
|       programs.firefox = { | ||||
|         enable = true; | ||||
|         nativeMessagingHosts = [ pkgs.tridactyl-native ]; | ||||
|         nativeMessagingHosts = [pkgs.tridactyl-native]; | ||||
|         profiles.${admin.name} = { | ||||
|           extensions = with addons; [ | ||||
|             ublock-origin | ||||
|  | @ -54,6 +56,5 @@ in | |||
|         defaultApplications = firefoxMime; | ||||
|       }; | ||||
|     }) | ||||
| 
 | ||||
|   ]; | ||||
| } | ||||
|  |  | |||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							|  | @ -35,7 +35,7 @@ | |||
|   "toolkit.telemetry.updatePing.enabled" = false; | ||||
|   "toolkit.telemetry.bhrPing.enabled" = false; | ||||
|   "toolkit.telemetry.firstShutdownPing.enabled" = false; | ||||
|   "toolkit.telemetry.coverage.opt-out" = true;  | ||||
|   "toolkit.telemetry.coverage.opt-out" = true; | ||||
|   "toolkit.coverage.opt-out" = true; | ||||
|   "toolkit.coverage.endpoint.base" = ""; | ||||
|   "browser.ping-centre.telemetry" = false; | ||||
|  | @ -64,5 +64,5 @@ | |||
|   "geo.provider.use_geoclue" = false; | ||||
| 
 | ||||
|   #Calculator | ||||
|     "browser.urlbar.suggest.calculator" = true; | ||||
|   "browser.urlbar.suggest.calculator" = true; | ||||
| } | ||||
|  |  | |||
|  | @ -1,4 +1,6 @@ | |||
|  /* css */  | ||||
| /* | ||||
| css | ||||
| */ | ||||
| '' | ||||
|   /* config */ | ||||
| 
 | ||||
|  | @ -177,4 +179,3 @@ | |||
|   /*  Removes the annoying rainbow thing from the hamburger  */ | ||||
|   #appMenu-fxa-separator{border-image:none !important;} | ||||
| '' | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,4 +1,7 @@ | |||
| /* css */ ''  | ||||
| /* | ||||
| css | ||||
| */ | ||||
| '' | ||||
|   @-moz-document url-prefix(about:){ | ||||
| 
 | ||||
|   /*  Removes the scrollbar on some places  */ | ||||
|  |  | |||
|  | @ -1,16 +1,15 @@ | |||
| { lib, config, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   inherit (config.colorscheme) palette;  | ||||
|   inherit (config.colorscheme) palette; | ||||
| 
 | ||||
|   cfg = config.ooknet.browser.firefox; | ||||
|   browser = config.ooknet.desktop.browser; | ||||
|   fonts = config.ooknet.fonts; | ||||
|    | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (browser == "firefox" || cfg.enable) { | ||||
|     xdg.configFile = { | ||||
|       "tridactyl/tridactylrc".text = '' | ||||
|  | @ -20,14 +19,14 @@ in | |||
| 
 | ||||
|         unbind --mode=normal t | ||||
|         unbind --mode=normal gt | ||||
|          | ||||
| 
 | ||||
|         bind / fillcmdline find | ||||
|         bind n findnext 1 | ||||
|         bind N findnext -1 | ||||
| 
 | ||||
|         bind gtr open http://192.168.1.210:9091/transmission/web/ | ||||
|         bind ttr tabopen http://192.168.1.210:9091/transmission/web/ | ||||
|          | ||||
| 
 | ||||
|         bind gem open https://gmail.com | ||||
|         bind tem tabopen https://gmail.com | ||||
| 
 | ||||
|  | @ -37,189 +36,193 @@ in | |||
| 
 | ||||
|       # based off base16 themes | ||||
|       # source: <https://github.com/bezmi/base16-tridactyl> | ||||
|       "tridactyl/themes/ooknet.css".text = /* css */ '' | ||||
|         :root { | ||||
|           --font: ${fonts.monospace.family}; | ||||
|           --bg: #${palette.base00}; | ||||
|           --fg: #${palette.base05}; | ||||
|           --red: #${palette.base08}; | ||||
|           --green: #${palette.base0B}; | ||||
|           --blue: #${palette.base0D}; | ||||
|           --yellow: #${palette.base0A}; | ||||
|           --purple: #${palette.base0E}; | ||||
|           --orange: #${palette.base09}; | ||||
|           --cyan: #${palette.base0C}; | ||||
|           --comment: #${palette.base04}; | ||||
|           --selectedline: #${palette.base02}; | ||||
|       "tridactyl/themes/ooknet.css".text = | ||||
|         /* | ||||
|         css | ||||
|         */ | ||||
|         '' | ||||
|           :root { | ||||
|             --font: ${fonts.monospace.family}; | ||||
|             --bg: #${palette.base00}; | ||||
|             --fg: #${palette.base05}; | ||||
|             --red: #${palette.base08}; | ||||
|             --green: #${palette.base0B}; | ||||
|             --blue: #${palette.base0D}; | ||||
|             --yellow: #${palette.base0A}; | ||||
|             --purple: #${palette.base0E}; | ||||
|             --orange: #${palette.base09}; | ||||
|             --cyan: #${palette.base0C}; | ||||
|             --comment: #${palette.base04}; | ||||
|             --selectedline: #${palette.base02}; | ||||
| 
 | ||||
| 
 | ||||
|           --tridactyl-fg: var(--fg); | ||||
|           --tridactyl-bg: var(--bg); | ||||
|             --tridactyl-fg: var(--fg); | ||||
|             --tridactyl-bg: var(--bg); | ||||
| 
 | ||||
|           --tridactyl-url-fg: var(--green); | ||||
|           --tridactyl-url-bg: var(--bg); | ||||
|            | ||||
|           --tridactyl-highlight-box-bg: var(--selectedline); | ||||
|           --tridactyl-highlight-box-fg: var(--fg); | ||||
|             --tridactyl-url-fg: var(--green); | ||||
|             --tridactyl-url-bg: var(--bg); | ||||
| 
 | ||||
|           --tridactyl-of-fg: var(--fg); | ||||
|           --tridactyl-of-bg: var(--selectedline); | ||||
|             --tridactyl-highlight-box-bg: var(--selectedline); | ||||
|             --tridactyl-highlight-box-fg: var(--fg); | ||||
| 
 | ||||
|           --tridactyl-cmdl-fg: var(--bg); | ||||
|           --tridactyl-cmdl-font-family: var(--selectedline); | ||||
|             --tridactyl-of-fg: var(--fg); | ||||
|             --tridactyl-of-bg: var(--selectedline); | ||||
| 
 | ||||
|           --tridactyl-cmplt-font-family: var(--font); | ||||
|            | ||||
|           --tridactyl-hintspan-font-family: var(--font); | ||||
|           --tridactyl-hintspan-fg: var(--bg) !important; | ||||
|           --tridactyl-hintspan-bg: var(--orange) !important; | ||||
|             --tridactyl-cmdl-fg: var(--bg); | ||||
|             --tridactyl-cmdl-font-family: var(--selectedline); | ||||
| 
 | ||||
|           --tridactyl-hint-active-fg: none; | ||||
|           --tridactyl-hint-active-bg: var(--tridactyl-bg); | ||||
|           --tridactyl-hint-active-outline: var(--green); | ||||
|           --tridactyl-hint-bg: none; | ||||
|           --tridactyl-hint-outline: none; | ||||
|         }  | ||||
|             --tridactyl-cmplt-font-family: var(--font); | ||||
| 
 | ||||
|         #tridactyl-colon::before { | ||||
|           content: " "; | ||||
|           font-family: var(--font); | ||||
|           font-size: 1.5rem; | ||||
|           color: var(--green); | ||||
|           display: inline; | ||||
|           margin-left: 15px; | ||||
|         } | ||||
|             --tridactyl-hintspan-font-family: var(--font); | ||||
|             --tridactyl-hintspan-fg: var(--bg) !important; | ||||
|             --tridactyl-hintspan-bg: var(--orange) !important; | ||||
| 
 | ||||
|         #command-line-holder { | ||||
|           order: 1; | ||||
|           display: flex; | ||||
|           justify-content: center; | ||||
|           align-items: center; | ||||
|           border: 2px solid var(--tridactyl-fg); | ||||
|           background: var(--tridactyl-bg); | ||||
|         } | ||||
|             --tridactyl-hint-active-fg: none; | ||||
|             --tridactyl-hint-active-bg: var(--tridactyl-bg); | ||||
|             --tridactyl-hint-active-outline: var(--green); | ||||
|             --tridactyl-hint-bg: none; | ||||
|             --tridactyl-hint-outline: none; | ||||
|           } | ||||
| 
 | ||||
|         #tridactyl-input { | ||||
|           padding: 1rem; | ||||
|           color: var(--tridactyl-fg); | ||||
|           width: 90%; | ||||
|           font-family: var(--font); | ||||
|           font-size: 1.5rem; | ||||
|           line-height: 1.5; | ||||
|           background: var(--tridactyl-bg); | ||||
|           padding-left: unset; | ||||
|           padding: 1rem; | ||||
|         } | ||||
|           #tridactyl-colon::before { | ||||
|             content: " "; | ||||
|             font-family: var(--font); | ||||
|             font-size: 1.5rem; | ||||
|             color: var(--green); | ||||
|             display: inline; | ||||
|             margin-left: 15px; | ||||
|           } | ||||
| 
 | ||||
|           #command-line-holder { | ||||
|             order: 1; | ||||
|             display: flex; | ||||
|             justify-content: center; | ||||
|             align-items: center; | ||||
|             border: 2px solid var(--tridactyl-fg); | ||||
|             background: var(--tridactyl-bg); | ||||
|           } | ||||
| 
 | ||||
|           #tridactyl-input { | ||||
|             padding: 1rem; | ||||
|             color: var(--tridactyl-fg); | ||||
|             width: 90%; | ||||
|             font-family: var(--font); | ||||
|             font-size: 1.5rem; | ||||
|             line-height: 1.5; | ||||
|             background: var(--tridactyl-bg); | ||||
|             padding-left: unset; | ||||
|             padding: 1rem; | ||||
|           } | ||||
| 
 | ||||
| 
 | ||||
|         #completions table { | ||||
|           font-size: 0.8rem; | ||||
|           font-weight: 200; | ||||
|           border-spacing: 0; | ||||
|           table-layout: fixed; | ||||
|           padding: 1rem; | ||||
|           padding-top: 1rem; | ||||
|           padding-bottom: 1rem; | ||||
|         } | ||||
|           #completions table { | ||||
|             font-size: 0.8rem; | ||||
|             font-weight: 200; | ||||
|             border-spacing: 0; | ||||
|             table-layout: fixed; | ||||
|             padding: 1rem; | ||||
|             padding-top: 1rem; | ||||
|             padding-bottom: 1rem; | ||||
|           } | ||||
| 
 | ||||
|         #completions > div { | ||||
|           max-height: calc(20 * var(--option-height)); | ||||
|           min-height: calc(10 * var(--option-height)); | ||||
|         } | ||||
|           #completions > div { | ||||
|             max-height: calc(20 * var(--option-height)); | ||||
|             min-height: calc(10 * var(--option-height)); | ||||
|           } | ||||
| 
 | ||||
|         #completions { | ||||
|           --option-height: 1.4em; | ||||
|           color: var(--tridactyl-fg); | ||||
|           background: var(--tridactyl-bg); | ||||
|           display: inline-block; | ||||
|           font-size: unset; | ||||
|           font-weight: 200; | ||||
|           overflow: hidden; | ||||
|           width: 100%; | ||||
|           border-top: unset; | ||||
|           order: 2; | ||||
|         } | ||||
|           #completions { | ||||
|             --option-height: 1.4em; | ||||
|             color: var(--tridactyl-fg); | ||||
|             background: var(--tridactyl-bg); | ||||
|             display: inline-block; | ||||
|             font-size: unset; | ||||
|             font-weight: 200; | ||||
|             overflow: hidden; | ||||
|             width: 100%; | ||||
|             border-top: unset; | ||||
|             order: 2; | ||||
|           } | ||||
| 
 | ||||
|         #completions .HistoryCompletionSource { | ||||
|           max-height: unset; | ||||
|           min-height: unset; | ||||
|         } | ||||
|           #completions .HistoryCompletionSource { | ||||
|             max-height: unset; | ||||
|             min-height: unset; | ||||
|           } | ||||
| 
 | ||||
|         #completions .HistoryCompletionSource table { | ||||
|           width: 100%; | ||||
|           font-size: 9pt; | ||||
|           border-spacing: 0; | ||||
|           table-layout: fixed; | ||||
|         } | ||||
|           #completions .HistoryCompletionSource table { | ||||
|             width: 100%; | ||||
|             font-size: 9pt; | ||||
|             border-spacing: 0; | ||||
|             table-layout: fixed; | ||||
|           } | ||||
| 
 | ||||
|         #completions .BmarkCompletionSource { | ||||
|           max-height: unset; | ||||
|           min-height: unset; | ||||
|         } | ||||
|           #completions .BmarkCompletionSource { | ||||
|             max-height: unset; | ||||
|             min-height: unset; | ||||
|           } | ||||
| 
 | ||||
|         #completions table tr td.prefix, | ||||
|         #completions table tr td.privatewindow, | ||||
|         #completions table tr td.container, | ||||
|         #completions table tr td.icon { | ||||
|           display: none; | ||||
|         } | ||||
|           #completions table tr td.prefix, | ||||
|           #completions table tr td.privatewindow, | ||||
|           #completions table tr td.container, | ||||
|           #completions table tr td.icon { | ||||
|             display: none; | ||||
|           } | ||||
| 
 | ||||
|         #completions .BufferCompletionSource table { | ||||
|           width: unset; | ||||
|           font-size: unset; | ||||
|           border-spacing: unset; | ||||
|           table-layout: unset; | ||||
|         } | ||||
|           #completions .BufferCompletionSource table { | ||||
|             width: unset; | ||||
|             font-size: unset; | ||||
|             border-spacing: unset; | ||||
|             table-layout: unset; | ||||
|           } | ||||
| 
 | ||||
|         #completions table tr .title { | ||||
|           width: 50%; | ||||
|         } | ||||
|           #completions table tr .title { | ||||
|             width: 50%; | ||||
|           } | ||||
| 
 | ||||
|         #completions table tr { | ||||
|           white-space: nowrap; | ||||
|           overflow: hidden; | ||||
|           text-overflow: ellipsis; | ||||
|         } | ||||
|           #completions table tr { | ||||
|             white-space: nowrap; | ||||
|             overflow: hidden; | ||||
|             text-overflow: ellipsis; | ||||
|           } | ||||
| 
 | ||||
|         #completions .sectionHeader { | ||||
|           background: unset; | ||||
|           font-weight: bold; | ||||
|           border-bottom: unset; | ||||
|           padding: 1rem !important; | ||||
|           padding-left: unset; | ||||
|           padding-bottom: 0.2rem; | ||||
|         } | ||||
|           #completions .sectionHeader { | ||||
|             background: unset; | ||||
|             font-weight: bold; | ||||
|             border-bottom: unset; | ||||
|             padding: 1rem !important; | ||||
|             padding-left: unset; | ||||
|             padding-bottom: 0.2rem; | ||||
|           } | ||||
| 
 | ||||
|         #cmdline_iframe { | ||||
|           position: fixed !important; | ||||
|           bottom: unset; | ||||
|           top: 25% !important; | ||||
|           left: 10% !important; | ||||
|           z-index: 2147483647 !important; | ||||
|           width: 80% !important; | ||||
|           box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 20px !important; | ||||
|         } | ||||
|           #cmdline_iframe { | ||||
|             position: fixed !important; | ||||
|             bottom: unset; | ||||
|             top: 25% !important; | ||||
|             left: 10% !important; | ||||
|             z-index: 2147483647 !important; | ||||
|             width: 80% !important; | ||||
|             box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 20px !important; | ||||
|           } | ||||
| 
 | ||||
|         .TridactylStatusIndicator { | ||||
|           position: fixed !important; | ||||
|           bottom: 0 !important; | ||||
|           background: var(--tridactyl-bg) !important; | ||||
|           border: unset !important; | ||||
|           border: 1px var(--green) solid !important; | ||||
|           font-size: 12pt !important; | ||||
|           padding: 0.8ex !important; | ||||
|         } | ||||
|           .TridactylStatusIndicator { | ||||
|             position: fixed !important; | ||||
|             bottom: 0 !important; | ||||
|             background: var(--tridactyl-bg) !important; | ||||
|             border: unset !important; | ||||
|             border: 1px var(--green) solid !important; | ||||
|             font-size: 12pt !important; | ||||
|             padding: 0.8ex !important; | ||||
|           } | ||||
| 
 | ||||
|         #completions .focused { | ||||
|           background: var(--green); | ||||
|           color: var(--bg); | ||||
|         } | ||||
|           #completions .focused { | ||||
|             background: var(--green); | ||||
|             color: var(--bg); | ||||
|           } | ||||
| 
 | ||||
|         #completions .focused .url { | ||||
|           background: var(--green); | ||||
|           color: var(--bg); | ||||
|         } | ||||
|       ''; | ||||
|           #completions .focused .url { | ||||
|             background: var(--green); | ||||
|             color: var(--bg); | ||||
|           } | ||||
|         ''; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -1,6 +1,9 @@ | |||
| { config, lib, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   config, | ||||
|   lib, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (config.colorscheme) palette; | ||||
|   inherit (lib) mkIf mkMerge; | ||||
| 
 | ||||
|  | @ -10,157 +13,159 @@ let | |||
|   vesktopMime = { | ||||
|     "x-scheme-handler/discord" = ["vesktop.desktop"]; | ||||
|   }; | ||||
| in | ||||
| 
 | ||||
| { | ||||
|   config = mkMerge [  | ||||
| in { | ||||
|   config = mkMerge [ | ||||
|     (mkIf (cfg.enable || discord == "vesktop") { | ||||
|     # <https://github.com/AlephNought0/Faery/blob/main/Home/Programs/Vesktop/patchedvesktop.patch> | ||||
|       home.packages = [  | ||||
|       # <https://github.com/AlephNought0/Faery/blob/main/Home/Programs/Vesktop/patchedvesktop.patch> | ||||
|       home.packages = [ | ||||
|         (pkgs.vesktop.overrideAttrs (old: { | ||||
|           patches = (old.patches or []) ++ [./vesktop-patch.patch]; | ||||
|         })) | ||||
|       ]; | ||||
| 
 | ||||
|       xdg.configFile."vesktop/themes/nix.css".text = /* css */ '' | ||||
|         /** | ||||
|           * @name nix-colors-minimal | ||||
|           * @author aoku | ||||
|           * @description minimal theme designed with nix colors | ||||
|       xdg.configFile."vesktop/themes/nix.css".text = | ||||
|         /* | ||||
|         css | ||||
|         */ | ||||
|    | ||||
|         :root { | ||||
|           --nix-bg1: #${palette.base00};  | ||||
|           --nix-bg2: #${palette.base01}; | ||||
|           --nix-bg3: #${palette.base02}; | ||||
|      | ||||
|           --nix-fg1: #${palette.base05}; | ||||
|           --nix-fg2: #${palette.base07}; | ||||
|           --nix-fg3: #${palette.base03}; | ||||
|           --nix-link: #${palette.base0D}; | ||||
|         '' | ||||
|           /** | ||||
|             * @name nix-colors-minimal | ||||
|             * @author aoku | ||||
|             * @description minimal theme designed with nix colors | ||||
|           */ | ||||
| 
 | ||||
|           --nix-accent: #${palette.base08}; | ||||
|           --nix-hi: #${palette.base0B};  | ||||
|           :root { | ||||
|             --nix-bg1: #${palette.base00}; | ||||
|             --nix-bg2: #${palette.base01}; | ||||
|             --nix-bg3: #${palette.base02}; | ||||
| 
 | ||||
|             --nix-fg1: #${palette.base05}; | ||||
|             --nix-fg2: #${palette.base07}; | ||||
|             --nix-fg3: #${palette.base03}; | ||||
|             --nix-link: #${palette.base0D}; | ||||
| 
 | ||||
|             --nix-accent: #${palette.base08}; | ||||
|             --nix-hi: #${palette.base0B}; | ||||
| 
 | ||||
|             --font-mono: ${fonts.monospace.family}, monospace; | ||||
|             --font-regular: ${fonts.regular.family}, sans serif; | ||||
| 
 | ||||
|             /* server collapse */ | ||||
|             --sb-collapsed-width: 12px; | ||||
|             --sb-transition-duration: 0s; | ||||
|           } | ||||
| 
 | ||||
|           .theme-dark { | ||||
|             --background-primary: var(--nix-bg1); | ||||
|             --background-secondary: var(--nix-bg1); | ||||
|             --background-secondary-alt: var(--nix-bg1); | ||||
|             --background-accent: var(--nix-accent); | ||||
|             --background-tertiary: var(--nix-bg1); | ||||
|             --background-floating: var(--nix-bg1); | ||||
|             --background-mentioned: var(--nix-bg1); | ||||
|             --background-mentioned-hover: var(--nix-bg1); | ||||
|             --background-mobile: var(--nix-bg1); | ||||
|             --background-mobile-secondary: var(--nix-bg2); | ||||
|             --background-modifier-selected: var(--nix-bg1); | ||||
|             --channeltextarea-background:var(--nix-bg1); | ||||
|             --background-modifier-hover:var(--nix-bg1); | ||||
|             --activity-card-background: var(--nix-bg2); | ||||
| 
 | ||||
|             --header-primary: var(--nix-fg2); | ||||
|             --header-secondary: var(--nix-fg1); | ||||
| 
 | ||||
|             --text-normal: var(--nix-fg1); | ||||
|             --text-muted: var(--nix-fg1); | ||||
|             --text-link: var(--nix-link); | ||||
|             --text-warning: var(--nix-accent); | ||||
|             --font-primary: var(--font-mono); | ||||
|             --font-headline: var(--font-mono); | ||||
|             --font-display: var(--font-mono); | ||||
| 
 | ||||
|             --interactive-normal: var(--nix-fg1); /*base05*/ | ||||
|             --interactive-hover: var(--nix-hi); /*base0B*/ | ||||
|             --interactive-active: var(--nix-fg2); | ||||
|             --interactive-muted: var(--nix-fg3); /*base03*/ | ||||
|             --channels-default: var(--nix-fg1); | ||||
| 
 | ||||
|             --scrollbar-thin-thumb: transparent; | ||||
|             --scrollbar-thin-track: transparent; | ||||
|             --scrollbar-auto-thumb: var(--nix-fg1); | ||||
|             --scrollbar-auto-track:var(--nix-bg1); | ||||
|             --scrollbar-auto-scrollbar-color-thumb: var(--nix-accent); | ||||
|           } | ||||
| 
 | ||||
|           .messagesWrapper_ea2b0b { | ||||
|               font-family: var(--font-regular); | ||||
|           } | ||||
| 
 | ||||
|           .titleWrapper__482dc { | ||||
|             font-family: var(--font-mono); | ||||
|           } | ||||
| 
 | ||||
|           .link__95dc0 /* text channel*/{ | ||||
|             border-radius: 0px; | ||||
|             margin-left: -10px; | ||||
|             font-family: var(--font-mono); | ||||
|           } | ||||
| 
 | ||||
|           .container_ca50b9 .avatar_f8541f { /*avatar*/ | ||||
|             display: none; | ||||
|           } | ||||
| 
 | ||||
|           .form__13a2c /* text input box resize */ { | ||||
|             height: 50px; | ||||
|             font-family: var(--font-regular); | ||||
|           } | ||||
| 
 | ||||
|           .containerDefault__3187b .wrapper__7bcde:before /* text channel */{ | ||||
|             content: ""; | ||||
|             display:inline-block; | ||||
|             background: var(--nix-hi); | ||||
|             height: 100%; | ||||
|             position: absolute; | ||||
|             left: 0; | ||||
|           } | ||||
| 
 | ||||
|           --font-mono: ${fonts.monospace.family}, monospace; | ||||
|           --font-regular: ${fonts.regular.family}, sans serif; | ||||
| 
 | ||||
|           /* server collapse */ | ||||
|           --sb-collapsed-width: 12px; | ||||
|           --sb-transition-duration: 0s; | ||||
|         } | ||||
|           .guilds__2b93a /* servers */{ | ||||
|               overflow: hidden !important; | ||||
|               width: var(--sb-collapsed-width, 75px); | ||||
|               transition: width var(--sb-transition-duration); | ||||
|           } | ||||
|           .guilds__2b93a:hover /* expand server bar on hover */{ | ||||
|               width: 70px; | ||||
|               overflow: visible !important; | ||||
|               animation: server-bar-overflow 0s linear 0ms forwards | ||||
|           } | ||||
|           .guilds__2b93a ~ .base__3e6af /* friends list, chat */{ | ||||
|               position: absolute; | ||||
|               left: var(--sb-collapsed-left, var(--sb-collapsed-width)); | ||||
|               top: var(--sb-collapsed-top, 0px); | ||||
|               bottom: var(--sb-collapsed-bottom, 0px); | ||||
|               right: var(--sb-collapsed-right, 0px); | ||||
|               transition-property: var(--sb-transition-property, left); | ||||
|               transition-duration: var(--sb-transition-duration); | ||||
|           } | ||||
|           .guilds__2b93a:hover ~ .base__3e6af /* friends list, chat */{ | ||||
|               position: absolute; | ||||
|               left: var(--sb-left, 70px); | ||||
|               top: var(--sb-top, 0px); | ||||
|               bottom: var(--sb-bottom, 0px); | ||||
|               right: var(--sb-right, 0px); | ||||
|           } | ||||
|           @keyframes server-bar-overflow{ | ||||
|               from{ | ||||
|                   overflow: hidden; | ||||
|               } | ||||
|               to{ | ||||
|                   overflow: visible; | ||||
|               } | ||||
|           } | ||||
|         ''; | ||||
|     }) | ||||
| 
 | ||||
|         .theme-dark { | ||||
|           --background-primary: var(--nix-bg1); | ||||
|           --background-secondary: var(--nix-bg1); | ||||
|           --background-secondary-alt: var(--nix-bg1); | ||||
|           --background-accent: var(--nix-accent); | ||||
|           --background-tertiary: var(--nix-bg1); | ||||
|           --background-floating: var(--nix-bg1); | ||||
|           --background-mentioned: var(--nix-bg1); | ||||
|           --background-mentioned-hover: var(--nix-bg1); | ||||
|           --background-mobile: var(--nix-bg1); | ||||
|           --background-mobile-secondary: var(--nix-bg2); | ||||
|           --background-modifier-selected: var(--nix-bg1); | ||||
|           --channeltextarea-background:var(--nix-bg1); | ||||
|           --background-modifier-hover:var(--nix-bg1); | ||||
|           --activity-card-background: var(--nix-bg2); | ||||
| 
 | ||||
|           --header-primary: var(--nix-fg2); | ||||
|           --header-secondary: var(--nix-fg1); | ||||
|        | ||||
|           --text-normal: var(--nix-fg1); | ||||
|           --text-muted: var(--nix-fg1); | ||||
|           --text-link: var(--nix-link); | ||||
|           --text-warning: var(--nix-accent); | ||||
|           --font-primary: var(--font-mono); | ||||
|           --font-headline: var(--font-mono); | ||||
|           --font-display: var(--font-mono); | ||||
|        | ||||
|           --interactive-normal: var(--nix-fg1); /*base05*/ | ||||
|           --interactive-hover: var(--nix-hi); /*base0B*/ | ||||
|           --interactive-active: var(--nix-fg2); | ||||
|           --interactive-muted: var(--nix-fg3); /*base03*/ | ||||
|           --channels-default: var(--nix-fg1); | ||||
|        | ||||
|           --scrollbar-thin-thumb: transparent; | ||||
|           --scrollbar-thin-track: transparent; | ||||
|           --scrollbar-auto-thumb: var(--nix-fg1); | ||||
|           --scrollbar-auto-track:var(--nix-bg1); | ||||
|           --scrollbar-auto-scrollbar-color-thumb: var(--nix-accent); | ||||
|         } | ||||
| 
 | ||||
|         .messagesWrapper_ea2b0b { | ||||
|             font-family: var(--font-regular); | ||||
|         } | ||||
| 
 | ||||
|         .titleWrapper__482dc { | ||||
|           font-family: var(--font-mono); | ||||
|         } | ||||
| 
 | ||||
|         .link__95dc0 /* text channel*/{ | ||||
|           border-radius: 0px; | ||||
|           margin-left: -10px; | ||||
|           font-family: var(--font-mono); | ||||
|         } | ||||
| 
 | ||||
|         .container_ca50b9 .avatar_f8541f { /*avatar*/ | ||||
|           display: none; | ||||
|         } | ||||
| 
 | ||||
|         .form__13a2c /* text input box resize */ { | ||||
|           height: 50px; | ||||
|           font-family: var(--font-regular); | ||||
|         } | ||||
| 
 | ||||
|         .containerDefault__3187b .wrapper__7bcde:before /* text channel */{ | ||||
|           content: ""; | ||||
|           display:inline-block; | ||||
|           background: var(--nix-hi); | ||||
|           height: 100%; | ||||
|           position: absolute; | ||||
|           left: 0; | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         /* server collapse */ | ||||
|         .guilds__2b93a /* servers */{ | ||||
|             overflow: hidden !important; | ||||
|             width: var(--sb-collapsed-width, 75px); | ||||
|             transition: width var(--sb-transition-duration); | ||||
|         } | ||||
|         .guilds__2b93a:hover /* expand server bar on hover */{ | ||||
|             width: 70px; | ||||
|             overflow: visible !important; | ||||
|             animation: server-bar-overflow 0s linear 0ms forwards | ||||
|         } | ||||
|         .guilds__2b93a ~ .base__3e6af /* friends list, chat */{ | ||||
|             position: absolute; | ||||
|             left: var(--sb-collapsed-left, var(--sb-collapsed-width)); | ||||
|             top: var(--sb-collapsed-top, 0px); | ||||
|             bottom: var(--sb-collapsed-bottom, 0px); | ||||
|             right: var(--sb-collapsed-right, 0px); | ||||
|             transition-property: var(--sb-transition-property, left); | ||||
|             transition-duration: var(--sb-transition-duration); | ||||
|         } | ||||
|         .guilds__2b93a:hover ~ .base__3e6af /* friends list, chat */{ | ||||
|             position: absolute; | ||||
|             left: var(--sb-left, 70px); | ||||
|             top: var(--sb-top, 0px); | ||||
|             bottom: var(--sb-bottom, 0px); | ||||
|             right: var(--sb-right, 0px); | ||||
|         } | ||||
|         @keyframes server-bar-overflow{ | ||||
|             from{ | ||||
|                 overflow: hidden; | ||||
|             } | ||||
|             to{ | ||||
|                 overflow: visible; | ||||
|             } | ||||
|         } | ||||
|       ''; | ||||
|       }) | ||||
|      | ||||
|     (mkIf (discord == "vesktop") { | ||||
|       ooknet.binds.discord = "vesktop"; | ||||
|       xdg.mimeApps = { | ||||
|  |  | |||
|  | @ -1,12 +1,13 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.creative.audacity; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     home.packages = [ pkgs.audacity ]; | ||||
|     home.packages = [pkgs.audacity]; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -1,13 +1,13 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.creative.inkscape; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     home.packages = [ pkgs.inkscape-with-extensions ]; | ||||
|     home.packages = [pkgs.inkscape-with-extensions]; | ||||
|   }; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ | |||
|     ./terminal | ||||
|     ./wayland | ||||
|     ./productivity | ||||
|     ./gaming  | ||||
|     ./gaming | ||||
|     ./security | ||||
|     ./tools | ||||
|     ./file-manager | ||||
|  |  | |||
|  | @ -1,25 +1,26 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf mkMerge; | ||||
|   cfg = config.ooknet.fileManager.nemo; | ||||
|   fileManager = config.ooknet.desktop.fileManager; | ||||
|   nemoMime = { | ||||
|     "inode/directory" = ["nemo.desktop"]; | ||||
|   }; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkMerge [ | ||||
|     (mkIf (cfg.enable || fileManager == "nemo") { | ||||
|       home.packages = [ pkgs.cinnamon.nemo-with-extensions ]; | ||||
|       home.packages = [pkgs.cinnamon.nemo-with-extensions]; | ||||
|     }) | ||||
| 
 | ||||
|     (mkIf (fileManager == "nemo") { | ||||
|      ooknet.binds.fileManager = "nemo";  | ||||
|       ooknet.binds.fileManager = "nemo"; | ||||
|       xdg.mimeApps = { | ||||
|         associations.added = nemoMime; | ||||
|         defaultApplications = nemoMime;     | ||||
|         defaultApplications = nemoMime; | ||||
|       }; | ||||
|     }) | ||||
|   ]; | ||||
|  |  | |||
|  | @ -1,15 +1,15 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.gaming.bottles; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     home.packages = with pkgs; [ | ||||
|       bottles | ||||
|     ]; | ||||
|   }; | ||||
|    | ||||
| } | ||||
|  |  | |||
|  | @ -1,11 +1,12 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
|   cfg = config.ooknet.gaming.factorio; | ||||
| in | ||||
| 
 | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   cfg = config.ooknet.gaming.factorio; | ||||
| in { | ||||
|   config = lib.mkIf cfg.enable { | ||||
|     home.packages = with pkgs; [ factorio ]; | ||||
|     home.packages = with pkgs; [factorio]; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -1,11 +1,12 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.gaming.lutris; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     home.packages = with pkgs; [ | ||||
|       (lutris.override { | ||||
|  |  | |||
|  | @ -1,11 +1,12 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.gaming.wine; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     home.packages = with pkgs; [ | ||||
|       winetricks | ||||
|  |  | |||
|  | @ -1,14 +1,14 @@ | |||
| { lib, config, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.media.image.imv; | ||||
|   imvMime = { | ||||
|     "image/*" = ["imv.desktop"]; | ||||
|   }; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     programs = { | ||||
|       imv = { | ||||
|  |  | |||
|  | @ -1,17 +1,18 @@ | |||
| { osConfig, pkgs, config, lib, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   osConfig, | ||||
|   pkgs, | ||||
|   config, | ||||
|   lib, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (config.colorscheme) palette; | ||||
|   inherit (lib) mkIf getExe; | ||||
| 
 | ||||
|   cfg = config.ooknet.media.music.tui; | ||||
|   zellij = config.ooknet.multiplexer.zellij; | ||||
|   multiplexer= config.ooknet.console.multiplexer; | ||||
|   multiplexer = config.ooknet.console.multiplexer; | ||||
|   hostName = osConfig.networking.hostName; | ||||
| 
 | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     home.packages = with pkgs; [ | ||||
|       termusic | ||||
|  | @ -43,89 +44,97 @@ in | |||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     xdg.configFile."spotify-player/app.toml".text =  /* toml */ '' | ||||
|       theme = "default" | ||||
|       client_id = "fc4c3656d7cc4a7ea70c6080965f8b1a" | ||||
|       client_port = 8080 | ||||
|       tracks_playback_limit = 50 | ||||
|       playback_format = "{track} • {artists}\n{album}\n{metadata}" | ||||
|       notify_format = { summary = "{track} • {artists}", body = "{album}" } | ||||
|       app_refresh_duration_in_ms = 32 | ||||
|       playback_refresh_duration_in_ms = 0 | ||||
|       page_size_in_rows = 20 | ||||
|       enable_media_control = false | ||||
|       enable_streaming = "Always" | ||||
|       enable_notify = true | ||||
|       enable_cover_image_cache = false | ||||
|       notify_streaming_only = false | ||||
|       default_device = "${hostName}" | ||||
|       play_icon = "▶" | ||||
|       pause_icon = "▌▌" | ||||
|       liked_icon = "♥" | ||||
|       playback_window_position = "Top" | ||||
|       cover_img_length = 9 | ||||
|       cover_img_width = 5 | ||||
|       playback_window_width = 6 | ||||
|     xdg.configFile."spotify-player/app.toml".text = | ||||
|       /* | ||||
|       toml | ||||
|       */ | ||||
|       '' | ||||
|         theme = "default" | ||||
|         client_id = "fc4c3656d7cc4a7ea70c6080965f8b1a" | ||||
|         client_port = 8080 | ||||
|         tracks_playback_limit = 50 | ||||
|         playback_format = "{track} • {artists}\n{album}\n{metadata}" | ||||
|         notify_format = { summary = "{track} • {artists}", body = "{album}" } | ||||
|         app_refresh_duration_in_ms = 32 | ||||
|         playback_refresh_duration_in_ms = 0 | ||||
|         page_size_in_rows = 20 | ||||
|         enable_media_control = false | ||||
|         enable_streaming = "Always" | ||||
|         enable_notify = true | ||||
|         enable_cover_image_cache = false | ||||
|         notify_streaming_only = false | ||||
|         default_device = "${hostName}" | ||||
|         play_icon = "▶" | ||||
|         pause_icon = "▌▌" | ||||
|         liked_icon = "♥" | ||||
|         playback_window_position = "Top" | ||||
|         cover_img_length = 9 | ||||
|         cover_img_width = 5 | ||||
|         playback_window_width = 6 | ||||
| 
 | ||||
|       [device] | ||||
|       name = "${hostName}" | ||||
|       device_type = "speaker" | ||||
|       volume = 100 | ||||
|       bitrate = 320 | ||||
|       audio_cache = false | ||||
|       normalization = false | ||||
|     ''; | ||||
|      | ||||
|     xdg.configFile."zellij/layouts/music.kdl".text = mkIf (zellij.enable || multiplexer == "zellij") /* kdl */ '' | ||||
|       layout { | ||||
|       default_tab_template { | ||||
|           pane size=2 borderless=true { | ||||
|               plugin location="file:${pkgs.zjstatus}/bin/zjstatus.wasm" { | ||||
|                   format_left   "{mode}" | ||||
|                   format_right  "{session} {datetime}" | ||||
|                   format_center "#[fg=#89B4FA,bold] {tabs}" | ||||
|                   format_space  "" | ||||
|         [device] | ||||
|         name = "${hostName}" | ||||
|         device_type = "speaker" | ||||
|         volume = 100 | ||||
|         bitrate = 320 | ||||
|         audio_cache = false | ||||
|         normalization = false | ||||
|       ''; | ||||
| 
 | ||||
|                   border_enabled  "true" | ||||
|                   border_char     "─" | ||||
|                   border_format   "#[fg=#${palette.base0D}]{char}" | ||||
|                   border_position "bottom" | ||||
|     xdg.configFile."zellij/layouts/music.kdl".text = | ||||
|       mkIf (zellij.enable || multiplexer == "zellij") | ||||
|       /* | ||||
|       kdl | ||||
|       */ | ||||
|       '' | ||||
|         layout { | ||||
|         default_tab_template { | ||||
|             pane size=2 borderless=true { | ||||
|                 plugin location="file:${pkgs.zjstatus}/bin/zjstatus.wasm" { | ||||
|                     format_left   "{mode}" | ||||
|                     format_right  "{session} {datetime}" | ||||
|                     format_center "#[fg=#89B4FA,bold] {tabs}" | ||||
|                     format_space  "" | ||||
| 
 | ||||
|                   hide_frame_for_single_pane "true" | ||||
|                     border_enabled  "true" | ||||
|                     border_char     "─" | ||||
|                     border_format   "#[fg=#${palette.base0D}]{char}" | ||||
|                     border_position "bottom" | ||||
| 
 | ||||
|                   mode_normal       "#[fg=${palette.base0D}]" | ||||
|              | ||||
|                   tab_normal   "#[bg=#${palette.base01}] {name} " | ||||
|                   tab_active   "#[bg=#${palette.base02}] {name} " | ||||
|                   tab_separator "  " | ||||
|                     hide_frame_for_single_pane "true" | ||||
| 
 | ||||
|                   datetime        "#[fg=#${palette.base05},bold] {format} " | ||||
|                   datetime_format "%I:%M %p" | ||||
|                   datetime_timezone "${config.home.sessionVariables.TZ}" | ||||
|               } | ||||
|           } | ||||
|           children | ||||
|       } | ||||
|                     mode_normal       "#[fg=${palette.base0D}]" | ||||
| 
 | ||||
|           tab name="spotify" focus=true { | ||||
|               pane name="spotify" { | ||||
|                   borderless true | ||||
|                   command "${getExe pkgs.spotify-player}" | ||||
|                   focus true | ||||
|               } | ||||
|               pane name="Visualizer" { | ||||
|                   borderless false | ||||
|                   split_direction "horizontal" | ||||
|                   size "20%" | ||||
|                   command "${getExe pkgs.cava}" | ||||
|               } | ||||
|           } | ||||
|       } | ||||
|     ''; | ||||
|                     tab_normal   "#[bg=#${palette.base01}] {name} " | ||||
|                     tab_active   "#[bg=#${palette.base02}] {name} " | ||||
|                     tab_separator "  " | ||||
| 
 | ||||
|                     datetime        "#[fg=#${palette.base05},bold] {format} " | ||||
|                     datetime_format "%I:%M %p" | ||||
|                     datetime_timezone "${config.home.sessionVariables.TZ}" | ||||
|                 } | ||||
|             } | ||||
|             children | ||||
|         } | ||||
| 
 | ||||
|             tab name="spotify" focus=true { | ||||
|                 pane name="spotify" { | ||||
|                     borderless true | ||||
|                     command "${getExe pkgs.spotify-player}" | ||||
|                     focus true | ||||
|                 } | ||||
|                 pane name="Visualizer" { | ||||
|                     borderless false | ||||
|                     split_direction "horizontal" | ||||
|                     size "20%" | ||||
|                     command "${getExe pkgs.cava}" | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|       ''; | ||||
| 
 | ||||
|     home.shellAliases = mkIf (zellij.enable || multiplexer == "zellij") { | ||||
|       zjm = "zellij --layout music"; | ||||
|     }; | ||||
|   }; | ||||
|    | ||||
| } | ||||
|  |  | |||
|  | @ -1,12 +1,13 @@ | |||
| { pkgs, lib, config, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   pkgs, | ||||
|   lib, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.media.video.jellyfinPlayer; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     home.packages = [ pkgs.jellyfin-media-player ]; | ||||
|     home.packages = [pkgs.jellyfin-media-player]; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -1,22 +1,22 @@ | |||
| { lib, config, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.media.video.mpv; | ||||
|   mpvMime = { | ||||
|     "audio/*" = ["mpv.desktop"]; | ||||
|     "video/*" = ["mpv.desktop"]; | ||||
|   }; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     programs.mpv = { | ||||
|       enable = true; | ||||
|     }; | ||||
|     xdg.mimeApps = { | ||||
|       associations.added = mpvMime; | ||||
|       defaultApplications = mpvMime;       | ||||
|       defaultApplications = mpvMime; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -1,13 +1,14 @@ | |||
| { lib, config, pkgs, ...}: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.media.video.youtube; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     home.packages = [ pkgs.youtube-tui ]; | ||||
|     home.packages = [pkgs.youtube-tui]; | ||||
|     programs.yt-dlp = { | ||||
|       enable = true; | ||||
|     }; | ||||
|  |  | |||
|  | @ -1,6 +1,4 @@ | |||
| { ... }: | ||||
| 
 | ||||
| { | ||||
| {...}: { | ||||
|   imports = [ | ||||
|     ./office | ||||
|     ./notes | ||||
|  |  | |||
|  | @ -1,6 +1,9 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf mkMerge hm; | ||||
|   cfg = config.ooknet.productivity.notes.obsidian; | ||||
|   notes = config.ooknet.desktop.notes; | ||||
|  | @ -8,17 +11,20 @@ let | |||
|   # TODO: use admin.githubUsername | ||||
|   notesRepo = "git@github.com:ooks-io/notes.git"; | ||||
|   notesPath = "${config.xdg.userDirs.documents}/notes"; | ||||
| in | ||||
| 
 | ||||
| { | ||||
|   config = mkMerge [  | ||||
| in { | ||||
|   config = mkMerge [ | ||||
|     (mkIf (cfg.enable || notes == "obsidian") { | ||||
|       home.packages = [ pkgs.obsidian ]; | ||||
|       home.activation.cloneObsidianVault = hm.dag.entryAfter ["installPackages"] /* shell */ '' | ||||
|         if ! [ -d "${notesPath}" ]; then | ||||
|           $DRY_RUN_CMD git clone ${notesRepo} ${notesPath} | ||||
|         fi | ||||
|       ''; | ||||
|       home.packages = [pkgs.obsidian]; | ||||
|       home.activation.cloneObsidianVault = | ||||
|         hm.dag.entryAfter ["installPackages"] | ||||
|         /* | ||||
|         shell | ||||
|         */ | ||||
|         '' | ||||
|           if ! [ -d "${notesPath}" ]; then | ||||
|             $DRY_RUN_CMD git clone ${notesRepo} ${notesPath} | ||||
|           fi | ||||
|         ''; | ||||
|     }) | ||||
| 
 | ||||
|     (mkIf (notes == "obsidian") { | ||||
|  |  | |||
|  | @ -1,13 +1,14 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf mkEnableOption; | ||||
|   cfg = config.ooknet.desktop.productivity.office; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   options.ooknet.desktop.productivity.office.enable = mkEnableOption "enable office home module"; | ||||
|   config = mkIf cfg.enable { | ||||
|     home.packages = [ pkgs.libreoffice ]; | ||||
|     home.packages = [pkgs.libreoffice]; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -1,16 +1,16 @@ | |||
| { lib, config, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (config.colorscheme) palette; | ||||
|   inherit (lib) mkIf; | ||||
|    | ||||
|   zathura = { "application/pdf" = ["org.pwmt.zathura.desktop"]; }; | ||||
| 
 | ||||
|   zathura = {"application/pdf" = ["org.pwmt.zathura.desktop"];}; | ||||
|   cfg = config.ooknet.productivity.pdf.zathura; | ||||
|   pdf = config.ooknet.desktop.pdf; | ||||
|   fonts = config.ooknet.fonts; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (cfg.enable || pdf == "zathura") { | ||||
|     programs.zathura = { | ||||
|       enable = true; | ||||
|  |  | |||
|  | @ -1,20 +1,21 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
|   inherit (lib) mkIf;  | ||||
|   polkit = config.ooknet.security.polkit; | ||||
| in | ||||
| 
 | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   polkit = config.ooknet.security.polkit; | ||||
| in { | ||||
|   config = { | ||||
|     systemd.user.services = { | ||||
|       polkit-pantheon-authentication-agent-1 = mkIf (polkit == "pantheon") { | ||||
|         Unit.Description = "polkit-pantheon-authentication-agent-1"; | ||||
| 
 | ||||
|         Install = { | ||||
|           WantedBy = [ "graphical-session.target" ]; | ||||
|           Wants = [ "graphical-session.target" ]; | ||||
|           After = [ "graphical-session.target" ]; | ||||
|           WantedBy = ["graphical-session.target"]; | ||||
|           Wants = ["graphical-session.target"]; | ||||
|           After = ["graphical-session.target"]; | ||||
|         }; | ||||
| 
 | ||||
|         Service = { | ||||
|  | @ -29,9 +30,9 @@ in | |||
|       polkit-gnome-authentication-agent-1 = mkIf (polkit == "gnome") { | ||||
|         Unit.Description = "polkit-pantheon-authentication-agent-1"; | ||||
|         Install = { | ||||
|           WantedBy = [ "graphical-session.target" ]; | ||||
|           Wants = [ "graphical-session.target" ]; | ||||
|           After = [ "graphical-session.target" ]; | ||||
|           WantedBy = ["graphical-session.target"]; | ||||
|           Wants = ["graphical-session.target"]; | ||||
|           After = ["graphical-session.target"]; | ||||
|         }; | ||||
| 
 | ||||
|         Service = { | ||||
|  |  | |||
|  | @ -1,82 +1,82 @@ | |||
| { config, lib, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   config, | ||||
|   lib, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (config.colorscheme) palette; | ||||
|   inherit (lib) mkMerge mkIf; | ||||
|   fonts = config.ooknet.fonts; | ||||
|   cfg = config.ooknet.terminal.foot; | ||||
|   desktop = config.ooknet.desktop; | ||||
| in | ||||
| in { | ||||
|   config = mkMerge [ | ||||
|     (mkIf (cfg.enable || desktop.terminal == "foot") { | ||||
|       programs.foot = { | ||||
|         enable = true; | ||||
|         server.enable = true; | ||||
|         settings = { | ||||
|           main = { | ||||
|             term = "xterm-256color"; | ||||
|             font = "${fonts.monospace.family}:pixelsize=18:antialias=true"; | ||||
|             font-bold = "${fonts.monospace.family}:style=Bold:pixelsize=18:antialias=true"; | ||||
|             font-italic = "${fonts.monospace.family}:style=Italic:pixelsize=18:antialias=true"; | ||||
|             font-bold-italic = "${fonts.monospace.family}:style=Bold Italic:pixelsize=18:antialias=true"; | ||||
|             dpi-aware = "yes"; | ||||
|             letter-spacing = "-1px"; | ||||
|             bold-text-in-bright = "palette-based"; | ||||
|             resize-delay-ms = "80"; | ||||
|             pad = "9x9 center"; | ||||
|             selection-target = "clipboard"; | ||||
|           }; | ||||
| 
 | ||||
| { | ||||
|   config = mkMerge [  | ||||
|   (mkIf (cfg.enable || desktop.terminal == "foot") { | ||||
|     programs.foot = { | ||||
|       enable = true; | ||||
|       server.enable = true; | ||||
|       settings = { | ||||
|         main = { | ||||
|           term = "xterm-256color"; | ||||
|           font = "${fonts.monospace.family}:pixelsize=18:antialias=true"; | ||||
|           font-bold = "${fonts.monospace.family}:style=Bold:pixelsize=18:antialias=true"; | ||||
|           font-italic = "${fonts.monospace.family}:style=Italic:pixelsize=18:antialias=true"; | ||||
|           font-bold-italic = "${fonts.monospace.family}:style=Bold Italic:pixelsize=18:antialias=true"; | ||||
|           dpi-aware = "yes"; | ||||
|           letter-spacing = "-1px"; | ||||
|           bold-text-in-bright = "palette-based"; | ||||
|           resize-delay-ms = "80";        | ||||
|           pad = "9x9 center"; | ||||
|           selection-target = "clipboard"; | ||||
|         }; | ||||
|           tweak = { | ||||
|             sixel = "yes"; | ||||
|             font-monospace-warn = "no"; | ||||
|           }; | ||||
| 
 | ||||
|         tweak = { | ||||
|           sixel = "yes"; | ||||
|           font-monospace-warn = "no";   | ||||
|         }; | ||||
|          | ||||
|         cursor = { | ||||
|           style = "beam"; | ||||
|           blink = "yes"; | ||||
|         }; | ||||
|           cursor = { | ||||
|             style = "beam"; | ||||
|             blink = "yes"; | ||||
|           }; | ||||
| 
 | ||||
|         colors = { | ||||
|           alpha = 1.0; | ||||
|           foreground = "${palette.base05}"; | ||||
|           background = "${palette.base00}"; | ||||
|           regular0 = "${palette.base00}"; # black | ||||
|           regular1 = "${palette.base08}"; # red | ||||
|           regular2 = "${palette.base0B}"; # green | ||||
|           regular3 = "${palette.base0A}"; # yellow | ||||
|           regular4 = "${palette.base0D}"; # blue | ||||
|           regular5 = "${palette.base0E}"; # magenta | ||||
|           regular6 = "${palette.base0C}"; # cyan | ||||
|           regular7 = "${palette.base05}"; # white | ||||
|           bright0 = "${palette.base03}"; # bright black | ||||
|           bright1 = "${palette.base08}"; # bright red | ||||
|           bright2 = "${palette.base0B}"; # bright green | ||||
|           bright3 = "${palette.base0A}"; # bright yellow | ||||
|           bright4 = "${palette.base0D}"; # bright blue | ||||
|           bright5 = "${palette.base0E}"; # bright magenta | ||||
|           bright6 = "${palette.base0C}"; # bright cyan | ||||
|           bright7 = "${palette.base07}"; # bright white | ||||
|           "16" = "${palette.base09}"; | ||||
|           "17" = "${palette.base0F}"; | ||||
|           "18" = "${palette.base01}"; | ||||
|           "19" = "${palette.base02}"; | ||||
|           "20" = "${palette.base04}"; | ||||
|           "21" = "${palette.base06}"; | ||||
|           colors = { | ||||
|             alpha = 1.0; | ||||
|             foreground = "${palette.base05}"; | ||||
|             background = "${palette.base00}"; | ||||
|             regular0 = "${palette.base00}"; # black | ||||
|             regular1 = "${palette.base08}"; # red | ||||
|             regular2 = "${palette.base0B}"; # green | ||||
|             regular3 = "${palette.base0A}"; # yellow | ||||
|             regular4 = "${palette.base0D}"; # blue | ||||
|             regular5 = "${palette.base0E}"; # magenta | ||||
|             regular6 = "${palette.base0C}"; # cyan | ||||
|             regular7 = "${palette.base05}"; # white | ||||
|             bright0 = "${palette.base03}"; # bright black | ||||
|             bright1 = "${palette.base08}"; # bright red | ||||
|             bright2 = "${palette.base0B}"; # bright green | ||||
|             bright3 = "${palette.base0A}"; # bright yellow | ||||
|             bright4 = "${palette.base0D}"; # bright blue | ||||
|             bright5 = "${palette.base0E}"; # bright magenta | ||||
|             bright6 = "${palette.base0C}"; # bright cyan | ||||
|             bright7 = "${palette.base07}"; # bright white | ||||
|             "16" = "${palette.base09}"; | ||||
|             "17" = "${palette.base0F}"; | ||||
|             "18" = "${palette.base01}"; | ||||
|             "19" = "${palette.base02}"; | ||||
|             "20" = "${palette.base04}"; | ||||
|             "21" = "${palette.base06}"; | ||||
|           }; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
|   }) | ||||
|     }) | ||||
| 
 | ||||
|   (mkIf (desktop.terminal == "foot") { | ||||
|     home.sessionVariables = { | ||||
|       TERMINAL = "foot"; | ||||
|       TERM = "foot"; | ||||
|     }; | ||||
|     ooknet.binds.terminal = "foot"; | ||||
|     ooknet.binds.terminalLaunch = "foot"; | ||||
|     (mkIf (desktop.terminal == "foot") { | ||||
|       home.sessionVariables = { | ||||
|         TERMINAL = "foot"; | ||||
|         TERM = "foot"; | ||||
|       }; | ||||
|       ooknet.binds.terminal = "foot"; | ||||
|       ooknet.binds.terminalLaunch = "foot"; | ||||
|     }) | ||||
|   ]; | ||||
| } | ||||
|  |  | |||
|  | @ -1,17 +1,17 @@ | |||
| { config, lib, osConfig, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   config, | ||||
|   lib, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   inherit (config.colorscheme) palette; | ||||
|   fonts = config.ooknet.fonts; | ||||
|   cfg = config.ooknet.terminal.kitty; | ||||
|   terminal = config.ooknet.desktop.terminal; | ||||
|   shell = osConfig.ooknet.host.admin.shell; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (cfg.enable || terminal == "kitty") { | ||||
| 
 | ||||
|     home.sessionVariables = mkIf (terminal == "kitty") { | ||||
|       TERMINAL = "kitty -1"; | ||||
|       TERM = "kitty -1"; | ||||
|  |  | |||
|  | @ -1,11 +1,11 @@ | |||
| { osConfig, lib, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   osConfig, | ||||
|   lib, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = osConfig.ooknet.programs._1password; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     ooknet.binds.password = "1password"; | ||||
|   }; | ||||
|  |  | |||
|  | @ -1,11 +1,11 @@ | |||
| { lib, osConfig, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = osConfig.ooknet.programs.kdeconnect; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     services.kdeconnect = { | ||||
|       enable = true; | ||||
|  |  | |||
|  | @ -1,42 +1,47 @@ | |||
| { lib, osConfig, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   osConfig, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   inherit (builtins) elem; | ||||
|   features = osConfig.ooknet.host.hardware.features; | ||||
|   ookbrightness = pkgs.writeShellApplication { | ||||
|     name = "ookbrightness"; | ||||
|     runtimeInputs = with pkgs; [brillo libnotify]; | ||||
|     text = /* bash */ '' | ||||
|       BRIGHTNESS=$(brillo -G | awk -F'.' '{print$1}') | ||||
|       notify() { | ||||
|         notify-send --app-name="system-notify" -h string:x-canonical-private-synchronous:sys-notify "  $BRIGHTNESS%" | ||||
|       } | ||||
|       option() { | ||||
|         case "$1" in | ||||
|         up) | ||||
|           brillo -q -u 30000 -A 5 | ||||
|           ;; | ||||
|         down) | ||||
|           brillo -q -u 30000 -U 5 | ||||
|           ;; | ||||
|         *) | ||||
|           echo "Invalid argument" | ||||
|           ;; | ||||
|         esac | ||||
|       } | ||||
|       main() { | ||||
|         option "$@" | ||||
|         notify | ||||
|       } | ||||
|       main "$@" | ||||
|     ''; | ||||
|     text = | ||||
|       /* | ||||
|       bash | ||||
|       */ | ||||
|       '' | ||||
|         BRIGHTNESS=$(brillo -G | awk -F'.' '{print$1}') | ||||
|         notify() { | ||||
|           notify-send --app-name="system-notify" -h string:x-canonical-private-synchronous:sys-notify "  $BRIGHTNESS%" | ||||
|         } | ||||
|         option() { | ||||
|           case "$1" in | ||||
|           up) | ||||
|             brillo -q -u 30000 -A 5 | ||||
|             ;; | ||||
|           down) | ||||
|             brillo -q -u 30000 -U 5 | ||||
|             ;; | ||||
|           *) | ||||
|             echo "Invalid argument" | ||||
|             ;; | ||||
|           esac | ||||
|         } | ||||
|         main() { | ||||
|           option "$@" | ||||
|           notify | ||||
|         } | ||||
|         main "$@" | ||||
|       ''; | ||||
|   }; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (elem "backlight" features) { | ||||
|     home.packages = [ ookbrightness ]; | ||||
|     home.packages = [ookbrightness]; | ||||
|     ooknet.binds.brightness = { | ||||
|       up = "ookbrightness up"; | ||||
|       down = "ookbrightness down"; | ||||
|  |  | |||
|  | @ -1,14 +1,15 @@ | |||
| { lib, config, inputs, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   inputs, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   launcher = config.ooknet.wayland.launcher; | ||||
| in | ||||
| 
 | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (launcher == "rofi") { | ||||
|     home.packages = [ inputs.ooks-scripts.packages.${pkgs.system}.powermenu ]; | ||||
|     home.packages = [inputs.ooks-scripts.packages.${pkgs.system}.powermenu]; | ||||
|     ooknet.binds.powerMenu = "powermenu -c dmenu"; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -1,6 +1,9 @@ | |||
| { lib, pkgs, osConfig, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   inherit (builtins) elem; | ||||
|   features = osConfig.ooknet.host.hardware.features; | ||||
|  | @ -33,11 +36,9 @@ let | |||
|       main "$@" | ||||
|     ''; | ||||
|   }; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (elem "audio" features) { | ||||
|     home.packages = [ ookvolume ]; | ||||
|     home.packages = [ookvolume]; | ||||
|     ooknet.binds.volume = { | ||||
|       up = "ookvolume up"; | ||||
|       down = "ookvolume down"; | ||||
|  |  | |||
|  | @ -1,234 +1,239 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   multiplexer = config.ooknet.console.multiplexer; | ||||
|   launcher = config.ooknet.wayland.launcher; | ||||
|   binds = config.ooknet.binds; | ||||
|   zellijmenu = pkgs.writeShellApplication { | ||||
|     name = "zellijmenu"; | ||||
|     runtimeInputs = with pkgs; [ coreutils rofi-wayland ]; | ||||
|     text = /* bash */ '' | ||||
|       set -e | ||||
|     runtimeInputs = with pkgs; [coreutils rofi-wayland]; | ||||
|     text = | ||||
|       /* | ||||
|       bash | ||||
|       */ | ||||
|       '' | ||||
|         set -e | ||||
| 
 | ||||
|       type="" | ||||
|       type_dir="" | ||||
|       project_name="" | ||||
|       project_dir="" | ||||
|       session_name="" | ||||
|       layout="" | ||||
|       spawn_terminal=0 | ||||
|         type="" | ||||
|         type_dir="" | ||||
|         project_name="" | ||||
|         project_dir="" | ||||
|         session_name="" | ||||
|         layout="" | ||||
|         spawn_terminal=0 | ||||
| 
 | ||||
|       while [[ "$#" -gt 0 ]]; do | ||||
|         case $1 in | ||||
|         -n) spawn_terminal=1 ;; | ||||
|         *) | ||||
|           echo "Unknown parameter: $1" >&2 | ||||
|           exit 1 | ||||
|           ;; | ||||
|         esac | ||||
|         shift | ||||
|       done | ||||
| 
 | ||||
|       rofi_cmd() { | ||||
|         MSG=$1 | ||||
|         rofi -dmenu -i -mesg "$MSG" | ||||
|       } | ||||
| 
 | ||||
|       zellij_cmd() { | ||||
|         if [[ "$spawn_terminal" -eq 1 ]]; then | ||||
|           ${binds.terminalLaunch} zellij "$@" | ||||
|         else | ||||
|           zellij "$@" | ||||
|         fi | ||||
|       } | ||||
| 
 | ||||
|       session_manager() { | ||||
|         session_list() { | ||||
|           zellij ls -s | tr ' ' '\n' | ||||
|         } | ||||
| 
 | ||||
|         layout_menu() { | ||||
|           layout_list=$(find ~/.config/zellij/layouts -name "*.kdl" | sed 's|.*/||; s/\.kdl$//' | tr ' ' '\n') | ||||
|           echo -e "$layout_list" | rofi_cmd "Select layout for $session_name:" | ||||
|         } | ||||
| 
 | ||||
|         session_menu() { | ||||
|           echo -e "$(session_list)" | rofi_cmd "Session:" | ||||
|         } | ||||
| 
 | ||||
|         session_select() { | ||||
|           session_name=$(session_menu) | ||||
|           if [[ -z "$session_name" ]]; then | ||||
|             echo "Nothing selected." | ||||
|             exit 0 | ||||
|           fi | ||||
| 
 | ||||
|           if session_list | grep -qx "$session_name"; then | ||||
|             session_action="select" | ||||
|           else | ||||
|             session_action="create" | ||||
|           fi | ||||
|         } | ||||
| 
 | ||||
|         selection_menu() { | ||||
|           echo -e "Attach\nDelete\nBack" | rofi_cmd "$session_name action:" | ||||
|         } | ||||
| 
 | ||||
|         while true; do | ||||
|           session_select | ||||
|           case $session_action in | ||||
|           "create") | ||||
|             layout="$(layout_menu)" | ||||
|             if [ -z "$layout" ]; then | ||||
|               echo "No layout given" | ||||
|               continue | ||||
|             fi | ||||
|             zellij_cmd -s "$session_name" --layout "$layout" | ||||
|             break | ||||
|         while [[ "$#" -gt 0 ]]; do | ||||
|           case $1 in | ||||
|           -n) spawn_terminal=1 ;; | ||||
|           *) | ||||
|             echo "Unknown parameter: $1" >&2 | ||||
|             exit 1 | ||||
|             ;; | ||||
|           "select") | ||||
|             selection=$(selection_menu) | ||||
|             case $selection in | ||||
|             "Attach") | ||||
|               zellij_cmd attach "$session_name" | ||||
|           esac | ||||
|           shift | ||||
|         done | ||||
| 
 | ||||
|         rofi_cmd() { | ||||
|           MSG=$1 | ||||
|           rofi -dmenu -i -mesg "$MSG" | ||||
|         } | ||||
| 
 | ||||
|         zellij_cmd() { | ||||
|           if [[ "$spawn_terminal" -eq 1 ]]; then | ||||
|             ${binds.terminalLaunch} zellij "$@" | ||||
|           else | ||||
|             zellij "$@" | ||||
|           fi | ||||
|         } | ||||
| 
 | ||||
|         session_manager() { | ||||
|           session_list() { | ||||
|             zellij ls -s | tr ' ' '\n' | ||||
|           } | ||||
| 
 | ||||
|           layout_menu() { | ||||
|             layout_list=$(find ~/.config/zellij/layouts -name "*.kdl" | sed 's|.*/||; s/\.kdl$//' | tr ' ' '\n') | ||||
|             echo -e "$layout_list" | rofi_cmd "Select layout for $session_name:" | ||||
|           } | ||||
| 
 | ||||
|           session_menu() { | ||||
|             echo -e "$(session_list)" | rofi_cmd "Session:" | ||||
|           } | ||||
| 
 | ||||
|           session_select() { | ||||
|             session_name=$(session_menu) | ||||
|             if [[ -z "$session_name" ]]; then | ||||
|               echo "Nothing selected." | ||||
|               exit 0 | ||||
|             fi | ||||
| 
 | ||||
|             if session_list | grep -qx "$session_name"; then | ||||
|               session_action="select" | ||||
|             else | ||||
|               session_action="create" | ||||
|             fi | ||||
|           } | ||||
| 
 | ||||
|           selection_menu() { | ||||
|             echo -e "Attach\nDelete\nBack" | rofi_cmd "$session_name action:" | ||||
|           } | ||||
| 
 | ||||
|           while true; do | ||||
|             session_select | ||||
|             case $session_action in | ||||
|             "create") | ||||
|               layout="$(layout_menu)" | ||||
|               if [ -z "$layout" ]; then | ||||
|                 echo "No layout given" | ||||
|                 continue | ||||
|               fi | ||||
|               zellij_cmd -s "$session_name" --layout "$layout" | ||||
|               break | ||||
|               ;; | ||||
|             "Delete") zellij delete-session --force "$session_name" ;; | ||||
|             "Back") echo "Going back." ;; | ||||
|             *) echo "Going Back." ;; | ||||
|             "select") | ||||
|               selection=$(selection_menu) | ||||
|               case $selection in | ||||
|               "Attach") | ||||
|                 zellij_cmd attach "$session_name" | ||||
|                 break | ||||
|                 ;; | ||||
|               "Delete") zellij delete-session --force "$session_name" ;; | ||||
|               "Back") echo "Going back." ;; | ||||
|               *) echo "Going Back." ;; | ||||
|               esac | ||||
|               ;; | ||||
|             *) echo "Going Back" ;; | ||||
|             esac | ||||
|             ;; | ||||
|           *) echo "Going Back" ;; | ||||
|           esac | ||||
|         done | ||||
|       } | ||||
|           done | ||||
|         } | ||||
| 
 | ||||
|       project_manager() { | ||||
|         get_project_type() { | ||||
|           while true; do | ||||
|             type=$(echo -e "script\nnix" | rofi_cmd "Select project type:") | ||||
|         project_manager() { | ||||
|           get_project_type() { | ||||
|             while true; do | ||||
|               type=$(echo -e "script\nnix" | rofi_cmd "Select project type:") | ||||
|               case "$type" in | ||||
|               script) | ||||
|                 type_dir="$SCRIPTS" | ||||
|                 break | ||||
|                 ;; | ||||
|               nix) | ||||
|                 type_dir="$NIX_DIR" | ||||
|                 break | ||||
|                 ;; | ||||
|               *) | ||||
|                 echo "Invalid selection, try again." | ||||
|                 ;; | ||||
|               esac | ||||
|             done | ||||
|           } | ||||
| 
 | ||||
|           get_project_name() { | ||||
|             while true; do | ||||
|               project_name=$(rofi_cmd "Enter project name:") | ||||
|               if [ -z "$project_name" ]; then | ||||
|                 echo "No name provided, try again." | ||||
|               elif [ -d "$type_dir/$project_name" ]; then | ||||
|                 echo "Project already exists, try again." | ||||
|               else | ||||
|                 project_dir="$type_dir/$project_name" | ||||
|                 break | ||||
|               fi | ||||
|             done | ||||
|           } | ||||
| 
 | ||||
|           get_session_name() { | ||||
|             session_name="$project_name" | ||||
|             if zellij ls | grep -q "^$session_name$"; then | ||||
|               session_name=$(rofi_cmd "Session name '$project_name' in use, enter a new session name:") | ||||
|               if [ -z "$session_name" ]; then | ||||
|                 echo "No session name entered, exiting." | ||||
|                 exit 1 | ||||
|               fi | ||||
|             fi | ||||
|           } | ||||
| 
 | ||||
|           get_layout() { | ||||
|             case "$type" in | ||||
|             script) | ||||
|               type_dir="$SCRIPTS" | ||||
|               break | ||||
|               layout="script" | ||||
|               ;; | ||||
|             nix) | ||||
|               type_dir="$NIX_DIR" | ||||
|               break | ||||
|               layout="nix" | ||||
|               ;; | ||||
|             *) | ||||
|               echo "Invalid selection, try again." | ||||
|               echo "Unknown project type, using default layout." | ||||
|               layout="base" | ||||
|               ;; | ||||
|             esac | ||||
|           done | ||||
|         } | ||||
|           } | ||||
| 
 | ||||
|         get_project_name() { | ||||
|           while true; do | ||||
|             project_name=$(rofi_cmd "Enter project name:") | ||||
|             if [ -z "$project_name" ]; then | ||||
|               echo "No name provided, try again." | ||||
|             elif [ -d "$type_dir/$project_name" ]; then | ||||
|               echo "Project already exists, try again." | ||||
|             else | ||||
|               project_dir="$type_dir/$project_name" | ||||
|               break | ||||
|             fi | ||||
|           done | ||||
|         } | ||||
|           select_project() { | ||||
|             project_name=$(find "$type_dir" -maxdepth 1 -mindepth 1 -type d ! -name .git -exec basename {} \; | rofi_cmd "Select project:") | ||||
|             project_dir="$type_dir/$project_name" | ||||
| 
 | ||||
|         get_session_name() { | ||||
|           session_name="$project_name" | ||||
|           if zellij ls | grep -q "^$session_name$"; then | ||||
|             session_name=$(rofi_cmd "Session name '$project_name' in use, enter a new session name:") | ||||
|             if [ -z "$session_name" ]; then | ||||
|               echo "No session name entered, exiting." | ||||
|               exit 1 | ||||
|             fi | ||||
|           fi | ||||
|         } | ||||
|             cd "$project_dir" || return 1 | ||||
|             get_session_name | ||||
|             get_layout | ||||
|             zellij_cmd -s "$session_name" --layout "$layout" | ||||
|           } | ||||
| 
 | ||||
|         get_layout() { | ||||
|           case "$type" in | ||||
|           script) | ||||
|             layout="script" | ||||
|           create_and_start_project() { | ||||
|             mkdir -p "$project_dir" | ||||
|             cd "$project_dir" || return 1 | ||||
| 
 | ||||
|             case "$type" in | ||||
|             script) | ||||
|               echo -e "#!/usr/bin/env bash\necho 'hello world'" >"$project_name.sh" | ||||
|               chmod +x "$project_name.sh" | ||||
|               ;; | ||||
|             nix) | ||||
|               echo "Creating Nix project..." | ||||
|               # still need to implement | ||||
|               ;; | ||||
|             *) | ||||
|               echo "Unknown project type." | ||||
|               return 1 | ||||
|               ;; | ||||
|             esac | ||||
| 
 | ||||
|             get_session_name | ||||
|             get_layout | ||||
|             zellij_cmd -s "$session_name" --layout "$layout" | ||||
|           } | ||||
|           project_action=$(echo -e "Create Project\nSelect Project" | rofi_cmd "Project action:") | ||||
|           case "$project_action" in | ||||
|           "Create Project") | ||||
|             get_project_type | ||||
|             get_project_name | ||||
|             create_and_start_project | ||||
|             ;; | ||||
|           nix) | ||||
|             layout="nix" | ||||
|             ;; | ||||
|           *) | ||||
|             echo "Unknown project type, using default layout." | ||||
|             layout="base" | ||||
|             ;; | ||||
|           esac | ||||
|         } | ||||
| 
 | ||||
|         select_project() { | ||||
|           project_name=$(find "$type_dir" -maxdepth 1 -mindepth 1 -type d ! -name .git -exec basename {} \; | rofi_cmd "Select project:") | ||||
|           project_dir="$type_dir/$project_name" | ||||
| 
 | ||||
|           cd "$project_dir" || return 1 | ||||
|           get_session_name | ||||
|           get_layout | ||||
|           zellij_cmd -s "$session_name" --layout "$layout" | ||||
|         } | ||||
| 
 | ||||
|         create_and_start_project() { | ||||
|           mkdir -p "$project_dir" | ||||
|           cd "$project_dir" || return 1 | ||||
| 
 | ||||
|           case "$type" in | ||||
|           script) | ||||
|             echo -e "#!/usr/bin/env bash\necho 'hello world'" >"$project_name.sh" | ||||
|             chmod +x "$project_name.sh" | ||||
|             ;; | ||||
|           nix) | ||||
|             echo "Creating Nix project..." | ||||
|             # still need to implement | ||||
|             ;; | ||||
|           *) | ||||
|             echo "Unknown project type." | ||||
|             return 1 | ||||
|           "Select Project") | ||||
|             get_project_type | ||||
|             select_project | ||||
|             ;; | ||||
|           esac | ||||
| 
 | ||||
|           get_session_name | ||||
|           get_layout | ||||
|           zellij_cmd -s "$session_name" --layout "$layout" | ||||
|         } | ||||
|         project_action=$(echo -e "Create Project\nSelect Project" | rofi_cmd "Project action:") | ||||
|         case "$project_action" in | ||||
|         "Create Project") | ||||
|           get_project_type | ||||
|           get_project_name | ||||
|           create_and_start_project | ||||
|           ;; | ||||
|         "Select Project") | ||||
|           get_project_type | ||||
|           select_project | ||||
|           ;; | ||||
|         esac | ||||
| 
 | ||||
|       } | ||||
|         main() { | ||||
|           main_action=$(echo -e "Projects\nSessions" | rofi_cmd "Choose action:") | ||||
|           case "$main_action" in | ||||
|           "Projects") project_manager ;; | ||||
|           "Sessions") session_manager ;; | ||||
|           *) echo "Invalid option, exiting." ;; | ||||
|           esac | ||||
|         } | ||||
| 
 | ||||
|       main() { | ||||
|         main_action=$(echo -e "Projects\nSessions" | rofi_cmd "Choose action:") | ||||
|         case "$main_action" in | ||||
|         "Projects") project_manager ;; | ||||
|         "Sessions") session_manager ;; | ||||
|         *) echo "Invalid option, exiting." ;; | ||||
|         esac | ||||
|       } | ||||
| 
 | ||||
|       main | ||||
|     ''; | ||||
|         main | ||||
|       ''; | ||||
|   }; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (multiplexer == "zellij" && launcher == "rofi") { | ||||
|     home.packages = [ zellijmenu ]; | ||||
|     home.packages = [zellijmenu]; | ||||
|     ooknet.binds.zellijMenu = "zellijmenu -n"; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -1,5 +1,4 @@ | |||
| { lib, ... }: | ||||
| { | ||||
| {lib, ...}: { | ||||
|   imports = [ | ||||
|     #./eww | ||||
|     # ./ags | ||||
|  | @ -17,5 +16,4 @@ | |||
|       enable = lib.mkEnableOption "Enable waybar bar"; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
| } | ||||
|  |  | |||
|  | @ -1,15 +1,17 @@ | |||
| { config, lib, pkgs, osConfig, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   config, | ||||
|   lib, | ||||
|   pkgs, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (config.colorscheme) palette; | ||||
|   inherit (lib) mkIf head; | ||||
|   fonts = config.ooknet.fonts; | ||||
|   wayland = config.ooknet.wayland; | ||||
|   monitors = osConfig.ooknet.host.hardware.monitors; | ||||
|   monitorWidth =  (head monitors).width - 20; | ||||
| in | ||||
| 
 | ||||
| { | ||||
|   monitorWidth = (head monitors).width - 20; | ||||
| in { | ||||
|   config = mkIf (wayland.bar == "waybar") { | ||||
|     programs.waybar = { | ||||
|       enable = true; | ||||
|  | @ -25,9 +27,9 @@ in | |||
|         margin-top = 10; | ||||
|         margin-bottom = -12; | ||||
| 
 | ||||
|         modules-left = [ "clock" "battery" "hyprland/workspaces" ]; | ||||
|         modules-left = ["clock" "battery" "hyprland/workspaces"]; | ||||
|         modules-center = []; | ||||
|         modules-right = [ "custom/hyprrecord" "tray" ]; | ||||
|         modules-right = ["custom/hyprrecord" "tray"]; | ||||
| 
 | ||||
|         "hyprland/workspaces" = let | ||||
|           hyprctl = config.wayland.windowManager.hyprland.package + "/bin/hyprctl"; | ||||
|  | @ -60,7 +62,7 @@ in | |||
|           }; | ||||
|           bat = "BAT0"; | ||||
|           interval = 10; | ||||
|           format-icons = [ "" "" "" "" "" "" "" "" "" "" ]; | ||||
|           format-icons = ["" "" "" "" "" "" "" "" "" ""]; | ||||
|           format = "{icon} {capacity}%"; | ||||
|           format-charging = "{icon} {capacity}%"; | ||||
|           tooltip-format = "{timeTo} {power}W"; | ||||
|  | @ -79,77 +81,81 @@ in | |||
|           signal = 12; | ||||
|         }; | ||||
|       }; | ||||
|       style = /* css */ '' | ||||
|         * { | ||||
|           font-family: "${fonts.monospace.family}"; | ||||
|           font-size: 19px; | ||||
|           border: solid #${palette.base05}; | ||||
|         } | ||||
|       style = | ||||
|         /* | ||||
|         css | ||||
|         */ | ||||
|         '' | ||||
|           * { | ||||
|             font-family: "${fonts.monospace.family}"; | ||||
|             font-size: 19px; | ||||
|             border: solid #${palette.base05}; | ||||
|           } | ||||
| 
 | ||||
|         window#waybar { | ||||
|           background-color: transparent; | ||||
|           margin: 10px; | ||||
|         } | ||||
|           window#waybar { | ||||
|             background-color: transparent; | ||||
|             margin: 10px; | ||||
|           } | ||||
| 
 | ||||
|         #clock, | ||||
|         #battery, | ||||
|         #workspaces { | ||||
|           background-color: #${palette.base00}; | ||||
|           padding-right: 10px; | ||||
|         } | ||||
|           #clock, | ||||
|           #battery, | ||||
|           #workspaces { | ||||
|             background-color: #${palette.base00}; | ||||
|             padding-right: 10px; | ||||
|           } | ||||
| 
 | ||||
|         #clock { | ||||
|           padding-left: 10px; | ||||
|           border: 2px solid #${palette.base05}; | ||||
|           border-right: 0px; | ||||
|           border-top-left-radius: 10px; | ||||
|         } | ||||
|           #clock { | ||||
|             padding-left: 10px; | ||||
|             border: 2px solid #${palette.base05}; | ||||
|             border-right: 0px; | ||||
|             border-top-left-radius: 10px; | ||||
|           } | ||||
| 
 | ||||
|         #battery { | ||||
|           padding-left: 10px; | ||||
|           border-top: 2px solid #${palette.base05}; | ||||
|           border-bottom: 2px solid #${palette.base05}; | ||||
|           border-left: 0px; | ||||
|         } | ||||
|           #battery { | ||||
|             padding-left: 10px; | ||||
|             border-top: 2px solid #${palette.base05}; | ||||
|             border-bottom: 2px solid #${palette.base05}; | ||||
|             border-left: 0px; | ||||
|           } | ||||
| 
 | ||||
|         #battery.good { | ||||
|           color: #${palette.base0B}; | ||||
|         } | ||||
|         #battery.warning { | ||||
|           color: #${palette.base0A}; | ||||
|         } | ||||
|         #battery.critical { | ||||
|           color: #${palette.base08}; | ||||
|         } | ||||
|           #battery.good { | ||||
|             color: #${palette.base0B}; | ||||
|           } | ||||
|           #battery.warning { | ||||
|             color: #${palette.base0A}; | ||||
|           } | ||||
|           #battery.critical { | ||||
|             color: #${palette.base08}; | ||||
|           } | ||||
| 
 | ||||
|         #tray { | ||||
|           padding-right: 10px; | ||||
|           padding-left: 10px; | ||||
|           background-color: transparent; | ||||
|           border: 0; | ||||
|         } | ||||
|           #tray { | ||||
|             padding-right: 10px; | ||||
|             padding-left: 10px; | ||||
|             background-color: transparent; | ||||
|             border: 0; | ||||
|           } | ||||
| 
 | ||||
|         #workspaces { | ||||
|           border: 2px solid #${palette.base05}; | ||||
|           border-left: 0; | ||||
|           border-top-right-radius: 10px; | ||||
|         } | ||||
|           #workspaces { | ||||
|             border: 2px solid #${palette.base05}; | ||||
|             border-left: 0; | ||||
|             border-top-right-radius: 10px; | ||||
|           } | ||||
| 
 | ||||
|         #workspace button, | ||||
|         #workspaces button.active, | ||||
|         #workspaces button.visible { | ||||
|           color: #${palette.base0B}; | ||||
|         } | ||||
|           #workspace button, | ||||
|           #workspaces button.active, | ||||
|           #workspaces button.visible { | ||||
|             color: #${palette.base0B}; | ||||
|           } | ||||
| 
 | ||||
|         #workspaces button.urgent { | ||||
|           color: #${palette.base08}; | ||||
|         } | ||||
|           #workspaces button.urgent { | ||||
|             color: #${palette.base08}; | ||||
|           } | ||||
| 
 | ||||
|         #custom-hyprrecord { | ||||
|           color: #${palette.base08}; | ||||
|           padding-right: 20px; | ||||
|         } | ||||
|       ''; | ||||
|           #custom-hyprrecord { | ||||
|             color: #${palette.base08}; | ||||
|             padding-right: 20px; | ||||
|           } | ||||
|         ''; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -1,9 +1,13 @@ | |||
| { inputs, lib, config, pkgs, ... }:  | ||||
| let | ||||
| { | ||||
|   inputs, | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   wayland = config.ooknet.wayland; | ||||
|   inherit (lib) mkIf; | ||||
| in | ||||
| { | ||||
| in { | ||||
|   imports = [ | ||||
|     inputs.hyprland.homeManagerModules.default | ||||
|     ./settings | ||||
|  | @ -13,8 +17,8 @@ in | |||
|   config = mkIf (wayland.compositor == "hyprland") { | ||||
|     home.packages = [ | ||||
|       pkgs.hyprpicker | ||||
|       ]; | ||||
|      | ||||
|     ]; | ||||
| 
 | ||||
|     wayland.windowManager.hyprland = { | ||||
|       enable = true; | ||||
|       package = inputs.hyprland.packages.${pkgs.system}.hyprland; | ||||
|  |  | |||
|  | @ -1,17 +1,18 @@ | |||
| { lib, config, pkgs, inputs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   inputs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   wayland = config.ooknet.wayland; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (wayland.compositor == "hyprland") { | ||||
| 
 | ||||
|     home.packages = with inputs; [ | ||||
|     # Screenshot tool | ||||
|       # Screenshot tool | ||||
|       hyprland-contrib.packages.${pkgs.system}.grimblast | ||||
|     # Screen recording tool | ||||
|       # Screen recording tool | ||||
|       ooks-scripts.packages.${pkgs.system}.hyprrecord | ||||
|     ]; | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,13 +1,14 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   wayland = config.ooknet.wayland; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (wayland.compositor == "hyprland") { | ||||
|     home.packages = [ pkgs.hyprshade ]; | ||||
|     home.packages = [pkgs.hyprshade]; | ||||
|     # TODO: implement hyprshade configuration | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -1,13 +1,13 @@ | |||
| { config, lib, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   config, | ||||
|   lib, | ||||
|   ... | ||||
| }: let | ||||
|   wayland = config.ooknet.wayland; | ||||
|   pointer = config.home.pointerCursor; | ||||
|   inherit (config.colorscheme) palette; | ||||
|   inherit (lib) mkIf; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (wayland.compositor == "hyprland") { | ||||
|     wayland.windowManager.hyprland = { | ||||
|       settings = { | ||||
|  | @ -20,14 +20,13 @@ in | |||
|           border_size = 2; | ||||
|           "col.active_border" = "0xff${palette.base05}"; | ||||
|           "col.inactive_border" = "0xff${palette.base02}"; | ||||
|           }; | ||||
|         }; | ||||
| 
 | ||||
|         exec-once = [ | ||||
|           "hyprctl setcursor ${pointer.name} ${toString pointer.size}" | ||||
|         ]; | ||||
| 
 | ||||
|         decoration = { | ||||
| 
 | ||||
|           active_opacity = 1.0; | ||||
|           inactive_opacity = 1.0; | ||||
|           fullscreen_opacity = 1.0; | ||||
|  | @ -45,7 +44,7 @@ in | |||
|           "col.shadow" = "0x44000000"; | ||||
|           "col.shadow_inactive" = "0x66000000"; | ||||
|         }; | ||||
|      | ||||
| 
 | ||||
|         animations = { | ||||
|           enabled = false; | ||||
|         }; | ||||
|  |  | |||
|  | @ -1,12 +1,12 @@ | |||
| { lib, config, ... }:  | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   wayland = config.ooknet.wayland; | ||||
|   binds = config.ooknet.binds; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (wayland.compositor == "hyprland") { | ||||
|     wayland.windowManager.hyprland.settings = { | ||||
|       bind = [ | ||||
|  | @ -38,7 +38,7 @@ in | |||
|         ",XF86AudioRaiseVolume,         exec,     ${binds.volume.up}" | ||||
|         ",XF86AudioLowerVolume,         exec,     ${binds.volume.down}" | ||||
|         ",XF86AudioMute,                exec,     ${binds.volume.mute}" | ||||
|        | ||||
| 
 | ||||
|         # Window Management | ||||
|         "SUPER,          Q,             killactive" | ||||
|         "SUPER CTRL,     backspace,     killactive" | ||||
|  | @ -97,7 +97,7 @@ in | |||
|         # Lock Screen | ||||
|         "SUPER,          Backspace,     exec,     ${binds.lock}" | ||||
|       ]; | ||||
|         # Mouse | ||||
|       # Mouse | ||||
|       bindm = [ | ||||
|         "SUPER,          mouse:272,     movewindow" | ||||
|         "SUPER,          mouse:273,     resizewindow" | ||||
|  |  | |||
|  | @ -1,17 +1,15 @@ | |||
| { lib, config, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   wayland = config.ooknet.wayland; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (wayland.compositor == "hyprland") { | ||||
|     wayland.windowManager.hyprland.settings.env = [ | ||||
|       "XDG_SESSION_DESKTOP,hyprland" | ||||
|       "XDG_CURRENT_DESKTOP,hyprland" | ||||
|     ];  | ||||
|     ]; | ||||
|   }; | ||||
| 
 | ||||
|    | ||||
| } | ||||
|  |  | |||
|  | @ -1,11 +1,12 @@ | |||
| { config, lib, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   config, | ||||
|   lib, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   wayland = config.ooknet.wayland; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (wayland.compositor == "hyprland") { | ||||
|     wayland.windowManager.hyprland.settings = { | ||||
|       exec = [ | ||||
|  |  | |||
|  | @ -1,11 +1,11 @@ | |||
| { lib, config, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   wayland = config.ooknet.wayland; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (wayland.compositor == "hyprland") { | ||||
|     wayland.windowManager.hyprland.settings.gestures = { | ||||
|       workspace_swipe = true; | ||||
|  |  | |||
|  | @ -1,12 +1,12 @@ | |||
| { lib, config,  ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   wayland = config.ooknet.wayland; | ||||
|   wallpaperPath = config.ooknet.wallpaper.path; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (wayland.compositor == "hyprland") { | ||||
|     services.hyprpaper = { | ||||
|       enable = true; | ||||
|  |  | |||
|  | @ -1,11 +1,11 @@ | |||
| { lib, config, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   wayland = config.ooknet.wayland; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (wayland.compositor == "hyprland") { | ||||
|     wayland.windowManager.hyprland.settings.input = { | ||||
|       kb_layout = "us"; | ||||
|  | @ -14,5 +14,4 @@ in | |||
|       mouse_refocus = false; | ||||
|     }; | ||||
|   }; | ||||
|    | ||||
| } | ||||
|  |  | |||
|  | @ -1,11 +1,11 @@ | |||
| { lib, config, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   wayland = config.ooknet.wayland; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (wayland.compositor == "hyprland") { | ||||
|     wayland.windowManager.hyprland.settings.misc = { | ||||
|       mouse_move_enables_dpms = true; | ||||
|  | @ -19,4 +19,4 @@ in | |||
|       focus_on_activate = true; | ||||
|     }; | ||||
|   }; | ||||
| }  | ||||
| } | ||||
|  |  | |||
|  | @ -1,22 +1,34 @@ | |||
| { lib, config, osConfig, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf concatMap; | ||||
|   wayland = config.ooknet.wayland; | ||||
|   monitors = osConfig.ooknet.host.hardware.monitors; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (wayland.compositor == "hyprland") { | ||||
|     wayland.windowManager.hyprland.settings = { | ||||
|       monitor = concatMap (m: let | ||||
|         resolution = "${toString m.width}x${toString m.height}@${toString m.refreshRate}"; | ||||
|         position = "${toString m.x}x${toString m.y}"; | ||||
|         basicConfig = "${m.name},${if m.enabled then "${resolution},${position},1" else "disable"}"; | ||||
|       in | ||||
|         [ basicConfig ] ++ (if m.transform != 0 then ["${m.name},transform,${toString m.transform}"] else []) | ||||
|       ) (monitors); | ||||
|       monitor = | ||||
|         concatMap ( | ||||
|           m: let | ||||
|             resolution = "${toString m.width}x${toString m.height}@${toString m.refreshRate}"; | ||||
|             position = "${toString m.x}x${toString m.y}"; | ||||
|             basicConfig = "${m.name},${ | ||||
|               if m.enabled | ||||
|               then "${resolution},${position},1" | ||||
|               else "disable" | ||||
|             }"; | ||||
|           in | ||||
|             [basicConfig] | ||||
|             ++ ( | ||||
|               if m.transform != 0 | ||||
|               then ["${m.name},transform,${toString m.transform}"] | ||||
|               else [] | ||||
|             ) | ||||
|         ) | ||||
|         monitors; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,11 +1,11 @@ | |||
| { lib, config, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   wayland = config.ooknet.wayland; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (wayland.compositor == "hyprland") { | ||||
|     wayland.windowManager.hyprland.settings = { | ||||
|       windowrulev2 = [ | ||||
|  | @ -26,7 +26,7 @@ in | |||
|         "stayfocused,title:^(BTOP)$" | ||||
| 
 | ||||
|         # Tearing | ||||
|         "immediate, title:^(TEKKEN™8)$"  | ||||
|         "immediate, title:^(TEKKEN™8)$" | ||||
|       ]; | ||||
|     }; | ||||
|   }; | ||||
|  |  | |||
|  | @ -1,12 +1,13 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   fonts = config.ooknet.fonts; | ||||
|   wayland = config.ooknet.wayland; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (wayland.launcher == "rofi") { | ||||
|     programs.rofi = { | ||||
|       enable = true; | ||||
|  | @ -14,7 +15,7 @@ in | |||
|       package = pkgs.rofi-wayland; | ||||
|       terminal = "${config.home.sessionVariables.TERMINAL}"; | ||||
|       theme = let | ||||
|         inherit (config.colorscheme ) palette; | ||||
|         inherit (config.colorscheme) palette; | ||||
|         inherit (config.lib.formats.rasi) mkLiteral; | ||||
|       in { | ||||
|         "*" = { | ||||
|  |  | |||
|  | @ -1,41 +1,45 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (config.colorscheme) palette; | ||||
|   inherit (lib) mkIf; | ||||
|   wayland = config.ooknet.wayland; | ||||
|   fonts = config.ooknet.fonts; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (wayland.launcher == "tofi") { | ||||
|     home.packages = [pkgs.tofi]; | ||||
|     xdg.configFile."tofi/config".text = /* config */ '' | ||||
|       history = false | ||||
|       clip-to-padding = false | ||||
|       horizontal = true | ||||
|       width = 40% | ||||
|       height = 35 | ||||
|       anchor = top-left | ||||
|       margin-top = 5 | ||||
|       margin-left = 25% | ||||
|       num-results = 1 | ||||
|       border-width = 0 | ||||
|       outline-width = 0 | ||||
|       result-spacing = 10 | ||||
|       selection-background-padding = 30 | ||||
|       prompt-padding = 10 | ||||
|       font = "${fonts.monospace.family}" | ||||
|       font-size = 14 | ||||
|       prompt-text = "  " | ||||
|       background-color = #0000 | ||||
|       prompt-background = #0000 | ||||
|       prompt-color = ${palette.base0B} | ||||
|       input-color = ${palette.base05} | ||||
|       placeholder-color = ${palette.base03} | ||||
|       default-result-color = ${palette.base03} | ||||
|       selection-color = ${palette.base04} | ||||
|     ''; | ||||
|     xdg.configFile."tofi/config".text = | ||||
|       /* | ||||
|       config | ||||
|       */ | ||||
|       '' | ||||
|         history = false | ||||
|         clip-to-padding = false | ||||
|         horizontal = true | ||||
|         width = 40% | ||||
|         height = 35 | ||||
|         anchor = top-left | ||||
|         margin-top = 5 | ||||
|         margin-left = 25% | ||||
|         num-results = 1 | ||||
|         border-width = 0 | ||||
|         outline-width = 0 | ||||
|         result-spacing = 10 | ||||
|         selection-background-padding = 30 | ||||
|         prompt-padding = 10 | ||||
|         font = "${fonts.monospace.family}" | ||||
|         font-size = 14 | ||||
|         prompt-text = "  " | ||||
|         background-color = #0000 | ||||
|         prompt-background = #0000 | ||||
|         prompt-color = ${palette.base0B} | ||||
|         input-color = ${palette.base05} | ||||
|         placeholder-color = ${palette.base03} | ||||
|         default-result-color = ${palette.base03} | ||||
|         selection-color = ${palette.base04} | ||||
|       ''; | ||||
|   }; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -4,4 +4,3 @@ | |||
|     ./hyprlock.nix | ||||
|   ]; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,13 +1,13 @@ | |||
| { lib, config, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (config.colorscheme) palette; | ||||
|   inherit (lib) mkIf; | ||||
|   wayland = config.ooknet.wayland; | ||||
|   fonts = config.ooknet.fonts; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (wayland.locker == "hyprlock") { | ||||
|     ooknet.binds.lock = "hyprlock"; | ||||
|     programs.hyprlock = { | ||||
|  | @ -29,7 +29,7 @@ in | |||
|             size = { | ||||
|               width = 300; | ||||
|               height = 40; | ||||
|             };       | ||||
|             }; | ||||
|             position = { | ||||
|               x = 0; | ||||
|               y = 0; | ||||
|  | @ -49,7 +49,7 @@ in | |||
|             text = "  "; | ||||
|             position = { | ||||
|               x = 0; | ||||
|               y = 80;  | ||||
|               y = 80; | ||||
|             }; | ||||
|             color = "0xff${palette.base08}"; | ||||
|             font_size = 30; | ||||
|  | @ -60,7 +60,7 @@ in | |||
|             text = "$TIME"; | ||||
|             position = { | ||||
|               x = 0; | ||||
|               y = -80;  | ||||
|               y = -80; | ||||
|             }; | ||||
|             color = "0xff${palette.base0B}"; | ||||
|             font_size = 20; | ||||
|  |  | |||
|  | @ -1,13 +1,14 @@ | |||
| { config, lib, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   config, | ||||
|   lib, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (config.colorscheme) palette; | ||||
|   inherit (lib) mkIf; | ||||
|   fonts = config.ooknet.fonts; | ||||
|   wallpaperPath = config.ooknet.wallpaper.path; | ||||
|   wayland = config.ooknet.wayland; | ||||
| in | ||||
| { | ||||
| in { | ||||
|   config = mkIf (wayland.locker == "swaylock") { | ||||
|     ooknet.binds.lock = "swaylock"; | ||||
|     programs.swaylock = { | ||||
|  |  | |||
|  | @ -1,21 +1,20 @@ | |||
| { config, lib, ... }: | ||||
|   | ||||
| let | ||||
| { | ||||
|   config, | ||||
|   lib, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (config.colorscheme) palette variant; | ||||
|   inherit (lib) mkIf; | ||||
|   fonts = config.ooknet.fonts; | ||||
|   wayland = config.ooknet.wayland; | ||||
| in  | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf (wayland.notification == "mako") { | ||||
|     services.mako  = { | ||||
|     services.mako = { | ||||
|       enable = true; | ||||
|       iconPath = | ||||
|         if variant == "dark" then | ||||
|           "${config.gtk.iconTheme.package}/share/icons/Papirus-Dark" | ||||
|         else | ||||
|           "${config.gtk.iconTheme.package}/share/icons/Papirus-Light"; | ||||
|         if variant == "dark" | ||||
|         then "${config.gtk.iconTheme.package}/share/icons/Papirus-Dark" | ||||
|         else "${config.gtk.iconTheme.package}/share/icons/Papirus-Light"; | ||||
|       font = "${fonts.regular.family} 12"; | ||||
|       padding = "10,10"; | ||||
|       anchor = "top-right"; | ||||
|  | @ -41,4 +40,3 @@ in | |||
|     }; | ||||
|   }; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,11 +1,11 @@ | |||
| { lib, config, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.wayland; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     services.gammastep = { | ||||
|       enable = true; | ||||
|  |  | |||
|  | @ -1,11 +1,12 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.wayland; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = lib.mkIf cfg.enable { | ||||
|     home = { | ||||
|       packages = with pkgs; [ | ||||
|  | @ -17,7 +18,7 @@ in | |||
|         wl-clipboard | ||||
|       ]; | ||||
|     }; | ||||
|      | ||||
| 
 | ||||
|     systemd.user.targets.tray = { | ||||
|       Unit = { | ||||
|         Description = "Home Manager System Tray"; | ||||
|  |  | |||
|  | @ -1,30 +1,33 @@ | |||
| { lib, config, osConfig, ... }: | ||||
| 
 | ||||
| let | ||||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   osConfig, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib) mkIf; | ||||
|   cfg = config.ooknet.wayland; | ||||
|   gpu = osConfig.ooknet.host.hardware.gpu; | ||||
| in | ||||
| 
 | ||||
| { | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     home.sessionVariables = { | ||||
|       CLUTTER_BACKEND = "wayland"; | ||||
|       NIXOS_OZONE_WL = "1"; | ||||
|       GDK_BACKEND = "wayland"; | ||||
|       QT_QPA_PLATFORM = "wayland"; | ||||
|       QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; | ||||
|       DISABLE_QT5_COMPAT = "0"; | ||||
|       QT_AUTO_SCREEN_SCALE_FACTOR = "1"; | ||||
|       MOZ_ENABLE_WAYLAND = "1"; | ||||
|       MOZ_DBUS_REMOTE = "1"; | ||||
|       XDG_SESSION_TYPE = "wayland"; | ||||
|       SDL_VIDEODRIVER = "wayland"; | ||||
|     } // mkIf (gpu == "nvidia") { | ||||
|       LIBVA_DRIVER_NAME = "nvidia"; | ||||
|       GBM_BACKEND = "nvidia-drm"; | ||||
|       __GLX_VENDOR_LIBRARY_NAME = "nvidia"; | ||||
|       WLR_NO_HARDWARE_CURSORS = "1"; | ||||
|     }; | ||||
|     home.sessionVariables = | ||||
|       { | ||||
|         CLUTTER_BACKEND = "wayland"; | ||||
|         NIXOS_OZONE_WL = "1"; | ||||
|         GDK_BACKEND = "wayland"; | ||||
|         QT_QPA_PLATFORM = "wayland"; | ||||
|         QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; | ||||
|         DISABLE_QT5_COMPAT = "0"; | ||||
|         QT_AUTO_SCREEN_SCALE_FACTOR = "1"; | ||||
|         MOZ_ENABLE_WAYLAND = "1"; | ||||
|         MOZ_DBUS_REMOTE = "1"; | ||||
|         XDG_SESSION_TYPE = "wayland"; | ||||
|         SDL_VIDEODRIVER = "wayland"; | ||||
|       } | ||||
|       // mkIf (gpu == "nvidia") { | ||||
|         LIBVA_DRIVER_NAME = "nvidia"; | ||||
|         GBM_BACKEND = "nvidia-drm"; | ||||
|         __GLX_VENDOR_LIBRARY_NAME = "nvidia"; | ||||
|         WLR_NO_HARDWARE_CURSORS = "1"; | ||||
|       }; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue