diff --git a/configuration.nix b/configuration.nix index f6be3e1..49d042c 100644 --- a/configuration.nix +++ b/configuration.nix @@ -14,7 +14,7 @@ nixpkgs.config.allowUnfree = true; imports = [ ./modules - # ./options.nix + ]; environment.pathsToLink = [ diff --git a/home/apps/default.nix b/home/apps/default.nix deleted file mode 100644 index c915cba..0000000 --- a/home/apps/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: - -{ - imports = [ - ./terminal - ]; -} diff --git a/home/apps/terminal/default.nix b/home/apps/terminal/default.nix index 3350007..29ec7df 100644 --- a/home/apps/terminal/default.nix +++ b/home/apps/terminal/default.nix @@ -8,6 +8,5 @@ { imports = [ ./kitty.nix - ./ranger.nix ]; } diff --git a/home/apps/terminal/kitty.nix b/home/apps/terminal/kitty.nix index dc7f5b1..101e0fb 100644 --- a/home/apps/terminal/kitty.nix +++ b/home/apps/terminal/kitty.nix @@ -2,7 +2,6 @@ config, lib, pkgs, - osConfig, ... }: diff --git a/home/default.nix b/home/default.nix index 7364e83..0b8dd11 100644 --- a/home/default.nix +++ b/home/default.nix @@ -8,6 +8,5 @@ { imports = [ ./desktop - ./apps ]; } diff --git a/home/desktop/shell/noctalia.nix b/home/desktop/shell/noctalia.nix index 38bd638..e7529db 100644 --- a/home/desktop/shell/noctalia.nix +++ b/home/desktop/shell/noctalia.nix @@ -8,20 +8,12 @@ }: { - imports = - if true then - [ - inputs.noctalia.homeModules.default - ] - else - [ ]; - config = { - programs.noctalia-shell = - if osConfig.desktop.shell.noctalia.enable then - { - enable = true; - } - else - { }; + config = lib.mkIf osConfig.desktop.shell.noctalia.enable { }; + +imports = lib.mkIf osConfig.desktop.shell.noctalia.enable [ + inputs.noctalia.homeModules.default + ] } + + diff --git a/home/desktop/shell/walker.nix b/home/desktop/shell/walker.nix index 0b7bb4d..f8e503f 100644 --- a/home/desktop/shell/walker.nix +++ b/home/desktop/shell/walker.nix @@ -8,27 +8,19 @@ }: { - config = - if osConfig.desktop.shell.walker.enable then - { - programs = { - walker = { - enable = true; - runAsService = true; - config = { - theme = "noctalia"; - }; - }; + config = lib.mkIf osConfig.desktop.shell.walker.enable { + programs = { + walker = { + enable = true; + runAsService = true; + config = { + theme = "noctalia"; }; - } - else - { }; + }; + }; + }; - imports = - if osConfig.desktop.shell.walker.enable then - [ - inputs.walker.homeManagerModules.default - ] - else - [ ]; + imports = lib.mkIf osConfig.desktop.shell.walker.enable [ + inputs.walker.homeManagerModules.default + ] } diff --git a/home/desktop/window-managers/hyprland.nix b/home/desktop/window-managers/hyprland.nix index b31ee1b..de919e8 100644 --- a/home/desktop/window-managers/hyprland.nix +++ b/home/desktop/window-managers/hyprland.nix @@ -11,7 +11,6 @@ options = { desktop = { hyprland = { - enable = lib.mkEnableOption "enable hyprland"; monitors = lib.mkOption { default = [ ",preferred,auto,1" @@ -45,7 +44,7 @@ }; }; - config = lib.mkIf osConfig.desktop.window-managers.hyprland.enable { + config = lib.mkIf osConfig.desktop.hyprland.enable { xdg.portal = { enable = true; configPackages = [ @@ -98,9 +97,9 @@ (lib.mkIf (osConfig.desktop.shell.rofi.enable) "$mod, D, exec, rofi -show drun") "$mod, return, exec, ${osConfig.apps.terminal.binary}" (lib.mkIf (osConfig.desktop.utilities.grimblast.enable) ", print, exec, GRIMBLAST_EDITOR=gradia grimblast edit area") - (lib.mkIf (osConfig.desktop.shell.walker.enable && osConfig.misc.bitwarden.enable) - "$mod, B, exec, rbw unlocked || kitty --class kitty-floating -e rbw unlock; selected=$(rbw list | walker -d); wl-copy $(rbw get \"$selected\"); sleep 30; rbw lock" - ) + (lib.mkIf (osConfig.desktop.shell.walker.enable) ( + lib.mkIf (osConfig.misc.bitwarden.enable) "$mod, B, exec, rbw unlocked || kitty --class kitty-floating -e rbw unlock; selected=$(rbw list | walker -d); wl-copy $(rbw get \"$selected\"); sleep 30; rbw lock" + )) "$mod, F, fullscreen, 1" "$shiftmod, F, fullscreen, 0" "$shiftmod, Q, killactive," diff --git a/home/desktop/window-managers/niri.nix b/home/desktop/window-managers/niri.nix index 6a20cd7..70f0aaa 100644 --- a/home/desktop/window-managers/niri.nix +++ b/home/desktop/window-managers/niri.nix @@ -7,103 +7,106 @@ ... }: -let - modifier = if (osConfig.keybinds.modifier == "Meta") then "Mod" else null; +let + modifier = lib.mkIf (${osConfig.keybinds.modifier} == "Meta") "Mod"; kb-layout = builtins.substring 0 2 osConfig.system.locale; -in +in { - config = - if osConfig.desktop.window-managers.niri.enable then - { - home.file = { - "~/.config/niri/config.kdl" = '' - input { + options = { + desktop.window-managers = { + niri = { + }; + }; - keyboard { - xkb { - layout "${kb-layout}" - } - repeat-delay 600 - repeat-rate 20 - track-layout "global" - } - touchpad { - tap - dwt - accel-profile "flat" - accel-speed 0.0 - scroll-method "two-finger" - + }; + config = lib.mkIf osConfig.desktop.window-managers.niri.enable { + home.file = { + "~/.config/niri/config.kdl" = '' +input { - } - mouse { - accel-speed 0.5 - accel-profile "flat" + keyboard { + xkb { + layout "${kb-layout}" + } + repeat-delay 600 + repeat-rate 20 + track-layout "global" + } + touchpad { + tap + dwt + accel-profile "flat" + accel-speed 0.0 + scroll-method "two-finger" + - } - } + } + mouse { + accel-speed 0.5 + accel-profile "flat" - gestures { - hot-corners { - off - } - - } - - cursor { - hide-when-typing - hide-after-inactive-ms 2000 - } - - xwayland-satellite { - path "xwayland-satellite" - } - - hotkey-overlay { - hide-not-bound - } - - binds { - ${modifier}+Down cooldown-ms=150 { focus-workspace-down; } - ${modifier}+Up cooldown-ms=150 { focus-workspace-up; } - ${modifier}+${osConfig.keybinds.hotkeys.terminal} { spawn "${osConfig.terminal.binary}";} - ${modifier}+Left {focus-column-left; } - ${modifier}+Right {focus-column-right; } - ${modifier}+${osConfig.keybinds.hotkeys.browser} { spawn "${osConfig.apps.browser.default}";} - ${modifier}+${osConfig.keybinds.hotkeys.launcher} { spawn "${osConfig.desktop.window-managers.shell.launcher.default}";} - Print { screenshot;} - ${modifier}+Shift+${osConfig.keybinds.hotkeys.close-window} { close-window; } - ${modifier}+Shift+${osConfig.keybinds.hotkeys.editor} { spawn "${osConfig.apps.development.editor.default}";} - } - - spawn-at-startup "elephant" - spawn-at-startup "noctalia-shell" - - - layout { - gaps 20 - focus-ring { - width 5 - } - border { - off - } - } - window-rule { - geometry-corner-radius 20 - clip-to-geometry true - } - - - prefer-no-csd - - include "noctalia.kdl" - - - ''; - }; - } - else - { }; + } +} + +gestures { + hot-corners { + off + } + +} + +cursor { + hide-when-typing + hide-after-inactive-ms 2000 +} + +xwayland-satellite { + path "xwayland-satellite" +} + +hotkey-overlay { + hide-not-bound +} + +binds { + ${modifier}+Down cooldown-ms=150 { focus-workspace-down; } + ${modifier}+Up cooldown-ms=150 { focus-workspace-up; } + ${modifier}+${osConfig.keybinds.hotkeys.terminal} { spawn "${osConfig.terminal.binary}";} + ${modifier}+Left {focus-column-left; } + ${modifier}+Right {focus-column-right; } + ${modifier}+${osConfig.keybinds.hotkeys.browser} { spawn "${osConfig.apps.browser.default}";} + ${modifier}+${osConfig.keybinds.hotkeys.launcher} { spawn "${osConfig.desktop.window-managers.shell.launcher.default}";} + Print { screenshot;} + ${modifier}+Shift+${osConfig.keybinds.hotkeys.close-window} { close-window; } + ${modifier}+Shift+${osConfig.keybinds.hotkeys.editor} { spawn "${osConfig.apps.development.editor.default}";} +} + +spawn-at-startup "elephant" +spawn-at-startup "noctalia-shell" + + +layout { + gaps 20 + focus-ring { + width 5 + } + border { + off + } +} +window-rule { + geometry-corner-radius 20 + clip-to-geometry true +} + + +prefer-no-csd + +include "noctalia.kdl" + + + ''; + }; + }; } diff --git a/home/desktop/window-managers/sway.nix b/home/desktop/window-managers/sway.nix index 371f50c..6cf21e3 100644 --- a/home/desktop/window-managers/sway.nix +++ b/home/desktop/window-managers/sway.nix @@ -3,68 +3,70 @@ pkgs, lib, inputs, - osConfig, ... }: { - config = - if osConfig.desktop.window-managers.sway.enable then - { - wayland.windowManager.sway = { - enable = true; - package = pkgs.swayfx; - config = { - modifier = "Mod4"; - startup = [ - { command = "elephant"; } - ]; - keybindings = - let - modifier = config.wayland.windowManager.sway.config.modifier; - in - { - "${modifier}+Return" = "exec ${config.wayland.windowManager.sway.config.terminal}"; - "${modifier}+Shift+q" = "kill"; - "${modifier}+d" = "exec walker"; - "${modifier}+o" = "exec zen"; - "${modifier}+Control+right" = "exec /home/marty/.config/sway/scripts/workspaceswitcher right"; - "${modifier}+Control+left" = "exec /home/marty/.config/sway/scripts/workspaceswitcher left"; - "${modifier}+f" = "fullscreen"; + options = { + desktop.window-managers = { + sway = { + }; + }; - "${modifier}+1" = "workspace number 1"; - "${modifier}+2" = "workspace number 2"; - "${modifier}+3" = "workspace number 3"; - "${modifier}+4" = "workspace number 4"; - "${modifier}+5" = "workspace number 5"; - "${modifier}+6" = "workspace number 6"; - "${modifier}+7" = "workspace number 7"; - "${modifier}+8" = "workspace number 8"; - "${modifier}+9" = "workspace number 9"; - "${modifier}+s" = "workspace number 0"; + }; + config = lib.mkIf osConfig.desktop.window-managers.sway.enable { + wayland.windowManager.sway = { + enable = true; + package = pkgs.swayfx; + config = { + modifier = "Mod4"; + startup = [ + { command = "elephant"; } + ]; + keybindings = + let + modifier = config.wayland.windowManager.sway.config.modifier; + in + { + "${modifier}+Return" = "exec ${config.wayland.windowManager.sway.config.terminal}"; + "${modifier}+Shift+q" = "kill"; + "${modifier}+d" = "exec walker"; + "${modifier}+o" = "exec zen"; + "${modifier}+Control+right" = "exec /home/marty/.config/sway/scripts/workspaceswitcher right"; + "${modifier}+Control+left" = "exec /home/marty/.config/sway/scripts/workspaceswitcher left"; + "${modifier}+f" = "fullscreen"; - "${modifier}+Shift+1" = "move container to workspace number 1"; - "${modifier}+Shift+2" = "move container to workspace number 2"; - "${modifier}+Shift+3" = "move container to workspace number 3"; - "${modifier}+Shift+4" = "move container to workspace number 4"; - "${modifier}+Shift+5" = "move container to workspace number 5"; - "${modifier}+Shift+6" = "move container to workspace number 6"; - "${modifier}+Shift+7" = "move container to workspace number 7"; - "${modifier}+Shift+8" = "move container to workspace number 8"; - "${modifier}+Shift+9" = "move container to workspace number 9"; - "${modifier}+Shift+s" = "move container to workspace number 0"; - }; - input = { - "*" = { - xkb_layout = builtins.substring 0 2 osConfig.system.locale; - }; - }; - defaultWorkspace = "workspace number 1"; - terminal = osConfig.desktop.defaults.terminal.binary; + "${modifier}+1" = "workspace number 1"; + "${modifier}+2" = "workspace number 2"; + "${modifier}+3" = "workspace number 3"; + "${modifier}+4" = "workspace number 4"; + "${modifier}+5" = "workspace number 5"; + "${modifier}+6" = "workspace number 6"; + "${modifier}+7" = "workspace number 7"; + "${modifier}+8" = "workspace number 8"; + "${modifier}+9" = "workspace number 9"; + "${modifier}+s" = "workspace number 0"; + + "${modifier}+Shift+1" = "move container to workspace number 1"; + "${modifier}+Shift+2" = "move container to workspace number 2"; + "${modifier}+Shift+3" = "move container to workspace number 3"; + "${modifier}+Shift+4" = "move container to workspace number 4"; + "${modifier}+Shift+5" = "move container to workspace number 5"; + "${modifier}+Shift+6" = "move container to workspace number 6"; + "${modifier}+Shift+7" = "move container to workspace number 7"; + "${modifier}+Shift+8" = "move container to workspace number 8"; + "${modifier}+Shift+9" = "move container to workspace number 9"; + "${modifier}+Shift+s" = "move container to workspace number 0"; + }; + input = { + "*" = { + xkb_layout = builtins.substring 0 2 osConfig.system.locale; }; - checkConfig = false; }; - } - else - { }; + defaultWorkspace = "workspace number 1"; + terminal = osConfig.desktop.defaults.terminal.binary; + }; + checkConfig = false; + }; + }; } diff --git a/hosts/marty-pc/home.nix b/hosts/marty-pc/home.nix index 13c06ff..dfff422 100644 --- a/hosts/marty-pc/home.nix +++ b/hosts/marty-pc/home.nix @@ -40,7 +40,7 @@ }; imports = [ - ./../../home + ./../../modules ]; programs.home-manager.enable = true; } diff --git a/modules/apps/audio/default.nix b/modules/apps/audio/default.nix index bf6549b..f3cfc85 100644 --- a/modules/apps/audio/default.nix +++ b/modules/apps/audio/default.nix @@ -16,26 +16,11 @@ }; config = { - environment.systemPackages = - with pkgs; - [ ] - ++ ( - if (config.apps.audio.base.enable) then - [ - pavucontrol - playerctl - ] - else - [ ] - ) - ++ ( - if (config.apps.audio.editing.enable) then - [ - tenacity - flac - ] - else - [ ] - ); + environment.systemPackages = with pkgs; [ + (lib.mkIf (apps.audio.base.enable) pavucontrol) + (lib.mkIf (apps.audio.base.enable) playerctl) + (lib.mkIf (apps.audio.editing.enable) tenacity) + (lib.mkIf (apps.audio.editing.enable) flac) + ]; }; } diff --git a/modules/apps/default.nix b/modules/apps/default.nix index d9fd732..9d741e1 100644 --- a/modules/apps/default.nix +++ b/modules/apps/default.nix @@ -14,7 +14,6 @@ ./misc ./peripherals ./video - ./sync ./terminal ]; } diff --git a/modules/apps/development/default.nix b/modules/apps/development/default.nix index f0307e3..875388b 100644 --- a/modules/apps/development/default.nix +++ b/modules/apps/development/default.nix @@ -7,6 +7,7 @@ { imports = [ + ./git.nix ./editor.nix ./godot.nix ./languages.nix diff --git a/modules/apps/development/editor.nix b/modules/apps/development/editor.nix index f030ed0..ef93334 100644 --- a/modules/apps/development/editor.nix +++ b/modules/apps/development/editor.nix @@ -11,54 +11,44 @@ editor = { vscodium.enable = lib.mkEnableOption "enable vscodium"; emacs.enable = lib.mkEnableOption "enable emacs"; - default = lib.mkOption { - default = "vscodium"; - description = "default editor"; - }; + default = "vscodium"; }; }; }; config = { - environment.systemPackages = - with pkgs; - [ - nixfmt - ] - ++ (if config.development.editor.vscodium.enable then [ vscodium ] else [ ]); + environment.systemPackages = with pkgs; [ + (lib.mkIf config.development.editor.vscodium.enable vscodium) + nixfmt + ]; programs = { - vscode = - if config.development.editor.vscodium.enable then - { - enable = true; - package = pkgs.vscodium; - defaultEditor = if (config.development.editor.default == "vscodium") then true else false; - # profiles.default.extensions = with pkgs.vscode-extensions; [ - # catppuccin.catppuccin-vsc - # catppuccin.catppuccin-vsc-icons - # jnoortheen.nix-ide - # alefragnani.project-manager - # naumovs.color-highlight - # geequlim.godot-tools - # stylelint.vscode-stylelint - # ecmel.vscode-html-css - # esbenp.prettier-vscode - # ]; - } - else - { }; + vscode = lib.mkIf config.development.editor.vscodium.enable { + enable = true; + package = pkgs.vscodium; + defaultEditor = lib.mkIf (config.development.editor.default == "vscodium") true; + profiles.default.extensions = with pkgs.vscode-extensions; [ + catppuccin.catppuccin-vsc + catppuccin.catppuccin-vsc-icons + jnoortheen.nix-ide + alefragnani.project-manager + naumovs.color-highlight + geequlim.godot-tools + stylelint.vscode-stylelint + ecmel.vscode-html-css + esbenp.prettier-vscode + ]; + }; }; services = { - emacs = - if config.development.editor.emacs.enable then - { - enable = true; - install = true; - defaultEditor = if (config.development.editor.default == "emacs") then true else false; - } - else - { }; + emacs = lib.mkIf config.development.editor.emacs.enable { + enable = true; + install = true; + defaultEditor = lib.mkIf (config.development.editor.default == "emacs") true; + }; + }; + home.sessionVariables = { + EDITOR = lib.mkDefault "codium"; }; }; } diff --git a/modules/system/git.nix b/modules/apps/development/git.nix similarity index 94% rename from modules/system/git.nix rename to modules/apps/development/git.nix index 780c03b..7445de6 100644 --- a/modules/system/git.nix +++ b/modules/apps/development/git.nix @@ -10,7 +10,7 @@ programs = { git = { enable = true; - config = { + settings = { init = { defaultBranch = "main"; }; diff --git a/modules/apps/development/godot.nix b/modules/apps/development/godot.nix index 35c5210..dbde233 100644 --- a/modules/apps/development/godot.nix +++ b/modules/apps/development/godot.nix @@ -12,14 +12,9 @@ }; }; - config = { - environment.systemPackages = - if config.apps.development.godot.enable then - with pkgs; - [ - godot - ] - else - [ ]; + config = lib.mkIf config.apps.development.godot.enable { + systemPackages = with pkgs; [ + godot + ]; }; } diff --git a/modules/apps/development/languages.nix b/modules/apps/development/languages.nix index 579a615..b6280cc 100644 --- a/modules/apps/development/languages.nix +++ b/modules/apps/development/languages.nix @@ -8,15 +8,13 @@ { options = { apps.development.languages = { - python.enable = lib.mkEnableOption "enable python"; + python = lib.mkEnableOption "enable python"; }; }; config = { - environment.systemPackages = - with pkgs; - [ - ] - ++ (if config.apps.development.languages.python.enable then [ virtualenv ] else [ ]); + environment.systemPackages = with pkgs; [ + (lib.mkIf lib.mkIf config.development.languages.python.enable virtualenv) + ]; }; } diff --git a/modules/apps/gaming/default.nix b/modules/apps/gaming/default.nix index 72a4372..214d4cd 100644 --- a/modules/apps/gaming/default.nix +++ b/modules/apps/gaming/default.nix @@ -6,65 +6,8 @@ }: { - options = { - apps.gaming = { - enable = lib.mkEnableOption "enable gaming"; - steam.enable = lib.mkEnableOption "enable steam"; - minecraft.enable = lib.mkEnableOption "enable minecraft"; - }; - }; - - config = { - environment.systemPackages = - with pkgs; - [ ] - ++ ( - if (config.apps.gaming.enable) then - [ - cartridges - lutris - ] - else - [ ] - ) - ++ ( - if (config.apps.gaming.minecraft.enable) then - - [ prismlauncher ] - else - [ ] - ) - ++ ( - if (config.apps.gaming.steam.enable) then - - [ adwsteamgtk ] - else - [ ] - ); - programs = { - steam = - if config.apps.gaming.steam.enable then - { - enable = true; - remotePlay.openFirewall = true; - dedicatedServer.openFirewall = true; - localNetworkGameTransfers.openFirewall = true; - gamescopeSession.enable = true; - protontricks.enable = true; - extraCompatPackages = with pkgs; [ - proton-ge-bin - ]; - extraPackages = with pkgs; [ - gamescope - ]; - } - else - { }; - gamescope = { - enable = true; - capSysNice = true; - }; - }; - }; - + imports = [ + ./steam.nix + ./minecraft.nix + ]; } diff --git a/modules/apps/gaming/minecraft.nix b/modules/apps/gaming/minecraft.nix new file mode 100644 index 0000000..60bae60 --- /dev/null +++ b/modules/apps/gaming/minecraft.nix @@ -0,0 +1,20 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + options = { + apps.gaming = { + minecraft.enable = lib.mkEnableOption "enable minecraft"; + }; + }; + + config = lib.mkIf config.apps.gaming.minecraft.enable { + environment.systemPackages = with pkgs; [ + prismlauncher + ]; + }; +} diff --git a/modules/apps/gaming/steam.nix b/modules/apps/gaming/steam.nix new file mode 100644 index 0000000..2da6f0d --- /dev/null +++ b/modules/apps/gaming/steam.nix @@ -0,0 +1,41 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + options = { + apps.gaming = { + steam.enable = lib.mkEnableOption "enable steam"; + }; + }; + + config = lib.mkIf config.apps.gaming.steam.enable { + environment.systemPackages = with pkgs; [ + adwsteamgtk + ]; + programs = { + steam = { + enable = true; + remotePlay.openFirewall = true; + dedicatedServer.openFirewall = true; + localNetworkGameTransfers.openFirewall = true; + gamescopeSession.enable = true; + protontricks.enable = true; + extraCompatPackages = with pkgs; [ + proton-ge-bin + ]; + extraPackages = with pkgs; [ + gamescope + ]; + }; + gamescope = { + enable = true; + capSysNice = true; + }; + }; + }; + +} diff --git a/modules/apps/image/default.nix b/modules/apps/image/default.nix index 058657e..d3e1f7a 100644 --- a/modules/apps/image/default.nix +++ b/modules/apps/image/default.nix @@ -15,25 +15,10 @@ }; config = { - environment.systemPackages = - with pkgs; - [ ] - ++ ( - if (config.apps.image.base.enable) then - - [ nomacs ] - else - [ ] - ) - ++ ( - if (config.apps.image.editing.enable) then - - [ - gimp3-with-plugins - krita - ] - else - [ ] - ); + environment.systemPackages = with pkgs; [ + (lib.mkIf (apps.image.base.enable) nomacs) + (lib.mkIf (apps.image.editing.enable) gimp3-with-plugins) + (lib.mkIf (apps.image.editing.enable) krita) + ]; }; } diff --git a/modules/apps/internet/browser.nix b/modules/apps/internet/browser.nix index 9f2b534..6e6bc96 100644 --- a/modules/apps/internet/browser.nix +++ b/modules/apps/internet/browser.nix @@ -26,19 +26,9 @@ }; config = { - environment.systemPackages = - [ ] - ++ ( - if config.apps.internet.browsers.zen-browser.enable then - [ config.apps.internet.browsers.zen-browser.package ] - else - [ ] - ) - ++ ( - if config.apps.internet.browsers.tor-browser.enable then - [ config.apps.internet.browsers.tor-browser.package ] - else - [ ] - ); + environment.systemPackages = [ + (lib.mkIf config.apps.internet.browsers.zen-browser.enable config.apps.internet.browsers.zen-browser.package) + (lib.mkIf config.apps.internet.browsers.tor-browser.enable config.apps.internet.browsers.tor-browser.package) + ]; }; } diff --git a/modules/apps/misc/default.nix b/modules/apps/misc/default.nix index d31ab39..3192aea 100644 --- a/modules/apps/misc/default.nix +++ b/modules/apps/misc/default.nix @@ -16,43 +16,16 @@ }; config = { - environment.systemPackages = - with pkgs; - [ - libsecret - gcr_4 - pass - ] - ++ ( - if (config.apps.misc.obsidian.enable) then - - [ obsidian ] - else - [ ] - ) - ++ ( - if (config.apps.misc.bitwarden.enable) then - - [ rbw ] - ++ ( - if (config.desktop.shell.rofi.enable) then - [ - pinentry-curses - rofi-rbw - ] - else - [ ] - ) - else - [ ] - ) - ++ ( - if (config.apps.misc.blender.enable) then - - [ blender ] - else - [ ] - ); + environment.systemPackages = with pkgs; [ + (lib.mkIf (config.apps.misc.obsidian.enable) obsidian) + (lib.mkIf (config.apps.misc.bitwarden.enable) rbw ( + lib.mkIf (config.desktop.shell.rofi.enable) pinentry-curses rofi-rbw + )) + (lib.mkIf (config.apps.misc.blender.enable) blender) + libsecret + gcr_4 + pass + ]; programs = { seahorse.enable = true; }; diff --git a/modules/apps/sync/default.nix b/modules/apps/sync/default.nix index e1aca06..b2908fd 100644 --- a/modules/apps/sync/default.nix +++ b/modules/apps/sync/default.nix @@ -31,30 +31,22 @@ }; config = { programs = { - kdeconnect = - if config.apps.sync.kde-connect.enable then - { - enable = true; - } - else - { }; + kdeconnect = lib.mkIf config.apps.sync.kde-connect.enable { + enable = true; + }; }; services = { - syncthing = - if config.apps.sync.syncthing.enable then - { - enable = true; - tray.enable = true; - guiAddress = "0.0.0.0:8384"; - settings = { - devices = config.apps.sync.syncthing.devices; - folders = config.apps.sync.syncthing.folders; - }; - overrideDevices = if (config.apps.sync.syncthing.devices == { }) then false else true; - overrideFolders = if (config.apps.sync.syncthing.folders == { }) then false else true; - } - else - { }; + syncthing = lib.mkIf config.apps.sync.syncthing.enable { + enable = true; + tray.enable = true; + guiAddress = "0.0.0.0:8384"; + settings = { + devices = config.apps.sync.syncthing.devices; + folders = config.apps.sync.syncthing.folders; + }; + overrideDevices = lib.mkIf (config.apps.sync.syncthing.devices == { }) false; + overrideFolders = lib.mkIf (config.apps.sync.syncthing.folders == { }) false; + }; }; }; } diff --git a/modules/apps/terminal/base-packages.nix b/modules/apps/terminal/base-packages.nix index ffd207b..4d2c5aa 100644 --- a/modules/apps/terminal/base-packages.nix +++ b/modules/apps/terminal/base-packages.nix @@ -19,20 +19,15 @@ bc openssl ] - ++ ( - if config.apps.terminal.toys then - [ + ++ lib.mkIf config.apps.terminal.toys [ - asciiquarium-transparent - cava - bunnyfetch - nerdfetch - fastfetch - cmatrix - astroterm - ] - else - [ ] - ); + asciiquarium-transparent + cava + bunnyfetch + nerdfetch + fastfetch + cmatrix + astroterm + ]; }; } diff --git a/modules/apps/terminal/kitty.nix b/modules/apps/terminal/kitty.nix index 084272a..d5fb705 100644 --- a/modules/apps/terminal/kitty.nix +++ b/modules/apps/terminal/kitty.nix @@ -13,25 +13,13 @@ }; }; - config = { - # apps.terminal = - # if (config.apps.terminal.default == "kitty") then - # { - # package = pkgs.kitty; - # binary = "${pkgs.kitty}/bin/kitty"; - # } - # else - # { }; - environment.systemPackages = - with pkgs; - [ ] - ++ ( - if config.apps.terminal.kitty.enable then - [ - kitty - ] - else - [ ] - ); + config = lib.mkIf config.apps.terminal.kitty.enable { + terminal = lib.mkIf (config.apps.terminal.default == "kitty") { + package = pkgs.kitty; + binary = "${pkgs.kitty}/bin/kitty"; + }; + environment.systemPackages = with pkgs; [ + kitty + ]; }; } diff --git a/modules/apps/terminal/tui.nix b/modules/apps/terminal/tui.nix index 1ea179c..9f7298d 100644 --- a/modules/apps/terminal/tui.nix +++ b/modules/apps/terminal/tui.nix @@ -18,16 +18,8 @@ in }; config = { - environment.systemPackages = - with pkgs; - [ - ] - ++ ( - if tt.ranger.enable then - - [ ranger ] - else - [ ] - ); + environment.systemPackages = with pkgs; [ + (lib.mkIf (tt.ranger.enable) ranger) + ]; }; } diff --git a/modules/apps/video/default.nix b/modules/apps/video/default.nix index b7218f1..210bef0 100644 --- a/modules/apps/video/default.nix +++ b/modules/apps/video/default.nix @@ -16,32 +16,11 @@ }; config = { - environment.systemPackages = - with pkgs; - [ ] - ++ ( - if config.apps.video.base.enable then - - [ mpv ] - else - [ ] - ) - ++ ( - if config.apps.video.editing.enable then - - [ kdePackages.kdenlive ] - else - [ ] - ) - ++ ( - if config.apps.video.media.enable then - - [ - jellyfin-desktop - pipeline - ] - else - [ ] - ); + environment.systemPackages = with pkgs; [ + (lib.mkIf (apps.video.base.enable) mpv) + (lib.mkIf (apps.video.editing.enable) kdePackages.kdenlive) + (lib.mkIf (apps.video.media.enable) jellyfin-desktop) + (lib.mkIf (apps.video.media.enable) pipeline) + ]; }; } diff --git a/modules/desktop/display-manager.nix b/modules/desktop/display-manager.nix index b2c114d..040a58f 100644 --- a/modules/desktop/display-manager.nix +++ b/modules/desktop/display-manager.nix @@ -30,35 +30,22 @@ programs = { uwsm = { waylandCompositors = { - hyprland = - if config.desktop.window-managers.hyprland.enable then - { - prettyName = "Hyprland"; - comment = "Hyprland"; - binPath = "${config.programs.hyprland.package}/bin/start-hyprland"; - } - else - { }; - sway = - if config.desktop.window-managers.sway.enable then - { - prettyName = "Sway"; - comment = "Sway"; - binPath = "${config.programs.sway.package}/bin/sway --session"; - } - else - { }; - niri = - if config.desktop.window-managers.niri.enable then - { - prettyName = "Niri"; - comment = "Niri"; - binPath = "${config.programs.niri.package}/bin/niri-session"; - } - else - { }; + hyprland = lib.mkIf config.desktop.window-managers.hyprland.enable { + prettyName = "Hyprland"; + comment = "Hyprland"; + binPath = "${config.programs.hyprland.package}/bin/start-hyprland"; + }; + sway = lib.mkIf config.desktop.window-managers.sway.enable { + prettyName = "Sway"; + comment = "Sway"; + binPath = "${config.programs.sway.package}/bin/sway --session"; + }; + niri = lib.mkIf config.desktop.window-managers.niri.enable { + prettyName = "Niri"; + comment = "Niri"; + binPath = "${config.programs.niri.package}/bin/niri-session"; + }; }; }; }; - xdg.portal.enable = true; } diff --git a/modules/desktop/shell/launcher.nix b/modules/desktop/shell/launcher.nix index 4eb3312..31af404 100644 --- a/modules/desktop/shell/launcher.nix +++ b/modules/desktop/shell/launcher.nix @@ -12,23 +12,20 @@ walker.enable = lib.mkEnableOption "enable walker"; rofi.enable = lib.mkEnableOption "enable rofi"; launcher = lib.mkOption { - default = (if config.desktop.shell.walker.enable then "walker" else null); + default = (lib.mkIf config.desktop.shell.walker.enable "walker"); description = "default launcher"; }; }; }; - config = { - environment.systemPackages = - with pkgs; - [ - ] - ++ ( - if config.desktop.shell.rofi.enable then - - [ rofi ] - else - [ ] - ); + config = { + programs = { + walker = lib.mkIf config.desktop.shell.walker.enable { + enable = true; + }; + }; + environment.systemPackages = with pkgs; [ + (lib.mkIf (config.desktop.shell.rofi.enable) rofi) + ]; }; } diff --git a/modules/desktop/shell/noctalia.nix b/modules/desktop/shell/noctalia.nix index bd8eaaf..76202e4 100644 --- a/modules/desktop/shell/noctalia.nix +++ b/modules/desktop/shell/noctalia.nix @@ -12,4 +12,13 @@ noctalia.enable = lib.mkEnableOption "enable noctalia"; }; }; + imports = lib.mkIf config.desktop.shell.noctalia.enable [ + inputs.noctalia.homeModules.default + ]; + config = lib.mkIf config.desktop.shell.noctalia.enable { + desktop.shell.swww.enable = lib.mkDefault false; + programs.noctalia-shell = { + enable = true; + }; + }; } diff --git a/modules/desktop/shell/swww.nix b/modules/desktop/shell/swww.nix index 13acdfa..e1c8222 100644 --- a/modules/desktop/shell/swww.nix +++ b/modules/desktop/shell/swww.nix @@ -13,20 +13,10 @@ }; }; - config = - - { - environment.systemPackages = - with pkgs; - [ ] - ++ ( - if config.desktop.shell.swww.enable then - [ - waypaper - swww - ] - else - [ ] - ); - }; + config = lib.mkIf config.desktop.shell.swww.enable { + environment.systemPackages = with pkgs; [ + waypaper + swww + ]; + }; } diff --git a/modules/desktop/shell/waybar.nix b/modules/desktop/shell/waybar.nix index a693801..e8e6f62 100644 --- a/modules/desktop/shell/waybar.nix +++ b/modules/desktop/shell/waybar.nix @@ -12,15 +12,11 @@ }; }; - config = { - programs = - if config.desktop.shell.waybar.enable then - { - waybar = { - enable = true; - }; - } - else - { }; + config = lib.mkIf config.desktop.shell.waybar.enable { + programs = { + waybar = { + enable = true; + }; + }; }; } diff --git a/modules/desktop/utilities/grimblast.nix b/modules/desktop/utilities/grimblast.nix index eb0fbee..7b1f676 100644 --- a/modules/desktop/utilities/grimblast.nix +++ b/modules/desktop/utilities/grimblast.nix @@ -13,21 +13,10 @@ }; }; - config = - - { - environment.systemPackages = - with pkgs; - [ ] - ++ ( - if config.desktop.utilities.grimblast.enable then - with pkgs; - [ - grimblast - gradia - ] - else - [ ] - ); - }; + config = lib.mkIf config.desktop.utilities.grimblast.enable { + environment.systemPackages = with pkgs; [ + grimblast + gradia + ]; + }; } diff --git a/modules/desktop/window-managers/hyprland.nix b/modules/desktop/window-managers/hyprland.nix index 4347b85..18f46f6 100644 --- a/modules/desktop/window-managers/hyprland.nix +++ b/modules/desktop/window-managers/hyprland.nix @@ -14,20 +14,14 @@ }; }; }; - config = - - { - programs.hyprland = - if config.desktop.window-managers.hyprland.enable then - { - enable = true; - withUWSM = true; - xwayland.enable = true; - package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; - portalPackage = - inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; - } - else - { }; + config = lib.mkIf config.desktop.window-managers.hyprland.enable { + programs.hyprland = { + enable = true; + withUWSM = true; + xwayland.enable = true; + package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; + portalPackage = + inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; }; + }; } diff --git a/modules/desktop/window-managers/niri.nix b/modules/desktop/window-managers/niri.nix index f554d92..69036f5 100644 --- a/modules/desktop/window-managers/niri.nix +++ b/modules/desktop/window-managers/niri.nix @@ -13,24 +13,13 @@ }; }; }; - config = { - environment.systemPackages = - with pkgs; - [ ] - ++ ( - if config.desktop.window-managers.niri.enable then - [ - xwayland-satellite - ] - else - [ ] - ); - programs.niri = - if config.desktop.window-managers.niri.enable then - { - enable = true; - } - else - { }; + config = lib.mkIf config.desktop.window-managers.niri.enable { + services.gnome.gnome-keyring.enable = true; + environment.systemPackages = with pkgs; [ + xwayland-satellite + ]; + programs.niri = { + enable = true; + }; }; } diff --git a/modules/desktop/window-managers/sway.nix b/modules/desktop/window-managers/sway.nix index e4d4a34..972c1ae 100644 --- a/modules/desktop/window-managers/sway.nix +++ b/modules/desktop/window-managers/sway.nix @@ -13,15 +13,12 @@ }; }; }; - config = { - programs.sway = - if config.desktop.window-managers.sway.enable then - { - enable = true; - wrapperFeatures.gtk = true; - package = null; - } - else - { }; + config = lib.mkIf config.desktop.window-managers.sway.enable { + services.gnome.gnome-keyring.enable = true; + programs.sway = { + enable = true; + wrapperFeatures.gtk = true; + package = null; + }; }; } diff --git a/modules/system/default.nix b/modules/system/default.nix index 2b0bc73..34aceda 100644 --- a/modules/system/default.nix +++ b/modules/system/default.nix @@ -8,7 +8,6 @@ { imports = [ ./boot.nix - ./git.nix ./shell.nix ./networking.nix ./localization.nix diff --git a/modules/system/networking.nix b/modules/system/networking.nix index 60891ae..ea37bf8 100644 --- a/modules/system/networking.nix +++ b/modules/system/networking.nix @@ -2,7 +2,7 @@ { networking = { - domain = "maty.tf"; + domain = config.domain; networkmanager.enable = true; firewall = { enable = true;