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-01-20 13:21:00 -05:00
|
|
|
};
|
|
|
|
|
|
2026-02-03 20:30:39 -08:00
|
|
|
home-manager.sharedModules = [
|
|
|
|
|
{
|
|
|
|
|
# Wire the Hyprland config from dotfiles into ~/.config/hypr
|
|
|
|
|
xdg.configFile."hypr" = {
|
|
|
|
|
source = ../dotfiles/config/hypr;
|
|
|
|
|
recursive = true;
|
|
|
|
|
force = true;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
programs.waybar = {
|
|
|
|
|
enable = true;
|
|
|
|
|
systemd.enable = true;
|
|
|
|
|
settings = [
|
|
|
|
|
{
|
|
|
|
|
layer = "top";
|
|
|
|
|
position = "top";
|
|
|
|
|
height = 30;
|
|
|
|
|
"modules-left" = [ "hyprland/workspaces" ];
|
|
|
|
|
"modules-center" = [ "hyprland/window" ];
|
|
|
|
|
"modules-right" = [ "tray" "clock" ];
|
|
|
|
|
|
|
|
|
|
"hyprland/workspaces" = {
|
|
|
|
|
format = "{id}:{windows}";
|
|
|
|
|
"format-window-separator" = " ";
|
|
|
|
|
"window-rewrite-default" = "";
|
|
|
|
|
"window-rewrite" = {
|
|
|
|
|
"class<firefox>" = "";
|
|
|
|
|
"class<google-chrome|chromium>" = "";
|
|
|
|
|
"class<code|codium>" = "";
|
|
|
|
|
"class<Alacritty|kitty|foot>" = "";
|
|
|
|
|
"class<Slack>" = "";
|
|
|
|
|
"class<Spotify>" = "";
|
|
|
|
|
"class<Element|discord>" = "";
|
|
|
|
|
"class<pavucontrol>" = "";
|
|
|
|
|
"class<transmission-gtk>" = "";
|
|
|
|
|
};
|
|
|
|
|
"persistent-workspaces" = { "*" = 10; };
|
|
|
|
|
"all-outputs" = true;
|
|
|
|
|
"on-click" = "activate";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
"hyprland/window" = {
|
|
|
|
|
format = "{class}: {title}";
|
|
|
|
|
"separate-outputs" = true;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
tray = {
|
|
|
|
|
spacing = 8;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
clock = {
|
|
|
|
|
format = "{:%a %b %d %I:%M:%S %p}";
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
];
|
|
|
|
|
style = ''
|
|
|
|
|
* {
|
|
|
|
|
border: none;
|
|
|
|
|
border-radius: 0;
|
|
|
|
|
font-family: "Roboto", "JetBrainsMono Nerd Font";
|
|
|
|
|
font-size: 11pt;
|
|
|
|
|
min-height: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
window#waybar {
|
|
|
|
|
background: rgba(24, 24, 24, 0.92);
|
|
|
|
|
color: #e6e6e6;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#workspaces {
|
|
|
|
|
margin-left: 6px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#workspaces button {
|
|
|
|
|
padding: 0 8px;
|
|
|
|
|
margin: 4px 4px;
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
background: transparent;
|
|
|
|
|
color: #bfbfbf;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#workspaces button.active {
|
|
|
|
|
background: #e0b45a;
|
|
|
|
|
color: #1c1c1c;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#workspaces button.visible {
|
|
|
|
|
background: #3a3a3a;
|
|
|
|
|
color: #e6e6e6;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#workspaces button.urgent {
|
|
|
|
|
background: #e06060;
|
|
|
|
|
color: #1c1c1c;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#workspaces button.empty {
|
|
|
|
|
color: #777777;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#window {
|
|
|
|
|
padding: 0 10px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#tray,
|
|
|
|
|
#clock {
|
|
|
|
|
padding: 0 10px;
|
|
|
|
|
}
|
|
|
|
|
'';
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
];
|
|
|
|
|
|
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
|
|
|
|
|
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
|
|
|
|
|
|
|
|
# For scripts
|
|
|
|
|
jq
|
2026-01-20 13:21:00 -05:00
|
|
|
];
|
|
|
|
|
}
|