diff --git a/configuration.nix b/configuration.nix index 68ad0a8..b011928 100644 --- a/configuration.nix +++ b/configuration.nix @@ -10,6 +10,41 @@ agenix.packages.aarch64-darwin.default iterm2 tailscale + (pkgs.writeShellScriptBin "portalpatch" '' + #!/usr/bin/env bash + # Automatically patch the game Portal for use on Apple Silicon using the + # hl2 source leak + # + # Instructions adapted from the Apple Gaming Wiki + # https://www.applegamingwiki.com/wiki/Half-Life_2#Native + # + # Note that this script **does not** download the dependencies from + # Homebrew: that is assumed to be handled by nix-darwin + HL2_SOURCE_DIR=$(mktemp -d) + HL2_DEST_DIR=$(mktemp -d) + + git clone --recursive https://github.com/nillerusr/source-engine "$HL2_SOURCE_DIR" + cd "$HL2_SOURCE_DIR" || exit 1 + + export PKG_CONFIG_PATH="/opt/homebrew/opt/jpeg/lib/pkgconfig" + + python3 waf configure -T release --prefix="" --build-games=portal && \ + python3 waf build && \ + python3 waf install --destdir "$HL2_DEST_DIR" + + PORTAL_GAME_DIR="$HOME/Library/Application Support/Steam/steamapps/common/Portal" + mv "$PORTAL_GAME_DIR/bin" "$PORTAL_GAME_DIR/bin.bak" + mv "$PORTAL_GAME_DIR/portal/bin" "$PORTAL_GAME_DIR/portal/bin.bak" + mv "$PORTAL_GAME_DIR/hl2_osx" "$PORTAL_GAME_DIR/hl2_osx.bak" + + cp -r "$HL2_DEST_DIR/bin" "$PORTAL_GAME_DIR/bin" + cp -r "$HL2_DEST_DIR/portal/bin" "$PORTAL_GAME_DIR/portal/bin" + cp -r "$HL2_DEST_DIR/hl2_launcher" "$PORTAL_GAME_DIR/hl2_osx" + + cp "$PORTAL_GAME_DIR/steam_appid.txt" "$PORTAL_GAME_DIR/hl2/steam_appid.txt" + + cd -1 || exit 1 + '') ]; # Use a custom configuration.nix location. @@ -49,7 +84,34 @@ no_quarantine = true; }; - brews = [ "borgbackup/tap/borgbackup-fuse" "firefoxpwa" "r" ]; + taps = [ + "homebrew/services" + "ybeapps/sourcegit" + { + name = "millironx/millironx"; + clone_target = + "https://code.millironx.com/millironx/homebrew-millironx.git"; + } + ]; + brews = [ + "borgbackup/tap/borgbackup-fuse" + { + name = "colima"; + restart_service = true; + } + "docker" + "firefoxpwa" + "r" + + # Portal built via hl2 source leak dependencies + "sdl2" + "freetype2" + "fontconfig" + "pkg-config" + "opus" + "libpng" + "libedit" + ]; casks = [ "alt-tab" "anki" @@ -59,17 +121,19 @@ "firefox" "freetube" "inkscape" + "kdeconnect@nightly" "logseq" "macfuse" "musescore" "nextcloud" "obs" + "ollama" "openrct2" "porting-kit" "qownnotes" - "rancher" "rstudio" "signal" + "stats" "steam" "textmate" "thunderbird@esr" @@ -82,6 +146,7 @@ ]; masApps = { "Bitwarden" = 1352778147; + "Hidden Bar" = 1452453066; "Tailscale" = 1475387142; }; };