From 01589b30ad1043d424674bf61685d36d19c80e61 Mon Sep 17 00:00:00 2001 From: William Date: Wed, 5 Feb 2025 00:24:19 -0300 Subject: [PATCH] I'll com back to this every once in a while. I need a vertical panel --- flake.lock | 86 +------------ flake.nix | 10 +- hosts/desktops/common/home-manager.nix | 6 +- hosts/desktops/common/packages.nix | 2 +- users/desktops/common/default.nix | 1 + users/desktops/common/hyprland.nix | 167 +++++++++++++++++++++++++ users/desktops/common/programs.nix | 165 ------------------------ 7 files changed, 179 insertions(+), 258 deletions(-) create mode 100644 users/desktops/common/hyprland.nix diff --git a/flake.lock b/flake.lock index 598fb4c..3f2ffa9 100644 --- a/flake.lock +++ b/flake.lock @@ -23,50 +23,6 @@ "type": "github" } }, - "ags": { - "inputs": { - "astal": "astal", - "nixpkgs": [ - "hyprpanel", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1736090999, - "narHash": "sha256-B5CJuHqfJrzPa7tObK0H9669/EClSHpa/P7B9EuvElU=", - "owner": "aylur", - "repo": "ags", - "rev": "5527c3c07d92c11e04e7fd99d58429493dba7e3c", - "type": "github" - }, - "original": { - "owner": "aylur", - "repo": "ags", - "type": "github" - } - }, - "astal": { - "inputs": { - "nixpkgs": [ - "hyprpanel", - "ags", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1735172721, - "narHash": "sha256-rtEAwGsHSppnkR3Qg3eRJ6Xh/F84IY9CrBBLzYabalY=", - "owner": "aylur", - "repo": "astal", - "rev": "6c84b64efc736e039a8a10774a4a1bf772c37aa2", - "type": "github" - }, - "original": { - "owner": "aylur", - "repo": "astal", - "type": "github" - } - }, "base16": { "inputs": { "fromYaml": "fromYaml" @@ -462,27 +418,6 @@ "type": "github" } }, - "hyprpanel": { - "inputs": { - "ags": "ags", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1737793455, - "narHash": "sha256-sVy0QU4fpZsUWj5B8t6jUNZHzVLC22+HYqcFG9pKPik=", - "owner": "Jas-SinghFSU", - "repo": "HyprPanel", - "rev": "74065af3d2aa576e8b183d720033c3eece3deb70", - "type": "github" - }, - "original": { - "owner": "Jas-SinghFSU", - "repo": "HyprPanel", - "type": "github" - } - }, "impermanence": { "locked": { "lastModified": 1737831083, @@ -624,22 +559,6 @@ "type": "github" } }, - "nixpkgs_2": { - "locked": { - "lastModified": 1736798957, - "narHash": "sha256-qwpCtZhSsSNQtK4xYGzMiyEDhkNzOCz/Vfu4oL2ETsQ=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "9abb87b552b7f55ac8916b6fc9e5cb486656a2f3", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "root": { "inputs": { "agenix": "agenix", @@ -647,7 +566,6 @@ "home-manager": "home-manager_2", "home-manager-stable": "home-manager-stable", "homepage": "homepage", - "hyprpanel": "hyprpanel", "impermanence": "impermanence", "nix-flatpak": "nix-flatpak", "nix-index-db": "nix-index-db", @@ -670,7 +588,9 @@ "git-hooks": "git-hooks", "gnome-shell": "gnome-shell", "home-manager": "home-manager_3", - "nixpkgs": "nixpkgs_2", + "nixpkgs": [ + "nixpkgs-stable" + ], "systems": "systems_4", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", diff --git a/flake.nix b/flake.nix index 1d1e861..56bb8cb 100644 --- a/flake.nix +++ b/flake.nix @@ -48,11 +48,9 @@ inputs.nixpkgs.follows = "nixpkgs-stable"; }; - stylix.url = "github:danth/stylix"; - - hyprpanel = { - url = "github:Jas-SinghFSU/HyprPanel"; - inputs.nixpkgs.follows = "nixpkgs"; + stylix = { + url = "github:danth/stylix"; + inputs.nixpkgs.follows = "nixpkgs-stable"; }; }; @@ -72,7 +70,6 @@ nix-minecraft, nixos-generators, stylix, - hyprpanel, ... }: { @@ -94,7 +91,6 @@ nixpkgs.overlays = [ agenix.overlays.default self.overlays.custom - hyprpanel.overlay ]; } ]; diff --git a/hosts/desktops/common/home-manager.nix b/hosts/desktops/common/home-manager.nix index f605806..89eceae 100644 --- a/hosts/desktops/common/home-manager.nix +++ b/hosts/desktops/common/home-manager.nix @@ -1,4 +1,4 @@ -{ ... }: +{ inputs, ... }: { home-manager = { @@ -6,7 +6,9 @@ useUserPackages = true; backupFileExtension = "bkp"; users.user = { - imports = [ ../../../users/desktops/user.nix ]; + imports = [ + ../../../users/desktops/user.nix + ]; }; }; } diff --git a/hosts/desktops/common/packages.nix b/hosts/desktops/common/packages.nix index 0a59658..6fb9738 100644 --- a/hosts/desktops/common/packages.nix +++ b/hosts/desktops/common/packages.nix @@ -73,7 +73,6 @@ in steam-run tor-browser ungoogled-chromium - ulauncher unrar ventoy vesktop @@ -122,6 +121,7 @@ in corefonts noto-fonts-cjk-sans roboto + nerd-fonts.jetbrains-mono ]; }; diff --git a/users/desktops/common/default.nix b/users/desktops/common/default.nix index 5ef9e0a..eb72910 100644 --- a/users/desktops/common/default.nix +++ b/users/desktops/common/default.nix @@ -3,5 +3,6 @@ { imports = [ ./programs.nix + ./hyprland.nix ]; } diff --git a/users/desktops/common/hyprland.nix b/users/desktops/common/hyprland.nix new file mode 100644 index 0000000..deecc3e --- /dev/null +++ b/users/desktops/common/hyprland.nix @@ -0,0 +1,167 @@ +{ pkgs, ... }: + +{ + wayland.windowManager.hyprland = { + enable = true; + plugins = with pkgs.hyprlandPlugins; [ hyprscroller ]; + extraConfig = '' + ################ + ### MONITORS ### + ################ + monitor=,preferred,auto,auto + + ################# + ### AUTOSTART ### + ################# + exec-once = ${pkgs.ulauncher}/bin/ulauncher --hide-window + exec-once = ${pkgs.swaynotificationcenter}/bin/swaync + exec-once = ${pkgs.ironbar}/bin/ironbar + env = XCURSOR_SIZE,24 + env = HYPRCURSOR_SIZE,24 + + ##################### + ### LOOK AND FEEL ### + ##################### + general { + gaps_in = 5 + gaps_out = 20 + border_size = 2 + resize_on_border = true + allow_tearing = false + layout = scroller + } + plugin { + scroller { + column_default_width = onethird + focuswrap = false + column_widths = onethird onehalf twothirds + center_row_if_space_available = true + } + } + decoration { + rounding = 10 + rounding_power = 2 + dim_inactive = true + dim_strength = 0.3 + shadow { + enabled = true + range = 4 + render_power = 3 + } + blur { + enabled = true + size = 8 + passes = 1 + vibrancy = 0.1696 + } + } + animations { + enabled = yes, please :) + bezier = easeOutQuint,0.23,1,0.32,1 + bezier = easeInOutCubic,0.65,0.05,0.36,1 + bezier = linear,0,0,1,1 + bezier = almostLinear,0.5,0.5,0.75,1.0 + bezier = quick,0.15,0,0.1,1 + animation = global, 1, 10, default + animation = border, 1, 5.39, easeOutQuint + animation = windows, 1, 4.79, easeOutQuint + animation = windowsIn, 1, 4.1, easeOutQuint, popin 87% + animation = windowsOut, 1, 1.49, linear, popin 87% + animation = fadeIn, 1, 1.73, almostLinear + animation = fadeOut, 1, 1.46, almostLinear + animation = fade, 1, 3.03, quick + animation = layers, 1, 3.81, easeOutQuint + animation = layersIn, 1, 4, easeOutQuint, fade + animation = layersOut, 1, 1.5, linear, fade + animation = fadeLayersIn, 1, 1.79, almostLinear + animation = fadeLayersOut, 1, 1.39, almostLinear + animation = workspaces, 1, 1.94, almostLinear, fade + animation = workspacesIn, 1, 1.21, almostLinear, fade + animation = workspacesOut, 1, 1.94, almostLinear, fade + } + misc { + force_default_wallpaper = 0 + disable_hyprland_logo = true + } + + ############# + ### INPUT ### + ############# + input { + kb_layout = us + kb_variant = altgr-intl + follow_mouse = 1 + sensitivity = 0 + accel_profile = flat + natural_scroll = true + touchpad { + natural_scroll = true + clickfinger_behavior = true + } + } + + ################### + ### KEYBINDINGS ### + ################### + $mainMod = SUPER + $terminal = ghostty + $menu = ${pkgs.ulauncher}/bin/ulauncher-toggle + # APP SHORTCUTS + bind = ALT, SPACE, exec, $menu + bind = $mainMod, RETURN, exec, $terminal + # SESSION MANAGEMENT + bind = CTRL ALT, DELETE, exit, + bind = $mainMod CTRL, mouse_down, workspace, e+1 + bind = $mainMod CTRL, mouse_up, workspace, e-1 + bind = $mainMod CTRL, j, workspace, e+1 + bind = $mainMod CTRL, k, workspace, e-1 + bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ + bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- + bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle + bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle + bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+ + bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%- + bindl = , XF86AudioNext, exec, ${pkgs.playerctl}/bin/playerctl next + bindl = , XF86AudioPause, exec, ${pkgs.playerctl}/bin/playerctl play-pause + bindl = , XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl play-pause + bindl = , XF86AudioPrev, exec, ${pkgs.playerctl}/bin/playerctl previous + # WINDOW MANAGEMENT + bind = ALT, F4, killactive, + bind = $mainMod, space, togglefloating, + bind = $mainMod, f, fullscreen + bindm = $mainMod, mouse:272, movewindow + bindm = $mainMod, mouse:273, resizewindow + bind = SUPER, h, movefocus, l + bind = SUPER, l, movefocus, r + bind = SUPER, k, movefocus, u + bind = SUPER, j, movefocus, d + bind = $mainMod CTRL, h, movewindow, l + bind = $mainMod CTRL, l, movewindow, r + bind = $mainMod CTRL, k, movewindow, u + bind = $mainMod CTRL, j, movewindow, d + bind = $mainMod, bracketleft, scroller:setmode, row + bind = $mainMod, bracketright, scroller:setmode, col + bind = $mainMod, slash, scroller:jump, + bind = $mainMod, r, scroller:cyclewidth, next + bind = $mainMod CTRL, r, scroller:cyclewidth, prev + bind = $mainMod, p, scroller:pin, + bind = $mainMod, c, scroller:alignwindow, center + + #################### + ### WINDOW RULES ### + #################### + windowrulev2 = suppressevent maximize, class:.* + windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 + # ulauncher + windowrule = float, ulauncher + windowrule = pin, ulauncher + windowrule = noborder, ulauncher + windowrule = noshadow, ulauncher + windowrule = nomaxsize, ulauncher + windowrule = noblur, ulauncher + windowrulev2 = animation slide top, class:^(ulauncher)$ + # firefox + windowrulev2 = plugin:scroller:columnwidth onehalf, class:(firefox) + ''; + }; +} diff --git a/users/desktops/common/programs.nix b/users/desktops/common/programs.nix index 80ea317..f1e4665 100644 --- a/users/desktops/common/programs.nix +++ b/users/desktops/common/programs.nix @@ -25,169 +25,4 @@ }; }; }; - - wayland.windowManager.hyprland = { - enable = true; - plugins = with pkgs.hyprlandPlugins; [ hyprscroller ]; - extraConfig = '' - ################ - ### MONITORS ### - ################ - monitor=,preferred,auto,auto - - ################# - ### AUTOSTART ### - ################# - exec-once = ulauncher --hide-window - exec-once = ${pkgs.hyprpanel}/bin/hyprpanel - env = XCURSOR_SIZE,24 - env = HYPRCURSOR_SIZE,24 - - ##################### - ### LOOK AND FEEL ### - ##################### - general { - gaps_in = 5 - gaps_out = 20 - border_size = 2 - col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg - col.inactive_border = rgba(595959aa) - resize_on_border = true - allow_tearing = false - layout = scroller - } - plugin { - scroller { - column_default_width = onethird - focuswrap = false - column_widths = onethird onehalf twothirds - center_row_if_space_available = true - } - } - decoration { - rounding = 10 - rounding_power = 2 - dim_inactive = true - dim_strength = 0.3 - shadow { - enabled = true - range = 4 - render_power = 3 - } - blur { - enabled = true - size = 8 - passes = 1 - vibrancy = 0.1696 - } - } - animations { - enabled = yes, please :) - bezier = easeOutQuint,0.23,1,0.32,1 - bezier = easeInOutCubic,0.65,0.05,0.36,1 - bezier = linear,0,0,1,1 - bezier = almostLinear,0.5,0.5,0.75,1.0 - bezier = quick,0.15,0,0.1,1 - animation = global, 1, 10, default - animation = border, 1, 5.39, easeOutQuint - animation = windows, 1, 4.79, easeOutQuint - animation = windowsIn, 1, 4.1, easeOutQuint, popin 87% - animation = windowsOut, 1, 1.49, linear, popin 87% - animation = fadeIn, 1, 1.73, almostLinear - animation = fadeOut, 1, 1.46, almostLinear - animation = fade, 1, 3.03, quick - animation = layers, 1, 3.81, easeOutQuint - animation = layersIn, 1, 4, easeOutQuint, fade - animation = layersOut, 1, 1.5, linear, fade - animation = fadeLayersIn, 1, 1.79, almostLinear - animation = fadeLayersOut, 1, 1.39, almostLinear - animation = workspaces, 1, 1.94, almostLinear, fade - animation = workspacesIn, 1, 1.21, almostLinear, fade - animation = workspacesOut, 1, 1.94, almostLinear, fade - } - misc { - force_default_wallpaper = 0 - disable_hyprland_logo = true - } - - ############# - ### INPUT ### - ############# - input { - kb_layout = us - kb_variant = altgr-intl - follow_mouse = 1 - sensitivity = 0 - accel_profile = flat - natural_scroll = true - touchpad { - natural_scroll = true - clickfinger_behavior = true - } - } - - ################### - ### KEYBINDINGS ### - ################### - $mainMod = SUPER - $terminal = ghostty - $menu = ulauncher-toggle - # APP SHORTCUTS - bind = ALT, SPACE, exec, $menu - bind = $mainMod, RETURN, exec, $terminal - # SESSION MANAGEMENT - bind = CTRL ALT, DELETE, exit, - bind = $mainMod CTRL, mouse_down, workspace, e+1 - bind = $mainMod CTRL, mouse_up, workspace, e-1 - bind = $mainMod CTRL, j, workspace, e+1 - bind = $mainMod CTRL, k, workspace, e-1 - bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ - bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- - bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle - bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle - bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+ - bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%- - bindl = , XF86AudioNext, exec, ${pkgs.playerctl}/bin/playerctl next - bindl = , XF86AudioPause, exec, ${pkgs.playerctl}/bin/playerctl play-pause - bindl = , XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl play-pause - bindl = , XF86AudioPrev, exec, ${pkgs.playerctl}/bin/playerctl previous - # WINDOW MANAGEMENT - bind = ALT, F4, killactive, - bind = $mainMod, space, togglefloating, - bind = $mainMod, f, fullscreen - bindm = $mainMod, mouse:272, movewindow - bindm = $mainMod, mouse:273, resizewindow - bind = SUPER, h, movefocus, l - bind = SUPER, l, movefocus, r - bind = SUPER, k, movefocus, u - bind = SUPER, j, movefocus, d - bind = $mainMod CTRL, h, movewindow, l - bind = $mainMod CTRL, l, movewindow, r - bind = $mainMod CTRL, k, movewindow, u - bind = $mainMod CTRL, j, movewindow, d - bind = $mainMod, bracketleft, scroller:setmode, row - bind = $mainMod, bracketright, scroller:setmode, col - bind = $mainMod, slash, scroller:jump, - bind = $mainMod, r, scroller:cyclewidth, next - bind = $mainMod CTRL, r, scroller:cyclewidth, prev - bind = $mainMod, p, scroller:pin, - bind = $mainMod, c, scroller:alignwindow, center - - #################### - ### WINDOW RULES ### - #################### - windowrulev2 = suppressevent maximize, class:.* - windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 - # ulauncher - windowrule = float, ulauncher - windowrule = pin, ulancher - windowrule = noborder, ulauncher - windowrule = noshadow, ulauncher - windowrule = nomaxsize, ulauncher - windowrule = noblur, ulauncher - windowrulev2 = animation slide top, class:^(ulauncher)$ - # firefox - windowrulev2 = plugin:scroller:columnwidth onehalf, class:(firefox) - ''; - }; }