Files
nixos-config/hosts/m3-ares/home.nix
T

148 lines
4.1 KiB
Nix
Raw Normal View History

# 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";
}
];
};
};
})
];
}