276 lines
8.1 KiB
Nix
276 lines
8.1 KiB
Nix
args@{ config, lib, inputs, pkgs, wayland, ... }:
|
|
|
|
{
|
|
|
|
# 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);
|
|
# };
|
|
|
|
home.packages = with pkgs; [
|
|
hyprland-qtutils
|
|
xdg-desktop-portal-hyprland
|
|
hyprpaper
|
|
];
|
|
|
|
home.file.".config/xdg-desktop-portal/hyprland-portals.conf" = {
|
|
enable = false;
|
|
text = ''
|
|
[preferred]
|
|
default=hyprland;gtk
|
|
org.freedesktop.impl.portal.FileChooser=kde
|
|
'';
|
|
};
|
|
|
|
wayland.windowManager.hyprland = {
|
|
enable = true;
|
|
systemd.enable = true;
|
|
systemd.variables = ["--all"];
|
|
plugins = with pkgs.hyprlandPlugins; [
|
|
hyprsplit
|
|
];
|
|
settings = {
|
|
source =
|
|
[
|
|
"~/.config/hypr/monitors.conf"
|
|
#"~/.config/hypr/catppuccino.conf"
|
|
];
|
|
input = {
|
|
kb_layout = "de";
|
|
kb_options = "caps:swapescape";
|
|
follow_mouse = 1;
|
|
touchpad = { natural_scroll = false; };
|
|
sensitivity = 0;
|
|
};
|
|
general = {
|
|
gaps_in = 15;
|
|
gaps_out = 20;
|
|
border_size = 2;
|
|
resize_on_border = true;
|
|
"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
|
"col.inactive_border" = "rgba(595959aa)";
|
|
layout = "master";
|
|
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
|
allow_tearing = false;
|
|
};
|
|
misc = {
|
|
force_default_wallpaper = -1;
|
|
vfr = true;
|
|
vrr = 1;
|
|
animate_manual_resizes = true;
|
|
};
|
|
decoration = {
|
|
rounding = 10;
|
|
blur = {
|
|
enabled = true;
|
|
size = 3;
|
|
passes = 1;
|
|
};
|
|
};
|
|
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 = {
|
|
new_status = "slave";
|
|
orientation = "center";
|
|
#workspace = "w[g2], layoutopt:orientation:left";
|
|
slave_count_for_center_master = 0;
|
|
mfact = 0.5;
|
|
special_scale_factor = 0.8;
|
|
};
|
|
gestures = { workspace_swipe = false; };
|
|
|
|
"$lockscreen" = "${pkgs.hyprlock}/bin/hyprlock";
|
|
"$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,"
|
|
"$mainMod, R, exec, ${pkgs.fuzzel}/bin/fuzzel"
|
|
"$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"
|
|
''
|
|
$mainMod, PRINT, exec, ${pkgs.grim}/bin/grim -l 9 -g "$(${pkgs.slurp}/bin/slurp)" - | ${pkgs.swappy}/bin/swappy -f -''
|
|
''
|
|
$mainMod SHIFT, PRINT, exec, ${pkgs.grim}/bin/grim -l 9 - | ${pkgs.swappy}/bin/swappy -f -''
|
|
"$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
|
|
"$mainMod SHIFT, a, movewindoworgroup, l"
|
|
"$mainMod SHIFT, d, movewindoworgroup, r"
|
|
|
|
#Handle tabbed windows
|
|
"$mainMod, tab, changegroupactive,"
|
|
"$mainMod SHIFT, T, lockactivegroup, toggle"
|
|
|
|
# Switch workspaces
|
|
"$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"
|
|
# Move windows to workspaces
|
|
"$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"
|
|
# Scroll through workspaces
|
|
"$mainMod, mouse_down, workspace, e+1"
|
|
"$mainMod, mouse_up, workspace, e-1"
|
|
# Special workspace
|
|
"SHIFT ALT, RETURN, togglespecialworkspace"
|
|
"$mainMod SHIFT, S, movetoworkspace, special"
|
|
];
|
|
|
|
# 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"
|
|
# "sleep 1; hyprctl dispatch layoutmsg orientationleft; hyprctl dispatch togglespecialworkspace"
|
|
"sleep 5 && blueman-applet &"
|
|
];
|
|
};
|
|
};
|
|
|
|
programs.hyprlock = {
|
|
enable = true;
|
|
settings = {
|
|
general = {
|
|
grace = 3;
|
|
};
|
|
background = {
|
|
path = "screenshot";
|
|
blur_passes = 2;
|
|
blur_size = 8;
|
|
noise = 1.17e-2;
|
|
contrast = 0.8916;
|
|
brightness = 0.8172;
|
|
vibrancy = 0.1696;
|
|
vibrancy_darkness = 0.0;
|
|
};
|
|
input-field = {
|
|
size = "200, 50";
|
|
outline_thickness = 3;
|
|
dots_size = 0.33;
|
|
dots_spacing = 0.15;
|
|
dots_center = true;
|
|
dots_rounding = -1;
|
|
outer_color = "rgb(151515)";
|
|
inner_color = "rgb(200,200,200)";
|
|
font_color = "rgb(10,10,10)";
|
|
fade_on_empty = true;
|
|
fade_timeout = 1000;
|
|
placeholder_text = "<i>Input Password...</i>";
|
|
hide_input = false;
|
|
rounding = -1;
|
|
check_color = "rgb(204,136,34)";
|
|
fail_color = "rgb(204,34,34)";
|
|
fail_text = "<i>$FAIL <b>($ATTEMPTS)</b></i>";
|
|
fail_transition = 300;
|
|
capslock_color = -1;
|
|
numlock_color = -1;
|
|
bothlock_color = -1;
|
|
invert_numlock = false;
|
|
position = "0, -20";
|
|
halign = "center";
|
|
valign = "center";
|
|
};
|
|
};
|
|
};
|
|
|
|
services.hypridle = {
|
|
enable = true;
|
|
settings = {
|
|
general = {
|
|
after_sleep_cmd = "hyprctl dispatch dpms on";
|
|
};
|
|
listener = [
|
|
{
|
|
timeout = 300;
|
|
on-timeout = "${pkgs.hyprlock}/bin/hyprlock";
|
|
}
|
|
# {
|
|
# timeout = 1200;
|
|
# on-timeout = "hyprctl dispatch dpms off";
|
|
# on-resume = "hyprctl dispatch dpms on";
|
|
# }
|
|
];
|
|
};
|
|
};
|
|
|
|
services.hyprpaper = {
|
|
enable = true;
|
|
settings = {
|
|
ipc = "on";
|
|
splash = true;
|
|
splash_offset = 2.0;
|
|
preload = [
|
|
"${config.home.homeDirectory}/Stow/Desktop/config/wallpapers/Next/contents/images/3840x2160.png"
|
|
];
|
|
wallpaper = [
|
|
",${config.home.homeDirectory}/Stow/Desktop/config/wallpapers/Next/contents/images/3840x2160.png"
|
|
];
|
|
};
|
|
};
|
|
|
|
}
|