diff --git a/flake.nix b/flake.nix index 4bd3b08..5141ff9 100644 --- a/flake.nix +++ b/flake.nix @@ -1,65 +1,74 @@ { - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; - home-manager = { - url = "github:nix-community/home-manager"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; - nixvim = { - url = "github:Superredstone/nixvim"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - nur = { - url = "github:nix-community/NUR"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - millennium.url = "github:SteamClientHomebrew/Millennium?dir=packages/nix"; - hyprland.url = "github:hyprwm/Hyprland"; - }; + nixvim = { + url = "github:Superredstone/nixvim"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + nur = { + url = "github:nix-community/NUR"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + millennium.url = "github:SteamClientHomebrew/Millennium?dir=packages/nix"; + hyprland.url = "github:hyprwm/Hyprland"; + }; - outputs = { nixpkgs, home-manager, nixvim, millennium, nur, ... }@inputs: - let - overlays = [ - millennium.overlays.default - nur.overlays.default - ]; - personalEmail = "patrickcanal3@gmail.com"; - username = "r3ddy"; - mkSystem = import ./lib/mksystem.nix { - inherit - overlays - nixvim - millennium - nur - inputs - nixpkgs - home-manager; - }; - in - { - nixosConfigurations.katana = mkSystem "katana" { - system = "x86_64-linux"; - user = username; - email = personalEmail; - gamingSystem = true; - # Currently supported: plasma, gnome, hyprland and none - desktopEnvironment = "gnome"; - additionalModules = [ - ]; - }; - nixosConfigurations.workstation = mkSystem "workstation" { - system = "x86_64-linux"; - user = username; - email = personalEmail; - workSystem = true; - desktopEnvironment = "gnome"; - }; - nixosConfigurations."bomba" = mkSystem "bomba" { - system = "x86_64-linux"; - email = personalEmail; - user = username; - desktopEnvironment = "none"; - }; - }; + outputs = + { + nixpkgs, + home-manager, + nixvim, + millennium, + nur, + ... + }@inputs: + let + overlays = [ + millennium.overlays.default + nur.overlays.default + ]; + personalEmail = "patrickcanal3@gmail.com"; + username = "r3ddy"; + mkSystem = import ./lib/mksystem.nix { + inherit + overlays + nixvim + millennium + nur + inputs + nixpkgs + home-manager + ; + }; + in + { + nixosConfigurations.katana = mkSystem "katana" { + system = "x86_64-linux"; + user = username; + email = personalEmail; + gamingSystem = true; + # Currently supported: plasma, gnome, hyprland and none + desktopEnvironment = "gnome"; + additionalModules = [ + ]; + }; + nixosConfigurations.workstation = mkSystem "workstation" { + system = "x86_64-linux"; + user = username; + email = personalEmail; + workSystem = true; + desktopEnvironment = "gnome"; + }; + nixosConfigurations."bomba" = mkSystem "bomba" { + system = "x86_64-linux"; + email = personalEmail; + user = username; + desktopEnvironment = "none"; + }; + }; } diff --git a/home/default.nix b/home/default.nix index 307dd37..63cd945 100644 --- a/home/default.nix +++ b/home/default.nix @@ -1,38 +1,48 @@ -{ currentSystemUser, currentSystemDe, pkgs, ... }: { - imports = [ - ./fish.nix - ./git.nix - ./gnome.nix - ./kitty.nix - ./mangohud.nix - ./tmux.nix - ./zoxide.nix - ] ++ (if currentSystemDe == "hyprland" then [ - ./hyprland - ] else [] - ); + currentSystemUser, + currentSystemDe, + pkgs, + ... +}: +{ + imports = [ + ./fish.nix + ./git.nix + ./gnome.nix + ./kitty.nix + ./mangohud.nix + ./tmux.nix + ./zoxide.nix + ] + ++ ( + if currentSystemDe == "hyprland" then + [ + ./hyprland + ] + else + [ ] + ); - home = { - username = "${currentSystemUser}"; - sessionVariables = { - EDITOR = "nvim"; - BROWSER = "firefox"; - TERMINAL = "gnome-boxes"; - }; - packages = [ - pkgs.dconf - ]; - pointerCursor = { - enable = false; - package = pkgs.bibata-cursors; - name = "Bibata-Modern-Classic"; - }; - }; + home = { + username = "${currentSystemUser}"; + sessionVariables = { + EDITOR = "nvim"; + BROWSER = "firefox"; + TERMINAL = "gnome-boxes"; + }; + packages = [ + pkgs.dconf + ]; + pointerCursor = { + enable = false; + package = pkgs.bibata-cursors; + name = "Bibata-Modern-Classic"; + }; + }; - dconf.enable = true; + dconf.enable = true; - programs.home-manager.enable = true; + programs.home-manager.enable = true; - home.stateVersion = "24.11"; + home.stateVersion = "24.11"; } diff --git a/home/fish.nix b/home/fish.nix index d5df705..b81999d 100644 --- a/home/fish.nix +++ b/home/fish.nix @@ -1,28 +1,28 @@ { pkgs, ... }: { - programs.fish = { - enable = true; - interactiveShellInit = '' - # This is commented until a good way of installing themes is found - # fish_config theme choose Catppuccin\ Mocha + programs.fish = { + enable = true; + interactiveShellInit = '' + # This is commented until a good way of installing themes is found + # fish_config theme choose Catppuccin\ Mocha - function fish_greeting - krabby random --no-title --padding-left 2 - end - - function weather - curl "wttr.in/Bolzano?0?Q?" - end + function fish_greeting + krabby random --no-title --padding-left 2 + end + + function weather + curl "wttr.in/Bolzano?0?Q?" + end - function dev - nix develop --command "fish" - end - ''; - plugins = with pkgs.fishPlugins; [ - { - name = "fzf.fish"; - src = fzf-fish.src; - } - ]; - }; + function dev + nix develop --command "fish" + end + ''; + plugins = with pkgs.fishPlugins; [ + { + name = "fzf.fish"; + src = fzf-fish.src; + } + ]; + }; } diff --git a/home/git.nix b/home/git.nix index dcfe5b6..739110e 100644 --- a/home/git.nix +++ b/home/git.nix @@ -1,14 +1,14 @@ { ... }: { - programs.git = { - enable = true; - settings = { - user = { - name = "Superredstone"; - email = "patrickcanal3@gmail.com"; - }; - init.defaultBranch = "main"; - pull.rebase = true; - }; - }; + programs.git = { + enable = true; + settings = { + user = { + name = "Superredstone"; + email = "patrickcanal3@gmail.com"; + }; + init.defaultBranch = "main"; + pull.rebase = true; + }; + }; } diff --git a/home/gnome.nix b/home/gnome.nix index e99e2a5..04ea978 100644 --- a/home/gnome.nix +++ b/home/gnome.nix @@ -1,13 +1,13 @@ { pkgs, ... }: { - dconf = { - settings."org/gnome/shell" = { - enabled-extensions = with pkgs.gnomeExtensions; [ - appindicator.extensionUuid - caffeine.extensionUuid - dash-to-dock.extensionUuid - wallpaper-slideshow.extensionUuid - ]; - }; - }; + dconf = { + settings."org/gnome/shell" = { + enabled-extensions = with pkgs.gnomeExtensions; [ + appindicator.extensionUuid + caffeine.extensionUuid + dash-to-dock.extensionUuid + wallpaper-slideshow.extensionUuid + ]; + }; + }; } diff --git a/home/hyprland/default.nix b/home/hyprland/default.nix index 0410d3a..ef883b9 100644 --- a/home/hyprland/default.nix +++ b/home/hyprland/default.nix @@ -1,9 +1,9 @@ -{ ... }: +{ ... }: { - imports = [ - ./hyprland.nix - ./hyprlock.nix - ./waybar.nix - ./wofi.nix - ]; + imports = [ + ./hyprland.nix + ./hyprlock.nix + ./waybar.nix + ./wofi.nix + ]; } diff --git a/home/hyprland/hyprland.nix b/home/hyprland/hyprland.nix index 81c74b7..ecfb425 100644 --- a/home/hyprland/hyprland.nix +++ b/home/hyprland/hyprland.nix @@ -1,83 +1,86 @@ { currentSystemUser, ... }: { - dconf.settings = { - "org/gnome/desktop/interface" = { - color-scheme = "prefer-dark"; - }; - }; + dconf.settings = { + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + }; + }; - wayland.windowManager.hyprland = { - enable = true; - settings = { - "$mod" = "SUPER"; - bind = [ - "$mod, Return, exec, kitty" - "$mod, SPACE, exec, wofi --show run" - "$mod SHIFT, L, exec, hyprlock" + wayland.windowManager.hyprland = { + enable = true; + settings = { + "$mod" = "SUPER"; + bind = [ + "$mod, Return, exec, kitty" + "$mod, SPACE, exec, wofi --show run" + "$mod SHIFT, L, exec, hyprlock" - "$mod SHIFT, Q, killactive" - "$mod, F, fullscreen" - "$mod, H, movefocus, l" - "$mod, L, movefocus, r" - "$mod, K, movefocus, u" - "$mod, J, movefocus, d" - "$mod SHIFT, H, movewindow, l" - "$mod SHIFT, L, movewindow, r" - "$mod SHIFT, K, movewindow, u" - "$mod SHIFT, J, movewindow, d" - "$mod SHIFT, right, resizeactive, 30 0" - "$mod SHIFT, left, resizeactive, -30 0" - "$mod SHIFT, up, resizeactive, 0 -30" - "$mod SHIFT, down, resizeactive, 0 30" - "$mod SHIFT, U, togglefloating" + "$mod SHIFT, Q, killactive" + "$mod, F, fullscreen" + "$mod, H, movefocus, l" + "$mod, L, movefocus, r" + "$mod, K, movefocus, u" + "$mod, J, movefocus, d" + "$mod SHIFT, H, movewindow, l" + "$mod SHIFT, L, movewindow, r" + "$mod SHIFT, K, movewindow, u" + "$mod SHIFT, J, movewindow, d" + "$mod SHIFT, right, resizeactive, 30 0" + "$mod SHIFT, left, resizeactive, -30 0" + "$mod SHIFT, up, resizeactive, 0 -30" + "$mod SHIFT, down, resizeactive, 0 30" + "$mod SHIFT, U, togglefloating" - ",XF86MonBrightnessDown, exec, brightnessctl set 2%-" - ",XF86MonBrightnessUp, exec, brightnessctl set +2%" - ",XF86AudioLowerVolume, exec, pamixer -d 2" - ",XF86AudioRaiseVolume, exec, pamixer -i 2" + ",XF86MonBrightnessDown, exec, brightnessctl set 2%-" + ",XF86MonBrightnessUp, exec, brightnessctl set +2%" + ",XF86AudioLowerVolume, exec, pamixer -d 2" + ",XF86AudioRaiseVolume, exec, pamixer -i 2" - "$mod, delete, exit" - ] ++ ( - builtins.concatLists (builtins.genList (i: - let ws = i + 1; - in [ - "$mod, code:1${toString i}, workspace, ${toString ws}" - "$mod SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}" - ] - ) - 9) - ); - bindm = [ - "$mod, mouse:272, movewindow" - "$mod, mouse:273, resizewindow" - ]; + "$mod, delete, exit" + ] + ++ (builtins.concatLists ( + builtins.genList ( + i: + let + ws = i + 1; + in + [ + "$mod, code:1${toString i}, workspace, ${toString ws}" + "$mod SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}" + ] + ) 9 + )); + bindm = [ + "$mod, mouse:272, movewindow" + "$mod, mouse:273, resizewindow" + ]; - monitor = ", preferred, auto, 1"; + monitor = ", preferred, auto, 1"; - input = { - touchpad = { - natural_scroll = "yes"; - }; + input = { + touchpad = { + natural_scroll = "yes"; + }; - sensitivity = "0"; - accel_profile = "flat"; - }; + sensitivity = "0"; + accel_profile = "flat"; + }; - exec-once = [ - "waybar" - "hyprpaper" - ]; + exec-once = [ + "waybar" + "hyprpaper" + ]; - exec = [ - ]; - }; - }; + exec = [ + ]; + }; + }; - services.hyprpaper = { - enable = true; - settings = { - preload = ["/home/${currentSystemUser}/Pictures/wallpaper.jpg"]; - wallpaper = [",/home/${currentSystemUser}/Pictures/wallpaper.jpg"]; - }; - }; + services.hyprpaper = { + enable = true; + settings = { + preload = [ "/home/${currentSystemUser}/Pictures/wallpaper.jpg" ]; + wallpaper = [ ",/home/${currentSystemUser}/Pictures/wallpaper.jpg" ]; + }; + }; } diff --git a/home/hyprland/hyprlock.nix b/home/hyprland/hyprlock.nix index 5174eb3..a6ee03d 100644 --- a/home/hyprland/hyprlock.nix +++ b/home/hyprland/hyprlock.nix @@ -1,6 +1,6 @@ { ... }: { - programs.hyprlock = { - enable = true; - }; + programs.hyprlock = { + enable = true; + }; } diff --git a/home/hyprland/waybar.nix b/home/hyprland/waybar.nix index 4cfab80..9ba1c7b 100644 --- a/home/hyprland/waybar.nix +++ b/home/hyprland/waybar.nix @@ -1,373 +1,377 @@ -{ ... }: +{ ... }: { - programs.waybar = { - enable = true; + programs.waybar = { + enable = true; - settings = { - mainBar = { - height = 30; - spacing = 1; - modules-left = [ - "hyprland/workspaces" - ]; - modules-center = [ - "hyprland/window" - ]; - modules-right = [ - "tray" - "pulseaudio" - "network" - "power-profiles-daemon" - "backlight" - "battery" - "clock" - ]; + settings = { + mainBar = { + height = 30; + spacing = 1; + modules-left = [ + "hyprland/workspaces" + ]; + modules-center = [ + "hyprland/window" + ]; + modules-right = [ + "tray" + "pulseaudio" + "network" + "power-profiles-daemon" + "backlight" + "battery" + "clock" + ]; - "hyprland/workspaces" = { - format = "{name} {icon}"; - format-icons = { - "1" = ""; - "2" = ""; - "3" = ""; - "4" = ""; - "5" = ""; - }; - }; - "tray" = { - spacing = 10; - }; - "pulseaudio" = { - format = "{volume}% {icon}"; - format-icons = { - headphones = ""; - bluetooth = "󰥰"; - handsfree = ""; - headset = "󱡬"; - phone = ""; - portable = ""; - car = ""; - default = ["🕨" "🕩" "🕪"]; - }; - on-click = "pavucontrol"; - }; - "hyprland/window" = { - format = "{class}"; - }; - "battery" = { - "interval" = 1; - states = { - good = 80; - warning = 30; - critical = 20; - }; - format = "{capacity}% {icon}"; - format-charging = "{capacity}% 󰂄"; - format-plugged = "{capacity}% "; - format-alt = "{time} {icon}"; - format-icons = [ - "󰁻" - "󰁼" - "󰁾" - "󰂀" - "󰂂" - "󰁹" - ]; - }; - # Currently not enabled because i don't want to add some external tools to manage brightness - # backlight = { - # format = "{percent}% {icon}"; - # format-icons = [ - # "" - # "" - # "" - # "" - # "" - # "" - # "" - # "" - # "" - # "" - # ]; - # on-scroll-down = "light -A 10"; - # on-scroll-up = "light -U 10"; - # smooth-scrolling-threshold = 1; - # }; - "network" = { - format-wifi = "{ipaddr} Wi-Fi"; - format-ethernet = "{ipaddr} Eth"; - }; - "power-profiles-daemon" = { - "format" = "{icon}"; - "tooltip-format" = "Power profile: {profile}\nDriver: {driver}"; - "tooltip" = true; - "format-icons" = { - "default" = ""; - "performance" = ""; - "balanced" = ""; - "power-saver" = ""; - }; - }; - }; - }; + "hyprland/workspaces" = { + format = "{name} {icon}"; + format-icons = { + "1" = ""; + "2" = ""; + "3" = ""; + "4" = ""; + "5" = ""; + }; + }; + "tray" = { + spacing = 10; + }; + "pulseaudio" = { + format = "{volume}% {icon}"; + format-icons = { + headphones = ""; + bluetooth = "󰥰"; + handsfree = ""; + headset = "󱡬"; + phone = ""; + portable = ""; + car = ""; + default = [ + "🕨" + "🕩" + "🕪" + ]; + }; + on-click = "pavucontrol"; + }; + "hyprland/window" = { + format = "{class}"; + }; + "battery" = { + "interval" = 1; + states = { + good = 80; + warning = 30; + critical = 20; + }; + format = "{capacity}% {icon}"; + format-charging = "{capacity}% 󰂄"; + format-plugged = "{capacity}% "; + format-alt = "{time} {icon}"; + format-icons = [ + "󰁻" + "󰁼" + "󰁾" + "󰂀" + "󰂂" + "󰁹" + ]; + }; + # Currently not enabled because i don't want to add some external tools to manage brightness + # backlight = { + # format = "{percent}% {icon}"; + # format-icons = [ + # "" + # "" + # "" + # "" + # "" + # "" + # "" + # "" + # "" + # "" + # ]; + # on-scroll-down = "light -A 10"; + # on-scroll-up = "light -U 10"; + # smooth-scrolling-threshold = 1; + # }; + "network" = { + format-wifi = "{ipaddr} Wi-Fi"; + format-ethernet = "{ipaddr} Eth"; + }; + "power-profiles-daemon" = { + "format" = "{icon}"; + "tooltip-format" = "Power profile: {profile}\nDriver: {driver}"; + "tooltip" = true; + "format-icons" = { + "default" = ""; + "performance" = ""; + "balanced" = ""; + "power-saver" = ""; + }; + }; + }; + }; - style = '' -@define-color rosewater #f5e0dc; -@define-color flamingo #f2cdcd; -@define-color pink #f5c2e7; -@define-color mauve #cba6f7; -@define-color red #f38ba8; -@define-color maroon #eba0ac; -@define-color peach #fab387; -@define-color yellow #f9e2af; -@define-color green #a6e3a1; -@define-color teal #94e2d5; -@define-color sky #89dceb; -@define-color sapphire #74c7ec; -@define-color blue #89b4fa; -@define-color lavender #b4befe; -@define-color text #cdd6f4; -@define-color subtext1 #bac2de; -@define-color subtext0 #a6adc8; -@define-color overlay2 #9399b2; -@define-color overlay1 #7f849c; -@define-color overlay0 #6c7086; -@define-color surface2 #585b70; -@define-color surface1 #45475a; -@define-color surface0 #313244; -@define-color base #1e1e2e; -@define-color mantle #181825; -@define-color crust #11111b; + style = '' + @define-color rosewater #f5e0dc; + @define-color flamingo #f2cdcd; + @define-color pink #f5c2e7; + @define-color mauve #cba6f7; + @define-color red #f38ba8; + @define-color maroon #eba0ac; + @define-color peach #fab387; + @define-color yellow #f9e2af; + @define-color green #a6e3a1; + @define-color teal #94e2d5; + @define-color sky #89dceb; + @define-color sapphire #74c7ec; + @define-color blue #89b4fa; + @define-color lavender #b4befe; + @define-color text #cdd6f4; + @define-color subtext1 #bac2de; + @define-color subtext0 #a6adc8; + @define-color overlay2 #9399b2; + @define-color overlay1 #7f849c; + @define-color overlay0 #6c7086; + @define-color surface2 #585b70; + @define-color surface1 #45475a; + @define-color surface0 #313244; + @define-color base #1e1e2e; + @define-color mantle #181825; + @define-color crust #11111b; -* { - border: none; - border-radius: 1px; - font-family: JetBrainsMono Nerd Font; - font-size: 13px; - min-height: 0; -} - -window#waybar { - background-color: @mantle; - color: @text; -} - -window#waybar.hidden { - opacity: 0.2; -} - -tooltip { - background-color: @base; - border: 1px solid @surface1; -} - -tooltip label { - color: @text; -} - -button { - box-shadow: inset 0 -3px transparent; - border: none; - border-radius: 1px; -} - -button:hover { - background: inherit; - box-shadow: inset 0 -3px @text; -} - -#workspaces button { - padding: 0 0; - background-color: @mantle; - color: @text; -} - -#workspaces button:hover { - box-shadow: inherit; - text-shadow: inherit; - background-image: linear-gradient(0deg, @surface1, @mantle); -} - -#workspaces button.focused { - background-image: linear-gradient(0deg, @mauve, @surface1); - box-shadow: inset 0 -3px @text; -} - -#workspaces button.urgent { - background-image: linear-gradient(0deg, @red, @mantle); -} - -#taskbar button.active { - background-image: linear-gradient(0deg, @surface1, @mantle); -} - -#mode { - background-color: @base; - box-shadow: inset 0 -2px @text; -} - -#mpris, -#custom-weather, -#clock, -#language, -#pulseaudio, -#bluetooth, -#network, -#memory, -#cpu, -#temperature, -#disk, -#custom-kernel, -#idle_inhibitor, -#scratchpad, -#mode, -#power-profiles-daemon, -#backlight, -#battery, -#tray { - padding: 0 10px; - margin: 5px 1px; - color: @text; -} - -#window, -#workspaces { - margin: 0 4px; -} - -#power-profiles-daemon { - background-color: @red; - color: @base; -} - -#custom-weather { - background-color: @teal; - color: @mantle; - margin-right: 5px; -} - -#custom-kernel { - background-color: @rosewater; - color: @mantle; -} - -#clock { - background-color: @green; - color: @mantle; -} - -@keyframes blink { - to { - background-color: @mantle; - color: @text; - } -} - -label:focus { - background-color: @mantle; -} - -#cpu { - background-color: @mauve; - color: @mantle; - min-width: 45px; -} - -#memory { - background-color: @red; - color: @mantle; -} - -#disk { - background-color: @flamingo; - color: @mantle; -} - -#battery { - background-color: @mauve; - color: @base; -} - -#backlight { - background-color: @sky; - color: @base; -} - -#network { - background-color: @peach; - color: @mantle; -} - -#network.disconnected { - background-color: red; - color: @mantle; -} - -#bluetooth { - background-color: @maroon; - color: @mantle; - min-width: 40px; -} - -#pulseaudio { - background-color: @yellow; - color: @mantle; -} - -#pulseaudio.muted { - background-color: red; - color: @mantle; -} - -#temperature { - background-color: @pink; - color: @mantle; - min-width: 37px; -} - -#temperature.critical { - background-color: red; - color: @mantle; - min-width: 37px; -} - -#mpris { - background-color: @base; - color: @text; -} - -#tray { - background-color: @overlay0; - color: @text; -} - -#tray > .passive { - -gtk-icon-effect: dim; -} - -#tray > .needs-attention { - -gtk-icon-effect: highlight; - background-color: @mantle; -} - -#idle_inhibitor { - background-color: @base; - color: @text; - font-family: Inter; -} - -#idle_inhibitor.activated { - background-color: @text; - color: @base; -} - -#scratchpad { - background-color: @base; - color: @text; -} - -#scratchpad.empty { - background-color: transparent; -} - ''; - }; + * { + border: none; + border-radius: 1px; + font-family: JetBrainsMono Nerd Font; + font-size: 13px; + min-height: 0; + } + + window#waybar { + background-color: @mantle; + color: @text; + } + + window#waybar.hidden { + opacity: 0.2; + } + + tooltip { + background-color: @base; + border: 1px solid @surface1; + } + + tooltip label { + color: @text; + } + + button { + box-shadow: inset 0 -3px transparent; + border: none; + border-radius: 1px; + } + + button:hover { + background: inherit; + box-shadow: inset 0 -3px @text; + } + + #workspaces button { + padding: 0 0; + background-color: @mantle; + color: @text; + } + + #workspaces button:hover { + box-shadow: inherit; + text-shadow: inherit; + background-image: linear-gradient(0deg, @surface1, @mantle); + } + + #workspaces button.focused { + background-image: linear-gradient(0deg, @mauve, @surface1); + box-shadow: inset 0 -3px @text; + } + + #workspaces button.urgent { + background-image: linear-gradient(0deg, @red, @mantle); + } + + #taskbar button.active { + background-image: linear-gradient(0deg, @surface1, @mantle); + } + + #mode { + background-color: @base; + box-shadow: inset 0 -2px @text; + } + + #mpris, + #custom-weather, + #clock, + #language, + #pulseaudio, + #bluetooth, + #network, + #memory, + #cpu, + #temperature, + #disk, + #custom-kernel, + #idle_inhibitor, + #scratchpad, + #mode, + #power-profiles-daemon, + #backlight, + #battery, + #tray { + padding: 0 10px; + margin: 5px 1px; + color: @text; + } + + #window, + #workspaces { + margin: 0 4px; + } + + #power-profiles-daemon { + background-color: @red; + color: @base; + } + + #custom-weather { + background-color: @teal; + color: @mantle; + margin-right: 5px; + } + + #custom-kernel { + background-color: @rosewater; + color: @mantle; + } + + #clock { + background-color: @green; + color: @mantle; + } + + @keyframes blink { + to { + background-color: @mantle; + color: @text; + } + } + + label:focus { + background-color: @mantle; + } + + #cpu { + background-color: @mauve; + color: @mantle; + min-width: 45px; + } + + #memory { + background-color: @red; + color: @mantle; + } + + #disk { + background-color: @flamingo; + color: @mantle; + } + + #battery { + background-color: @mauve; + color: @base; + } + + #backlight { + background-color: @sky; + color: @base; + } + + #network { + background-color: @peach; + color: @mantle; + } + + #network.disconnected { + background-color: red; + color: @mantle; + } + + #bluetooth { + background-color: @maroon; + color: @mantle; + min-width: 40px; + } + + #pulseaudio { + background-color: @yellow; + color: @mantle; + } + + #pulseaudio.muted { + background-color: red; + color: @mantle; + } + + #temperature { + background-color: @pink; + color: @mantle; + min-width: 37px; + } + + #temperature.critical { + background-color: red; + color: @mantle; + min-width: 37px; + } + + #mpris { + background-color: @base; + color: @text; + } + + #tray { + background-color: @overlay0; + color: @text; + } + + #tray > .passive { + -gtk-icon-effect: dim; + } + + #tray > .needs-attention { + -gtk-icon-effect: highlight; + background-color: @mantle; + } + + #idle_inhibitor { + background-color: @base; + color: @text; + font-family: Inter; + } + + #idle_inhibitor.activated { + background-color: @text; + color: @base; + } + + #scratchpad { + background-color: @base; + color: @text; + } + + #scratchpad.empty { + background-color: transparent; + } + ''; + }; } diff --git a/home/hyprland/wofi.nix b/home/hyprland/wofi.nix index 6b203b9..c63615d 100644 --- a/home/hyprland/wofi.nix +++ b/home/hyprland/wofi.nix @@ -1,6 +1,6 @@ { ... }: { - programs.wofi = { - enable = true; - }; + programs.wofi = { + enable = true; + }; } diff --git a/home/kitty.nix b/home/kitty.nix index 469c84c..156d644 100644 --- a/home/kitty.nix +++ b/home/kitty.nix @@ -1,18 +1,17 @@ { pkgs, ... }: { - programs.kitty = { - enable = false; - settings = { - enable_audio_bell = false; - linux_display_server = "x11"; # This is how you get borders in gnome! - }; - font = { - package = pkgs.nerd-fonts.jetbrains-mono; - name = "JetBrainsMono Nerd Font"; - size = 16; - }; - themeFile = "Catppuccin-Mocha"; - extraConfig = '' - ''; - }; + programs.kitty = { + enable = false; + settings = { + enable_audio_bell = false; + linux_display_server = "x11"; # This is how you get borders in gnome! + }; + font = { + package = pkgs.nerd-fonts.jetbrains-mono; + name = "JetBrainsMono Nerd Font"; + size = 16; + }; + themeFile = "Catppuccin-Mocha"; + extraConfig = " "; + }; } diff --git a/home/mangohud.nix b/home/mangohud.nix index de9a29e..cdb7fe1 100644 --- a/home/mangohud.nix +++ b/home/mangohud.nix @@ -1,9 +1,9 @@ { ... }: { - programs.mangohud = { - enable = true; - settings = { - fps_limit = 75; - }; - }; + programs.mangohud = { + enable = true; + settings = { + fps_limit = 75; + }; + }; } diff --git a/home/tmux.nix b/home/tmux.nix index 21b0f85..af280b7 100644 --- a/home/tmux.nix +++ b/home/tmux.nix @@ -1,13 +1,13 @@ { pkgs, ... }: { - programs.tmux = { - enable = true; - escapeTime = 0; - extraConfig = '' - set -g @catppuccin_flavor 'mocha' - ''; - plugins = with pkgs; [ - tmuxPlugins.catppuccin - ]; - }; + programs.tmux = { + enable = true; + escapeTime = 0; + extraConfig = '' + set -g @catppuccin_flavor 'mocha' + ''; + plugins = with pkgs; [ + tmuxPlugins.catppuccin + ]; + }; } diff --git a/home/zoxide.nix b/home/zoxide.nix index 2e46ea3..5520427 100644 --- a/home/zoxide.nix +++ b/home/zoxide.nix @@ -1,10 +1,10 @@ { ... }: { - programs.zoxide = { - enable = true; - enableFishIntegration= true; - options = [ - "--cmd cd" - ]; - }; + programs.zoxide = { + enable = true; + enableFishIntegration = true; + options = [ + "--cmd cd" + ]; + }; } diff --git a/lib/mksystem.nix b/lib/mksystem.nix index 387a23d..fb90c44 100644 --- a/lib/mksystem.nix +++ b/lib/mksystem.nix @@ -1,66 +1,66 @@ # This file is based on https://github.com/kahlstrm/nixos-config/blob/main/lib/mksystem.nix { - overlays, - nixvim, - millennium, - nur, - inputs, - nixpkgs, - home-manager, + overlays, + nixvim, + millennium, + nur, + inputs, + nixpkgs, + home-manager, }: name: { - system, - user, - email, - gamingSystem ? false, - workSystem ? false, - desktopEnvironment ? "", - additionalModules ? [], + system, + user, + email, + gamingSystem ? false, + workSystem ? false, + desktopEnvironment ? "", + additionalModules ? [ ], }: let - nixConfig = ../modules/nix-config/default.nix; - machineConfig = ../machines/${name}/default.nix; - HMConfig = ../home; - systemPackages = ../modules/packages.nix; - specialArgs = { - pkgs-stable = import nixpkgs { - inherit system; - config.allowUnfree = true; - }; - currentSystem = system; - currentSystemName = name; - currentSystemUser = user; - currentSystemEmail = email; - currentSystemDe = desktopEnvironment; - gamingSystem = gamingSystem; - workSystem = workSystem; - nixvim = nixvim; - millennium = millennium; - nur = nur; - inputs = inputs; - additionalModules = additionalModules; - }; + nixConfig = ../modules/nix-config/default.nix; + machineConfig = ../machines/${name}/default.nix; + HMConfig = ../home; + systemPackages = ../modules/packages.nix; + specialArgs = { + pkgs-stable = import nixpkgs { + inherit system; + config.allowUnfree = true; + }; + currentSystem = system; + currentSystemName = name; + currentSystemUser = user; + currentSystemEmail = email; + currentSystemDe = desktopEnvironment; + gamingSystem = gamingSystem; + workSystem = workSystem; + nixvim = nixvim; + millennium = millennium; + nur = nur; + inputs = inputs; + additionalModules = additionalModules; + }; in nixpkgs.lib.nixosSystem { - inherit system specialArgs; - modules = [ - { nixpkgs.overlays = overlays; } - nixConfig - systemPackages - nur.modules.nixos.default - nur.legacyPackages."${system}".repos.iopq.modules.xraya - home-manager.nixosModules.home-manager - { - home-manager.backupFileExtension = "backup"; - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.${user} = import HMConfig; - home-manager.extraSpecialArgs = specialArgs; - home-manager.sharedModules = [ - ]; - } - machineConfig - ] ++ additionalModules; + inherit system specialArgs; + modules = [ + { nixpkgs.overlays = overlays; } + nixConfig + systemPackages + nur.modules.nixos.default + nur.legacyPackages."${system}".repos.iopq.modules.xraya + home-manager.nixosModules.home-manager + { + home-manager.backupFileExtension = "backup"; + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.${user} = import HMConfig; + home-manager.extraSpecialArgs = specialArgs; + home-manager.sharedModules = [ + ]; + } + machineConfig + ] + ++ additionalModules; } - diff --git a/lib/resolve-inputs.nix b/lib/resolve-inputs.nix index ec30219..040c0d6 100644 --- a/lib/resolve-inputs.nix +++ b/lib/resolve-inputs.nix @@ -1,16 +1,15 @@ { - stable, - inputs, - system, + stable, + inputs, + system, }: let - nixpkgs-stable = inputs."nixpkgs-unstable"; - nixpkgs = if stable then nixpkgs-stable else inputs.nixpkgs-unstable; - home-manager = inputs.home-manager-unstable; + nixpkgs-stable = inputs."nixpkgs-unstable"; + nixpkgs = if stable then nixpkgs-stable else inputs.nixpkgs-unstable; + home-manager = inputs.home-manager-unstable; in { - systemFunc = nixpkgs.lib.nixosSystem; - home-manager = home-manager.nixosModules; - inherit (import nixpkgs { inherit system; }) lib; + systemFunc = nixpkgs.lib.nixosSystem; + home-manager = home-manager.nixosModules; + inherit (import nixpkgs { inherit system; }) lib; } - diff --git a/machines/bomba/configuration.nix b/machines/bomba/configuration.nix index 07a43c4..1fe1fb7 100644 --- a/machines/bomba/configuration.nix +++ b/machines/bomba/configuration.nix @@ -5,10 +5,10 @@ { ... }: { - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; - time.timeZone = "Europe/Rome"; + time.timeZone = "Europe/Rome"; - nixpkgs.config.allowUnfree = true; + nixpkgs.config.allowUnfree = true; } diff --git a/machines/bomba/default.nix b/machines/bomba/default.nix index 4b11fdf..b668b1e 100644 --- a/machines/bomba/default.nix +++ b/machines/bomba/default.nix @@ -1,17 +1,17 @@ -{ ... }: +{ ... }: { - imports = [ - ./configuration.nix - ./hardware.nix - ./networking.nix - ./services.nix - ./virtualisation.nix - ]; + imports = [ + ./configuration.nix + ./hardware.nix + ./networking.nix + ./services.nix + ./virtualisation.nix + ]; - networking.hostName = "bomba"; + networking.hostName = "bomba"; - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; - system.stateVersion = "25.05"; # Did you read the comment? + system.stateVersion = "25.05"; # Did you read the comment? } diff --git a/machines/bomba/hardware.nix b/machines/bomba/hardware.nix index f913cc9..af563a1 100644 --- a/machines/bomba/hardware.nix +++ b/machines/bomba/hardware.nix @@ -1,28 +1,43 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, modulesPath, ... }: +{ + config, + lib, + modulesPath, + ... +}: { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" ]; + boot.initrd.availableKernelModules = [ + "xhci_pci" + "ahci" + "nvme" + "usb_storage" + "usbhid" + "sd_mod" + ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ ]; boot.extraModulePackages = [ ]; - fileSystems."/" = - { device = "/dev/disk/by-uuid/a1939342-f36b-4902-b659-71b468b5e64b"; - fsType = "ext4"; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/a1939342-f36b-4902-b659-71b468b5e64b"; + fsType = "ext4"; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/6132-EE01"; - fsType = "vfat"; - options = [ "fmask=0077" "dmask=0077" ]; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/6132-EE01"; + fsType = "vfat"; + options = [ + "fmask=0077" + "dmask=0077" + ]; + }; swapDevices = [ ]; diff --git a/machines/bomba/networking.nix b/machines/bomba/networking.nix index 1398a6b..bbd3e49 100644 --- a/machines/bomba/networking.nix +++ b/machines/bomba/networking.nix @@ -1,4 +1,4 @@ -{ ... }: +{ ... }: { networking = { networkmanager.enable = true; diff --git a/machines/bomba/services.nix b/machines/bomba/services.nix index 887f880..d325554 100644 --- a/machines/bomba/services.nix +++ b/machines/bomba/services.nix @@ -1,6 +1,6 @@ -{ ... }: +{ ... }: { - services = { - openssh.enable = true; - }; + services = { + openssh.enable = true; + }; } diff --git a/machines/katana/boot.nix b/machines/katana/boot.nix index c6874bc..6580d69 100644 --- a/machines/katana/boot.nix +++ b/machines/katana/boot.nix @@ -1,26 +1,27 @@ { pkgs, ... }: { - boot = { - loader.systemd-boot.enable = true; - loader.efi.canTouchEfiVariables = true; - loader.systemd-boot.configurationLimit = 10; - initrd = { - luks.devices."luks-563ebcd9-614b-460f-af9a-5cf1d9c8bef5".device = "/dev/disk/by-uuid/563ebcd9-614b-460f-af9a-5cf1d9c8bef5"; - verbose = false; - systemd.enable = true; - }; - kernelPackages = pkgs.linuxPackages_zen; # pkgs.linuxPackages_latest; - consoleLogLevel = 3; - kernelParams = [ - "quiet" - "splash" - "intremap=on" - "boot.shell_on_fail" - "udev.log_priority=3" - "rd.systemd.show_status=auto" - ]; + boot = { + loader.systemd-boot.enable = true; + loader.efi.canTouchEfiVariables = true; + loader.systemd-boot.configurationLimit = 10; + initrd = { + luks.devices."luks-563ebcd9-614b-460f-af9a-5cf1d9c8bef5".device = + "/dev/disk/by-uuid/563ebcd9-614b-460f-af9a-5cf1d9c8bef5"; + verbose = false; + systemd.enable = true; + }; + kernelPackages = pkgs.linuxPackages_zen; # pkgs.linuxPackages_latest; + consoleLogLevel = 3; + kernelParams = [ + "quiet" + "splash" + "intremap=on" + "boot.shell_on_fail" + "udev.log_priority=3" + "rd.systemd.show_status=auto" + ]; - plymouth.enable = true; - loader.timeout = 0; - }; + plymouth.enable = true; + loader.timeout = 0; + }; } diff --git a/machines/katana/default.nix b/machines/katana/default.nix index 17c8c27..99a10e3 100644 --- a/machines/katana/default.nix +++ b/machines/katana/default.nix @@ -1,15 +1,15 @@ { ... }: { - imports = [ - ./hardware.nix - ./boot.nix - ./nvidia.nix - ./services.nix - ./virtualisation.nix - ./networking.nix - ]; + imports = [ + ./hardware.nix + ./boot.nix + ./nvidia.nix + ./services.nix + ./virtualisation.nix + ./networking.nix + ]; - networking.hostName = "katana"; # Define your hostname. + networking.hostName = "katana"; # Define your hostname. - system.stateVersion = "25.11"; # Did you read the comment? + system.stateVersion = "25.11"; # Did you read the comment? } diff --git a/machines/katana/hardware.nix b/machines/katana/hardware.nix index e2fabc2..4b1aa37 100644 --- a/machines/katana/hardware.nix +++ b/machines/katana/hardware.nix @@ -1,34 +1,50 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, modulesPath, ... }: +{ + config, + lib, + modulesPath, + ... +}: { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "vmd" "xhci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.availableKernelModules = [ + "vmd" + "xhci_pci" + "nvme" + "usbhid" + "usb_storage" + "sd_mod" + ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-intel" ]; boot.extraModulePackages = [ ]; - fileSystems."/" = - { device = "/dev/mapper/luks-1a5ef40f-3c13-4efb-ae65-da42d4bf30ef"; - fsType = "ext4"; - }; + fileSystems."/" = { + device = "/dev/mapper/luks-1a5ef40f-3c13-4efb-ae65-da42d4bf30ef"; + fsType = "ext4"; + }; - boot.initrd.luks.devices."luks-1a5ef40f-3c13-4efb-ae65-da42d4bf30ef".device = "/dev/disk/by-uuid/1a5ef40f-3c13-4efb-ae65-da42d4bf30ef"; + boot.initrd.luks.devices."luks-1a5ef40f-3c13-4efb-ae65-da42d4bf30ef".device = + "/dev/disk/by-uuid/1a5ef40f-3c13-4efb-ae65-da42d4bf30ef"; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/1A33-9EC1"; - fsType = "vfat"; - options = [ "fmask=0077" "dmask=0077" ]; - }; - - swapDevices = - [ { device = "/dev/mapper/luks-563ebcd9-614b-460f-af9a-5cf1d9c8bef5"; } + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/1A33-9EC1"; + fsType = "vfat"; + options = [ + "fmask=0077" + "dmask=0077" ]; + }; + + swapDevices = [ + { device = "/dev/mapper/luks-563ebcd9-614b-460f-af9a-5cf1d9c8bef5"; } + ]; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; diff --git a/machines/katana/networking.nix b/machines/katana/networking.nix index ed13744..4bd305f 100644 --- a/machines/katana/networking.nix +++ b/machines/katana/networking.nix @@ -1,16 +1,16 @@ -{ ... }: +{ ... }: { - networking = { - networkmanager.enable = true; - wireguard.enable = true; - firewall = { - checkReversePath = false; - allowedUDPPorts = [ 25565 ]; - allowedTCPPorts = [ 25565 ]; - }; - }; - hardware.bluetooth = { - enable = true; - powerOnBoot = true; - }; + networking = { + networkmanager.enable = true; + wireguard.enable = true; + firewall = { + checkReversePath = false; + allowedUDPPorts = [ 25565 ]; + allowedTCPPorts = [ 25565 ]; + }; + }; + hardware.bluetooth = { + enable = true; + powerOnBoot = true; + }; } diff --git a/machines/katana/nvidia.nix b/machines/katana/nvidia.nix index d29af37..24c5288 100644 --- a/machines/katana/nvidia.nix +++ b/machines/katana/nvidia.nix @@ -1,20 +1,20 @@ { config, ... }: { - hardware = { - graphics.enable = true; - nvidia = { - modesetting.enable = true; - package = config.boot.kernelPackages.nvidiaPackages.beta; - open = true; - prime = { - offload = { - enable = true; - enableOffloadCmd = true; - }; + hardware = { + graphics.enable = true; + nvidia = { + modesetting.enable = true; + package = config.boot.kernelPackages.nvidiaPackages.beta; + open = true; + prime = { + offload = { + enable = true; + enableOffloadCmd = true; + }; - intelBusId = "PCI:0:2:0"; - nvidiaBusId = "PCI:1:0:0"; - }; - }; - }; + intelBusId = "PCI:0:2:0"; + nvidiaBusId = "PCI:1:0:0"; + }; + }; + }; } diff --git a/machines/katana/services.nix b/machines/katana/services.nix index 0195dce..526ecfb 100644 --- a/machines/katana/services.nix +++ b/machines/katana/services.nix @@ -1,10 +1,10 @@ { ... }: { - services = { - flatpak.enable = true; - printing.enable = true; - # Required for piper to work - ratbagd.enable = true; - xserver.videoDrivers = ["nvidia"]; - }; + services = { + flatpak.enable = true; + printing.enable = true; + # Required for piper to work + ratbagd.enable = true; + xserver.videoDrivers = [ "nvidia" ]; + }; } diff --git a/machines/workstation/default.nix b/machines/workstation/default.nix index 9a1b31e..cedcb92 100644 --- a/machines/workstation/default.nix +++ b/machines/workstation/default.nix @@ -1,18 +1,18 @@ { ... }: { - imports = [ - ./hardware.nix - ./services.nix - ./virtualisation.nix - ./networking.nix - ]; + imports = [ + ./hardware.nix + ./services.nix + ./virtualisation.nix + ./networking.nix + ]; - networking.hostName = "workstation"; # Define your hostname. + networking.hostName = "workstation"; # Define your hostname. - boot.loader = { - systemd-boot.enable = true; - efi.canTouchEfiVariables = true; - }; + boot.loader = { + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; + }; - system.stateVersion = "24.11"; # Did you read the comment? + system.stateVersion = "24.11"; # Did you read the comment? } diff --git a/machines/workstation/hardware.nix b/machines/workstation/hardware.nix index 51f58d3..c17fd7a 100644 --- a/machines/workstation/hardware.nix +++ b/machines/workstation/hardware.nix @@ -1,30 +1,47 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, modulesPath, ... }: +{ + config, + lib, + modulesPath, + ... +}: { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" "rtsx_usb_sdmmc" ]; + boot.initrd.availableKernelModules = [ + "xhci_pci" + "ahci" + "nvme" + "usbhid" + "usb_storage" + "sd_mod" + "rtsx_usb_sdmmc" + ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-intel" ]; boot.extraModulePackages = [ ]; - fileSystems."/" = - { device = "/dev/disk/by-uuid/b8f99588-490c-47a4-ad8b-dfbe27ced16c"; - fsType = "ext4"; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/b8f99588-490c-47a4-ad8b-dfbe27ced16c"; + fsType = "ext4"; + }; - boot.initrd.luks.devices."luks-a4dcf57a-8925-41a8-bac6-1cfd08a90f0b".device = "/dev/disk/by-uuid/a4dcf57a-8925-41a8-bac6-1cfd08a90f0b"; + boot.initrd.luks.devices."luks-a4dcf57a-8925-41a8-bac6-1cfd08a90f0b".device = + "/dev/disk/by-uuid/a4dcf57a-8925-41a8-bac6-1cfd08a90f0b"; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/C0E2-037E"; - fsType = "vfat"; - options = [ "fmask=0077" "dmask=0077" ]; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/C0E2-037E"; + fsType = "vfat"; + options = [ + "fmask=0077" + "dmask=0077" + ]; + }; swapDevices = [ ]; diff --git a/machines/workstation/networking.nix b/machines/workstation/networking.nix index 5cd5453..bb6d523 100644 --- a/machines/workstation/networking.nix +++ b/machines/workstation/networking.nix @@ -1,9 +1,12 @@ -{ ... }: +{ ... }: { - networking = { - networkmanager.enable = true; - firewall.allowedUDPPorts = [ 8000 ]; - firewall.allowedTCPPorts = [ 8000 ]; - nameservers = [ "1.1.1.1" "1.0.0.1" ]; - }; + networking = { + networkmanager.enable = true; + firewall.allowedUDPPorts = [ 8000 ]; + firewall.allowedTCPPorts = [ 8000 ]; + nameservers = [ + "1.1.1.1" + "1.0.0.1" + ]; + }; } diff --git a/machines/workstation/services.nix b/machines/workstation/services.nix index 57e0243..e2a61e3 100644 --- a/machines/workstation/services.nix +++ b/machines/workstation/services.nix @@ -1,17 +1,17 @@ { ... }: { - services = { - flatpak.enable = true; + services = { + flatpak.enable = true; - # Enable CUPS to print documents. - printing.enable = true; - openssh = { - enable = true; - ports = [ 22 ]; - settings = { - PasswordAuthentication = true; - PermitRootLogin = "no"; - }; - }; - }; + # Enable CUPS to print documents. + printing.enable = true; + openssh = { + enable = true; + ports = [ 22 ]; + settings = { + PasswordAuthentication = true; + PermitRootLogin = "no"; + }; + }; + }; } diff --git a/modules/nix-config/de.nix b/modules/nix-config/de.nix index f0c6c81..e40b855 100644 --- a/modules/nix-config/de.nix +++ b/modules/nix-config/de.nix @@ -1,54 +1,63 @@ -{ pkgs, lib, currentSystemDe, ... }: { - services = { - xserver.enable = true; - xserver.excludePackages = with pkgs; [ - xterm - ]; + pkgs, + lib, + currentSystemDe, + ... +}: +{ + services = { + xserver.enable = true; + xserver.excludePackages = with pkgs; [ + xterm + ]; - # Display managers - displayManager = { - sddm = lib.mkIf (currentSystemDe == "plasma") { - enable = true; - wayland.enable = true; - }; - gdm.enable = lib.mkIf (currentSystemDe == "gnome") true; - }; + # Display managers + displayManager = { + sddm = lib.mkIf (currentSystemDe == "plasma") { + enable = true; + wayland.enable = true; + }; + gdm.enable = lib.mkIf (currentSystemDe == "gnome") true; + }; - # Desktop environments - desktopManager = { - plasma6.enable = lib.mkIf (currentSystemDe == "plasma") true; - gnome.enable = lib.mkIf (currentSystemDe == "gnome") true; - }; - }; - environment.plasma6.excludePackages = with pkgs.kdePackages; [ - elisa - konsole - ]; - environment.gnome.excludePackages = with pkgs; [ - epiphany - geary - gedit - gnome-characters - gnome-console - gnome-contacts - gnome-maps - gnome-music - gnome-software - gnome-tour - seahorse - simple-scan - xterm - yelp - ]; + # Desktop environments + desktopManager = { + plasma6.enable = lib.mkIf (currentSystemDe == "plasma") true; + gnome.enable = lib.mkIf (currentSystemDe == "gnome") true; + }; + }; + environment.plasma6.excludePackages = with pkgs.kdePackages; [ + elisa + konsole + ]; + environment.gnome.excludePackages = with pkgs; [ + epiphany + geary + gedit + gnome-characters + gnome-console + gnome-contacts + gnome-maps + gnome-music + gnome-software + gnome-tour + seahorse + simple-scan + xterm + yelp + ]; - xdg = { - autostart.enable = true; - portal.enable = true; - }; + xdg = { + autostart.enable = true; + portal.enable = true; + }; - programs.kdeconnect = lib.mkIf (currentSystemDe != "none") { - enable = true; - package = if (currentSystemDe == "gnome") then pkgs.gnomeExtensions.gsconnect else pkgs.kdePackages.kdeconnect-kde; - }; + programs.kdeconnect = lib.mkIf (currentSystemDe != "none") { + enable = true; + package = + if (currentSystemDe == "gnome") then + pkgs.gnomeExtensions.gsconnect + else + pkgs.kdePackages.kdeconnect-kde; + }; } diff --git a/modules/nix-config/default.nix b/modules/nix-config/default.nix index 9054fff..a1ec9c5 100644 --- a/modules/nix-config/default.nix +++ b/modules/nix-config/default.nix @@ -1,38 +1,49 @@ -{ pkgs, currentSystemUser, currentSystemDe, ... }: { - imports = [ - ./keyboard.nix - ./security.nix - ./services.nix - ] ++ (if (currentSystemDe != "none") then [ - ./de.nix - ./fonts.nix - ./sound.nix - ] else []); + pkgs, + currentSystemUser, + currentSystemDe, + ... +}: +{ + imports = [ + ./keyboard.nix + ./security.nix + ./services.nix + ] + ++ ( + if (currentSystemDe != "none") then + [ + ./de.nix + ./fonts.nix + ./sound.nix + ] + else + [ ] + ); - time.timeZone = "Europe/Rome"; + time.timeZone = "Europe/Rome"; - # Select internationalisation properties. - i18n = { - defaultLocale = "en_US.UTF-8"; - extraLocaleSettings = { - LC_ADDRESS = "it_IT.UTF-8"; - LC_IDENTIFICATION = "it_IT.UTF-8"; - LC_MEASUREMENT = "it_IT.UTF-8"; - LC_MONETARY = "it_IT.UTF-8"; - LC_NAME = "it_IT.UTF-8"; - LC_NUMERIC = "it_IT.UTF-8"; - LC_PAPER = "it_IT.UTF-8"; - LC_TELEPHONE = "it_IT.UTF-8"; - LC_TIME = "it_IT.UTF-8"; - }; - }; + # Select internationalisation properties. + i18n = { + defaultLocale = "en_US.UTF-8"; + extraLocaleSettings = { + LC_ADDRESS = "it_IT.UTF-8"; + LC_IDENTIFICATION = "it_IT.UTF-8"; + LC_MEASUREMENT = "it_IT.UTF-8"; + LC_MONETARY = "it_IT.UTF-8"; + LC_NAME = "it_IT.UTF-8"; + LC_NUMERIC = "it_IT.UTF-8"; + LC_PAPER = "it_IT.UTF-8"; + LC_TELEPHONE = "it_IT.UTF-8"; + LC_TIME = "it_IT.UTF-8"; + }; + }; - environment.sessionVariables = { - NIXOS_OZONE_WL = "1"; # Use Wayland when possible (this does not seem to work) - ELECTRON_OZONE_PLATFORM_HINT = "wayland"; - GOPATH = "$HOME/.go"; - }; + environment.sessionVariables = { + NIXOS_OZONE_WL = "1"; # Use Wayland when possible (this does not seem to work) + ELECTRON_OZONE_PLATFORM_HINT = "wayland"; + GOPATH = "$HOME/.go"; + }; programs.fish.enable = true; # This must be true before initializing my user users.users.${currentSystemUser} = { @@ -42,12 +53,15 @@ shell = pkgs.fish; }; - nix.settings.experimental-features = [ "nix-command" "flakes" ]; - nixpkgs.config.packageOverrides = pkgs: { - nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/main.tar.gz") { - inherit pkgs; - }; - }; + nix.settings.experimental-features = [ + "nix-command" + "flakes" + ]; + nixpkgs.config.packageOverrides = pkgs: { + nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/main.tar.gz") { + inherit pkgs; + }; + }; - documentation.man.generateCaches = false; + documentation.man.generateCaches = false; } diff --git a/modules/nix-config/fonts.nix b/modules/nix-config/fonts.nix index b515973..14e5c6f 100644 --- a/modules/nix-config/fonts.nix +++ b/modules/nix-config/fonts.nix @@ -1,7 +1,7 @@ { pkgs, ... }: { - fonts.packages = with pkgs; [ - nerd-fonts.jetbrains-mono - noto-fonts - ]; + fonts.packages = with pkgs; [ + nerd-fonts.jetbrains-mono + noto-fonts + ]; } diff --git a/modules/nix-config/keyboard.nix b/modules/nix-config/keyboard.nix index 18829f6..5e5f10b 100644 --- a/modules/nix-config/keyboard.nix +++ b/modules/nix-config/keyboard.nix @@ -1,8 +1,8 @@ -{ ... }: +{ ... }: { - # Configure keymap in X11 - services.xserver.xkb = { - layout = "us"; - variant = ""; - }; + # Configure keymap in X11 + services.xserver.xkb = { + layout = "us"; + variant = ""; + }; } diff --git a/modules/nix-config/security.nix b/modules/nix-config/security.nix index bc22e56..7e00e3d 100644 --- a/modules/nix-config/security.nix +++ b/modules/nix-config/security.nix @@ -1,7 +1,7 @@ { ... }: { - security.sudo.extraConfig = '' - Defaults pwfeedback - Defaults timestamp_timeout=120 - ''; + security.sudo.extraConfig = '' + Defaults pwfeedback + Defaults timestamp_timeout=120 + ''; } diff --git a/modules/nix-config/services.nix b/modules/nix-config/services.nix index 2cfc7fa..9b31867 100644 --- a/modules/nix-config/services.nix +++ b/modules/nix-config/services.nix @@ -1,7 +1,7 @@ -{ ... }: -{ - services = { - pcscd.enable = true; - nordvpn.enable = true; - }; +{ ... }: +{ + services = { + pcscd.enable = true; + nordvpn.enable = true; + }; } diff --git a/modules/nix-config/sound.nix b/modules/nix-config/sound.nix index 09e26af..89c81eb 100644 --- a/modules/nix-config/sound.nix +++ b/modules/nix-config/sound.nix @@ -1,14 +1,14 @@ { ... }: { - # Enable sound with pipewire. - services = { - pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - }; - pulseaudio.enable = false; - }; - security.rtkit.enable = true; + # Enable sound with pipewire. + services = { + pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + }; + pulseaudio.enable = false; + }; + security.rtkit.enable = true; } diff --git a/modules/packages.nix b/modules/packages.nix index 5d86310..a06ef30 100644 --- a/modules/packages.nix +++ b/modules/packages.nix @@ -1,109 +1,148 @@ -{ pkgs, gamingSystem, workSystem, currentSystemDe, ... }@ inputs: { - imports = [ - ./programs - ]; + pkgs, + gamingSystem, + workSystem, + currentSystemDe, + ... +}@inputs: +{ + imports = [ + ./programs + ]; - nixpkgs.config.allowUnfree = true; + nixpkgs.config.allowUnfree = true; - environment.systemPackages = with pkgs; [ - # CLI utils - appimage-run - bat - btop - bun - busybox - distrobox - docker - dua - fd - fish - fzf - gh - git - gitlab-ci-local - gnumake - htop - inotify-tools - jq - just - killall - krabby - lazygit - nmap - nodejs - openssl - openvpn - pinentry-tty - python3 - ripgrep - tree - unzip - wget - wl-clipboard - xdotool - xorg.xwininfo - yad - zip - zoxide - zulu + environment.systemPackages = + with pkgs; + [ + # CLI utils + appimage-run + bat + btop + bun + busybox + distrobox + docker + dua + fd + fish + fzf + gh + git + gitlab-ci-local + gnumake + htop + inotify-tools + jq + just + killall + krabby + lazygit + nmap + nodejs + openssl + openvpn + pinentry-tty + python3 + ripgrep + tree + unzip + wget + wl-clipboard + xdotool + xorg.xwininfo + yad + zip + zoxide + zulu - # Man pages - man-pages + # Man pages + man-pages - vim # The only and one great editor - inputs.nixvim.packages.${stdenv.hostPlatform.system}.default # The only and one great editor improved even further - ] ++ (if currentSystemDe != "none" then [ - # Video card - vulkan-tools + vim # The only and one great editor + inputs.nixvim.packages.${stdenv.hostPlatform.system}.default # The only and one great editor improved even further + ] + ++ ( + if currentSystemDe != "none" then + [ + # Video card + vulkan-tools - # GUI applications - baobab - bazaar - blackbox-terminal - firefox - fluffychat - gnome-boxes - mpv - nextcloud-client - piper - spotube - telegram-desktop - thunderbird - ] else []) - ++ (if gamingSystem then [ - cura-appimage - discord - heroic - lutris - mangohud - openrgb - prismlauncher - protonplus - satisfactorymodmanager - ] else []) - ++ (if workSystem then [ - android-studio - ansible - virt-manager - ] else []) - ++ (if currentSystemDe == "plasma" then [ - kdePackages.wallpaper-engine-plugin - ] else []) - ++ (if currentSystemDe == "hyprland" then [ - # Hyprland - brightnessctl - hyprpaper - pamixer - pavucontrol - kdePackages.dolphin - ] else []) - ++ (if currentSystemDe == "gnome" then [ - gnome-tweaks - gnomeExtensions.appindicator - gnomeExtensions.caffeine - gnomeExtensions.dash-to-dock - gnomeExtensions.wallpaper-slideshow - ] else []); + # GUI applications + baobab + bazaar + blackbox-terminal + firefox + fluffychat + gnome-boxes + mpv + nextcloud-client + piper + spotube + telegram-desktop + thunderbird + ] + else + [ ] + ) + ++ ( + if gamingSystem then + [ + cura-appimage + discord + heroic + lutris + mangohud + openrgb + prismlauncher + protonplus + satisfactorymodmanager + ] + else + [ ] + ) + ++ ( + if workSystem then + [ + android-studio + ansible + virt-manager + ] + else + [ ] + ) + ++ ( + if currentSystemDe == "plasma" then + [ + kdePackages.wallpaper-engine-plugin + ] + else + [ ] + ) + ++ ( + if currentSystemDe == "hyprland" then + [ + # Hyprland + brightnessctl + hyprpaper + pamixer + pavucontrol + kdePackages.dolphin + ] + else + [ ] + ) + ++ ( + if currentSystemDe == "gnome" then + [ + gnome-tweaks + gnomeExtensions.appindicator + gnomeExtensions.caffeine + gnomeExtensions.dash-to-dock + gnomeExtensions.wallpaper-slideshow + ] + else + [ ] + ); } diff --git a/modules/programs/default.nix b/modules/programs/default.nix index 0ab1ad8..3c2a44a 100644 --- a/modules/programs/default.nix +++ b/modules/programs/default.nix @@ -1,27 +1,36 @@ -{ pkgs, gamingSystem, currentSystemDe, ... }: { - imports = [ - ./nordvpn.nix - ]; + pkgs, + gamingSystem, + currentSystemDe, + ... +}: +{ + imports = [ + ./nordvpn.nix + ]; - programs = { - gamescope = { - enable = true; - capSysNice = true; - }; - steam = if gamingSystem then { - enable = true; - # package = pkgs.steam-millennium; - remotePlay.openFirewall = true; - } else {}; - gnupg.agent = { - enable = true; - pinentryPackage = pkgs.pinentry-tty; - enableSSHSupport = true; - }; - nh = { - enable = true; - }; - hyprland.enable = if currentSystemDe == "hyprland" then true else false; - }; + programs = { + gamescope = { + enable = true; + capSysNice = true; + }; + steam = + if gamingSystem then + { + enable = true; + # package = pkgs.steam-millennium; + remotePlay.openFirewall = true; + } + else + { }; + gnupg.agent = { + enable = true; + pinentryPackage = pkgs.pinentry-tty; + enableSSHSupport = true; + }; + nh = { + enable = true; + }; + hyprland.enable = if currentSystemDe == "hyprland" then true else false; + }; } diff --git a/modules/programs/nordvpn.nix b/modules/programs/nordvpn.nix index fc0a308..94160d1 100644 --- a/modules/programs/nordvpn.nix +++ b/modules/programs/nordvpn.nix @@ -1,13 +1,13 @@ -{ pkgs, ... } @ inputs: +{ pkgs, ... }@inputs: { - imports = [ - inputs.nur.modules.nixos.default - inputs.nur.legacyPackages.x86_64-linux.repos.wingej0.modules.nordvpn - ]; + imports = [ + inputs.nur.modules.nixos.default + inputs.nur.legacyPackages.x86_64-linux.repos.wingej0.modules.nordvpn + ]; - nixpkgs.overlays = [ - (_final: _prev: { - nordvpn = pkgs.nur.repos.wingej0.nordvpn; - }) - ]; + nixpkgs.overlays = [ + (_final: _prev: { + nordvpn = pkgs.nur.repos.wingej0.nordvpn; + }) + ]; }