diff --git a/flake.nix b/flake.nix index 45aa2b9..7a0646d 100644 --- a/flake.nix +++ b/flake.nix @@ -3,13 +3,11 @@ nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; ags.url = "github:Aylur/ags"; stylix.url = "github:danth/stylix"; - hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; - - firefox-addons = { - url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + firefox-addons = { + url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; + inputs.nixpkgs.follows = "nixpkgs"; + }; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; diff --git a/modules/hypr/hyprland/default.nix b/modules/hypr/hyprland/default.nix index c14fffa..1789e98 100644 --- a/modules/hypr/hyprland/default.nix +++ b/modules/hypr/hyprland/default.nix @@ -1,202 +1,196 @@ { pkgs, - inputs, ... }: { - home-manager.users.joy.home.packages = with pkgs; [ - rofi-wayland - pwvucontrol - swww - wl-clipboard - cliphist - grim - slurp - hyprpicker - swappy - playerctl - ]; + home-manager.users.joy = { + home.packages = with pkgs; [ + rofi-wayland + pwvucontrol + swww + wl-clipboard + cliphist + grim + slurp + hyprpicker + swappy + playerctl + ]; - programs.hyprland = { - enable = true; - package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; - portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; - }; + programs.hyprland = { + enable = true; + }; - nix.settings = { - substituters = ["https://hyprland.cachix.org"]; - trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="]; - }; + services.cliphist.enable = true; - home-manager.users.joy.services.cliphist.enable = true; + wayland.windowManager.hyprland = { + enable = true; + settings = { + "$mod" = "SUPER"; + "$sciPath" = "~/nix/modules/hypr/hyprland/scripts"; - home-manager.users.joy.wayland.windowManager.hyprland = { - enable = true; - settings = { - "$mod" = "SUPER"; - "$sciPath" = "~/nix/modules/hypr/hyprland/scripts"; + cursor = { + inactive_timeout = "3"; + }; - cursor = { - inactive_timeout = "3"; - }; + env = [ + "HYPRCURSOR_THEME = Bibata-Modern-Ice" + "HYPRCURSOR_SIZE = 24" + "NIXOS_OZONE_WL = 1" + ]; - env = [ - "HYPRCURSOR_THEME = Bibata-Modern-Ice" - "HYPRCURSOR_SIZE = 24" - "NIXOS_OZONE_WL = 1" - ]; + xwayland = { + force_zero_scaling = true; + }; - xwayland = { - force_zero_scaling = true; - }; + monitor = [ + "DP-1,2560x1440@165.00Hz,auto,1,bitdepth,10" + "eDP-1,prefrered,auto,1" + "HDMI-A-1,prefrered,auto,1,mirror,eDP-1" + ]; - monitor = [ - "DP-1,2560x1440@165.00Hz,auto,1,bitdepth,10" - "eDP-1,prefrered,auto,1" - "HDMI-A-1,prefrered,auto,1,mirror,eDP-1" - ]; + exec-once = [ + "ags" + ]; - exec-once = [ - "ags" - ]; + windowrule = [ + "float,title:^(Pipewire)(.*)$" + "float,title:^(Disks)(.*)$" + "float,title:^(Calculator)(.*)$" + "float,title:^(Bluetooth)(.*)$" + "float,title:^(Clocks)(.*)$" + "float,title:^(Network Connections)(.*)$" + "opacity 0.9,^(Alacritty)(.*)$" + ]; - windowrule = [ - "float,title:^(Pipewire)(.*)$" - "float,title:^(Disks)(.*)$" - "float,title:^(Calculator)(.*)$" - "float,title:^(Bluetooth)(.*)$" - "float,title:^(Clocks)(.*)$" - "float,title:^(Network Connections)(.*)$" - "opacity 0.9,^(Alacritty)(.*)$" - ]; + gestures = { + workspace_swipe = true; + workspace_swipe_forever = true; + workspace_swipe_distance = 200; + }; - gestures = { - workspace_swipe = true; - workspace_swipe_forever = true; - workspace_swipe_distance = 200; - }; + general = { + gaps_in = 5; + gaps_out = 10; + border_size = 4; + allow_tearing = false; + layout = "master"; + }; - bind = [ - # launch Apps - "$mod,TAB, exec, alacritty" - "$mod, E, exec, nemo" - "$mod, S, exec, firefox" - "$mod, X, exec, keepassxc" - "$mod, M, exec, mw -Y && alacritty -e neomutt" - "$mod, N, exec, alacritty -e newsboat" - "$mod, A, exec, rofi -show drun" - "$mod, F, exec, freetube" - "$mod, C, exec, hyprpicker -a" - "$mod+Shift, W, exec, sh $sciPath/vm.sh" - "$mod+Shift, Z, exec, grim - | swappy -f -" - "$mod, Z, exec, sh $sciPath/screen.sh" - "$mod, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy" - "$mod, O, exec, sh $sciPath/mpv.sh" + misc = { + disable_hyprland_logo = true; + disable_splash_rendering = true; + }; - # controles - "$mod, Q, killactive" - "$mod, W, togglefloating" - "$mod, R, togglesplit" - "$mod+shift, S, exec, systemctl suspend" - "$mod+shift, M, exit, hyprland" - "$mod, G, exec, sh $sciPath/gamemode.sh" - "$mod+shift, B, exec, sh $sciPath/ags.sh" - "$mod, up, exec, sh $sciPath/volume.sh -i" - "$mod, down, exec, sh $sciPath/volume.sh -d" - "$mod, P, exec, hyprctl dispatch togglefloating && hyprctl dispatch pin" + decoration = { + rounding = 5; + }; - # cmus - "$mod, D, exec, sh $sciPath/cmus.sh" - "$mod, space, exec, playerctl play-pause" - "$mod, comma, exec, playerctl previous" - "$mod, period, exec, playerctl next" - "$mod, equal, exec, cmus-remote -v +10%" - "$mod, minus, exec, cmus-remote -v -10%" + input = { + kb_layout = "us,de"; + kb_variant = ",qwerty"; + kb_options = "grp:alt_shift_toggle,caps:swapescape"; + }; - # Move focus - "$mod, Return, fullscreen" - "$mod, H, movefocus, l" - "$mod, L, movefocus, r" - "$mod, K, movefocus, u" - "$mod, J, movefocus, d" + device = { + name = "at-translated-set-2-keyboard"; + repeat_rate = "50"; - # Window resizing X Y - "CTRL+SHIFT, H, resizeactive, -60 0" - "CTRL+SHIFT, L, resizeactive, 60 0" - "CTRL+SHIFT, K, resizeactive, 0 -60" - "CTRL+SHIFT, J, resizeactive, 0 60" + bind = [ + # launch Apps + "$mod,TAB, exec, alacritty" + "$mod, E, exec, nemo" + "$mod, S, exec, firefox" + "$mod, X, exec, keepassxc" + "$mod, M, exec, mw -Y && alacritty -e neomutt" + "$mod, N, exec, alacritty -e newsboat" + "$mod, A, exec, rofi -show drun" + "$mod, F, exec, freetube" + "$mod, C, exec, hyprpicker -a" + "$mod+Shift, W, exec, sh $sciPath/vm.sh" + "$mod+Shift, Z, exec, grim - | swappy -f -" + "$mod, Z, exec, sh $sciPath/screen.sh" + "$mod, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy" + "$mod, O, exec, sh $sciPath/mpv.sh" - # Moving windows - "$mod SHIFT, H, swapwindow, l" - "$mod SHIFT, L, swapwindow, r" - "$mod SHIFT, K, swapwindow, u" - "$mod SHIFT, J, swapwindow, d" + # controles + "$mod, Q, killactive" + "$mod, W, togglefloating" + "$mod, R, togglesplit" + "$mod+shift, S, exec, systemctl suspend" + "$mod+shift, M, exit, hyprland" + "$mod, G, exec, sh $sciPath/gamemode.sh" + "$mod+shift, B, exec, sh $sciPath/ags.sh" + "$mod, up, exec, sh $sciPath/volume.sh -i" + "$mod, down, exec, sh $sciPath/volume.sh -d" + "$mod, P, exec, hyprctl dispatch togglefloating && hyprctl dispatch pin" - # Switch workspaces - "$mod, 1, workspace, 1" - "$mod, 2, workspace, 2" - "$mod, 3, workspace, 3" - "$mod, 4, workspace, 4" - "$mod, 5, workspace, 5" - "$mod, 6, workspace, 6" - "$mod, 7, workspace, 7" - "$mod, 8, workspace, 8" - "$mod, 9, workspace, 9" - "$mod, 0, workspace, 10" + # cmus + "$mod, D, exec, sh $sciPath/cmus.sh" + "$mod, space, exec, playerctl play-pause" + "$mod, comma, exec, playerctl previous" + "$mod, period, exec, playerctl next" + "$mod, equal, exec, cmus-remote -v +10%" + "$mod, minus, exec, cmus-remote -v -10%" - # Move active window to a workspace - "$mod+Shift, 1, movetoworkspace, 1" - "$mod+Shift, 2, movetoworkspace, 2" - "$mod+Shift, 3, movetoworkspace, 3" - "$mod+Shift, 4, movetoworkspace, 4" - "$mod+Shift, 5, movetoworkspace, 5" - "$mod+Shift, 6, movetoworkspace, 6" - "$mod+Shift, 7, movetoworkspace, 7" - "$mod+Shift, 8, movetoworkspace, 8" - "$mod+Shift, 9, movetoworkspace, 9" - "$mod+Shift, 0, movetoworkspace, 10" - ]; + # Move focus + "$mod, Return, fullscreen" + "$mod, H, movefocus, l" + "$mod, L, movefocus, r" + "$mod, K, movefocus, u" + "$mod, J, movefocus, d" - bindm = [ - "$mod, mouse:272, movewindow" - "$mod, mouse:273, resizewindow" - ]; + # Window resizing X Y + "CTRL+SHIFT, H, resizeactive, -60 0" + "CTRL+SHIFT, L, resizeactive, 60 0" + "CTRL+SHIFT, K, resizeactive, 0 -60" + "CTRL+SHIFT, J, resizeactive, 0 60" - bindl = [ - ", XF86MonBrightnessUp, exec, brightnessctl set +10%" - ", XF86MonBrightnessDown, exec, brightnessctl set 10%-" - ", XF86AudioRaiseVolume, exec, sh $sciPath/volume.sh -i" - ", XF86AudioLowerVolume, exec, sh $sciPath/volume.sh -d" - ", XF86AudioMute, exec, sh $sciPath/volume.sh -m" - ", XF86AudioMicMute, exec, sh $sciPath/volume.sh -t" - ", XF86PowerOff, exec, sh $sciPath/rick.sh" - ]; + # Moving windows + "$mod SHIFT, H, swapwindow, l" + "$mod SHIFT, L, swapwindow, r" + "$mod SHIFT, K, swapwindow, u" + "$mod SHIFT, J, swapwindow, d" - general = { - gaps_in = 5; - gaps_out = 10; - border_size = 4; - allow_tearing = false; - layout = "master"; - }; + # Switch workspaces + "$mod, 1, workspace, 1" + "$mod, 2, workspace, 2" + "$mod, 3, workspace, 3" + "$mod, 4, workspace, 4" + "$mod, 5, workspace, 5" + "$mod, 6, workspace, 6" + "$mod, 7, workspace, 7" + "$mod, 8, workspace, 8" + "$mod, 9, workspace, 9" + "$mod, 0, workspace, 10" - misc = { - disable_hyprland_logo = true; - disable_splash_rendering = true; - }; + # Move active window to a workspace + "$mod+Shift, 1, movetoworkspace, 1" + "$mod+Shift, 2, movetoworkspace, 2" + "$mod+Shift, 3, movetoworkspace, 3" + "$mod+Shift, 4, movetoworkspace, 4" + "$mod+Shift, 5, movetoworkspace, 5" + "$mod+Shift, 6, movetoworkspace, 6" + "$mod+Shift, 7, movetoworkspace, 7" + "$mod+Shift, 8, movetoworkspace, 8" + "$mod+Shift, 9, movetoworkspace, 9" + "$mod+Shift, 0, movetoworkspace, 10" + ]; - decoration = { - rounding = 5; - }; + bindm = [ + "$mod, mouse:272, movewindow" + "$mod, mouse:273, resizewindow" + ]; - input = { - kb_layout = "us,de"; - kb_variant = ",qwerty"; - kb_options = "grp:alt_shift_toggle,caps:swapescape"; - }; - - device = { - name = "at-translated-set-2-keyboard"; - repeat_rate = "50"; + bindl = [ + ", XF86MonBrightnessUp, exec, brightnessctl set +10%" + ", XF86MonBrightnessDown, exec, brightnessctl set 10%-" + ", XF86AudioRaiseVolume, exec, sh $sciPath/volume.sh -i" + ", XF86AudioLowerVolume, exec, sh $sciPath/volume.sh -d" + ", XF86AudioMute, exec, sh $sciPath/volume.sh -m" + ", XF86AudioMicMute, exec, sh $sciPath/volume.sh -t" + ", XF86PowerOff, exec, sh $sciPath/rick.sh" + ]; + }; }; }; };