diff --git a/flake.nix b/flake.nix index b39fe61..0d80956 100644 --- a/flake.nix +++ b/flake.nix @@ -18,10 +18,11 @@ } @ inputs: let system = "x86_64-linux"; mkConf = import ./lib/mkconf.nix; - + pkgs = import nixpkgs {inherit system;}; user = "tristan"; userName = "Tristan Beedell"; in { + formatter.${system} = pkgs.alejandra; nixosConfigurations = { zenix = mkConf "zenix" { inherit inputs nixpkgs system user userName home-manager; diff --git a/global/home.nix b/global/home.nix index 059c4cd..c4945c3 100644 --- a/global/home.nix +++ b/global/home.nix @@ -341,5 +341,4 @@ in { }; programs.direnv.enable = true; - } diff --git a/global/system.nix b/global/system.nix index a9ccdae..12359b7 100644 --- a/global/system.nix +++ b/global/system.nix @@ -179,5 +179,4 @@ user: { services.prometheus.exporters.node.enable = true; networking.networkmanager.insertNameservers = ["1.1.1.1" "1.0.0.1"]; - } diff --git a/hardware/work.nix b/hardware/work.nix index 2a7759d..836ad61 100644 --- a/hardware/work.nix +++ b/hardware/work.nix @@ -120,7 +120,5 @@ }; wallpaper = ../images/nix-soft.png; }; - }; - } diff --git a/lib/mkconf.nix b/lib/mkconf.nix index 4af8740..9a029be 100644 --- a/lib/mkconf.nix +++ b/lib/mkconf.nix @@ -15,7 +15,6 @@ nixpkgs.lib.nixosSystem { inherit system; modules = [ - inputs.stylix.nixosModules.stylix ({pkgs, ...}: { stylix.image = ../images/demonslayer.png; diff --git a/lib/modules/display.nix b/lib/modules/display.nix index e4845dc..d074aa6 100644 --- a/lib/modules/display.nix +++ b/lib/modules/display.nix @@ -7,7 +7,7 @@ with lib; let cfg = config.displays; - renderDisplaysForHyprland = displays: (map displayHyprlandSetting (builtins.filter (d: d.enable) displays )); + renderDisplaysForHyprland = displays: (map displayHyprlandSetting (builtins.filter (d: d.enable) displays)); displayHyprlandSetting = display: specificDisplay display diff --git a/lib/modules/wayland.nix b/lib/modules/wayland.nix index 07ec219..b5dba65 100644 --- a/lib/modules/wayland.nix +++ b/lib/modules/wayland.nix @@ -12,5 +12,8 @@ in { type = lib.types.oneOf ["hyprland" "sway"]; }; - config = if opt == "hyprland" then (import ../programs/hyprland.nix {inherit user;} {inherit lib pkgs;}) else {}; + config = + if opt == "hyprland" + then (import ../programs/hyprland.nix {inherit user;} {inherit lib pkgs;}) + else {}; } diff --git a/lib/programs/hyprland.nix b/lib/programs/hyprland.nix index badd334..0ec26ad 100644 --- a/lib/programs/hyprland.nix +++ b/lib/programs/hyprland.nix @@ -3,174 +3,171 @@ pkgs, ... }: { - services.greetd = { - enable = true; - settings = rec { - hypr_session = { - command = "Hyprland"; - user = user; - }; - default_session = hypr_session; + services.greetd = { + enable = true; + settings = rec { + hypr_session = { + command = "Hyprland"; + user = user; }; + default_session = hypr_session; }; + }; - home-manager.users.${user}.imports = [ - ( import ./swaylock.nix ) - ( import ./swayidle.nix ) - { - xdg.portal = { - enable = true; - configPackages = [ pkgs.hyprland ]; - extraPortals = [ pkgs.xdg-desktop-portal-hyprland pkgs.xdg-desktop-portal-gtk ]; - }; + home-manager.users.${user}.imports = [ + (import ./swaylock.nix) + (import ./swayidle.nix) + { + xdg.portal = { + enable = true; + configPackages = [pkgs.hyprland]; + extraPortals = [pkgs.xdg-desktop-portal-hyprland pkgs.xdg-desktop-portal-gtk]; + }; - wayland.windowManager.hyprland = { - enable = true; - systemd.enable = true; - settings = { - input = { - touchpad = { - natural_scroll = true; - scroll_factor = 0.5; - }; - }; - gestures = { - workspace_swipe = true; - workspace_swipe_numbered = true; - }; - decoration = { - rounding = 5; - drop_shadow = false; - }; - bezier = [ - "overshot, 0.05, 0.9, 0.1, 1.1" - "linear, 0.0, 0.0, 1.0, 1.0" - ]; - animations = { - enabled = true; - animation = [ - "windows, 1, 1, default, popin" - "border, 1, 1, default" - "fade, 1, 1, default" - "workspaces, 1, 3, overshot" - "borderangle,1, 50, linear, loop" - ]; - }; - bind = [ - "SUPER, h, movefocus,l" - "SUPER, l, movefocus,r" - "SUPER, j, layoutmsg,cyclenext" - "SUPER, k, layoutmsg,cycleprev" - "SUPER, space, layoutmsg,swapwithmaster master" - "SUPER, F, fullscreen," - "SUPER, V, togglefloating," - "SUPER, W, layoutmsg, orientationprev" - "SUPER_SHIFT, W, layoutmsg, orientationnext" - "SUPER_SHIFT, V, togglegroup," - "SUPER_SHIFT, h, changegroupactive,b" - "SUPER_SHIFT, h, moveintogroup,l" - "SUPER_SHIFT, l, moveintogroup,r" - "SUPER_SHIFT, l, changegroupactive,f" - "SUPER, Y, togglespecialworkspace" - "SUPER_SHIFT, Y, movetoworkspace, special" - "SUPER_SHIFT, X, killactive" - "SUPER, slash, focuswindow, brave-browser" - "SUPER, n, focuswindow, Logseq" - "SUPER, R, submap, resize" - "SUPER,1,workspace,1" - "SUPER,2,workspace,2" - "SUPER,3,workspace,3" - "SUPER,4,workspace,4" - "SUPER,5,workspace,5" - "SUPER,6,workspace,6" - "SUPER,7,workspace,7" - "SUPER,8,workspace,8" - "SUPER,9,workspace,9" - "SUPER,0,workspace,10" - "SUPER,left,workspace,r-1" - "SUPER,right,workspace,r+1" - "SUPER_SHIFT,1,movetoworkspace,1" - "SUPER_SHIFT,2,movetoworkspace,2" - "SUPER_SHIFT,3,movetoworkspace,3" - "SUPER_SHIFT,4,movetoworkspace,4" - "SUPER_SHIFT,5,movetoworkspace,5" - "SUPER_SHIFT,6,movetoworkspace,6" - "SUPER_SHIFT,7,movetoworkspace,7" - "SUPER_SHIFT,8,movetoworkspace,8" - "SUPER_SHIFT,9,movetoworkspace,9" - "SUPER_SHIFT,0,movetoworkspace,10" - ]; - bindm = [ - "SUPER, mouse:272, movewindow" - "SUPER, mouse:273, resizewindow" - ]; - env = [ - "GDK_BACKEND,wayland,x11" - "QT_QPA_PLATFORM,wayland;xcb" - "SDL_VIDEODRIVER,wayland" - "CLUTTER_BACKEND,wayland" - "XDG_CURRENT_DESKTOP,Hyprland" - "XDG_SESSION_TYPE,wayland" - "XDG_SESSION_DESKTOP,Hyprland" - "QT_AUTO_SCREEN_SCALE_FACTOR,1" - "QT_WAYLAND_DISABLE_WINDOWDECORATION,1" - "NIXOS_OZONE_WL,1" - "WLR_NO_HARDWARE_CURSORS,1" - ]; - windowrule = [ - "float, title:wlogout" - "idleinhibit always, vrmonitor" - "idleinhibit focus, steam_app" - ]; - workspace = [ - "11, default:true" - ]; - general = { - gaps_out = 10; - resize_on_border = true; - layout = "master"; - # "col.active_border" = "rgb(FFFF00) rgb(00FFFF) rgb(FF00FF)"; - border_size = lib.mkDefault 5; - }; - master = { - mfact = 0.7; - new_on_top = true; - }; - misc = { - vrr = 2; - focus_on_activate = true; + wayland.windowManager.hyprland = { + enable = true; + systemd.enable = true; + settings = { + input = { + touchpad = { + natural_scroll = true; + scroll_factor = 0.5; }; }; - # https://wiki.hyprland.org/Configuring/Variables/ - extraConfig = '' - submap = resize - binde = ,right,resizeactive,10 0 - binde = ,left,resizeactive,-10 0 - binde = ,up,resizeactive,0 -10 - binde = ,down,resizeactive,0 10 - binde = ,k,resizeactive,0 -10 - binde = ,j,resizeactive,0 10 - binde = ,l,splitratio,0.05 - binde = ,h,splitratio,-0.05 - binde = SHIFT,l,splitratio,0.3 - binde = SHIFT,h,splitratio,-0.3 - - bind = , escape, submap,reset - bind = , enter, submap,reset - bind = SUPER, R, submap,reset - bind = CONTROL, C, submap,reset - submap = reset - ''; + gestures = { + workspace_swipe = true; + workspace_swipe_numbered = true; + }; + decoration = { + rounding = 5; + drop_shadow = false; + }; + bezier = [ + "overshot, 0.05, 0.9, 0.1, 1.1" + "linear, 0.0, 0.0, 1.0, 1.0" + ]; + animations = { + enabled = true; + animation = [ + "windows, 1, 1, default, popin" + "border, 1, 1, default" + "fade, 1, 1, default" + "workspaces, 1, 3, overshot" + "borderangle,1, 50, linear, loop" + ]; + }; + bind = [ + "SUPER, h, movefocus,l" + "SUPER, l, movefocus,r" + "SUPER, j, layoutmsg,cyclenext" + "SUPER, k, layoutmsg,cycleprev" + "SUPER, space, layoutmsg,swapwithmaster master" + "SUPER, F, fullscreen," + "SUPER, V, togglefloating," + "SUPER, W, layoutmsg, orientationprev" + "SUPER_SHIFT, W, layoutmsg, orientationnext" + "SUPER_SHIFT, V, togglegroup," + "SUPER_SHIFT, h, changegroupactive,b" + "SUPER_SHIFT, h, moveintogroup,l" + "SUPER_SHIFT, l, moveintogroup,r" + "SUPER_SHIFT, l, changegroupactive,f" + "SUPER, Y, togglespecialworkspace" + "SUPER_SHIFT, Y, movetoworkspace, special" + "SUPER_SHIFT, X, killactive" + "SUPER, slash, focuswindow, brave-browser" + "SUPER, n, focuswindow, Logseq" + "SUPER, R, submap, resize" + "SUPER,1,workspace,1" + "SUPER,2,workspace,2" + "SUPER,3,workspace,3" + "SUPER,4,workspace,4" + "SUPER,5,workspace,5" + "SUPER,6,workspace,6" + "SUPER,7,workspace,7" + "SUPER,8,workspace,8" + "SUPER,9,workspace,9" + "SUPER,0,workspace,10" + "SUPER,left,workspace,r-1" + "SUPER,right,workspace,r+1" + "SUPER_SHIFT,1,movetoworkspace,1" + "SUPER_SHIFT,2,movetoworkspace,2" + "SUPER_SHIFT,3,movetoworkspace,3" + "SUPER_SHIFT,4,movetoworkspace,4" + "SUPER_SHIFT,5,movetoworkspace,5" + "SUPER_SHIFT,6,movetoworkspace,6" + "SUPER_SHIFT,7,movetoworkspace,7" + "SUPER_SHIFT,8,movetoworkspace,8" + "SUPER_SHIFT,9,movetoworkspace,9" + "SUPER_SHIFT,0,movetoworkspace,10" + ]; + bindm = [ + "SUPER, mouse:272, movewindow" + "SUPER, mouse:273, resizewindow" + ]; + env = [ + "GDK_BACKEND,wayland,x11" + "QT_QPA_PLATFORM,wayland;xcb" + "SDL_VIDEODRIVER,wayland" + "CLUTTER_BACKEND,wayland" + "XDG_CURRENT_DESKTOP,Hyprland" + "XDG_SESSION_TYPE,wayland" + "XDG_SESSION_DESKTOP,Hyprland" + "QT_AUTO_SCREEN_SCALE_FACTOR,1" + "QT_WAYLAND_DISABLE_WINDOWDECORATION,1" + "NIXOS_OZONE_WL,1" + "WLR_NO_HARDWARE_CURSORS,1" + ]; + windowrule = [ + "float, title:wlogout" + "idleinhibit always, vrmonitor" + "idleinhibit focus, steam_app" + ]; + workspace = [ + "11, default:true" + ]; + general = { + gaps_out = 10; + resize_on_border = true; + layout = "master"; + # "col.active_border" = "rgb(FFFF00) rgb(00FFFF) rgb(FF00FF)"; + border_size = lib.mkDefault 5; + }; + master = { + mfact = 0.7; + new_on_top = true; + }; + misc = { + vrr = 2; + focus_on_activate = true; + }; }; + # https://wiki.hyprland.org/Configuring/Variables/ + extraConfig = '' + submap = resize + binde = ,right,resizeactive,10 0 + binde = ,left,resizeactive,-10 0 + binde = ,up,resizeactive,0 -10 + binde = ,down,resizeactive,0 10 + binde = ,k,resizeactive,0 -10 + binde = ,j,resizeactive,0 10 + binde = ,l,splitratio,0.05 + binde = ,h,splitratio,-0.05 + binde = SHIFT,l,splitratio,0.3 + binde = SHIFT,h,splitratio,-0.3 - services.mako = { - enable = true; - }; + bind = , escape, submap,reset + bind = , enter, submap,reset + bind = SUPER, R, submap,reset + bind = CONTROL, C, submap,reset + submap = reset + ''; + }; - programs.waybar.settings.mainBar.modules-left = - ["hyprland/workspaces" "hyprland/window"]; + services.mako = { + enable = true; + }; - - } - ]; - } + programs.waybar.settings.mainBar.modules-left = ["hyprland/workspaces" "hyprland/window"]; + } + ]; +} diff --git a/lib/programs/sway.nix b/lib/programs/sway.nix index 2ae608e..57cfac7 100644 --- a/lib/programs/sway.nix +++ b/lib/programs/sway.nix @@ -4,103 +4,103 @@ config, ... }: { - services.greetd = { - enable = true; - settings = rec { - sway_session = { - command = "sway"; - user = user; - }; - default_session = sway_session; + services.greetd = { + enable = true; + settings = rec { + sway_session = { + command = "sway"; + user = user; }; + default_session = sway_session; }; + }; - home-manager.users.${user}.imports = [ - ( import ./swaylock.nix ) - { - xdg.portal = { - enable = true; - configPackages = [ pkgs.sway ]; - extraPortals = [ pkgs.xdg-desktop-portal-sway pkgs.xdg-desktop-portal-gtk ]; - }; + home-manager.users.${user}.imports = [ + (import ./swaylock.nix) + { + xdg.portal = { + enable = true; + configPackages = [pkgs.sway]; + extraPortals = [pkgs.xdg-desktop-portal-sway pkgs.xdg-desktop-portal-gtk]; + }; - wayland.windowManager.sway = { - enable = true; - }; + wayland.windowManager.sway = { + enable = true; + }; - services.swayidle = { - enable = true; - systemdTarget = "graphical-session.target"; - events = [ - { - event = "before-sleep"; - command = "${pkgs.swaylock-effects}/bin/swaylock"; - } - { - event = "lock"; - command = "${pkgs.swaylock-effects}/bin/swaylock"; - } - ]; - timeouts = [ - { - timeout = 300; - command = "${pkgs.swaylock-effects}/bin/swaylock -f"; - } - { - timeout = 600; - command = "systemctl suspend"; - } - ]; - }; + services.swayidle = { + enable = true; + systemdTarget = "graphical-session.target"; + events = [ + { + event = "before-sleep"; + command = "${pkgs.swaylock-effects}/bin/swaylock"; + } + { + event = "lock"; + command = "${pkgs.swaylock-effects}/bin/swaylock"; + } + ]; + timeouts = [ + { + timeout = 300; + command = "${pkgs.swaylock-effects}/bin/swaylock -f"; + } + { + timeout = 600; + command = "systemctl suspend"; + } + ]; + }; - services.mako.enable = true; + services.mako.enable = true; - programs.waybar = { - enable = true; - settings = { - mainBar = { - layer = "top"; - position = "top"; - height = 36; - modules-left = ["sway/workspaces" "sway/window"]; - modules-right = ["mpris" "pulseaudio" "clock" "tray" "battery"]; - clock = { - format = "πŸ“… {:%a %b-%d %I:%M %p}"; + programs.waybar = { + enable = true; + settings = { + mainBar = { + layer = "top"; + position = "top"; + height = 36; + modules-left = ["sway/workspaces" "sway/window"]; + modules-right = ["mpris" "pulseaudio" "clock" "tray" "battery"]; + clock = { + format = "πŸ“… {:%a %b-%d %I:%M %p}"; + }; + pulseaudio = { + format-muted = "πŸ”‡ {volume}"; + format = "{icon} {volume}"; + format-icons.default = ["πŸ”ˆ" "πŸ”‰" "πŸ”Š"]; + on-click = "${pkgs.pavucontrol}/bin/pavucontrol"; + }; + mpris = { + format = "{player_icon} {artist} - {title}"; + format-paused = "{status_icon} {player_icon} {artist} - {title}"; + player-icons = { + default = "▢️"; + mpd = "🎡"; + kdeconnect = "☎️"; }; - pulseaudio = { - format-muted = "πŸ”‡ {volume}"; - format = "{icon} {volume}"; - format-icons.default = ["πŸ”ˆ" "πŸ”‰" "πŸ”Š"]; - on-click = "${pkgs.pavucontrol}/bin/pavucontrol"; + status-icons = { + paused = "⏸️"; }; - mpris = { - format = "{player_icon} {artist} - {title}"; - format-paused = "{status_icon} {player_icon} {artist} - {title}"; - player-icons = { - default = "▢️"; - mpd = "🎡"; - kdeconnect = "☎️"; - }; - status-icons = { - paused = "⏸️"; - }; - }; - battery = { - format = "{icon} {capacity}%"; - format-icons = ["🀏" "πŸͺ«" "πŸ”‹" "πŸ”‹"]; - format-charging = "πŸ”Œ {capacity}%"; - states = { - warning = 30; - critical = 15; - }; + }; + battery = { + format = "{icon} {capacity}%"; + format-icons = ["🀏" "πŸͺ«" "πŸ”‹" "πŸ”‹"]; + format-charging = "πŸ”Œ {capacity}%"; + states = { + warning = 30; + critical = 15; }; }; }; - systemd = { - enable = true; - target = "graphical-session.target"; - }; }; - } - ]; + systemd = { + enable = true; + target = "graphical-session.target"; + }; + }; + } + ]; } diff --git a/lib/programs/swayidle.nix b/lib/programs/swayidle.nix index f5851f1..ee99499 100644 --- a/lib/programs/swayidle.nix +++ b/lib/programs/swayidle.nix @@ -1,28 +1,26 @@ -{pkgs,...}: { - - services.swayidle = { - enable = true; - systemdTarget = "graphical-session.target"; - events = [ - { - event = "before-sleep"; - command = "${pkgs.swaylock-effects}/bin/swaylock"; - } - { - event = "lock"; - command = "${pkgs.swaylock-effects}/bin/swaylock"; - } - ]; - timeouts = [ - { - timeout = 300; - command = "${pkgs.swaylock-effects}/bin/swaylock -f"; - } - { - timeout = 600; - command = "systemctl suspend"; - } - ]; - }; - +{pkgs, ...}: { + services.swayidle = { + enable = true; + systemdTarget = "graphical-session.target"; + events = [ + { + event = "before-sleep"; + command = "${pkgs.swaylock-effects}/bin/swaylock"; + } + { + event = "lock"; + command = "${pkgs.swaylock-effects}/bin/swaylock"; + } + ]; + timeouts = [ + { + timeout = 300; + command = "${pkgs.swaylock-effects}/bin/swaylock -f"; + } + { + timeout = 600; + command = "systemctl suspend"; + } + ]; + }; } diff --git a/lib/programs/swaylock.nix b/lib/programs/swaylock.nix index ed5254a..8382b46 100644 --- a/lib/programs/swaylock.nix +++ b/lib/programs/swaylock.nix @@ -1,14 +1,13 @@ -{pkgs,...}: { - - programs.swaylock = { - enable = true; - package = pkgs.swaylock-effects; - settings = { - clock = true; - screenshots = true; - effect-scale = 0.5; - effect-blur = "10x10"; - grace = 5; - }; - }; +{pkgs, ...}: { + programs.swaylock = { + enable = true; + package = pkgs.swaylock-effects; + settings = { + clock = true; + screenshots = true; + effect-scale = 0.5; + effect-blur = "10x10"; + grace = 5; + }; + }; } diff --git a/lib/programs/waybar.nix b/lib/programs/waybar.nix index c51344a..71946f0 100644 --- a/lib/programs/waybar.nix +++ b/lib/programs/waybar.nix @@ -1,50 +1,47 @@ -{pkgs,...}: { - programs.waybar = { - enable = true; - settings = { - mainBar = { - layer = "top"; - position = "top"; - height = 36; - modules-right = ["mpris" "pulseaudio" "clock" "tray" "battery"]; - clock = { - format = "πŸ“… {:%a %b-%d %I:%M %p}"; - }; - pulseaudio = { - format-muted = "πŸ”‡ {volume}"; - format = "{icon} {volume}"; - format-icons.default = ["πŸ”ˆ" "πŸ”‰" "πŸ”Š"]; - on-click = "${pkgs.pavucontrol}/bin/pavucontrol"; - }; - mpris = { - format = "{player_icon} {artist} - {title}"; - format-paused = "{status_icon} {player_icon} {artist} - {title}"; - player-icons = { - default = "▢️"; - mpd = "🎡"; - kdeconnect = "☎️"; - }; - status-icons = { - paused = "⏸️"; - }; - }; - battery = { - format = "{icon} {capacity}%"; - format-icons = ["🀏" "πŸͺ«" "πŸ”‹" "πŸ”‹"]; - format-charging = "πŸ”Œ {capacity}%"; - states = { - warning = 30; - critical = 15; - }; - }; - }; +{pkgs, ...}: { + programs.waybar = { + enable = true; + settings = { + mainBar = { + layer = "top"; + position = "top"; + height = 36; + modules-right = ["mpris" "pulseaudio" "clock" "tray" "battery"]; + clock = { + format = "πŸ“… {:%a %b-%d %I:%M %p}"; + }; + pulseaudio = { + format-muted = "πŸ”‡ {volume}"; + format = "{icon} {volume}"; + format-icons.default = ["πŸ”ˆ" "πŸ”‰" "πŸ”Š"]; + on-click = "${pkgs.pavucontrol}/bin/pavucontrol"; + }; + mpris = { + format = "{player_icon} {artist} - {title}"; + format-paused = "{status_icon} {player_icon} {artist} - {title}"; + player-icons = { + default = "▢️"; + mpd = "🎡"; + kdeconnect = "☎️"; }; - systemd = { - enable = true; - target = "graphical-session.target"; + status-icons = { + paused = "⏸️"; }; }; - - - + battery = { + format = "{icon} {capacity}%"; + format-icons = ["🀏" "πŸͺ«" "πŸ”‹" "πŸ”‹"]; + format-charging = "πŸ”Œ {capacity}%"; + states = { + warning = 30; + critical = 15; + }; + }; + }; + }; + systemd = { + enable = true; + target = "graphical-session.target"; + }; + }; }