184 lines
6.4 KiB
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";
|
|
};
|
|
}
|