From 1808004efe772c3f699ea1c8e31c9718bd655c79 Mon Sep 17 00:00:00 2001 From: m3tam3re Date: Tue, 10 Sep 2024 12:31:27 +0200 Subject: [PATCH] video5 --- home/features/desktop/default.nix | 1 + home/features/desktop/hyprland.nix | 188 +++++++++++++++++++++++++++++ home/m3tam3re/m3-kratos.nix | 29 +++++ 3 files changed, 218 insertions(+) create mode 100644 home/features/desktop/hyprland.nix diff --git a/home/features/desktop/default.nix b/home/features/desktop/default.nix index 7384eab..b50ae0a 100644 --- a/home/features/desktop/default.nix +++ b/home/features/desktop/default.nix @@ -1,5 +1,6 @@ {pkgs, ...}: { imports = [ + ./hyprland.nix ./wayland.nix ]; diff --git a/home/features/desktop/hyprland.nix b/home/features/desktop/hyprland.nix new file mode 100644 index 0000000..e9a40a3 --- /dev/null +++ b/home/features/desktop/hyprland.nix @@ -0,0 +1,188 @@ +{ + config, + lib, + ... +}: +with lib; let + cfg = config.features.desktop.hyprland; +in { + options.features.desktop.hyprland.enable = mkEnableOption "hyprland config"; + + config = mkIf cfg.enable { + wayland.windowManager.hyprland = { + enable = true; + settings = { + xwayland = { + force_zero_scaling = true; + }; + + exec-once = [ + "waybar" + "hyprpaper" + "hypridle" + "wl-paste -p -t text --watch clipman store -P --histpath=\"~/.local/share/clipman-primary.json\"" + ]; + + env = [ + "XCURSOR_SIZE,32" + "WLR_NO_HARDWARE_CURSORS,1" + "GTK_THEME,Dracula" + ]; + + input = { + kb_layout = "de,us"; + kb_variant = ""; + kb_model = ""; + kb_rules = ""; + kb_options = "ctrl:nocaps"; + follow_mouse = 1; + + touchpad = { + natural_scroll = true; + }; + + sensitivity = 0; + }; + + general = { + gaps_in = 5; + gaps_out = 5; + border_size = 1; + "col.active_border" = "rgba(9742b5ee) rgba(9742b5ee) 45deg"; + "col.inactive_border" = "rgba(595959aa)"; + layout = "dwindle"; + }; + + decoration = { + "col.shadow" = "rgba(1E202966)"; + drop_shadow = true; + shadow_range = 60; + shadow_offset = "1 2"; + shadow_render_power = 3; + shadow_scale = 0.97; + rounding = 8; + blur = { + enabled = true; + size = 3; + passes = 3; + }; + active_opacity = 0.9; + inactive_opacity = 0.5; + }; + + animations = { + enabled = true; + bezier = "myBezier, 0.05, 0.9, 0.1, 1.05"; + animation = [ + "windows, 1, 7, myBezier" + "windowsOut, 1, 7, default, popin 80%" + "border, 1, 10, default" + "borderangle, 1, 8, default" + "fade, 1, 7, default" + "workspaces, 1, 6, default" + ]; + }; + + dwindle = { + pseudotile = true; + preserve_split = true; + }; + + master = {}; + + gestures = { + workspace_swipe = false; + }; + + windowrule = [ + "float, file_progress" + "float, confirm" + "float, dialog" + "float, download" + "float, notification" + "float, error" + "float, splash" + "float, confirmreset" + "float, title:Open File" + "float, title:branchdialog" + "float, Lxappearance" + "float, Wofi" + "float, dunst" + "animation none,Wofi" + "float,viewnior" + "float,feh" + "float, pavucontrol-qt" + "float, pavucontrol" + "float, file-roller" + "fullscreen, wlogout" + "float, title:wlogout" + "fullscreen, title:wlogout" + "idleinhibit focus, mpv" + "idleinhibit fullscreen, firefox" + "float, title:^(Media viewer)$" + "float, title:^(Volume Control)$" + "float, title:^(Picture-in-Picture)$" + "size 800 600, title:^(Volume Control)$" + "move 75 44%, title:^(Volume Control)$" + ]; + + "$mainMod" = "SUPER"; + + bind = [ + "$mainMod, return, exec, kitty -e zellij-ps" + "$mainMod, t, exec, kitty -e fish -c 'neofetch; exec fish'" + "$mainMod SHIFT, e, exec, kitty -e zellij_nvim" + "$mainMod, o, exec, thunar" + "$mainMod, Escape, exec, wlogout -p layer-shell" + "$mainMod, Space, togglefloating" + "$mainMod, q, killactive" + "$mainMod, M, exit" + "$mainMod, F, fullscreen" + "$mainMod, V, togglefloating" + "$mainMod, D, exec, wofi --show drun --allow-images" + "$mainMod SHIFT, S, exec, bemoji" + "$mainMod, P, exec, wofi-pass" + "$mainMod SHIFT, P, pseudo" + "$mainMod, J, togglesplit" + "$mainMod, left, movefocus, l" + "$mainMod, right, movefocus, r" + "$mainMod, up, movefocus, u" + "$mainMod, down, movefocus, d" + "$mainMod, 1, workspace, 1" + "$mainMod, 2, workspace, 2" + "$mainMod, 3, workspace, 3" + "$mainMod, 4, workspace, 4" + "$mainMod, 5, workspace, 5" + "$mainMod, 6, workspace, 6" + "$mainMod, 7, workspace, 7" + "$mainMod, 8, workspace, 8" + "$mainMod, 9, workspace, 9" + "$mainMod, 0, workspace, 10" + "$mainMod SHIFT, 1, movetoworkspace, 1" + "$mainMod SHIFT, 2, movetoworkspace, 2" + "$mainMod SHIFT, 3, movetoworkspace, 3" + "$mainMod SHIFT, 4, movetoworkspace, 4" + "$mainMod SHIFT, 5, movetoworkspace, 5" + "$mainMod SHIFT, 6, movetoworkspace, 6" + "$mainMod SHIFT, 7, movetoworkspace, 7" + "$mainMod SHIFT, 8, movetoworkspace, 8" + "$mainMod SHIFT, 9, movetoworkspace, 9" + "$mainMod SHIFT, 0, movetoworkspace, 10" + "$mainMod, mouse_down, workspace, e+1" + "$mainMod, mouse_up, workspace, e-1" + ]; + + bindm = [ + "$mainMod, mouse:272, movewindow" + "$mainMod, mouse:273, resizewindow" + ]; + + windowrulev2 = [ + "workspace 1,class:(Emacs)" + "workspace 3,opacity 1.0, class:(brave-browser)" + "workspace 4,class:(com.obsproject.Studio)" + ]; + }; + }; + }; +} diff --git a/home/m3tam3re/m3-kratos.nix b/home/m3tam3re/m3-kratos.nix index 405cd1d..6fde27e 100644 --- a/home/m3tam3re/m3-kratos.nix +++ b/home/m3tam3re/m3-kratos.nix @@ -13,7 +13,36 @@ neofetch.enable = true; }; desktop = { + hyprland.enable = true; wayland.enable = true; }; }; + + wayland.windowManager.hyprland = { + settings = { + device = [ + { + name = "keyboard"; + kb_layout = "us"; + } + { + name = "mouse"; + sensitivity = -0.5; + } + ]; + monitor = [ + "DP-1,2560x1440@144,0x0,1" + "DP-2,2560x1440@144,2560x0,1" + ]; + workspace = [ + "1, monitor:DP-1, default:true" + "2, monitor:DP-1" + "3, monitor:DP-1" + "4, monitor:DP-2" + "5, monitor:DP-1" + "6, monitor:DP-2" + "7, monitor:DP-2" + ]; + }; + }; }