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