mirror of
https://github.com/anotherhadi/nixy.git
synced 2026-04-02 11:12:09 +02:00
177 lines
4.4 KiB
Nix
177 lines
4.4 KiB
Nix
# Hyprland is a dynamic tiling Wayland compositor that is highly customizable and performant.
|
|
{
|
|
pkgs,
|
|
config,
|
|
lib,
|
|
...
|
|
}: let
|
|
border-size = config.theme.border-size;
|
|
gaps-in = config.theme.gaps-in;
|
|
gaps-out = config.theme.gaps-out;
|
|
active-opacity = config.theme.active-opacity;
|
|
inactive-opacity = config.theme.inactive-opacity;
|
|
rounding = config.theme.rounding;
|
|
blur = config.theme.blur;
|
|
keyboardLayout = config.var.keyboardLayout;
|
|
background = "rgba(" + config.lib.stylix.colors.base00 + "EE)";
|
|
in {
|
|
imports = [
|
|
./animations.nix
|
|
./bindings.nix
|
|
./polkitagent.nix
|
|
./keyboard-backlight.nix # CHANGEME: This is for omen laptop only
|
|
];
|
|
|
|
home.packages = with pkgs; [
|
|
qt5.qtwayland
|
|
qt6.qtwayland
|
|
libsForQt5.qt5ct
|
|
qt6Packages.qt6ct
|
|
xcb-util-cursor
|
|
libxcb
|
|
hyprland-qtutils
|
|
adw-gtk3
|
|
hyprshot
|
|
hyprpicker
|
|
swappy
|
|
imv
|
|
wf-recorder
|
|
wlr-randr
|
|
brightnessctl
|
|
gnome-themes-extra
|
|
libva
|
|
dconf
|
|
wayland-utils
|
|
wayland-protocols
|
|
glib
|
|
direnv
|
|
meson
|
|
];
|
|
|
|
wayland.windowManager.hyprland = {
|
|
enable = true;
|
|
xwayland.enable = true;
|
|
systemd = {
|
|
enable = false;
|
|
variables = [
|
|
"--all"
|
|
]; # https://wiki.hyprland.org/Nix/Hyprland-on-Home-Manager/#programs-dont-work-in-systemd-services-but-do-on-the-terminal
|
|
};
|
|
package = null;
|
|
portalPackage = null;
|
|
|
|
settings = {
|
|
exec-once = [
|
|
"dbus-update-activation-environment --systemd --all &"
|
|
];
|
|
|
|
monitor = [
|
|
"eDP-2,highres,0x0,1" # My internal laptop screen
|
|
"desc:AOC U34G2G1 0x00000E06,3440x1440@99.98,auto,1" # My external monitor
|
|
"desc:Philips Consumer Electronics Company PHL 221B8L ZV02144013987,highres,0x0,1"
|
|
",prefered,auto,1" # default
|
|
];
|
|
|
|
env = [
|
|
"XDG_CURRENT_DESKTOP,Hyprland"
|
|
"MOZ_ENABLE_WAYLAND,1"
|
|
"ANKI_WAYLAND,1"
|
|
"DISABLE_QT5_COMPAT,0"
|
|
"NIXOS_OZONE_WL,1"
|
|
"XDG_SESSION_TYPE,wayland"
|
|
"XDG_SESSION_DESKTOP,Hyprland"
|
|
"QT_AUTO_SCREEN_SCALE_FACTOR,1"
|
|
"QT_QPA_PLATFORM,wayland;xcb"
|
|
"QT_QPA_PLATFORMTHEME,gtk3"
|
|
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
|
|
"ELECTRON_OZONE_PLATFORM_HINT,auto"
|
|
"__GL_GSYNC_ALLOWED,0"
|
|
"__GL_VRR_ALLOWED,0"
|
|
"DISABLE_QT5_COMPAT,0"
|
|
"DIRENV_LOG_FORMAT,"
|
|
"WLR_DRM_NO_ATOMIC,1"
|
|
"WLR_BACKEND,vulkan"
|
|
"WLR_RENDERER,vulkan"
|
|
"WLR_NO_HARDWARE_CURSORS,1"
|
|
"SDL_VIDEODRIVER,wayland"
|
|
"CLUTTER_BACKEND,wayland"
|
|
"AQ_DRM_DEVICES,/dev/dri/card2:/dev/dri/card1" # CHANGEME: Related to the GPU
|
|
];
|
|
|
|
cursor = {
|
|
no_hardware_cursors = true;
|
|
default_monitor = "eDP-2";
|
|
};
|
|
|
|
general = {
|
|
resize_on_border = true;
|
|
gaps_in = gaps-in;
|
|
gaps_out = gaps-out;
|
|
border_size = border-size;
|
|
layout = "master";
|
|
"col.inactive_border" = lib.mkForce background;
|
|
};
|
|
|
|
decoration = {
|
|
active_opacity = active-opacity;
|
|
inactive_opacity = inactive-opacity;
|
|
rounding = rounding;
|
|
shadow = {
|
|
enabled = true;
|
|
range = 20;
|
|
render_power = 3;
|
|
};
|
|
blur = {
|
|
enabled =
|
|
if blur
|
|
then "true"
|
|
else "false";
|
|
size = 18;
|
|
};
|
|
};
|
|
|
|
master = {
|
|
new_status = true;
|
|
allow_small_split = true;
|
|
mfact = 0.5;
|
|
};
|
|
|
|
gesture = "3, horizontal, workspace";
|
|
|
|
windowrule = [
|
|
"match:class proton-authenticator, float on"
|
|
"match:class proton-authenticator, suppress_event maximize"
|
|
"match:class proton-authenticator, center on"
|
|
"match:class proton-authenticator, size 500 400"
|
|
"match:class protonvpn-app, float on"
|
|
"match:class protonvpn-app, center on"
|
|
"match:class protonvpn-app, size 500 400"
|
|
];
|
|
|
|
misc = {
|
|
vfr = true;
|
|
disable_hyprland_logo = true;
|
|
disable_splash_rendering = true;
|
|
disable_autoreload = true;
|
|
focus_on_activate = true;
|
|
};
|
|
|
|
input = {
|
|
kb_layout = keyboardLayout;
|
|
|
|
kb_options = "caps:escape";
|
|
follow_mouse = 1;
|
|
sensitivity = 0.5;
|
|
repeat_delay = 300;
|
|
repeat_rate = 50;
|
|
numlock_by_default = true;
|
|
|
|
touchpad = {
|
|
natural_scroll = true;
|
|
clickfinger_behavior = true;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|