diff --git a/TODO.md b/TODO.md deleted file mode 100644 index 2ee047b8..00000000 --- a/TODO.md +++ /dev/null @@ -1,2 +0,0 @@ -- Add Nix formatting and linting that works with neovim. -- Change system to configs and migrate files to programs, desktop, or services as appropriate. configs will include optional system configuration that don't require additional programs installed (aliases for example) diff --git a/home/bin/executable_linux-clean-home b/home/bin/executable_linux-clean-home new file mode 100644 index 00000000..c5d45772 --- /dev/null +++ b/home/bin/executable_linux-clean-home @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +tmp_dir="$HOME/tmp/$(date +'%Y%m%dT%H%M%S')" + +mkdir -p $tmp_dir +ls -p ~ | grep -v '^\.' \ + | grep -v 'bin' \ + | grep -v 'Desktop' \ + | grep -v 'devel' \ + | grep -v 'documents' \ + | grep -v 'media' \ + | grep -v 'mnt' \ + | grep -v 'Screenshots' \ + | grep -v 'sync' \ + | grep -v 'tmp' \ + | xargs -I {} mv ~/{} $tmp_dir diff --git a/home/dot_aliases b/home/dot_aliases index a1b60e67..b6bcb559 100644 --- a/home/dot_aliases +++ b/home/dot_aliases @@ -70,9 +70,3 @@ alias google-chrome-stable="google-chrome-stable --simulate-outdated-no-au='Tue, # rsync alias rsync.net="ssh fm2120@fm2120.rsync.net" - -# svs subwoofer -sv() { - pySVS 54:B7:E5:57:1A:7B --volume="$1" -} - diff --git a/home/dot_config/borgmatic.d/torus_bulk.yaml b/home/dot_config/borgmatic.d/torus_bulk.yaml index 983446e6..3f0eb97b 100644 --- a/home/dot_config/borgmatic.d/torus_bulk.yaml +++ b/home/dot_config/borgmatic.d/torus_bulk.yaml @@ -1,10 +1,18 @@ source_directories: - /engi/backup # Static files and service dumps - #- /home/tstarr/Sync # Syncthing files + - /var/lib/nextcloud # nextcloud files (besides sql dump) + - /home/tstarr/sync # Syncthing backups before_backup: - "tree /engi > /engi/backup/tree.txt" - - sudo -u gitea backup-dump-gitea + - sudo -u gitea dump-gitea + - sudo -u nextcloud dump-nextcloud + - sudo -u miniflux dump-miniflux + - nextcloud-occ maintenance:mode --on + +after_backup: + - restore-docker-containers + - nextcloud-occ maintenance:mode --off archive_name_format: 'torus_bulk.borg-{now}' diff --git a/provision/flake.lock b/provision/flake.lock index 7509496c..aef575b4 100644 --- a/provision/flake.lock +++ b/provision/flake.lock @@ -105,11 +105,11 @@ ] }, "locked": { - "lastModified": 1725831139, - "narHash": "sha256-9syY5nEehCswE8AMcjpUO4T0iX9nrNbzq69Kqcs92L0=", + "lastModified": 1731235328, + "narHash": "sha256-NjavpgE9/bMe/ABvZpyHIUeYF1mqR5lhaep3wB79ucs=", "owner": "nix-community", "repo": "home-manager", - "rev": "8a175a89137fe798b33c476d4dae17dba5fb3fd3", + "rev": "60bb110917844d354f3c18e05450606a435d2d10", "type": "github" }, "original": { @@ -121,11 +121,11 @@ "jovian-nixos": { "flake": false, "locked": { - "lastModified": 1725600800, - "narHash": "sha256-wst7p3RZ9kZUNzN22d27wU8YSBB7Grlx6Q03A7boRaU=", + "lastModified": 1731227601, + "narHash": "sha256-aGUQ6W/Oxd9xjH9RQbnUtC61sTK2fWlKr+J7kavT/RQ=", "ref": "development", - "rev": "2d050e65a71e02a1f19d1a35c086bd2e3dfb2cdb", - "revCount": 918, + "rev": "7691d0ac1deb6ac7482c5a22fe1a14a34ca608b0", + "revCount": 1019, "type": "git", "url": "https://github.com/Jovian-Experiments/Jovian-NixOS" }, @@ -144,11 +144,11 @@ ] }, "locked": { - "lastModified": 1727464323, - "narHash": "sha256-XhiLvnM95aNpRm3qJ9hsVV/prin4GVapn4snMN4Ol6k=", + "lastModified": 1730453870, + "narHash": "sha256-d+kIgz4BvTXb7emjSFV3zjNydGmLUmuluQjdBb51R9o=", "owner": "nix-community", "repo": "NixOS-WSL", - "rev": "4aef94d5afb4a791e5e9a3ee844c68ad01f54a14", + "rev": "adb6bc4b661a43328752b4575be4968a4990c033", "type": "github" }, "original": { @@ -175,11 +175,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1725634671, - "narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=", + "lastModified": 1731139594, + "narHash": "sha256-IigrKK3vYRpUu+HEjPL/phrfh7Ox881er1UEsZvw9Q4=", "owner": "nixos", "repo": "nixpkgs", - "rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c", + "rev": "76612b17c0ce71689921ca12d9ffdc9c23ce40b2", "type": "github" }, "original": { diff --git a/provision/hosts/bulwark/configuration.nix b/provision/hosts/bulwark/configuration.nix index 2cab8aae..c0df46a6 100644 --- a/provision/hosts/bulwark/configuration.nix +++ b/provision/hosts/bulwark/configuration.nix @@ -31,21 +31,19 @@ programs = { chezmoi.apply = true; kitty.enable = true; + }; + services = { + samba-client.enable = true; + ssh.enable = true; syncthing = { enable = true; keyPath = ../../secrets/syncthing/bulwark/key.pem.age; certPath = ../../secrets/syncthing/bulwark/cert.pem.age; devices = { "kestrel" = { id = "5WWL4FE-ARZ4FHP-J33HQCH-CZKEXLN-2RAY4KW-PDI754F-3HVPZYI-VC3ESAF"; }; + "torus" = { id = "ZVABUCA-3SA5QKR-OZSCIS5-RDAHR2V-D4R4NFK-ZBYOKDP-6HQUG2M-BNL3DAO"; }; }; }; }; - services = { - samba-client.enable = true; - }; - system = { - ssh.enable = true; - terminal.enable = true; - }; }; } diff --git a/provision/hosts/bulwark/steam-deck.nix b/provision/hosts/bulwark/steam-deck.nix index 5f4c7f3f..9fde8111 100644 --- a/provision/hosts/bulwark/steam-deck.nix +++ b/provision/hosts/bulwark/steam-deck.nix @@ -8,13 +8,11 @@ steam.desktopSession = "gnome"; steam.enable = true; steam.user = "${user}"; - steam.autoStart = true; + steam.autoStart = false; devices.steamdeck.enable = true; devices.steamdeck.autoUpdate = true; }; - services.xserver.displayManager.gdm.enable = lib.mkForce false; - environment.systemPackages = with pkgs; [ jupiter-dock-updater-bin # Binary package for updating firmware on Jupiter Dock, a hardware accessory for certain laptops. steamdeck-firmware # Firmware package for Valve's Steam Deck, a handheld gaming device. diff --git a/provision/hosts/default/default.nix b/provision/hosts/default/default.nix index f21acec4..91659a5d 100644 --- a/provision/hosts/default/default.nix +++ b/provision/hosts/default/default.nix @@ -1,7 +1,7 @@ { config, pkgs, user, lib, inputs, ... }: { nix = { - package = pkgs.nixFlakes; + package = pkgs.nixVersions.stable; extraOptions = "experimental-features = nix-command flakes"; settings.auto-optimise-store = true; gc = { diff --git a/provision/hosts/kestrel/configuration.nix b/provision/hosts/kestrel/configuration.nix index 24db4373..bb332047 100644 --- a/provision/hosts/kestrel/configuration.nix +++ b/provision/hosts/kestrel/configuration.nix @@ -2,6 +2,7 @@ { imports = [ ./backup.nix + ./gnome.nix ]; # Use performance governor for sweet gaming performance! @@ -48,26 +49,23 @@ }; programs = { beancount.enable = true; + borg.enable = true; chezmoi.apply = true; kitty.enable = true; + virt-manager.enable = true; + }; + services = { + samba-client.enable = true; + ssh.enable = true; syncthing = { enable = true; keyPath = ../../secrets/syncthing/kestrel/key.pem.age; certPath = ../../secrets/syncthing/kestrel/cert.pem.age; devices = { "bulwark" = { id = "YKPOWTQ-XMXG3SD-XKLPVEC-H4SO345-2ZZQK65-EBISRED-ISKCFMQ-T74P6Q5"; }; + "torus" = { id = "ZVABUCA-3SA5QKR-OZSCIS5-RDAHR2V-D4R4NFK-ZBYOKDP-6HQUG2M-BNL3DAO"; }; }; }; }; - services = { - peripherals.enable = true; - samba-client.enable = true; - virt-manager.enable = true; - }; - system = { - backup.enable = true; - ssh.enable = true; - terminal.enable = true; - }; }; } diff --git a/provision/hosts/kestrel/gnome.nix b/provision/hosts/kestrel/gnome.nix new file mode 100644 index 00000000..4456f5b3 --- /dev/null +++ b/provision/hosts/kestrel/gnome.nix @@ -0,0 +1,23 @@ +{ config, lib, pkgs, user, home-manager, ... }: +{ + environment.systemPackages = with pkgs; [ + gnomeExtensions.executor # Execute shell commands display output top bar. + ]; + + home-manager.users.${user} = { + dconf.settings = { + "org/gnome/shell" = { + enabled-extensions = [ + "executor@raujonas.github.io" + ]; + }; + "org/gnome/shell/extensions/executor" = { + "click-on-output-active" = false; + "center-active" = false; + "left-active" = false; + "right-active" = true; + "right-commands-json" = ''{"commands":[{"isActive":true,"command":"echo \"󰓃 $(cat /tmp/svs)dB\"","interval":10,"uuid":"732cd6de-ff5f-46a7-b8bb-51d1c621cc60"}]}''; + }; + }; + }; +} diff --git a/provision/hosts/osprey/configuration.nix b/provision/hosts/osprey/configuration.nix index e128874b..d883e246 100644 --- a/provision/hosts/osprey/configuration.nix +++ b/provision/hosts/osprey/configuration.nix @@ -32,16 +32,16 @@ desktop = { enable = true; gnome.enable = true; + peripherals.enable = true; }; programs = { + appgate-sdp.enable = true; chezmoi.apply = true; kitty.enable = true; - appgate-sdp.enable = true; + virt-manager.enable = true; }; services = { - peripherals.enable = true; samba-client.enable = true; - virt-manager.enable = true; }; system = { ssh.enable = true; diff --git a/provision/hosts/shivan/configuration.nix b/provision/hosts/shivan/configuration.nix index e982e3f2..f7a317e6 100644 --- a/provision/hosts/shivan/configuration.nix +++ b/provision/hosts/shivan/configuration.nix @@ -23,6 +23,7 @@ desktop = { enable = true; gnome.enable = true; + peripherals.enable = true; }; devel = { engineering.enable = true; @@ -31,11 +32,10 @@ programs = { kitty.enable = true; chezmoi.apply = true; + virt-manager.enable = false; }; services = { - peripherals.enable = true; samba-client.enable = true; - virt-manager.enable = false; }; system = { ssh.enable = true; diff --git a/provision/hosts/torus/configuration.nix b/provision/hosts/torus/configuration.nix index 504384f2..bdfe16cb 100644 --- a/provision/hosts/torus/configuration.nix +++ b/provision/hosts/torus/configuration.nix @@ -98,11 +98,19 @@ modules = { programs = { chezmoi.apply = true; + borg.enable = true; }; - system = { - backup.enable = true; - terminal.enable = true; + services = { ssh.enable = true; + syncthing = { + enable = true; + keyPath = ../../secrets/syncthing/torus/key.pem.age; + certPath = ../../secrets/syncthing/torus/cert.pem.age; + devices = { + "bulwark" = { id = "YKPOWTQ-XMXG3SD-XKLPVEC-H4SO345-2ZZQK65-EBISRED-ISKCFMQ-T74P6Q5"; }; + "kestrel" = { id = "5WWL4FE-ARZ4FHP-J33HQCH-CZKEXLN-2RAY4KW-PDI754F-3HVPZYI-VC3ESAF"; }; + }; + }; }; }; } diff --git a/provision/hosts/torus/gitea.nix b/provision/hosts/torus/gitea.nix index 91b854c3..d6ace446 100644 --- a/provision/hosts/torus/gitea.nix +++ b/provision/hosts/torus/gitea.nix @@ -11,7 +11,7 @@ in { ]; environment.systemPackages = [ - (pkgs.writeScriptBin "backup-dump-gitea" '' + (pkgs.writeScriptBin "dump-gitea" '' #!/bin/sh cd ${dumpFolder} [ -e gitea-dump.zip ] && rm gitea-dump.zip diff --git a/provision/hosts/torus/nextcloud.nix b/provision/hosts/torus/nextcloud.nix index 1d0c55a4..74e7d2b4 100644 --- a/provision/hosts/torus/nextcloud.nix +++ b/provision/hosts/torus/nextcloud.nix @@ -1,7 +1,24 @@ { config, lib, pkgs, user, ... }: -{ +let + dumpFolder = "/engi/backup/dumps/nextcloud"; + domain = "cloud.tstarr.us"; +in { environment.systemPackages = with pkgs; [ cron + zip + rsync + (pkgs.writeScriptBin "dump-nextcloud" '' + #!/bin/sh + cd ${dumpFolder} + [ -e nextcloud-sql ] && rm nextcloud-sql + nextcloud-occ maintenance:mode --on + mysqldump --single-transaction nextcloud > ${dumpFolder}/nextcloud-sql + nextcloud-occ maintenance:mode --off + '') + ]; + + systemd.tmpfiles.rules = [ + "d ${dumpFolder} 0775 nextcloud nextcloud -" ]; # nextcloud secrets @@ -13,7 +30,7 @@ services = { nginx.virtualHosts = { - "cloud.tstarr.us" = { + "${domain}" = { forceSSL = true; enableACME = true; }; @@ -21,7 +38,7 @@ nextcloud = { enable = true; - hostName = "cloud.tstarr.us"; + hostName = "${domain}"; # Need to manually increment with every major upgrade. package = pkgs.nextcloud29; diff --git a/provision/hosts/torus/rss.nix b/provision/hosts/torus/rss.nix index 23e5a169..c6076c2e 100644 --- a/provision/hosts/torus/rss.nix +++ b/provision/hosts/torus/rss.nix @@ -1,8 +1,22 @@ { config, lib, pkgs, user, ... }: let domain = "rssbridge.tstarr.us"; + dumpFolder = "/engi/backup/dumps/miniflux"; in { + systemd.tmpfiles.rules = [ + "d ${dumpFolder} 0775 miniflux miniflux -" + ]; + + environment.systemPackages = [ + (pkgs.writeScriptBin "dump-miniflux" '' + #!/bin/sh + cd ${dumpFolder} + [ -e miniflux-sql ] && rm miniflux-sql + pg_dump miniflux > ${dumpFolder}/miniflux-sql + '') + ]; + services.postgresql = { enable = true; authentication = pkgs.lib.mkOverride 10 '' diff --git a/provision/modules/default.nix b/provision/modules/default.nix index 8fa5036a..0490f1a8 100644 --- a/provision/modules/default.nix +++ b/provision/modules/default.nix @@ -1,4 +1,10 @@ { ... }: { - imports = [ ./desktop ./devel ./gaming ./programs ./system ./services ]; + imports = [ + ./desktop + ./devel + ./gaming + ./programs + ./services + ]; } diff --git a/provision/modules/desktop/default.nix b/provision/modules/desktop/default.nix index c08eb9cf..2c6593ca 100644 --- a/provision/modules/desktop/default.nix +++ b/provision/modules/desktop/default.nix @@ -6,13 +6,13 @@ in { ./kde-connect.nix ./keyd.nix ./gnome.nix + ./peripherals.nix ]; options.modules.desktop.enable = lib.mkEnableOption "desktop"; config = lib.mkIf cfg.enable { environment.systemPackages = with pkgs; [ bc # Arbitrary-precision arithmetic language. - fzf # Command-line fuzzy finder for Unix-like operating systems. gamemode # Optimizes system performance for gaming by adjusting system settings. vesktop # Voice, video, and text communication platform for communities and friends. inkscape # Vector graphics editor for creating illustrations, icons, logos, diagrams, and more. diff --git a/provision/modules/desktop/gnome.nix b/provision/modules/desktop/gnome.nix index ba81e591..44caf567 100644 --- a/provision/modules/desktop/gnome.nix +++ b/provision/modules/desktop/gnome.nix @@ -196,6 +196,7 @@ in { move-to-center = [ "c" ]; switch-windows = ["Tab"]; switch-windows-backward = ["Tab"]; + panel-run-dialog = ["r"]; minimize = []; }; # custom-hot-corners-extended configs diff --git a/provision/modules/desktop/peripherals.nix b/provision/modules/desktop/peripherals.nix new file mode 100644 index 00000000..241e0169 --- /dev/null +++ b/provision/modules/desktop/peripherals.nix @@ -0,0 +1,24 @@ +{ config, lib, pkgs, user, ... }: + +let cfg = config.modules.desktop; +in { + config = lib.mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + libimobiledevice # Library to support iPhone, iPod Touch and iPad devices on Linux + ifuse # fuse filesystem implementation to access the contents of iOS devices + pySVS # control SVS subwoofers from the command-line + (pkgs.writeScriptBin "sv" '' + #!/bin/sh + pySVS 54:B7:E5:57:1A:7B --volume="$1" && echo "$1" > /tmp/svs + '') + (pkgs.writeScriptBin "svv" '' + #!/bin/sh + pySVS 54:B7:E5:57:1A:7B --volume=A | grep -oP "(?<=VOLUME': )-?\\d+" > /tmp/svs + '') + opensc # Open source smart card tools and middleware + pcsc-tools # Tools are used to test a PC/SC drivers + pkcs11helper # Library that simplifies the interaction with PKCS#11 + ]; + services.usbmuxd.enable = true; # for iOS mounting as storage + }; +} diff --git a/provision/modules/gaming/emulation.nix b/provision/modules/gaming/emulation.nix index 0090a655..8e9dd597 100644 --- a/provision/modules/gaming/emulation.nix +++ b/provision/modules/gaming/emulation.nix @@ -21,17 +21,5 @@ in { ]; }) ]; - - # Provide dumped keys for switch emulation - age.secrets."emu/switch/prod.keys" = { - file = ../../secrets/emu/switch/prod.keys.age; - owner = "${user}"; - group = "users"; - }; - age.secrets."emu/switch/title.keys" = { - file = ../../secrets/emu/switch/title.keys.age; - owner = "${user}"; - group = "users"; - }; }; } diff --git a/provision/modules/gaming/steam.nix b/provision/modules/gaming/steam.nix index ab1ea49a..43a0bc67 100644 --- a/provision/modules/gaming/steam.nix +++ b/provision/modules/gaming/steam.nix @@ -5,9 +5,9 @@ in { options.modules.gaming.steam.enable = lib.mkEnableOption "steam"; config = lib.mkIf cfg.enable { environment.systemPackages = with pkgs; [ - steamtinkerlaunch # Launcher and optimization tool for Steam games. gamescope # Utility for running games using Valve's Steam Play compatibility layer with improved performance and compatibility. mangohud # Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more. + steamtinkerlaunch # Launcher and optimization tool for Steam games. ]; hardware.graphics.enable = true; # this fixes the "glXChooseVisual failed" bug, context: https://github.com/NixOS/nixpkgs/issues/47932 diff --git a/provision/modules/system/terminal.nix b/provision/modules/programs/base-terminal.nix similarity index 76% rename from provision/modules/system/terminal.nix rename to provision/modules/programs/base-terminal.nix index d9dadade..d30ccc23 100644 --- a/provision/modules/system/terminal.nix +++ b/provision/modules/programs/base-terminal.nix @@ -1,10 +1,15 @@ { config, lib, pkgs, user, ... }: -let cfg = config.modules.system.terminal; +let cfg = config.modules.programs.base-terminal; in { - options.modules.system.terminal.enable = lib.mkEnableOption "terminal"; - config = lib.mkIf cfg.enable { + options.modules.programs.base-terminal = with lib; { + enable = lib.mkOption { + type = with types; bool; + default = true; + }; + }; + config = lib.mkIf cfg.enable { environment.systemPackages = with pkgs; [ killall # Command-line utility to terminate processes by name. pciutils # Utilities for inspecting and manipulating devices connected to the PCI bus. @@ -24,9 +29,10 @@ in { nodejs # JavaScript runtime built on Chrome's V8 JavaScript engine. ripgrep # Line-oriented search tool that recursively searches directories for a regex pattern. cargo # Package manager and build system for Rust. - docker-compose - sesh - zoxide + docker-compose # Docker CLI plugin to define and run multi-container applications with Docker. + sesh # Smart session manager for the terminal. + zoxide # Fast cd command that learns your habits. + fzf # Command-line fuzzy finder for Unix-like operating systems. ]; }; } diff --git a/provision/modules/system/backup.nix b/provision/modules/programs/borg.nix similarity index 86% rename from provision/modules/system/backup.nix rename to provision/modules/programs/borg.nix index 0a813ca6..3b01cd5d 100644 --- a/provision/modules/system/backup.nix +++ b/provision/modules/programs/borg.nix @@ -1,10 +1,9 @@ { config, pkgs, user, lib, ... }: -let cfg = config.modules.system.backup; +let cfg = config.modules.programs.borg; in { - options.modules.system.backup.enable = lib.mkEnableOption "backup"; + options.modules.programs.borg.enable = lib.mkEnableOption "borg"; config = lib.mkIf cfg.enable { - services.borgmatic.enable = true; environment.systemPackages = with pkgs; [ borgbackup # Deduplicating backup program tree @@ -22,5 +21,6 @@ in { rm /tmp/docker_images '') ]; + services.borgmatic.enable = true; }; } diff --git a/provision/modules/programs/chrome/bookmarks.nix b/provision/modules/programs/chrome/bookmarks.nix index fd597957..bce6dd17 100644 --- a/provision/modules/programs/chrome/bookmarks.nix +++ b/provision/modules/programs/chrome/bookmarks.nix @@ -1,5 +1,3 @@ -# Chrome bookmarks - [ { "toplevel_name" = "Bookmarks"; } { "name" = "Daily"; "children" = [ diff --git a/provision/modules/programs/default.nix b/provision/modules/programs/default.nix index dffb75a0..c3beaee1 100644 --- a/provision/modules/programs/default.nix +++ b/provision/modules/programs/default.nix @@ -2,14 +2,16 @@ { imports = [ ./appgate-sdp.nix + ./base-terminal.nix ./beancount.nix + ./borg.nix ./chrome ./firefox ./git.nix ./chezmoi.nix ./kitty.nix ./nvim.nix - ./syncthing.nix + ./virt-manager.nix ./yt-dlp.nix ]; } diff --git a/provision/modules/programs/firefox/bookmarks.nix b/provision/modules/programs/firefox/bookmarks.nix index 75c3820f..d93b3804 100644 --- a/provision/modules/programs/firefox/bookmarks.nix +++ b/provision/modules/programs/firefox/bookmarks.nix @@ -1,5 +1,3 @@ -# Firefox bookmarks - [ { name = "Managed Bookmarks"; toolbar = true; bookmarks = [ { name = "Bookmarks"; bookmarks = [ diff --git a/provision/modules/programs/firefox/default.nix b/provision/modules/programs/firefox/default.nix index f175dff0..c0540ca2 100644 --- a/provision/modules/programs/firefox/default.nix +++ b/provision/modules/programs/firefox/default.nix @@ -11,13 +11,6 @@ in { }; config = lib.mkIf (cfg1.enable && cfg2.enable) { - # Applications for CAC usage - environment.systemPackages = with pkgs; [ - opensc - pcsc-tools - pkcs11helper - ]; - home-manager.users.${user} = { programs.firefox = { enable = true; diff --git a/provision/modules/programs/kitty.nix b/provision/modules/programs/kitty.nix index 4a8071a9..87dfa72a 100644 --- a/provision/modules/programs/kitty.nix +++ b/provision/modules/programs/kitty.nix @@ -11,7 +11,7 @@ in { programs.kitty = { enable = true; - theme = "Gruvbox Dark"; + themeFile = "gruvbox-dark"; font.name = "JetBrainsMono Nerd Font"; shellIntegration.mode = "no-cursor"; settings = { diff --git a/provision/modules/services/virt-manager.nix b/provision/modules/programs/virt-manager.nix similarity index 73% rename from provision/modules/services/virt-manager.nix rename to provision/modules/programs/virt-manager.nix index b1c53d4f..845ac710 100644 --- a/provision/modules/services/virt-manager.nix +++ b/provision/modules/programs/virt-manager.nix @@ -1,13 +1,13 @@ { config, lib, pkgs, ... }: -let cfg = config.modules.services.virt-manager; +let cfg = config.modules.programs.virt-manager; in { - options.modules.services.virt-manager.enable = lib.mkEnableOption "virt-manager"; + options.modules.programs.virt-manager.enable = lib.mkEnableOption "virt-manager"; config = lib.mkIf cfg.enable { - virtualisation.libvirtd.enable = true; - programs.dconf.enable = true; environment.systemPackages = with pkgs; [ virt-manager # Desktop application for managing virtual machines through libvirt. ]; + virtualisation.libvirtd.enable = true; + programs.dconf.enable = true; }; } diff --git a/provision/modules/services/default.nix b/provision/modules/services/default.nix index 95f8f298..76ebed28 100644 --- a/provision/modules/services/default.nix +++ b/provision/modules/services/default.nix @@ -1,4 +1,8 @@ { ... }: { - imports = [ ./peripherals.nix ./samba-client.nix ./virt-manager.nix ]; + imports = [ + ./samba-client.nix + ./ssh.nix + ./syncthing.nix + ]; } diff --git a/provision/modules/services/peripherals.nix b/provision/modules/services/peripherals.nix deleted file mode 100644 index 96a3abc7..00000000 --- a/provision/modules/services/peripherals.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ config, lib, pkgs, user, ... }: - -let cfg = config.modules.services.peripherals; -in { - options.modules.services.peripherals.enable = lib.mkEnableOption "peripherals"; - config = lib.mkIf cfg.enable { - - services.usbmuxd.enable = true; # for iOS mounting as storage - environment.systemPackages = with pkgs; [ - pulseaudio # Sound server for Linux and other Unix-like operating systems. - pavucontrol # Simple GTK based mixer for the PulseAudio sound server - libimobiledevice # Library to support iPhone, iPod Touch and iPad devices on Linux - ifuse # fuse filesystem implementation to access the contents of iOS devices - usbtop - pySVS # control SVS subwoofers from the command-line - ]; - - security.rtkit.enable = true; - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - }; - }; -} diff --git a/provision/modules/services/samba-client.nix b/provision/modules/services/samba-client.nix index e4249c61..a75f4b57 100644 --- a/provision/modules/services/samba-client.nix +++ b/provision/modules/services/samba-client.nix @@ -4,14 +4,11 @@ let cfg = config.modules.services.samba-client; in { options.modules.services.samba-client.enable = lib.mkEnableOption "samba-client"; config = lib.mkIf cfg.enable { - - # the needed ports in the firewall. - networking.firewall.allowedTCPPorts = [ 445 139 ]; - networking.firewall.allowedUDPPorts = [ 137 138 ]; - - # To make SMB mounting easier on the command line environment.systemPackages = with pkgs; [ cifs-utils # Utilities for mounting and managing CIFS (Common Internet File System) shares. ]; + + networking.firewall.allowedTCPPorts = [ 445 139 ]; + networking.firewall.allowedUDPPorts = [ 137 138 ]; }; } diff --git a/provision/modules/services/ssh.nix b/provision/modules/services/ssh.nix new file mode 100644 index 00000000..79dd1a69 --- /dev/null +++ b/provision/modules/services/ssh.nix @@ -0,0 +1,15 @@ +{ config, lib, pkgs, user, ... }: + +let cfg = config.modules.services.ssh; +in { + options.modules.services.ssh.enable = lib.mkEnableOption "ssh"; + config = lib.mkIf cfg.enable { + services.openssh.enable = true; + services.pcscd.enable = true; + programs.gnupg.agent = { + enable = true; + pinentryPackage = pkgs.pinentry-curses; + enableSSHSupport = true; + }; + }; +} diff --git a/provision/modules/programs/syncthing.nix b/provision/modules/services/syncthing.nix similarity index 93% rename from provision/modules/programs/syncthing.nix rename to provision/modules/services/syncthing.nix index 068c3ed4..f13a7a8b 100644 --- a/provision/modules/programs/syncthing.nix +++ b/provision/modules/services/syncthing.nix @@ -1,8 +1,8 @@ { config, lib, pkgs, user, ... }: -let cfg = config.modules.programs.syncthing; +let cfg = config.modules.services.syncthing; in { - options.modules.programs.syncthing = with lib; { + options.modules.services.syncthing = with lib; { enable = lib.mkOption { type = types.bool; default = false; diff --git a/provision/modules/system/default.nix b/provision/modules/system/default.nix deleted file mode 100644 index b2e001a1..00000000 --- a/provision/modules/system/default.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ ... }: -{ - imports = [ ./backup.nix ./ssh.nix ./terminal.nix ]; -} diff --git a/provision/modules/system/ssh.nix b/provision/modules/system/ssh.nix deleted file mode 100644 index a0fbce5f..00000000 --- a/provision/modules/system/ssh.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ config, lib, pkgs, user, ... }: - -let cfg = config.modules.system.ssh; -in { - options.modules.system.ssh.enable = lib.mkEnableOption "ssh"; - config = lib.mkIf cfg.enable { - # Enable the OpenSSH daemon. - services.openssh.enable = true; - services.pcscd.enable = true; - programs.gnupg.agent = { - enable = true; - pinentryPackage = pkgs.pinentry-curses; - enableSSHSupport = true; - }; - }; -} diff --git a/provision/overlays/default.nix b/provision/overlays/default.nix index 410613a0..3ad623e4 100644 --- a/provision/overlays/default.nix +++ b/provision/overlays/default.nix @@ -1,14 +1,11 @@ -/* This contains various packages we want to overlay. Note that the - * other ".nix" files in this directory are automatically loaded. - */ final: prev: { advcpmv = final.callPackage ../pkgs/advcpmv.nix {}; - nx_tzdb = final.callPackage ../pkgs/nx_tzdb.nix {}; - sudachi = final.qt6.callPackage ../pkgs/sudachi/default.nix {}; - yuzu = final.libsForQt5.callPackage ../pkgs/yuzu.nix {}; - gnome-set-panel-monitor = final.callPackage ../pkgs/gnome-set-panel-monitor.nix {}; - gnome-fullscreen-to-empty-workspace = final.callPackage ../pkgs/gnome-fullscreen-to-empty-workspace.nix {}; - ryujinx = final.callPackage ../pkgs/ryujinx/default.nix {}; - pySVS = final.callPackage ../pkgs/pySVS.nix {}; ftw = final.callPackage ../pkgs/ftw.nix {}; + gnome-fullscreen-to-empty-workspace = final.callPackage ../pkgs/gnome-fullscreen-to-empty-workspace/default.nix {}; + gnome-set-panel-monitor = final.callPackage ../pkgs/gnome-set-panel-monitor.nix {}; + nx_tzdb = final.callPackage ../pkgs/nx_tzdb.nix {}; + pySVS = final.callPackage ../pkgs/pySVS.nix {}; + ryujinx = final.callPackage ../pkgs/ryujinx/default.nix {}; + sudachi = final.qt6.callPackage ../pkgs/sudachi/default.nix {}; + yuzu = final.libsForQt5.callPackage ../pkgs/yuzu/default.nix {}; } diff --git a/provision/overlays/focus-changer.nix b/provision/overlays/focus-changer.nix deleted file mode 100644 index 1d78c3cd..00000000 --- a/provision/overlays/focus-changer.nix +++ /dev/null @@ -1,12 +0,0 @@ -self: super: { - gnomeExtensions = super.gnomeExtensions // { - focus-changer = super.gnomeExtensions.focus-changer.overrideAttrs (old: { - src = super.fetchFromGitHub { - owner = "martinhjartmyr"; - repo = "gnome-shell-extension-focus-changer"; - rev = "4de5bc334a1624fd8eb22203ab229a6045320923"; - sha256 = "sha256-hvLDsLQl7+Flrlg26HNIuwLnWqpB09ZO1xNHRms22g0="; - }; - }); - }; -} diff --git a/provision/pkgs/gnome-fullscreen-to-empty-workspace.nix b/provision/pkgs/gnome-fullscreen-to-empty-workspace/default.nix similarity index 96% rename from provision/pkgs/gnome-fullscreen-to-empty-workspace.nix rename to provision/pkgs/gnome-fullscreen-to-empty-workspace/default.nix index 2adc694e..8d64645f 100644 --- a/provision/pkgs/gnome-fullscreen-to-empty-workspace.nix +++ b/provision/pkgs/gnome-fullscreen-to-empty-workspace/default.nix @@ -11,6 +11,10 @@ stdenv.mkDerivation { hash = "sha256-S9mvODQqOBCmA+L1TBJm/c1v5Y+qVKuFpQf799LEwcI="; }; + patches = [ + ./version.patch + ]; + installPhase = '' runHook preInstall mkdir -p "$out/share/gnome-shell/extensions/fullscreen-to-empty-workspace@aiono.dev" diff --git a/provision/pkgs/gnome-fullscreen-to-empty-workspace/version.patch b/provision/pkgs/gnome-fullscreen-to-empty-workspace/version.patch new file mode 100644 index 00000000..bae98012 --- /dev/null +++ b/provision/pkgs/gnome-fullscreen-to-empty-workspace/version.patch @@ -0,0 +1,17 @@ +diff --git a/src/metadata.json b/src/metadata.json +index 66a2ea3..a98e00c 100644 +--- a/src/metadata.json ++++ b/src/metadata.json +@@ -4,8 +4,9 @@ + "url": "https://github.com/onsah/fullscreen-to-new-workspace", + "uuid": "fullscreen-to-empty-workspace@aiono.dev", + "shell-version": [ +- "46" ++ "47" + ], + "version": 15, + "settings-schema": "org.gnome.shell.extensions.fullscreen-to-empty-workspace" +-} +\ No newline at end of file ++} ++ diff --git a/provision/pkgs/gnome-set-panel-monitor.nix b/provision/pkgs/gnome-set-panel-monitor.nix index 7e5cad82..c79326b3 100644 --- a/provision/pkgs/gnome-set-panel-monitor.nix +++ b/provision/pkgs/gnome-set-panel-monitor.nix @@ -7,8 +7,8 @@ stdenv.mkDerivation { src = fetchFromGitHub { owner = "starr-dusT"; repo = "gnome-set-panel-monitor"; - rev = "62d1a7e7ed83d56b33e32f1ad948c99a559b6dbd"; - hash = "sha256-NB/DycA/VxIeFQk2l0MW7G5VVdJI/Zemy2l28VZx2Cc="; + rev = "89204ab29a4872c201f8185cee758384be073a73"; + hash = "sha256-MJVUjvrEe5b38MkRPt96NOH3cz1FzjoQWTPNtRFRVck="; }; installPhase = '' diff --git a/provision/pkgs/ryujinx/default.nix b/provision/pkgs/ryujinx/default.nix index 7ad2659d..1fd69e83 100644 --- a/provision/pkgs/ryujinx/default.nix +++ b/provision/pkgs/ryujinx/default.nix @@ -1,7 +1,7 @@ { lib , buildDotnetModule , dotnetCorePackages -, fetchFromGitea +, fetchFromGitHub , libX11 , libgdiplus , ffmpeg @@ -26,14 +26,13 @@ buildDotnetModule rec { pname = "ryujinx"; - version = "1.1.1401"; + version = "3513"; # commit number - src = fetchFromGitea { - domain = "git.tstarr.us"; - owner = "tstarr"; - repo = "ryujinx"; - rev = "5dbba07e33e83c9047dcbb701c9655edbbe89086"; - hash = "sha256-UeJ3KE5e5H9crqroAxjmxYTf/Z4cbj41a6/1HW2nLcA="; + src = fetchFromGitHub { + owner = "GreemDev"; + repo = "Ryujinx"; + rev = "6be88380433e04ea8898645ffc0111e1a31eafb1"; + hash = "sha256-t0qqshf2x+wogHtoxj9bthU03h29wvhrFCTUw8C2DDo="; }; enableParallelBuilding = false; diff --git a/provision/pkgs/ryujinx/deps.nix b/provision/pkgs/ryujinx/deps.nix index 6a1c37ce..54ef82b4 100644 --- a/provision/pkgs/ryujinx/deps.nix +++ b/provision/pkgs/ryujinx/deps.nix @@ -12,6 +12,9 @@ (fetchNuGet { pname = "Avalonia.Desktop"; version = "11.0.10"; hash = "sha256-fIty7TfiTC+OX9gCH4tA8Fs9dF4+G7Mhs9XnZadUR2g="; }) (fetchNuGet { pname = "Avalonia.Diagnostics"; version = "11.0.10"; hash = "sha256-itnN+LIZ2S+1CjD0ZS/woKtpgWbC/srMYzbYfX3a8LA="; }) (fetchNuGet { pname = "Avalonia.FreeDesktop"; version = "11.0.10"; hash = "sha256-uVNOOVTQIqQ2pDgSsz5saI7+fMvps40vJlMp1/XdyaE="; }) + (fetchNuGet { pname = "Projektanker.Icons.Avalonia"; version = "9.4.0"; hash = "sha256-SVzkayPUk/7WXQW2Wn3ri4ia92WvJoXTrPmcT8C+J8U="; }) + (fetchNuGet { pname = "Projektanker.Icons.Avalonia.FontAwesome"; version = "9.4.0"; hash = "sha256-NscqtIdfn4vWrZbPeJuBq+w6ysAIOLXm3FI8TYUJv4M="; }) + (fetchNuGet { pname = "Projektanker.Icons.Avalonia.MaterialDesign"; version = "9.4.0"; hash = "sha256-OTXZAbTsIWjJ7CduyuW57RoExC0eHYIwk9yq3TEGEXE="; }) (fetchNuGet { pname = "Avalonia.Markup.Xaml.Loader"; version = "11.0.10"; hash = "sha256-Xv6L8U34QEiH6r3SQWLwuVFk9N9REmCUHa9hEbv2m24="; }) (fetchNuGet { pname = "Avalonia.Native"; version = "11.0.10"; hash = "sha256-P9j01FDXDpixo8wBVH3XK0Am6UBhG52HDrzt1ZqD8Ro="; }) (fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "11.0.10"; hash = "sha256-qtvlczTg2yUZWyyqXkkboB8lK9aYv+STbfDvSKb55Vw="; }) @@ -31,6 +34,7 @@ (fetchNuGet { pname = "ExCSS"; version = "4.2.3"; hash = "sha256-M/H6P5p7qqdFz/fgAI2MMBWQ7neN/GIieYSSxxjsM9I="; }) (fetchNuGet { pname = "FluentAvaloniaUI"; version = "2.0.5"; hash = "sha256-EaJ6qR2yn+7p8lf62yx2vL3sGhnPOfbP5jBjR+pGY7o="; }) (fetchNuGet { pname = "FSharp.Core"; version = "7.0.200"; hash = "sha256-680VgvYbZbztPQosO17r5y8vxg/Y/4Vmr5K3iLIJKMo="; }) + (fetchNuGet { pname = "Gommon"; version = "2.6.5"; hash = "sha256-JpQs3FLEt3MThpmKmCkyCc/pXPwRPPGei92ONsOhzHo="; }) (fetchNuGet { pname = "GtkSharp.Dependencies"; version = "1.1.1"; hash = "sha256-/IpSj5JnUTREfQsdA3XW+eqNhqApTds65DQoNpjl3jk="; }) (fetchNuGet { pname = "HarfBuzzSharp"; version = "2.8.2.3"; hash = "sha256-4tbdgUabPjlkBm3aUFeocj4Fdslmms2olDFpzOLyqoQ="; }) (fetchNuGet { pname = "HarfBuzzSharp"; version = "7.3.0"; hash = "sha256-LlPQO/NYgIMWicvLOtWsQzCp512QpIImYDP9/n2rDOc="; }) @@ -42,6 +46,57 @@ (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.WebAssembly"; version = "7.3.0"; hash = "sha256-9VI0xCavuuIIStuQ7ipBfWu5HrAt+Kk/F2j57C1llTU="; }) (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Win32"; version = "2.8.2.3"; hash = "sha256-5GSzM5IUoOwK+zJg0d74WlT3n1VZly8pKlyjiqVocCI="; }) (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Win32"; version = "7.3.0"; hash = "sha256-WnB7l73hneU9Kpbm8S9zEYbZHjFre24vWz0vl8+v28M="; }) + (fetchNuGet { pname = "Humanizer"; version = "2.14.1"; hash = "sha256-1wGwf5KAmDeiH0Dz8KcTdZw+UMkiNsjKOIOt/VJnnqE="; }) + (fetchNuGet { pname = "Humanizer.Core"; version = "2.14.1"; hash = "sha256-EXvojddPu+9JKgOG9NSQgUTfWq1RpOYw7adxDPKDJ6o="; }) + (fetchNuGet { pname = "Humanizer.Core.af"; version = "2.14.1"; hash = "sha256-8CCgI7OweSa53cZWZBXQ8a7VVt/NPP16zHVBZvzU9KQ="; }) + (fetchNuGet { pname = "Humanizer.Core.ar"; version = "2.14.1"; hash = "sha256-JRoP+brQgYBZI8OccH/jaM1Z482ZWBiqU2XL3KsIPw8="; }) + (fetchNuGet { pname = "Humanizer.Core.az"; version = "2.14.1"; hash = "sha256-ubwkbes9zrrisuXTcT4ZgOAiFsUieC6OLd4pgzxsE40="; }) + (fetchNuGet { pname = "Humanizer.Core.bg"; version = "2.14.1"; hash = "sha256-Xv6DP1xxxGVUfP44TZasWpxgQ/DkriljvmIMtHf+nGk="; }) + (fetchNuGet { pname = "Humanizer.Core.bn-BD"; version = "2.14.1"; hash = "sha256-6JpReIc3fkExvJIXzk6fUw56wJ78aTEg1dWQ6o+dQow="; }) + (fetchNuGet { pname = "Humanizer.Core.cs"; version = "2.14.1"; hash = "sha256-MGL86KxSbz0PkDo9+NRj6h1fDjPZXlxAtYNf0Zreg/4="; }) + (fetchNuGet { pname = "Humanizer.Core.da"; version = "2.14.1"; hash = "sha256-Gpw8kJbgz0KQS2mGY5tmrHqpgUO4abD7dSKIy//ONYM="; }) + (fetchNuGet { pname = "Humanizer.Core.de"; version = "2.14.1"; hash = "sha256-Eswv8aEQoxI9MZr2CvWtBUn5X9JRZTWQjRzHJkGj80g="; }) + (fetchNuGet { pname = "Humanizer.Core.el"; version = "2.14.1"; hash = "sha256-wCK2Uy/AV6FxPUSUM0NMbV14pAP+ss25AaVAHMQIeJA="; }) + (fetchNuGet { pname = "Humanizer.Core.es"; version = "2.14.1"; hash = "sha256-iEHiQXKwg0ABDxh//HSrzwaVOlilQBFI96+GYzzTMwQ="; }) + (fetchNuGet { pname = "Humanizer.Core.fa"; version = "2.14.1"; hash = "sha256-2Js7k3nvwJvxAjq3yoLn7PUY2S8+vXfgESwU4SbvjaA="; }) + (fetchNuGet { pname = "Humanizer.Core.fi-FI"; version = "2.14.1"; hash = "sha256-jOWo43r3dhiBsV9cCoDfqK/YqWj5LejZsnfkG6mlkpA="; }) + (fetchNuGet { pname = "Humanizer.Core.fr"; version = "2.14.1"; hash = "sha256-WCbA+f4B3g/ml7KrkHkzpU2Fj38HtWc/ujoVY5F3lk4="; }) + (fetchNuGet { pname = "Humanizer.Core.fr-BE"; version = "2.14.1"; hash = "sha256-GydVmoEy+lwEQ1nM39QXSRhYNchqM47p7qhUEimN4Cw="; }) + (fetchNuGet { pname = "Humanizer.Core.he"; version = "2.14.1"; hash = "sha256-MMf3qjJ+yzxjMxOR7wMWf+eErxWLqpsdWKFhjNCOsyM="; }) + (fetchNuGet { pname = "Humanizer.Core.hr"; version = "2.14.1"; hash = "sha256-kBv2I9ns6L6D4XfXfyZS1VM6+YwF4yUkCmCA5zqvsok="; }) + (fetchNuGet { pname = "Humanizer.Core.hu"; version = "2.14.1"; hash = "sha256-vRje+kxqOsl1JCXAE0yDKvauUumzuEhNcnhNsdIdgVM="; }) + (fetchNuGet { pname = "Humanizer.Core.hy"; version = "2.14.1"; hash = "sha256-UL7PsK4msT5c96lk70/bVAxN63B71l8VOFtvuJQH9a0="; }) + (fetchNuGet { pname = "Humanizer.Core.id"; version = "2.14.1"; hash = "sha256-nIl64gCuZh4D527qI2hfQRvzt1mTJUCDGMIZwpS3C/A="; }) + (fetchNuGet { pname = "Humanizer.Core.is"; version = "2.14.1"; hash = "sha256-38vUQ1aVtlhK15kP9ZlDO0Nl0DcOA5iHx6F2SPN1gYM="; }) + (fetchNuGet { pname = "Humanizer.Core.it"; version = "2.14.1"; hash = "sha256-4ne0VRNi9OAj3bGCQgCy1BNYKMizoHykJ/lchmCsWdc="; }) + (fetchNuGet { pname = "Humanizer.Core.ja"; version = "2.14.1"; hash = "sha256-oAilMM8J6LumV6qv3gSIBNTm7u2L4vV38cQXtME3PhM="; }) + (fetchNuGet { pname = "Humanizer.Core.ko-KR"; version = "2.14.1"; hash = "sha256-b70HQl2IWVPATtaYGDyJ+Z6ioPtrM53vXzfTCHYgxpQ="; }) + (fetchNuGet { pname = "Humanizer.Core.ku"; version = "2.14.1"; hash = "sha256-8LiEH7MaapMtkHFMj7Y3pG+g0QYuIa5gD3VR9nYQn+k="; }) + (fetchNuGet { pname = "Humanizer.Core.lv"; version = "2.14.1"; hash = "sha256-zyCsE5cD++u5shNIqCQUd+66FkUWOl+NfFrs2JduCaQ="; }) + (fetchNuGet { pname = "Humanizer.Core.ms-MY"; version = "2.14.1"; hash = "sha256-pSdZLUi9oWo78nBh2DJunPhDR7THdZSZP0msCVbPsrY="; }) + (fetchNuGet { pname = "Humanizer.Core.mt"; version = "2.14.1"; hash = "sha256-mkX2reEvNpx9w6gtZw+6bkrnj3Di1qgVDMr9q0IeKCw="; }) + (fetchNuGet { pname = "Humanizer.Core.nb"; version = "2.14.1"; hash = "sha256-QvYJHqjO/SrelWYgtm8Sc7axs7J8wbJE+GbTgVw5LYs="; }) + (fetchNuGet { pname = "Humanizer.Core.nb-NO"; version = "2.14.1"; hash = "sha256-YW8y2XkmHjwqf2fztNB3rsn3+CgslF1TclITwp0fA9g="; }) + (fetchNuGet { pname = "Humanizer.Core.nl"; version = "2.14.1"; hash = "sha256-bQM7aXNQMBY+65NfMVQz/xYz9Ad2JC+ryXoB4lcYgmA="; }) + (fetchNuGet { pname = "Humanizer.Core.pl"; version = "2.14.1"; hash = "sha256-IrPxHI4uQvBeMM9/8PaNueKwVkbN+1zFQlNWRjNfXEA="; }) + (fetchNuGet { pname = "Humanizer.Core.pt"; version = "2.14.1"; hash = "sha256-XrlC15HNJFmDwLpHIUHb3Bec9A79msQCRB9Dvz8w4l0="; }) + (fetchNuGet { pname = "Humanizer.Core.ro"; version = "2.14.1"; hash = "sha256-llXtfq4Tr5V2Q4dVD7J0IKITtpiWrFs50DAtJhcSuRI="; }) + (fetchNuGet { pname = "Humanizer.Core.ru"; version = "2.14.1"; hash = "sha256-lD0dB3mkbFfGExwVWZk6fv24MyQQ8Cdv5OrleuZeChg="; }) + (fetchNuGet { pname = "Humanizer.Core.sk"; version = "2.14.1"; hash = "sha256-EmyE+wssZwY6tAuEiFXGn5/yzVMZe7QEuTjOcByOXaA="; }) + (fetchNuGet { pname = "Humanizer.Core.sl"; version = "2.14.1"; hash = "sha256-sWWxh7KZ8Y3Ps6GbBOHbU2GMsNZfkM+BOnUChf3fz4s="; }) + (fetchNuGet { pname = "Humanizer.Core.sr"; version = "2.14.1"; hash = "sha256-/bA3LULRFn5WYmCscr5R5vaFRjeHC0xjNiF7PXEJ8r0="; }) + (fetchNuGet { pname = "Humanizer.Core.sr-Latn"; version = "2.14.1"; hash = "sha256-43+o6oj0UNRJKiFoh57MGPSzlsWAq0eRtzlCrewDmVM="; }) + (fetchNuGet { pname = "Humanizer.Core.sv"; version = "2.14.1"; hash = "sha256-9lXrHveKDs1y/W3Qxd+MVcohhKEU7zNPx21GBVPp/rA="; }) + (fetchNuGet { pname = "Humanizer.Core.th-TH"; version = "2.14.1"; hash = "sha256-ldCsXINSvL2xom0SCtVQy+qX1IN5//EUoyIOwXiJ3k8="; }) + (fetchNuGet { pname = "Humanizer.Core.tr"; version = "2.14.1"; hash = "sha256-VZnO1vMXiR7egKEKJ6lBsj7eNgxhFzakFWsYYRW4u2U="; }) + (fetchNuGet { pname = "Humanizer.Core.uk"; version = "2.14.1"; hash = "sha256-rdvleUrKbj3c06A0O2MkgAZLtXLro9SPB1YqAGE1Vyg="; }) + (fetchNuGet { pname = "Humanizer.Core.uz-Cyrl-UZ"; version = "2.14.1"; hash = "sha256-Qso1Iz9MTLs63x4F00kK31TZAN4AoFaFsuVzM+1z38k="; }) + (fetchNuGet { pname = "Humanizer.Core.uz-Latn-UZ"; version = "2.14.1"; hash = "sha256-sVnkZTuEaHfMJIAZmSCqsspnKkYxK9eVBQZnAAqHNW4="; }) + (fetchNuGet { pname = "Humanizer.Core.vi"; version = "2.14.1"; hash = "sha256-5wDt72+HdNN3mt/iJkxV9LaH13Jc1qr1vB4Lz8ahIPs="; }) + (fetchNuGet { pname = "Humanizer.Core.zh-CN"; version = "2.14.1"; hash = "sha256-Z3qfFWyovcVT4Hqy51lgW2xGwyfI//Yfv90E0Liy1sw="; }) + (fetchNuGet { pname = "Humanizer.Core.zh-Hans"; version = "2.14.1"; hash = "sha256-BTGkMEkQYJKRp858EU7hwNOdsHRT+w6vAMa6H8JIyX4="; }) + (fetchNuGet { pname = "Humanizer.Core.zh-Hant"; version = "2.14.1"; hash = "sha256-N3D1z5aoGwAZ6+ZxrWMtXgacvQcgDG+aLrQQI9uysmM="; }) + (fetchNuGet { pname = "JetBrains.Annotations"; version = "2023.2.0"; hash = "sha256-Um10fSmO+21I7f+lbzzVq5e8GBijJ9amTvOlt362p1s="; }) (fetchNuGet { pname = "LibHac"; version = "0.19.0"; hash = "sha256-FDEmeGHbX/aCFjFbFk8QwO2rTfFizt9UKb+KFDt23hk="; }) (fetchNuGet { pname = "MicroCom.CodeGenerator.MSBuild"; version = "0.11.0"; hash = "sha256-TsxziX9V8T3qRrEA3o9wY84ocDcUUUBzvARi5QZW23o="; }) (fetchNuGet { pname = "MicroCom.Runtime"; version = "0.11.0"; hash = "sha256-VdwpP5fsclvNqJuppaOvwEwv2ofnAI5ZSz2V+UEdLF0="; }) @@ -197,7 +252,7 @@ (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.5.1"; hash = "sha256-PIhkv59IXjyiuefdhKxS9hQfEwO9YWRuNudpo53HQfw="; }) (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "8.0.0"; hash = "sha256-fjCLQc1PRW0Ix5IZldg0XKv+J1DqPSfu9pjMyNBp7dE="; }) (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "8.0.0"; hash = "sha256-IUQkQkV9po1LC0QsqrilqwNzPvnc+4eVvq+hCvq8fvE="; }) - (fetchNuGet { pname = "System.Text.Json"; version = "8.0.0"; hash = "sha256-XFcCHMW1u2/WujlWNHaIWkbW1wn8W4kI0QdrwPtWmow="; }) + (fetchNuGet { pname = "System.Text.Json"; version = "8.0.4"; hash = "sha256-g5oT7fbXxQ9Iah1nMCr4UUX/a2l+EVjJyTrw3FTbIaI="; }) (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; hash = "sha256-ZDQ3dR4pzVwmaqBg4hacZaVenQ/3yAF/uV7BXZXjiWc="; }) (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; hash = "sha256-Z5rXfJ1EXp3G32IKZGiZ6koMjRu0n8C1NGrwpdIen4w="; }) (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; hash = "sha256-owSpY8wHlsUXn5xrfYAiu847L6fAKethlvYx97Ri1ng="; }) diff --git a/provision/pkgs/sudachi/default.nix b/provision/pkgs/sudachi/default.nix index 2bf9f8e9..54efb9e8 100644 --- a/provision/pkgs/sudachi/default.nix +++ b/provision/pkgs/sudachi/default.nix @@ -59,7 +59,10 @@ stdenv.mkDerivation (finalAttrs: { stripRoot = false; }; - patches = [ ./sdl2_fix.patch ]; + patches = [ + ./remove_agx.patch + ./sdl2_fix.patch + ]; nativeBuildInputs = [ cmake @@ -143,13 +146,7 @@ stdenv.mkDerivation (finalAttrs: { # making the build fail, as that path does not exist dontFixCmake = true; - preConfigure = '' - # see https://github.com/NixOS/nixpkgs/issues/114044, setting this through cmakeFlags does not work. - cmakeFlagsArray+=( - "-DTITLE_BAR_FORMAT_IDLE=${finalAttrs.pname} | ${finalAttrs.version} (nixpkgs) {}" - "-DTITLE_BAR_FORMAT_RUNNING=${finalAttrs.pname} | ${finalAttrs.version} (nixpkgs) | {}" - ) - + prePatch = '' # Copy suyu externals rm -R externals/ cp -R ${suyu}/externals . @@ -157,6 +154,14 @@ stdenv.mkDerivation (finalAttrs: { # replace "SUYU" with "SUDACHI" in externals cmake args chmod u+rw -R externals/ grep -rl SUYU | xargs sed -i 's/SUYU/SUDACHI/g' + ''; + + preConfigure = '' + # see https://github.com/NixOS/nixpkgs/issues/114044, setting this through cmakeFlags does not work. + cmakeFlagsArray+=( + "-DTITLE_BAR_FORMAT_IDLE=${finalAttrs.pname} | ${finalAttrs.version} (nixpkgs) {}" + "-DTITLE_BAR_FORMAT_RUNNING=${finalAttrs.pname} | ${finalAttrs.version} (nixpkgs) | {}" + ) # provide pre-downloaded tz data mkdir -p build/externals/nx_tzdb diff --git a/provision/pkgs/sudachi/remove_agx.patch b/provision/pkgs/sudachi/remove_agx.patch new file mode 100644 index 00000000..e6c5f535 --- /dev/null +++ b/provision/pkgs/sudachi/remove_agx.patch @@ -0,0 +1,16 @@ +Submodule externals/Vulkan-Utility-Libraries contains modified content +diff --git a/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h b/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h +index 9d2af46..bb490ac 100644 +--- a/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h ++++ b/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h +@@ -3478,8 +3478,8 @@ static inline const char* string_VkDriverId(VkDriverId input_value) { + return "VK_DRIVER_ID_MESA_NVK"; + case VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA: + return "VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA"; +- case VK_DRIVER_ID_MESA_AGXV: +- return "VK_DRIVER_ID_MESA_AGXV"; ++ //case VK_DRIVER_ID_MESA_AGXV: ++ // return "VK_DRIVER_ID_MESA_AGXV"; + default: + return "Unhandled VkDriverId"; + } diff --git a/provision/pkgs/yuzu.nix b/provision/pkgs/yuzu/default.nix similarity index 90% rename from provision/pkgs/yuzu.nix rename to provision/pkgs/yuzu/default.nix index 4d157a39..2645484b 100644 --- a/provision/pkgs/yuzu.nix +++ b/provision/pkgs/yuzu/default.nix @@ -37,6 +37,17 @@ , gnutar , nx_tzdb }: + +let + suyu = fetchFromGitea { + domain = "git.suyu.dev"; + owner = "suyu"; + repo = "suyu"; + rev = "ee365bad9501c73ff49936e72ec91cd9c3ce5c24"; + hash = "sha256-vw9VcSbCaG4MS0PL/fJ73CDALLbd3n0CBT7gkyp5hRc="; + fetchSubmodules = true; + }; +in stdenv.mkDerivation(finalAttrs: { pname = "yuzu"; @@ -51,6 +62,10 @@ stdenv.mkDerivation(finalAttrs: { fetchSubmodules = true; }; + patches = [ + ./remove_agx.patch + ]; + nativeBuildInputs = [ cmake glslang @@ -144,6 +159,17 @@ stdenv.mkDerivation(finalAttrs: { "--prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib" ]; + prePatch = '' + # Copy suyu externals + rm -R externals/ + cp -R ${suyu}/externals . + + # replace "SUYU" with "YUZU" in externals cmake args + chmod u+rw -R externals/ + grep -rl SUYU | xargs sed -i 's/SUYU/YUZU/g' + + ''; + preConfigure = '' # see https://github.com/NixOS/nixpkgs/issues/114044, setting this through cmakeFlags does not work. cmakeFlagsArray+=( diff --git a/provision/pkgs/yuzu/remove_agx.patch b/provision/pkgs/yuzu/remove_agx.patch new file mode 100644 index 00000000..e6c5f535 --- /dev/null +++ b/provision/pkgs/yuzu/remove_agx.patch @@ -0,0 +1,16 @@ +Submodule externals/Vulkan-Utility-Libraries contains modified content +diff --git a/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h b/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h +index 9d2af46..bb490ac 100644 +--- a/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h ++++ b/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h +@@ -3478,8 +3478,8 @@ static inline const char* string_VkDriverId(VkDriverId input_value) { + return "VK_DRIVER_ID_MESA_NVK"; + case VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA: + return "VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA"; +- case VK_DRIVER_ID_MESA_AGXV: +- return "VK_DRIVER_ID_MESA_AGXV"; ++ //case VK_DRIVER_ID_MESA_AGXV: ++ // return "VK_DRIVER_ID_MESA_AGXV"; + default: + return "Unhandled VkDriverId"; + } diff --git a/provision/secrets/emu/switch/prod.keys.age b/provision/secrets/emu/switch/prod.keys.age deleted file mode 100644 index db2c952b..00000000 Binary files a/provision/secrets/emu/switch/prod.keys.age and /dev/null differ diff --git a/provision/secrets/emu/switch/title.keys.age b/provision/secrets/emu/switch/title.keys.age deleted file mode 100644 index 1e4aed74..00000000 Binary files a/provision/secrets/emu/switch/title.keys.age and /dev/null differ diff --git a/provision/secrets/secrets.nix b/provision/secrets/secrets.nix index bfd27cf6..c493811d 100644 --- a/provision/secrets/secrets.nix +++ b/provision/secrets/secrets.nix @@ -8,8 +8,6 @@ in { "git/github_personal.age".publicKeys = systems; "git/gitea-runner-1.age".publicKeys = systems; - "emu/switch/prod.keys.age".publicKeys = systems; - "emu/switch/title.keys.age".publicKeys = systems; "wireguard/kestrel.age".publicKeys = systems; "wireguard/torus.age".publicKeys = systems; "wireguard/bulwark.age".publicKeys = systems; @@ -26,5 +24,7 @@ in "syncthing/kestrel/cert.pem.age".publicKeys = systems; "syncthing/bulwark/key.pem.age".publicKeys = systems; "syncthing/bulwark/cert.pem.age".publicKeys = systems; + "syncthing/torus/key.pem.age".publicKeys = systems; + "syncthing/torus/cert.pem.age".publicKeys = systems; } diff --git a/provision/secrets/syncthing/torus/cert.pem.age b/provision/secrets/syncthing/torus/cert.pem.age new file mode 100644 index 00000000..8e86bd05 Binary files /dev/null and b/provision/secrets/syncthing/torus/cert.pem.age differ diff --git a/provision/secrets/syncthing/torus/key.pem.age b/provision/secrets/syncthing/torus/key.pem.age new file mode 100644 index 00000000..4e644575 Binary files /dev/null and b/provision/secrets/syncthing/torus/key.pem.age differ