110 lines
2.7 KiB
Nix
110 lines
2.7 KiB
Nix
{pkgs, ...}: {
|
|
wayland.windowManager.hyprland = {
|
|
# Whether to enable Hyprland wayland compositor
|
|
enable = true;
|
|
# The hyprland package to use
|
|
package = pkgs.hyprland;
|
|
# Whether to enable XWayland
|
|
xwayland.enable = true;
|
|
plugins = [
|
|
pkgs.hyprlandPlugins.hyprspace
|
|
pkgs.hyprlandPlugins.hyprgrass
|
|
];
|
|
|
|
# Optional
|
|
# Whether to enable hyprland-session.target on hyprland startup
|
|
systemd.enable = true;
|
|
|
|
settings = {
|
|
xwayland = {
|
|
force_zero_scaling = true;
|
|
};
|
|
|
|
"$mainMod" = "SUPER";
|
|
"$terminal" = "kitty";
|
|
"$fileManager" = "dolphin";
|
|
"$browser" = "firefox";
|
|
"$editor" = "codium";
|
|
|
|
exec-once = [
|
|
# run once on startup
|
|
];
|
|
|
|
bind = [
|
|
# Manage Windows
|
|
"$mainMod, Tab, overview:toggle,"
|
|
|
|
# Launch Bindings
|
|
"$mainMod, Enter, exec, rofi -show drun"
|
|
"$mainMod, T, exec, $terminal"
|
|
"$mainMod, B, exec, $browser"
|
|
"$mainMod, C, exec, $editor"
|
|
"$mainMod, Q, killactive,"
|
|
"$mainMod, M, exit,"
|
|
"$mainMod, F, exec, $fileManager"
|
|
"$mainMod, W, togglefloating,"
|
|
|
|
# Volume and Media Controls
|
|
", XF86AudioRaiseVolume, exec, pamixer -i 5"
|
|
", XF86AudioLowerVolume, exec, pamixer -d 5"
|
|
", XF86AudioMicMute, exec, pamixer --default-source -m"
|
|
", XF86AudioMute, exec, pamixer -t"
|
|
", XF86AudioPlay, exec, playerctl play-pause"
|
|
", XF86AudioPause, exec, playerctl play-pause"
|
|
", XF86AudioNext, exec, playerctl next"
|
|
", XF86AudioPrev, exec, playerctl previous"
|
|
|
|
# Brightness
|
|
", XF86MonBrightnessUp, exec, brightnessctl s +5%"
|
|
", XF86MonBrightnessDown, exec, brightnessctl s 5%-"
|
|
];
|
|
|
|
bindm = [
|
|
# mouse movements
|
|
"$mainMod, mouse:272, movewindow"
|
|
"$mainMod, mouse:273, resizewindow"
|
|
];
|
|
|
|
input = {
|
|
touchpad = {
|
|
natural_scroll = true;
|
|
};
|
|
};
|
|
|
|
gestures = {
|
|
"workspace_swipe" = true;
|
|
"workspace_swipe_fingers" = 3;
|
|
};
|
|
|
|
workspace = ["special:exposed,gapsout:60,gapsin:30,bordersize:5,border:true,shadow:false"];
|
|
};
|
|
};
|
|
programs.ags = {
|
|
enable = true;
|
|
|
|
# null or path, leave as null if you don't want hm to manage the config
|
|
configDir = ./ags;
|
|
|
|
# additional packages to add to gjs's runtime
|
|
extraPackages = with pkgs; [
|
|
gtksourceview
|
|
webkitgtk
|
|
accountsservice
|
|
];
|
|
};
|
|
|
|
programs.rofi = {
|
|
enable = true;
|
|
package = pkgs.rofi-wayland;
|
|
};
|
|
|
|
programs.kitty = {
|
|
enable = true;
|
|
package = pkgs.kitty;
|
|
};
|
|
|
|
home.packages = with pkgs; [
|
|
brightnessctl
|
|
];
|
|
}
|