# hosts/m3-kratos/home.nix — Host-specific home-manager overrides. # AMD desktop: dual 2560x1440@144 via DisplayPort. # 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; let mkEnvVar = name: value: { _args = [ name value ]; }; in { imports = [ ]; config = mkMerge [ # ── XDG / MIME defaults ── { xdg = { enable = true; userDirs.setSessionVariables = 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.desktop.wm.hyprland.enable { wayland.windowManager.hyprland = { enable = true; settings = { workspace_rule = [ { workspace = "1"; monitor = "eDP-1"; default = true; } { workspace = "2"; monitor = "eDP-1"; } { workspace = "3"; monitor = "DP-8"; } { workspace = "4"; monitor = "DP-8"; } { workspace = "5"; monitor = "DP-10"; } { workspace = "6"; monitor = "DP-10"; } { workspace = "7"; monitor = "DP-10"; } ]; # m3ta-home sets QT_QPA_PLATFORMTHEME to gtk3 globally for Hyprland. # ksnip crashes with duplicate GDK type registration under that Qt GTK # platform theme, so use qtct for Qt apps on this host instead. "env" = mkForce [ (mkEnvVar "XCURSOR_SIZE" "32") (mkEnvVar "HYPRCURSOR_THEME" "Bibata-Modern-Ice") (mkEnvVar "WLR_NO_HARDWARE_CURSORS" "1") (mkEnvVar "XDG_CURRENT_DESKTOP" "Hyprland") (mkEnvVar "XDG_SESSION_TYPE" "wayland") (mkEnvVar "XDG_SESSION_DESKTOP" "Hyprland") (mkEnvVar "XKB_DEFAULT_LAYOUT" "de") (mkEnvVar "NIXOS_OZONE_WL" "1") (mkEnvVar "QT_QPA_PLATFORM" "wayland;xcb") (mkEnvVar "QT_QPA_PLATFORMTHEME" "qt5ct") (mkEnvVar "QT_QPA_PLATFORMTHEME_QT6" "qt6ct") ]; window_rule = [ { match.class = "dev.zed.Zed"; workspace = "3"; } { match.class = "^(com.obsproject.Studio)$"; workspace = "1"; } { match.class = "^(brave-browse)$"; workspace = "4"; opacity = "1.0"; } { match.class = "^(vivaldi-stable)$"; workspace = "4"; opacity = "1.0"; } { match.initial_title = "3.basecamp.com_/5996442/"; workspace = "5"; opacity = "1.0"; tile = true; } { match.initial_title = "teams.microsoft.com_/"; workspace = "6"; opacity = "1.0"; tile = true; } { match.initial_title = "outlook.office.com_/mail/"; workspace = "6"; opacity = "1.0"; tile = true; } ]; }; }; }) ]; }