my nixos/home-manager configuration
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

rename modules to programs and services

youn 95095b76 d80a2550

+111 -251
+2 -2
home-manager/clever-cloud.nix
··· 24 24 slack 25 25 ]; 26 26 27 - modules = { 27 + programs = { 28 28 # gui 29 29 discord.enable = true; 30 30 ghostty.enable = true; ··· 34 34 # desktop manager 35 35 gnome-shell = { 36 36 enable = true; 37 - extensions = [ 37 + extensionsPackages = [ 38 38 pkgs.gnomeExtensions.appindicator 39 39 ]; 40 40 experimentalFeatures = [
+1 -1
home-manager/common.nix
··· 43 43 vlc 44 44 ]; 45 45 46 - modules = { 46 + programs = { 47 47 # cli 48 48 ssh.enable = true; 49 49 git.enable = true;
+17 -16
home-manager/desktop.nix
··· 28 28 slack 29 29 ]; 30 30 31 - modules = { 31 + programs = { 32 32 # gui 33 33 discord.enable = true; 34 34 ghostty.enable = true; ··· 36 36 zen-browser.enable = true; 37 37 zed-editor.enable = true; 38 38 39 - # services 39 + # desktop manager 40 + gnome-shell = { 41 + enable = true; 42 + extensionsPackages = [ 43 + pkgs.gnomeExtensions.appindicator 44 + ]; 45 + favoriteApps = [ 46 + "zen-twilight.desktop" 47 + "dev.zed.Zed.desktop" 48 + "com.mitchellh.ghostty.desktop" 49 + "discord.desktop" 50 + ]; 51 + }; 52 + }; 53 + 54 + services = { 40 55 syncthing = { 41 56 enable = true; 42 57 overrideDevices = false; ··· 54 69 "${user.homeDirectory}/Videos".devices = [ "server" ]; 55 70 }; 56 71 }; 57 - }; 58 - 59 - # desktop manager 60 - gnome-shell = { 61 - enable = true; 62 - extensions = [ 63 - pkgs.gnomeExtensions.appindicator 64 - ]; 65 - favoriteApps = [ 66 - "zen-twilight.desktop" 67 - "dev.zed.Zed.desktop" 68 - "com.mitchellh.ghostty.desktop" 69 - "discord.desktop" 70 - ]; 71 72 }; 72 73 }; 73 74 }
+22 -21
home-manager/laptop.nix
··· 28 28 slack 29 29 ]; 30 30 31 - modules = { 31 + programs = { 32 32 # gui 33 33 discord.enable = true; 34 34 ghostty.enable = true; 35 35 zen-browser.enable = true; 36 36 zed-editor.enable = true; 37 37 38 - # services 38 + # desktop manager 39 + gnome-shell = { 40 + enable = true; 41 + extensionsPackages = [ 42 + pkgs.gnomeExtensions.appindicator 43 + ]; 44 + experimentalFeatures = [ 45 + "scale-monitor-framebuffer" 46 + "xwayland-native-scaling" 47 + ]; 48 + favoriteApps = [ 49 + "zen-twilight.desktop" 50 + "dev.zed.Zed.desktop" 51 + "com.mitchellh.ghostty.desktop" 52 + "discord.desktop" 53 + ]; 54 + showBatteryPercentage = true; 55 + }; 56 + }; 57 + 58 + services = { 39 59 syncthing = { 40 60 enable = true; 41 61 overrideDevices = false; ··· 53 73 "${user.homeDirectory}/Videos".devices = [ "server" ]; 54 74 }; 55 75 }; 56 - }; 57 - 58 - # desktop manager 59 - gnome-shell = { 60 - enable = true; 61 - extensions = [ 62 - pkgs.gnomeExtensions.appindicator 63 - ]; 64 - experimentalFeatures = [ 65 - "scale-monitor-framebuffer" 66 - "xwayland-native-scaling" 67 - ]; 68 - favoriteApps = [ 69 - "zen-twilight.desktop" 70 - "dev.zed.Zed.desktop" 71 - "com.mitchellh.ghostty.desktop" 72 - "discord.desktop" 73 - ]; 74 - showBatteryPercentage = true; 75 76 }; 76 77 }; 77 78 }
-23
home-manager/modules/carapace.nix
··· 1 - { 2 - config, 3 - lib, 4 - ... 5 - }: 6 - 7 - let 8 - cfg = config.modules.carapace; 9 - 10 - nushellEnabled = config.modules.nushell.enable or false; 11 - in 12 - { 13 - options.modules.carapace = { 14 - enable = lib.mkEnableOption "enable carapace"; 15 - }; 16 - 17 - config = lib.mkIf cfg.enable { 18 - programs.carapace = { 19 - enable = true; 20 - enableNushellIntegration = nushellEnabled; 21 - }; 22 - }; 23 - }
+1 -9
home-manager/modules/direnv.nix
··· 5 5 }: 6 6 7 7 let 8 - cfg = config.modules.direnv; 9 - 10 - nushellEnabled = config.modules.nushell.enable or false; 8 + cfg = config.programs.direnv; 11 9 in 12 10 { 13 - options.modules.direnv = { 14 - enable = lib.mkEnableOption "enable direnv"; 15 - }; 16 - 17 11 config = lib.mkIf cfg.enable { 18 12 programs.direnv = { 19 - enable = true; 20 - enableNushellIntegration = nushellEnabled; 21 13 nix-direnv.enable = true; 22 14 }; 23 15 };
+2 -2
home-manager/modules/discord.nix
··· 6 6 }: 7 7 8 8 let 9 - cfg = config.modules.discord; 9 + cfg = config.programs.discord; 10 10 11 11 discordPackage = pkgs.discord.override { withOpenASAR = true; }; 12 12 ··· 33 33 ); 34 34 in 35 35 { 36 - options.modules.discord = { 36 + options.programs.discord = { 37 37 enable = lib.mkEnableOption "enable discord"; 38 38 }; 39 39
+7 -13
home-manager/modules/ghostty.nix
··· 1 1 { 2 2 config, 3 - pkgs, 4 3 lib, 5 4 fonts, 6 5 ... 7 6 }: 8 7 9 8 let 10 - cfg = config.modules.ghostty; 11 - 12 - nushellEnabled = config.modules.nushell.enable or false; 9 + cfg = config.programs.ghostty; 13 10 in 14 11 { 15 - options.modules.ghostty = { 16 - enable = lib.mkEnableOption "enable ghostty"; 17 - package = lib.mkOption { 18 - type = lib.types.package; 19 - default = pkgs.ghostty; 12 + options.programs.ghostty = { 13 + enableNushellIntegration = lib.mkOption { 14 + type = lib.types.bool; 15 + default = config.home.shell.enableNushellIntegration; 20 16 }; 21 17 }; 22 18 23 19 config = lib.mkIf cfg.enable { 24 20 programs.ghostty = lib.mkMerge [ 25 21 { 26 - enable = true; 27 - package = cfg.package; 28 22 settings = { 29 23 theme = "light:Monokai Pro Light,dark:Monokai Pro"; 30 24 resize-overlay = "never"; ··· 32 26 font-size = 10; 33 27 }; 34 28 } 35 - (lib.mkIf nushellEnabled { 29 + (lib.mkIf cfg.enableNushellIntegration { 36 30 settings = { 37 - command = "nu"; 31 + command = "${config.programs.nushell.package}/bin/nu"; 38 32 }; 39 33 }) 40 34 ];
+1 -6
home-manager/modules/git.nix
··· 7 7 }: 8 8 9 9 let 10 - cfg = config.modules.git; 10 + cfg = config.programs.git; 11 11 in 12 12 { 13 - options.modules.git = { 14 - enable = lib.mkEnableOption "enable git"; 15 - }; 16 - 17 13 config = lib.mkIf cfg.enable { 18 14 programs.git = { 19 - enable = true; 20 15 delta = { 21 16 enable = true; 22 17 };
+5 -10
home-manager/modules/gnome-shell.nix
··· 6 6 }: 7 7 8 8 let 9 - cfg = config.modules.gnome-shell; 10 - 11 - ghosttyEnabled = config.modules.ghostty.enable or false; 9 + cfg = config.programs.gnome-shell; 12 10 in 13 11 { 14 - options.modules.gnome-shell = { 15 - enable = lib.mkEnableOption ""; 16 - extensions = lib.mkOption { 12 + options.programs.gnome-shell = { 13 + extensionsPackages = lib.mkOption { 17 14 type = lib.types.listOf lib.types.package; 18 15 default = [ ]; 19 16 }; ··· 33 30 34 31 config = lib.mkIf cfg.enable { 35 32 programs.gnome-shell = { 36 - enable = true; 37 33 extensions = builtins.map (extension: { 38 34 package = extension; 39 - }) cfg.extensions; 35 + }) cfg.extensionsPackages; 40 36 }; 41 37 42 38 dconf.settings = { ··· 53 49 document-font-name = "${fonts.sans.default.family} 11"; 54 50 monospace-font-name = "${fonts.monospace.default.family} 10"; 55 51 }; 56 - "org/gnome/desktop/wm/keybindings" = lib.mkIf ghosttyEnabled { 52 + "org/gnome/desktop/wm/keybindings" = lib.mkIf config.programs.ghostty.enable { 57 53 # disable those keybindings since ghostty uses them 58 - # TODO: conditionally disable keybindings when ghostty is enabled 59 54 switch-to-workspace-up = [ ]; 60 55 switch-to-workspace-down = [ ]; 61 56 switch-to-workspace-left = [ ];
+1 -6
home-manager/modules/jujutsu.nix
··· 7 7 }: 8 8 9 9 let 10 - cfg = config.modules.jujutsu; 10 + cfg = config.programs.jujutsu; 11 11 in 12 12 { 13 - options.modules.jujutsu = { 14 - enable = lib.mkEnableOption "enable jujutsu"; 15 - }; 16 - 17 13 config = lib.mkIf cfg.enable { 18 14 programs.jujutsu = { 19 - enable = true; 20 15 settings = { 21 16 inherit user; 22 17 signing = {
+1 -6
home-manager/modules/neovim.nix
··· 5 5 }: 6 6 7 7 let 8 - cfg = config.modules.neovim; 8 + cfg = config.programs.neovim; 9 9 in 10 10 { 11 - options.modules.neovim = { 12 - enable = lib.mkEnableOption "enable neovim"; 13 - }; 14 - 15 11 config = lib.mkIf cfg.enable { 16 12 programs.neovim = { 17 - enable = true; 18 13 defaultEditor = true; 19 14 viAlias = true; 20 15 vimAlias = true;
+1 -6
home-manager/modules/nushell.nix
··· 6 6 }: 7 7 8 8 let 9 - cfg = config.modules.nushell; 9 + cfg = config.programs.nushell; 10 10 in 11 11 { 12 - options.modules.nushell = { 13 - enable = lib.mkEnableOption "enable nushell"; 14 - }; 15 - 16 12 config = lib.mkIf cfg.enable { 17 13 home.shell.enableNushellIntegration = true; 18 14 19 15 programs.nushell = { 20 - enable = true; 21 16 settings = { 22 17 show_banner = false; 23 18 history = {
+2 -2
home-manager/modules/prism-launcher.nix
··· 7 7 }: 8 8 9 9 let 10 - cfg = config.modules.prism-launcher; 10 + cfg = config.programs.prism-launcher; 11 11 in 12 12 { 13 - options.modules.prism-launcher = { 13 + options.programs.prism-launcher = { 14 14 enable = lib.mkEnableOption "enable prism-launcher"; 15 15 }; 16 16
+2 -2
home-manager/modules/sccache.nix
··· 6 6 }: 7 7 8 8 let 9 - cfg = config.modules.sccache; 9 + cfg = config.programs.sccache; 10 10 in 11 11 { 12 - options.modules.sccache = { 12 + options.programs.sccache = { 13 13 enable = lib.mkEnableOption "enable sccache"; 14 14 }; 15 15
+1 -6
home-manager/modules/ssh.nix
··· 7 7 }: 8 8 9 9 let 10 - cfg = config.modules.ssh; 10 + cfg = config.programs.ssh; 11 11 in 12 12 { 13 - options.modules.ssh = { 14 - enable = lib.mkEnableOption "enable ssh"; 15 - }; 16 - 17 13 config = lib.mkIf cfg.enable { 18 14 programs.ssh = { 19 - enable = true; 20 15 addKeysToAgent = "yes"; 21 16 matchBlocks = { 22 17 "*" = {
+1 -9
home-manager/modules/starship.nix
··· 5 5 }: 6 6 7 7 let 8 - cfg = config.modules.starship; 9 - 10 - nushellEnabled = config.modules.nushell.enable or false; 8 + cfg = config.programs.starship; 11 9 in 12 10 { 13 - options.modules.starship = { 14 - enable = lib.mkEnableOption "enable starship"; 15 - }; 16 - 17 11 config = lib.mkIf cfg.enable { 18 12 programs.starship = { 19 - enable = true; 20 - enableNushellIntegration = nushellEnabled; 21 13 settings = { 22 14 scala.detect_folders = [ ]; 23 15 };
+1 -19
home-manager/modules/syncthing.nix
··· 5 5 }: 6 6 7 7 let 8 - cfg = config.modules.syncthing; 8 + cfg = config.services.syncthing; 9 9 in 10 10 { 11 - options.modules.syncthing = { 12 - enable = lib.mkEnableOption ""; 13 - overrideDevices = lib.mkOption { 14 - type = lib.types.bool; 15 - default = false; 16 - }; 17 - settings = lib.mkOption { 18 - type = lib.types.attrs; 19 - default = { }; 20 - }; 21 - }; 22 - 23 11 config = lib.mkIf cfg.enable { 24 - services.syncthing = { 25 - enable = true; 26 - overrideDevices = cfg.overrideDevices; 27 - settings = cfg.settings; 28 - }; 29 - 30 12 xdg.desktopEntries.syncthing-ui = { 31 13 name = ""; 32 14 noDisplay = true;
+7 -7
home-manager/modules/zed-editor.nix
··· 7 7 }: 8 8 9 9 let 10 - cfg = config.modules.zed-editor; 11 - 12 - nushellEnabled = config.modules.nushell.enable or false; 10 + cfg = config.programs.zed-editor; 13 11 in 14 12 { 15 - options.modules.zed-editor = { 16 - enable = lib.mkEnableOption "enable zed-editor"; 13 + options.programs.zed-editor = { 14 + enableNushellIntegration = lib.mkOption { 15 + type = lib.types.bool; 16 + default = config.home.shell.enableNushellIntegration; 17 + }; 17 18 }; 18 19 19 20 config = lib.mkIf cfg.enable { 20 21 programs.zed-editor = { 21 - enable = true; 22 22 package = pkgs.zed-editor-fhs; 23 23 installRemoteServer = true; 24 24 extensions = [ ··· 85 85 }; 86 86 }; 87 87 } 88 - (lib.mkIf nushellEnabled { 88 + (lib.mkIf cfg.enableNushellIntegration { 89 89 terminal.shell.program = "nu"; 90 90 }) 91 91 ];
+1 -6
home-manager/modules/zen-browser.nix
··· 7 7 }: 8 8 9 9 let 10 - cfg = config.modules.zen-browser; 10 + cfg = config.programs.zen-browser; 11 11 12 12 mkEngine = 13 13 { ··· 30 30 inputs.zen-browser.homeModules.twilight 31 31 ]; 32 32 33 - options.modules.zen-browser = { 34 - enable = lib.mkEnableOption "enable zen-browser"; 35 - }; 36 - 37 33 config = lib.mkIf cfg.enable { 38 34 programs.zen-browser = { 39 - enable = true; 40 35 policies = { 41 36 DisableAppUpdate = true; 42 37
+1 -5
nixos/clever-cloud/default.nix
··· 9 9 boot.initrd.luks.devices."luks-aa53b969-2e9f-4f51-be2e-010aea5bde1f".device = 10 10 "/dev/disk/by-uuid/aa53b969-2e9f-4f51-be2e-010aea5bde1f"; 11 11 12 - modules = { 12 + services = { 13 13 # power management 14 14 thermald.enable = true; 15 15 tlp.enable = true; 16 16 }; 17 17 18 18 networking.hostName = "clever-cloud"; 19 - 20 - # Enable CUPS to print documents. 21 - services.printing.enable = false; 22 - 23 19 }
+2 -2
nixos/common.nix
··· 22 22 boot.loader.systemd-boot.enable = true; 23 23 boot.loader.efi.canTouchEfiVariables = true; 24 24 25 - modules = { 26 - logind.enable = true; 25 + services = { 26 + printing.enable = lib.mkDefault false; 27 27 pipewire.enable = true; 28 28 }; 29 29
+6 -10
nixos/desktop/default.nix
··· 32 32 "steam-unwrapped" 33 33 ]; 34 34 35 - modules = { 35 + programs = { 36 36 steam.enable = true; 37 + }; 38 + 39 + services = { 40 + printing.enable = true; 41 + mptcpd.enable = true; 37 42 }; 38 43 39 44 networking.firewall.allowedUDPPorts = [ ··· 49 54 enable32Bit = true; 50 55 }; 51 56 52 - # Enable CUPS to print documents. 53 - services.printing.enable = true; 54 - 55 57 environment.systemPackages = with pkgs; [ lact ]; 56 58 systemd.packages = with pkgs; [ lact ]; 57 59 systemd.services.lact.wantedBy = [ "multi-user.target" ]; 58 - 59 - # Enable Multipath TCP 60 - services.mptcpd.enable = true; 61 - boot.kernel.sysctl = { 62 - "net.mptcp.enabled" = "1"; 63 - }; 64 60 }
+1 -5
nixos/laptop/default.nix
··· 9 9 boot.initrd.luks.devices."luks-56c1d52e-92f4-4886-b1e6-0017ec4df4ca".device = 10 10 "/dev/disk/by-uuid/56c1d52e-92f4-4886-b1e6-0017ec4df4ca"; 11 11 12 - modules = { 12 + services = { 13 13 fprintd.enable = true; 14 14 15 15 # power management ··· 18 18 }; 19 19 20 20 networking.hostName = "laptop"; 21 - 22 - # Enable CUPS to print documents. 23 - services.printing.enable = false; 24 - 25 21 }
+1 -7
nixos/modules/fprintd.nix
··· 5 5 }: 6 6 7 7 let 8 - cfg = config.modules.fprintd; 8 + cfg = config.services.fprintd; 9 9 in 10 10 { 11 - options.modules.fprintd = { 12 - enable = lib.mkEnableOption "enable fprintd"; 13 - }; 14 - 15 11 config = lib.mkIf cfg.enable { 16 - services.fprintd.enable = true; 17 - 18 12 systemd.services.fprintd = { 19 13 wantedBy = [ "multi-user.target" ]; 20 14 serviceConfig.Type = "simple";
+2 -13
nixos/modules/logind.nix
··· 1 - { 2 - config, 3 - lib, 4 - ... 5 - }: 1 + { ... }: 6 2 7 - let 8 - cfg = config.modules.logind; 9 - in 10 3 { 11 - options.modules.logind = { 12 - enable = lib.mkEnableOption "enable logind"; 13 - }; 14 - 15 - config = lib.mkIf cfg.enable { 4 + config = { 16 5 services.logind = { 17 6 lidSwitch = "suspend"; 18 7 lidSwitchDocked = "suspend";
+16
nixos/modules/mptcpd.nix
··· 1 + { 2 + config, 3 + lib, 4 + ... 5 + }: 6 + 7 + let 8 + cfg = config.services.mptcpd; 9 + in 10 + { 11 + config = lib.mkIf cfg.enable { 12 + boot.kernel.sysctl = { 13 + "net.mptcp.enabled" = "1"; 14 + }; 15 + }; 16 + }
+4 -7
nixos/modules/pipewire.nix
··· 5 5 }: 6 6 7 7 let 8 - cfg = config.modules.pipewire; 8 + cfg = config.services.pipewire; 9 9 in 10 10 { 11 - options.modules.pipewire = { 12 - enable = lib.mkEnableOption "enable pipewire"; 13 - }; 11 + config = lib.mkIf cfg.enable { 12 + security.rtkit.enable = true; 14 13 15 - config = lib.mkIf cfg.enable { 16 14 services.pulseaudio.enable = false; 17 - security.rtkit.enable = true; 15 + 18 16 services.pipewire = { 19 - enable = true; 20 17 alsa.enable = true; 21 18 alsa.support32Bit = true; 22 19 pulse.enable = true;
+1 -6
nixos/modules/steam.nix
··· 5 5 }: 6 6 7 7 let 8 - cfg = config.modules.steam; 8 + cfg = config.programs.steam; 9 9 in 10 10 { 11 - options.modules.steam = { 12 - enable = lib.mkEnableOption "enable steam"; 13 - }; 14 - 15 11 config = lib.mkIf cfg.enable { 16 12 programs.steam = { 17 - enable = true; 18 13 extest.enable = true; 19 14 localNetworkGameTransfers.openFirewall = true; 20 15 };
-18
nixos/modules/thermald.nix
··· 1 - { 2 - config, 3 - lib, 4 - ... 5 - }: 6 - 7 - let 8 - cfg = config.modules.thermald; 9 - in 10 - { 11 - options.modules.thermald = { 12 - enable = lib.mkEnableOption "enable thermald"; 13 - }; 14 - 15 - config = lib.mkIf cfg.enable { 16 - services.thermald.enable = true; 17 - }; 18 - }
+1 -6
nixos/modules/tlp.nix
··· 5 5 }: 6 6 7 7 let 8 - cfg = config.modules.tlp; 8 + cfg = config.services.tlp; 9 9 in 10 10 { 11 - options.modules.tlp = { 12 - enable = lib.mkEnableOption "enable tlp"; 13 - }; 14 - 15 11 config = lib.mkIf cfg.enable { 16 12 powerManagement.enable = true; 17 13 18 14 services.tlp = { 19 - enable = true; 20 15 settings = { 21 16 CPU_SCALING_GOVERNOR_ON_AC = "performance"; 22 17 CPU_SCALING_GOVERNOR_ON_BAT = "powersave";