nixos-config/modules/home-manager/hyprland-customization.nix

152 lines
3.6 KiB
Nix

{inputs, pkgs, ...}:
{
programs.kitty.enable = true;
wayland.windowManager.hyprland = {
enable = true;
systemd.enable = true;
settings = {
"$mod" = "SUPER";
bind =
[
"$mod, F, exec, firefox"
"$mod, return, exec, walker"
"$mod_SHIFT, return, exec, kitty"
"$mod, s, exec, code"
"$mod, Q, killactive," # Close window
"$mod, T, togglefloating," # Toggle Floating
"$mod, left, movefocus, l" # Move focus left
"$mod, right, movefocus, r" # Move focus Right
"$mod, up, movefocus, u" # Move focus Up
"$mod, down, movefocus, d" # Move focus Down
# "$shiftMod, up, focusmonitor, -1" # Focus previous monitor
# "$shiftMod, down, focusmonitor, 1" # Focus next monitor
# "$shiftMod, left, layoutmsg, addmaster" # Add to master
# "$shiftMod, right, layoutmsg, removemaster" # Remove from master
];
general = {
resize_on_border = true;
gaps_in = 5;
gaps_out = 5;
border_size = 1;
layout = "master";
};
misc = {
disable_hyprland_logo = true;
};
input = {
kb_layout = "de";
kb_options = "caps:control";
numlock_by_default = true;
# mouse input should be unchanged
natural_scroll = false;
touchpad = {
disable_while_typing = false;
natural_scroll = true;
};
};
gestures = {
workspace_swipe = true;
workspace_swipe_fingers = 4;
workspace_swipe_touch = true;
};
decoration = {
rounding = 5;
};
# plugin.virtual-desktops = {}
monitor = [
"eDP-1, highres, 0x0, 1.5" # the internal laptop monitor
", preferred, auto, 1" # automatically add any newly detected monitor
];
};
plugins = [
# Touch gestures: https://github.com/horriblename/hyprgrass
# inputs.hyprgrass.packages.${pkgs.system}.default
# Virtual desktops: https://github.com/levnikmyskin/hyprland-virtual-desktops
# inputs.hyprland-virtual-desktops.packages.${pkgs.system}.virtual-desktops
];
};
imports = [ inputs.hyprpanel.homeManagerModules.hyprpanel ];
# the overlay makes this available as a home manager module
programs.hyprpanel = {
enable = true;
# autostart after hyprland
hyprland.enable = true;
overwrite.enable = true;
overlay.enable = true;
theme = "monochrome";
settings = {
bar = {
clock.format = "%H:%M";
clock.showIcon = false;
launcher.icon = "🚀";
launcher.autoDetectIcon = true;
workspaces.show_icons = true;
};
};
layout = {
"bar.layouts" = {
"*" = {
left = ["workspaces"];
middle = ["clock"];
right = ["volume" "systray" "nm-applet" "notifications" ];
};
};
};
};
programs.walker = {
enable = true;
runAsService = true;
# All options from the config.json can be used here.
config = {
search.placeholder = "Search";
ui.fullscreen = true;
list = {
height = 200;
};
websearch.prefix = "?";
switcher.prefix = "/";
};
# If this is not set the default styling is used.
# style = ''
# * {
# color: #dcd7ba;
# }
# '';
};
programs.hyprlock = {
enable = true;
settings = {
general = {
grace = 5;
no_fade_in = false;
disable_loading_bar = false;
};
};
# Style the lock screen
};
services.network-manager-applet = {
enable = true;
};
}