diff --git a/roles/desktop/programs/keepassxc.nix b/roles/desktop/programs/keepassxc.nix index 22858fc..7b42daf 100644 --- a/roles/desktop/programs/keepassxc.nix +++ b/roles/desktop/programs/keepassxc.nix @@ -19,39 +19,44 @@ let # monochrome-light, monochrome-dark or colorful TrayIconAppearance = "monochrome-light"; }; - Security.HideNotes = true; + Security = { + HideNotes = true; + IconDownloadFallback = true; + }; SSHAgent.Enabled = true; }; in { - users.users.toast.packages = [ pkgs.keepassxc ]; home-manager = { extraSpecialArgs = { kpxcSettings = kpxcSettings; }; users.toast = { config, pkgs, kpxcSettings, ... }: { # No module for KeePassXC config :( - home.file = { - ".config/keepassxc/keepassxc.ini".text = kpxcSettings; - # For some reason the autostart .desktop is not the same as the regular one - ".config/autostart/org.keepassxc.KeePassXC.desktop".text = '' - [Desktop Entry] - Name=KeePassXC - GenericName=Password Manager - Exec=keepassxc - TryExec=keepassxc - Icon=keepassxc - StartupWMClass=keepassxc - StartupNotify=true - Terminal=false - Type=Application - Version=1.0 - Categories=Utility;Security;Qt; - MimeType=application/x-keepass2; - X-GNOME-Autostart-enabled=true - X-GNOME-Autostart-Delay=2 - X-KDE-autostart-after=panel - X-LXQt-Need-Tray=true - ''; + home = { + packages = [ pkgs.keepassxc ]; + file = { + ".config/keepassxc/keepassxc.ini".text = kpxcSettings; + # For some reason the autostart .desktop is not the same as the regular one + ".config/autostart/org.keepassxc.KeePassXC.desktop".text = '' + [Desktop Entry] + Name=KeePassXC + GenericName=Password Manager + Exec=keepassxc + TryExec=keepassxc + Icon=keepassxc + StartupWMClass=keepassxc + StartupNotify=true + Terminal=false + Type=Application + Version=1.0 + Categories=Utility;Security;Qt; + MimeType=application/x-keepass2; + X-GNOME-Autostart-enabled=true + X-GNOME-Autostart-Delay=2 + X-KDE-autostart-after=panel + X-LXQt-Need-Tray=true + ''; + }; }; }; }; diff --git a/roles/gaming/programs/default.nix b/roles/gaming/programs/default.nix index 4bba376..8e5776f 100755 --- a/roles/gaming/programs/default.nix +++ b/roles/gaming/programs/default.nix @@ -5,6 +5,7 @@ ./steam.nix ./mangohud.nix ./rpcs3.nix + ./retroarch.nix ]; environment.systemPackages = with pkgs; [ heroic diff --git a/roles/gaming/programs/retroarch.nix b/roles/gaming/programs/retroarch.nix new file mode 100644 index 0000000..e247954 --- /dev/null +++ b/roles/gaming/programs/retroarch.nix @@ -0,0 +1,69 @@ +{ pkgs, ... }: +let + snes-roms = [ + # ActRaiser + ( pkgs.fetchzip { + url = "https://myrient.erista.me/files/No-Intro/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System/ActRaiser%20%28USA%29.zip"; + hash = "sha256-yxIL5Pqlp8xsx7wvNO1MlB8ffDjS0xpE+yrEfMj61As="; + } ) + # Kirby Super Star + ( pkgs.fetchzip { + url = "https://myrient.erista.me/files/No-Intro/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System/Kirby%20Super%20Star%20%28USA%29.zip"; + hash = "sha256-NX5OjCthf4ZiAhamclRBRk8GiMjZX3JLeShm8sQdDfc="; + } ) + # Super Mario Kart + ( pkgs.fetchzip { + url = "https://myrient.erista.me/files/No-Intro/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System/Super%20Mario%20Kart%20%28USA%29.zip"; + hash = "sha256-RLBxPBmBrXCuPdnWE07KamBNgGJ5IntQVUPeij+2HUI="; + } ) + ]; +in +{ + home-manager.users.toast = { + home = { + packages = [( + pkgs.retroarch.override { + cores = with pkgs.libretro; [ + snes9x + ]; + settings = { + video_driver = "vulkan"; + video_fullscreen = "true"; + }; + } + )]; + file."Games/Roms/SNES/" = { + onChange = '' + ${pkgs.retroarch}/bin/retroarch --scan "/home/toast/Games/Roms/SNES" + ''; + source = pkgs.symlinkJoin { + name = "snes-roms"; + paths = [ snes-roms ]; + }; + }; + }; + # Add a syncthing ignore file to the retroarch folder + xdg.configFile."retroarch-stignore" = { + target = "retroarch/.stignore"; + text = '' + !saves + !states + !database + !playlists + + // Ignore everything except stuff above + * + ''; + }; + }; + + # Sync saves and some other stuff + services.syncthing.settings.folders = { + "retroarch" = { + label = "RetroArch"; + id = "jxuou-2yjnu"; + devices = [ "steamdeck" "pc" ]; + path = "~/.config/retroarch"; + }; + }; +}