Fixing Hyprland crash

This commit is contained in:
soraefir
2023-11-16 23:06:28 +01:00
parent 5726d5c6d1
commit 63941b5c44
47 changed files with 518 additions and 494 deletions

View File

@ -1,4 +1,4 @@
{ config, ... }: {
{ lib, config, ... }: {
systemd.user.startServices = "sd-switch";
programs.home-manager.enable = true;

View File

@ -0,0 +1,4 @@
{ ... }: {
imports =
[ ./btop ./git ./helix ./kitty ./neofetch ./other ./starship ./zsh ];
}

View File

@ -1,5 +1,5 @@
{ pkgs, ... }:
let
let
nixflake_dir = "$HOME/files/nixconfig";
nixflake_url = "git+https://git.helcel.net/sora/nixconfig";
in {

1
modules/home/default.nix Normal file
View File

@ -0,0 +1 @@
{ ... }: { imports = [ ./base ./cli ./gui ./homecfg ./wayland ./xdg ./xorg ]; }

View File

@ -0,0 +1,3 @@
{ ... }: {
imports = [ ./firefox ./images ./mpv ./pipewire ./vosk ./vscodium ./zathura ];
}

View File

@ -0,0 +1 @@
{ ... }: { imports = [ ./apps ./base ./games ./theme ]; }

View File

@ -5,7 +5,7 @@
config = lib.mkIf (config.homecfg.make.game) {
home.packages = with pkgs; [
custom.simc
# custom.simc
#games
steam

View File

@ -0,0 +1 @@
{ ... }: { imports = [ ./dunst ./eww ./kanshi ./waylock ./wofi ]; }

View File

@ -0,0 +1,67 @@
{ ... }: {
services.kanshi = {
enable = true;
systemdTarget = "graphical-session.target";
profiles = {
tower_0 = {
outputs = [{
criteria = "CEX CX133 0x00000001";
mode = "1920x1200@59.972";
position = "0,0";
status = "enable";
}];
};
tower_1 = {
outputs = [{
criteria = "AOC 16G3 1DDP7HA000348";
mode = "1920x1080@144.000";
position = "0,0";
status = "enable";
adaptiveSync = true;
}];
};
laptop_0 = {
outputs = [{
criteria = "LG Display 0x060A Unknown";
mode = "1920x1080@60.020";
position = "0,0";
status = "enable";
}];
};
laptop_1 = {
outputs = [
{
criteria = "CEX CX133 0x00000001";
mode = "2560x1600@59.972";
position = "0,0";
status = "enable";
}
{
criteria = "LG Display 0x060A Unknown";
mode = "1920x1080@60.020";
position = "2560,0";
status = "enable";
}
];
};
laptop_2 = {
outputs = [
{
criteria = "AOC 16G3 1DDP7HA000348";
mode = "1920x1080@144.000";
position = "0,0";
status = "enable";
adaptiveSync = true;
}
{
criteria = "LG Display 0x060A Unknown";
mode = "1920x1080@60.020";
position = "1920,0";
status = "enable";
}
];
};
};
};
}

View File

@ -0,0 +1 @@
{ ... }: { imports = [ ./apps ./base ./hyprland ]; }

View File

@ -1,233 +1,224 @@
{ 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=2 #Note broken on renoir AMD DRM potentially ?
}
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
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&
#!/bin/sh
sleep 2
keepassxc &
firefox &
jellyfin-mpv-shim &
easyeffects --gapplication-service &
sleep 2
nextcloud &
telegram-desktop&
'';
};
}

View File

@ -0,0 +1,4 @@
{ ... }:
{
}

View File

@ -0,0 +1 @@
{ ... }: { imports = [ ./apps ./bspwm ]; }

View File

@ -0,0 +1,4 @@
{ ... }:
{
}

View File

@ -0,0 +1 @@
{ ... }: { imports = [ ./cli ./gui ./hostcfg ./system ./tools ./users ]; }

View File

@ -0,0 +1 @@
{ ... }: { imports = [ ./audio ./games ./greet ./xserver ]; }

View File

@ -3,14 +3,11 @@ let cfg = config.hostcfg.make.gui;
in {
config = lib.mkIf cfg {
environment.systemPackages = with pkgs; [ hyprland ];
# environment.systemPackages = with pkgs; [ bspwm ];
services.greetd = {
enable = true;
settings = rec {
initial_session = {
command = "zsh -c '${pkgs.hyprland}/bin/Hyprland'";
command = "zsh";
user = "${config.hostcfg.username}";
};
default_session = initial_session;

View File

@ -0,0 +1,3 @@
{ ... }: {
imports = [ ./dbus ./fonts ./hw ./locale ./network ./nix ./security ./xdg ];
}

View File

@ -1 +1,4 @@
{ ... }: { services.fwupd.enable = true; }
{ ... }: {
services.fwupd.enable = true;
hardware.enableAllFirmware = true;
}

View File

@ -0,0 +1 @@
{ ... }: { imports = [ ./base ./boot ./fs ./opengl ./power ./udev ./virt ]; }

View File

@ -1 +1,5 @@
{ ... }: { hardware.opengl = { enable = true; }; }
{ ... }: {
hardware.opengl.enable = true;
hardware.opengl.driSupport = true;
hardware.opengl.driSupport32Bit = true;
}

View File

@ -0,0 +1,3 @@
{ ... }: {
imports = [ ./base ./bluetooth ./gsm ./security ./wifi ./wireguard ];
}

View File

@ -0,0 +1,4 @@
{ ... }:
{
}

View File

@ -1,4 +1,13 @@
{ pkgs, ... }: {
nixpkgs.config = {
permittedInsecurePackages = [ ];
allowUnfree = true;
packageOverrides = pkgs: rec {
custom = import ../../../../packages { inherit pkgs; };
};
};
nixpkgs.overlays = import ../../../../overlays { inherit pkgs; };
nix = {
package = pkgs.nixFlakes;
extraOptions = ''

View File

@ -0,0 +1 @@
{ ... }: { imports = [ ./gpg ./polkit ./sops ./ssh ]; }

View File

@ -5,14 +5,14 @@
# wlr.enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-hyprland
xdg-desktop-portal-gtk
# xdg-desktop-portal-gtk
];
};
environment.sessionVariables = rec {
GBM_BACKEND = "amd-drm";
__GL_GSYNC_ALLOWED = "0";
__GL_VRR_ALLOWED = "0";
__GL_VRR_ALLOWED = "1";
WLR_DRM_NO_ATOMIC = "1";
__GLX_VENDOR_LIBRARY_NAME = "amd";
_JAVA_AWT_WM_NONREPARENTING = "1";

View File

@ -0,0 +1 @@
{ ... }: { imports = [ ./debug ./devel ]; }

View File

@ -0,0 +1,4 @@
{ ... }:
{
}