WIP: Changed Hyprland from Hyprland to Lua

This commit is contained in:
2026-05-25 01:31:36 +02:00
parent 2a28574058
commit d84b2e882d
9 changed files with 315 additions and 354 deletions
Generated
+75 -61
View File
@@ -20,11 +20,11 @@
]
},
"locked": {
"lastModified": 1777499565,
"narHash": "sha256-nU55VWk99Pn1QzQDDjFISocC4SgDZ3Xp+zb6ji3JclM=",
"lastModified": 1778857089,
"narHash": "sha256-TclWRW2SdFeETLaiTG4BA8C8C4m/LppQEldncqyTzAQ=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "813c1e8981893c11e118b19c125d6bc282f51765",
"rev": "ab2b0af63fbc9fb779d684f19149b790978be8a8",
"type": "github"
},
"original": {
@@ -36,16 +36,16 @@
"brew-src": {
"flake": false,
"locked": {
"lastModified": 1776478798,
"narHash": "sha256-ERStG27tf83VbCfYMxtDSs+sa8FUMJ/3jSu/QfX9rKE=",
"lastModified": 1778427648,
"narHash": "sha256-pt9KaDGsMyYWB9JeHs4XGHs870f1lOZe3vx9LpVIhUE=",
"owner": "Homebrew",
"repo": "brew",
"rev": "3aae056b8d072624255bc8fd27febb7f327b2265",
"rev": "6f293daa9f9f5832e13b497976335e90509886d7",
"type": "github"
},
"original": {
"owner": "Homebrew",
"ref": "5.1.7",
"ref": "5.1.11",
"repo": "brew",
"type": "github"
}
@@ -57,11 +57,11 @@
]
},
"locked": {
"lastModified": 1777734189,
"narHash": "sha256-kbIhdhDPaTP6gxAPkcRYeB+cqPFDpTM/bnw+m+26vkI=",
"lastModified": 1779446167,
"narHash": "sha256-95gfnivOKw+zleITz2OptawwTeSs36Y9u+qeU0xdqT8=",
"owner": "catppuccin",
"repo": "nix",
"rev": "e68cf5deaf1a7afed2e548835dba2ae99f5a3ccb",
"rev": "229ede9cec873986144e222b2c61c2f239c16125",
"type": "github"
},
"original": {
@@ -77,11 +77,11 @@
]
},
"locked": {
"lastModified": 1777780666,
"narHash": "sha256-8wURyQMdDkGUarSTKOGdCuFfYiwa3HbzwscUfn3STDE=",
"lastModified": 1779036909,
"narHash": "sha256-zXcwYQGCT6pzinK+1dBB2ekTVtfxGZAapb3Evdcu4fY=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "8c62fba0854ba15c8917aed18894dbccb48a3777",
"rev": "56c666e108467d87d13508936aade6d567f2a501",
"type": "github"
},
"original": {
@@ -125,11 +125,11 @@
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1777678872,
"narHash": "sha256-EPIFsulyon7Z1vLQq5Fk64GR8L7cQsT+IPhcsukVbgk=",
"lastModified": 1778716662,
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "5250617bffd85403b14dbf43c3870e7f255d2c16",
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"type": "github"
},
"original": {
@@ -146,11 +146,11 @@
]
},
"locked": {
"lastModified": 1777932387,
"narHash": "sha256-nUYVPiqrzr36ThiQOAr5MKeGHDBSDM3OFWkz0uDjOvc=",
"lastModified": 1778716662,
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "71a3a77326609675e9f8b51084cf23d5d1945899",
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"type": "github"
},
"original": {
@@ -188,11 +188,11 @@
]
},
"locked": {
"lastModified": 1778144356,
"narHash": "sha256-dGM+QCstz/DyLB68+JK5GWyMx4QSqmOJEVgZmy63d/g=",
"lastModified": 1779592288,
"narHash": "sha256-pVZwRFVFdHS3D3G07MiZQcSPENnv1xlYCJtfabkqd3Q=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "e4419d3123b780d5f4c0bceeace450424387638c",
"rev": "23703a32ef3d7803a2f1bb9909a3f46fc5185e37",
"type": "github"
},
"original": {
@@ -301,11 +301,11 @@
"xdph": "xdph"
},
"locked": {
"lastModified": 1778199997,
"narHash": "sha256-vmCYnK7/iRQGWj+s0l3+cf/IVoUcCTrlFtgUCTwRdjU=",
"lastModified": 1779565977,
"narHash": "sha256-OCzhgY7kXuFLczKPf7KjMFS04CPXMAdaiQ+M1kFJVT8=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "de9f8dc9831d921cd1ee30d5d14f45f0e345a8ca",
"rev": "abd4abb5e654707edba6f527058292333149f90f",
"type": "github"
},
"original": {
@@ -377,11 +377,11 @@
]
},
"locked": {
"lastModified": 1777937752,
"narHash": "sha256-QDc78DC6xhWKpPJzsPEJBBFYpTb+g4kO6+ydRYLU4f4=",
"lastModified": 1779209205,
"narHash": "sha256-asc7NpeB8vD66gvZeYcQkaWOs2X6Jgd29vBtP17vjxo=",
"owner": "hyprwm",
"repo": "hyprland-plugins",
"rev": "b6e080577daf6575b95e6733dd2e2aef714bcf10",
"rev": "1cb37fad68dff5f5840010c314fed5809b4ee66f",
"type": "github"
},
"original": {
@@ -561,11 +561,11 @@
]
},
"locked": {
"lastModified": 1778179779,
"narHash": "sha256-Ri6rVf54CRD3aISHLhSY6H4tBScVjm9ebkv7rF2lcZM=",
"lastModified": 1779475241,
"narHash": "sha256-Nw4DN0A5krWNcPBvuWe5Gz2yuxsUUPiDgtu6SVPJQeU=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "3e170e5ad010602671f5f25b327e8bdb8fdd532c",
"rev": "3cd3972b2ee658a14d2610d8494e09259e530124",
"type": "github"
},
"original": {
@@ -615,11 +615,11 @@
]
},
"locked": {
"lastModified": 1777388329,
"narHash": "sha256-40YxVGF2rA9iH3D7am5fy4EOSBbMgpJtJ9yhl0Cx+qI=",
"lastModified": 1778410714,
"narHash": "sha256-o6RzFj4nJXaPRY7EM01siuCQeT41RfwwmcmFQqwFJJg=",
"owner": "hyprwm",
"repo": "hyprwire",
"rev": "04be2897e05f9b271d532b5ae56ca088d2eeac02",
"rev": "85148a8e612808cf5ddb25d0b3c5840f3498a7dc",
"type": "github"
},
"original": {
@@ -633,11 +633,11 @@
"brew-src": "brew-src"
},
"locked": {
"lastModified": 1777250621,
"narHash": "sha256-WynkkG0hdZ5niYPJUbVg7oMfu8MVwGGzKZ6lKmfa+O8=",
"lastModified": 1778851564,
"narHash": "sha256-p8wzcnpB2Iys+QzAKM9/Eyw/pUyqCO3sw/NCnDH4dTE=",
"owner": "zhaofengli",
"repo": "nix-homebrew",
"rev": "aeb2069920742d0d6570089e8b3b8620050bacf2",
"rev": "b3a87b4793205cc111f3c61e25e018ffac3b8039",
"type": "github"
},
"original": {
@@ -656,11 +656,11 @@
"nixpkgs-nixcord": "nixpkgs-nixcord"
},
"locked": {
"lastModified": 1778202527,
"narHash": "sha256-Yn0A4iYFtVNYIf1IXfT1R7gYNbJ5UEqvExii2aK4VAY=",
"lastModified": 1779498537,
"narHash": "sha256-6LQjFDS69JufrN4sVsMNsXxeSF6BbDzMSbN7sVApsaA=",
"owner": "kaylorben",
"repo": "nixcord",
"rev": "471c6da493cb642bbc941a4bc5c10c22595ed013",
"rev": "45a98c17b0d9e695bdee92ab00c76657eddf47e7",
"type": "github"
},
"original": {
@@ -707,11 +707,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1777954456,
"narHash": "sha256-hGdgeU2Nk87RAuZyYjyDjFL6LK7dAZN5RE9+hrDTkDU=",
"lastModified": 1779508470,
"narHash": "sha256-Ap9KJX+5xHIn3bPIpfNgT6MEXdAECECwo4/rmlQD74M=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "549bd84d6279f9852cae6225e372cc67fb91a4c1",
"rev": "29916453413845e54a65b8a1cf996842300cd299",
"type": "github"
},
"original": {
@@ -738,11 +738,11 @@
},
"nixpkgs-nixcord": {
"locked": {
"lastModified": 1777428379,
"narHash": "sha256-ypxFOeDz+CqADEQNL72haqGjvZQdBR5Vc7pyx2JDttI=",
"lastModified": 1779102034,
"narHash": "sha256-vZJZjLo513IeI8hjzHFc6TDezUd4uCE2Eq4SNO3DNNg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "755f5aa91337890c432639c60b6064bb7fe67769",
"rev": "687f05a9184cad4eaf905c48b63649e3a86f5433",
"type": "github"
},
"original": {
@@ -752,20 +752,34 @@
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1779259093,
"narHash": "sha256-7DKWmH23hL2eYdkxCKeqj2i+yljTKuU+3Nk1UPHOnxc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d99b013d5d1931ad77fe3912ed218170dec5d9a4",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixvim": {
"inputs": {
"flake-parts": "flake-parts_2",
"nixpkgs": [
"nixpkgs"
],
"nixpkgs": "nixpkgs_2",
"systems": "systems_3"
},
"locked": {
"lastModified": 1777991353,
"narHash": "sha256-DFwjggMV+nzCZpwK6Obxj9F+P59rbLVowGqHETfctBk=",
"lastModified": 1779601302,
"narHash": "sha256-ACtB1llc5ZOJM+lxfbIudM2i/c5dFxRJVXVvhOLpjqA=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "7986a276960b4dfaed9bb2c3c438b5ba71ae08f1",
"rev": "cb0107f6e18cdf7bf79a025fad154a4414c04383",
"type": "github"
},
"original": {
@@ -784,11 +798,11 @@
]
},
"locked": {
"lastModified": 1776796298,
"narHash": "sha256-PcRvlWayisPSjd0UcRQbhG8Oqw78AcPE6x872cPRHN8=",
"lastModified": 1778507602,
"narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "3cfd774b0a530725a077e17354fbdb87ea1c4aad",
"rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a",
"type": "github"
},
"original": {
@@ -842,11 +856,11 @@
"systems": "systems_4"
},
"locked": {
"lastModified": 1777789800,
"narHash": "sha256-XHCvLGu/bEEZRzXVKFu1i+2YB102Nr00n8e7xrzsfVs=",
"lastModified": 1779607677,
"narHash": "sha256-Ang2de6zfcFF8v7LWqSDD1n6bgYj0vN1PY5hi7lOLsM=",
"owner": "Gerg-L",
"repo": "spicetify-nix",
"rev": "d0e921cc48aab6137d203a3eab19601dc2bdc0c3",
"rev": "e69b824f3c4f4db836f47193723b6d37f93e0dc0",
"type": "github"
},
"original": {
@@ -943,11 +957,11 @@
]
},
"locked": {
"lastModified": 1777585783,
"narHash": "sha256-JTeWRy42VElroJ0rVdZuVXSoTLsx+NzQfGPKMbtn3SU=",
"lastModified": 1778265244,
"narHash": "sha256-8jlPtGSsv/CQY6tVVyLF4Jjd0gnS+Zbn9yk/V13A9nM=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "fa50d6fbaff8f42c61071b87b034a90d82a33558",
"rev": "813ea5ca9a1702a9a2d1f5836bc00172ef698968",
"type": "github"
},
"original": {
-1
View File
@@ -46,7 +46,6 @@
# declarative Neovim
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
# declarative Discord
+1 -1
View File
@@ -31,7 +31,7 @@
enable = true;
accent = "sapphire";
};
hyprland = lib.mkIf (!isDarwin) { enable = true; };
hyprland = lib.mkIf (!isDarwin) { enable = false; };
hyprlock = lib.mkIf (!isDarwin) {
enable = true;
useDefaultConfig = false;
+2 -266
View File
@@ -1,16 +1,5 @@
{ inputs, pkgs, ... }:
let
super = "SUPER";
terminal = "kitty";
fileManager = "yazi";
theme = "-theme $HOME/.config/rofi/custom.rasi";
menu = "rofi -show drun ${theme}";
filebrowser = "rofi -show filebrowser ${theme}";
power = "rofi -show p -modi p:rofi-power-menu -theme $HOME/.config/rofi/power.rasi";
apps = "rofi -show window ${theme}";
in
{
imports = [
./hypridle.nix
./hyprlock.nix
@@ -31,7 +20,7 @@ in
systemd.user.targets.hyprland-session.Unit.Wants = [ "xdg-desktop-autostart.target" ];
wayland.windowManager.hyprland = {
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
package = null;
enable = true;
xwayland.enable = true;
@@ -42,259 +31,6 @@ in
enableXdgAutostart = false;
};
plugins = with inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}; [
#hyprbars
# hyprexpo
];
settings = {
env = [
"NIXOS_OZONE_WL,1"
"MOZ_ENABLE_WAYLAND,1"
"MOZ_WEBRENDER,1"
"_JAVA_AWT_WM_NONREPARENTING,1"
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
"QT_QPA_PLATFORM,wayland"
"SDL_VIDEODRIVER,wayland"
"GDK_BACKEND,wayland,x11"
"XCURSOR_SIZE,24"
"EDITOR,nvim"
"GSK_RENDERER,gl"
"HYPRCURSOR_THEME,catppuccin-mocha-dark"
"HYPRCURSOR_SIZE,24"
"XCURSOR_THEME,catppuccin-mocha-dark"
"XCURSOR_SIZE,24"
];
debug = {
disable_logs = false;
enable_stdout_logs = false;
};
monitor = [
"DP-1, 1920x1080@60, 1920x0, 1"
"HDMI-A-2, 1920x1080@60, 0x0, 1"
];
input = {
kb_layout = "de";
kb_variant = "mac";
kb_options = "apple:fn_lock";
repeat_rate = 50;
repeat_delay = 300;
accel_profile = "flat";
follow_mouse = 1;
mouse_refocus = false;
sensitivity = 0; # -1.0 to 1.0, 0 means no modification.
numlock_by_default = 1;
touchpad = {
natural_scroll = true;
tap-to-click = true;
};
};
general = {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 2;
gaps_out = 0;
border_size = 4;
"col.active_border" = "$green";
"col.inactive_border" = "$red";
layout = "dwindle";
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false;
};
decoration = {
rounding = 1;
shadow = {
enabled = false;
range = 16;
render_power = 4;
color = "$green";
color_inactive = "$red";
};
blur = {
enabled = false;
size = 1;
passes = 3;
new_optimizations = 1;
noise = 4.0e-2;
};
};
animations = {
enabled = "yes";
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
animation = [
"windows, 1, 7, myBezier"
"windowsOut, 1, 7, default, popin 80%"
"border, 1, 10, default"
"borderangle, 1, 8, default"
"fade, 1, 7, default"
"workspaces, 1, 6, default"
];
};
# layerrule = [
# "ignorezero,notifications"
# "ignorezero,rofi"
# ];
dwindle = {
preserve_split = "yes";
};
# gestures = {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
# workspace_swipe = true;
# workspace_swipe_fingers = 3;
# workspace_swipe_distance = 300;
# workspace_swipe_invert = false;
# workspace_swipe_cancel_ratio = 0.5;
# };
misc = {
force_default_wallpaper = 0;
disable_hyprland_logo = true;
disable_splash_rendering = true;
mouse_move_enables_dpms = true;
key_press_enables_dpms = true;
# vfr = true;
vrr = 0;
};
device = {
name = "usb-optical-mouse-";
sensitivity = 0;
};
#deprecated
# windowrulev2 = [
# "suppressevent maximize, class:.*"
# "float, class:^(com.obsproject.Studio)$"
# "size 1280 800, class:^(com.obsproject.Studio)$"
# "float, class:^(xdg-desktop-portal-gtk)$"
# "center, class:^(xdg-desktop-portal-gtk)$"
# ];
# windowrule = [
# "opacity 0.0 override, class:^(xwaylandvideobridge)$"
# "noanim, class:^(xwaylandvideobridge)$"
# "noinitialfocus, class:^(xwaylandvideobridge)$"
# "maxsize 1 1, class:^(xwaylandvideobridge)$"
# "noblur, class:^(xwaylandvideobridge)$"
# "nofocus, class:^(xwaylandvideobridge)$"
# "noblur, class:^(org\\.gnome\\.|io\\.github\\.|org\\.gtk\\.)"
# ];
exec-once = [
"awww-daemon --no-cache & disown"
"awww img ~/Pictures/Wallpapers/Ghost_in_the_Shell.png"
"waybar &"
];
# Keybindings
bind = [
# Application Bindings
"${super}, Q, exec, ${terminal}"
"${super}, E, exec, ${fileManager}"
"${super}, O, exec, obsidian"
"${super}, I, exec, floorp"
"${super}, G, exec, thunderbird"
", XF86Mail, exec, thunderbird"
"${super}, N, exec, nautilus"
", XF86Search, exec, nautilus"
# Lock Screen
"${super}, M, exit, "
# Rofi bindings
"${super}, F, exec, ${filebrowser}"
"${super}, A, exec, ${apps}"
", Menu, exec, ${apps}"
"${super}, R, exec, ${menu}"
", XF86LaunchA, exec, ${menu}"
"${super}, S, exec, ${power}"
", XF86LaunchB, exec, ${power}"
# Move focus with mainMod + arrow keys
"${super}, left, movefocus, l"
"${super}, right, movefocus, r"
"${super}, up, movefocus, u"
"${super}, down, movefocus, d"
# Window Modifiers
"${super}, P, pseudo, " # dwindle
# "${super}, J, togglesplit, " # dwindle doenst exist
"${super}, V, togglefloating, " # dwindle
"${super}, C, killactive, "
# Switch workspaces with mainMod + [0-9]
"${super}, 1, workspace, 1"
"${super}, 2, workspace, 2"
"${super}, 3, workspace, 3"
"${super}, 4, workspace, 4"
"${super}, 5, workspace, 5"
"${super}, 6, workspace, 6"
"${super}, 7, workspace, 7"
"${super}, 8, workspace, 8"
"${super}, 9, workspace, 9"
"${super}, 0, workspace, 10"
# Move active window to a workspace with mainMod + SHIFT + [0-9]
"${super} SHIFT, 1, movetoworkspace, 1"
"${super} SHIFT, 2, movetoworkspace, 2"
"${super} SHIFT, 3, movetoworkspace, 3"
"${super} SHIFT, 4, movetoworkspace, 4"
"${super} SHIFT, 5, movetoworkspace, 5"
"${super} SHIFT, 6, movetoworkspace, 6"
"${super} SHIFT, 7, movetoworkspace, 7"
"${super} SHIFT, 8, movetoworkspace, 8"
"${super} SHIFT, 9, movetoworkspace, 9"
"${super} SHIFT, 0, movetoworkspace, 10"
# Example special workspace (scratchpad)
#"${super}, S, togglespecialworkspace, magic"
"${super} SHIFT, S, movetoworkspace, special:magic"
# Scroll through existing workspaces with mainMod + scroll
"${super}, mouse_down, workspace, e+1"
"${super}, mouse_up, workspace, e-1"
# Screenshot
''${super}, Z, exec, grim -g "$(slurp)" $HOME/Pictures/Screenshots/$(date +'%s_grim.png')''
"${super}, U, exec, grim $HOME/Pictures/Screenshots/$(date +'%s_grim.png')"
];
bindl = [
#", XF86AudioMute, exec, amixer set Master toggle
", XF86AudioMute, exec, pamixer -t"
", XF86AudioPlay, exec, playerctl play-pause" # the stupid key is called play , but it toggles
", XF86AudioNext, exec, playerctl next"
", XF86AudioPrev, exec, playerctl previous"
];
bindle = [
# Multi Media Control
", XF86AudioRaiseVolume, exec, pamixer -i 5"
", XF86AudioLowerVolume, exec, pamixer -d 5"
", XF86MonBrightnessUp, exec, brightnessctl set +5%"
", XF86MonBrightnessDown, exec, brightnessctl set 5%-"
];
bindm = [
"${super}, mouse:272, movewindow"
"${super}, mouse:273, resizewindow"
];
};
extraConfig = builtins.readFile ./hyprland.lua;
};
}
+211
View File
@@ -0,0 +1,211 @@
-- hyprland.lua — migrated from hyprlang for Hyprland 0.55+
-- https://wiki.hypr.land/Configuring/Start/
--------------------
---- VARIABLES -----
--------------------
local super = "SUPER"
local terminal = "kitty"
local fileManager = "yazi"
local theme = "-theme $HOME/.config/rofi/custom.rasi"
local menu = "rofi -show drun " .. theme
local filebrowser = "rofi -show filebrowser " .. theme
local power = "rofi -show p -modi p:rofi-power-menu -theme $HOME/.config/rofi/power.rasi"
local apps = "rofi -show window " .. theme
--------------------
---- MONITORS ------
--------------------
hl.monitor({ output = "DP-1", mode = "1920x1080@60", position = "1920x0", scale = 1 })
hl.monitor({ output = "HDMI-A-2", mode = "1920x1080@60", position = "0x0", scale = 1 })
-----------------------------
---- ENVIRONMENT VARIABLES --
-----------------------------
hl.env("NIXOS_OZONE_WL", "1")
hl.env("MOZ_ENABLE_WAYLAND", "1")
hl.env("MOZ_WEBRENDER", "1")
hl.env("_JAVA_AWT_WM_NONREPARENTING", "1")
hl.env("QT_WAYLAND_DISABLE_WINDOWDECORATION", "1")
hl.env("QT_QPA_PLATFORM", "wayland")
hl.env("SDL_VIDEODRIVER", "wayland")
hl.env("GDK_BACKEND", "wayland,x11")
hl.env("XCURSOR_SIZE", "24")
hl.env("XCURSOR_THEME", "catppuccin-mocha-dark")
hl.env("EDITOR", "nvim")
hl.env("GSK_RENDERER", "gl")
hl.env("HYPRCURSOR_THEME", "catppuccin-mocha-dark")
hl.env("HYPRCURSOR_SIZE", "24")
--------------------
---- AUTOSTART -----
--------------------
hl.on("hyprland.start", function()
hl.exec_cmd("awww-daemon --no-cache & disown")
hl.exec_cmd("awww img ~/Pictures/Wallpapers/Ghost_in_the_Shell.png")
hl.exec_cmd("waybar &")
end)
--------------------
---- CONFIG --------
--------------------
hl.config({
debug = {
disable_logs = false,
enable_stdout_logs = false,
},
input = {
kb_layout = "de",
kb_variant = "mac",
kb_options = "apple:fn_lock",
repeat_rate = 50,
repeat_delay = 300,
accel_profile = "flat",
follow_mouse = 1,
mouse_refocus = false,
sensitivity = 0,
numlock_by_default = true,
touchpad = {
natural_scroll = true,
tap_to_click = true, -- note: underscore, not hyphen
},
},
general = {
gaps_in = 2,
gaps_out = 0,
border_size = 4,
col = {
active_border = "rgba(a6e3a1ff)",
inactive_border = "rgba(f38ba8ff)",
},
layout = "dwindle",
allow_tearing = false,
},
decoration = {
rounding = 1,
shadow = {
enabled = false,
range = 16,
render_power = 4,
color = "rgba(a6e3a1ff)",
color_inactive = "rgba(f38ba8ff)",
},
blur = {
enabled = false,
size = 1,
passes = 3,
new_optimizations = true,
noise = 0.04,
},
},
animations = {
enabled = true,
},
dwindle = {
preserve_split = true,
},
misc = {
force_default_wallpaper = 0,
disable_hyprland_logo = true,
disable_splash_rendering = true,
mouse_move_enables_dpms = true,
key_press_enables_dpms = true,
vrr = 0,
},
})
-- Animations (bezier curves + animation tree)
hl.curve("myBezier", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } })
hl.animation({ leaf = "windows", enabled = true, speed = 7, bezier = "myBezier" })
hl.animation({ leaf = "windowsOut", enabled = true, speed = 7, bezier = "default", style = "popin 80%" })
hl.animation({ leaf = "border", enabled = true, speed = 10, bezier = "default" })
hl.animation({ leaf = "borderangle", enabled = true, speed = 8, bezier = "default" })
hl.animation({ leaf = "fade", enabled = true, speed = 7, bezier = "default" })
hl.animation({ leaf = "workspaces", enabled = true, speed = 6, bezier = "default" })
-- Per-device config
hl.device({
name = "usb-optical-mouse-",
sensitivity = 0,
})
--------------------
---- KEYBINDINGS ---
--------------------
-- Application bindings
hl.bind(super .. " + Q", hl.dsp.exec_cmd(terminal))
hl.bind(super .. " + E", hl.dsp.exec_cmd(fileManager))
hl.bind(super .. " + O", hl.dsp.exec_cmd("obsidian"))
hl.bind(super .. " + I", hl.dsp.exec_cmd("floorp"))
hl.bind(super .. " + G", hl.dsp.exec_cmd("thunderbird"))
hl.bind("XF86Mail", hl.dsp.exec_cmd("thunderbird"))
hl.bind(super .. " + N", hl.dsp.exec_cmd("nautilus"))
hl.bind("XF86Search", hl.dsp.exec_cmd("nautilus"))
-- Exit
hl.bind(super .. " + M", hl.dsp.exit())
-- Rofi bindings
hl.bind(super .. " + F", hl.dsp.exec_cmd(filebrowser))
hl.bind(super .. " + A", hl.dsp.exec_cmd(apps))
hl.bind("Menu", hl.dsp.exec_cmd(apps))
hl.bind(super .. " + R", hl.dsp.exec_cmd(menu))
hl.bind("XF86LaunchA", hl.dsp.exec_cmd(menu))
hl.bind(super .. " + S", hl.dsp.exec_cmd(power))
hl.bind("XF86LaunchB", hl.dsp.exec_cmd(power))
-- Move focus
hl.bind(super .. " + left", hl.dsp.focus({ direction = "left" }))
hl.bind(super .. " + right", hl.dsp.focus({ direction = "right" }))
hl.bind(super .. " + up", hl.dsp.focus({ direction = "up" }))
hl.bind(super .. " + down", hl.dsp.focus({ direction = "down" }))
-- Window modifiers
hl.bind(super .. " + P", hl.dsp.window.pseudo())
hl.bind(super .. " + V", hl.dsp.window.float({ action = "toggle" }))
hl.bind(super .. " + C", hl.dsp.window.close())
-- Workspaces (1-10, 0 maps to 10)
for i = 1, 10 do
local key = tostring(i % 10)
hl.bind(super .. " + " .. key, hl.dsp.focus({ workspace = i }))
hl.bind(super .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i }))
end
-- Special workspace (scratchpad)
hl.bind(super .. " + SHIFT + S", hl.dsp.window.move({ workspace = "special:magic" }))
-- Scroll through workspaces with mouse wheel
hl.bind(super .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
hl.bind(super .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
-- Screenshot
hl.bind(super .. " + Z", hl.dsp.exec_cmd("grim -g \"$(slurp)\" $HOME/Pictures/Screenshots/$(date +'%s_grim.png')"))
hl.bind(super .. " + U", hl.dsp.exec_cmd("grim $HOME/Pictures/Screenshots/$(date +'%s_grim.png')"))
-- Media controls (locked = works on lockscreen, repeating = held key)
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("pamixer -t"), { locked = true })
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { locked = true })
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("pamixer -i 5"), { locked = true, repeating = true })
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("pamixer -d 5"), { locked = true, repeating = true })
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl set +5%"), { locked = true, repeating = true })
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl set 5%-"), { locked = true, repeating = true })
-- Mouse bindings for move/resize
hl.bind(super .. " + mouse:272", hl.dsp.window.drag())
hl.bind(super .. " + mouse:273", hl.dsp.window.drag({ resize = true }))
+1 -1
View File
@@ -15,7 +15,7 @@
settings = {
highlight = {
enable = true;
enable = false;
additional_vim_regex_highlighting = false;
};
};
+9 -7
View File
@@ -1,17 +1,19 @@
{ pkgs, ... }: {
{ pkgs, ... }:
{
home.packages = with pkgs; [
# Python 3.14 (newest stable)
python314
python314Packages.pip
python314Packages.virtualenv
# Additional useful tools
python314Packages.pipx # Install Python apps in isolated environments
uv # Fast Python package installer (alternative to pip)
(python314Packages.pipx.overridePythonAttrs (_: {
doCheck = false;
}))
uv
];
# Set up default Python version
home.sessionVariables = { PYTHON = "${pkgs.python313}/bin/python3"; };
home.sessionVariables = {
PYTHON = "${pkgs.python313}/bin/python3";
};
programs.fish.shellAliases = {
venv = "python3 -m venv";
+12 -13
View File
@@ -3,35 +3,34 @@
programs.ssh = {
enable = true;
enableDefaultConfig = false;
matchBlocks = {
settings = {
"*" = {
addKeysToAgent = "yes";
AddKeysToAgent = "yes";
};
"*.cyperpunk.de" = {
identityFile =
IdentityFile =
if isDarwin then "/Users/${primaryUser}/.ssh/ssh" else "/home/${primaryUser}/.ssh/ssh";
user = primaryUser;
User = primaryUser;
};
"github.com" = {
identityFile =
IdentityFile =
if isDarwin then "/Users/${primaryUser}/.ssh/github" else "/home/${primaryUser}/.ssh/github";
user = "git";
User = "git";
};
"git.rz.tu-bs.de" = {
identityFile =
IdentityFile =
if isDarwin then "/Users/${primaryUser}/.ssh/github" else "/home/${primaryUser}/.ssh/github";
user = "git";
User = "git";
};
"git.cyperpunk.de" = {
hostname = "git.cyperpunk.de";
port = 12222;
user = "gitea";
identityFile =
HostName = "git.cyperpunk.de";
Port = 12222;
User = "gitea";
IdentityFile =
if isDarwin then "/Users/${primaryUser}/.ssh/ssh" else "/home/${primaryUser}/.ssh/ssh";
};
};
+4 -4
View File
@@ -104,15 +104,15 @@
}
// lib.optionalAttrs (!isServer) {
dconf.enable = true;
hyprland = {
enable = false;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
};
steam.enable = true;
appimage = {
enable = true;
binfmt = true;
};
hyprland = {
enable = true;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
};
};
security = lib.mkIf (!isServer) {