Migrate Hyprland to Lua config, drop dead flake inputs, general cleanup
Hyprland - Switch wayland.windowManager.hyprland to configType = "lua" (Hyprland 0.56) - Convert settings, env, monitors, window rules, gesture, animations (hl.curve/hl.animation) and all keybinds to hl.* calls - Add home/system/hyprland/lib.nix with exec/bind/execOnce helpers; every exec-once now runs from a hyprland.start hook - Drop hard-coded default_monitor = "eDP-2" Flake - Remove blog, awesome-wallpapers and default-creds inputs (their repos no longer ship a flake.nix and broke `nix flake update`), along with the server modules and Glance links that used them - Update flake.lock - Replace removed `gcr` with `gcr_4` Fixes - Point configDirectory at /etc/nixos/nixy on home-pc and thinkpad - Fix home-pc git email typo - Remove conflicting openpgp signing format, make pull.rebase a boolean, replace hx/peco in git aliases with nvim/sk - Fix zsh NUL alias (2>&1) and stop forcing bat colors in the cat alias - Require a password for sudo again (nixos-rebuild stays NOPASSWD) - Remove duplicate hardware.graphics block from home-pc flake - Delete unused zen .old files, run alejandra on host files
This commit is contained in:
+126
-104
@@ -14,6 +14,7 @@
|
||||
blur = config.theme.blur;
|
||||
keyboardLayout = config.var.keyboardLayout;
|
||||
background = "rgba(" + config.lib.stylix.colors.base00 + "EE)";
|
||||
hl = import ./lib.nix {inherit lib;};
|
||||
in {
|
||||
imports = [
|
||||
./animations.nix
|
||||
@@ -48,7 +49,7 @@ in {
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
configType = "hyprlang";
|
||||
configType = "lua";
|
||||
xwayland.enable = true;
|
||||
systemd = {
|
||||
enable = false;
|
||||
@@ -60,116 +61,137 @@ in {
|
||||
portalPackage = null;
|
||||
|
||||
settings = {
|
||||
exec-once = [
|
||||
on = hl.execOnce [
|
||||
"dbus-update-activation-environment --systemd --all &"
|
||||
];
|
||||
|
||||
# default for every monitor without an explicit rule (hosts add their own)
|
||||
monitor = [
|
||||
",prefered,auto,1" # default
|
||||
{
|
||||
output = "";
|
||||
mode = "preferred";
|
||||
position = "auto";
|
||||
scale = 1;
|
||||
}
|
||||
];
|
||||
|
||||
env = [
|
||||
"XDG_CURRENT_DESKTOP,Hyprland"
|
||||
"XDG_SESSION_TYPE,wayland"
|
||||
"XDG_SESSION_DESKTOP,Hyprland"
|
||||
"ANKI_WAYLAND,1"
|
||||
"DISABLE_QT5_COMPAT,0"
|
||||
"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"
|
||||
"DIRENV_LOG_FORMAT,"
|
||||
"SDL_VIDEODRIVER,wayland"
|
||||
"CLUTTER_BACKEND,wayland"
|
||||
env = lib.mapAttrsToList (name: value: {_args = [name value];}) {
|
||||
XDG_CURRENT_DESKTOP = "Hyprland";
|
||||
XDG_SESSION_TYPE = "wayland";
|
||||
XDG_SESSION_DESKTOP = "Hyprland";
|
||||
ANKI_WAYLAND = "1";
|
||||
DISABLE_QT5_COMPAT = "0";
|
||||
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";
|
||||
DIRENV_LOG_FORMAT = "";
|
||||
SDL_VIDEODRIVER = "wayland";
|
||||
CLUTTER_BACKEND = "wayland";
|
||||
};
|
||||
|
||||
config = {
|
||||
cursor.no_hardware_cursors = true;
|
||||
|
||||
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;
|
||||
inherit rounding;
|
||||
shadow = {
|
||||
enabled = true;
|
||||
range = 20;
|
||||
render_power = 3;
|
||||
};
|
||||
blur = {
|
||||
enabled = blur;
|
||||
size = 18;
|
||||
};
|
||||
};
|
||||
|
||||
master = {
|
||||
new_status = "slave";
|
||||
allow_small_split = true;
|
||||
mfact = 0.5;
|
||||
};
|
||||
|
||||
misc = {
|
||||
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.0; # or whatever speed you prefer
|
||||
accel_profile = "flat";
|
||||
|
||||
repeat_delay = 300;
|
||||
repeat_rate = 50;
|
||||
numlock_by_default = true;
|
||||
|
||||
touchpad = {
|
||||
natural_scroll = true;
|
||||
clickfinger_behavior = true;
|
||||
};
|
||||
};
|
||||
|
||||
ecosystem.no_update_news = true;
|
||||
};
|
||||
|
||||
gesture = {
|
||||
fingers = 3;
|
||||
direction = "horizontal";
|
||||
action = "workspace";
|
||||
};
|
||||
|
||||
window_rule = [
|
||||
{
|
||||
name = "suppress-maximize";
|
||||
match.class = ".*";
|
||||
suppress_event = "maximize";
|
||||
}
|
||||
{
|
||||
name = "helium-fullscreen";
|
||||
match.class = "helium";
|
||||
suppress_event = "fullscreen";
|
||||
sync_fullscreen = false;
|
||||
}
|
||||
{
|
||||
name = "proton-authenticator";
|
||||
match.class = "proton-authenticator";
|
||||
float = true;
|
||||
center = true;
|
||||
size = [500 400];
|
||||
}
|
||||
{
|
||||
name = "protonvpn-app";
|
||||
match.class = "protonvpn-app";
|
||||
float = true;
|
||||
center = true;
|
||||
size = [500 400];
|
||||
}
|
||||
{
|
||||
name = "run-bg";
|
||||
match.title = "run-bg";
|
||||
float = true;
|
||||
center = true;
|
||||
size = [700 80];
|
||||
}
|
||||
];
|
||||
|
||||
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 = "slave";
|
||||
allow_small_split = true;
|
||||
mfact = 0.5;
|
||||
};
|
||||
|
||||
gesture = "3, horizontal, workspace";
|
||||
|
||||
windowrule = [
|
||||
"match:class .*, suppress_event maximize"
|
||||
"match:class helium, suppress_event fullscreen"
|
||||
"match:class helium, sync_fullscreen false"
|
||||
|
||||
"match:class proton-authenticator, float on"
|
||||
"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"
|
||||
|
||||
"match:title run-bg, float on"
|
||||
"match:title run-bg, center on"
|
||||
"match:title run-bg, size 700 80"
|
||||
];
|
||||
|
||||
misc = {
|
||||
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.0; # or whatever speed you prefer
|
||||
accel_profile = "flat";
|
||||
|
||||
repeat_delay = 300;
|
||||
repeat_rate = 50;
|
||||
numlock_by_default = true;
|
||||
|
||||
touchpad = {
|
||||
natural_scroll = true;
|
||||
clickfinger_behavior = true;
|
||||
};
|
||||
};
|
||||
|
||||
ecosystem = {
|
||||
no_update_news = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user