feat: further structure hyprland configuration
Added special keybind definition files Created new hyprland-specific config dir
This commit is contained in:
parent
d4059b5e9a
commit
a29235acb6
5 changed files with 128 additions and 115 deletions
|
@ -5,7 +5,7 @@
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./hyprland.nix
|
./hyprland
|
||||||
./hyprpaper.nix
|
./hyprpaper.nix
|
||||||
./hypridle.nix
|
./hypridle.nix
|
||||||
./hyprlock.nix
|
./hyprlock.nix
|
||||||
|
|
|
@ -1,114 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
home.packages = with pkgs; [foot];
|
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
# Whether to enable Hyprland wayland compositor
|
|
||||||
enable = true;
|
|
||||||
# The hyprland package to use
|
|
||||||
package = pkgs.hyprland;
|
|
||||||
plugins = with pkgs.hyprlandPlugins; [
|
|
||||||
hyprfocus
|
|
||||||
csgo-vulkan-fix
|
|
||||||
];
|
|
||||||
# Whether to enable XWayland
|
|
||||||
xwayland.enable = true;
|
|
||||||
settings = {
|
|
||||||
xwayland = {force_zero_scaling = true;};
|
|
||||||
monitor = [
|
|
||||||
#"eDP-1, 1920x1080@165,0x0,1"
|
|
||||||
"HDMI-A-1, 1920x1080@75, 2560x0, 1"
|
|
||||||
"eDP-1,preferred, auto, ${builtins.toString config.displayScale}"
|
|
||||||
];
|
|
||||||
general = {
|
|
||||||
border_size = 1;
|
|
||||||
gaps_in = 2.5;
|
|
||||||
gaps_out = 5;
|
|
||||||
};
|
|
||||||
decoration = {
|
|
||||||
rounding = 5;
|
|
||||||
};
|
|
||||||
input = {
|
|
||||||
# xset rate 250 50 replacement on wayland...
|
|
||||||
# FAST MODE LET'S GOOO
|
|
||||||
repeat_rate = 50;
|
|
||||||
repeat_delay = 250;
|
|
||||||
accel_profile = "flat";
|
|
||||||
};
|
|
||||||
exec-once =
|
|
||||||
config.myAutostartCommands
|
|
||||||
++ [
|
|
||||||
"[workspace special silent] ${pkgs.foot}/bin/foot -f 'BlexMono Nerd Font:size=16' -o colors.alpha=0.85 ${config.myShells.defaultShell}"
|
|
||||||
];
|
|
||||||
misc = {
|
|
||||||
disable_hyprland_logo = true;
|
|
||||||
disable_splash_rendering = true;
|
|
||||||
font_family = "monospace";
|
|
||||||
focus_on_activate = true; # see if fixes mako daemon not focusing
|
|
||||||
};
|
|
||||||
"$mod" = "SUPER";
|
|
||||||
binde = [
|
|
||||||
", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+"
|
|
||||||
|
|
||||||
# Example volume button that will activate even while an input inhibitor is active
|
|
||||||
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
|
||||||
];
|
|
||||||
bind = let
|
|
||||||
terminalCmd = "${pkgs.foot}/bin/foot -f 'BlexMono Nerd Font:size=16' -o colors.alpha=0.85";
|
|
||||||
screenshotLocation = "/home/${config.myUserName}/Screenshots/$(date '+%Y-%m-%d-%H-%M-%S').png";
|
|
||||||
in
|
|
||||||
[
|
|
||||||
"$mod SHIFT, L, exec, ${pkgs.wlogout}/bin/wlogout"
|
|
||||||
|
|
||||||
"$mod SHIFT, Print, exec, ${pkgs.grimblast}/bin/grimblast copysave output ${screenshotLocation}"
|
|
||||||
", Print, exec, ${pkgs.grimblast}/bin/grimblast copysave area ${screenshotLocation}"
|
|
||||||
"$mod, Print, exec, ${pkgs.grimblast}/bin/grimblast copy area"
|
|
||||||
|
|
||||||
# special workspace keybinds
|
|
||||||
"$mod, S, togglespecialworkspace"
|
|
||||||
"$mod SHIFT, S, movetoworkspace, special"
|
|
||||||
|
|
||||||
# keysyms for util functions
|
|
||||||
# Example volume button that allows press and hold, volume limited to 150%
|
|
||||||
"$mod, Q, killactive"
|
|
||||||
"$mod, D, exec, ${pkgs.fuzzel}/bin/fuzzel"
|
|
||||||
"$mod, F, fullscreen"
|
|
||||||
"$mod, E, exec, ${pkgs.pcmanfm}/bin/pcmanfm"
|
|
||||||
# foot terminal
|
|
||||||
"$mod, Return, exec, ${terminalCmd} ${config.myShells.defaultShell}"
|
|
||||||
"$mod SHIFT, Return, exec, [float] ${terminalCmd} ${config.myShells.defaultShell}"
|
|
||||||
|
|
||||||
"$mod, N, exec, [float] ${terminalCmd} ${pkgs.networkmanager}/bin/nmtui"
|
|
||||||
|
|
||||||
# vimkeys navigation
|
|
||||||
"$mod, H, movefocus, l"
|
|
||||||
"$mod, J, movefocus, d"
|
|
||||||
"$mod, K, movefocus, u"
|
|
||||||
"$mod, L, movefocus, r"
|
|
||||||
]
|
|
||||||
++ (
|
|
||||||
# workspaces
|
|
||||||
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
|
|
||||||
builtins.concatLists (builtins.genList (x: let
|
|
||||||
ws = let c = (x + 1) / 10; in builtins.toString (x + 1 - (c * 10));
|
|
||||||
in [
|
|
||||||
"$mod, ${ws}, workspace, ${toString (x + 1)}"
|
|
||||||
"$mod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
|
|
||||||
])
|
|
||||||
10)
|
|
||||||
);
|
|
||||||
bindm = [
|
|
||||||
# mouse movements
|
|
||||||
"$mod, mouse:272, movewindow"
|
|
||||||
"$mod, mouse:273, resizewindow"
|
|
||||||
"$mod ALT, mouse:272, resizewindow"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
# Optional
|
|
||||||
# Whether to enable hyprland-session.target on hyprland startup
|
|
||||||
systemd = {enable = true;};
|
|
||||||
};
|
|
||||||
# ...
|
|
||||||
}
|
|
49
home-manager/stvnliu/hypr/hyprland/binds.nix
Normal file
49
home-manager/stvnliu/hypr/hyprland/binds.nix
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
}: let
|
||||||
|
terminalCmd = "${pkgs.foot}/bin/foot -f '${config.desktopFontFullName}:size=16' -o colors.alpha=0.80";
|
||||||
|
screenshotLocation = "/home/${config.myUserName}/Screenshots/$(date '+%Y-%m-%d-%H-%M-%S').png";
|
||||||
|
in
|
||||||
|
[
|
||||||
|
"$mod SHIFT, L, exec, ${pkgs.wlogout}/bin/wlogout"
|
||||||
|
|
||||||
|
"$mod SHIFT, Print, exec, ${pkgs.grimblast}/bin/grimblast copysave output ${screenshotLocation}"
|
||||||
|
", Print, exec, ${pkgs.grimblast}/bin/grimblast copysave area ${screenshotLocation}"
|
||||||
|
"$mod, Print, exec, ${pkgs.grimblast}/bin/grimblast copy area"
|
||||||
|
|
||||||
|
# special workspace keybinds
|
||||||
|
"$mod, S, togglespecialworkspace"
|
||||||
|
"$mod SHIFT, S, movetoworkspace, special"
|
||||||
|
|
||||||
|
# keysyms for util functions
|
||||||
|
# Example volume button that allows press and hold, volume limited to 150%
|
||||||
|
"$mod, Q, killactive"
|
||||||
|
"$mod, D, exec, ${pkgs.rofi}/bin/rofi -show drun"
|
||||||
|
"$mod, F, fullscreen"
|
||||||
|
"$mod, E, exec, ${pkgs.pcmanfm}/bin/pcmanfm"
|
||||||
|
# foot terminal
|
||||||
|
"$mod, Return, exec, ${terminalCmd} ${config.myShells.defaultShell}"
|
||||||
|
"$mod SHIFT, Return, exec, [float] ${terminalCmd} ${config.myShells.defaultShell}"
|
||||||
|
|
||||||
|
# cmdline utilities
|
||||||
|
"$mod, N, exec, [float] ${terminalCmd} ${pkgs.networkmanager}/bin/nmtui"
|
||||||
|
"$mod, M, exec, [float] ${terminalCmd} ${pkgs.zenith}/bin/zenith"
|
||||||
|
|
||||||
|
# vimkeys navigation
|
||||||
|
"$mod, H, movefocus, l"
|
||||||
|
"$mod, J, movefocus, d"
|
||||||
|
"$mod, K, movefocus, u"
|
||||||
|
"$mod, L, movefocus, r"
|
||||||
|
]
|
||||||
|
++ (
|
||||||
|
# workspaces
|
||||||
|
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
|
||||||
|
builtins.concatLists (builtins.genList (x: let
|
||||||
|
ws = let c = (x + 1) / 10; in builtins.toString (x + 1 - (c * 10));
|
||||||
|
in [
|
||||||
|
"$mod, ${ws}, workspace, ${toString (x + 1)}"
|
||||||
|
"$mod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
|
||||||
|
])
|
||||||
|
10)
|
||||||
|
)
|
68
home-manager/stvnliu/hypr/hyprland/default.nix
Normal file
68
home-manager/stvnliu/hypr/hyprland/default.nix
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
home.packages = with pkgs; [foot];
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
# Whether to enable Hyprland wayland compositor
|
||||||
|
enable = true;
|
||||||
|
# The hyprland package to use
|
||||||
|
package = pkgs.hyprland;
|
||||||
|
plugins = with pkgs.hyprlandPlugins; [hyprfocus csgo-vulkan-fix];
|
||||||
|
# Whether to enable XWayland
|
||||||
|
xwayland.enable = true;
|
||||||
|
settings = {
|
||||||
|
env = ["AQ_DRM_DEVICES, /dev/dri/card1:/dev/dri/card0"];
|
||||||
|
xwayland = {force_zero_scaling = true;};
|
||||||
|
monitor = [
|
||||||
|
#"eDP-1, 1920x1080@165,0x0,1"
|
||||||
|
"HDMI-A-1, 1920x1080@75, 2560x0, 1"
|
||||||
|
"eDP-1,preferred, auto, ${builtins.toString config.displayScale}"
|
||||||
|
];
|
||||||
|
general = {
|
||||||
|
border_size = 1;
|
||||||
|
gaps_in = 2.5;
|
||||||
|
gaps_out = 5;
|
||||||
|
};
|
||||||
|
decoration = {rounding = 5;};
|
||||||
|
input = {
|
||||||
|
# xset rate 250 50 replacement on wayland...
|
||||||
|
# FAST MODE LET'S GOOO
|
||||||
|
repeat_rate = 50;
|
||||||
|
repeat_delay = 250;
|
||||||
|
accel_profile = "flat";
|
||||||
|
};
|
||||||
|
exec-once =
|
||||||
|
config.myAutostartCommands
|
||||||
|
++ [
|
||||||
|
"[workspace special silent] ${pkgs.foot}/bin/foot -f '${config.desktopFontFullName}:size=16' -o colors.alpha=0.80 ${config.myShells.defaultShell}"
|
||||||
|
];
|
||||||
|
misc = {
|
||||||
|
disable_hyprland_logo = true;
|
||||||
|
disable_splash_rendering = true;
|
||||||
|
font_family = "monospace";
|
||||||
|
focus_on_activate = true; # see if fixes mako daemon not focusing
|
||||||
|
};
|
||||||
|
"$mod" = "SUPER";
|
||||||
|
binde = import ./xf86_binds.nix {
|
||||||
|
inherit config;
|
||||||
|
inherit pkgs;
|
||||||
|
};
|
||||||
|
bind = import ./binds.nix {
|
||||||
|
inherit config;
|
||||||
|
inherit pkgs;
|
||||||
|
};
|
||||||
|
bindm = [
|
||||||
|
# mouse movements
|
||||||
|
"$mod, mouse:272, movewindow"
|
||||||
|
"$mod, mouse:273, resizewindow"
|
||||||
|
"$mod ALT, mouse:272, resizewindow"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
# Optional
|
||||||
|
# Whether to enable hyprland-session.target on hyprland startup
|
||||||
|
systemd = {enable = true;};
|
||||||
|
};
|
||||||
|
# ...
|
||||||
|
}
|
10
home-manager/stvnliu/hypr/hyprland/xf86_binds.nix
Normal file
10
home-manager/stvnliu/hypr/hyprland/xf86_binds.nix
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
}: [
|
||||||
|
", XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl play-pause"
|
||||||
|
", XF86AudioStop, exec, ${pkgs.playerctl}/bin/playerctl stop"
|
||||||
|
", XF86AudioRaiseVolume, exec, ${pkgs.wireplumber}/bin/wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+"
|
||||||
|
", XF86AudioLowerVolume, exec, ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||||
|
", XF86AudioMute, exec, ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 0%"
|
||||||
|
]
|
Loading…
Add table
Add a link
Reference in a new issue