update, hyprland settings

This commit is contained in:
tristan 2023-12-17 18:55:28 +00:00
parent 3409811d55
commit 126584cbcd
10 changed files with 202 additions and 212 deletions

View file

@ -16,7 +16,7 @@ buildGoModule rec {
hash = "sha256-FBjvZueSh9+grdDrD8DTOlJb6GaCQuJhrsOXRwlpDSQ="; hash = "sha256-FBjvZueSh9+grdDrD8DTOlJb6GaCQuJhrsOXRwlpDSQ=";
}; };
vendorSha256 = "sha256-oIIyQbw42+B6T6Qn6nIV62Xr+8ms3tatfFI8ocYNr0A="; vendorHash = "sha256-oIIyQbw42+B6T6Qn6nIV62Xr+8ms3tatfFI8ocYNr0A=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

36
flake.lock generated
View file

@ -169,11 +169,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1699783872, "lastModified": 1702538064,
"narHash": "sha256-4zTwLT2LL45Nmo6iwKB3ls3hWodVP9DiSWxki/oewWE=", "narHash": "sha256-At5GwJPu2tzvS9dllhBoZmqK6lkkh/sOp2YefWRlaL8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "280721186ab75a76537713ec310306f0eba3e407", "rev": "0e2e443ff24f9d75925e91b89d1da44b863734af",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -213,11 +213,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1702236723, "lastModified": 1702576940,
"narHash": "sha256-zIEnimM1vhsFkz+Kubb8kJ6YgHuLe56pALOSJc6CMVY=", "narHash": "sha256-oZAcNIJ9T49N9V+8HDRqPpSMp4R2+S+CO6iomsDYwU0=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "Hyprland", "repo": "Hyprland",
"rev": "167f2ed3b2bb18ceeabb831ac80b655ef8e16867", "rev": "f7cde9c92cb9e7c908f18ecf10ebdb366d0832b5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -253,11 +253,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1700612854, "lastModified": 1702312524,
"narHash": "sha256-yrQ8osMD+vDLGFX7pcwsY/Qr5PUd6OmDMYJZzZi0+zc=", "narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "19cbff58383a4ae384dea4d1d0c823d72b49d614", "rev": "a9bf124c46ef298113270b1f84a164865987a91c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -269,11 +269,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1699781429, "lastModified": 1702312524,
"narHash": "sha256-UYefjidASiLORAjIvVsUHG6WBtRhM67kTjEY4XfZOFs=", "narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "e44462d6021bfe23dfb24b775cc7c390844f773d", "rev": "a9bf124c46ef298113270b1f84a164865987a91c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -321,11 +321,11 @@
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_3"
}, },
"locked": { "locked": {
"lastModified": 1702242258, "lastModified": 1702559747,
"narHash": "sha256-DSiwYD1DZY+YJALahnCVKacWk2AGy+s1pd3Z07tEF/U=", "narHash": "sha256-d6AmQp3M00WMPJquNfGVzIol5iojD1pi9slek+4N9VY=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "b5ad31b710294038f9ed70efdf787db6a82d7327", "rev": "41d218597590a89324a4b7c50cf0bf088a7214ba",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -384,11 +384,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1700508250, "lastModified": 1702334919,
"narHash": "sha256-X4o/mifI7Nhu0UKYlxx53wIC+gYDo3pVM9L2u3PE2bE=", "narHash": "sha256-ibOZ3TLjqndGMcj2f+07NFwDWoum4IbzF58byZuJJNg=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"rev": "eb120ff25265ecacd0fc13d7dab12131b60d0f47", "rev": "f5c3576c3b6cb1c31a8dfa3e4113f59bfe40cd71",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -35,6 +35,7 @@ in
libnotify libnotify
dig dig
jq jq
ripgrep
usbutils usbutils
wl-clipboard wl-clipboard
du-dust du-dust

View file

@ -22,12 +22,16 @@
boot.initrd.postDeviceCommands = pkgs.lib.mkBefore '' boot.initrd.postDeviceCommands = pkgs.lib.mkBefore ''
mkdir -m 0755 -p /key mkdir -m 0755 -p /key
until cryptsetup luksOpen /dev/disk/by-id/usb-Generic_Flash_Disk_BCC97785-0:0 usbkey dev=/dev/disk/by-id/usb-Generic_Flash_Disk_BCC97785-0:0
sleep 1
until cryptsetup luksOpen "$dev" usbkey
do do
echo "Failed to unlock usbkey!" echo "Insert key and press enter..."
echo "Found block devices:" read res
ls /dev/disk/by-id/ if test "$res" = "fzf"
sleep 2 then
ls /dev/disk/by-id | ${pkgs.fzf}/bin/fzf
fi
done done
mount -n -t vfat -o ro /dev/mapper/usbkey /key mount -n -t vfat -o ro /dev/mapper/usbkey /key
''; '';
@ -98,7 +102,6 @@
DP-1 = 5; DP-1 = 5;
}; };
home.packages = with pkgs; [ monado openxr-loader ];
}]; }];
} }

View file

@ -3,13 +3,9 @@ with lib;
let let
cfg = config.displays; cfg = config.displays;
renderDisplaysForHyprland = displays: renderDisplaysForHyprland = displays: (map displayHyprlandSetting displays);
"# === DISPLAY MODULE ===\n"
+ concatStringsSep "\n" (map displayHyprlandSetting displays)
+ "\n";
displayHyprlandSetting = display: displayHyprlandSetting = display: specificDisplay display +
"monitor = " + specificDisplay display +
", " + resToString display.resolution + ", " + resToString display.resolution +
", " + positionToHyprlandString display.position + ", " + positionToHyprlandString display.position +
", " + toString display.scaling + ", " + toString display.scaling +
@ -134,7 +130,7 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
home-manager.users.${user}.imports = [ home-manager.users.${user}.imports = [
{ {
wayland.windowManager.hyprland.extraConfig = mkIf (cfg.displays != [ ]) wayland.windowManager.hyprland.settings.monitor = mkIf (cfg.displays != [ ])
(renderDisplaysForHyprland cfg.displays); (renderDisplaysForHyprland cfg.displays);
systemd.user.services.swaybg = swaybgJob cfg.displays; systemd.user.services.swaybg = swaybgJob cfg.displays;

View file

@ -8,7 +8,7 @@ with lib;
config = mkIf config.roles.gamer.enable { config = mkIf config.roles.gamer.enable {
# required for heroic launcher # required for heroic launcher
nixpkgs.config.permittedInsecurePackages = [ nixpkgs.config.permittedInsecurePackages = [
"electron-24.8.6" "electron-25.9.0"
]; ];
home-manager.users.${user}.imports = [{ home-manager.users.${user}.imports = [{
@ -23,6 +23,12 @@ with lib;
protontricks protontricks
protonup-qt protonup-qt
gamemode gamemode
gamescope
monado
openxr-loader
opencomposite
(makeDesktopItem { (makeDesktopItem {
name = "x11steam"; name = "x11steam";
desktopName = "X11 Steam Wrapper"; desktopName = "X11 Steam Wrapper";

View file

@ -10,20 +10,20 @@ with lib;
config = { config = {
home-manager.users.${user}.imports = [ home-manager.users.${user}.imports = [
{ {
wayland.windowManager.hyprland.extraConfig = '' wayland.windowManager.hyprland = {
# === KEYBOARD MODULE === settings = {
input { input = {
kb_layout = gb kb_layout = "gb";
kb_options = caps:escape kb_options = "caps:escape";
numlock_by_default = true numlock_by_default = true;
} };
# moonlander is programmed in dvorak! # moonlander is programmed in dvorak!
device:zsa-technology-labs-moonlander-mark-i { "device:zsa-technology-labs-moonlander-mark-i" = {
kb_variant = kb_variant = "";
kb_options = esperanto:qwerty,lv3:ralt_switch kb_options = "esperanto:qwerty,lv3:ralt_switch";
} };
''; };
};
} }
]; ];
services.xserver.xkbVariant = if config.keyboard.dvorak.enable then "dvorak" else ""; services.xserver.xkbVariant = if config.keyboard.dvorak.enable then "dvorak" else "";

View file

@ -23,23 +23,20 @@ in
home-manager.users.${user}.imports = [{ home-manager.users.${user}.imports = [{
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
extraConfig = '' settings = {
# === LAPTOP MODULE === general = {
general { gaps_out = 10;
gaps_out = 10 border_size = 3;
border_size = 3 };
} };
bind = [
# so hard to reach X on a laptop "SUPER_SHIFT, Q, killactive,"
bind = SUPER_SHIFT, Q, killactive, ];
"device:at-translated-set-2-keyboard" = {
# toggle built in keyboard layout kb_variant = "dvorak,";
device:at-translated-set-2-keyboard { kb_layout = "gb,gb";
kb_variant = dvorak, kb_options = "grp:alt_shift_toggle,caps:escape";
kb_layout = gb,gb };
kb_options = grp:alt_shift_toggle,caps:escape
}
'';
}; };
}]; }];
}; };

View file

@ -50,15 +50,11 @@ let
bindScript = script: concatStrings ( bindScript = script: concatStrings (
map map
(hotkey: '' (hotkey:
bind = ${hotkey.modifier}, ${hotkey.key}, exec, ${scriptExec {inherit script hotkey;}} "${hotkey.modifier}, ${hotkey.key}, exec, ${scriptExec {inherit script hotkey;}}"
'') )
script.hotkeys); script.hotkeys);
bindScripts = scripts:
"# === USER SCRIPTS MODULE ===\n"
+ concatStringsSep "\n" (map bindScript scripts);
in in
{ {
options.programs = { options.programs = {
@ -71,7 +67,7 @@ in
config = { config = {
home-manager.users.${user}.imports = [{ home-manager.users.${user}.imports = [{
home.packages = installScripts scripts; home.packages = installScripts scripts;
wayland.windowManager.hyprland.extraConfig = bindScripts scripts; wayland.windowManager.hyprland.settings.bind = (map bindScript scripts);
}]; }];
}; };

View file

@ -28,69 +28,126 @@ in
home-manager.users.${user}.imports = [{ home-manager.users.${user}.imports = [{
wayland.windowManager.hyprland = mkIf cfg.hyprland { wayland.windowManager.hyprland = mkIf cfg.hyprland {
enable = true; enable = true;
systemdIntegration = true; systemd.enable = true;
settings = {
input = {
touchpad = {
natural_scroll = true;
scroll_factor = 0.5;
};
};
gestures = {
workspace_swipe = true;
workspace_swipe_numbered = true;
};
decoration = {
rounding = 5;
drop_shadow = false;
};
bezier = [
"overshot, 0.05, 0.9, 0.1, 1.1"
"linear, 0.0, 0.0, 1.0, 1.0"
];
animations = {
enabled = true;
animation = [
"windows, 1, 1, default, popin"
"border, 1, 1, default"
"fade, 1, 1, default"
"workspaces, 1, 3, overshot"
"borderangle,1, 50, linear, loop"
];
};
bind = [
"SUPER, h, movefocus,l"
"SUPER, l, movefocus,r"
"SUPER, j, layoutmsg,cyclenext"
"SUPER, k, layoutmsg,cycleprev"
"SUPER, space, layoutmsg,swapwithmaster master"
"SUPER, F, fullscreen,"
"SUPER, V, togglefloating,"
"SUPER, W, layoutmsg, orientationprev"
"SUPER_SHIFT, W, layoutmsg, orientationnext"
"SUPER_SHIFT, V, togglegroup,"
"SUPER_SHIFT, h, changegroupactive,b"
"SUPER_SHIFT, h, moveintogroup,l"
"SUPER_SHIFT, l, moveintogroup,r"
"SUPER_SHIFT, l, changegroupactive,f"
"SUPER, Y, togglespecialworkspace"
"SUPER_SHIFT, Y, movetoworkspace, special"
"SUPER, R, submap, resize"
"SUPER,1,workspace,1"
"SUPER,2,workspace,2"
"SUPER,3,workspace,3"
"SUPER,4,workspace,4"
"SUPER,5,workspace,5"
"SUPER,6,workspace,6"
"SUPER,7,workspace,7"
"SUPER,8,workspace,8"
"SUPER,9,workspace,9"
"SUPER,0,workspace,10"
"SUPER,left,workspace,r-1"
"SUPER,right,workspace,r+1"
"SUPER_SHIFT,1,movetoworkspace,1"
"SUPER_SHIFT,2,movetoworkspace,2"
"SUPER_SHIFT,3,movetoworkspace,3"
"SUPER_SHIFT,4,movetoworkspace,4"
"SUPER_SHIFT,5,movetoworkspace,5"
"SUPER_SHIFT,6,movetoworkspace,6"
"SUPER_SHIFT,7,movetoworkspace,7"
"SUPER_SHIFT,8,movetoworkspace,8"
"SUPER_SHIFT,9,movetoworkspace,9"
"SUPER_SHIFT,0,movetoworkspace,10"
];
bindm = [
"SUPER, mouse:272, movewindow"
"SUPER, mouse:273, resizewindow"
];
env = [
"GDK_BACKEND,wayland,x11"
"QT_QPA_PLATFORM,wayland;xcb"
"SDL_VIDEODRIVER,wayland"
"CLUTTER_BACKEND,wayland"
"XDG_CURRENT_DESKTOP,Hyprland"
"XDG_SESSION_TYPE,wayland"
"XDG_SESSION_DESKTOP,Hyprland"
"QT_AUTO_SCREEN_SCALE_FACTOR,1"
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
"NIXOS_OZONE_WL,1"
];
windowrule = [
"float, title:wlogout"
"idleinhibit always, vrmonitor"
"idleinhibit focus, steam_app"
];
workspace = [
"11, default:true"
];
general = {
gaps_out = 10;
resize_on_border = true;
layout = "master";
# "col.active_border" = "rgb(FFFF00) rgb(00FFFF) rgb(FF00FF)";
border_size = 5;
};
master = {
mfact = 0.7;
new_on_top = true;
};
misc = {
vrr = 2;
focus_on_activate = true;
};
};
# https://wiki.hyprland.org/Configuring/Variables/ # https://wiki.hyprland.org/Configuring/Variables/
extraConfig = '' extraConfig = ''
# === GLOBAL CONFIG ===
env = GDK_BACKEND,wayland,x11
env = QT_QPA_PLATFORM,wayland;xcb
env = SDL_VIDEODRIVER,wayland
env = CLUTTER_BACKEND,wayland
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
env = XDG_SESSION_DESKTOP,Hyprland
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env = NIXOS_OZONE_WL,1
input {
touchpad {
natural_scroll = yes
scroll_factor = 0.5
}
}
bind = SUPER_SHIFT, X, killactive,
bind = SUPER_SHIFT, E, exit,
bind = SUPER, SLASH, focuswindow, brave-browser
bind = SUPER, n, focuswindow, Logseq
windowrule = float, title:wlogout
windowrule = idleinhibit always, vrmonitor
windowrule = idleinhibit focus, steam_app
bind = SUPER, h, movefocus,l
bind = SUPER, l, movefocus,r
bindm = SUPER, mouse:272, movewindow
bindm = SUPER, mouse:273, resizewindow
bind = SUPER, j, layoutmsg,cyclenext
bind = SUPER, k, layoutmsg,cycleprev
bind = SUPER, space, layoutmsg,swapwithmaster master
bind = SUPER, F, fullscreen,
bind = SUPER, V, togglefloating,
bind = SUPER, W, layoutmsg, orientationprev
bind = SUPER_SHIFT, W, layoutmsg, orientationnext
bind = SUPER_SHIFT, V, togglegroup,
bind = SUPER_SHIFT, h, changegroupactive,b
bind = SUPER_SHIFT, h, moveintogroup,l
bind = SUPER_SHIFT, l, moveintogroup,r
bind = SUPER_SHIFT, l, changegroupactive,f
bind = SUPER, Y, togglespecialworkspace
bind = SUPER_SHIFT, Y, movetoworkspace, special
bind = SUPER, R, submap, resize
submap = resize submap = resize
binde = ,right,resizeactive,10 0 binde = ,right,resizeactive,10 0
binde = ,left,resizeactive,-10 0 binde = ,left,resizeactive,-10 0
binde = ,up,resizeactive,0 -10 binde = ,up,resizeactive,0 -10
binde = ,down,resizeactive,0 10 binde = ,down,resizeactive,0 10
binde = ,k,resizeactive,0 -10 binde = ,k,resizeactive,0 -10
binde = ,j,resizeactive,0 10 binde = ,j,resizeactive,0 10
binde = ,l,splitratio,0.05 binde = ,l,splitratio,0.05
binde = ,h,splitratio,-0.05 binde = ,h,splitratio,-0.05
binde = SHIFT,l,splitratio,0.3 binde = SHIFT,l,splitratio,0.3
@ -101,72 +158,6 @@ in
bind = SUPER, R, submap,reset bind = SUPER, R, submap,reset
bind = CONTROL, C, submap,reset bind = CONTROL, C, submap,reset
submap = reset submap = reset
workspace = 11, default:true
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,left,workspace,r-1
bind = SUPER,right,workspace,r+1
bind = SUPER_SHIFT,1,movetoworkspace,1
bind = SUPER_SHIFT,2,movetoworkspace,2
bind = SUPER_SHIFT,3,movetoworkspace,3
bind = SUPER_SHIFT,4,movetoworkspace,4
bind = SUPER_SHIFT,5,movetoworkspace,5
bind = SUPER_SHIFT,6,movetoworkspace,6
bind = SUPER_SHIFT,7,movetoworkspace,7
bind = SUPER_SHIFT,8,movetoworkspace,8
bind = SUPER_SHIFT,9,movetoworkspace,9
bind = SUPER_SHIFT,0,movetoworkspace,10
gestures {
workspace_swipe = yes
workspace_swipe_numbered = yes
}
decoration {
rounding = 5
drop_shadow = no
}
bezier = overshot, 0.05, 0.9, 0.1, 1.1
bezier = linear, 0.0, 0.0, 1.0, 1.0
animations {
enabled = 1
animation = windows, 1, 1, default, popin
animation = border, 1, 1, default
animation = fade, 1, 1, default
animation = workspaces, 1, 3, overshot
animation = borderangle,1, 50, linear, loop
}
general {
gaps_out = 10
resize_on_border = yes
layout = master
col.active_border = rgb(FFFF00) rgb(00FFFF) rgb(FF00FF)
border_size = 5
}
master {
mfact = 0.7
new_on_top = yes
}
misc {
vrr = 2
focus_on_activate = yes
}
''; '';
}; };