# 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 = { enable = true; configType = "lua"; settings = { # Startup commands on = { _args = [ "hyprland.start" (lib.generators.mkLuaInline '' function() hl.exec_cmd("tuxedo-backlight") end '') ]; }; # Monitor configuration monitor = [ "eDP-1,preferred,0x0,1.25" "HDMI-A-1,1920x1080@120,2560x0,1" ]; # Workspace assignment workspace = [ "1, monitor:eDP-1, default:true" "2, monitor:eDP-1" "3, monitor:eDP-1" "4, monitor:HDMI-A-1" "5, monitor:HDMI-A-1,border:false,rounding:false" "6, monitor:HDMI-A-1" ]; # Window rules using attribute-set syntax (match + options) window_rule = [ { _args = [ (lib.generators.mkLuaInline ''hl.dsp.window.match({ class = "dev.zed.Zed" })'') {workspace = 1;} ]; } { _args = [ (lib.generators.mkLuaInline ''hl.dsp.window.match({ class = "Msty" })'') {workspace = 1;} ]; } { _args = [ (lib.generators.mkLuaInline ''hl.dsp.window.match({ class = "com\\.obsproject\\.Studio" })'') {workspace = 2;} ]; } { _args = [ (lib.generators.mkLuaInline ''hl.dsp.window.match({ class = "brave-browser" })'') { workspace = 4; opacity = 1.0; } ]; } { _args = [ (lib.generators.mkLuaInline ''hl.dsp.window.match({ class = "vivaldi-stable" })'') { workspace = 4; opacity = 1.0; } ]; } { _args = [ (lib.generators.mkLuaInline ''hl.dsp.window.match({ class = "steam_app_\\d+" })'') {fullscreen = "on";} ]; } { _args = [ (lib.generators.mkLuaInline ''hl.dsp.window.match({ class = "steam_app_\\d+" })'') {workspace = 5;} ]; } { _args = [ (lib.generators.mkLuaInline ''hl.dsp.window.match({ class = "steam_app_\\d+" })'') {idle_inhibit = "focus";} ]; } ]; }; }; }) ]; }