nixconfig/hyprland/hyprland.nix

180 lines
5.7 KiB
Nix
Raw Normal View History

2024-08-22 16:04:26 +00:00
args@{ config, lib, inputs, pkgs, wayland, ... }:
2023-11-15 16:09:47 +00:00
{
2024-07-09 15:11:26 +00:00
# home.file.hyprland-catppuccino = let flavour = "frappe";
# in {
# enable = true;
# target = ".config/hypr/catppuccino.conf";
# text = builtins.readFile (pkgs.fetchFromGitHub {
# owner = "catppuccin";
# repo = "hyprland";
# rev = "99a88fd21fac270bd999d4a26cf0f4a4222c58be";
# sha256 = "sha256-07B5QmQmsUKYf38oWU3+2C6KO4JvinuTwmW1Pfk8CT8=";
# } + /themes/${flavour}.conf);
2024-07-09 18:35:03 +00:00
# };
2023-11-15 16:09:47 +00:00
wayland.windowManager.hyprland = {
enable = true;
systemd.enable = true;
2024-10-04 14:56:41 +00:00
plugins = with pkgs.hyprlandPlugins; [
hyprsplit
2024-08-22 16:04:26 +00:00
];
2023-11-15 16:09:47 +00:00
settings = {
source =
2024-07-09 15:11:26 +00:00
[
"~/.config/hypr/monitors.conf"
#"~/.config/hypr/catppuccino.conf"
];
2023-11-15 16:09:47 +00:00
input = {
kb_layout = "de";
kb_options = "caps:swapescape";
follow_mouse = 1;
touchpad = { natural_scroll = false; };
sensitivity = 0;
};
general = {
gaps_in = 15;
2024-07-09 15:11:26 +00:00
gaps_out = 20;
border_size = 2;
2023-11-15 16:09:47 +00:00
resize_on_border = true;
"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
"col.inactive_border" = "rgba(595959aa)";
layout = "master";
2024-07-09 15:11:26 +00:00
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false;
2023-11-15 16:09:47 +00:00
};
misc = {
2024-07-09 15:11:26 +00:00
force_default_wallpaper = -1;
2023-11-15 16:09:47 +00:00
vfr = true;
vrr = 1;
animate_manual_resizes = true;
};
decoration = {
rounding = 10;
2024-07-09 15:11:26 +00:00
blur = {
enabled = true;
size = 3;
passes = 1;
};
2023-11-15 16:09:47 +00:00
};
animations = {
enabled = true;
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
animation = [
"windows, 1, 7, myBezier"
"windowsOut, 1, 7, default, popin 80%"
"border, 1, 10, default"
"borderangle, 1, 8, default"
"fade, 1, 7, default"
"workspaces, 1, 6, default"
];
};
dwindle = {
pseudotile = false;
preserve_split = true;
force_split = 0;
default_split_ratio = 1.5;
};
master = {
2024-07-09 18:35:03 +00:00
new_status = "slave";
2023-11-15 16:09:47 +00:00
orientation = "center";
2024-08-22 14:27:34 +00:00
#workspace = "w[g2], layoutopt:orientation:left";
2023-11-15 16:09:47 +00:00
always_center_master = true;
mfact = 0.5;
special_scale_factor = 0.8;
};
gestures = { workspace_swipe = false; };
2024-08-21 15:30:52 +00:00
"$lockscreen" = "${pkgs.hyprlock}/bin/hyprlock";
2023-11-15 16:09:47 +00:00
"$mainMod" = "SUPER";
bind = [
"$mainMod, Q, exec, ${pkgs.kitty}/bin/kitty"
"$mainMod, C, killactive,"
"$mainMod, M, exec, ${pkgs.wlogout}/bin/wlogout"
"$mainMod, E, exec, dolphin"
"$mainMod, V, togglefloating,"
2023-11-22 20:41:50 +00:00
"$mainMod, R, exec, ${pkgs.fuzzel}/bin/fuzzel"
2023-11-15 16:09:47 +00:00
"$mainMod, P, pseudo," # dwindle
"$mainMod, J, togglesplit," # dwindle
"$mainMod, T, togglegroup,"
"$mainMod, A, layoutmsg, swapwithmaster master"
"$mainMod, I, layoutmsg, orientationcenter"
"$mainMod, H, layoutmsg, orientationleft"
"$mainMod, L, layoutmsg, orientationright"
# Screenshots
#"SHIFT, PRINT, exec, hyprshot -m region"
''
2024-07-09 18:35:03 +00:00
$mainMod, PRINT, exec, ${pkgs.grim}/bin/grim -l 9 -g "$(${pkgs.slurp}/bin/slurp)" - | ${pkgs.swappy}/bin/swappy -f -''
2024-07-09 15:11:26 +00:00
''
2024-07-09 18:35:03 +00:00
$mainMod SHIFT, PRINT, exec, ${pkgs.grim}/bin/grim -l 9 - | ${pkgs.swappy}/bin/swappy -f -''
2023-11-15 16:09:47 +00:00
"$mainMod SHIFT, L, exec, $lockscreen"
# Move focus
"$mainMod, left, movefocus, l"
"$mainMod, right, movefocus, r"
"$mainMod, up, movefocus, u"
"$mainMod, down, movefocus, d"
# Move windows inside a workspace
2023-11-16 11:09:43 +00:00
"$mainMod SHIFT, a, movewindoworgroup, l"
"$mainMod SHIFT, d, movewindoworgroup, r"
2023-11-15 16:09:47 +00:00
#Handle tabbed windows
"$mainMod, tab, changegroupactive,"
"$mainMod SHIFT, T, lockactivegroup, toggle"
# Switch workspaces
2024-08-22 16:04:26 +00:00
"$mainMod, 1, split:workspace, 1"
"$mainMod, 2, split:workspace, 2"
"$mainMod, 3, split:workspace, 3"
"$mainMod, 4, split:workspace, 4"
"$mainMod, 5, split:workspace, 5"
"$mainMod, 6, split:workspace, 6"
"$mainMod, 7, split:workspace, 7"
"$mainMod, 8, split:workspace, 8"
"$mainMod, 9, split:workspace, 9"
2023-11-15 16:09:47 +00:00
# Move windows to workspaces
2024-08-22 16:04:26 +00:00
"$mainMod SHIFT, 1, split:movetoworkspace, 1"
"$mainMod SHIFT, 2, split:movetoworkspace, 2"
"$mainMod SHIFT, 3, split:movetoworkspace, 3"
"$mainMod SHIFT, 4, split:movetoworkspace, 4"
"$mainMod SHIFT, 5, split:movetoworkspace, 5"
"$mainMod SHIFT, 6, split:movetoworkspace, 6"
"$mainMod SHIFT, 7, split:movetoworkspace, 7"
"$mainMod SHIFT, 8, split:movetoworkspace, 8"
"$mainMod SHIFT, 9, split:movetoworkspace, 9"
# Swap workspaces
"$mainMod SHIFT, m, split:swapactiveworkspaces, current +1"
2023-11-15 16:09:47 +00:00
# Scroll through workspaces
"$mainMod, mouse_down, workspace, e+1"
"$mainMod, mouse_up, workspace, e-1"
# Special workspace
"SHIFT ALT, RETURN, togglespecialworkspace"
2024-07-09 18:35:03 +00:00
"$mainMod SHIFT, S, movetoworkspace, special"
2023-11-15 16:09:47 +00:00
];
# Mouse bindings
# 274: Middle mouse button
# 275: left near
# 276: left far
# 277: right near
# 278: right far
bindm = [
"$mainMod, mouse:272, movewindow"
"$mainMod, mouse:273, resizewindow"
];
windowrulev2 = [ "tile,class:(pharo)" ];
# Autostart
exec-once = [
"[workspace special] ${pkgs.kitty}/bin/kitty"
2024-10-04 08:13:35 +00:00
# "sleep 1; hyprctl dispatch layoutmsg orientationleft; hyprctl dispatch togglespecialworkspace"
2024-10-04 14:56:41 +00:00
"sleep 5 && blueman-applet &"
2023-11-15 16:09:47 +00:00
];
};
};
}