diff --git a/flake.lock b/flake.lock index 57aa342..843dbd8 100644 --- a/flake.lock +++ b/flake.lock @@ -490,11 +490,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1749801447, - "narHash": "sha256-cfrRFN9j340Wlgwe3k2oWB/0LI63JyUZab7apN72xd8=", + "lastModified": 1750847367, + "narHash": "sha256-BQzKA0b7B73PRwgQLEs37w1YhLdCm49GB2RhR0Xjt0Y=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "fba861e81d6fe8c0a8ba9fb2ed8d5e6df4a6ad78", + "rev": "bde02c6f392a7bfd487352a537183ebf2da7f53b", "type": "github" }, "original": { @@ -506,16 +506,16 @@ "niri-stable": { "flake": false, "locked": { - "lastModified": 1740117926, - "narHash": "sha256-mTTHA0RAaQcdYe+9A3Jx77cmmyLFHmRoZdd8RpWa+m8=", + "lastModified": 1748151941, + "narHash": "sha256-z4viQZLgC2bIJ3VrzQnR+q2F3gAOEQpU1H5xHtX/2fs=", "owner": "YaLTeR", "repo": "niri", - "rev": "b94a5db8790339cf9134873d8b490be69e02ac71", + "rev": "8ba57fcf25d2fc9565131684a839d58703f1dae7", "type": "github" }, "original": { "owner": "YaLTeR", - "ref": "v25.02", + "ref": "v25.05.1", "repo": "niri", "type": "github" } @@ -523,11 +523,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1749797708, - "narHash": "sha256-P5x0U6AW5Zn20bARv4D83d8XlNaWK1st9QwBfSe+Vfg=", + "lastModified": 1750791124, + "narHash": "sha256-F5iVU/hjoSHSSe0gllxm0PcAaseEtGNanYK5Ha3k2Tg=", "owner": "YaLTeR", "repo": "niri", - "rev": "f3f6e79eeca8924ff9cfea4b30006e5b782bc93e", + "rev": "37458d94b288945f6cfbd3c5c233f634d59f246c", "type": "github" }, "original": { @@ -649,11 +649,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1749727998, - "narHash": "sha256-mHv/yeUbmL91/TvV95p+mBVahm9mdQMJoqaTVTALaFw=", + "lastModified": 1750622754, + "narHash": "sha256-kMhs+YzV4vPGfuTpD3mwzibWUE6jotw5Al2wczI0Pv8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fd487183437963a59ba763c0cc4f27e3447dd6dd", + "rev": "c7ab75210cb8cb16ddd8f290755d9558edde7ee1", "type": "github" }, "original": { @@ -729,11 +729,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1749285348, - "narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=", + "lastModified": 1750741721, + "narHash": "sha256-Z0djmTa1YmnGMfE9jEe05oO4zggjDmxOGKwt844bUhE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3e3afe5174c561dee0df6f2c2b2236990146329f", + "rev": "4b1164c3215f018c4442463a27689d973cffd750", "type": "github" }, "original": { @@ -1185,16 +1185,16 @@ "xwayland-satellite-stable": { "flake": false, "locked": { - "lastModified": 1739246919, - "narHash": "sha256-/hBM43/Gd0/tW+egrhlWgOIISeJxEs2uAOIYVpfDKeU=", + "lastModified": 1748488455, + "narHash": "sha256-IiLr1alzKFIy5tGGpDlabQbe6LV1c9ABvkH6T5WmyRI=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "44590a416d4a3e8220e19e29e0b6efe64a80315d", + "rev": "3ba30b149f9eb2bbf42cf4758d2158ca8cceef73", "type": "github" }, "original": { "owner": "Supreeeme", - "ref": "v0.5.1", + "ref": "v0.6", "repo": "xwayland-satellite", "type": "github" } @@ -1202,11 +1202,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1749315541, - "narHash": "sha256-bEik1BfVOFnWvtOrcOHluos/edJ8f+G2y1QySbt/0Ak=", + "lastModified": 1750821680, + "narHash": "sha256-Bu5unTxnqok2RoU5P394Gh0vRaoyI/5xlOOJDF6akrc=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "da2ecb5be816de35e2efe23a408a1c49fe8b11ba", + "rev": "2e7c318ac2bbf699b6ab92ef91e661e16415dfac", "type": "github" }, "original": { diff --git a/hosts/sydpc/configuration.nix b/hosts/sydpc/configuration.nix index 1b6325a..f4a3556 100644 --- a/hosts/sydpc/configuration.nix +++ b/hosts/sydpc/configuration.nix @@ -16,6 +16,8 @@ tailscale.enable = true; earlyoom.enable = true; + slippi.enable = true; + steam = { enable = true; impermanenceUsers = ["crumb"]; @@ -159,6 +161,10 @@ }; }; + security.pki.certificateFiles = [ + ../../public-keys/lolc.at.crt + ]; + # This option defines the first version of NixOS you have installed on this # particular machine, and is used to maintain compatibility with application # data (e.g. databases) created on older NixOS versions. diff --git a/modules/home/slippi.nix b/modules/home/slippi.nix new file mode 100644 index 0000000..364813d --- /dev/null +++ b/modules/home/slippi.nix @@ -0,0 +1,19 @@ +{ config, lib, pkgs, ... }: + +let cfg = config.sydnix.slippi; +in { + options.sydnix.slippi = { + enable = lib.mkEnableOption "slippi"; + }; + + config = lib.mkIf cfg.enable { + sydnix.impermanence.directories = [ + ".config/Slippi Launcher" + ".config/SlippiOnline" + ".config/SlippiPlayback" + # We must manually remove the `export LD_LIBRARY_PATH=...` line for now. + # fuck. + ".cache/appimage-run" + ]; + }; +} diff --git a/modules/home/users/crumb/emacs.nix b/modules/home/users/crumb/emacs.nix index cdc30dd..a20a681 100755 --- a/modules/home/users/crumb/emacs.nix +++ b/modules/home/users/crumb/emacs.nix @@ -128,6 +128,9 @@ in { home.packages = [ emacsclient-or-emacs + (pkgs.writeShellScriptBin "emacs-fuckyou" '' + ${my-emacs}/bin/emacs "$@" + '') ] ++ fontPackages; # There's probably a better place to put this, but the current setup demands diff --git a/modules/home/users/crumb/emacs/eln-cache/30.1-7e287bfd/site-start-62c14e03-f1c28c94.eln b/modules/home/users/crumb/emacs/eln-cache/30.1-7e287bfd/site-start-62c14e03-f1c28c94.eln new file mode 100755 index 0000000..3ee6252 Binary files /dev/null and b/modules/home/users/crumb/emacs/eln-cache/30.1-7e287bfd/site-start-62c14e03-f1c28c94.eln differ diff --git a/modules/home/users/crumb/emacs/lib/syd-handle-lookup.el b/modules/home/users/crumb/emacs/lib/syd-handle-lookup.el index 9b99e3a..1e10ebd 100644 --- a/modules/home/users/crumb/emacs/lib/syd-handle-lookup.el +++ b/modules/home/users/crumb/emacs/lib/syd-handle-lookup.el @@ -66,7 +66,7 @@ success. When a handler returns a marker, the marker will be jumped to.") "Try to find documentation on IDENTIFIER, and " (interactive (list (syd-thing-at-point-or-region))) (or (syd-lookup--jump-to 'documentation identifier - :display-fn #'pop-to-buffer) + :display-fn #'display-buffer) (user-error "Couldn't find documentation on %S" (substring-no-properties identifier)))) @@ -86,8 +86,10 @@ success. When a handler returns a marker, the marker will be jumped to.") (message "No lookup handler could find %S" identifier) nil) ((markerp result) - (funcall display-fn (marker-buffer result)) - (goto-char result) + (let ((b (marker-buffer result))) + (funcall display-fn b) + (when (eq (current-buffer) b) + (goto-char result))) result) (result)) (with-current-buffer (marker-buffer origin) diff --git a/modules/home/users/crumb/emacs/modules/lang/syd-lang-agda.el b/modules/home/users/crumb/emacs/modules/lang/syd-lang-agda.el index 3c8fcbf..bdfb7eb 100644 --- a/modules/home/users/crumb/emacs/modules/lang/syd-lang-agda.el +++ b/modules/home/users/crumb/emacs/modules/lang/syd-lang-agda.el @@ -11,14 +11,13 @@ "." #'agda2-goal-and-context-and-inferred "," #'agda2-goal-and-context "=" #'agda2-show-constraints - "SPC" #'agda2-give + "g" #'agda2-give "a" #'agda2-mimer-maybe-all - "b" #'agda2-previous-goal + "[" #'agda2-previous-goal "c" #'agda2-make-case "d" #'agda2-infer-type-maybe-toplevel "e" #'agda2-show-context - "f" #'agda2-next-goal - "gG" #'agda2-go-back + "]" #'agda2-next-goal "h" #'agda2-helper-function-type "l" #'agda2-load "n" #'agda2-compute-normalised-maybe-toplevel @@ -37,6 +36,17 @@ :states '(motion normal) "[ n" #'agda2-previous-goal "] n" #'agda2-next-goal) - (setq agda2-fontset-name "JuliaMono")) + (setq agda2-fontset-name "JuliaMono") + + (defun syd-agda-lookup-documentation () + (interactive) + (call-interactively #'agda2-goal-and-context) + agda2-info-buffer) + + ;; DEPRECATED: Remove once syd-strategies is working. + (syd-add-hook 'agda2-mode-hook + (defun syd-agda-set-handlers-h () + (setq-local syd-lookup-documentation-handlers + (list #'syd-agda-lookup-documentation))))) (provide 'syd-lang-agda) diff --git a/modules/home/users/crumb/emacs/modules/lang/syd-lang-emacs-lisp.el b/modules/home/users/crumb/emacs/modules/lang/syd-lang-emacs-lisp.el index e855d9f..e8ffffd 100644 --- a/modules/home/users/crumb/emacs/modules/lang/syd-lang-emacs-lisp.el +++ b/modules/home/users/crumb/emacs/modules/lang/syd-lang-emacs-lisp.el @@ -69,7 +69,7 @@ to a pop up buffer." (syd-add-hook '(emacs-lisp-mode-hook lisp-data-mode-hook) #'syd-lisp-mode) - ;; DEPRECATED: Remove once syd-strategies is working. +;; DEPRECATED: Remove once syd-strategies is working. (syd-add-hook '(emacs-lisp-mode-hook help-mode-hook lisp-data-mode-hook) (defun syd-emacs-set-handlers-h () (setq-local syd-lookup-documentation-handlers diff --git a/modules/home/users/crumb/emacs/modules/lang/syd-lang-idris2.el b/modules/home/users/crumb/emacs/modules/lang/syd-lang-idris2.el index 20df3a3..ffb5812 100644 --- a/modules/home/users/crumb/emacs/modules/lang/syd-lang-idris2.el +++ b/modules/home/users/crumb/emacs/modules/lang/syd-lang-idris2.el @@ -39,7 +39,9 @@ See `https://github.com/ProofGeneral/PG/issues/427'." (set-popup-rules! `((,(rx bol "*idris2-notes*" eol) :ttl nil) - (,(rx bol "*idris2-holes" eol) - :ttl nil :quit t :vslot -5 :height 7)))) + (,(rx bol "*idris2-holes*" eol) + :ttl nil :quit t :vslot -5 :height 7))) + (dolist (c '(?_ ??)) + (modify-syntax-entry c "w" idris2-syntax-table))) (provide 'syd-lang-idris2) diff --git a/modules/home/users/crumb/emacs/transient/history.el b/modules/home/users/crumb/emacs/transient/history.el new file mode 100644 index 0000000..90b5a84 --- /dev/null +++ b/modules/home/users/crumb/emacs/transient/history.el @@ -0,0 +1 @@ +nil \ No newline at end of file diff --git a/modules/nixos/slippi.nix b/modules/nixos/slippi.nix new file mode 100644 index 0000000..646d32a --- /dev/null +++ b/modules/nixos/slippi.nix @@ -0,0 +1,24 @@ +{ config, lib, pkgs, ... }: + +let cfg = config.sydnix.slippi; +in { + options.sydnix.slippi = { + enable = lib.mkEnableOption "Slippi meleeeeee"; + }; + + config = lib.mkIf cfg.enable { + programs.appimage = { + enable = true; + binfmt = true; + }; + + services.udev = { + enable = true; + # Change the mode (as in chmod) of my third-party Wii U GameCube adapter + # device to 666. + extraRules = '' + SUBSYSTEMS=="usb", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="0337", MODE="0666" + ''; + }; + }; +} diff --git a/outputs/homeConfigurations.nix b/outputs/homeConfigurations.nix index 7a19f76..ff8c7f6 100755 --- a/outputs/homeConfigurations.nix +++ b/outputs/homeConfigurations.nix @@ -9,7 +9,7 @@ let users = builtins.readDir ../users; inputs.sops-nix.homeManagerModules.sops inputs.impermanence.homeManagerModules.impermanence - inputs.nixcord.homeManagerModules.nixcord + inputs.nixcord.homeModules.nixcord # Directory name should always match username. ({ ... }: { home.username = username; }) diff --git a/public-keys/lolc.at.crt b/public-keys/lolc.at.crt new file mode 100644 index 0000000..26b7208 --- /dev/null +++ b/public-keys/lolc.at.crt @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBnDCCAUGgAwIBAgIQTPCKtpeA+R34smG/iS8hZjAKBggqhkjOPQQDAjAsMRAw +DgYDVQQKEwd3aXNoc3lzMRgwFgYDVQQDEw93aXNoc3lzIFJvb3QgQ0EwHhcNMjUw +MTEwMjAyMzMzWhcNMzUwMTA4MjAyMzMzWjAsMRAwDgYDVQQKEwd3aXNoc3lzMRgw +FgYDVQQDEw93aXNoc3lzIFJvb3QgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNC +AASLYFi0m2/CInJhHn57UfiLAPGQinqLWdAkTS5CbFkExnYl5uOA2jA7C62PXtyl +1XK+02WL11Di1sVmcm5jSNnzo0UwQzAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/ +BAgwBgEB/wIBATAdBgNVHQ4EFgQUNhQ6aIbx9E9GBx+5Bk1vUzOPUKowCgYIKoZI +zj0EAwIDSQAwRgIhAP10X+Z6V4FQHUq6r+ilLJS+Bwtpr10SWXIuTEaNcNbeAiEA +nvOIyom/niMjQ4R/lm4ExHVJSFRvsLhOXD5AeDayvXE= +-----END CERTIFICATE----- \ No newline at end of file diff --git a/users/crumb/default.nix b/users/crumb/default.nix index ccffb12..2159af9 100755 --- a/users/crumb/default.nix +++ b/users/crumb/default.nix @@ -20,6 +20,7 @@ sydnix = { gpg.enable = true; xdg.enable = true; + slippi.enable = true; sops = { enable = true; keyFile = "/persist/private-keys/age/${config.home.username}";