From 22c68c169c250aa225aade8f5123d67b52b6ab02 Mon Sep 17 00:00:00 2001 From: soraefir Date: Fri, 17 Nov 2023 03:29:35 +0100 Subject: [PATCH] Fixed Hyprland crashes --- modules/home/base/default.nix | 2 +- modules/home/wayland/apps/kanshi/default.nix | 3 + modules/home/wayland/hyprland/config.nix | 450 ++++++++++--------- modules/nixos/system/nix/default.nix | 2 +- modules/nixos/system/xdg/default.nix | 9 +- systems/valinor/hardware-configuration.nix | 2 +- 6 files changed, 237 insertions(+), 231 deletions(-) diff --git a/modules/home/base/default.nix b/modules/home/base/default.nix index 3367a8a..fd58df8 100644 --- a/modules/home/base/default.nix +++ b/modules/home/base/default.nix @@ -7,6 +7,6 @@ username = "${config.homecfg.username}"; homeDirectory = "/home/${config.homecfg.username}"; - stateVersion = "23.05"; + stateVersion = "23.11"; }; } diff --git a/modules/home/wayland/apps/kanshi/default.nix b/modules/home/wayland/apps/kanshi/default.nix index 3748c18..f09afff 100644 --- a/modules/home/wayland/apps/kanshi/default.nix +++ b/modules/home/wayland/apps/kanshi/default.nix @@ -26,6 +26,7 @@ criteria = "LG Display 0x060A Unknown"; mode = "1920x1080@60.020"; position = "0,0"; + scale = 1.0; status = "enable"; }]; }; @@ -41,6 +42,7 @@ criteria = "LG Display 0x060A Unknown"; mode = "1920x1080@60.020"; position = "2560,0"; + scale = 1.0; status = "enable"; } ]; @@ -58,6 +60,7 @@ criteria = "LG Display 0x060A Unknown"; mode = "1920x1080@60.020"; position = "1920,0"; + scale = 1.0; status = "enable"; } ]; diff --git a/modules/home/wayland/hyprland/config.nix b/modules/home/wayland/hyprland/config.nix index b38153d..914bbd9 100755 --- a/modules/home/wayland/hyprland/config.nix +++ b/modules/home/wayland/hyprland/config.nix @@ -1,224 +1,226 @@ -{ lib, config, pkgs, ... }: { - config = lib.mkIf (config.homecfg.wm == "Wayland") { - wayland.windowManager.hyprland = { - enable = true; - xwayland.enable = true; - extraConfig = '' - monitor=,preferred,auto,1 - - input { - kb_layout = us, ru - kb_variant = intl, phonetic - kb_options = grp:ctrls_toggle - - follow_mouse = 1 - - sensitivity = 0 # -0.5 # -1.0 - 1.0, 0 means no modification. - - 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 #Note broken on renoir AMD DRM potentially ? - } - - general { - gaps_in = 5 - gaps_out = 5 - border_size = 2 - - # col.active_border = rgb(${config.colorScheme.colors.base05}) - # col.inactive_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 - windowrule = noshadow, floating:0 - - windowrule = float, title:^(flying_kitty)$ - windowrule = size 1100 600, title:^(flying_kitty)$ - windowrule = move center, title:^(flying_kitty)$ - windowrule = animation slide, title:^(flying_kitty)$ - windowrule = float, title:^(Volume Control)$ - windowrule = float, title:^(Picture-in-Picture)$ - windowrule = float, title:^(Steam)$ - windowrule = fullscreen, title:^(wlogout)$ - windowrule = float, title:^(wlogout)$ - - windowrule = workspace 2 silent, class:^(org.telegram.desktop)$ - windowrule = workspace 2 silent, class:^(discord)$ - - windowrule = workspace 8 silent, class:^(org.keepassxc.KeePassXC)$ - windowrule = workspace 8 silent, title:^(Nextcloud)$ - windowrule = workspace 8 silent, class:^(Tk)$,title:^(Server Configuration)$ - - #SPECIAL FLOATERS - windowrule = float,class:^(org.keepassxc.KeePassXC)$,title:^(KeePassXC - Access Request)$ - windowrule = pin,class:^(org.keepassxc.KeePassXC)$,title:^(KeePassXC - Access Request)$ - windowrule = float,class:^(org.keepassxc.KeePassXC)$,title:^(Unlock Database - KeePassXC)$ - windowrule = pin,class:^(org.keepassxc.KeePassXC)$,title:^(Unlock Database - KeePassXC)$ - windowrule = float,title:^(Open)$ - windowrule = float,title:^(Choose Files)$ - windowrule = float,title:^(Save As)$ - windowrule = float,title:^(Confirm to replace files)$ - windowrule = float,title:^(File Operation Progress)$ - windowrule = float,class:^(firefox)$,title:^(Picture-in-Picture)$ - windowrule = pin,class:^(firefox)$,title:^(Picture-in-Picture)$ - windowrule = nofullscreenrequest,class:^(firefox)$,title:^(Picture-in-Picture)$ - windowrule = float,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$ - windowrule = nofullscreenrequest,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$ - windowrule = float,class:^(firefox)$,title:^(Extension:.* Mozilla Firefox)$ - windowrule = nofullscreenrequest,class:^(firefox)$,title:^(Extension:.* Mozilla Firefox)$ - windowrule = float,class:^(org.telegram.desktop)$,title:^(Media viewer)$ - windowrule = center,class:^(org.telegram.desktop)$,title:^(Media viewer)$ - - #binds - 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") { + wayland.windowManager.hyprland = { + enable = true; + xwayland.enable = true; + extraConfig = '' + monitor=,preferred,auto,auto + + input { + kb_layout = us, ru + kb_variant = intl, phonetic + kb_options = grp:ctrls_toggle + + follow_mouse = 1 + + sensitivity = 0 # -0.5 # -1.0 - 1.0, 0 means no modification. + + 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 = 4 + gaps_out = 8 + border_size = 2 + + # col.active_border = rgb(${config.colorScheme.colors.base05}) + # col.inactive_border = rgb(${config.colorScheme.colors.base03}) + + layout = dwindle + } + + decoration { + rounding = 4 + + 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 = true + bezier = customcurve, 0.0, 0.9, 0.1, 1.0 + + animation = windows, 1, 4, customcurve + animation = windowsOut, 1, 4, customcurve, popin 50% + animation = border, 1, 10, customcurve + animation = borderangle, 0, 1, customcurve + animation = fade, 1, 4, customcurve + animation = workspaces, 1, 4, customcurve + } + + dwindle { + pseudotile = yes + preserve_split = yes + } + + master { + new_is_master = true + } + + gestures { + workspace_swipe = off + } + + exec-once = eww open bar + exec-once = 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 + windowrule = noshadow, floating:0 + + windowrule = float, title:^(flying_kitty)$ + windowrule = size 1100 600, title:^(flying_kitty)$ + windowrule = move center, title:^(flying_kitty)$ + windowrule = animation slide, title:^(flying_kitty)$ + windowrule = float, title:^(Volume Control)$ + windowrule = float, title:^(Picture-in-Picture)$ + windowrule = float, title:^(Steam)$ + windowrule = fullscreen, title:^(wlogout)$ + windowrule = 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 + 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, 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& + #discord& + ''; + }; +} diff --git a/modules/nixos/system/nix/default.nix b/modules/nixos/system/nix/default.nix index 973874f..6d58495 100644 --- a/modules/nixos/system/nix/default.nix +++ b/modules/nixos/system/nix/default.nix @@ -32,5 +32,5 @@ ]; }; }; - system.stateVersion = "23.05"; + system.stateVersion = "23.11"; } diff --git a/modules/nixos/system/xdg/default.nix b/modules/nixos/system/xdg/default.nix index e61b04f..d6395a1 100644 --- a/modules/nixos/system/xdg/default.nix +++ b/modules/nixos/system/xdg/default.nix @@ -3,10 +3,11 @@ xdg.portal = { enable = true; # wlr.enable = true; - extraPortals = with pkgs; [ - xdg-desktop-portal-hyprland - # xdg-desktop-portal-gtk - ]; + extraPortals = with pkgs; + [ + xdg-desktop-portal-hyprland + # xdg-desktop-portal-gtk + ]; }; environment.sessionVariables = rec { diff --git a/systems/valinor/hardware-configuration.nix b/systems/valinor/hardware-configuration.nix index 42e615b..dbd0beb 100755 --- a/systems/valinor/hardware-configuration.nix +++ b/systems/valinor/hardware-configuration.nix @@ -5,7 +5,7 @@ boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; - boot.initrd.kernelModules = [ "amdgpu" ]; + boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "v4l2loopback" "kvm-amd" ]; #boot.kernelPackages = pkgs.linuxPackages_latest; boot.extraModulePackages = with config.boot.kernelPackages;