1
0
Fork 0
forked from lukas/nixos-config
nixos-config/home/tnix/localModules/hyprland.nix
2026-07-27 20:07:18 +02:00

142 lines
4.2 KiB
Nix
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
# Terminal emulator - required for default Hyprland config
programs.kitty.enable = false;
# Hyprland window manager configuration
wayland.windowManager.hyprland = {
enable = true;
extraLuaFiles.clock.content = ''
hl.window_rule({
name = "clock",
match = {
title = "^clock$",
},
float = true,
pin = true,
nofocus = true,
rounding = 5,
size = { 60, 20 },
move = "100%-w-20 20",
})
'';
settings = {
# Global variables
"$mod" = "SUPER";
# Monitor configuration
monitor = [
"eDP-1,1920x1080@60,0x0,1"
"HDMI-A-2,1920x1080@60,1920x0,1,transform,0"
];
# Autostart applications
exec-once = [
"waybar"
"hyprpaper &"
];
# Input configuration
input = {
kb_layout = "de";
natural_scroll = false;
kb_options = "ctrl:nocaps";
};
# Window rules
# windowrulev2 = [
# # --- Regeln für clock---
# "float, title:^(clock)$"
# "pin, title:^(clock)$"
# "nofocus, title:^(clock)$"
# "rounding 5, title:^(clock)$"
# "size 60 20, title:^(clock)$"
# "move 100%-w-20 20, title:^(clock)$"
# ];
# Keybindings
bind = [
# Drive management
"SUPER, U, exec, bash -c 'udiskie-umount -a && rm -f ~/juno && rm -f ~/LukasDisk && hyprctl notify -1 5000 \"rgb(00ff00)\" \"💿 Laufwerke ausgehängt\" || hyprctl notify -1 5000 \"rgb(ff0000)\" \"⚠️ Aushängen fehlgeschlagen\"'"
"SUPER_SHIFT, U, exec, bash -c 'udiskie-mount -a && ln -sfn /run/media/builder/juno ~/juno && ln -sfn /run/media/builder/LukasDisk ~/LukasDisk && hyprctl notify -1 5000 \"rgb(00ff00)\" \"📁 Laufwerke eingehängt\" || hyprctl notify -1 5000 \"rgb(ff0000)\" \"⚠️ Einhängen fehlgeschlagen\"'"
# Workspace navigation
"SUPER, H, workspace, 1"
"SUPER, J, workspace, 2"
"SUPER, K, workspace, 3"
"SUPER, L, workspace, 4"
# Window management
"SUPER, Q, killactive"
"SUPER, E, exec, hyprctl dispatch exit"
"SUPER, TAB, cyclenext"
# Application launchers
"SUPER, SPACE, exec, tofi-drun --drun-launch=true --font ~/.config/fontconfig/conf.d/monospace.medium.ttf"
"SUPER, D, exec, bash -c 'tofi-run --font ~/.config/fontconfig/conf.d/monospace.bold.ttf | xargs -r hyprctl dispatch exec --'"
# Applications
"SUPER, P, exec, keepassxc"
"SUPER, A, exec, kitty"
"SUPER, T, exec, kitten quick-access-terminal"
"SUPER, Z, exec, clock"
"SUPER, N, exec, kitty -e v"
"SUPER, M, exec, alacritty -e aerc"
"SUPER, B, exec, kitty -e btop"
# Browsers
"SUPER, O, exec, qutebrowser --target window --set tabs.show never --set statusbar.show in-mode --set scrolling.bar never desk.0ff.space"
"SUPER, F, exec, qutebrowser"
# Screenshot
", Print, exec, grimblast copy area"
# Volume controls
", F2, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
", F3, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
# Brightness controls
", F5, exec, brightnessctl set 5%-"
", F6, exec, brightnessctl set 5%+"
# Wallpaper toggle
"SUPER, W, exec, theme-toggle"
] ++ (
# Dynamic workspace bindings (1-9)
builtins.concatLists (builtins.genList (i:
let ws = i + 1; in [
"$mod, code:1${toString i}, workspace, ${toString ws}"
"$mod SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}"
]
) 9)
);
# General appearance
general = {
border_size = "1";
"col.inactive_border" = "rgba(0,0,0,0)";
"col.active_border" = "rgba(0,0,0,0)";
};
# Window decoration
decoration = {
rounding = "5";
};
# Miscellaneous settings
misc = {
disable_hyprland_logo = true;
};
};
};
# Waybar status bar configuration
# programs.waybar = {
# enable = true;
# settings = {
# mainBar = {
# layer = "top";
# position = "top";
# };
# };
# };
}