dotfiles/home/apps/hyprland.nix

141 lines
4.4 KiB
Nix

{
config,
lib,
pkgs,
osConfig,
...
}: {
config = lib.mkIf (config.isGraphical && pkgs.stdenv.isLinux && (osConfig.dotfiles.desktop == "sway")) {
home = {
packages = with pkgs; [
blueberry
kooha
libnotify
pavucontrol
swayosd
wl-clipboard
swaybg
hyprpicker
grimblast
];
};
services = {
clipman.enable = true;
gnome-keyring = {
enable = true;
components = ["secrets"];
};
wlsunset = {
enable = true;
latitude = toString config.location.latitude;
longitude = toString config.location.longitude;
};
udiskie.enable = true;
};
wayland.windowManager.hyprland = let
mod = "SUPER";
modFocus = "${mod}_CTRL";
modMove = "${mod}_SHIFT";
hyper = "SUPER_CTRL_SHIFT_ALT";
swayosd = pkgs.swayosd + "/bin/swayosd-client";
playerctl = "${pkgs.playerctl}/bin/playerctl";
in {
enable = true;
settings = {
monitor = ",preferred,auto,2";
input.follow_mouse = 1;
env = [
"MOZ_ENABLE_WAYLAND, 1"
"NIXOS_OZONE_WL, 1"
"QT_QPA_PLATFORM, wayland"
"QT_QPA_PLATFORMTHEME, qt5ct"
"SDL_VIDEODRIVER, wayland"
"GDK_SCALE, 2"
"XCURSOR_SIZE, 24"
"XDG_CURRENT_DESKTOP, hyprland"
"XDG_SESSION_DESKTOP, hyprland"
"XDG_SESSION_TYPE, wayland"
"_JAVA_AWT_WM_NONREPARENTING, 1"
];
general = {
gaps_in = 2;
gaps_out = 5;
border_size = 2;
"col.active_border" = "0xfff5c2e7";
"col.inactive_border" = "0x80cba6f7";
};
misc = {
disable_hyprland_logo = true;
disable_splash_rendering = true;
};
decoration.rounding = 5;
dwindle.preserve_split = true;
windowrulev2 = ["suppressevent maximize, class:.*"];
bind = [
"${modMove}, return, exec, foot"
"${modMove}, q, killactive,"
"${modMove}, m, exit,"
"${modMove}, d, togglefloating,"
"${mod}, space, exec, rofi -show drun"
"${modMove}, space, exec, 1password --quick-access"
"${hyper}, p, exec, grimblast --notify --freeze copy area"
"${modFocus}, h, movefocus, l"
"${modFocus}, j, movefocus, d"
"${modFocus}, k, movefocus, u"
"${modFocus}, l, movefocus, r"
"${modMove}, h, movewindow, l"
"${modMove}, j, movewindow, u"
"${modMove}, k, movewindow, d"
"${modMove}, l, movewindow, r"
"${modFocus}, 1, workspace, 1"
"${modFocus}, 2, workspace, 2"
"${modFocus}, 3, workspace, 3"
"${modFocus}, 4, workspace, 4"
"${modFocus}, 5, workspace, 5"
"${modFocus}, 6, workspace, 6"
"${modFocus}, 7, workspace, 7"
"${modFocus}, 8, workspace, 8"
"${modFocus}, 9, workspace, 9"
"${modFocus}, 0, workspace, 10"
"${modMove}, 1, movetoworkspace, 1"
"${modMove}, 2, movetoworkspace, 2"
"${modMove}, 3, movetoworkspace, 3"
"${modMove}, 4, movetoworkspace, 4"
"${modMove}, 5, movetoworkspace, 5"
"${modMove}, 6, movetoworkspace, 6"
"${modMove}, 7, movetoworkspace, 7"
"${modMove}, 8, movetoworkspace, 8"
"${modMove}, 9, movetoworkspace, 9"
"${modMove}, 0, movetoworkspace, 10"
"${mod}, tab, togglespecialworkspace, magic"
"${modMove}, tab, movetoworkspace, special:magic"
", XF86AudioMute, exec, ${swayosd} --output-volume mute-toggle"
", XF86AudioNext, exec, ${playerctl} next"
", XF86AudioPrev, exec, ${playerctl} previous"
", XF86AudioPause, exec, ${playerctl} play-pause"
];
binde = [
", XF86AudioRaiseVolume, exec, ${swayosd} --output-volume 5"
", XF86AudioLowerVolume, exec, ${swayosd} --output-volume -5"
];
bindm = [
"SUPER, mouse:272, movewindow"
"SUPER, mouse:273, resizewindow"
];
exec = [
"${pkgs.swayosd}/bin/swayosd-server"
"${pkgs.swaybg}/bin/swaybg -o '*' -m fill -i ${../wallpapers/dhm_1610.png}"
];
exec-once = [
"${pkgs.xorg.xprop}/bin/xprop -root -f _XWAYLAND_GLOBAL_OUTPUT_SCALE 32c -set _XWAYLAND_GLOBAL_OUTPUT_SCALE 2"
];
};
};
};
}