From e93e47f44b47e2a9c5508e84a8d6bed90d6d1437 Mon Sep 17 00:00:00 2001 From: ediblerope Date: Mon, 5 Jan 2026 10:19:12 +0000 Subject: [PATCH] Update FredOS-Macbook.nix --- hosts/FredOS-Macbook.nix | 124 ++++++++++++++++++++++----------------- 1 file changed, 70 insertions(+), 54 deletions(-) diff --git a/hosts/FredOS-Macbook.nix b/hosts/FredOS-Macbook.nix index 5b2fb8b..1314c2f 100644 --- a/hosts/FredOS-Macbook.nix +++ b/hosts/FredOS-Macbook.nix @@ -1,61 +1,77 @@ +# hosts/FredOS-Gaming.nix { config, pkgs, lib, ... }: - { - config = lib.mkMerge [ - { - nixpkgs.config.allowInsecurePredicate = pkg: - (lib.hasPrefix "broadcom-sta" (lib.getName pkg)); - } - - (lib.mkIf (config.networking.hostName == "FredOS-Macbook") { - # ... all your other settings (tlp, boot, firmware) ... - environment.systemPackages = with pkgs; [ tlp ]; - services.tlp.enable = false; - services.power-profiles-daemon.enable = true; - - hardware.facetimehd.enable = true; - - boot = { - loader = { - systemd-boot.enable = true; - efi.canTouchEfiVariables = true; - }; - extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ]; - blacklistedKernelModules = [ "b43" "bcma" "ssb" ]; - }; - hardware.enableRedistributableFirmware = true; - -# Enable Bluetooth - hardware.bluetooth = { - enable = true; - powerOnBoot = true; - settings = { - General = { - Enable = "Source,Sink,Media,Socket"; - Experimental = true; + config = lib.mkIf (config.networking.hostName == "FredOS-Gaming") { + environment.systemPackages = with pkgs; [ + lutris + heroic + ]; + + programs.steam = { + enable = true; + remotePlay.openFirewall = true; + package = pkgs.steam.override { + extraPkgs = pkgs: with pkgs; [ + adwaita-icon-theme + ]; }; }; - }; - - # PipeWire with Bluetooth support - services.pipewire = { - enable = true; - alsa.enable = true; - pulse.enable = true; - # Add Bluetooth codec config - wireplumber.configPackages = [ - (pkgs.writeTextDir "share/wireplumber/bluetooth.lua.d/51-bluez-config.lua" '' - bluez_monitor.properties = { - ["bluez5.enable-sbc-xq"] = true, - ["bluez5.enable-msbc"] = true, - ["bluez5.enable-hw-volume"] = true, - ["bluez5.headset-roles"] = "[ hsp_hs hsp_ag hfp_hf hfp_ag ]" - } - '') - ]; + # Steam icon fix script + systemd.user.services.steam-icon-fix = { + description = "Fix Steam Proton game icons"; + + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = false; + }; + + script = '' + STEAM_DIR="$HOME/.local/share/Steam" + DESKTOP_DIR="$HOME/.local/share/applications" + ICON_DIR="$HOME/.local/share/icons" + + # Search all desktop files for steam_icon references + ${pkgs.gnugrep}/bin/grep -l "Icon=steam_icon_" "$DESKTOP_DIR"/*.desktop 2>/dev/null | while read desktop_file; do + # Extract the app_id from the Icon line + app_id=$(${pkgs.gnugrep}/bin/grep "Icon=steam_icon_" "$desktop_file" | ${pkgs.gnused}/bin/sed 's/Icon=steam_icon_//') + + # Check if icon already exists + if [ -f "$ICON_DIR/hicolor/256x256/apps/steam_icon_$app_id.png" ]; then + continue + fi + + # Find the actual icon file + icon_file=$(find "$STEAM_DIR/appcache/librarycache/$app_id" -name "*.jpg" 2>/dev/null | head -n 1) + + if [ -f "$icon_file" ]; then + # Copy icon to multiple sizes + for size in 48x48 64x64 128x128 256x256; do + mkdir -p "$ICON_DIR/hicolor/$size/apps/" + cp "$icon_file" "$ICON_DIR/hicolor/$size/apps/steam_icon_$app_id.png" + done + + echo "Fixed icon for $(basename "$desktop_file"): App ID $app_id" + fi + done + ''; + }; + + # Bootloader + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + boot.loader.timeout = 1; + + system.autoUpgrade = { + enable = true; + dates = "daily"; + persistent = true; + allowReboot = false; + channel = "https://nixos.org/channels/nixos-unstable"; + flags = [ + "--upgrade" + "--option" "tarball-ttl" "0" + ]; + }; }; - - }) - ]; }