6c26ade621
- Remove redundant `enable = true` from host hyprland blocks to avoid
circular module reference (Hyprland is already enabled via m3ta-home
profile flags; these files only add host-specific settings)
- Replace legacy string-format `workspace = ["1, monitor:..."]` entries
with proper `workspace_rule` attrsets (e.g. `{ workspace = "1";
monitor = "DP-1"; default = true; }`) per current Hyprland Lua docs
- Replace `_args + mkLuaInline hl.dsp.window.match(...)` window_rule
pattern with clean single-table `{ match.class = "..."; effect; }`
attrsets per Home Manager module examples
- Keep `configType = "lua"` and monitor table syntax unchanged
148 lines
4.1 KiB
Nix
148 lines
4.1 KiB
Nix
# hosts/m3-ares/home.nix — Host-specific home-manager overrides.
|
|
# TUXEDO laptop: eDP-1 + HDMI-A-1 external monitor.
|
|
# Everything else (shell, editors, gaming, media, theme, etc.) comes from
|
|
# m3ta-home via the profile mapping in hosts/common/users/m3tam3re.nix.
|
|
{
|
|
config,
|
|
lib,
|
|
...
|
|
}:
|
|
with lib; {
|
|
config = mkMerge [
|
|
# ── XDG / MIME defaults ──
|
|
{
|
|
xdg = {
|
|
enable = true;
|
|
configFile."mimeapps.list".force = true;
|
|
mimeApps = {
|
|
enable = true;
|
|
associations.added = {
|
|
"application/zip" = ["org.gnome.FileRoller.desktop"];
|
|
"application/csv" = ["calc.desktop"];
|
|
"application/pdf" = ["vivaldi-stable.desktop"];
|
|
"x-scheme-handler/http" = ["vivaldi-stable.desktop"];
|
|
"x-scheme-handler/https" = ["vivaldi-stable.desktop"];
|
|
};
|
|
defaultApplications = {
|
|
"application/zip" = ["org.gnome.FileRoller.desktop"];
|
|
"application/csv" = ["calc.desktop"];
|
|
"application/pdf" = ["vivaldi-stable.desktop"];
|
|
"application/md" = ["dev.zed.Zed.desktop"];
|
|
"application/text" = ["dev.zed.Zed.desktop"];
|
|
"x-scheme-handler/http" = ["vivaldi-stable.desktop"];
|
|
"x-scheme-handler/https" = ["vivaldi-stable.desktop"];
|
|
};
|
|
};
|
|
};
|
|
}
|
|
|
|
# ── Hyprland monitor layout ──
|
|
(mkIf config.wayland.windowManager.hyprland.enable {
|
|
wayland.windowManager.hyprland = {
|
|
configType = "lua";
|
|
|
|
settings = {
|
|
# Startup commands — hl.on() for Lua config
|
|
on = {
|
|
_args = [
|
|
"hyprland.start"
|
|
(lib.generators.mkLuaInline ''
|
|
function()
|
|
hl.exec_cmd("tuxedo-backlight")
|
|
end
|
|
'')
|
|
];
|
|
};
|
|
|
|
# Monitor configuration: each list entry → hl.monitor({...})
|
|
monitor = [
|
|
{
|
|
_args = [
|
|
{
|
|
output = "eDP-1";
|
|
mode = "preferred";
|
|
position = "0x0";
|
|
scale = 1.25;
|
|
}
|
|
];
|
|
}
|
|
{
|
|
_args = [
|
|
{
|
|
output = "HDMI-A-1";
|
|
mode = "1920x1080@120";
|
|
position = "2560x0";
|
|
scale = 1;
|
|
}
|
|
];
|
|
}
|
|
];
|
|
|
|
# Workspace rules → hl.workspace_rule({ workspace, monitor, default, ... })
|
|
workspace_rule = [
|
|
{
|
|
workspace = "1";
|
|
monitor = "eDP-1";
|
|
default = true;
|
|
}
|
|
{
|
|
workspace = "2";
|
|
monitor = "eDP-1";
|
|
}
|
|
{
|
|
workspace = "3";
|
|
monitor = "eDP-1";
|
|
}
|
|
{
|
|
workspace = "4";
|
|
monitor = "HDMI-A-1";
|
|
}
|
|
{
|
|
workspace = "5";
|
|
monitor = "HDMI-A-1";
|
|
no_border = true;
|
|
no_rounding = true;
|
|
}
|
|
{
|
|
workspace = "6";
|
|
monitor = "HDMI-A-1";
|
|
}
|
|
];
|
|
|
|
# Window rules → hl.window_rule({ match = { class = "..." }, effect, ... })
|
|
window_rule = [
|
|
{
|
|
match.class = "dev.zed.Zed";
|
|
workspace = "1";
|
|
}
|
|
{
|
|
match.class = "Msty";
|
|
workspace = "1";
|
|
}
|
|
{
|
|
match.class = "com\\.obsproject\\.Studio";
|
|
workspace = "2";
|
|
}
|
|
{
|
|
match.class = "brave-browser";
|
|
workspace = "4";
|
|
opacity = "1.0";
|
|
}
|
|
{
|
|
match.class = "vivaldi-stable";
|
|
workspace = "4";
|
|
opacity = "1.0";
|
|
}
|
|
{
|
|
match.class = "steam_app_\\d+";
|
|
fullscreen = true;
|
|
workspace = "5";
|
|
idle_inhibit = "focus";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
})
|
|
];
|
|
}
|