182 lines
6.1 KiB
Nix
182 lines
6.1 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
inputs,
|
|
osConfig,
|
|
...
|
|
}:
|
|
|
|
{
|
|
options = {
|
|
desktop = {
|
|
hyprland = {
|
|
monitors = lib.mkOption {
|
|
default = [
|
|
",preferred,auto,1"
|
|
];
|
|
description = "declare monitors";
|
|
};
|
|
workspaces = {
|
|
workspaces = lib.mkOption {
|
|
default = (
|
|
builtins.concatLists (
|
|
builtins.genList (
|
|
i:
|
|
let
|
|
ws = i + 1;
|
|
in
|
|
[
|
|
"${toString i},persistent:true"
|
|
]
|
|
) config.desktop.hyprland.workspaces.amount
|
|
)
|
|
);
|
|
description = "declare workspace";
|
|
};
|
|
amount = lib.mkOption {
|
|
default = 9;
|
|
description = "declare workspace amount";
|
|
};
|
|
};
|
|
numlock = lib.mkEnableOption "numlock by default";
|
|
};
|
|
};
|
|
};
|
|
|
|
config = lib.mkIf osConfig.desktop.window-managers.hyprland.enable {
|
|
xdg.portal = {
|
|
enable = true;
|
|
configPackages = [
|
|
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland
|
|
];
|
|
extraPortals = [
|
|
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland
|
|
pkgs.xdg-desktop-portal-xapp
|
|
pkgs.xdg-desktop-portal-gtk
|
|
|
|
];
|
|
config.common = {
|
|
"org.freedesktop.portal.OpenURI" = [
|
|
"*"
|
|
"hyprland"
|
|
];
|
|
};
|
|
};
|
|
wayland.windowManager.hyprland = {
|
|
enable = true;
|
|
xwayland.enable = true;
|
|
systemd.enable = false;
|
|
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
|
portalPackage =
|
|
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
|
settings = {
|
|
monitor = config.desktop.hyprland.monitors;
|
|
workspace = config.desktop.hyprland.workspaces.workspaces;
|
|
env = [
|
|
"XDG_CURRENT_DESKTOP,Hyprland"
|
|
"XDG_SESSION_TYPE,wayland"
|
|
"XDG_SESSION_DESKTOP,Hyprland"
|
|
];
|
|
exec-once = [
|
|
(lib.mkIf (osConfig.desktop.shell.walker.enable) "elephant")
|
|
(lib.mkIf (osConfig.desktop.shell.walker.enable) "walker --gapplication-service")
|
|
(lib.mkIf (osConfig.desktop.shell.waybar.enable) "waybar")
|
|
(lib.mkIf (osConfig.desktop.shell.noctalia.enable) "noctalia-shell")
|
|
(lib.mkIf (osConfig.desktop.shell.noctalia.enable) "noctalia-shell ipc call wallpaper random")
|
|
(lib.mkIf (osConfig.desktop.shell.swww.enable) "waypaper --restore --random")
|
|
(lib.mkIf (osConfig.apps.gaming.steam.enable) "adwaita-steam-gtk -u; steam -silent")
|
|
(lib.mkIf (osConfig.apps.internet.mail.providers.protonmail.enable) "protonmail-bridge -n")
|
|
"echo $HYPRLAND_INSTANCE_SIGNATURE > ~/.config/hypr/instance_signature"
|
|
];
|
|
"$mod" = "SUPER";
|
|
"$shiftmod" = "SUPER_SHIFT";
|
|
"$controlmod" = "SUPER_CTRL";
|
|
bind = [
|
|
|
|
(lib.mkIf (osConfig.desktop.shell.walker.enable) "$mod, D, exec, walker")
|
|
(lib.mkIf (osConfig.desktop.shell.rofi.enable) "$mod, D, exec, rofi -show drun")
|
|
"$mod, return, exec, ${osConfig.apps.terminal.binary}"
|
|
(lib.mkIf (osConfig.desktop.utilities.grimblast.enable) ", print, exec, GRIMBLAST_EDITOR=gradia grimblast edit area")
|
|
(lib.mkIf (osConfig.desktop.shell.walker.enable && osConfig.apps.misc.bitwarden.enable)
|
|
"$mod, B, exec, rbw unlocked || kitty --class kitty-floating -e rbw unlock; selected=$(rbw list | walker -d); wl-copy $(rbw get \"$selected\"); sleep 30; rbw lock"
|
|
)
|
|
"$mod, F, fullscreen, 1"
|
|
"$shiftmod, F, fullscreen, 0"
|
|
"$shiftmod, Q, killactive,"
|
|
"$mod, S, togglespecialworkspace, magic"
|
|
"$mod, O, exec, zen"
|
|
"$shiftmod, S, movetoworkspace, special:magic"
|
|
"$controlmod, right, workspace, m+1"
|
|
"$controlmod, left, workspace, m-1"
|
|
"$mod, mouse_down, workspace, m-1"
|
|
"$mod, mouse_up, workspace, m+1"
|
|
"$mod, left, movefocus, l"
|
|
"$mod, right, movefocus, r"
|
|
"$mod, up, movefocus, u"
|
|
"$mod, down, movefocus, d"
|
|
"$mod, J, exec, playerctl previous"
|
|
"$mod, K, exec, playerctl play-pause"
|
|
"$mod, L, exec, playerctl next"
|
|
"$mod, G, togglefloating,"
|
|
"$mod, F1, exec, hyprlock"
|
|
"$shiftmod, E, exec, codium"
|
|
"$controlmod, up, exec, light -A 10"
|
|
"$controlmod, down, exec, light -U 10"
|
|
"$controlmod, Q, exec, hyprctl kill"
|
|
|
|
]
|
|
++ (builtins.concatLists (
|
|
builtins.genList (
|
|
i:
|
|
let
|
|
ws = i + 1;
|
|
in
|
|
[
|
|
"$mod, code:1${toString i}, workspace, ${toString ws}"
|
|
"$shiftmod, code:1${toString i}, movetoworkspacesilent, ${toString ws}"
|
|
]
|
|
) config.desktop.hyprland.workspaces.amount
|
|
));
|
|
bindm = [
|
|
"$mod, mouse:272, movewindow"
|
|
"$mod, mouse:273, resizewindow"
|
|
];
|
|
bindel = [
|
|
",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"
|
|
",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
|
];
|
|
input = {
|
|
kb_layout = "de";
|
|
numlock_by_default = config.desktop.hyprland.numlock;
|
|
follow_mouse = 2;
|
|
mouse_refocus = false;
|
|
accel_profile = "flat";
|
|
sensitivity = 0.2;
|
|
touchpad = {
|
|
natural_scroll = "no";
|
|
disable_while_typing = true;
|
|
};
|
|
};
|
|
cursor = {
|
|
inactive_timeout = 0;
|
|
no_warps = true;
|
|
};
|
|
decoration = {
|
|
rounding = 20;
|
|
blur = {
|
|
enabled = true;
|
|
size = 3;
|
|
passes = 1;
|
|
};
|
|
shadow = {
|
|
range = 4;
|
|
render_power = 3;
|
|
color = "rgba(1a1a1aee)";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
home.sessionVariables.NIXOS_OZONE_WL = "1";
|
|
};
|
|
}
|