123 lines
3.1 KiB
Nix
Executable file
123 lines
3.1 KiB
Nix
Executable file
{
|
|
osConfig,
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
inputs,
|
|
...
|
|
}:
|
|
let
|
|
inherit (lib) mkIf;
|
|
inherit (pkgs.stdenv.hostPlatform) system;
|
|
|
|
wmCfg = config.wm;
|
|
bindCfg = wmCfg.keybinds;
|
|
mainMod = bindCfg.mod;
|
|
in
|
|
{
|
|
config = mkIf osConfig.programs.hyprland.enable {
|
|
wm = {
|
|
exec-once = /* bash */ ''
|
|
dbus-update-activation-environment --systemd HYPRLAND_INSTANCE_SIGNATURE
|
|
'';
|
|
keybinds = {
|
|
mod = "SUPER";
|
|
separator = ",";
|
|
hypr-type = true;
|
|
};
|
|
};
|
|
|
|
home.packages = with pkgs; [
|
|
hyprcursor
|
|
];
|
|
|
|
imports = [
|
|
(import ./hypr/bind.nix { inherit mainMod; })
|
|
./hypr/workspace.nix
|
|
./hypr/window.nix
|
|
./hypr/windowrule.nix
|
|
./hypr/input.nix
|
|
];
|
|
|
|
wayland.windowManager.hyprland = {
|
|
enable = true;
|
|
xwayland.enable = true;
|
|
systemd = {
|
|
enable = true;
|
|
variables = [ "--all" ];
|
|
};
|
|
package = null;
|
|
portalPackage = null;
|
|
|
|
plugins = (
|
|
with inputs.hyprland-plugins.packages.${system};
|
|
[
|
|
hyprwinwrap
|
|
]
|
|
);
|
|
|
|
settings = {
|
|
"$mainMod" = mainMod;
|
|
|
|
debug = {
|
|
disable_logs = true;
|
|
};
|
|
|
|
ecosystem.no_update_news = true;
|
|
|
|
bindm = [
|
|
# Move/resize windows with mainMod + LMB/RMB and dragging
|
|
"${mainMod}, mouse:272, movewindow"
|
|
"${mainMod}, mouse:273, resizewindow"
|
|
];
|
|
|
|
binde =
|
|
let
|
|
resizeStep = toString 20;
|
|
brightnessStep = toString 10;
|
|
volumeStep = toString 4;
|
|
in
|
|
[
|
|
",XF86AudioRaiseVolume, exec, wpctl set-mute @DEFAULT_SINK@ 0 && wpctl set-volume @DEFAULT_SINK@ ${volumeStep}%+"
|
|
",XF86AudioLowerVolume, exec, wpctl set-mute @DEFAULT_SINK@ 0 && wpctl set-volume @DEFAULT_SINK@ ${volumeStep}%-"
|
|
",XF86MonBrightnessDown, exec, brightnessctl set ${brightnessStep}%-"
|
|
",XF86MonBrightnessUp, exec, brightnessctl set ${brightnessStep}%+"
|
|
"${mainMod} CTRL, l, resizeactive, ${resizeStep} 0"
|
|
"${mainMod} CTRL, h, resizeactive, -${resizeStep} 0"
|
|
"${mainMod} CTRL, k, resizeactive, 0 -${resizeStep}"
|
|
"${mainMod} CTRL, j, resizeactive, 0 ${resizeStep}"
|
|
];
|
|
|
|
plugin = {
|
|
hyprwinrap = {
|
|
class = "kitty-bg";
|
|
};
|
|
|
|
touch_gestures = {
|
|
sensitivity = 4.0;
|
|
workspace_swipe_fingers = 3;
|
|
workspace_swipe_edge = "d";
|
|
long_press_delay = 400;
|
|
resize_on_border_long_press = true;
|
|
edge_margin = 10;
|
|
emulate_touchpad_swipe = false;
|
|
};
|
|
};
|
|
|
|
exec-once = [ "${wmCfg.exec-once}" ];
|
|
|
|
env = [
|
|
"XDG_CURRENT_DESKTOP, Hyprland"
|
|
"XDG_SESSION_DESKTOP, Hyprland"
|
|
"GDK_PIXBUF_MODULE_FILE, ${pkgs.librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache"
|
|
];
|
|
|
|
misc = {
|
|
disable_hyprland_logo = true;
|
|
force_default_wallpaper = 0;
|
|
disable_splash_rendering = true;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|