translate hyprland config form hyprlang to lua

This commit is contained in:
tom committed 2026-07-30 19:20:47 +02:00
1 parent 7f3a5de7af
commit 8aa212287e
7 files changed
+461 -50

No files matched your search

+3
View File
@@ -30,6 +30,9 @@ hoem : home
home :
home-manager switch $(FLAGS) --flake $(FLAKE)#$(HOST)
home_build :
home-manager build $(FLAGS) --flake $(FLAKE)#$(HOST)
iso :
nix build ".#nixosConfigurations.iso.config.system.build.isoImage" $(FLAGS)
cp result/iso/*.iso nixos.iso
Generated
+12 -12
View File
@@ -49,11 +49,11 @@
},
"locked": {
"dir": "pkgs/firefox-addons",
"lastModified": 1785038882,
"narHash": "sha256-Y5V6bOp5VQjoll+TeFmUki00cSnWAD88wOr/N0c+VNE=",
"lastModified": 1785384175,
"narHash": "sha256-sWSJPXpQwKJstL4rdhpAQYCYlHK5wOkEHR8/lNHBVb4=",
"owner": "rycee",
"repo": "nur-expressions",
"rev": "f352fe54c0d939110314aebfd6b442417a42add7",
"rev": "db607f3d0afe811bcb3b16266f28b2fc5af4e74f",
"type": "gitlab"
},
"original": {
@@ -86,11 +86,11 @@
]
},
"locked": {
"lastModified": 1785119578,
"narHash": "sha256-3VMVuOJ6fK+RNOXVmqusqUwQ1sDfPeddNKaM2JR/4Y0=",
"lastModified": 1785306346,
"narHash": "sha256-DScBkW0fOgpGPK2trNoX3ryLTlaC14+gglFo/BhGJ4g=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "e83dffa86cccb6237fe194d4eeb47f41557749d1",
"rev": "e705714e918c3b11affcdd15db2cbe3a070420a0",
"type": "github"
},
"original": {
@@ -105,11 +105,11 @@
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1784723954,
"narHash": "sha256-1CfD8ZUjCkTgjsneLZ/lxCHhgDfqxxE7/GX0MmsgiqA=",
"lastModified": 1785232496,
"narHash": "sha256-65EQYIRRpTdpH8lUiB6Mvo5uBkG60aBIzAJuALfx+O0=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "a017f5b72210026af5b3ac5949f08d94380a6fbd",
"rev": "2e790b0a6be8ec2b76174ac0931b8ff11919ec98",
"type": "github"
},
"original": {
@@ -163,11 +163,11 @@
},
"nixpkgs_4": {
"locked": {
"lastModified": 1785123290,
"narHash": "sha256-+vECnXV36K2WUk4oqy1Km5Ar7dD+D3Os821DBXCCadw=",
"lastModified": 1785409586,
"narHash": "sha256-x8WYE/K5rBKPsKAj5uTNvhYcm9BD5klBjnDjL0i8EVA=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "bcca8dd3bba0686b330fba113dc545b5988f4235",
"rev": "907474235e34c9d0d49a40c3d12f7ccfcf367178",
"type": "github"
},
"original": {
+1 -1
View File
@@ -15,7 +15,7 @@
gtk = {
enable = true;
theme = { package = pkgs.magnetic-catppuccin-gtk; name = "Catppuccin-GTK-Dark"; };
theme = { package = pkgs.yaru-remix-theme; name = "Yaru-remix-dark"; };
gtk4.theme = config.gtk.theme;
font = { name = "Sans"; size = 11; };
};
@@ -0,0 +1,403 @@
{lib, pkgs, ... }:
{
wayland.windowManager.hyprland.systemd.variables = [ "--all" ];
programs.hyprshot.enable = true;
catppuccin.hyprland.enable = false;
home.shellAliases.hl = "Hyprland";
wayland.windowManager.hyprland.enable = true;
wayland.windowManager.hyprland.configType = "lua";
wayland.windowManager.hyprland.settings = {
mod = { _var = "SUPER"; };
bind = [
{ _args = [
"Print"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"hyprshot -m region -o ~/screenshots -f $(date +%Y-%m-%d_%H-%M-%S).png\")")
]; }
{ _args = [
"SHIFT + Print"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"hyprshot -m output -m active -o ~/screenshots -f $(date +%Y-%m-%d_%H-%M-%S).png\")")
]; }
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + Return\"")
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"alacritty\")")
]; }
{ _args = [
"CTRL + ALT + Q"
(lib.generators.mkLuaInline "hl.dsp.window.close()")
];}
{ _args = [
"CTRL + ALT + SHIFT + Q"
(lib.generators.mkLuaInline "hl.dsp.window.kill()")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + ALT + Q\"")
(lib.generators.mkLuaInline "hl.dsp.exit()")
{long_press = true; }
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + S\"")
(lib.generators.mkLuaInline "hl.dsp.window.float({action = \"toggle\"})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + I\"")
(lib.generators.mkLuaInline "hl.dsp.window.pin({action = \"toggle\"})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + D\"")
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${lib.getExe pkgs.rofi} -show drun -show-icons\")")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + SHIFT + D\"")
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${lib.getExe pkgs.rofi} -show run -show-icons\")")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + M\"")
(lib.generators.mkLuaInline "hl.dsp.window.fullscreen({mode = \"maximized\", action = \"toggle\"})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + F\"")
(lib.generators.mkLuaInline "hl.dsp.window.fullscreen({mode = \"fullscreen\", action = \"toggle\"})")
];}
# Move focus
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + H\"")
(lib.generators.mkLuaInline "hl.dsp.focus({direction = \"l\"})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + L\"")
(lib.generators.mkLuaInline "hl.dsp.focus({direction = \"r\"})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + K\"")
(lib.generators.mkLuaInline "hl.dsp.focus({direction = \"u\"})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + J\"")
(lib.generators.mkLuaInline "hl.dsp.focus({direction = \"d\"})")
];}
#swap windows
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + SHIFT + H\"")
(lib.generators.mkLuaInline "hl.dsp.window.swap({direction = \"l\"})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + SHIFT + L\"")
(lib.generators.mkLuaInline "hl.dsp.window.swap({direction = \"r\"})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + SHIFT + K\"")
(lib.generators.mkLuaInline "hl.dsp.window.swap({direction = \"u\"})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + SHIFT + J\"")
(lib.generators.mkLuaInline "hl.dsp.window.swap({direction = \"d\"})")
];}
# Switch workspaces with mainMod + [0-9]
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + 1\"")
(lib.generators.mkLuaInline "hl.dsp.focus({workspace = \"1\"})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + 2\"")
(lib.generators.mkLuaInline "hl.dsp.focus({workspace = \"2\"})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + 3\"")
(lib.generators.mkLuaInline "hl.dsp.focus({workspace = \"3\"})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + 4\"")
(lib.generators.mkLuaInline "hl.dsp.focus({workspace = \"4\"})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + 5\"")
(lib.generators.mkLuaInline "hl.dsp.focus({workspace = \"5\"})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + 6\"")
(lib.generators.mkLuaInline "hl.dsp.focus({workspace = \"6\"})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + 7\"")
(lib.generators.mkLuaInline "hl.dsp.focus({workspace = \"7\"})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + 8\"")
(lib.generators.mkLuaInline "hl.dsp.focus({workspace = \"8\"})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + 9\"")
(lib.generators.mkLuaInline "hl.dsp.focus({workspace = \"9\"})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + 0\"")
(lib.generators.mkLuaInline "hl.dsp.focus({workspace = \"10\"})")
];}
# Move active window to a workspace with mainMod + SHIFT + [0-9]
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + SHIFT + 1\"")
(lib.generators.mkLuaInline "hl.dsp.window.move({workspace = \"1\", follow = false})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + SHIFT + 2\"")
(lib.generators.mkLuaInline "hl.dsp.window.move({workspace = \"2\", follow = false})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + SHIFT + 3\"")
(lib.generators.mkLuaInline "hl.dsp.window.move({workspace = \"3\", follow = false})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + SHIFT + 4\"")
(lib.generators.mkLuaInline "hl.dsp.window.move({workspace = \"4\", follow = false})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + SHIFT + 5\"")
(lib.generators.mkLuaInline "hl.dsp.window.move({workspace = \"5\", follow = false})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + SHIFT + 6\"")
(lib.generators.mkLuaInline "hl.dsp.window.move({workspace = \"6\", follow = false})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + SHIFT + 7\"")
(lib.generators.mkLuaInline "hl.dsp.window.move({workspace = \"7\", follow = false})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + SHIFT + 8\"")
(lib.generators.mkLuaInline "hl.dsp.window.move({workspace = \"8\", follow = false})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + SHIFT + 9\"")
(lib.generators.mkLuaInline "hl.dsp.window.move({workspace = \"9\", follow = false})")
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + SHIFT + 0\"")
(lib.generators.mkLuaInline "hl.dsp.window.move({workspace = \"0\", follow = false})")
];}
#mouse binds
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + mouse:272\"")
(lib.generators.mkLuaInline "hl.dsp.window.drag()")
{mouse = true;}
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + mouse:273\"")
(lib.generators.mkLuaInline "hl.dsp.window.resize()")
{mouse = true;}
];}
#repeat and work while locked
{ _args = [
"XF86AudioRaiseVolume"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+\")")
{locked = true; repeating = true; }
];}
{ _args = [
"XF86AudioLowerVolume"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-\")")
{locked = true; repeating = true; }
];}
{ _args = [
"XF86AudioMute"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle\")")
{locked = true; repeating = true; }
];}
{ _args = [
"XF86AudioMicMute"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle\")")
{locked = true; repeating = true; }
];}
{ _args = [
"XF86MonBrightnessUp"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"brightnessctl s 10%+\")")
{locked = true; repeating = true; }
];}
{ _args = [
"XF86MonBrightnessDown"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"brightnessctl s 10%-\")")
{locked = true; repeating = true; }
];}
{ _args = [
"XF86KbdBrightnessUp"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"asusctl -n\")")
{locked = true; repeating = true; }
];}
{ _args = [
"XF86KbdBrightnessDown"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"asusctl -p\")")
{locked = true; repeating = true; }
];}
{ _args = [
"XF86AudioNext"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${lib.getExe pkgs.playerctl} next\")")
{locked = true; }
];}
{ _args = [
"XF86AudioPrev"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${lib.getExe pkgs.playerctl} previous\")")
{locked = true;}
];}
{ _args = [
"XF86AudioPause"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${lib.getExe pkgs.playerctl} pause\")")
{locked = true;}
];}
{ _args = [
"XF86AudioPlay"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${lib.getExe pkgs.playerctl} play\")")
{locked = true;}
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + N\"")
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${lib.getExe pkgs.playerctl} next\")")
{locked = true;}
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + P\"")
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${lib.getExe pkgs.playerctl} previous\")")
{locked = true;}
];}
{ _args = [
(lib.generators.mkLuaInline "mod .. \" + O\"")
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"${lib.getExe pkgs.playerctl} play-pause\")")
{locked = true;}
];}
];
window_rule = [
{ _args = [
{match = { class = "(pinentry-)(.*)"; };}
{stay_focused = true;}
];}
];
curve = [
{ _args = [
"easeInOut"
{
type = "bezier";
points = lib.generators.mkLuaInline "{ {0.77, 0}, {0.175, 1} }";
}
];}
{ _args = [
"easeOut"
{
type = "bezier";
points = lib.generators.mkLuaInline "{ {0.24, 0.66}, {0.04, 1} }";
}
];}
];
animation = [
{leaf = "windows"; enabled = true; speed = 2; bezier = "easeInOut";}
{leaf = "windowsIn"; enabled = true; speed = 2; bezier = "easeInOut"; style = "slide";}
{leaf = "windowsOut"; enabled = true; speed = 2; bezier = "easeInOut"; style = "slide";}
{leaf = "fade"; enabled = true; speed = 2; bezier = "easeInOut";}
{leaf = "workspaces"; enabled = true; speed = 2; bezier = "easeOut";}
];
config = {
misc = {
force_default_wallpaper = 1;
disable_hyprland_logo = true;
mouse_move_focuses_monitor = false;
};
decoration = {
rounding = 10;
shadow = {
enabled = true;
range = 4;
render_power = 3;
color = "rgba(1a1a1aee)";
};
};
general = {
gaps_in = 2;
gaps_out = 5;
border_size = 1;
"col.active_border" = lib.generators.mkLuaInline "{colors = {\"rgba(33ccffee)\", \"rgba(00ff99ee)\"}, angle = 45}";
"col.inactive_border" = "rgba(595959aa)";
resize_on_border = false;
allow_tearing = false;
layout = "dwindle";
};
cursor.no_warps = true;
animations = { enabled = true;};
input = {
kb_layout = "fr";
kb_variant = "us";
follow_mouse = 2;
kb_options = "caps:none";
touchpad.natural_scroll = false;
};
dwindle = {
force_split = 2;
};
};
layer_rule = [
{ _args = [
{
name = "no_anim_for_selection";
no_anim = true;
match = { namespace = "selection"; };
}
];}
];
env = [
{ _args = [ "HYPRCURSOR_SIZE" "17" ]; }
{ _args = [ "HYPRCURSOR_THEME" "bibata-modern-classic" ];}
];
on = {
_args = [
"hyprland.start"
(lib.generators.mkLuaInline ''function()
hl.exec_cmd("${lib.getExe pkgs.swaybg} -i ~/.config/wallpaper.png")
hl.exec_cmd("(sleep 2;${lib.getExe pkgs.activate-linux})")
hl.exec_cmd("alacritty")
hl.exec_cmd("waybar")
end
'')
];
};
};
}
@@ -1,16 +1,8 @@
{lib, pkgs, ... }:
{
wayland.windowManager.hyprland.systemd.variables = [ "--all" ];
programs.hyprshot.enable = true;
catppuccin.hyprland.enable = false;
home.shellAliases.hl = "Hyprland";
wayland.windowManager.hyprland.enable = true;
wayland.windowManager.hyprland.configType = "hyprlang";
wayland.windowManager.hyprland.settings = {
/*
settings = {
"$mainMod" = "SUPER";
bind = [
" , Print, exec, hyprshot -m region -o ~/screenshots -f $(date +%Y-%m-%d_%H-%M-%S).png"
@@ -174,4 +166,5 @@
"alacritty&"
];
};
*/
}
+21 -17
View File
@@ -5,25 +5,29 @@
wayland.windowManager.hyprland.settings = {
monitor = [
"DP-2, 1920x1080@60Hz, -1920x0, auto"
"HDMI-A-3, 1920x1080@60Hz, 0x0, auto"
"DP-3, 1920x1080@60.00Hz, 1920x0, auto"
"DP-4, 1280x1024@75.03Hz, 3840x0, auto"
{ output = "DP-2"; mode = "1920x1080@60Hz"; position = "-1920x0"; scale="auto"; }
{ output = "HDMI-A-3"; mode = "1920x1080@60Hz"; position = "0x0"; scale = "auto"; }
{ output = "DP-3"; mode = "1920x1080@60.00Hz"; position = "1920x0"; scale = "auto"; }
{ output = "DP-4"; mode = "1280x1024@75.03Hz"; position = "3840x0"; scale = "auto"; }
];
workspace = [
"3, monitor:DP-2"
"1, monitor:HDMI-A-3, default:true"
"2, monitor:DP-3"
"4, monitor:DP-4"
];
env = [
"AQ_DRM_DEVICES,/dev/dri/card1:/dev/dri/card2"
"LIBVA_DRIVER_NAME,nvidia"
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
];
cursor.no_hardware_cursors = true;
misc.vrr = 1;
workspace_rule = [
{ workspace = "3"; monitor = "DP-2";}
{ workspace = "1"; monitor = "HDMI-A-3, default:true"; }
{ workspace = "2"; monitor = "DP-3"; }
{ workspace = "4"; monitor = "DP-4"; }
];
env = [
{ _args = [ "AQ_DRM_DEVICES" "/dev/dri/card1:/dev/dri/card2" ];}
{ _args = [ "LIBVA_DRIVER_NAME" "nvidia" ];}
{ _args = [ "__GLX_VENDOR_LIBRARY_NAME" "nvidia" ];}
];
config = {
cursor.no_hardware_cursors = true;
misc.vrr = 1;
};
};
services.hypridle.enable = lib.mkForce false;
}
+18 -10
View File
@@ -19,24 +19,32 @@
};
wayland.windowManager.hyprland.settings = {
workspace = [
"1, monitor:eDP-1"
"2, monitor:HDMI-A-1, default:true"
workspace_rule = [
{ workspace = "1"; monitor = "eDP-1"; }
{ workspace = "2"; monitor = "HDMI-A-1"; default = true; }
];
bind = [
", XF86Launch1, exec, hyprlock"
", XF86Launch4, exec, pkill activate-linux"
];
{ _args = [
"XF86Launch1"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"hyprlock\")")
];}
{ _args = [
"XF86Launch4"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd(\"pkill activate-linux\")")
];}
];
monitor= [
"eDP-1, 1920x1080@120, 0x0, 1"
"HDMI-A-1, 1920x1080@60, auto, auto"
{ output = "DP-2"; mode = "1920x1080@60Hz"; position = "-1920x0"; scale="auto"; }
{ output = "eDP-1"; mode = "1920x1080@120"; position = "0x0"; scale = "1"; }
{ output = "HDMI-A-1"; mode = "1920x1080@60"; position = "auto"; scale = "auto"; }
];
env = [ "AQ_DRM_DEVICES,/dev/dri/card1"];
env = [ { _args = ["AQ_DRM_DEVICES" "/dev/dri/card1"]; } ];
};
home.packages = with pkgs; [
blender
wireshark
wireshark
];
services.mpris-proxy.enable = true;