2024-07-19 13:59:48 -04:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
lib,
|
|
|
|
pkgs,
|
|
|
|
...
|
|
|
|
}: let
|
|
|
|
cfg = config.ar.home;
|
2024-07-20 17:08:03 -04:00
|
|
|
scripts = import ./scripts.nix {inherit config lib pkgs;};
|
2024-07-21 20:59:03 -04:00
|
|
|
helpers = import ../wayland/helpers.nix {inherit config lib pkgs;};
|
2024-07-19 13:59:48 -04:00
|
|
|
in {
|
|
|
|
"$mod" = "SUPER";
|
|
|
|
|
|
|
|
animations = {
|
|
|
|
enabled = true;
|
|
|
|
bezier = "myBezier,0.05,0.9,0.1,1.05";
|
|
|
|
|
|
|
|
animation = [
|
|
|
|
"border,1,10,default"
|
|
|
|
"borderangle,1,8,default"
|
|
|
|
"fade,1,7,default"
|
|
|
|
"specialWorkspace,1,6,default,slidevert"
|
|
|
|
"windows,1,7,myBezier"
|
|
|
|
"windowsOut,1,7,default,popin 80%"
|
|
|
|
"workspaces,1,6,default"
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
|
|
|
bind =
|
|
|
|
[
|
2024-08-04 16:55:00 -04:00
|
|
|
"$mod CTRL,L,exec,${lib.getExe pkgs.swaylock}"
|
2024-08-10 23:27:14 -04:00
|
|
|
"$mod SHIFT,G,togglegroup"
|
2024-07-25 20:25:22 -04:00
|
|
|
"$mod SHIFT,R,exec,${lib.getExe config.programs.rofi.package} -show run"
|
2024-07-19 13:59:48 -04:00
|
|
|
"$mod SHIFT,S,movetoworkspace,special:magic"
|
|
|
|
"$mod SHIFT,V,togglefloating"
|
|
|
|
"$mod SHIFT,W,fullscreen"
|
|
|
|
"$mod SHIFT,backslash,togglesplit"
|
|
|
|
"$mod SHIFT,comma,exec,${lib.getExe pkgs.hyprnome} --previous --move"
|
|
|
|
"$mod SHIFT,period,exec,${lib.getExe pkgs.hyprnome} --move"
|
|
|
|
"$mod,B,exec,${lib.getExe cfg.defaultApps.webBrowser}"
|
|
|
|
"$mod,C,killactive"
|
|
|
|
"$mod,E,exec,${lib.getExe cfg.defaultApps.editor}"
|
|
|
|
"$mod,F,exec,${lib.getExe cfg.defaultApps.fileManager}"
|
|
|
|
"$mod,F11,exec,pkill -SIGUSR1 waybar"
|
2024-07-25 15:26:12 -04:00
|
|
|
"$mod,R,exec,${lib.getExe config.programs.rofi.package} -show combi"
|
2024-07-19 13:59:48 -04:00
|
|
|
"$mod,S,togglespecialworkspace,magic"
|
|
|
|
"$mod,T,exec,${lib.getExe cfg.defaultApps.terminal}"
|
2024-07-25 20:32:11 -04:00
|
|
|
"$mod,Tab,exec,${lib.getExe config.programs.rofi.package} -show window"
|
2024-07-19 13:59:48 -04:00
|
|
|
"$mod,comma,exec,${lib.getExe pkgs.hyprnome} --previous"
|
|
|
|
"$mod,mouse_down,workspace,+1"
|
|
|
|
"$mod,mouse_up,workspace,-1"
|
|
|
|
"$mod,period,exec,${lib.getExe pkgs.hyprnome}"
|
2024-07-21 23:31:46 -04:00
|
|
|
",PRINT,exec,${helpers.screenshot}"
|
2024-07-19 13:59:48 -04:00
|
|
|
"CTRL ALT,M,submap,move"
|
|
|
|
"CTRL ALT,R,submap,resize"
|
2024-08-04 16:55:00 -04:00
|
|
|
"CTRL,F12,exec,${helpers.screenshot}"
|
2024-07-25 20:25:22 -04:00
|
|
|
''$mod,M,exec,${lib.getExe config.programs.rofi.package} -show power-menu -modi "power-menu:${lib.getExe pkgs.rofi-power-menu} --choices=logout/lockscreen/suspend/shutdown/reboot"''
|
2024-07-19 13:59:48 -04:00
|
|
|
]
|
2024-07-21 15:00:59 -04:00
|
|
|
++ builtins.map (x: "$mod SHIFT,${toString x},movetoworkspace,${toString x}") [1 2 3 4 5 6 7 8 9]
|
|
|
|
++ builtins.map (x: "$mod,${toString x},workspace,${toString x}") [1 2 3 4 5 6 7 8 9]
|
2024-08-04 16:55:00 -04:00
|
|
|
++ lib.attrsets.mapAttrsToList (key: direction: "$mod CTRL SHIFT,${key},movecurrentworkspacetomonitor,${builtins.substring 0 1 direction}") cfg.desktop.windowManagerBinds
|
2024-08-03 23:13:09 -04:00
|
|
|
++ lib.attrsets.mapAttrsToList (key: direction: "$mod SHIFT,${key},movewindow,${builtins.substring 0 1 direction}") cfg.desktop.windowManagerBinds
|
|
|
|
++ lib.attrsets.mapAttrsToList (key: direction: "$mod,${key},movefocus,${builtins.substring 0 1 direction}") cfg.desktop.windowManagerBinds;
|
2024-07-19 13:59:48 -04:00
|
|
|
|
|
|
|
bindm = [
|
|
|
|
# Move/resize windows with mainMod + LMB/RMB and dragging
|
|
|
|
"$mod,mouse:272,movewindow"
|
|
|
|
"$mod,mouse:273,resizewindow"
|
|
|
|
];
|
|
|
|
|
|
|
|
bindl =
|
|
|
|
[
|
|
|
|
# Volume, microphone, and media keys.
|
2024-07-21 20:59:03 -04:00
|
|
|
",xf86audiomute,exec,${helpers.volume.mute}"
|
|
|
|
",xf86audiomicmute,exec,${helpers.volume.micMute}"
|
|
|
|
",xf86audioplay,exec,${helpers.media.play}"
|
|
|
|
",xf86audioprev,exec,${helpers.media.prev}"
|
|
|
|
",xf86audionext,exec,${helpers.media.next}"
|
2024-07-19 13:59:48 -04:00
|
|
|
]
|
2024-07-30 16:51:41 -04:00
|
|
|
++ builtins.map (switch: ",switch:${switch},exec,${scripts.tablet}") cfg.desktop.hyprland.tabletMode.switches
|
2024-07-19 13:59:48 -04:00
|
|
|
++ lib.lists.optionals (cfg.desktop.hyprland.laptopMonitors != [])
|
|
|
|
[
|
2024-07-20 17:08:03 -04:00
|
|
|
",switch:on:Lid Switch,exec,${scripts.clamshell} on"
|
|
|
|
",switch:off:Lid Switch,exec,${scripts.clamshell} off"
|
2024-07-19 13:59:48 -04:00
|
|
|
];
|
|
|
|
|
|
|
|
bindle = [
|
|
|
|
# Display, volume, microphone, and media keys.
|
2024-07-21 20:59:03 -04:00
|
|
|
",xf86monbrightnessup,exec,${helpers.brightness.up}"
|
|
|
|
",xf86monbrightnessdown,exec,${helpers.brightness.down}"
|
|
|
|
",xf86audioraisevolume,exec,${helpers.volume.up}"
|
|
|
|
",xf86audiolowervolume,exec,${helpers.volume.down}"
|
2024-07-19 13:59:48 -04:00
|
|
|
];
|
|
|
|
|
|
|
|
decoration = {
|
|
|
|
blur = {
|
|
|
|
enabled = true;
|
2024-08-08 20:47:25 -04:00
|
|
|
passes = 2;
|
2024-07-19 13:59:48 -04:00
|
|
|
size = 8;
|
|
|
|
};
|
|
|
|
|
|
|
|
"col.shadow" = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.shadow}EE)";
|
|
|
|
dim_special = 0.5;
|
|
|
|
drop_shadow = true;
|
|
|
|
|
|
|
|
layerrule = [
|
2024-07-29 18:55:03 -04:00
|
|
|
"blur,gtk-layer-shell"
|
2024-07-19 13:59:48 -04:00
|
|
|
"blur,launcher"
|
|
|
|
"blur,logout_dialog"
|
|
|
|
"blur,notifications"
|
2024-07-25 15:26:12 -04:00
|
|
|
"blur,rofi"
|
2024-07-19 13:59:48 -04:00
|
|
|
"blur,swayosd"
|
|
|
|
"blur,waybar"
|
2024-07-29 18:55:03 -04:00
|
|
|
"ignorezero,gtk-layer-shell"
|
2024-07-19 13:59:48 -04:00
|
|
|
"ignorezero,notifications"
|
2024-08-09 18:16:46 -04:00
|
|
|
"ignorezero,rofi"
|
2024-07-19 13:59:48 -04:00
|
|
|
"ignorezero,swayosd"
|
|
|
|
"ignorezero,waybar"
|
|
|
|
];
|
|
|
|
|
2024-08-09 18:16:46 -04:00
|
|
|
rounding = cfg.theme.borderRadius;
|
2024-07-19 13:59:48 -04:00
|
|
|
shadow_range = 4;
|
|
|
|
shadow_render_power = 3;
|
|
|
|
};
|
|
|
|
|
|
|
|
dwindle.preserve_split = true;
|
|
|
|
|
|
|
|
exec-once =
|
|
|
|
[
|
2024-07-31 00:23:27 -04:00
|
|
|
"${pkgs.mate.mate-polkit}/libexec/polkit-mate-authentication-agent-1"
|
2024-07-19 13:59:48 -04:00
|
|
|
]
|
2024-08-02 17:58:08 -04:00
|
|
|
++ lib.lists.optional (!cfg.services.randomWallpaper.enable)
|
2024-07-30 16:34:06 -04:00
|
|
|
"${lib.getExe pkgs.swaybg} -i ${cfg.theme.wallpaper}";
|
2024-07-19 13:59:48 -04:00
|
|
|
|
|
|
|
input = {
|
|
|
|
follow_mouse = 1;
|
|
|
|
kb_layout = "us";
|
|
|
|
kb_variant = "altgr-intl";
|
|
|
|
sensitivity = 0; # -1.0 to 1.0, 0 means no modification.
|
|
|
|
|
|
|
|
touchpad = {
|
|
|
|
clickfinger_behavior = true;
|
|
|
|
drag_lock = true;
|
|
|
|
middle_button_emulation = true;
|
|
|
|
natural_scroll = true;
|
|
|
|
tap-to-click = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
general = {
|
2024-08-08 20:47:25 -04:00
|
|
|
"col.active_border" = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.secondary}CC) rgba(${lib.strings.removePrefix "#" cfg.theme.colors.primary}CC) 45deg";
|
|
|
|
"col.inactive_border" = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.inactive}99)";
|
2024-07-19 13:59:48 -04:00
|
|
|
allow_tearing = false;
|
2024-08-09 18:16:46 -04:00
|
|
|
border_size = 4;
|
2024-07-19 13:59:48 -04:00
|
|
|
gaps_in = 5;
|
|
|
|
gaps_out = 6;
|
|
|
|
layout = "dwindle";
|
|
|
|
};
|
|
|
|
|
|
|
|
gestures = {
|
|
|
|
workspace_swipe = true;
|
|
|
|
workspace_swipe_touch = true;
|
|
|
|
};
|
|
|
|
|
2024-08-10 23:27:14 -04:00
|
|
|
group = {
|
|
|
|
"col.border_active" = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.secondary}CC) rgba(${lib.strings.removePrefix "#" cfg.theme.colors.primary}CC) 45deg";
|
|
|
|
"col.border_inactive" = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.inactive}99)";
|
|
|
|
"col.border_locked_active" = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.secondary}CC) rgba(${lib.strings.removePrefix "#" cfg.theme.colors.primary}CC) 45deg";
|
|
|
|
"col.border_locked_inactive" = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.inactive}99)";
|
|
|
|
|
|
|
|
groupbar = {
|
|
|
|
"col.active" = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.primary}CC)";
|
|
|
|
"col.inactive" = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.inactive}CC)";
|
|
|
|
"col.locked_active" = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.primary}CC)";
|
|
|
|
"col.locked_inactive" = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.inactive}CC)";
|
|
|
|
font_family = cfg.theme.sansFont.name;
|
|
|
|
font_size = cfg.theme.sansFont.size;
|
|
|
|
height = 24;
|
|
|
|
text_color = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.text}FF)";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2024-07-19 13:59:48 -04:00
|
|
|
master = {
|
|
|
|
always_center_master = true;
|
|
|
|
new_status = false;
|
|
|
|
};
|
|
|
|
|
|
|
|
misc = {
|
2024-08-10 23:27:14 -04:00
|
|
|
background_color = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.background}FF)";
|
2024-07-19 13:59:48 -04:00
|
|
|
disable_hyprland_logo = true;
|
|
|
|
disable_splash_rendering = true;
|
|
|
|
focus_on_activate = true;
|
2024-08-10 23:27:14 -04:00
|
|
|
font_family = cfg.theme.sansFont.name;
|
2024-07-19 13:59:48 -04:00
|
|
|
vfr = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
monitor =
|
|
|
|
[",preferred,auto,auto"]
|
|
|
|
++ cfg.desktop.hyprland.laptopMonitors
|
|
|
|
++ cfg.desktop.hyprland.monitors;
|
|
|
|
|
|
|
|
windowrulev2 = [
|
|
|
|
"center(1),class:(.blueman-manager-wrapped)"
|
2024-07-25 18:03:57 -04:00
|
|
|
"center(1),class:(blueberry.py)"
|
2024-07-19 13:59:48 -04:00
|
|
|
"center(1),class:(com.github.wwmm.easyeffects)"
|
2024-08-03 21:14:49 -04:00
|
|
|
"center(1),class:(gcr-prompter)"
|
2024-07-25 19:49:51 -04:00
|
|
|
"center(1),class:(nm-connection-editor)"
|
2024-07-19 13:59:48 -04:00
|
|
|
"center(1),class:(pavucontrol)"
|
2024-08-09 21:20:32 -04:00
|
|
|
"center(1),class:(polkit-mate-authentication-agent-1)"
|
2024-08-09 22:07:38 -04:00
|
|
|
"center(1),initialTitle:(File Operation Progress)"
|
2024-07-19 13:59:48 -04:00
|
|
|
"float,class:(.blueman-manager-wrapped)"
|
2024-07-25 18:03:57 -04:00
|
|
|
"float,class:(blueberry.py)"
|
2024-07-19 13:59:48 -04:00
|
|
|
"float,class:(com.github.wwmm.easyeffects)"
|
2024-07-25 19:49:51 -04:00
|
|
|
"float,class:(nm-connection-editor)"
|
2024-07-19 13:59:48 -04:00
|
|
|
"float,class:(pavucontrol)"
|
2024-08-09 22:07:38 -04:00
|
|
|
"float,class:^(firefox)$, title:^(Picture-in-Picture)$"
|
|
|
|
"float,initialTitle:(File Operation Progress)"
|
2024-07-19 13:59:48 -04:00
|
|
|
"move 70% 20%, class:^(firefox)$, title:^(Picture-in-Picture)$"
|
2024-08-03 21:14:49 -04:00
|
|
|
"pin,class:(gcr-prompter)"
|
2024-08-09 21:20:32 -04:00
|
|
|
"pin,class:(polkit-mate-authentication-agent-1)"
|
2024-07-19 13:59:48 -04:00
|
|
|
"pin,class:^(firefox)$, title:^(Picture-in-Picture)$"
|
2024-08-09 22:07:38 -04:00
|
|
|
"size 40% 20%,initialTitle:(File Operation Progress)"
|
2024-07-19 13:59:48 -04:00
|
|
|
"size 40% 60%,class:(.blueman-manager-wrapped)"
|
2024-07-25 18:03:57 -04:00
|
|
|
"size 40% 60%,class:(blueberry.py)"
|
2024-07-19 13:59:48 -04:00
|
|
|
"size 40% 60%,class:(com.github.wwmm.easyeffects)"
|
2024-07-25 19:49:51 -04:00
|
|
|
"size 40% 60%,class:(nm-connection-editor)"
|
2024-07-19 13:59:48 -04:00
|
|
|
"size 40% 60%,class:(pavucontrol)"
|
2024-08-03 21:14:49 -04:00
|
|
|
"stayfocused,class:(gcr-prompter)"
|
2024-08-09 21:20:32 -04:00
|
|
|
"stayfocused,class:(polkit-mate-authentication-agent-1)"
|
2024-07-19 13:59:48 -04:00
|
|
|
"suppressevent maximize, class:.*"
|
|
|
|
];
|
|
|
|
|
|
|
|
xwayland.force_zero_scaling = true;
|
|
|
|
}
|