blob: a2f8b883920c7f74096d41040aaf83f587b13f09 [file] [log] [blame]
{ pkgs, config, inputs, system, ... }: let
lock = "${pkgs.waylock}/bin/waylock";
in {
# TODO: Eww, SwayNC, hyprland-per-window-layout, waylock, hy3, anyrun, hypr-empty
home.packages = [ pkgs.hyprpicker ];
minion.touchpadGestures.enable = true;
services.fusuma.settings.swipe = let
hyprctl = "${config.wayland.windowManager.hyprland.package}/bin/hyprctl";
jq = "${pkgs.jq}/bin/jq";
awk = "${pkgs.gawk}/bin/awk";
in {
"3".up.command = "${hyprctl} dispatch fullscreen 0";
"3".down.command = "${hyprctl} dispatch fullscreen 0";
"4".down.command = lock;
"3".left.command = "${hyprctl} dispatch workspace $(${hyprctl} activeworkspace -j | ${jq} .id | ${awk} '{print $1+1}')";
"3".right.command = "${hyprctl} dispatch workspace $(${hyprctl} activeworkspace -j | ${jq} .id | ${awk} '{print $1-1}')";
};
wayland.windowManager.hyprland = {
enable = true;
xwayland.enable = true;
systemd.enable = true;
settings = let
mod = "SUPER";
terminal = "${pkgs.kitty}/bin/kitty";
menu = "${inputs.anyrun.packages.${system}.anyrun}/bin/anyrun";
in {
misc = {
disable_hyprland_logo = true;
disable_splash_rendering = true;
};
exec-once = "${pkgs.hyprpaper}/bin/hyprpaper";
monitor = [
"eDP-1,preferred,0x0,1"
"desc:Dell Inc. DELL P2715Q V7WP95AV914L,preferred,2256x-1956,1,transform,1"
"desc:AOC 2460G5 0x00023C3F,preferred,336x-1080,1"
",preferred,auto,1" # https://wiki.hyprland.org/Configuring/Monitors/
];
input = {
kb_layout = "us";
kb_variant = "dvorak";
natural_scroll = true;
touchpad = {
natural_scroll = true;
};
};
xwayland = {
force_zero_scaling = true;
};
bind = [
"${mod}, Q, killactive"
"${mod}, SPACE, togglefloating"
"${mod}, RETURN, exec, ${terminal}"
"${mod}, down, movefocus, d"
"${mod}, up, movefocus, u"
"${mod}, right, movefocus, r"
"${mod}, left, movefocus, l"
"${mod}, L, exec, ${lock}"
"${mod}, D, exec, ${menu}"
] ++ (
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 = [
"${mod}, mouse:272, movewindow"
"${mod}, mouse:273, resizewindow"
];
};
};
}