diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | flake.lock | 44 | ||||
| -rw-r--r-- | flake.nix | 28 | ||||
| -rw-r--r-- | hosts/ganymede/config.nix | 36 | ||||
| -rw-r--r-- | hosts/ganymede/disks.nix | 40 | ||||
| -rw-r--r-- | hosts/ganymede/nixos.nix | 8 | ||||
| -rw-r--r-- | hosts/jupiter/config.nix | 15 | ||||
| -rw-r--r-- | hosts/jupiter/hjem.nix (renamed from hosts/jupiter/home.nix) | 5 | ||||
| -rw-r--r-- | hosts/jupiter/nixos.nix (renamed from hosts/jupiter/system.nix) | 2 | ||||
| -rw-r--r-- | hosts/mercury/ai.nix | 1 | ||||
| -rw-r--r-- | hosts/mercury/config.nix | 30 | ||||
| -rw-r--r-- | hosts/mercury/disks.nix | 2 | ||||
| -rw-r--r-- | hosts/mercury/hjem.nix | 10 | ||||
| -rw-r--r-- | hosts/mercury/home.nix | 17 | ||||
| -rw-r--r-- | hosts/mercury/nixos.nix (renamed from hosts/mercury/system.nix) | 11 | ||||
| -rw-r--r-- | lib/lib.nix | 2 | ||||
| -rw-r--r-- | lib/nix-furnace/default.nix | 102 | ||||
| -rw-r--r-- | lib/nix-furnace/mkSystem.nix | 119 | ||||
| -rw-r--r-- | modules/boot/nixos/default.nix (renamed from modules/boot/system/default.nix) | 2 | ||||
| -rw-r--r-- | modules/boot/nixos/plymouth.nix (renamed from modules/boot/system/plymouth.nix) | 0 | ||||
| -rw-r--r-- | modules/desktop/hjem/default.nix | 13 | ||||
| -rw-r--r-- | modules/desktop/hjem/gtk.nix | 38 | ||||
| -rw-r--r-- | modules/desktop/hjem/programs/firefox.nix | 26 | ||||
| -rw-r--r-- | modules/desktop/hjem/programs/foot.nix (renamed from modules/desktop/system/programs/foot.nix) | 14 | ||||
| -rw-r--r-- | modules/desktop/hjem/programs/research.nix | 26 | ||||
| -rw-r--r-- | modules/desktop/hjem/wm/dunst.nix (renamed from modules/desktop/system/components/dunst.nix) | 8 | ||||
| -rw-r--r-- | modules/desktop/hjem/wm/fuzzel.nix (renamed from modules/desktop/system/components/fuzzel.nix) | 17 | ||||
| -rw-r--r-- | modules/desktop/hjem/wm/sway.nix (renamed from modules/desktop/system/environments/sway.nix) | 53 | ||||
| -rw-r--r-- | modules/desktop/home/gtk/adwaita.nix | 33 | ||||
| -rw-r--r-- | modules/desktop/home/gtk/catppuccin.nix | 33 | ||||
| -rw-r--r-- | modules/desktop/home/gtk/default.nix | 26 | ||||
| -rw-r--r-- | modules/desktop/nixos/default.nix | 12 | ||||
| -rw-r--r-- | modules/desktop/nixos/fonts.nix | 8 | ||||
| -rw-r--r-- | modules/desktop/nixos/gnome.nix (renamed from modules/desktop/system/environments/gnome.nix) | 14 | ||||
| -rw-r--r-- | modules/desktop/nixos/greeters/gdm.nix | 13 | ||||
| -rw-r--r-- | modules/desktop/nixos/greeters/greetd.nix | 19 | ||||
| -rw-r--r-- | modules/desktop/nixos/programs/blackbox.nix (renamed from modules/desktop/system/programs/blackbox.nix) | 0 | ||||
| -rw-r--r-- | modules/desktop/nixos/programs/firefox.nix | 68 | ||||
| -rw-r--r-- | modules/desktop/options.nix | 99 | ||||
| -rw-r--r-- | modules/desktop/system/default.nix | 14 | ||||
| -rw-r--r-- | modules/desktop/system/programs/alacritty.nix | 76 | ||||
| -rw-r--r-- | modules/desktop/system/programs/firefox.nix | 50 | ||||
| -rw-r--r-- | modules/nix/nixos/default.nix (renamed from modules/nix/system/default.nix) | 0 | ||||
| -rw-r--r-- | modules/services/nixos/audio.nix (renamed from modules/services/system/audio.nix) | 2 | ||||
| -rw-r--r-- | modules/services/nixos/bluetooth.nix (renamed from modules/services/system/bluetooth.nix) | 0 | ||||
| -rw-r--r-- | modules/services/nixos/default.nix (renamed from modules/services/system/default.nix) | 1 | ||||
| -rw-r--r-- | modules/services/nixos/networking/default.nix (renamed from modules/services/system/networking/default.nix) | 0 | ||||
| -rw-r--r-- | modules/services/nixos/networking/iwd.nix (renamed from modules/services/system/networking/iwd.nix) | 1 | ||||
| -rw-r--r-- | modules/services/nixos/networking/networkmanager.nix (renamed from modules/services/system/networking/networkmanager.nix) | 0 | ||||
| -rw-r--r-- | modules/services/nixos/selfhost/default.nix (renamed from modules/desktop/home/default.nix) | 2 | ||||
| -rw-r--r-- | modules/services/nixos/selfhost/navidrome.nix | 19 | ||||
| -rw-r--r-- | modules/services/nixos/tailscale.nix (renamed from modules/services/system/tailscale.nix) | 0 | ||||
| -rw-r--r-- | modules/services/options.nix | 17 | ||||
| -rw-r--r-- | modules/terminal/hjem/default.nix (renamed from modules/terminal/system/default.nix) | 11 | ||||
| -rw-r--r-- | modules/terminal/hjem/programs/bash.nix | 29 | ||||
| -rw-r--r-- | modules/terminal/hjem/programs/bat.nix | 25 | ||||
| -rw-r--r-- | modules/terminal/hjem/programs/broot.nix (renamed from modules/terminal/system/programs/broot.nix) | 21 | ||||
| -rw-r--r-- | modules/terminal/hjem/programs/cmus.nix (renamed from modules/terminal/system/programs/cmus.nix) | 24 | ||||
| -rw-r--r-- | modules/terminal/hjem/programs/eza.nix | 25 | ||||
| -rw-r--r-- | modules/terminal/hjem/programs/fish.nix | 35 | ||||
| -rw-r--r-- | modules/terminal/hjem/programs/fzf.nix | 25 | ||||
| -rw-r--r-- | modules/terminal/hjem/programs/git.nix (renamed from modules/terminal/system/programs/git.nix) | 14 | ||||
| -rw-r--r-- | modules/terminal/hjem/programs/helix.nix (renamed from modules/terminal/system/programs/helix.nix) | 40 | ||||
| -rw-r--r-- | modules/terminal/hjem/programs/lazygit.nix (renamed from modules/terminal/system/programs/lazygit.nix) | 14 | ||||
| -rw-r--r-- | modules/terminal/hjem/programs/starship.nix (renamed from modules/terminal/system/programs/starship.nix) | 19 | ||||
| -rw-r--r-- | modules/terminal/hjem/programs/tmux.nix (renamed from modules/terminal/system/programs/tmux.nix) | 86 | ||||
| -rw-r--r-- | modules/terminal/nixos/default.nix | 10 | ||||
| -rw-r--r-- | modules/terminal/options.nix | 6 | ||||
| -rw-r--r-- | modules/terminal/system/programs/bat.nix | 18 | ||||
| -rw-r--r-- | modules/terminal/system/programs/eza.nix | 18 | ||||
| -rw-r--r-- | modules/terminal/system/programs/fish.nix | 39 | ||||
| -rw-r--r-- | modules/terminal/system/programs/fzf.nix | 18 | ||||
| -rw-r--r-- | modules/user/nixos/default.nix (renamed from modules/user/system/default.nix) | 0 |
73 files changed, 937 insertions, 717 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b2be92b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +result @@ -115,26 +115,6 @@ "type": "github" } }, - "home-manager": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1754527677, - "narHash": "sha256-qAzCtmKkMz40xFgP9KN+TCKjVieK4u04EWwl2KvVk0E=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "475d35797d9537354d825260cf583114537affc2", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, "lanzaboote": { "inputs": { "crane": "crane", @@ -221,10 +201,10 @@ "inputs": { "disko": "disko", "hjem": "hjem", - "home-manager": "home-manager", "lanzaboote": "lanzaboote", "nixos-facter-modules": "nixos-facter-modules", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "system-manager": "system-manager" } }, "rust-overlay": { @@ -293,6 +273,26 @@ "type": "github" } }, + "system-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1756281415, + "narHash": "sha256-CjpoVwpJJ+DOZilPrDpZ5S3V+B1Y0calaHxTp2xMvGs=", + "owner": "numtide", + "repo": "system-manager", + "rev": "e271eedac9a24678ca6cfc61677837422bf474e0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "system-manager", + "type": "github" + } + }, "systems": { "locked": { "lastModified": 1681028828, @@ -14,8 +14,9 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - home-manager = { - url = "github:nix-community/home-manager"; + # for server that doesn't have nixos + system-manager = { + url = "github:numtide/system-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; @@ -25,9 +26,26 @@ }; }; - outputs = inputs: - (import ./lib/nix-furnace).mkFlake { + outputs = inputs: let + inherit (import ./lib/nix-furnace/mkSystem.nix) mkNixosSystem mkSystemManagerSystem; + in { + nixosConfigurations."mercury" = mkNixosSystem { inherit inputs; - namespace = "collinux"; + hostname = "mercury"; + username = "collin"; + module_types = ["hjem" "nixos"]; }; + nixosConfigurations."jupiter" = mkNixosSystem { + inherit inputs; + hostname = "jupiter"; + username = "collin"; + module_types = ["hjem" "nixos"]; + }; + nixosConfigurations."ganymede" = mkNixosSystem { + inherit inputs; + hostname = "ganymede"; + username = "collin"; + module_types = ["nixos" "hjem"]; + }; + }; } diff --git a/hosts/ganymede/config.nix b/hosts/ganymede/config.nix new file mode 100644 index 0000000..62abd56 --- /dev/null +++ b/hosts/ganymede/config.nix @@ -0,0 +1,36 @@ +{ + collinux = { + user = { + name = "collin"; + password = "$y$j9T$08yFysn8jr9K4Wk.hYXbG0$NzY9vIbNknJViA..Jw.vF8wmQtBgEZZU.cdLQOmDvU2"; + }; + + terminal = { + programs = { + git = { + enable = true; + userName = "Collin Williams"; + userEmail = "96917990+bluedragon1221@users.noreply.github.com"; + }; + }; + }; + + boot.systemd-boot.enable = true; + + services = { + networking = { + enable = true; + networkmanager.enable = true; + }; + + audio = { + enable = true; + pulse.enable = true; + }; + + selfhost = { + navidrome.enable = true; + }; + }; + }; +} diff --git a/hosts/ganymede/disks.nix b/hosts/ganymede/disks.nix new file mode 100644 index 0000000..b701fda --- /dev/null +++ b/hosts/ganymede/disks.nix @@ -0,0 +1,40 @@ +{ + disko.enableConfig = true; + disko.devices = { + disk.main = { + device = "/dev/nvme0n1"; + type = "disk"; + content = { + type = "gpt"; + partitions = { + ESP = { + type = "EF00"; + size = "1G"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + mountOptions = ["umask=0077"]; + }; + }; + media = { + size = "100G"; + content = { + type = "filesystem"; + format = "xfs"; + mountpoint = "/media"; + }; + }; + root = { + size = "100%"; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/"; + }; + }; + }; + }; + }; + }; +} diff --git a/hosts/ganymede/nixos.nix b/hosts/ganymede/nixos.nix new file mode 100644 index 0000000..bdede45 --- /dev/null +++ b/hosts/ganymede/nixos.nix @@ -0,0 +1,8 @@ +{inputs, ...}: { + # imports = [ + # inputs.disko.nixosModules.disko + # ./disks.nix + # ]; + + nixpkgs.hostPlatform = "x86_64-linux"; +} diff --git a/hosts/jupiter/config.nix b/hosts/jupiter/config.nix index 80dd198..ea33143 100644 --- a/hosts/jupiter/config.nix +++ b/hosts/jupiter/config.nix @@ -1,15 +1,4 @@ -{inputs, ...}: { - nix-furnace = { - extraHomeModules = [ - ./home.nix - ]; - - extraSystemModules = [ - ./system.nix - inputs.hjem.nixosModules.default - ]; - }; - +{ collinux = { theme = "adwaita"; @@ -21,6 +10,8 @@ desktop = { gnome.enable = true; + gdm.enable = true; + programs = { firefox.enable = true; blackbox.enable = true; diff --git a/hosts/jupiter/home.nix b/hosts/jupiter/hjem.nix index 137c74a..33d260a 100644 --- a/hosts/jupiter/home.nix +++ b/hosts/jupiter/hjem.nix @@ -1,6 +1,5 @@ {pkgs, ...}: { - home.preferXdgDirectories = true; - home.packages = with pkgs; [ + packages = with pkgs; [ orca-slicer freecad-wayland gimp @@ -8,6 +7,4 @@ bottles musescore ]; - - home.stateVersion = "25.05"; } diff --git a/hosts/jupiter/system.nix b/hosts/jupiter/nixos.nix index b82f70a..268b2bc 100644 --- a/hosts/jupiter/system.nix +++ b/hosts/jupiter/nixos.nix @@ -25,4 +25,6 @@ fonts.packages = [pkgs.nerd-fonts.iosevka]; system.stateVersion = "25.05"; + + nixpkgs.hostPlatform = "x86_64-linux"; } diff --git a/hosts/mercury/ai.nix b/hosts/mercury/ai.nix index 1bece4a..42a478a 100644 --- a/hosts/mercury/ai.nix +++ b/hosts/mercury/ai.nix @@ -3,4 +3,5 @@ enable = true; loadModels = ["deepseek-r1:1.5b"]; }; + environment.systemPackages = [pkgs.mcphost]; } diff --git a/hosts/mercury/config.nix b/hosts/mercury/config.nix index 3790951..d5f0832 100644 --- a/hosts/mercury/config.nix +++ b/hosts/mercury/config.nix @@ -1,15 +1,4 @@ -{inputs, ...}: { - nix-furnace = { - extraSystemModules = [ - inputs.hjem.nixosModules.default - ./system.nix - ./disks.nix - ]; - extraHomeModules = [ - ./home.nix - ]; - }; - +{ collinux = { theme = "catppuccin"; @@ -19,14 +8,23 @@ }; desktop = { - sway.enable = true; wallpaper = ./wallpaper.jpg; - components.fuzzel.enable = true; - components.dunst.enable = true; + + gtk.enable = true; + + greetd.enable = true; + + sway = { + enable = true; + components.fuzzel.enable = true; + components.dunst.enable = true; + }; programs = { firefox.enable = true; foot.enable = true; + + research.enable = true; }; }; @@ -73,7 +71,7 @@ boot = { systemd-boot.enable = true; - plymouth.enable = true; + # plymouth.enable = true; secureBoot.enable = true; }; }; diff --git a/hosts/mercury/disks.nix b/hosts/mercury/disks.nix index ffa0871..af6c161 100644 --- a/hosts/mercury/disks.nix +++ b/hosts/mercury/disks.nix @@ -1,6 +1,4 @@ { - # TODO: Replace this with disko eventually - fileSystems."/" = { device = "/dev/disk/by-uuid/3d80a86b-3268-4209-a833-b531b8bc0ebc"; fsType = "ext4"; diff --git a/hosts/mercury/hjem.nix b/hosts/mercury/hjem.nix new file mode 100644 index 0000000..463290c --- /dev/null +++ b/hosts/mercury/hjem.nix @@ -0,0 +1,10 @@ +{pkgs, ...}: { + packages = with pkgs; [ + # GUI apps + tor-browser # don't ask + obsidian + kdePackages.kleopatra + mpv + musescore + ]; +} diff --git a/hosts/mercury/home.nix b/hosts/mercury/home.nix deleted file mode 100644 index 5e80d16..0000000 --- a/hosts/mercury/home.nix +++ /dev/null @@ -1,17 +0,0 @@ -{pkgs, ...}: { - home.preferXdgDirectories = true; - home.packages = with pkgs; [ - # GUI apps - tor-browser # don't ask - obsidian - kdePackages.kleopatra - mpv - musescore - qutebrowser - - zotero - zathura - ]; - - home.stateVersion = "25.05"; -} diff --git a/hosts/mercury/system.nix b/hosts/mercury/nixos.nix index 0e982a0..05e84a7 100644 --- a/hosts/mercury/system.nix +++ b/hosts/mercury/nixos.nix @@ -1,9 +1,11 @@ { + lib, pkgs, inputs, ... }: { imports = [ + ./disks.nix ./battery.nix ./ai.nix @@ -13,18 +15,11 @@ inputs.lanzaboote.nixosModules.lanzaboote ]; - fonts = { - enableDefaultPackages = false; - packages = with pkgs; [ - ibm-plex - nerd-fonts.iosevka - ]; - }; + environment.defaultPackages = lib.mkForce []; # im not a noob networking.firewall.allowedUDPPorts = [445]; networking.firewall.allowedTCPPorts = [8000]; users.users.collin.packages = [pkgs.cifs-utils]; - fonts.fontDir.enable = true; system.stateVersion = "25.05"; } diff --git a/lib/lib.nix b/lib/lib.nix index 5310a6d..640f0ca 100644 --- a/lib/lib.nix +++ b/lib/lib.nix @@ -49,4 +49,6 @@ let in { inherit globimport; inherit options; + + flatten = builtins.foldl' (a: b: a ++ b) []; } diff --git a/lib/nix-furnace/default.nix b/lib/nix-furnace/default.nix deleted file mode 100644 index 303730e..0000000 --- a/lib/nix-furnace/default.nix +++ /dev/null @@ -1,102 +0,0 @@ -let - my-lib = import ../lib.nix; - inherit (my-lib.globimport) lazyImport getSubdirs getSubfiles; - - mkHomeImports = modName: [ - (lazyImport ../../modules/${modName}/options.nix) - (lazyImport ../../modules/${modName}/home/default.nix) - ]; - mkSystemImports = modName: [ - (lazyImport ../../modules/${modName}/options.nix) - (lazyImport ../../modules/${modName}/system/default.nix) - ]; - - mkModules = mapFn: { - imports = - [../../modules/options.nix] - ++ (builtins.foldl' (a: b: a ++ b) [] (builtins.map mapFn (getSubdirs ../../modules))); - }; - - mkHomeModules = mkModules mkHomeImports; - mkSystemModules = mkModules mkSystemImports; - - mkHost = { - hostname, - namespace, - inputs, - ... - }: let - preloadedConfig = import ../../hosts/${hostname}/config.nix {inherit inputs;}; - username = preloadedConfig."${namespace}".user.name; - - furnaceOptions = {lib, ...}: let - inherit (lib) mkOption types; - in { - options.nix-furnace = { - extraHomeModules = mkOption { - type = with types; listOf path; - default = []; - }; - - extraSystemModules = mkOption { - type = with types; listOf path; - default = []; - }; - }; - }; - - specialArgs = {inherit inputs my-lib;}; - in - inputs.nixpkgs.lib.nixosSystem { - inherit specialArgs; - modules = - [ - {networking.hostName = hostname;} - - ../../hosts/${hostname}/config.nix - - mkSystemModules - - furnaceOptions - - # Home-manager - inputs.home-manager.nixosModules.home-manager - { - home-manager = { - backupFileExtension = "bak"; - useGlobalPkgs = true; - useUserPackages = true; - extraSpecialArgs = specialArgs; - users."${username}" = { - imports = - [ - mkHomeModules - - furnaceOptions - - ../../hosts/${hostname}/config.nix - ] - ++ preloadedConfig.nix-furnace.extraHomeModules; - }; - }; - } - ] - ++ preloadedConfig.nix-furnace.extraSystemModules; - }; - - mkFlake = { - namespace, - inputs, - ... - }: { - nixosConfigurations = - builtins.listToAttrs - (builtins.map (hostname: { - name = hostname; - value = mkHost {inherit inputs hostname namespace;}; - }) - (getSubdirs ../../hosts)); - }; -in { - inherit mkFlake; -} diff --git a/lib/nix-furnace/mkSystem.nix b/lib/nix-furnace/mkSystem.nix new file mode 100644 index 0000000..cf14f4a --- /dev/null +++ b/lib/nix-furnace/mkSystem.nix @@ -0,0 +1,119 @@ +let + my-lib = import ../lib.nix; + inherit (my-lib.globimport) getSubdirs lazyImport; + + listModules = getSubdirs ../../modules; + + mkNixosSystem = { + inputs, + hostname, + username, + module_types, + }: + inputs.nixpkgs.lib.nixosSystem { + specialArgs = {inherit inputs my-lib;}; + modules = [ + {networking.hostName = hostname;} + + ../../hosts/${hostname}/config.nix + + # Nixos-sided modules + { + imports = + [ + ../../modules/options.nix + ../../hosts/${hostname}/config.nix + (lazyImport ../../hosts/${hostname}/nixos.nix) + ] + ++ (listModules + |> (builtins.map (modName: [ + (lazyImport ../../modules/${modName}/options.nix) + (lazyImport ../../modules/${modName}/nixos/default.nix) + ])) + |> my-lib.flatten); + } + + # Home-sided modules + ( + if (builtins.elem "home" module_types) + then { + imports = [ + inputs.home-manager.nixosModules.home-manager + ]; + home-manager = { + backupFileExtension = "bak"; + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = {inherit inputs my-lib;}; + users.${username} = { + imports = + [ + ../../modules/options.nix + ../../hosts/${hostname}/config.nix + (lazyImport ../../hosts/${hostname}/home.nix) + { + home.preferXdgDirectories = true; + } + ] + ++ (listModules + |> (builtins.map (modName: [ + (lazyImport ../../modules/${modName}/options.nix) + (lazyImport ../../modules/${modName}/home/default.nix) + ])) + |> my-lib.flatten); + }; + }; + } + else {} + ) + + # Hjem-sided modules + ( + if (builtins.elem "hjem" module_types) + then { + imports = [ + inputs.hjem.nixosModules.hjem + ]; + hjem = { + extraModules = + [ + ../../modules/options.nix + ../../hosts/${hostname}/config.nix + (lazyImport ../../hosts/${hostname}/hjem.nix) + ] + ++ (listModules + |> (builtins.map (modName: [ + (lazyImport ../../modules/${modName}/options.nix) + (lazyImport ../../modules/${modName}/hjem/default.nix) + ])) + |> my-lib.flatten); + specialArgs = {inherit inputs my-lib;}; + users.${username} = { + enable = true; + user = username; + directory = "/home/${username}"; + }; + }; + } + else {} + ) + ]; + }; + + mkSystemManagerSystem = { + inputs, + hostname, + }: + inputs.system-manager.lib.makeSystemConfig { + modules = + [../../modules/options.nix ../../hosts/${hostname}/system.nix] + ++ (listModules + |> (builtins.map (modName: [ + (lazyImport ../../modules/${modName}/options.nix) + (lazyImport ../../modules/${modName}/system/default.nix) + ])) + |> my-lib.flatten); + }; +in { + inherit mkNixosSystem mkSystemManagerSystem; +} diff --git a/modules/boot/system/default.nix b/modules/boot/nixos/default.nix index 53f18be..66f31fc 100644 --- a/modules/boot/system/default.nix +++ b/modules/boot/nixos/default.nix @@ -12,9 +12,11 @@ in { boot = { + bcache.enable = false; # why is this default on? I DON'T CARE ABOUT bcache initrd = { verbose = false; systemd.enable = true; + checkJournalingFS = false; }; loader = { systemd-boot = lib.optionalAttrs (cfg.systemd-boot.enable && !cfg.secureBoot.enable) { diff --git a/modules/boot/system/plymouth.nix b/modules/boot/nixos/plymouth.nix index 5f7952b..5f7952b 100644 --- a/modules/boot/system/plymouth.nix +++ b/modules/boot/nixos/plymouth.nix diff --git a/modules/desktop/hjem/default.nix b/modules/desktop/hjem/default.nix new file mode 100644 index 0000000..f7dd95e --- /dev/null +++ b/modules/desktop/hjem/default.nix @@ -0,0 +1,13 @@ +{ + imports = [ + ./gtk.nix + + ./wm/sway.nix + ./wm/dunst.nix + ./wm/fuzzel.nix + + ./programs/foot.nix + ./programs/firefox.nix + ./programs/research.nix + ]; +} diff --git a/modules/desktop/hjem/gtk.nix b/modules/desktop/hjem/gtk.nix new file mode 100644 index 0000000..3ea3b37 --- /dev/null +++ b/modules/desktop/hjem/gtk.nix @@ -0,0 +1,38 @@ +{ + pkgs, + config, + lib, + ... +}: let + cfg = config.collinux.desktop.gtk; +in + lib.mkIf cfg.enable { + packages = with pkgs; [ + dconf + + papirus-icon-theme + cfg.cursor_data.package + cfg.theme_data.package + ]; + + xdg.config.files = let + value.Settings = { + gtk-cursor-theme-name = cfg.cursor_data.name; + gtk-cursor-theme-size = 24; + gtk-icon-theme-name = "Papirus"; + gtk-theme-name = cfg.theme_data.name; + }; + in { + "gtk-3.0/settings.ini" = { + generator = lib.generators.toINI {}; + inherit value; + }; + "gtk-4.0/settings.ini" = { + generator = lib.generators.toINI {}; + inherit value; + }; + "gtk-4.0/gtk.css".text = '' + @import url("file://${cfg.theme_data.package}/gtk-4.0/gtk.css"); + ''; + }; + } diff --git a/modules/desktop/hjem/programs/firefox.nix b/modules/desktop/hjem/programs/firefox.nix new file mode 100644 index 0000000..73040d2 --- /dev/null +++ b/modules/desktop/hjem/programs/firefox.nix @@ -0,0 +1,26 @@ +{ + pkgs, + lib, + config, + ... +}: let + cfg = config.collinux.desktop.programs.firefox; +in + lib.mkIf cfg.enable { + files.".mozilla/firefox/profiles.ini" = { + generator = lib.generators.toINI {}; + value = { + Profile0 = { + Name = "collin"; + IsRelative = 1; + Path = "collin"; + Default = 1; + }; + General = { + StartWithLastProfile = 1; + Version = 2; + }; + }; + }; + packages = [pkgs.firefox]; + } diff --git a/modules/desktop/system/programs/foot.nix b/modules/desktop/hjem/programs/foot.nix index 1b99ce3..4d630c6 100644 --- a/modules/desktop/system/programs/foot.nix +++ b/modules/desktop/hjem/programs/foot.nix @@ -50,14 +50,12 @@ }; in lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files = { - ".config/foot/foot.ini" = { - generator = lib.generators.toINI {}; - value = settings; - }; + files = { + ".config/foot/foot.ini" = { + generator = lib.generators.toINI {}; + value = settings; }; - - packages = [pkgs.foot]; }; + + packages = [pkgs.foot]; } diff --git a/modules/desktop/hjem/programs/research.nix b/modules/desktop/hjem/programs/research.nix new file mode 100644 index 0000000..3bfde76 --- /dev/null +++ b/modules/desktop/hjem/programs/research.nix @@ -0,0 +1,26 @@ +{ + config, + pkgs, + lib, + ... +}: let + cfg = config.collinux.desktop.programs.research; +in + lib.mkIf cfg.enable { + packages = with pkgs; [ + zotero + zathura + xournalpp + ]; + files = { + ".config/xournalpp/toolbar.ini" = { + generator = lib.generators.toINI {}; + value = { + "Default" = { + toolbarTop1 = "ERASER,PEN,HIGHLIGHTER,SELECT_PDF_TEXT_LINEAR,SEPARATOR,TEXT,MATH_TEX,IMAGE,SPACER,FINE,MEDIUM,THICK,VERY_THICK,SEPARATOR,SELECT_FONT,COLOR(6),COLOR(8),COLOR(9),COLOR(3),COLOR(2),COLOR(4),COLOR(7),COLOR(5),COLOR(0),SEPARATOR"; + name = "Default"; + }; + }; + }; + }; + } diff --git a/modules/desktop/system/components/dunst.nix b/modules/desktop/hjem/wm/dunst.nix index 1069087..38a8240 100644 --- a/modules/desktop/system/components/dunst.nix +++ b/modules/desktop/hjem/wm/dunst.nix @@ -4,7 +4,7 @@ pkgs, ... }: let - cfg = config.collinux.desktop.components.dunst; + cfg = config.collinux.desktop.sway.components.dunst; settings = '' [global] @@ -31,8 +31,6 @@ ''; in lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files.".config/dunst/dunstrc".text = settings; - packages = [pkgs.dunst pkgs.inotify-tools]; - }; + files.".config/dunst/dunstrc".text = settings; + packages = with pkgs; [dunst inotify-tools]; } diff --git a/modules/desktop/system/components/fuzzel.nix b/modules/desktop/hjem/wm/fuzzel.nix index f5937c6..7b9d075 100644 --- a/modules/desktop/system/components/fuzzel.nix +++ b/modules/desktop/hjem/wm/fuzzel.nix @@ -4,12 +4,11 @@ pkgs, ... }: let - cfg = config.collinux.desktop.components.fuzzel; - ini' = pkgs.formats.ini {}; + cfg = config.collinux.desktop.sway.components.fuzzel; - settings = ini'.generate "fuzzel.ini" { + settings = { main = { - prompt = " "; + prompt = ""; dpi-aware = false; font = "Iosevka Nerd Font"; @@ -41,10 +40,10 @@ }; in lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files = { - ".config/fuzzel/fuzzel.ini".source = settings; - }; - packages = [pkgs.fuzzel]; + files.".config/fuzzel/fuzzel.ini" = { + generator = lib.generators.toINI {}; + value = settings; }; + + packages = [pkgs.fuzzel]; } diff --git a/modules/desktop/system/environments/sway.nix b/modules/desktop/hjem/wm/sway.nix index 4ea3378..1cd7750 100644 --- a/modules/desktop/system/environments/sway.nix +++ b/modules/desktop/hjem/wm/sway.nix @@ -58,48 +58,53 @@ bindsym Mod4+2 workspace number 2 bindsym Mod4+3 workspace number 3 bindsym Mod4+4 workspace number 4 + bindsym Mod4+5 workspace number 5 + bindsym Mod4+6 workspace number 6 + bindsym Mod4+7 workspace number 7 + bindsym Mod4+8 workspace number 8 + bindsym Mod4+9 workspace number 9 + bindsym Mod4+Shift+1 move container to workspace number 1 bindsym Mod4+Shift+2 move container to workspace number 2 bindsym Mod4+Shift+3 move container to workspace number 3 bindsym Mod4+Shift+4 move container to workspace number 4 + bindsym Mod4+Shift+5 move container to workspace number 5 + bindsym Mod4+Shift+6 move container to workspace number 6 + bindsym Mod4+Shift+7 move container to workspace number 7 + bindsym Mod4+Shift+8 move container to workspace number 8 + bindsym Mod4+Shift+9 move container to workspace number 9 - bindsym Mod4+Return exec "${pkgs.foot}/bin/footclient" + bindsym Mod4+Return exec ${pkgs.foot}/bin/footclient bindsym Mod4+Shift+Return exec ${pkgs.foot}/bin/foot - bindsym Mod4+Space exec ${pkgs.fuzzel}/bin/fuzzel - bindsym Mod4+b exec ${pkgs.firefox}/bin/firefox - bindsym Mod4+Shift+b exec ${pkgs.qutebrowser}/bin/qutebrowser + bindsym Mod4+Space exec ${pkgs.fuzzel}/bin/fuzzel + bindsym Mod4+b exec ${pkgs.firefox}/bin/firefox + bindsym Mod4+Shift+b exec ${pkgs.qutebrowser}/bin/qutebrowser bindsym Mod4+q kill - bindsym XF86AudioRaiseVolume exec 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+; dunstify -t 300 -h string:x-canonical-private-synchronous:audio "Volume: " -h "int:value:$(dec=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | cut -d\" \" -f2);echo "$dec * 100" | bc)"' - bindsym XF86AudioLowerVolume exec 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-; dunstify -t 300 -h string:x-canonical-private-synchronous:audio "Volume: " -h "int:value:$(dec=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | cut -d\" \" -f2);echo "$dec * 100" | bc)"' + bindsym XF86AudioRaiseVolume exec 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+; dunstify -t 300 -h string:x-canonical-private-synchronous:audio "Volume: " -h "int:value:$(dec=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | cut -d\" \" -f2);echo "$dec * 100" | ${pkgs.bc}/bin/bc)"' + bindsym XF86AudioLowerVolume exec 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-; dunstify -t 300 -h string:x-canonical-private-synchronous:audio "Volume: " -h "int:value:$(dec=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | cut -d\" \" -f2);echo "$dec * 100" | ${pkgs.bc}/bin/bc)"' bindsym XF86MonBrightnessUp exec 'brightnessctl set 5%+; dunstify -t 300 -h string:x-canonical-private-synchronous:brightness "Brightness: " -h "int:value:$(g=$(brightnessctl get);m=$(brightnessctl max);echo $((g * 100 / m)))"' bindsym XF86MonBrightnessDown exec 'brightnessctl set 5%-; dunstify -t 300 -h string:x-canonical-private-synchronous:brightness "Brightness: " -h "int:value:$(g=$(brightnessctl get);m=$(brightnessctl max);echo $((g * 100 / m)))"' + bindsym Home exec 'playerctl previous' + bindsym End exec 'playerctl play-pause' + bindsym Insert exec 'playerctl next' + default_border pixel 2 smart_borders on smart_gaps on ''; in lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files = { - ".config/sway/config".text = settings; - ".config/sway/catppuccin-mocha".text = colors; - }; - - packages = [pkgs.sway pkgs.bc pkgs.brightnessctl]; + files = { + ".config/sway/config".text = settings; + ".config/sway/catppuccin-mocha".text = colors; }; - # Greetd - services.greetd = { - enable = true; - settings = rec { - initial_session = { - command = "${pkgs.sway}/bin/sway"; - user = config.collinux.user.name; - }; - default_session = initial_session; - }; - }; + packages = with pkgs; [ + sway + brightnessctl + playerctl + ]; } diff --git a/modules/desktop/home/gtk/adwaita.nix b/modules/desktop/home/gtk/adwaita.nix deleted file mode 100644 index 1a17d13..0000000 --- a/modules/desktop/home/gtk/adwaita.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ - pkgs, - lib, - config, - ... -}: let - cfg = config.collinux.desktop.gtk; -in - lib.mkIf (cfg.theme == "adwaita") { - home.pointerCursor = { - gtk.enable = true; - dotIcons.enable = false; - - package = pkgs.vanilla-dmz; - name = "Vanilla-DMZ"; - size = 24; - }; - - gtk.theme = { - name = "adw-gtk3"; - package = pkgs.adw-gtk3; - }; - - dconf = { - enable = true; - settings = { - "org/gnome/desktop/interface" = { - color-scheme = "prefer-dark"; - enable-hot-corners = false; - }; - }; - }; - } diff --git a/modules/desktop/home/gtk/catppuccin.nix b/modules/desktop/home/gtk/catppuccin.nix deleted file mode 100644 index 81f0d3d..0000000 --- a/modules/desktop/home/gtk/catppuccin.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ - pkgs, - lib, - config, - ... -}: let - cfg = config.collinux.desktop.gtk; -in - lib.mkIf (cfg.theme == "catppuccin") { - home.pointerCursor = { - hyprcursor = { - enable = true; - size = 24; - }; - gtk.enable = true; - dotIcons.enable = false; - - package = pkgs.catppuccin-cursors.mochaDark; - name = "catppuccin-mocha-dark-cursors"; - size = 24; - }; - - gtk = { - theme = { - package = pkgs.catppuccin-gtk.override { - accents = ["blue"]; - variant = "mocha"; - size = "standard"; - }; - name = "catppuccin-mocha-blue-standard"; - }; - }; - } diff --git a/modules/desktop/home/gtk/default.nix b/modules/desktop/home/gtk/default.nix deleted file mode 100644 index 8dc00f2..0000000 --- a/modules/desktop/home/gtk/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - pkgs, - config, - lib, - ... -}: let - cfg = config.collinux.gtk; -in { - imports = [ - ./catppuccin.nix - ./adwaita.nix - ]; - - config = { - home.packages = [pkgs.dconf]; - - gtk = { - enable = true; - iconTheme = { - package = pkgs.papirus-icon-theme; - name = "Papirus"; - }; - gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc"; - }; - }; -} diff --git a/modules/desktop/nixos/default.nix b/modules/desktop/nixos/default.nix new file mode 100644 index 0000000..1301483 --- /dev/null +++ b/modules/desktop/nixos/default.nix @@ -0,0 +1,12 @@ +{...}: { + imports = [ + ./gnome.nix + ./fonts.nix + + ./greeters/greetd.nix + ./greeters/gdm.nix + + ./programs/firefox.nix + ./programs/blackbox.nix + ]; +} diff --git a/modules/desktop/nixos/fonts.nix b/modules/desktop/nixos/fonts.nix new file mode 100644 index 0000000..3f10d92 --- /dev/null +++ b/modules/desktop/nixos/fonts.nix @@ -0,0 +1,8 @@ +{pkgs, ...}: { + fonts = { + enableDefaultPackages = false; + # fontDir.enable = true; + fontconfig.enable = true; + packages = [pkgs.nerd-fonts.iosevka pkgs.ibm-plex]; # for terminal (blackbox or foot) + }; +} diff --git a/modules/desktop/system/environments/gnome.nix b/modules/desktop/nixos/gnome.nix index e298756..c88a809 100644 --- a/modules/desktop/system/environments/gnome.nix +++ b/modules/desktop/nixos/gnome.nix @@ -7,18 +7,14 @@ cfg = config.collinux.desktop.gnome; in lib.mkIf cfg.enable { - services.displayManager.gdm = { - enable = true; - wayland = true; - }; services.desktopManager.gnome.enable = true; environment.gnome.excludePackages = with pkgs; [ orca evince - file-roller + # file-roller geary - gnome-disk-utility + # gnome-disk-utility seahorse # sushi # sysprof @@ -85,6 +81,12 @@ in sleep-inactive-ac-type = "nothing"; }; + # Theming, etc + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + enable-hot-corners = false; + }; + # Keybindings "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { binding = "<Super>Return"; diff --git a/modules/desktop/nixos/greeters/gdm.nix b/modules/desktop/nixos/greeters/gdm.nix new file mode 100644 index 0000000..598114a --- /dev/null +++ b/modules/desktop/nixos/greeters/gdm.nix @@ -0,0 +1,13 @@ +{ + config, + lib, + ... +}: let + cfg = config.collinux.desktop.gdm; +in + lib.mkIf cfg.enable { + services.displayManager.gdm = { + enable = true; + wayland = true; + }; + } diff --git a/modules/desktop/nixos/greeters/greetd.nix b/modules/desktop/nixos/greeters/greetd.nix new file mode 100644 index 0000000..42ff9a7 --- /dev/null +++ b/modules/desktop/nixos/greeters/greetd.nix @@ -0,0 +1,19 @@ +{ + config, + lib, + ... +}: let + cfg = config.collinux.desktop.greetd; +in + lib.mkIf cfg.enable { + services.greetd = { + enable = true; + settings = rec { + initial_session = { + command = lib.getExe cfg.command; + user = config.collinux.user.name; + }; + default_session = initial_session; + }; + }; + } diff --git a/modules/desktop/system/programs/blackbox.nix b/modules/desktop/nixos/programs/blackbox.nix index 9cff44a..9cff44a 100644 --- a/modules/desktop/system/programs/blackbox.nix +++ b/modules/desktop/nixos/programs/blackbox.nix diff --git a/modules/desktop/nixos/programs/firefox.nix b/modules/desktop/nixos/programs/firefox.nix new file mode 100644 index 0000000..f2daf43 --- /dev/null +++ b/modules/desktop/nixos/programs/firefox.nix @@ -0,0 +1,68 @@ +{ + pkgs, + lib, + config, + ... +}: let + cfg = config.collinux.desktop.programs.firefox; +in + lib.mkIf cfg.enable { + programs.firefox = { + enable = true; + policies = { + PasswordManagerEnabled = false; # use bitwarden instead + DisableAccounts = true; + DisablePocket = true; + DisplayBookmarksToolbar = "always"; + + OverrideFirstRunPage = ""; + OverridePostUpdatePage = ""; + + NewTabPage = false; + + Preferences = let + opt = Value: { + inherit Value; + Status = "locked"; + }; + in { + "toolkit.legacyUserProfileCustomizations.stylesheets" = opt true; + "browser.tabs.inTitlebar" = opt 0; + "browser.tabs.hoverPreview.enabled" = opt 0; + + "browser.tabs.loadBookmarksInTabs" = opt true; + + "accessibility.force_disabled" = opt 1; + + "browser.compactmode.show" = opt true; + "browser.uidensity" = opt 1; + + "media.webspeech.synth.enabled" = opt false; # im not disabled + "media.webspeech.synth.dont_notify_on_error" = opt true; + }; + + ExtensionSettings = let + ext = name: { + installation_mode = "force_installed"; + install_url = "https://addons.mozilla.org/firefox/downloads/latest/${name}/latest.xpi"; + }; + in + { + "{446900e4-71c2-419f-a6a7-df9c091e268b}" = ext "bitwarden-password-manager"; + "uBlock0@raymondhill.net" = ext "uBlock0@raymondhill.net"; + "addon@darkreader.org" = ext "addon@darkreader.org"; + } + // (lib.optionalAttrs (cfg.theme == "catppuccin") { + "{88b098c8-19be-421e-8ffa-85ddd1f3f004}" = ext "catppuccin-mocha-blue"; + }) + // (lib.optionalAttrs (cfg.extensions.zotero.enable) { + "zotero@chnm.gmu.edu" = { + installation_mode = "force_installed"; + install_url = "https://download.zotero.org/connector/firefox/release/Zotero_Connector-5.0.181.xpi"; + }; + }); + }; + }; + + services.speechd.enable = lib.mkForce false; # gets installed by firefox, but we don't need it + } diff --git a/modules/desktop/options.nix b/modules/desktop/options.nix index 6b1e991..994b13d 100644 --- a/modules/desktop/options.nix +++ b/modules/desktop/options.nix @@ -1,4 +1,5 @@ { + pkgs, config, lib, my-lib, @@ -9,32 +10,86 @@ in { options = { collinux.desktop = { - greeter = mkOption { - type = types.enum ["gdm" "greetd"]; - default = let - cfg = config.collinux.desktop; - in - if (cfg.sway.enable && !cfg.gnome.enable) - then "greetd" - else "gdm"; - }; - wallpaper = mkOption { - type = types.path; + type = with types; oneOf [str path]; + description = "File to use as the wallpaper on this machine"; }; - components = { - waybar = mkProgramOption "waybar"; - dunst = mkProgramOption "dunst"; - fuzzel = mkProgramOption "fuzzel"; + greetd = { + enable = mkEnableOption "greetd greeter"; + command = mkOption { + type = lib.types.package; + default = let + cfg = config.collinux.desktop; + in + if (cfg.sway.enable && !cfg.gnome.enable) + then pkgs.sway + else null; + }; }; + gdm.enable = mkEnableOption "gdm display manager"; - sway.enable = mkEnableOption "sway"; + sway = { + enable = mkEnableOption "sway"; + components = { + # waybar = mkProgramOption "waybar"; + dunst = mkProgramOption "dunst"; + fuzzel = mkProgramOption "fuzzel"; + }; + }; gnome.enable = mkEnableOption "gnome"; - gtk.theme = mkOption { - type = types.enum ["catppuccin" "adwaita"]; - default = config.collinux.theme; + gtk = { + enable = mkEnableOption "gtk theming"; + theme = mkOption { + type = types.enum ["catppuccin" "adwaita"]; + default = config.collinux.theme; + }; + cursor_data = { + package = mkOption { + type = lib.types.package; + default = + if (config.collinux.desktop.gtk.theme == "catppuccin") + then pkgs.catppuccin-cursors.mochaDark + else if (config.collinux.desktop.gtk.theme == "adwaita") + then pkgs.vanilla-dmz + else null; + }; + name = mkOption { + type = lib.types.str; + default = + if (config.collinux.desktop.gtk.theme == "catppuccin") + then "catppuccin-mocha-dark-cursors" + else if (config.collinux.desktop.gtk.theme == "adwaita") + then "Vanilla-DMZ" + else null; + }; + }; + theme_data = { + package = mkOption { + type = lib.types.package; + default = + if (config.collinux.desktop.gtk.theme == "catppuccin") + then + (pkgs.catppuccin-gtk.override { + variant = "mocha"; + accents = ["blue"]; + size = "standard"; + }) + else if (config.collinux.desktop.gtk.theme == "adwaita") + then pkgs.adw-gtk3 + else ""; + }; + name = mkOption { + type = lib.types.str; + default = + if (config.collinux.desktop.gtk.theme == "catppuccin") + then "catppuccin-mocha-blue-standard" + else if (config.collinux.desktop.gtk.theme == "adwaita") + then "adw-gtk3" + else ""; + }; + }; }; programs = { @@ -48,11 +103,17 @@ in { type = types.enum ["none" "catppuccin" "adwaita"]; default = config.collinux.theme; }; + extensions.zotero.enable = mkOption { + description = "install Zotero Connector for Firefox"; + default = config.collinux.desktop.programs.research.enable; + }; }; foot.enable = mkEnableOption "foot"; blackbox.enable = mkEnableOption "blackbox"; alacritty.enable = mkEnableOption "alacritty"; + + research.enable = mkEnableOption "zathura, Xournal++, Zotero, Zotero Connector"; }; }; }; diff --git a/modules/desktop/system/default.nix b/modules/desktop/system/default.nix deleted file mode 100644 index 8827070..0000000 --- a/modules/desktop/system/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -{...}: { - imports = [ - ./environments/gnome.nix - ./environments/sway.nix - - ./programs/firefox.nix - ./programs/foot.nix - ./programs/blackbox.nix - ./programs/alacritty.nix - - ./components/fuzzel.nix - ./components/dunst.nix - ]; -} diff --git a/modules/desktop/system/programs/alacritty.nix b/modules/desktop/system/programs/alacritty.nix deleted file mode 100644 index f73a901..0000000 --- a/modules/desktop/system/programs/alacritty.nix +++ /dev/null @@ -1,76 +0,0 @@ -{ - pkgs, - config, - lib, - ... -}: let - cfg = config.collinux.desktop.programs.alacritty; -in - lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files.".config/alacritty/alacritty.toml" = { - value = { - general = { - import = ["keys.toml" "colors.toml"]; - live_config_reload = true; - }; - font = { - normal.family = "Iosevka Nerd Font"; - size = 12; - }; - }; - generator = (pkgs.formats.toml {}).generate "alacritty.toml"; - }; - - files.".config/alacritty/colors.toml".text = '' - [colors] - draw_bold_text_with_bright_colors = false - - # Default colors - [colors.primary] - background = '#242424' - foreground = '#C5C6C5' - - # Colors the cursor will use if `custom_cursor_colors` is true - [colors.cursor] - text = '#2D3234' - cursor = '#C5C6C5' - - # Normal colors - [colors.normal] - black = '#2D3234' - red = '#FFA500' - green = '#6FEE91' - yellow = '#91EE6F' - blue = '#916FB4' - magenta = '#EE6F91' - cyan = '#6F91B4' - white = '#C5C6C5' - - # Bright colors - [colors.bright] - black = '#566164' - red = '#FFFF60' - green = '#33393B' - yellow = '#4B5356' - blue = '#919494' - magenta = '#D3D4D5' - cyan = '#EE6F6F' - white = '#EEEEEC' - ''; - - files.".config/alacritty/keys.toml".text = '' - [[keyboard.bindings]] - chars = "\u001b[27;5;9~" - key = "Tab" - mods = "Control" - - [[keyboard.bindings]] - chars = "\u001b[27;5;13~" - key = "Enter" - mods = "Control" - ''; - - packages = [pkgs.alacritty]; - }; - } diff --git a/modules/desktop/system/programs/firefox.nix b/modules/desktop/system/programs/firefox.nix deleted file mode 100644 index 7f4435b..0000000 --- a/modules/desktop/system/programs/firefox.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ - lib, - config, - ... -}: let - cfg = config.collinux.desktop.programs.firefox; -in - lib.mkIf cfg.enable { - programs.firefox = { - enable = true; - policies = { - PasswordManagerEnabled = false; # use bitwarden instead - DisableAccounts = true; - DisablePocket = true; - - OverrideFirstRunPage = ""; - OverridePostUpdatePage = ""; - - ExtensionSettings = let - ext = name: { - installation_mode = "force_installed"; - install_url = "https://addons.mozilla.org/firefox/downloads/latest/${name}/latest.xpi"; - }; - in - lib.mkMerge [ - { - "{446900e4-71c2-419f-a6a7-df9c091e268b}" = ext "bitwarden-password-manager"; - "uBlock0@raymondhill.net" = ext "uBlock0@raymondhill.net"; - } - (lib.mkIf (cfg.theme == "catppuccin") { - "{88b098c8-19be-421e-8ffa-85ddd1f3f004}" = ext "catppuccin-mocha-blue"; - }) - ]; - }; - }; - - hjem.users."${config.collinux.user.name}".files = { - ".mozilla/firefox/profiles.ini".text = '' - [Profile0] - Name=collin - IsRelative=1 - Path=collin - Default=1 - - [General] - StartWithLastProfile=1 - Version=2 - ''; - }; - } diff --git a/modules/nix/system/default.nix b/modules/nix/nixos/default.nix index 9c5c51e..9c5c51e 100644 --- a/modules/nix/system/default.nix +++ b/modules/nix/nixos/default.nix diff --git a/modules/services/system/audio.nix b/modules/services/nixos/audio.nix index 93f8289..273f1a4 100644 --- a/modules/services/system/audio.nix +++ b/modules/services/nixos/audio.nix @@ -7,7 +7,7 @@ cfg = config.collinux.services.audio; in lib.mkIf cfg.enable { - security.rtkit.enable = true; + security.rtkit.enable = false; services.pipewire = { enable = true; wireplumber.enable = true; diff --git a/modules/services/system/bluetooth.nix b/modules/services/nixos/bluetooth.nix index a86b5b3..a86b5b3 100644 --- a/modules/services/system/bluetooth.nix +++ b/modules/services/nixos/bluetooth.nix diff --git a/modules/services/system/default.nix b/modules/services/nixos/default.nix index b9ae4c7..d177b88 100644 --- a/modules/services/system/default.nix +++ b/modules/services/nixos/default.nix @@ -4,5 +4,6 @@ ./audio.nix ./bluetooth.nix ./tailscale.nix + ./selfhost ]; } diff --git a/modules/services/system/networking/default.nix b/modules/services/nixos/networking/default.nix index 68c794c..68c794c 100644 --- a/modules/services/system/networking/default.nix +++ b/modules/services/nixos/networking/default.nix diff --git a/modules/services/system/networking/iwd.nix b/modules/services/nixos/networking/iwd.nix index d081792..441498d 100644 --- a/modules/services/system/networking/iwd.nix +++ b/modules/services/nixos/networking/iwd.nix @@ -23,4 +23,5 @@ in useDHCP = false; networkmanager.enable = false; }; + systemd.network.enable = lib.mkForce false; } diff --git a/modules/services/system/networking/networkmanager.nix b/modules/services/nixos/networking/networkmanager.nix index f22f922..f22f922 100644 --- a/modules/services/system/networking/networkmanager.nix +++ b/modules/services/nixos/networking/networkmanager.nix diff --git a/modules/desktop/home/default.nix b/modules/services/nixos/selfhost/default.nix index 914b450..d3b884a 100644 --- a/modules/desktop/home/default.nix +++ b/modules/services/nixos/selfhost/default.nix @@ -4,7 +4,7 @@ ... }: { imports = [ - ./gtk + ./navidrome.nix ]; qt.style = lib.optionalAttrs (config.collinux.theme == "adwaita") {name = "adwaita-dark";}; diff --git a/modules/services/nixos/selfhost/navidrome.nix b/modules/services/nixos/selfhost/navidrome.nix new file mode 100644 index 0000000..5250b85 --- /dev/null +++ b/modules/services/nixos/selfhost/navidrome.nix @@ -0,0 +1,19 @@ +{ + config, + lib, + ... +}: let + cfg = config.collinux.services.selfhost.navidrome; +in + lib.mkIf cfg.enable { + services.navidrome = { + enable = true; + inherit (cfg) user; + settings = { + Port = 4533; + Address = "0.0.0.0"; + EnableInsightsCollector = false; + MusicFolder = "/home/${cfg.user}/Music"; + }; + }; + } diff --git a/modules/services/system/tailscale.nix b/modules/services/nixos/tailscale.nix index 3fbd691..3fbd691 100644 --- a/modules/services/system/tailscale.nix +++ b/modules/services/nixos/tailscale.nix diff --git a/modules/services/options.nix b/modules/services/options.nix index ddf6f58..b887395 100644 --- a/modules/services/options.nix +++ b/modules/services/options.nix @@ -11,12 +11,7 @@ in { enable = mkEnableOption "wifi"; iwd.enable = mkEnableOption "lightweight wifi daemon"; networkmanager.enable = mkEnableOption "heavier wifi daemon"; - tailscale = { - enable = mkEnableOption "tailscale"; - authKeyFile = mkOption { - type = "path"; - }; - }; + tailscale.enable = mkEnableOption "tailscale"; }; audio = { enable = mkEnableOption "pipewire + wireplumber"; @@ -28,6 +23,16 @@ in { blueman.enable = mkEnableOption "graphical bluetooth manager"; bluetuith.enable = mkEnableOption "terminal bluetooth manager"; }; + + selfhost = { + navidrome = { + enable = mkEnableOption "navidrome music server"; + user = mkOption { + description = "user to run the service as"; + default = config.collinux.user.name; + }; + }; + }; }; }; diff --git a/modules/terminal/system/default.nix b/modules/terminal/hjem/default.nix index 120e967..7915319 100644 --- a/modules/terminal/system/default.nix +++ b/modules/terminal/hjem/default.nix @@ -1,6 +1,4 @@ -{config, ...}: let - cfg = config.collinux.terminal.shells; -in { +{ imports = [ ./programs/fzf.nix ./programs/bat.nix @@ -14,11 +12,4 @@ in { ./programs/helix.nix ./programs/fish.nix ]; - - programs.command-not-found.enable = false; # broken without nix-channels - - users.users."${config.collinux.user.name}" = { - shell = cfg.defaultShell; - ignoreShellProgramCheck = true; - }; } diff --git a/modules/terminal/hjem/programs/bash.nix b/modules/terminal/hjem/programs/bash.nix new file mode 100644 index 0000000..646cbf8 --- /dev/null +++ b/modules/terminal/hjem/programs/bash.nix @@ -0,0 +1,29 @@ +{ + pkgs, + config, + lib, + ... +}: let + cfg = config.collinux.terminal.shells.bash; +in + lib.mkIf cfg.enable { + files = { + ".bashrc".text = '' + eval "$(direnv hook bash)" + + for file in ~/.config/bash/conf.d/*; do source "$file"; done + ''; + + packages = with pkgs; [ + fish + ripgrep + fd + moreutils + zip + unzip + btop + jq + direnv + ]; + }; + } diff --git a/modules/terminal/hjem/programs/bat.nix b/modules/terminal/hjem/programs/bat.nix new file mode 100644 index 0000000..3d605cc --- /dev/null +++ b/modules/terminal/hjem/programs/bat.nix @@ -0,0 +1,25 @@ +{ + pkgs, + config, + lib, + ... +}: let + cfg = config.collinux.terminal.programs.bat; +in + lib.mkIf cfg.enable { + files = + (lib.optionalAttrs config.collinux.terminal.shells.fish.enable { + ".config/fish/conf.d/bat.fish".text = '' + alias cat bat + set -gx BAT_THEME "base16" + ''; + }) + // (lib.optionalAttrs config.collinux.terminal.shells.bash.enable { + ".config/fish/conf.d/bat.bash".text = '' + alias cat="bat" + export BAT_THEME="base16" + ''; + }); + + packages = [pkgs.bat]; + } diff --git a/modules/terminal/system/programs/broot.nix b/modules/terminal/hjem/programs/broot.nix index fdb480a..2907a85 100644 --- a/modules/terminal/system/programs/broot.nix +++ b/modules/terminal/hjem/programs/broot.nix @@ -115,18 +115,23 @@ }; in lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files = { + files = + { ".config/broot/conf.toml" = { generator = (pkgs.formats.toml {}).generate "conf.toml"; value = conf; }; - - ".config/fish/conf.d/broot.fish".text = lib.mkIf config.collinux.terminal.shells.fish.enable '' - ${pkgs.broot}/bin/broot --print-shell-function fish | source + } + // (lib.optionalAttrs config.collinux.terminal.shells.fish.enable { + ".config/fish/conf.d/broot.fish".text = '' + broot --print-shell-function fish | source + ''; + }) + // (lib.optionalAttrs config.collinux.terminal.shells.bash.enable { + ".config/bash/conf.d/broot.bash".text = '' + eval "$(broot --print-shell-function bash)" ''; - }; + }); - packages = [pkgs.broot]; - }; + packages = [pkgs.broot]; } diff --git a/modules/terminal/system/programs/cmus.nix b/modules/terminal/hjem/programs/cmus.nix index e5184ce..afd2350 100644 --- a/modules/terminal/system/programs/cmus.nix +++ b/modules/terminal/hjem/programs/cmus.nix @@ -78,20 +78,18 @@ else ""; in lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files = let - e = text: { - inherit text; - executable = true; - }; - in { - ".config/cmus/scripts/status.sh" = e scripts.statusDisplay; - - ".config/cmus/rc".text = cmus_rc; - ".config/cmus/catppuccin.theme".text = lib.mkIf (cfg.theme == "catppuccin") cmus_theme; - ".config/cava/config".text = cava_config; + files = let + e = text: { + inherit text; + executable = true; }; + in { + ".config/cmus/scripts/status.sh" = e scripts.statusDisplay; - packages = with pkgs; [cava cmus]; + ".config/cmus/rc".text = cmus_rc; + ".config/cmus/catppuccin.theme".text = lib.mkIf (cfg.theme == "catppuccin") cmus_theme; + ".config/cava/config".text = cava_config; }; + + packages = with pkgs; [cava cmus]; } diff --git a/modules/terminal/hjem/programs/eza.nix b/modules/terminal/hjem/programs/eza.nix new file mode 100644 index 0000000..b900ceb --- /dev/null +++ b/modules/terminal/hjem/programs/eza.nix @@ -0,0 +1,25 @@ +{ + pkgs, + lib, + config, + ... +}: let + cfg = config.collinux.terminal.programs.eza; +in + lib.mkIf cfg.enable { + files = + (lib.optionalAttrs config.collinux.terminal.shells.fish.enable { + ".config/fish/conf.d/eza.fish".text = '' + alias ls "eza -A -w 80 --group-directories-first -I '.git*'" + alias tree "eza -T" + ''; + }) + // (lib.optionalAttrs config.collinux.terminal.shells.fish.enable { + ".config/bash/conf.d/eza.bash".text = '' + alias ls="eza -A -w 80 --group-directories-first -I '.git*'" + alias tree="eza -T" + ''; + }); + + packages = [pkgs.eza]; + } diff --git a/modules/terminal/hjem/programs/fish.nix b/modules/terminal/hjem/programs/fish.nix new file mode 100644 index 0000000..1aa4a40 --- /dev/null +++ b/modules/terminal/hjem/programs/fish.nix @@ -0,0 +1,35 @@ +{ + pkgs, + config, + lib, + ... +}: let + cfg = config.collinux.terminal.shells.fish; +in + lib.mkIf cfg.enable { + files = { + ".config/fish/config.fish".text = '' + set fish_greeting + + function fish_title + echo fish (prompt_pwd) + end + + direnv hook fish | source + pay-respects fish --alias | source + ''; + }; + + packages = with pkgs; [ + fish + ripgrep + fd + moreutils + zip + unzip + btop + jq + direnv + pay-respects + ]; + } diff --git a/modules/terminal/hjem/programs/fzf.nix b/modules/terminal/hjem/programs/fzf.nix new file mode 100644 index 0000000..5a51739 --- /dev/null +++ b/modules/terminal/hjem/programs/fzf.nix @@ -0,0 +1,25 @@ +{ + pkgs, + config, + lib, + ... +}: let + cfg = config.collinux.terminal.programs.fzf; +in + lib.mkIf cfg.enable { + files = + (lib.optionalAttrs config.collinux.terminal.shells.fish.enable { + ".config/fish/conf.d/fzf.fish".text = '' + fzf --fish | source + set -gx FZF_DEFAULT_OPTS "--color bg:#1E1E2E,bg+:#313244,border:#313244,fg:#CDD6F4,fg+:#CDD6F4,header:#F38BA8,hl:#F38BA8,hl+:#F38BA8,info:#CBA6F7,label:#CDD6F4,marker:#B4BEFE,pointer:#F5E0DC,prompt:#CBA6F7,selected-bg:#45475A,spinner:#F5E0DC" + ''; + }) + // (lib.optionalAttrs config.collinux.terminal.shells.bash.enable { + ".config/bash/conf.d/fzf.bash".text = '' + eval "$(fzf --bash)" + export FZF_DEFAULT_OPTS="--color bg:#1E1E2E,bg+:#313244,border:#313244,fg:#CDD6F4,fg+:#CDD6F4,header:#F38BA8,hl:#F38BA8,hl+:#F38BA8,info:#CBA6F7,label:#CDD6F4,marker:#B4BEFE,pointer:#F5E0DC,prompt:#CBA6F7,selected-bg:#45475A,spinner:#F5E0DC" + ''; + }); + + packages = [pkgs.fzf]; + } diff --git a/modules/terminal/system/programs/git.nix b/modules/terminal/hjem/programs/git.nix index 9943e40..d196f26 100644 --- a/modules/terminal/system/programs/git.nix +++ b/modules/terminal/hjem/programs/git.nix @@ -18,14 +18,12 @@ }; }; in { - hjem.users."${config.collinux.user.name}" = { - files = { - ".config/git/config" = { - generator = lib.generators.toGitINI; - value = git_config; - }; + files = { + ".config/git/config" = { + generator = lib.generators.toGitINI; + value = git_config; }; - - packages = [pkgs.git]; }; + + packages = [pkgs.git]; } diff --git a/modules/terminal/system/programs/helix.nix b/modules/terminal/hjem/programs/helix.nix index 49389ef..e66877b 100644 --- a/modules/terminal/system/programs/helix.nix +++ b/modules/terminal/hjem/programs/helix.nix @@ -139,33 +139,27 @@ }; in lib.mkIf cfg.enable { - nixpkgs.overlays = [ - (self: super: { - # rename window to filename when editing file - helix = self.writeShellScriptBin "hx" '' - file="$1" - printf '\033]2;%s\033\\' "hx $file" - exec ${super.helix}/bin/hx "$@" - ''; - }) - ]; - - hjem.users."${config.collinux.user.name}" = { - files = let - t = value: { - generator = (pkgs.formats.toml {}).generate "toml_file"; - inherit value; - }; - in { + files = let + t = value: { + generator = (pkgs.formats.toml {}).generate "toml_file"; + inherit value; + }; + in + { ".config/helix/config.toml" = t settings; ".config/helix/languages.toml" = t languages; ".config/helix/themes/catppuccin_mocha_transparent.toml" = t theme; - - ".config/fish/conf.d/helix.fish".text = lib.mkIf config.collinux.terminal.shells.fish.enable '' + } + // (lib.optionalAttrs config.collinux.terminal.shells.fish.enable { + ".config/fish/conf.d/helix.fish".text = '' set -gx EDITOR hx ''; - }; + }) + // (lib.optionalAttrs config.collinux.terminal.shells.bash.enable { + ".config/bash/conf.d/helix.bash".text = '' + EDITOR=hx + ''; + }); - packages = [pkgs.helix]; - }; + packages = [pkgs.helix]; } diff --git a/modules/terminal/system/programs/lazygit.nix b/modules/terminal/hjem/programs/lazygit.nix index e3e2b42..a939446 100644 --- a/modules/terminal/system/programs/lazygit.nix +++ b/modules/terminal/hjem/programs/lazygit.nix @@ -28,14 +28,12 @@ }; in lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files = { - ".config/lazygit/config.yml" = { - generator = lib.generators.toYAML {}; - value = settings; - }; + files = { + ".config/lazygit/config.yml" = { + generator = lib.generators.toYAML {}; + value = settings; }; - - packages = [pkgs.lazygit]; }; + + packages = [pkgs.lazygit]; } diff --git a/modules/terminal/system/programs/starship.nix b/modules/terminal/hjem/programs/starship.nix index c70a132..e9d79b5 100644 --- a/modules/terminal/system/programs/starship.nix +++ b/modules/terminal/hjem/programs/starship.nix @@ -35,14 +35,15 @@ }; in lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files = { + files = + { ".config/starship.toml" = { generator = (pkgs.formats.toml {}).generate "starship.toml"; value = settings; }; - - ".config/fish/conf.d/starship.fish".text = lib.mkIf config.collinux.terminal.shells.fish.enable '' + } + // (lib.optionalAttrs config.collinux.terminal.shells.fish.enable { + ".config/fish/conf.d/starship.fish".text = '' function starship_transient_prompt_func starship module character end @@ -50,8 +51,12 @@ in starship init fish | source enable_transience ''; - }; + }) + // (lib.optionalAttrs config.collinux.terminal.shells.bash.enable { + ".config/bash/conf.d/starship.bash".text = '' + eval "$(starship init bash)" + ''; + }); - packages = [pkgs.starship]; - }; + packages = [pkgs.starship]; } diff --git a/modules/terminal/system/programs/tmux.nix b/modules/terminal/hjem/programs/tmux.nix index 3fb7b73..738e729 100644 --- a/modules/terminal/system/programs/tmux.nix +++ b/modules/terminal/hjem/programs/tmux.nix @@ -285,57 +285,55 @@ ''; in lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files = let - e = text: { - inherit text; - executable = true; - }; - in { - # helpers - ".config/tmux/scripts/minibuffer.sh" = e scripts.minibuffer; - ".config/tmux/scripts/menu.sh" = e scripts.menu; - ".config/tmux/scripts/split.sh" = e scripts.paneSplit; - - # sessionizer - ".config/tmux/scripts/sessionizer.sh" = e scripts.sessionizer; - ".config/tmux/broot/sessionizer.toml" = { - generator = (pkgs.formats.toml {}).generate "sessionizer.toml"; - value = broot_sessionizer_config; - }; - ".config/tmux/scripts/launch-sessionizer.sh" = e scripts.launchSessionizer; - ".config/tmux/scripts/clean-sessions.sh" = e scripts.cleanSessions; - ".config/tmux/scripts/new-session.sh" = e scripts.newSession; - ".config/tmux/scripts/sessions-menu.sh" = e scripts.sessionsMenu; + files = let + e = text: { + inherit text; + executable = true; + }; + in { + # helpers + ".config/tmux/scripts/minibuffer.sh" = e scripts.minibuffer; + ".config/tmux/scripts/menu.sh" = e scripts.menu; + ".config/tmux/scripts/split.sh" = e scripts.paneSplit; - # find-file - ".config/tmux/scripts/launch-find-file.sh" = e scripts.launchFindFile; - ".config/tmux/broot/file.toml" = { - generator = (pkgs.formats.toml {}).generate "file.toml"; - value = broot_file_config; - }; + # sessionizer + ".config/tmux/scripts/sessionizer.sh" = e scripts.sessionizer; + ".config/tmux/broot/sessionizer.toml" = { + generator = (pkgs.formats.toml {}).generate "sessionizer.toml"; + value = broot_sessionizer_config; + }; + ".config/tmux/scripts/launch-sessionizer.sh" = e scripts.launchSessionizer; + ".config/tmux/scripts/clean-sessions.sh" = e scripts.cleanSessions; + ".config/tmux/scripts/new-session.sh" = e scripts.newSession; + ".config/tmux/scripts/sessions-menu.sh" = e scripts.sessionsMenu; - # search buffer - ".config/tmux/scripts/search-buffer.sh" = e scripts.searchBuffer; + # find-file + ".config/tmux/scripts/launch-find-file.sh" = e scripts.launchFindFile; + ".config/tmux/broot/file.toml" = { + generator = (pkgs.formats.toml {}).generate "file.toml"; + value = broot_file_config; + }; - # pane search - ".config/tmux/scripts/pane-search.sh" = e scripts.paneSearch; + # search buffer + ".config/tmux/scripts/search-buffer.sh" = e scripts.searchBuffer; - # fzf-exec - ".config/tmux/scripts/tmux-doc.sh" = e scripts.tmuxDoc; - ".config/tmux/scripts/fzf-exec.sh" = e scripts.fzfExec; + # pane search + ".config/tmux/scripts/pane-search.sh" = e scripts.paneSearch; - # leader menu - ".config/tmux/scripts/leader-menu.sh" = e scripts.leaderMenu; + # fzf-exec + ".config/tmux/scripts/tmux-doc.sh" = e scripts.tmuxDoc; + ".config/tmux/scripts/fzf-exec.sh" = e scripts.fzfExec; - # Bar - ".config/tmux/scripts/battery.sh" = e scripts.battery; - ".config/tmux/scripts/bar.sh" = e scripts.bar; - ".config/tmux/scripts/catppuccin-borders.sh" = e scripts.catpuccinNoBorders; + # leader menu + ".config/tmux/scripts/leader-menu.sh" = e scripts.leaderMenu; - ".config/tmux/tmux.conf".text = tmux-conf; - }; + # Bar + ".config/tmux/scripts/battery.sh" = e scripts.battery; + ".config/tmux/scripts/bar.sh" = e scripts.bar; + ".config/tmux/scripts/catppuccin-borders.sh" = e scripts.catpuccinNoBorders; - packages = [pkgs.tmux]; + ".config/tmux/tmux.conf".text = tmux-conf; }; + + packages = [pkgs.tmux]; } diff --git a/modules/terminal/nixos/default.nix b/modules/terminal/nixos/default.nix new file mode 100644 index 0000000..8118c63 --- /dev/null +++ b/modules/terminal/nixos/default.nix @@ -0,0 +1,10 @@ +{config, ...}: let + cfg = config.collinux.terminal.shells; +in { + programs.command-not-found.enable = false; # broken without nix-channels + + users.users."${config.collinux.user.name}" = { + shell = cfg.defaultShell; + ignoreShellProgramCheck = true; + }; +} diff --git a/modules/terminal/options.nix b/modules/terminal/options.nix index af7f0ee..47f2057 100644 --- a/modules/terminal/options.nix +++ b/modules/terminal/options.nix @@ -25,11 +25,9 @@ in { default = let cfg = config.collinux.terminal.shells; in - if (cfg.fish.enable && !cfg.bash.enable) + if cfg.fish.enable then pkgs.fish - else if (!cfg.fish.enable && cfg.bash.enable) - then pkgs.bash - else null; + else pkgs.bash; }; }; diff --git a/modules/terminal/system/programs/bat.nix b/modules/terminal/system/programs/bat.nix deleted file mode 100644 index 6f53dd7..0000000 --- a/modules/terminal/system/programs/bat.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - pkgs, - config, - lib, - ... -}: let - cfg = config.collinux.terminal.programs.bat; -in - lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files.".config/fish/conf.d/bat.fish".text = '' - alias cat bat - set -gx BAT_THEME "base16" - ''; - - packages = [pkgs.bat]; - }; - } diff --git a/modules/terminal/system/programs/eza.nix b/modules/terminal/system/programs/eza.nix deleted file mode 100644 index 52c290d..0000000 --- a/modules/terminal/system/programs/eza.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - pkgs, - lib, - config, - ... -}: let - cfg = config.collinux.terminal.programs.eza; -in - lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files.".config/fish/conf.d/eza.fish".text = '' - alias ls "eza -A -w 80 --group-directories-first -I '.git*'" - alias tree "eza -T" - ''; - - packages = [pkgs.eza]; - }; - } diff --git a/modules/terminal/system/programs/fish.nix b/modules/terminal/system/programs/fish.nix deleted file mode 100644 index fe3ff88..0000000 --- a/modules/terminal/system/programs/fish.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ - pkgs, - config, - lib, - ... -}: let - cfg = config.collinux.terminal.shells.fish; - - init = '' - set fish_greeting - - function fish_title - echo fish (prompt_pwd) - end - - direnv hook fish | source - pay-respects fish --alias | source - ''; -in - lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files = { - ".config/fish/config.fish".text = init; - }; - - packages = with pkgs; [ - fish - ripgrep - fd - moreutils - zip - unzip - btop - jq - direnv - pay-respects - ]; - }; - } diff --git a/modules/terminal/system/programs/fzf.nix b/modules/terminal/system/programs/fzf.nix deleted file mode 100644 index 486d4e2..0000000 --- a/modules/terminal/system/programs/fzf.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - pkgs, - config, - lib, - ... -}: let - cfg = config.collinux.terminal.programs.fzf; -in - lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files.".config/fish/conf.d/fzf.fish".text = '' - ${pkgs.fzf}/bin/fzf --fish | source - set -gx FZF_DEFAULT_OPTS "--color bg:#1E1E2E,bg+:#313244,border:#313244,fg:#CDD6F4,fg+:#CDD6F4,header:#F38BA8,hl:#F38BA8,hl+:#F38BA8,info:#CBA6F7,label:#CDD6F4,marker:#B4BEFE,pointer:#F5E0DC,prompt:#CBA6F7,selected-bg:#45475A,spinner:#F5E0DC" - ''; - - packages = [pkgs.fzf]; - }; - } diff --git a/modules/user/system/default.nix b/modules/user/nixos/default.nix index 8692652..8692652 100644 --- a/modules/user/system/default.nix +++ b/modules/user/nixos/default.nix |
