2026-01-20 13:34:45 -05:00
|
|
|
{ config, pkgs, lib, makeEnable, inputs, ... }:
|
2026-01-20 13:21:00 -05:00
|
|
|
makeEnable config "myModules.hyprland" true {
|
|
|
|
|
programs.hyprland = {
|
|
|
|
|
enable = true;
|
2026-01-20 13:34:45 -05:00
|
|
|
# Use Hyprland from the flake for proper plugin compatibility
|
2026-01-31 00:15:33 -08:00
|
|
|
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
2026-02-04 12:13:15 -08:00
|
|
|
# Let UWSM manage the Hyprland session targets
|
|
|
|
|
withUWSM = true;
|
2026-01-20 13:21:00 -05:00
|
|
|
};
|
|
|
|
|
|
2026-02-03 20:30:39 -08:00
|
|
|
home-manager.sharedModules = [
|
|
|
|
|
{
|
2026-02-03 22:01:14 -08:00
|
|
|
programs.waybar.enable = true;
|
2026-02-03 20:30:39 -08:00
|
|
|
|
2026-02-03 22:01:14 -08:00
|
|
|
systemd.user.services.waybar = {
|
|
|
|
|
Unit = {
|
|
|
|
|
Description = "Waybar";
|
2026-02-04 12:13:15 -08:00
|
|
|
PartOf = [ "wayland-session@Hyprland.target" ];
|
|
|
|
|
After = [ "wayland-session@Hyprland.target" ];
|
2026-02-03 22:01:14 -08:00
|
|
|
};
|
|
|
|
|
Service = {
|
2026-02-03 23:32:47 -08:00
|
|
|
ExecStartPre = "${pkgs.bash}/bin/bash -lc 'uid=$(id -u); for i in $(seq 1 50); do runtime_dir=\"$XDG_RUNTIME_DIR\"; if [ -z \"$runtime_dir\" ]; then runtime_dir=\"/run/user/$uid\"; fi; if [ -n \"$WAYLAND_DISPLAY\" ] && [ -S \"$runtime_dir/$WAYLAND_DISPLAY\" ]; then exit 0; fi; sleep 0.1; done; exit 1'";
|
2026-02-03 22:01:14 -08:00
|
|
|
ExecStart = "${pkgs.waybar}/bin/waybar";
|
2026-02-03 23:32:47 -08:00
|
|
|
Restart = "always";
|
2026-02-03 22:01:14 -08:00
|
|
|
RestartSec = 1;
|
|
|
|
|
};
|
|
|
|
|
Install = {
|
2026-02-04 12:13:15 -08:00
|
|
|
WantedBy = [ "wayland-session@Hyprland.target" ];
|
2026-02-03 22:01:14 -08:00
|
|
|
};
|
2026-02-03 20:30:39 -08:00
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
];
|
|
|
|
|
|
2026-01-20 13:21:00 -05:00
|
|
|
# Hyprland-specific packages
|
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
|
|
|
# Hyprland utilities
|
|
|
|
|
hyprpaper # Wallpaper
|
|
|
|
|
hypridle # Idle daemon
|
|
|
|
|
hyprlock # Screen locker
|
|
|
|
|
hyprcursor # Cursor themes
|
|
|
|
|
wl-clipboard # Clipboard for Wayland
|
2026-02-04 12:13:15 -08:00
|
|
|
wtype # Wayland input typing
|
2026-01-20 13:21:00 -05:00
|
|
|
cliphist # Clipboard history
|
|
|
|
|
grim # Screenshot utility
|
|
|
|
|
slurp # Region selection
|
|
|
|
|
swappy # Screenshot annotation
|
|
|
|
|
wlsunset # Night light / blue light filter
|
|
|
|
|
|
2026-01-20 13:34:45 -05:00
|
|
|
# hy3 plugin from flake (properly built against matching Hyprland)
|
2026-01-31 00:15:33 -08:00
|
|
|
inputs.hy3.packages.${pkgs.stdenv.hostPlatform.system}.hy3
|
2026-01-20 13:34:45 -05:00
|
|
|
|
2026-02-03 23:32:47 -08:00
|
|
|
# Hyprexpo plugin from hyprland-plugins (workspace overview)
|
|
|
|
|
inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprexpo
|
2026-02-03 22:01:14 -08:00
|
|
|
|
2026-01-20 13:34:45 -05:00
|
|
|
# For scripts
|
|
|
|
|
jq
|
2026-01-20 13:21:00 -05:00
|
|
|
];
|
|
|
|
|
}
|