config.nix/home/desktop/window-managers/hyprland.nix

184 lines
6.4 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;
configType = "lua";
systemd = {
enable = false;
variables = [ "--all" ];
};
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";
# bind = [
# (lib.mkIf (osConfig.desktop.shell.walker.enable) "$mod, D, exec, noctalia-shell ipc call launcher toggle || walker")
# (lib.mkIf (osConfig.desktop.shell.rofi.enable) "$mod, D, exec, noctalia-shell ipc call launcher toggle || 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"
# "$mod SHIFT, F, fullscreen, 0"
# "$mod SHIFT, Q, killactive,"
# "$mod, S, togglespecialworkspace, magic"
# "$mod, O, exec, zen"
# "$mod SHIFT, S, movetoworkspace, special:magic"
# "$mod CTRL, right, workspace, m+1"
# "$mod CTRL, 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"
# "$mod SHIFT, E, exec, codium"
# "$mod CTRL, up, exec, light -A 10"
# "$mod CTRL, down, exec, light -U 10"
# "$mod CTRL, Q, exec, hyprctl kill"
# ]
# ++ (builtins.concatLists (
# builtins.genList (
# i:
# let
# ws = i + 1;
# in
# [
# "$mod, code:1${toString i}, workspace, ${toString ws}"
# "$mod SHIFT, 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";
};
}