From aac3002964567903c4444009b1d46eb19d756edc Mon Sep 17 00:00:00 2001 From: sora Date: Thu, 16 Nov 2023 16:33:42 +0100 Subject: [PATCH] Update modules/home/wayland/hyprland/config.nix --- modules/home/wayland/hyprland/config.nix | 463 ++++++++++++----------- 1 file changed, 233 insertions(+), 230 deletions(-) diff --git a/modules/home/wayland/hyprland/config.nix b/modules/home/wayland/hyprland/config.nix index ccc54cd..a0a2c6c 100755 --- a/modules/home/wayland/hyprland/config.nix +++ b/modules/home/wayland/hyprland/config.nix @@ -1,230 +1,233 @@ -{ lib, config, pkgs, ... }: { - config = lib.mkIf (config.homecfg.wm == "Wayland") { - home.packages = with pkgs; [ hyprland ]; - wayland.windowManager.hyprland = { - enable = true; - xwayland.enable = true; - extraConfig = '' - - monitor=,preferred,auto,1 - - input { - kb_layout = us, ru - kb_variant = intl, phonetic - kb_model = pc104 - kb_options = grp:ctrls_toggle - kb_rules = - - follow_mouse = 1 - - sensitivity = 0 # -0.5 # -1.0 - 1.0, 0 means no modification. - force_no_accel = true - - touchpad { - natural_scroll=no - disable_while_typing=true - scroll_factor=1 - disable_while_typing=0 - tap-to-click=0 - } - } - - misc { - disable_hyprland_logo=true - animate_mouse_windowdragging=false - animate_manual_resizes=false - } - - general { - gaps_in = 8 - gaps_out = 15 - border_size = 2 - - #col.active_border = rgb(${config.colorScheme.colors.base05}) - #col.inactive_border = rgb(${config.colorScheme.colors.base03}) - #col.group_border_active = rgb(${config.colorScheme.colors.base05}) - #col.group_border = rgb(${config.colorScheme.colors.base03}) - - layout = dwindle - } - - decoration { - rounding = 7 - - blur { - enabled = true - size = 2 - passes = 1 - new_optimizations = true - } - #multisample_edges = true - - #opactity - inactive_opacity = 1.0 - active_opacity = 1.0 - fullscreen_opacity = 1.0 - - # shadow - drop_shadow = no - shadow_range = 60 - shadow_offset = 0 5 - shadow_render_power = 4 - col.shadow = rgba(00000099) - } - - animations { - enabled = false - } - - dwindle { - pseudotile = yes - # force_split = 0 - preserve_split = yes - } - - master { - new_is_master = true - } - - gestures { - workspace_swipe = off - } - - exec-once = eww open bar & dunst - - exec-once = swww init - - exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP - exec-once = /nix/store/$(ls -la /nix/store | grep 'polkit-gnome' | grep '4096' | awk '{print $9}' | sed -n '$p')/libexec/polkit-gnome-authentication-agent-1 & - - exec-once = wl-paste --type text --watch cliphist store #Stores only text data - exec-once = wl-paste --type image --watch cliphist store #Stores only image data - - exec-once = swayidle -w timeout 600 'swaylock' before-sleep 'swaylock' - - - #windowrules - windowrulev2 = noshadow, floating:0 - - windowrulev2 = float, title:^(flying_kitty)$ - windowrulev2 = size 1100 600, title:^(flying_kitty)$ - windowrulev2 = move center, title:^(flying_kitty)$ - windowrulev2 = animation slide, title:^(flying_kitty)$ - windowrulev2 = float, title:^(Volume Control)$ - windowrulev2 = float, title:^(Picture-in-Picture)$ - windowrulev2 = float, title:^(Steam)$ - windowrulev2 = fullscreen, title:^(wlogout)$ - windowrulev2 = float, title:^(wlogout)$ - - windowrulev2 = workspace 2 silent, class:^(org.telegram.desktop)$ - windowrulev2 = workspace 2 silent, class:^(discord)$ - - windowrulev2 = workspace 8 silent, class:^(org.keepassxc.KeePassXC)$ - windowrulev2 = workspace 8 silent, title:^(Nextcloud)$ - windowrulev2 = workspace 8 silent, class:^(Tk)$,title:^(Server Configuration)$ - - #SPECIAL FLOATERS - windowrulev2 = float,class:^(org.keepassxc.KeePassXC)$,title:^(KeePassXC - Access Request)$ - windowrulev2 = pin,class:^(org.keepassxc.KeePassXC)$,title:^(KeePassXC - Access Request)$ - windowrulev2 = float,class:^(org.keepassxc.KeePassXC)$,title:^(Unlock Database - KeePassXC)$ - windowrulev2 = pin,class:^(org.keepassxc.KeePassXC)$,title:^(Unlock Database - KeePassXC)$ - windowrulev2 = float,title:^(Open)$ - windowrulev2 = float,title:^(Choose Files)$ - windowrulev2 = float,title:^(Save As)$ - windowrulev2 = float,title:^(Confirm to replace files)$ - windowrulev2 = float,title:^(File Operation Progress)$ - windowrulev2 = float,class:^(firefox)$,title:^(Picture-in-Picture)$ - windowrulev2 = pin,class:^(firefox)$,title:^(Picture-in-Picture)$ - windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Picture-in-Picture)$ - windowrulev2 = float,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$ - windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$ - windowrulev2 = float,class:^(firefox)$,title:^(Extension:.* Mozilla Firefox)$ - windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Extension:.* Mozilla Firefox)$ - windowrulev2 = float,class:^(org.telegram.desktop)$,title:^(Media viewer)$ - windowrulev2 = center,class:^(org.telegram.desktop)$,title:^(Media viewer)$ - - #binds - $mainMod = SUPER - - bind = SUPER, RETURN, exec, kitty - - bind = SUPER_SHIFT, RETURN,togglespecialworkspace, - # bind = SUPER_SHIFT, RETURN, exec, kitty --title flying_kitty --single-instance - bind = SUPER, Q, killactive, - bind = SUPER, T, togglefloating, - bind = SUPER, F, fullscreen, - - bind = SUPER, D, exec, wofi -modi --show drun - bind = SUPER SHIFT,D,exec, ~/.config/hypr/themes/apatheia/eww/launch_bar - - bind = SUPER, V, exec, cliphist list | wofi -dmenu | cliphist decode | wl-copy - bind = , Print, exec, grim -g "$(slurp -d)" - | swappy -f - - - bind = SUPER, L, exec, swaylock - - - bind = SUPER, P, pseudo, # dwindle - bind = SUPER, J, togglesplit, # dwindle - bind = SUPER, G, togglegroup - bind = SUPER, tab, changegroupactive - - bind = SUPER, left, movefocus, l - bind = SUPER, right, movefocus, r - bind = SUPER, up, movefocus, u - bind = SUPER, down, movefocus, d - - bind = SUPER, 1, workspace, 1 - bind = SUPER, 2, workspace, 2 - bind = SUPER, 3, workspace, 3 - bind = SUPER, 4, workspace, 4 - bind = SUPER, 5, workspace, 5 - bind = SUPER, 6, workspace, 6 - bind = SUPER, 7, workspace, 7 - bind = SUPER, 8, workspace, 8 - bind = SUPER, 9, workspace, 9 - bind = SUPER, 0, workspace, 10 - - bind = SUPER SHIFT, 1, movetoworkspacesilent, 1 - bind = SUPER SHIFT, 2, movetoworkspacesilent, 2 - bind = SUPER SHIFT, 3, movetoworkspacesilent, 3 - bind = SUPER SHIFT, 4, movetoworkspacesilent, 4 - bind = SUPER SHIFT, 5, movetoworkspacesilent, 5 - bind = SUPER SHIFT, 6, movetoworkspacesilent, 6 - bind = SUPER SHIFT, 7, movetoworkspacesilent, 7 - bind = SUPER SHIFT, 8, movetoworkspacesilent, 8 - bind = SUPER SHIFT, 9, movetoworkspacesilent, 9 - bind = SUPER SHIFT, 0, movetoworkspacesilent, 10 - - bind = SUPER, mouse_down, workspace, e+1 - bind = SUPER, mouse_up, workspace, e-1 - - bindm = SUPER, mouse:272, movewindow - bindm = SUPER, mouse:273, resizewindow - bind = , XF86AudioPlay, exec, playerctl play-pause - bind = , XF86AudioPrev, exec, playerctl previous - bind = , XF86AudioNext, exec, playerctl next - bind = , XF86AudioRaiseVolume, exec, amixer -q sset 'Master' 5%+ - bind = , XF86AudioLowerVolume, exec, amixer -q sset 'Master' 5%- - bind = , XF86AudioMute, exec, amixer -q sset 'Master' toggle - bind = , XF86MonBrightnessUp, exec, brillo -A 5 - bind = , XF86MonBrightnessDown, exec, brillo -U 5 - - exec-once = [workspace special silent] kitty --title flying_kitty - exec-once = sh ~/.config/startup.sh - ''; - }; - - xdg.configFile."startup.sh".text = '' - #!/bin/sh - sleep 2 - keepassxc & - firefox & - jellyfin-mpv-shim & - easyeffects --gapplication-service & - - sleep 2 - nextcloud & - telegram-desktop& - ''; - }; -} +{ lib, config, pkgs, ... }: { + config = lib.mkIf (config.homecfg.wm == "Wayland") { + home.packages = with pkgs; [ hyprland ]; + wayland.windowManager.hyprland = { + enable = true; + xwayland.enable = true; + extraConfig = '' + + monitor=,preferred,auto,1 + + input { + kb_layout = us, ru + kb_variant = intl, phonetic + kb_model = pc104 + kb_options = grp:ctrls_toggle + kb_rules = + + follow_mouse = 1 + + sensitivity = 0 # -0.5 # -1.0 - 1.0, 0 means no modification. + force_no_accel = true + + touchpad { + natural_scroll=no + disable_while_typing=true + scroll_factor=1 + disable_while_typing=0 + tap-to-click=0 + } + } + + misc { + disable_hyprland_logo=true + animate_mouse_windowdragging=false + animate_manual_resizes=false + + vrr=1 + } + + general { + gaps_in = 8 + gaps_out = 15 + border_size = 2 + + #col.active_border = rgb(${config.colorScheme.colors.base05}) + #col.inactive_border = rgb(${config.colorScheme.colors.base03}) + #col.group_border_active = rgb(${config.colorScheme.colors.base05}) + #col.group_border = rgb(${config.colorScheme.colors.base03}) + + layout = dwindle + + } + + decoration { + rounding = 7 + + blur { + enabled = true + size = 2 + passes = 1 + new_optimizations = true + } + #multisample_edges = true + + #opactity + inactive_opacity = 1.0 + active_opacity = 1.0 + fullscreen_opacity = 1.0 + + # shadow + drop_shadow = no + shadow_range = 60 + shadow_offset = 0 5 + shadow_render_power = 4 + col.shadow = rgba(00000099) + } + + animations { + enabled = false + } + + dwindle { + pseudotile = yes + # force_split = 0 + preserve_split = yes + } + + master { + new_is_master = true + } + + gestures { + workspace_swipe = off + } + + exec-once = eww open bar & dunst + + exec-once = swww init + + exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP + exec-once = /nix/store/$(ls -la /nix/store | grep 'polkit-gnome' | grep '4096' | awk '{print $9}' | sed -n '$p')/libexec/polkit-gnome-authentication-agent-1 & + + exec-once = wl-paste --type text --watch cliphist store #Stores only text data + exec-once = wl-paste --type image --watch cliphist store #Stores only image data + + exec-once = swayidle -w timeout 600 'swaylock' before-sleep 'swaylock' + + + #windowrules + windowrulev2 = noshadow, floating:0 + + windowrulev2 = float, title:^(flying_kitty)$ + windowrulev2 = size 1100 600, title:^(flying_kitty)$ + windowrulev2 = move center, title:^(flying_kitty)$ + windowrulev2 = animation slide, title:^(flying_kitty)$ + windowrulev2 = float, title:^(Volume Control)$ + windowrulev2 = float, title:^(Picture-in-Picture)$ + windowrulev2 = float, title:^(Steam)$ + windowrulev2 = fullscreen, title:^(wlogout)$ + windowrulev2 = float, title:^(wlogout)$ + + windowrulev2 = workspace 2 silent, class:^(org.telegram.desktop)$ + windowrulev2 = workspace 2 silent, class:^(discord)$ + + windowrulev2 = workspace 8 silent, class:^(org.keepassxc.KeePassXC)$ + windowrulev2 = workspace 8 silent, title:^(Nextcloud)$ + windowrulev2 = workspace 8 silent, class:^(Tk)$,title:^(Server Configuration)$ + + #SPECIAL FLOATERS + windowrulev2 = float,class:^(org.keepassxc.KeePassXC)$,title:^(KeePassXC - Access Request)$ + windowrulev2 = pin,class:^(org.keepassxc.KeePassXC)$,title:^(KeePassXC - Access Request)$ + windowrulev2 = float,class:^(org.keepassxc.KeePassXC)$,title:^(Unlock Database - KeePassXC)$ + windowrulev2 = pin,class:^(org.keepassxc.KeePassXC)$,title:^(Unlock Database - KeePassXC)$ + windowrulev2 = float,title:^(Open)$ + windowrulev2 = float,title:^(Choose Files)$ + windowrulev2 = float,title:^(Save As)$ + windowrulev2 = float,title:^(Confirm to replace files)$ + windowrulev2 = float,title:^(File Operation Progress)$ + windowrulev2 = float,class:^(firefox)$,title:^(Picture-in-Picture)$ + windowrulev2 = pin,class:^(firefox)$,title:^(Picture-in-Picture)$ + windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Picture-in-Picture)$ + windowrulev2 = float,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$ + windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$ + windowrulev2 = float,class:^(firefox)$,title:^(Extension:.* Mozilla Firefox)$ + windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Extension:.* Mozilla Firefox)$ + windowrulev2 = float,class:^(org.telegram.desktop)$,title:^(Media viewer)$ + windowrulev2 = center,class:^(org.telegram.desktop)$,title:^(Media viewer)$ + + #binds + $mainMod = SUPER + + bind = SUPER, RETURN, exec, kitty + + bind = SUPER_SHIFT, RETURN,togglespecialworkspace, + # bind = SUPER_SHIFT, RETURN, exec, kitty --title flying_kitty --single-instance + bind = SUPER, Q, killactive, + bind = SUPER, T, togglefloating, + bind = SUPER, F, fullscreen, + + bind = SUPER, D, exec, wofi -modi --show drun + bind = SUPER SHIFT,D,exec, ~/.config/hypr/themes/apatheia/eww/launch_bar + + bind = SUPER, V, exec, cliphist list | wofi -dmenu | cliphist decode | wl-copy + bind = , Print, exec, grim -g "$(slurp -d)" - | swappy -f - + + bind = SUPER, L, exec, swaylock + + + bind = SUPER, P, pseudo, # dwindle + bind = SUPER, J, togglesplit, # dwindle + bind = SUPER, G, togglegroup + bind = SUPER, tab, changegroupactive + + bind = SUPER, left, movefocus, l + bind = SUPER, right, movefocus, r + bind = SUPER, up, movefocus, u + bind = SUPER, down, movefocus, d + + bind = SUPER, 1, workspace, 1 + bind = SUPER, 2, workspace, 2 + bind = SUPER, 3, workspace, 3 + bind = SUPER, 4, workspace, 4 + bind = SUPER, 5, workspace, 5 + bind = SUPER, 6, workspace, 6 + bind = SUPER, 7, workspace, 7 + bind = SUPER, 8, workspace, 8 + bind = SUPER, 9, workspace, 9 + bind = SUPER, 0, workspace, 10 + + bind = SUPER SHIFT, 1, movetoworkspacesilent, 1 + bind = SUPER SHIFT, 2, movetoworkspacesilent, 2 + bind = SUPER SHIFT, 3, movetoworkspacesilent, 3 + bind = SUPER SHIFT, 4, movetoworkspacesilent, 4 + bind = SUPER SHIFT, 5, movetoworkspacesilent, 5 + bind = SUPER SHIFT, 6, movetoworkspacesilent, 6 + bind = SUPER SHIFT, 7, movetoworkspacesilent, 7 + bind = SUPER SHIFT, 8, movetoworkspacesilent, 8 + bind = SUPER SHIFT, 9, movetoworkspacesilent, 9 + bind = SUPER SHIFT, 0, movetoworkspacesilent, 10 + + bind = SUPER, mouse_down, workspace, e+1 + bind = SUPER, mouse_up, workspace, e-1 + + bindm = SUPER, mouse:272, movewindow + bindm = SUPER, mouse:273, resizewindow + bind = , XF86AudioPlay, exec, playerctl play-pause + bind = , XF86AudioPrev, exec, playerctl previous + bind = , XF86AudioNext, exec, playerctl next + bind = , XF86AudioRaiseVolume, exec, amixer -q sset 'Master' 5%+ + bind = , XF86AudioLowerVolume, exec, amixer -q sset 'Master' 5%- + bind = , XF86AudioMute, exec, amixer -q sset 'Master' toggle + bind = , XF86MonBrightnessUp, exec, brillo -A 5 + bind = , XF86MonBrightnessDown, exec, brillo -U 5 + + exec-once = [workspace special silent] kitty --title flying_kitty + exec-once = sh ~/.config/startup.sh + ''; + }; + + xdg.configFile."startup.sh".text = '' + #!/bin/sh + sleep 2 + keepassxc & + firefox & + jellyfin-mpv-shim & + easyeffects --gapplication-service & + + sleep 2 + nextcloud & + telegram-desktop& + ''; + }; +}