From 689f2cbd189c60ce59919a8b96bc9ca5f06e6fff Mon Sep 17 00:00:00 2001 From: Daniel Kahlenberg <573@users.noreply.github.com> Date: Mon, 13 Mar 2023 18:19:04 +0100 Subject: [PATCH] Samsung/WSL2 --- .agenix.toml | 60 - .editorconfig | 14 - .gitattributes | 3 + .github/workflows/ci.yml | 145 +- .github/workflows/ci_experimental.yml | 175 + .github/workflows/ci_experimental.yml-KEEP | 118 + .github/workflows/update.yml | 108 +- .gitignore | 2 + README.md | 168 +- Untitled.ipynb | 33 + drvs/desed/Cargo.lock | 482 ++ drvs/desed/default.nix | 27 + files/apps/nixos-shell-vm.nix | 26 + files/apps/setup.sh | 111 +- files/keys/Readme.md | 1 + files/keys/id_ed25519.daniel.pub | 1 + files/keys/id_ed25519.danielwdws.pub | 1 + files/keys/id_rsa.backup.pub | 1 - files/keys/id_rsa.steini.pub | 1 - files/keys/id_rsa.tobias.pub | 1 - files/nix/nixos-shell-vm.nix | 2 +- files/nix/rpi-firmware.nix | 32 - files/nix/rpi-image.nix | 47 - files/tmux/profiles/crossfitamgruen.sh | 6 - flake.lock | 3935 +++++++++++++-- flake.lock.bak | 4167 ++++++++++++++++ flake.lock.unsupported | 4201 +++++++++++++++++ flake.nix | 748 ++- flake/builders/gemset.nix | 23 + flake/builders/mkDevShellJdk.nix | 12 - flake/builders/mkDevShellPhp.nix | 28 - flake/builders/mkDevenvDeno.nix | 14 + flake/builders/mkDevenvFlutter.nix | 16 + flake/builders/mkDevenvHaskell.nix | 43 + flake/builders/mkDevenvJulia.nix | 14 + flake/builders/mkDevenvJupyenv.nix | 76 + flake/builders/mkDevenvJvmLang.nix | 28 + flake/builders/mkDevenvMachnix.nix | 38 + flake/builders/mkDevenvOcaml.nix | 21 + flake/builders/mkDevenvRuby.nix | 27 + flake/builders/mkDevenvRust.nix | 31 + flake/builders/mkDevenvRustWasm32.nix | 55 + flake/builders/mkHome.nix | 6 +- flake/builders/util/phpIni.nix | 34 - flake/default.nix | 18 +- flake/nixpkgs.nix | 674 ++- home/README.md | 4 + home/base/desktop.nix | 151 +- home/base/general.nix | 127 +- home/base/non-nixos.nix | 9 +- home/development/direnv/default.nix | 21 +- home/development/helm/default.nix | 50 - .../helm/helm-upgrade-completion.zsh | 4 - home/development/helm/helm-upgrade.sh | 60 - home/development/jbang.nix | 49 + home/development/nix/default.nix | 14 +- home/development/nodejs.nix | 50 - home/misc/.ruby-version | 1 + home/misc/Gemfile | 3 + home/misc/Gemfile.lock | 15 + home/misc/cachix-agent.nix | 6 +- home/misc/comment-nvim.lua | 1 + home/misc/doom.d/config.el | 0 home/misc/doom.d/init.el | 191 + home/misc/doom.d/packages.el | 0 home/misc/duck-nvim.lua | 3 + home/misc/emacs.el | 159 + home/misc/haskell-tools-nvim.lua | 48 + home/misc/homeage.nix | 128 - home/misc/indent-blankline.lua | 10 + home/misc/luasnip-snippets.lua | 574 +++ home/misc/markid.lua | 3 + home/misc/minimal.el | 117 + home/misc/null-ls-nvim.lua | 20 + home/misc/nvim-cmp.lua | 120 + home/misc/nvim-dap-ui.lua | 11 + home/misc/nvim-dap.lua | 19 + home/misc/nvim-lspconfig.lua | 102 + home/misc/nvim-osc52.lua | 33 + home/misc/nvim-treesitter-context.lua | 1 + home/misc/nvim-treesitter.lua | 16 + home/misc/nvim-wsl-clipboard.lua | 16 + home/misc/sdks.nix | 2 +- home/misc/statusline-action-hints.lua | 5 + home/misc/telescope-nvim.lua | 5 + home/misc/trouble-nvim.lua | 17 + home/misc/util-bins/default.nix | 7 + .../util-bins/kvm_display_handler_layout.sh | 2 + home/misc/util-bins/system-update.sh | 12 +- home/misc/work.nix | 6 +- home/openbox/rc.xml | 750 +++ home/programs/atom.nix | 52 - home/programs/bash.nix | 14 +- home/programs/emacs-nano.nix | 117 + home/programs/emacs-novelist.nix | 168 + home/programs/emacs.nix | 194 + home/programs/git/default.nix | 17 +- home/programs/go.nix | 31 - home/programs/hledger.nix | 69 + home/programs/idea-ultimate.nix | 75 - home/programs/maven/default.nix | 42 - home/programs/maven/mvn.sh | 9 - home/programs/neovim.nix | 550 ++- home/programs/pass.nix | 10 +- home/programs/prompts/liquidprompt.nix | 79 - home/programs/prompts/pure.nix | 45 - home/programs/shell.nix | 28 +- home/programs/ssh/default.nix | 14 +- home/programs/ssh/kadd-completion.zsh | 5 - home/programs/tex.nix | 40 + home/programs/tmux/default.nix | 2 +- home/programs/urxvt.nix | 87 - home/programs/vscode.nix | 52 - home/programs/watson.nix | 48 - home/programs/zsh/completion.zsh | 113 - home/programs/zsh/default.nix | 69 - home/programs/zsh/directory-hash.zsh | 26 - home/programs/zsh/keybindings.zsh | 119 - home/services/dunst.nix | 185 - home/services/dwm-status.nix | 97 - home/wm/dwm.nix | 97 - home/wm/general/default.nix | 2 +- home/wm/sway.nix | 139 - hosts/DANIELKNB1/configuration.nix | 26 + hosts/DANIELKNB1/hardware-configuration.nix | 4 + hosts/DANIELKNB1/home-funktionstester.nix | 18 + hosts/DANIELKNB1/home-nixos.nix | 135 + hosts/DANIELKNB1/home-root.nix | 5 + hosts/M386/home-tobhap.nix | 93 - hosts/argon/configuration.nix | 58 - hosts/argon/hardware-configuration.nix | 38 - hosts/argon/home-root.nix | 5 - hosts/argon/home-steini.nix | 30 - hosts/argon/home-tobias.nix | 5 - hosts/gamer/home-tobias.nix | 16 - hosts/krypton/configuration.nix | 33 - hosts/krypton/hardware-configuration.nix | 34 - hosts/krypton/home-root.nix | 5 - hosts/krypton/home-tobias.nix | 13 - hosts/maiziedemacchiato/home-dani.nix | 227 + hosts/neon/configuration.nix | 129 - hosts/neon/hardware-configuration.nix | 74 - hosts/neon/home-root.nix | 5 - hosts/neon/home-tobias.nix | 54 - .../home-nix-on-droid.nix | 4 +- hosts/{oneplus5 => pixel7a}/nix-on-droid.nix | 6 +- hosts/sams9/home-nix-on-droid.nix | 95 + hosts/sams9/nix-on-droid.nix | 120 + hosts/xenon/configuration.nix | 48 - hosts/xenon/hardware-configuration.nix | 42 - hosts/xenon/home-root.nix | 8 - hosts/xenon/home-tobias.nix | 9 - lib/common-config.nix | 37 +- lib/script/default.nix | 30 +- lib/wrap-program.nix | 38 +- nixos/applications/downloads.nix | 63 - nixos/applications/original-chattengauer.nix | 103 - nixos/applications/tobias-happ/default.nix | 52 - nixos/applications/tobias-happ/index.html | 32 - nixos/applications/tobias-happ/robots.txt | 2 - nixos/base/desktop.nix | 135 - nixos/base/general.nix | 322 +- nixos/base/server.nix | 72 - nixos/misc/agenix.nix | 143 - nixos/misc/cachix-agent.nix | 38 - nixos/misc/ids.nix | 31 +- nixos/programs/arduino.nix | 34 - nixos/programs/docker.nix | 33 - nixos/programs/teamspeak-update-notifier.nix | 65 - nixos/programs/virtualbox.nix | 33 - nixos/services/applications/gitea.nix | 73 - .../applications/minecraft-server.nix | 54 - nixos/services/applications/mysql.nix | 73 - nixos/services/applications/nginx.nix | 48 - nixos/services/applications/openssh.nix | 4 +- nixos/services/applications/teamspeak.nix | 67 - nixos/services/maintenance/backup.nix | 203 - nixos/services/maintenance/storage.nix | 158 - nixos/system/boot.nix | 10 +- nixos/utils/systemd.nix | 4 +- nixos/wsl/usbip.nix | 76 + renovate.json | 5 - secrets/M386/aliases.sh.age | 28 - secrets/M386/cachix-agent-token.age | 15 - secrets/M386/settings.xml.age | 55 - secrets/argon/cachix-agent-token.age | 13 - secrets/argon/mysql-backup-password.age | 12 - secrets/krypton/cachix-agent-token.age | 15 - secrets/krypton/gitea-dbpassword.age | 12 - .../teamspeak-serverquery-password.age | 10 - secrets/neon/cachix-agent-token.age | 15 - secrets/neon/passwd-root.age | 13 - secrets/neon/passwd-tobias.age | 12 - secrets/ssh/private/config.age | 34 - secrets/ssh/private/id-rsa-private-pub.age | 31 - secrets/ssh/private/id-rsa-private.age | 87 - secrets/ssh/private/id-rsa-strato-pub.age | 32 - secrets/ssh/private/id-rsa-strato.age | 85 - secrets/ssh/sedo/config.age | 24 - .../ssh/sedo/id-rsa-sedo-integration-pub.age | 26 - secrets/ssh/sedo/id-rsa-sedo-integration.age | 82 - secrets/ssh/sedo/id-rsa-sedo-pub.age | 25 - secrets/ssh/sedo/id-rsa-sedo.age | 80 - secrets/ssh/vcs/config.age | 29 - secrets/ssh/vcs/id-rsa-vcs-pub.age | 39 - secrets/ssh/vcs/id-rsa-vcs.age | 92 - secrets/xenon/cachix-agent-token.age | 15 - secrets/xenon/id-rsa-backup.age | 82 - secrets/xenon/wireless-config.age | 12 - stable-diff.ipynb | 368 ++ test1.db | 0 wsl-nixos-cuda-test/shell.nix | 22 + 212 files changed, 19533 insertions(+), 6520 deletions(-) delete mode 100644 .agenix.toml delete mode 100644 .editorconfig create mode 100644 .github/workflows/ci_experimental.yml create mode 100644 .github/workflows/ci_experimental.yml-KEEP create mode 100644 Untitled.ipynb create mode 100644 drvs/desed/Cargo.lock create mode 100644 drvs/desed/default.nix create mode 100644 files/apps/nixos-shell-vm.nix create mode 100644 files/keys/Readme.md create mode 100644 files/keys/id_ed25519.daniel.pub create mode 100644 files/keys/id_ed25519.danielwdws.pub delete mode 100644 files/keys/id_rsa.backup.pub delete mode 100644 files/keys/id_rsa.steini.pub delete mode 100644 files/keys/id_rsa.tobias.pub delete mode 100644 files/nix/rpi-firmware.nix delete mode 100644 files/nix/rpi-image.nix delete mode 100644 files/tmux/profiles/crossfitamgruen.sh create mode 100644 flake.lock.bak create mode 100644 flake.lock.unsupported create mode 100644 flake/builders/gemset.nix delete mode 100644 flake/builders/mkDevShellJdk.nix delete mode 100644 flake/builders/mkDevShellPhp.nix create mode 100644 flake/builders/mkDevenvDeno.nix create mode 100644 flake/builders/mkDevenvFlutter.nix create mode 100644 flake/builders/mkDevenvHaskell.nix create mode 100644 flake/builders/mkDevenvJulia.nix create mode 100644 flake/builders/mkDevenvJupyenv.nix create mode 100644 flake/builders/mkDevenvJvmLang.nix create mode 100644 flake/builders/mkDevenvMachnix.nix create mode 100644 flake/builders/mkDevenvOcaml.nix create mode 100644 flake/builders/mkDevenvRuby.nix create mode 100644 flake/builders/mkDevenvRust.nix create mode 100644 flake/builders/mkDevenvRustWasm32.nix delete mode 100644 flake/builders/util/phpIni.nix create mode 100644 home/README.md delete mode 100644 home/development/helm/default.nix delete mode 100644 home/development/helm/helm-upgrade-completion.zsh delete mode 100644 home/development/helm/helm-upgrade.sh create mode 100644 home/development/jbang.nix delete mode 100644 home/development/nodejs.nix create mode 100644 home/misc/.ruby-version create mode 100644 home/misc/Gemfile create mode 100644 home/misc/Gemfile.lock create mode 100644 home/misc/comment-nvim.lua create mode 100644 home/misc/doom.d/config.el create mode 100644 home/misc/doom.d/init.el create mode 100644 home/misc/doom.d/packages.el create mode 100644 home/misc/duck-nvim.lua create mode 100644 home/misc/emacs.el create mode 100644 home/misc/haskell-tools-nvim.lua delete mode 100644 home/misc/homeage.nix create mode 100644 home/misc/indent-blankline.lua create mode 100644 home/misc/luasnip-snippets.lua create mode 100644 home/misc/markid.lua create mode 100644 home/misc/minimal.el create mode 100644 home/misc/null-ls-nvim.lua create mode 100644 home/misc/nvim-cmp.lua create mode 100644 home/misc/nvim-dap-ui.lua create mode 100644 home/misc/nvim-dap.lua create mode 100644 home/misc/nvim-lspconfig.lua create mode 100644 home/misc/nvim-osc52.lua create mode 100644 home/misc/nvim-treesitter-context.lua create mode 100644 home/misc/nvim-treesitter.lua create mode 100644 home/misc/nvim-wsl-clipboard.lua create mode 100644 home/misc/statusline-action-hints.lua create mode 100644 home/misc/telescope-nvim.lua create mode 100644 home/misc/trouble-nvim.lua create mode 100644 home/misc/util-bins/kvm_display_handler_layout.sh create mode 100644 home/openbox/rc.xml delete mode 100644 home/programs/atom.nix create mode 100644 home/programs/emacs-nano.nix create mode 100644 home/programs/emacs-novelist.nix create mode 100644 home/programs/emacs.nix delete mode 100644 home/programs/go.nix create mode 100644 home/programs/hledger.nix delete mode 100644 home/programs/idea-ultimate.nix delete mode 100644 home/programs/maven/default.nix delete mode 100644 home/programs/maven/mvn.sh delete mode 100644 home/programs/prompts/liquidprompt.nix delete mode 100644 home/programs/prompts/pure.nix delete mode 100644 home/programs/ssh/kadd-completion.zsh create mode 100644 home/programs/tex.nix delete mode 100644 home/programs/urxvt.nix delete mode 100644 home/programs/vscode.nix delete mode 100644 home/programs/watson.nix delete mode 100644 home/programs/zsh/completion.zsh delete mode 100644 home/programs/zsh/default.nix delete mode 100644 home/programs/zsh/directory-hash.zsh delete mode 100644 home/programs/zsh/keybindings.zsh delete mode 100644 home/services/dunst.nix delete mode 100644 home/services/dwm-status.nix delete mode 100644 home/wm/dwm.nix delete mode 100644 home/wm/sway.nix create mode 100644 hosts/DANIELKNB1/configuration.nix create mode 100644 hosts/DANIELKNB1/hardware-configuration.nix create mode 100644 hosts/DANIELKNB1/home-funktionstester.nix create mode 100644 hosts/DANIELKNB1/home-nixos.nix create mode 100644 hosts/DANIELKNB1/home-root.nix delete mode 100644 hosts/M386/home-tobhap.nix delete mode 100644 hosts/argon/configuration.nix delete mode 100644 hosts/argon/hardware-configuration.nix delete mode 100644 hosts/argon/home-root.nix delete mode 100644 hosts/argon/home-steini.nix delete mode 100644 hosts/argon/home-tobias.nix delete mode 100644 hosts/gamer/home-tobias.nix delete mode 100644 hosts/krypton/configuration.nix delete mode 100644 hosts/krypton/hardware-configuration.nix delete mode 100644 hosts/krypton/home-root.nix delete mode 100644 hosts/krypton/home-tobias.nix create mode 100644 hosts/maiziedemacchiato/home-dani.nix delete mode 100644 hosts/neon/configuration.nix delete mode 100644 hosts/neon/hardware-configuration.nix delete mode 100644 hosts/neon/home-root.nix delete mode 100644 hosts/neon/home-tobias.nix rename hosts/{oneplus5 => pixel7a}/home-nix-on-droid.nix (86%) rename hosts/{oneplus5 => pixel7a}/nix-on-droid.nix (91%) create mode 100644 hosts/sams9/home-nix-on-droid.nix create mode 100644 hosts/sams9/nix-on-droid.nix delete mode 100644 hosts/xenon/configuration.nix delete mode 100644 hosts/xenon/hardware-configuration.nix delete mode 100644 hosts/xenon/home-root.nix delete mode 100644 hosts/xenon/home-tobias.nix delete mode 100644 nixos/applications/downloads.nix delete mode 100644 nixos/applications/original-chattengauer.nix delete mode 100644 nixos/applications/tobias-happ/default.nix delete mode 100644 nixos/applications/tobias-happ/index.html delete mode 100644 nixos/applications/tobias-happ/robots.txt delete mode 100644 nixos/base/desktop.nix delete mode 100644 nixos/base/server.nix delete mode 100644 nixos/misc/agenix.nix delete mode 100644 nixos/misc/cachix-agent.nix delete mode 100644 nixos/programs/arduino.nix delete mode 100644 nixos/programs/docker.nix delete mode 100644 nixos/programs/teamspeak-update-notifier.nix delete mode 100644 nixos/programs/virtualbox.nix delete mode 100644 nixos/services/applications/gitea.nix delete mode 100644 nixos/services/applications/minecraft-server.nix delete mode 100644 nixos/services/applications/mysql.nix delete mode 100644 nixos/services/applications/nginx.nix delete mode 100644 nixos/services/applications/teamspeak.nix delete mode 100644 nixos/services/maintenance/backup.nix delete mode 100644 nixos/services/maintenance/storage.nix create mode 100644 nixos/wsl/usbip.nix delete mode 100644 renovate.json delete mode 100644 secrets/M386/aliases.sh.age delete mode 100644 secrets/M386/cachix-agent-token.age delete mode 100644 secrets/M386/settings.xml.age delete mode 100644 secrets/argon/cachix-agent-token.age delete mode 100644 secrets/argon/mysql-backup-password.age delete mode 100644 secrets/krypton/cachix-agent-token.age delete mode 100644 secrets/krypton/gitea-dbpassword.age delete mode 100644 secrets/krypton/teamspeak-serverquery-password.age delete mode 100644 secrets/neon/cachix-agent-token.age delete mode 100644 secrets/neon/passwd-root.age delete mode 100644 secrets/neon/passwd-tobias.age delete mode 100644 secrets/ssh/private/config.age delete mode 100644 secrets/ssh/private/id-rsa-private-pub.age delete mode 100644 secrets/ssh/private/id-rsa-private.age delete mode 100644 secrets/ssh/private/id-rsa-strato-pub.age delete mode 100644 secrets/ssh/private/id-rsa-strato.age delete mode 100644 secrets/ssh/sedo/config.age delete mode 100644 secrets/ssh/sedo/id-rsa-sedo-integration-pub.age delete mode 100644 secrets/ssh/sedo/id-rsa-sedo-integration.age delete mode 100644 secrets/ssh/sedo/id-rsa-sedo-pub.age delete mode 100644 secrets/ssh/sedo/id-rsa-sedo.age delete mode 100644 secrets/ssh/vcs/config.age delete mode 100644 secrets/ssh/vcs/id-rsa-vcs-pub.age delete mode 100644 secrets/ssh/vcs/id-rsa-vcs.age delete mode 100644 secrets/xenon/cachix-agent-token.age delete mode 100644 secrets/xenon/id-rsa-backup.age delete mode 100644 secrets/xenon/wireless-config.age create mode 100644 stable-diff.ipynb create mode 100644 test1.db create mode 100644 wsl-nixos-cuda-test/shell.nix diff --git a/.agenix.toml b/.agenix.toml deleted file mode 100644 index 8998c4c9..00000000 --- a/.agenix.toml +++ /dev/null @@ -1,60 +0,0 @@ -[identities] -argon-root = "age19c2lj8tp448qz2nmj2fhjhz3ss2w0zuhpudhx8k6e4e3pjkknemqunutd3" -argon-tobias = "age1gh8taacs5kv8qet0vyrash9xx9rcvgemwuhevg6q0eqczp73545qd3eaf3" -bak = "age1kttfv4zpvv0cshe8q7lvakycytn34pja9pcy4ylq94kw90k3yfwsxja79j" -gamer-tobias = "age1xmwue6azg27l7kwsjr7a84gax5ed7tzdzfw4c3vz3aejr539tpdswmlpt8" -krypton-root = "age1vheh9hvezl0k2fe7wpfjnfp6ajcezz78jlhxj6wvzxdvkte4lfys03ktuq" -krypton-tobias = "age1r2maar050kkskxpaestrd738dpphptp886mdt4kta2p3mup3mc9s4r4020" -M386-tobhap = "age1lsr8ynsnxd86zhxfl624dy229gx0zlc72wmuqs8e7wlpgcwfauhsp7nu9h" -neon-root = "age16xxy8wcp8as2uc7v04fncsa7x257luygse94khp7c5mglh4wnggs8t4sk5" -neon-tobias = "age1m0cyz2y5vyztmx04x0xheyhhy8uwf53yem6dafmce3hsugwhfp4q0lg267" -oneplus5-nix-on-droid = "age18wg8fscl8kvn3avr2dgpwujdsy8xksc4v58mnuwmwpjp0ddud42sjfl08q" -xenon-root = "age1glu7paaertha2q28whxehvgn7euj52z5pka0edlrp6pnhqypvcmqm2lg64" -xenon-tobias = "age1dxhjmnugds3263vsh02zrxagxal5x25ycs3xpueja7yfvcx8lves8p5rkv" - -[[paths]] -glob = "secrets/ssh/private/*" -identities = [ - "bak", - "gamer-tobias", - "M386-tobhap", - "neon-tobias", - "oneplus5-nix-on-droid", -] - -[[paths]] -glob = "secrets/ssh/vcs/*" -identities = [ - "argon-tobias", - "bak", - "gamer-tobias", - "krypton-tobias", - "M386-tobhap", - "neon-tobias", - "oneplus5-nix-on-droid", - "xenon-tobias", -] - -[[paths]] -glob = "secrets/ssh/sedo/*" -identities = [ "bak", "M386-tobhap" ] - -[[paths]] -glob = "secrets/argon/*" -identities = [ "bak", "argon-root" ] - -[[paths]] -glob = "secrets/krypton/*" -identities = [ "bak", "krypton-root" ] - -[[paths]] -glob = "secrets/M386/*" -identities = [ "bak", "M386-tobhap" ] - -[[paths]] -glob = "secrets/neon/*" -identities = [ "bak", "neon-root" ] - -[[paths]] -glob = "secrets/xenon/*" -identities = [ "bak", "xenon-root" ] diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index c5913178..00000000 --- a/.editorconfig +++ /dev/null @@ -1,14 +0,0 @@ -root = true - -[*] -indent_style = space -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -[*.{json,md,nix,yml}] -indent_size = 2 - -[*.{html,sh,toml,zsh}] -indent_size = 4 diff --git a/.gitattributes b/.gitattributes index b09928b8..526626ea 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,4 @@ *.age binary diff=age +# Convert to LF line endings on checkout. +*.sh text eol=lf +*.nix text eol=lf diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3ddf4f51..70b4a574 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,8 @@ on: jobs: nix: - runs-on: ubuntu-latest + runs-on: "${{ matrix.system == 'aarch64' && 'self-hosted' || 'ubuntu-latest' }}" + strategy: fail-fast: false matrix: @@ -29,27 +30,25 @@ jobs: - eval .#apps.$_system.setup.program include: - - nix-command: develop .#jdk8 --profile profile + - nix-command: develop .#jdk8 --profile result + system: x86_64 + - nix-command: develop .#jdk11 --profile result system: x86_64 - - nix-command: develop .#jdk11 --profile profile + - nix-command: develop .#jdk17 --profile result system: x86_64 - - nix-command: develop .#jdk17 --profile profile + - nix-command: develop .#php74 --profile result system: x86_64 - - nix-command: develop .#php74 --profile profile + - nix-command: develop .#php74-composer1 --profile result system: x86_64 - - nix-command: develop .#php80 --profile profile + - nix-command: develop .#php80 --profile result system: x86_64 - - nix-command: develop .#php81 --profile profile + - nix-command: develop .#php81 --profile result system: x86_64 - nix-command: build .#homeConfigurations."tobias@gamer".activationPackage system: x86_64 - - nix-command: build .#homeConfigurations."tobhap@M386".activationPackage - system: x86_64 - deploy-agent: M386 - deploy-args: --async - - nix-command: build .#nixOnDroidConfigurations.oneplus5.activationPackage --impure + - nix-command: build .#nixOnDroidConfigurations.pixel7a.activationPackage --impure system: aarch64 - nix-command: build .#nixosConfigurations.argon.config.system.build.toplevel @@ -75,123 +74,47 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ inputs.branch }} + - name: Free Disk Space (Ubuntu) + uses: jlumbroso/free-disk-space@main + continue-on-error: true + if: matrix.system == 'x86_64' + with: + tool-cache: true + - name: Install nix - uses: cachix/install-nix-action@v20 + uses: cachix/install-nix-action@v26 + if: matrix.system == 'x86_64' with: extra_nix_config: | keep-going = true - show-trace = true - - name: Setup cachix - uses: cachix/cachix-action@v12 + - name: Setup cachix (gerschtli) + uses: cachix/cachix-action@v14 with: name: gerschtli authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - - name: Build command (aarch64) - if: matrix.system == 'aarch64' - # FIXME: use upstream once --tty is removed - #uses: uraimo/run-on-arch-action@v2 - uses: Gerschtli/run-on-arch-action@tty + - name: Setup cachix (nix-on-droid) + uses: cachix/cachix-action@v14 with: - arch: aarch64 - distro: alpine_latest - githubToken: ${{ github.token }} - dockerRunArgs: --volume /nix:/nix - install: | - apk --no-cache add curl git xz - adduser --disabled-password ci - env: | - _system: ${{ matrix.system }}-linux - CACHIX_ACTIVATE_TOKEN: ${{ secrets.CACHIX_ACTIVATE_TOKEN || 'no-value' }} - CACHIX_AUTH_TOKEN: ${{ secrets.CACHIX_AUTH_TOKEN }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - set -euo pipefail - - mkdir -p /home/ci/.config/nix - - cat < /home/ci/.config/nix/nix.conf - experimental-features = nix-command flakes - keep-going = true - show-trace = true - access-tokens = github.com=$GITHUB_TOKEN - EOF - - chown --recursive ci:ci /nix /home/ci - chgrp --recursive ci "$(pwd)" - chmod -R g+w "$(pwd)" - - echo "::group::Install nix" - - curl \ - --silent \ - --show-error \ - --output /tmp/install \ - --retry 5 \ - --retry-all-errors \ - --fail \ - --location \ - "https://nixos.org/nix/install" - - su ci -c "sh /tmp/install --no-channel-add --no-daemon" - rm /tmp/install + name: nix-on-droid + useDaemon: false - function run() { - su ci -c ". /home/ci/.nix-profile/etc/profile.d/nix.sh; $*" - } - - # FIXME: setting build-hook is needed because default hook `nix __build-remote` is not available - function build_hook() { - local nix_path="$(run which nix)" - echo "${nix_path/bin\/nix/libexec/nix/build-remote}" - } - run echo "build-hook = $(build_hook)" >> /home/ci/.config/nix/nix.conf - - - echo "::group::Setup cachix" - run nix-env --quiet -j8 -iA cachix -f https://cachix.org/api/v1/install - run cachix --version - run cachix use gerschtli - run cachix use nix-on-droid - - - echo "::group::Build command" - run git config --global --add safe.directory "$(pwd)" - - run nix ${{ matrix.nix-command }} - - - ${{ github.ref == 'refs/heads/master' && inputs.branch == '' && matrix.deploy-agent && - format( - ' - echo "::group::Build spec" - spec="$(run nix build --print-out-paths ".#cachix-deploy-spec-{0}")" - - echo "::group::Upload spec" - run cachix push gerschtli "$spec" - - echo "::group::Activate deployment" - run cachix deploy activate --agent "{0}" {1} "$spec" - ', - matrix.deploy-agent, - matrix.deploy-args - ) - || 'echo "::group::Skip spec deploy"' - }} - - - name: Build command (x86_64) - if: matrix.system == 'x86_64' + - name: Build command env: _system: ${{ matrix.system }}-linux run: nix ${{ matrix.nix-command }} - - name: Deploy cachix-agent spec (x86_64) - if: matrix.system == 'x86_64' && github.ref == 'refs/heads/master' && inputs.branch == '' && matrix.deploy-agent + - name: Remove result symlink + if: always() + run: rm result || : + + - name: Deploy cachix-agent spec + if: github.ref == 'refs/heads/master' && inputs.branch == '' && matrix.deploy-agent env: CACHIX_ACTIVATE_TOKEN: ${{ secrets.CACHIX_ACTIVATE_TOKEN }} run: | diff --git a/.github/workflows/ci_experimental.yml b/.github/workflows/ci_experimental.yml new file mode 100644 index 00000000..04094027 --- /dev/null +++ b/.github/workflows/ci_experimental.yml @@ -0,0 +1,175 @@ +name: Build and test flake outputs (using gh caches) +on: + push: + workflow_dispatch: + workflow_call: + inputs: + branch: + description: Branch name to build on + default: "" + required: false + type: string + secrets: + CACHIX_ACTIVATE_TOKEN: + CACHIX_AUTH_TOKEN: + required: true + +jobs: + nix: + strategy: + fail-fast: false + matrix: + yamlbasename: + - ci_experimental.yml + os: + - ubuntu-latest + system: + - aarch64 + - x86_64 + shell: + - devShells.$_system.ruby + nix-command: + - flake info + + include: + - legacy-openssl: false + - legacy-openssl: true + shell: devShells.$_system.ruby + command: ruby --version + + - nix-command: eval .#apps.$_system.nixos-shell.program + system: aarch64 + + - nix-command: eval .#apps.$_system.setup.program + system: aarch64 + + - nix-command: eval .#apps.$_system.nixos-shell.program + system: x86_64 + + - nix-command: eval .#apps.$_system.setup.program + system: x86_64 + + - nix-command: build .#homeConfigurations."dani@maiziedemacchiato".activationPackage + system: x86_64 + deploy-agent: maiziedemacchiato + + - nix-command: build .#nixOnDroidConfigurations.sams9.activationPackage --impure --print-build-logs --log-lines 9999 + system: aarch64 + deploy-agent: sams9 + + - nix-command: build .#nixosConfigurations.DANIELKNB1.config.system.build.toplevel + system: x86_64 + deploy-agent: DANIELKNB1 + + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + ref: ${{ inputs.branch }} + + - name: Free Disk Space (Ubuntu) + if: contains(matrix.nix-command, 'activationPackage') || contains(matrix.nix-command, 'toplevel') || contains(matrix.nix-command, 'ruby') || contains(matrix.nix-command, 'haskellShell') + env: + _system: ${{ matrix.system }}-linux + uses: jlumbroso/free-disk-space@main + continue-on-error: true + with: + tool-cache: true + + - name: Set Swap Space + uses: actionhippie/swap-space@master + with: + size: 20G + + - name: Install qemu-user-static (aarch64) + if: matrix.system == 'aarch64' + env: + _system: ${{ matrix.system }}-linux + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + sudo apt-get update --allow-releaseinfo-change + sudo apt-get update + sudo apt-get install -y qemu-user-static + + - name: Quick install + env: + _system: ${{ matrix.system }}-linux + uses: nixbuild/nix-quick-install-action@v26 + with: + nix_conf: | + substituters = https://cache.nixos.org/ https://nix-community.cachix.org + trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= + keep-going = true + show-trace = true + access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} + keep-outputs = true + ${{ matrix.system == 'aarch64' && 'system = aarch64-linux # enables binfmt on that machine, see https://nixos.wiki/wiki/NixOS_on_ARM#Compiling_through_binfmt_QEMU' || '' }} + + - name: Restore and cache Nix store + env: + _system: ${{ matrix.system }}-linux + uses: nix-community/cache-nix-action@v5 + with: + # save a new cache every time ci file changes + primary-key: cache-${{ matrix.os }}-${{ hashFiles('.github/workflows/ci.yaml') }} + restore-prefixes-first-match: cache-${{ matrix.os }}- + # do purge caches + purge: true + # purge all versions of the cache + purge-prefixes: cache-${{ matrix.os }}- + # created more than 0 seconds ago relative to the start of the `Post Restore` phase + purge-created: 0 + # except the version with the `primary-key`, if it exists + purge-primary-key: never + # and collect garbage in the Nix store until it reaches this size in bytes + gc-max-store-size: 8000000000 + + - name: Setup cachix + env: + _system: ${{ matrix.system }}-linux + uses: cachix/cachix-action@v12 + with: + name: 573-bc + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + + - name: My shells + env: + _system: ${{ matrix.system }}-linux + NIXPKGS_ALLOW_INSECURE: ${{ matrix.legacy-openssl == true && 1 || 0 }} + NIXPKGS_ALLOW_BROKEN: ${{ matrix.legacy-openssl == true && 1 || 0 }} + uses: nicknovitski/nix-develop@v1.1.0 + with: + arguments: .#${{ (matrix.shell == '') && format('formatter.{0}', env._system) || matrix.shell }} --impure + - run: | + echo "::group::Development shells command" + cachix use 573-bc + cachix use nix-on-droid + ${{ (matrix.system == 'aarch64' || contains(matrix.nix-command, 'ruby')) && 'cachix watch-exec 573-bc -- \' || '' }} + ${{ (matrix.command == '') && 'echo "ignore this pls"' || matrix.command }} + + - name: Build command + env: + _system: ${{ matrix.system }}-linux + timeout-minutes: 360 # Consider increasing timeout + run: | + echo "::group::Build command" + cachix use 573-bc + cachix use nix-on-droid + ${{ (matrix.system == 'aarch64' || contains(matrix.nix-command, 'homeConfigurations')) && 'cachix watch-exec 573-bc -- \' || '' }} + nix ${{ (matrix.nix-command == '') && 'flake info' || matrix.nix-command }} + + - name: Deploy cachix-agent spec + if: github.ref == 'refs/heads/wsl2' && matrix.deploy-agent + env: + CACHIX_ACTIVATE_TOKEN: ${{ secrets.CACHIX_ACTIVATE_TOKEN }} + TEST: ${{ matrix.system == 'aarch64' && '--impure' || '' }} + run: | + echo "::group::Build spec" + spec="$(nix build --print-out-paths ".#cachix-deploy-spec-${{ matrix.deploy-agent }}" ${{ (matrix.system == 'aarch64' || contains(matrix.nix-command, 'develop')) && '--impure' || '' }})" + + echo "::group::Upload spec" + cachix push 573-bc "$spec" + +# vim: set sw=2: diff --git a/.github/workflows/ci_experimental.yml-KEEP b/.github/workflows/ci_experimental.yml-KEEP new file mode 100644 index 00000000..c97e1dba --- /dev/null +++ b/.github/workflows/ci_experimental.yml-KEEP @@ -0,0 +1,118 @@ +name: Build and test flake outputs (using gh caches) +on: + push: + workflow_dispatch: + workflow_call: + inputs: + branch: + description: Branch name to build on + default: "" + required: false + type: string + secrets: + CACHIX_ACTIVATE_TOKEN: + CACHIX_AUTH_TOKEN: + required: true + +jobs: + nix: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + system: + - aarch64 + - x86_64 + nix-command: + - eval .#apps.$_system.nixos-shell.program + - eval .#apps.$_system.setup.program + - develop .#rust --impure + + include: + - nix-command: build .#nixOnDroidConfigurations.sams9.activationPackage --impure --print-build-logs --log-lines 9999 --accept-flake-config + system: aarch64 + deploy-agent: sams9 + + - nix-command: build .#nixosConfigurations.DANIELKNB1.config.system.build.toplevel --accept-flake-config + system: x86_64 + deploy-agent: DANIELKNB1 + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + with: + ref: ${{ inputs.branch }} + - name: Free Disk Space (Ubuntu) + uses: jlumbroso/free-disk-space@main + continue-on-error: true + with: + tool-cache: true + - name: Experiment (x86_64) + if: matrix.system == 'x86_64' + env: + _system: ${{ matrix.system }}-linux + uses: nixbuild/nix-quick-install-action@v25 + with: + nix_conf: | + substituters = https://cache.nixos.org/ https://nix-community.cachix.org + trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= + keep-going = true + show-trace = true + access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} + keep-outputs = true + + - name: Restore and cache Nix store (x86_64) + if: matrix.system == 'x86_64' + env: + _system: ${{ matrix.system }}-linux + uses: nix-community/cache-nix-action@v2 + with: + gc-enabled-linux: true + gc-max-store-size-linux: 8000000000 + gc-enabled-macos: true + gc-max-store-size-macos: 8000000000 + purge-enabled: true + purge-max-age: 86400 + purge-by-created-time: true + purge-by-accessed-time: true + # output debug info + debug: true + # save a new cache every time ci file changes + key: cache-ubuntu-latest-${{ hashFiles('.github/workflows/ci.yaml') }} + restore-keys: | + cache-ubuntu-latest-${{ hashFiles('.github/workflows/ci.yaml') }}- + cache-ubuntu-latest- + + # Uncomment to debug this job + # - name: Setup tmate session + # uses: mxschmitt/action-tmate@v3 + + - name: Setup cachix (x86_64) + if: matrix.system == 'x86_64' + env: + _system: ${{ matrix.system }}-linux + uses: cachix/cachix-action@v12 + with: + name: 573-bc + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + + - name: Build command (x86_64) + if: matrix.system == 'x86_64' + env: + _system: ${{ matrix.system }}-linux + run: | + echo "::group::Build command" + nix ${{ matrix.nix-command }} + + - name: Deploy cachix-agent spec (x86_64) + if: matrix.system == 'x86_64' && github.ref == 'refs/heads/wsl2' && matrix.deploy-agent + env: + CACHIX_ACTIVATE_TOKEN: ${{ secrets.CACHIX_ACTIVATE_TOKEN }} + run: | + echo "::group::Build spec" + spec="$(nix build --print-out-paths ".#cachix-deploy-spec-${{ matrix.deploy-agent }}")" + + echo "::group::Upload spec" + cachix push 573-bc "$spec" + +# vim: set sw=2: diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index bcb75447..6198d456 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -1,95 +1,31 @@ -name: Update inputs +name: update-flake-lock on: - workflow_dispatch: + workflow_dispatch: # allows manual triggering + pull_request: # triggers on every Pull Request schedule: - - cron: 0 0 * * 1 + - cron: '0 0 * * 1' jobs: - update: + lockfile: runs-on: ubuntu-latest - - outputs: - branch: ${{ steps.branch.outputs.branch }} - update_available: ${{ steps.changes.outputs.update_available }} - steps: - name: Checkout repository - uses: actions/checkout@v3 - with: - fetch-depth: 0 - + uses: actions/checkout@v2 - name: Install nix - uses: cachix/install-nix-action@v20 - - - name: Set branch name output - id: branch - run: echo "branch=ci/automatic-update-$(date +%Y-%m-%d)" >> $GITHUB_OUTPUT - - - name: Create branch locally - run: git switch -c ${{ steps.branch.outputs.branch }} - - - name: Setup git - run: | - git config --global user.email "tobias.happ@gmx.de" - git config --global user.name "Tobias Happ" - - - name: Update inputs - run: | - nix \ - --option commit-lockfile-summary 'flake.inputs: automatic update' \ - flake update \ - --commit-lock-file - - - name: Check for changes - id: changes - run: | - if git diff --exit-code origin/master...; then - echo "update_available=false" >> $GITHUB_OUTPUT - else - echo "update_available=true" >> $GITHUB_OUTPUT - fi - - - name: Push changes - if: steps.changes.outputs.update_available == 'true' - run: git push --force origin ${{ steps.branch.outputs.branch }} - - build: - uses: ./.github/workflows/ci.yml - needs: update - if: needs.update.outputs.update_available == 'true' - with: - branch: ${{ needs.update.outputs.branch }} - secrets: - CACHIX_AUTH_TOKEN: ${{ secrets.CACHIX_AUTH_TOKEN }} - - merge: - runs-on: ubuntu-latest - needs: - - update - - build - - steps: - - name: Checkout repository - uses: actions/checkout@v3 + uses: cachix/install-nix-action@v22 with: - fetch-depth: 0 - - - name: Check if update branch is behind master - run: git diff origin/${{ needs.update.outputs.branch }}...origin/master --exit-code - - - name: Merge update into master - run: git merge origin/${{ needs.update.outputs.branch }} - - - name: Push master - run: git push origin master - - - name: Delete update branch - run: git push --delete origin ${{ needs.update.outputs.branch }} - - # needed for cachix agent deployments - final-build: - uses: ./.github/workflows/ci.yml - needs: merge - secrets: - CACHIX_ACTIVATE_TOKEN: ${{ secrets.CACHIX_ACTIVATE_TOKEN }} - CACHIX_AUTH_TOKEN: ${{ secrets.CACHIX_AUTH_TOKEN }} + extra_nix_config: | + show-trace = true + experimental-features = nix-command flakes + access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} + - name: Update flake.lock + id: update + if: ${{ github.event_name != 'pull_request' }} + uses: DeterminateSystems/update-flake-lock@v19 + with: + pr-title: "Update flake.lock" # Title of PR to be created + pr-labels: | # Labels to be set on the PR + dependencies + automated + - name: Print PR number + run: echo Pull request number is ${{ steps.update.outputs.pull-request-number }}. diff --git a/.gitignore b/.gitignore index 99ca86af..087be2ac 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +.*/ nixos.qcow2 result result-* +*.elc diff --git a/README.md b/README.md index 237fcec5..690e1a53 100644 --- a/README.md +++ b/README.md @@ -4,33 +4,24 @@ This is my humble flakes-only collection of all and everything needed to set up ## Features -- Automation scripts to [setup a fresh installation](files/apps/setup.sh) and +* Automation scripts to [setup a fresh installation](files/apps/setup.sh) and [update the system](home/misc/util-bins/system-update.sh) easily -- Secret management in [NixOS][nixos] ([agenix][agenix]) and [home-manager][home-manager] ([homeage][homeage]) with - [age][age] -- [nix-on-droid][nix-on-droid]-managed android phone with [home-manager][home-manager] -- One system (`neon`) set up with ephemeral root and home directories using [impermanence][impermanence] and btrfs -- Generated shell scripts are always linted with [shellcheck][shellcheck] -- Checks source code with [deadnix][deadnix], [statix][statix] and [nixpkgs-fmt][nixpkgs-fmt] (using +* [nix-on-droid][nix-on-droid]-managed android phone with [home-manager][home-manager] +* Generated shell scripts are always linted with [shellcheck][shellcheck] +* Checks source code with [deadnix][deadnix], [statix][statix] and [nixpkgs-fmt][nixpkgs-fmt] (using [nix-formatter-pack][nix-formatter-pack]) -- Github Actions pipeline for aarch64-linux systems -- Every output is built with Github Actions and pushed to [cachix][cachix] -- Weekly automatic flake input updates committed to master when CI passes -- Automatic deployments on all [NixOS][nixos] systems with [cachix deployment agents][cachix-deploy] after successful - pipeline runs +* Github Actions pipeline for aarch64-linux systems +* Every output is built with Github Actions and pushed to [cachix][cachix] +* Weekly automatic flake input updates committed to master when CI passes ## Supported configurations -- [NixOS][nixos]-managed - - `argon` (Oracle Cloud Compute Instance) - - `krypton` (private server) - - `neon` (private laptop) - - `xenon` (Raspberry Pi 3B+) -- [home-manager][home-manager]-managed - - `M386` with Ubuntu 20.04 (work laptop) - - `gamer` on WSL2 with Ubuntu 20.04 (windows dual boot for games and stuff) -- [nix-on-droid][nix-on-droid]-managed - - `oneplus5` +* [NixOS][nixos]-managed + * `DANIELKNB1` (private laptop, WSL2) +* [home-manager][home-manager]-managed + * `maiziedemacchiato` with Arch Linux (private laptop) +* [nix-on-droid][nix-on-droid]-managed + * `sams9` See [flake.nix](flake.nix) for more information like `system`. @@ -39,140 +30,30 @@ See [flake.nix](flake.nix) for more information like `system`. If any of these systems need to be reinstalled, you can run: ```sh -nix run \ - --extra-experimental-features "nix-command flakes" \ - github:Gerschtli/nix-config#setup +$ nix run \ + github:573/nix-config-1/wsl2#setup ``` +**Note:** +* NixOS-managed systems should be set up like written in the [NixOS manual][nixos-manual]. + `nix build ".#installer-image"` can be used for latest kernel, helpful default config and some pre-installed + utilities. + + + ### Manual instructions for some systems -#### NixOS - -1. Set up like written in the [NixOS manual][nixos-manual] with image from `nix build ".#installer-image"` -1. Add the following to `configuration.nix`: - ```nix - { - users.users.root.password = "nixos"; - users.users.tobias = { - password = "nixos"; - isNormalUser = true; - extraGroups = [ "wheel" ]; - }; - } - ``` -1. When booted in the new NixOS system, login as tobias and run setup script - -#### Raspberry Pi - -1. Build image - ```sh - nix build ".#rpi-image" - ``` -1. Copy (`dd`) `result/sd-image/*.img` to sd-card -1. Inject sd-card in raspberry and boot -1. When booted in the new NixOS system, login as tobias and run setup script - -##### Update firmware - -Firmware of Raspberry Pi needs to be updated manually on a regular basis with the following steps: - -1. Build firmware - ```sh - nix build ".#rpi-firmware" - ``` -1. Mount `/dev/disk/by-label/FIRMWARE` -1. Create backup of all files -1. Copy `result/*` to firmware partition (ensure that old ones are deleted) -1. Unmount and reboot - -#### Ubuntu 20.04 +#### Arch Linux ```sh -# update and install system packages -sudo apt update -sudo apt upgrade -sudo apt install zsh - # install nix setup sh <(curl -L https://nixos.org/nix/install) --no-channel-add --no-modify-profile . ~/.nix-profile/etc/profile.d/nix.sh nix run \ --extra-experimental-features "nix-command flakes" \ - github:Gerschtli/nix-config#setup - -# download and install UbuntuMono from nerdfonts.com - -# set login shell -chsh -s /bin/zsh - -# configure inotify watcher -echo "fs.inotify.max_user_watches = 524288" | sudo tee /etc/sysctl.d/local.conf - -# set default shell (needed if using home-manager to setup xsession) -sudo ln -snf bash /bin/sh + github:573/nix-config-1/wsl2#setup ``` -#### Oracle Cloud ARM Compute Instance - -1. Create final boot volume - - 1. Create any instance - 1. Detach boot volume - -1. Create bootstrap instance - - 1. Create "VM.Standard.A1.Flex" - 1. with Ubuntu 20.04 - 1. 1 OCPUs and 6 GB of memory - 1. set ssh public key - 1. Attach previously created boot volume as block volume (via ISCSI) - 1. ssh into instance with `ubuntu` user - 1. Login as `root` - 1. Set ssh public key in `/root/.ssh/authorized_keys` and run [nixos-infect][nixos-infect]: - ```sh - cat /home/ubuntu/.ssh/authorized_keys > /root/.ssh/authorized_keys - curl https://raw.githubusercontent.com/elitak/nixos-infect/master/nixos-infect | NIX_CHANNEL=nixos-22.05 bash -x - ``` - 1. ssh into instance with `root` user - 1. Add the following to `/etc/nixos/configuration.nix`: - ```nix - { - boot.loader.grub.efiSupport = true; - boot.loader.grub.device = "nodev"; - services.openiscsi.enable = true; - services.openiscsi.name = "x"; - } - ``` - 1. Activate with `nixos-rebuild switch` - 1. Copy and run ISCSI mount commands from Oracle Cloud WebUI - 1. Partion mounted boot volume - 1. Install NixOS like described in [NixOS manual][nixos-manual] with following options: - - ```nix - { - services.openssh.enable = true; - services.openssh.permitRootLogin = "yes"; - - users.users.root.password = "nixos"; - users.users.tobias = { - password = "nixos"; - isNormalUser = true; - extraGroups = [ "wheel" ]; - }; - } - ``` - - 1. Copy and run ISCSI unmount commands from Oracle Cloud WebUI - 1. Detach volume in Oracle Cloud WebUI - -1. Create final instance - 1. Create instance of previously created boot volume - 1. ssh into instance with `tobias` user and password - 1. Run setup script - -**Note:** This is all needed to be able to partition the volume to have more than 100MB available in `/boot`. The boot -volume of the bootstrap instance can be reused at any time. - [age]: https://age-encryption.org/ [agenix]: https://github.com/ryantm/agenix [cachix-deploy]: https://docs.cachix.org/deploy/ @@ -181,7 +62,6 @@ volume of the bootstrap instance can be reused at any time. [deadnix]: https://github.com/astro/deadnix [home-manager]: https://github.com/nix-community/home-manager [homeage]: https://github.com/jordanisaacs/homeage -[impermanence]: https://github.com/nix-community/impermanence [nix-formatter-pack]: https://github.com/Gerschtli/nix-formatter-pack [nix-on-droid]: https://github.com/t184256/nix-on-droid [nixos-infect]: https://github.com/elitak/nixos-infect diff --git a/Untitled.ipynb b/Untitled.ipynb new file mode 100644 index 00000000..63d25a78 --- /dev/null +++ b/Untitled.ipynb @@ -0,0 +1,33 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "0fe28a16-8ab2-451d-a75b-a91ad7e6b445", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python3 - Python-env", + "language": "python", + "name": "ipython_python-env" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/drvs/desed/Cargo.lock b/drvs/desed/Cargo.lock new file mode 100644 index 00000000..2a99c4a8 --- /dev/null +++ b/drvs/desed/Cargo.lock @@ -0,0 +1,482 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "anyhow" +version = "1.0.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "cassowary" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "clap" +version = "3.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" +dependencies = [ + "atty", + "bitflags", + "clap_lex", + "indexmap", + "once_cell", + "strsim", + "termcolor", + "textwrap", +] + +[[package]] +name = "clap_lex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +dependencies = [ + "os_str_bytes", +] + +[[package]] +name = "crossterm" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67" +dependencies = [ + "bitflags", + "crossterm_winapi", + "libc", + "mio", + "parking_lot", + "signal-hook", + "signal-hook-mio", + "winapi", +] + +[[package]] +name = "crossterm_winapi" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ae1b35a484aa10e07fe0638d02301c5ad24de82d310ccbd2f3693da5f09bf1c" +dependencies = [ + "winapi", +] + +[[package]] +name = "desed" +version = "1.2.1" +dependencies = [ + "anyhow", + "cfg-if", + "clap", + "crossterm", + "inotify", + "kqueue", + "tui", +] + +[[package]] +name = "futures-core" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown", +] + +[[package]] +name = "inotify" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abf888f9575c290197b2c948dc9e9ff10bd1a39ad1ea8585f734585fa6b9d3f9" +dependencies = [ + "bitflags", + "futures-core", + "inotify-sys", + "libc", + "tokio", +] + +[[package]] +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +dependencies = [ + "libc", +] + +[[package]] +name = "kqueue" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c8fc60ba15bf51257aa9807a48a61013db043fcf3a78cb0d916e8e396dcad98" +dependencies = [ + "kqueue-sys", + "libc", +] + +[[package]] +name = "kqueue-sys" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8367585489f01bc55dd27404dcf56b95e6da061a256a666ab23be9ba96a2e587" +dependencies = [ + "bitflags", + "libc", +] + +[[package]] +name = "libc" +version = "0.2.140" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c" + +[[package]] +name = "lock_api" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "mio" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" +dependencies = [ + "libc", + "log", + "wasi", + "windows-sys", +] + +[[package]] +name = "once_cell" +version = "1.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" + +[[package]] +name = "os_str_bytes" +version = "6.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-sys", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "signal-hook" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" +dependencies = [ + "libc", + "mio", + "signal-hook", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + +[[package]] +name = "smallvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" + +[[package]] +name = "socket2" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "termcolor" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "textwrap" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" + +[[package]] +name = "tokio" +version = "1.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0de47a4eecbe11f498978a9b29d792f0d2692d1dd003650c24c76510e3bc001" +dependencies = [ + "autocfg", + "libc", + "mio", + "pin-project-lite", + "socket2", + "windows-sys", +] + +[[package]] +name = "tui" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccdd26cbd674007e649a272da4475fb666d3aa0ad0531da7136db6fab0e5bad1" +dependencies = [ + "bitflags", + "cassowary", + "crossterm", + "unicode-segmentation", + "unicode-width", +] + +[[package]] +name = "unicode-segmentation" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" + +[[package]] +name = "unicode-width" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" diff --git a/drvs/desed/default.nix b/drvs/desed/default.nix new file mode 100644 index 00000000..5d607b1a --- /dev/null +++ b/drvs/desed/default.nix @@ -0,0 +1,27 @@ +{ lib, rustPlatform, fetchFromGitHub }: +rustPlatform.buildRustPackage rec { + pname = "desed"; + version = "1.2.1"; + + src = fetchFromGitHub { + owner = "SoptikHa2"; + repo = "desed"; + rev = "v${version}"; + hash = "sha256-/kJE5Mb6Xm4gL8bXFHQKJ6vICWstrGZ6PmravyJjLm0="; + }; + + cargoLock = { + lockFile = ./Cargo.lock; + }; + + postPatch = '' + ln -s ${./Cargo.lock} Cargo.lock + ''; + + meta = with lib; { + description = "Debugger for Sed: demystify and debug your sed scripts, from comfort of your terminal"; + homepage = "https://github.com/SoptikHa2/desed"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ ]; + }; +} diff --git a/files/apps/nixos-shell-vm.nix b/files/apps/nixos-shell-vm.nix new file mode 100644 index 00000000..a0317d98 --- /dev/null +++ b/files/apps/nixos-shell-vm.nix @@ -0,0 +1,26 @@ +rootPath: + +{ pkgs, ... }: + +{ + environment.systemPackages = [ pkgs.vim ]; + + nixos-shell.mounts = { + mountHome = false; + mountNixProfile = false; + cache = "none"; + extraMounts."/tmp/nix-config" = { + target = rootPath; + cache = "none"; + }; + }; + + system.stateVersion = "22.11"; + + virtualisation = { + cores = 8; + diskSize = 30 * 1024; # in MB + memorySize = 8 * 1024; # in MB + writableStoreUseTmpfs = false; + }; +} diff --git a/files/apps/setup.sh b/files/apps/setup.sh index 5b54b378..e618a1b2 100644 --- a/files/apps/setup.sh +++ b/files/apps/setup.sh @@ -11,14 +11,15 @@ _clone() { local name="${1}" local url="${2}" local directory="${3}" + local branch="${4}" if [[ -d "${directory}" ]]; then - _log "Not cloning ${name} because ${directory} already exists!" + _log "Not cloning ${name} because ${directory} already exists! To install newer revsision remove ${directory} first!" return fi _log "Clone ${name}..." - git clone "${url}" "${directory}" + git clone --single-branch --branch "${branch}" "${url}" "${directory}" } if _is_root; then @@ -26,66 +27,13 @@ if _is_root; then exit 1 fi -# generate ssh key and show -echo -ssh-keygen -f ~/.ssh/id_rsa -N "" -q || true -_log "Copy link to ssh key or ssh key itself, add in github and gitea:" -echo -cat "${HOME}/.ssh/id_rsa.pub" -echo -curl --silent --form "file=@${HOME}/.ssh/id_rsa.pub" https://file.io | jq --raw-output .link -echo - # pause script read -sr -n 1 -p "$(echo -e "${PURPLE}Press any key to continue...${RESET}")" echo # clone repos -_clone "nix-config" git@github.com:Gerschtli/nix-config.git "${nix_config}" - -if _read_boolean "Install atom-config repo?"; then - if [[ -e "${HOME}/.atom" ]]; then - mv -v "${HOME}/.atom" "${HOME}/.atom.bak" - fi - - _clone "atom-config" git@github.com:Gerschtli/atom-config.git "${HOME}/.atom" -fi - -if _read_boolean "Install gnupg-setup repo?"; then - _clone "gnupg repo" gitea@git.tobias-happ.de:Gerschtli/gnupg-setup.git "${HOME}/.gnupg-setup" - - if _read_boolean "Install password-store?"; then - _clone "password store" gitea@git.tobias-happ.de:Gerschtli/pass.git "${HOME}/.password-store" - fi -fi - -if _read_boolean "Install files?"; then - _clone "files" git@github.com:Gerschtli/files.git "${HOME}/.files" -fi - -_clone "age-bak" gitea@git.tobias-happ.de:Gerschtli/age-bak.git "${HOME}/.age-bak" - -_log "Change permissions of ~/.age-bak..." -chmod -v 0700 "${HOME}/.age-bak" - -if [[ ! -e "${HOME}/.age" ]]; then - _log "Link ~/.age to ~/.age-bak..." - ln -snv .age-bak "${HOME}/.age" -fi - -if _is_nixos && _read_boolean "Set up age keys for root?"; then - _log "Copy ~/.age-bak/key.txt to /root..." - sudo mkdir -vp "/root/.age-bak" - sudo chmod -v 0700 "/root/.age-bak" - sudo cp -v "${HOME}/.age-bak/key.txt" "/root/.age-bak/key.txt" - sudo chown root:root "/root/.age-bak/key.txt" - - if ! sudo test -e "/root/.age"; then - _log "Link /root/.age to /root/.age-bak..." - sudo ln -snv .age-bak "/root/.age" - fi -fi +_clone "nix-config" https://github.com/573/nix-config-1.git "${nix_config}" "wsl2" # preparation for non nixos systems if nix-env -q --json | jq ".[].pname" | grep '"nix"' > /dev/null; then @@ -93,36 +41,41 @@ if nix-env -q --json | jq ".[].pname" | grep '"nix"' > /dev/null; then nix-env --set-flag priority 1000 nix fi - # installation +# TODO putting --accept-flake-config in nixos-rebuild here let's the command silently fail, track this in an issue if _is_nixos; then - hostname=$(_read_enum "Enter hostname" argon krypton neon xenon) + hostname=DANIELKNB1 #$(_read_enum "Enter hostname" DANIELKNB1) - _log "Run sudo nixos-rebuild switch..." + _log "Run sudo nixos-rebuild ..." sudo nixos-rebuild \ - switch \ - --option extra-substituters "https://gerschtli.cachix.org" \ - --option extra-trusted-public-keys "gerschtli.cachix.org-1:dWJ/WiIA3W2tTornS/2agax+OI0yQF8ZA2SFjU56vZ0=" \ - --keep-going \ - --flake "${nix_config}#${hostname}" || : - - _log "Don't forget to set passwd for tobias and root!" - _log "It may be required to set up an age key for root:" - _log " age-keygen -o ~/.age/key.txt" + boot \ + --show-trace --verbose \ + --flake "${nix_config}#${hostname}" || : + + _log "Don't forget to set passwd for ${USER} and root!" + _log "In case you need to userdel the nixos user, '\$ wsl -d NixOS -u root' and see https://gist.github.com/573/131629a55c0ef91305532c6f977934e6." elif [[ "${USER}" == "nix-on-droid" ]]; then - _log "Run nix-on-droid switch..." - nix-on-droid switch \ - --option extra-substituters "https://gerschtli.cachix.org" \ - --option extra-trusted-public-keys "gerschtli.cachix.org-1:dWJ/WiIA3W2tTornS/2agax+OI0yQF8ZA2SFjU56vZ0=" \ - --option extra-substituters "https://nix-on-droid.cachix.org" \ - --option extra-trusted-public-keys "nix-on-droid.cachix.org-1:56snoMJTXmDRC1Ei24CmKoUqvHJ9XCp+nidK7qkMQrU=" \ - --flake "${nix_config}#oneplus5" + _log "Run nix-on-droid ..." +# nix-on-droid build \ +# --option print-build-logs true \ +# --option extra-substituters "https://573-bc.cachix.org/" \ +# --option extra-trusted-public-keys "573-bc.cachix.org-1:2XtNmCSdhLggQe4UTa4i3FSDIbYWx/m1gsBOxS6heJs=" \ +# --option extra-substituters "https://nix-on-droid.cachix.org/" \ +# --option extra-trusted-public-keys "nix-on-droid.cachix.org-1:56snoMJTXmDRC1Ei24CmKoUqvHJ9XCp+nidK7qkMQrU=" \ +# --flake "${nix_config}#sams9" + nix build \ + --option extra-substituters "https://573-bc.cachix.org/" \ + --option extra-trusted-public-keys "573-bc.cachix.org-1:2XtNmCSdhLggQe4UTa4i3FSDIbYWx/m1gsBOxS6heJs=" \ + --option extra-substituters "https://nix-on-droid.cachix.org/" \ + --option extra-trusted-public-keys "nix-on-droid.cachix.org-1:56snoMJTXmDRC1Ei24CmKoUqvHJ9XCp+nidK7qkMQrU=" \ + "${nix_config}#nixOnDroidConfigurations.sams9.activationPackage" -L --impure --keep-going -vvv --out-link /data/data/com.termux.nix/files/home/result else _log "Build home-manager activationPackage..." nix build \ - --option extra-substituters "https://gerschtli.cachix.org" \ - --option extra-trusted-public-keys "gerschtli.cachix.org-1:dWJ/WiIA3W2tTornS/2agax+OI0yQF8ZA2SFjU56vZ0=" \ - "${nix_config}#homeConfigurations.${USER}@$(hostname).activationPackage" + --option extra-substituters "https://573-bc.cachix.org/" \ + --option extra-trusted-public-keys "573-bc.cachix.org-1:2XtNmCSdhLggQe4UTa4i3FSDIbYWx/m1gsBOxS6heJs=" \ + "${nix_config}#homeConfigurations.${USER}@$(hostname).activationPackage" + _log "Run activate script..." HOME_MANAGER_BACKUP_EXT=hm-bak ./result/activate @@ -133,7 +86,7 @@ fi # clean up if nix-env -q --json | jq ".[].pname" | grep '"nix"' > /dev/null; then - _log "Uninstall manual installed nix package..." + _log "Uninstall manually installed nix package..." nix-env --uninstall nix fi diff --git a/files/keys/Readme.md b/files/keys/Readme.md new file mode 100644 index 00000000..69bcd23d --- /dev/null +++ b/files/keys/Readme.md @@ -0,0 +1 @@ +Place the id_rsa.daniel.pub etc files here diff --git a/files/keys/id_ed25519.daniel.pub b/files/keys/id_ed25519.daniel.pub new file mode 100644 index 00000000..662e0c20 --- /dev/null +++ b/files/keys/id_ed25519.daniel.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN774KyZFi3YXuCRNlrt9Tzcw3itGp0nOMbsBmndtYQQ dani@home diff --git a/files/keys/id_ed25519.danielwdws.pub b/files/keys/id_ed25519.danielwdws.pub new file mode 100644 index 00000000..d66b1755 --- /dev/null +++ b/files/keys/id_ed25519.danielwdws.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKSw+es0Fj6d4wYUbKC00R5Cbd537UQVjw98wh16hmHr nixos@work diff --git a/files/keys/id_rsa.backup.pub b/files/keys/id_rsa.backup.pub deleted file mode 100644 index 856809ca..00000000 --- a/files/keys/id_rsa.backup.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDjsVirDch+wibzZwqqsTSXTbhiaW9OWnvLzLtuX+n1/KL6pWai6Jidk76JNzaEtlhtZY8x1vCdiOUCyIMsFgF7eUfrJqBaKNDEeNZupsxUyvOUzS0eWj9ddTg5RTJygGvfy2RRUobrAOAxOM6r+QHaBS6hFH0Keex0b69Np7idims1yZ+oMXT4Ml26QwFJ3WPpjzzYEdb7A4A1Yw02KaGCWNnF93FUMEfDTiD0uxItP2G0vFyBMQ4nbrz6oKK0FSFnJAq3m3PM11ur47+aie3BbxDtJPTpw1uYwMcQAK7i+lbbr5Bu9EBjehQ2H5lTCH4dSlEau9uQYDCsM/NJz9Yt6xkABTFcOBTi4jZF5e4dnhEXuIlLZ1QdXoD40p9b1WM+nS+e6Fs7clVWo+DQNZYjopMgHcLj9xpOeRzURpncShT1N7ZqkCsyw1DljD3sA1fuXsvAY+Xc5+f8e4RrlCN8/4XnXLmkVVJIiUq2hgb0ir0udJCx/Bm3QYBZzUOr3rjDUN2SkK+f9F9nrwnyXGyuRS7Fn+pVwBM4AnNGu7vsheOznffJf+5NwUmrPXuRI6Twv62bpofN6eZ0kMT9NbNvpUbmsHHrTZ+uCPoSFE0r6FRv8dM5Q5UQoQ9s2Xc1jLzeFYhO2/puAxKtRTME58d4epX1IjLSOsdRSAEQ5PUcUw== root@xenon diff --git a/files/keys/id_rsa.steini.pub b/files/keys/id_rsa.steini.pub deleted file mode 100644 index 89e50119..00000000 --- a/files/keys/id_rsa.steini.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDtLZereIELP4Bsf4S/zl68x5s0ZkIazM1bW2CpFuensm74iCqIwnuIZm/CMj9QGBbr+xBnWbutTdfZ/UCZsRKg8VpQl98c1NotQtSte8iabDl+0q3jxdUJNvBrobOYkA3ZwngU7p7IFgZor0l4v30l4HxkVzLRIma+kT9MECtyb/U1EfOlZsoyXGG/mh6tX5k3VNJk7u62X0jLzeDBien8S+mdvoNDY6cntDuJR78PwiSMSiyzFwd4nH2SwZz0Klw0gsLsLgltcDupXr3xJumA0uqxNI6QaC7yRpB54ZTpibYhLEZvPn+WhldRvaoxqTrt9+M+xFodmRFKwq0J9V0drO6RQFp0+3AyEWtjKZJCalZtowNPzhkRgWlruMB2S9gMYdEYIw8jud/EVKHn8ICKeiF8bPW3dTIRgRRHZ0cIRixeT8vRexXIij5vQA6uNWvpDnm5/fwhFwAzVFv8cxVRanetoejY9jqEDAy31epac9zSO743RGNI4xV68j/px6TgwkrN3tCwQyfeYl/vipm3AJM5juI4b/ZfRNe+Lzd5T08roBvrcxj8Ol//IXHGAEP+0zezWHUD5kJmRq3YIvCD5BXMoMpkCSNCQPggQdNWVRnuoxLew9x17lGzj0BjLsfbyRTb4vQiOX3FLt4/8NNs3NG9TNvbrO3Wo6/l/lD4bw== diff --git a/files/keys/id_rsa.tobias.pub b/files/keys/id_rsa.tobias.pub deleted file mode 100644 index 3526bcec..00000000 --- a/files/keys/id_rsa.tobias.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPRLFjQRecCfkmpRJVwNIsua/+fyHQsDfSrW5UijXkrZjygBlMMu2le6tQihrp/RYZUoh0bV3zEpAiWWkvMWrt7C1nPcL8LwaJFJ5yjHwZi3ubMUYZXoNg2/GdY6GQXWDL0rZmxf1wsaRnmCLpDbH/kmbVaRNq0M4tg6jvGOgBTmXV/gHmCzlMwo5EJguOmKUn5rlPIjoe7HInH1osJGEhYaxPwJxFpmJO2E8h1OzntH66WXbqh5NNjz98X5unl47UXyOataYMSwf/ef6Xkhr/ywyFiBIW89AENC5sQIbOhCLB8Wnx94rpMDVrwieV+CZAJ3H19x/lN2SMDMWo/sdPj8eKF8bS2V5PjrUay7/PnI2TjgjTtC54z5F9VBmcGc2gYnfDqSUuzSOJMWtR1ERbVklK45jgWqd6VBzDzzEfRXsI/ewPRMD1AK/e/lThh//4E/87LOKbXrvbDSsrXArXeE/9GPETRMwXT3jHm/UZm8KelfRgmWeAfEM0dlYPal0X2dCV9hpTxXRLRaV+U6kgenxS770642qs7eY0c1WMat7obZp7+kZISMALlHIGVW4EfkrJnlnlGjMsBjYWpoRuiHALZ39ern/Zh0qBlX+1ev2Xkj1QGHlEsrVQpTRt5ViGbYO7ejBRqgXxjhWQ6KtUA2dXUUjLtdCXpWmx7/8qHw== tobias@Tobias-Laptop diff --git a/files/nix/nixos-shell-vm.nix b/files/nix/nixos-shell-vm.nix index a0317d98..eca44e44 100644 --- a/files/nix/nixos-shell-vm.nix +++ b/files/nix/nixos-shell-vm.nix @@ -15,7 +15,7 @@ rootPath: }; }; - system.stateVersion = "22.11"; + system.stateVersion = "23.11"; virtualisation = { cores = 8; diff --git a/files/nix/rpi-firmware.nix b/files/nix/rpi-firmware.nix deleted file mode 100644 index 830d82eb..00000000 --- a/files/nix/rpi-firmware.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ nixpkgs }: - -let - configuration = - { config, pkgs, modulesPath, ... }: - - { - imports = [ - (modulesPath + "/installer/sd-card/sd-image-aarch64.nix") - ]; - - system = { - build.firmware = pkgs.runCommand "firmware" { } '' - mkdir firmware ${placeholder "out"} - - ${config.sdImage.populateFirmwareCommands} - - cp -r firmware/* ${placeholder "out"} - ''; - - stateVersion = "22.11"; - }; - }; - - evaluatedConfig = nixpkgs.lib.nixosSystem { - system = "aarch64-linux"; - - modules = [ configuration ]; - }; -in - -evaluatedConfig.config.system.build.firmware diff --git a/files/nix/rpi-image.nix b/files/nix/rpi-image.nix deleted file mode 100644 index 7c996a8d..00000000 --- a/files/nix/rpi-image.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ nixpkgs, rootPath }: - -let - configuration = - { modulesPath, ... }: - - { - imports = [ - (modulesPath + "/installer/sd-card/sd-image-aarch64.nix") - ]; - - networking = { - usePredictableInterfaceNames = false; - - wireless = { - enable = true; - interfaces = [ "wlan0" ]; - }; - }; - - sdImage.compressImage = false; - - services.openssh.enable = true; - - system.stateVersion = "22.11"; - - # needed because wpa_supplicant fails on startup - # see https://github.com/NixOS/nixpkgs/issues/82462 - systemd.services.wpa_supplicant.serviceConfig = { - Restart = "always"; - RestartSec = 5; - }; - - users.users.root = { - password = "nixos"; - openssh.authorizedKeys.keyFiles = [ "${rootPath}/files/keys/id_rsa.tobias.pub" ]; - }; - }; - - evaluatedConfig = nixpkgs.lib.nixosSystem { - system = "aarch64-linux"; - - modules = [ configuration ]; - }; -in - -evaluatedConfig.config.system.build.sdImage diff --git a/files/tmux/profiles/crossfitamgruen.sh b/files/tmux/profiles/crossfitamgruen.sh deleted file mode 100644 index 113525db..00000000 --- a/files/tmux/profiles/crossfitamgruen.sh +++ /dev/null @@ -1,6 +0,0 @@ -ROOT="${HOME}/projects/crossfitamgruen" - -CMD_PRIMARY="git fm" -CMD_SECONDARY="npm run serve" - -SIDE_CMDS=( "npx netlify-cms-proxy-server" ) diff --git a/flake.lock b/flake.lock index 25b7038f..ca319084 100644 --- a/flake.lock +++ b/flake.lock @@ -1,714 +1,3747 @@ { "nodes": { - "agenix": { - "inputs": { - "darwin": "darwin", - "nixpkgs": [ - "nixpkgs" - ] + "action-hints.nvim": { + "flake": false, + "locked": { + "lastModified": 1694254260, + "narHash": "sha256-BTXmb1uGbXKkORnf1hbEa8jEmpPpzjMaerdldo5tkxs=", + "owner": "roobert", + "repo": "action-hints.nvim", + "rev": "ab10fef255dd4bc933c92d8f9969828f2f856e71", + "type": "github" }, + "original": { + "owner": "roobert", + "repo": "action-hints.nvim", + "type": "github" + } + }, + "advisory-db": { + "flake": false, "locked": { - "lastModified": 1677969766, - "narHash": "sha256-AIp/ZYZMNLDZR/H7iiAlaGpu4lcXsVt9JQpBlf43HRY=", - "owner": "ryantm", - "repo": "agenix", - "rev": "03b51fe8e459a946c4b88dcfb6446e45efb2c24e", + "lastModified": 1703184318, + "narHash": "sha256-vx2/goSpegxiFc7e1jKNHzBkhnsIQjriV4GZLaVe17M=", + "owner": "rustsec", + "repo": "advisory-db", + "rev": "a5fb72de318a74eb69a2c241c0e46705684a35d0", "type": "github" }, "original": { - "owner": "ryantm", - "repo": "agenix", + "owner": "rustsec", + "repo": "advisory-db", "type": "github" } }, - "agenix-cli": { + "bundix": { "inputs": { - "flake-utils": "flake-utils", "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1641404293, - "narHash": "sha256-0+QVY1sDhGF4hAN6m2FdKZgm9V1cuGGjY4aitRBnvKg=", - "owner": "cole-h", - "repo": "agenix-cli", - "rev": "77fccec4ed922a0f5f55ed964022b0db7d99f07d", + "lastModified": 1705044640, + "narHash": "sha256-j9zJAYf78i2p0NTL7vAf/PKZ3vCaNZ5tE6tMR7t9zH0=", + "owner": "inscapist", + "repo": "bundix", + "rev": "4268084ca6e8da43c0c8a8a32d0ebbd55a796333", + "type": "github" + }, + "original": { + "owner": "inscapist", + "ref": "main", + "repo": "bundix", + "type": "github" + } + }, + "cachix": { + "locked": { + "lastModified": 1635350005, + "narHash": "sha256-tAMJnUwfaDEB2aa31jGcu7R7bzGELM9noc91L2PbVjg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "1c1f5649bb9c1b0d98637c8c365228f57126f361", "type": "github" }, "original": { - "owner": "cole-h", - "repo": "agenix-cli", + "owner": "nixos", + "ref": "nixos-20.09", + "repo": "nixpkgs", "type": "github" } }, - "cachix-deploy-flake": { + "clojure-dev-template": { "inputs": { - "darwin": "darwin_2", - "disko": "disko", - "home-manager": "home-manager", - "nixos-remote": "nixos-remote", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1674378263, - "narHash": "sha256-A5mHxh5Fuf/RDY6fgvtEqf7NBgicCY+nctpi+rz3qUI=", - "owner": "cachix", - "repo": "cachix-deploy-flake", - "rev": "4924836b8ed21d0e7a4a8264fb1b2db3ad8f8aed", + "dir": "clojure", + "lastModified": 1705594595, + "narHash": "sha256-+SwdK58ngm9RR7W6e1Zfrm0P8q0pnkjRZTiykrOCEoI=", + "owner": "the-nix-way", + "repo": "dev-templates", + "rev": "cb94157e1a3b24df4d939238265592fcdf0c6c18", "type": "github" }, "original": { - "owner": "cachix", - "repo": "cachix-deploy-flake", + "dir": "clojure", + "owner": "the-nix-way", + "repo": "dev-templates", "type": "github" } }, - "darwin": { + "crane": { "inputs": { "nixpkgs": [ - "agenix", + "ghciwatch", "nixpkgs" ] }, "locked": { - "lastModified": 1673295039, - "narHash": "sha256-AsdYgE8/GPwcelGgrntlijMg4t3hLFJFCRF3tL5WVjA=", - "owner": "lnl7", - "repo": "nix-darwin", - "rev": "87b9d090ad39b25b2400029c64825fc2a8868943", + "lastModified": 1704300976, + "narHash": "sha256-QLMpTrHxsND2T8+khAhLCqzOY/h2SzWS0s4Z7N2ds/E=", + "owner": "ipetkov", + "repo": "crane", + "rev": "0efe36f9232e0961512572883ba9c995aa1f54b1", "type": "github" }, "original": { - "owner": "lnl7", - "ref": "master", - "repo": "nix-darwin", + "owner": "ipetkov", + "repo": "crane", "type": "github" } }, - "darwin_2": { - "inputs": { - "nixpkgs": "nixpkgs" - }, + "deadcolumn-nvim": { + "flake": false, "locked": { - "lastModified": 1671891118, - "narHash": "sha256-+GJYiT7QbfA306ex4sGMlFB8Ts297pn3OdQ9kTd4aDw=", - "owner": "LnL7", - "repo": "nix-darwin", - "rev": "267040e7a2b8644f1fdfcf57b7e808c286dbdc7b", + "lastModified": 1708580635, + "narHash": "sha256-YEFqsR/9Y1/sfFsEfHnty8N1vXFPPSsQY/AsiGDUVS0=", + "owner": "Bekaboo", + "repo": "deadcolumn.nvim", + "rev": "af13928aa281f36273e8f220b19e78d497c7fb87", "type": "github" }, "original": { - "owner": "LnL7", - "repo": "nix-darwin", + "owner": "Bekaboo", + "repo": "deadcolumn.nvim", "type": "github" } }, - "disko": { - "inputs": { - "nixpkgs": [ - "cachix-deploy-flake", - "nixpkgs" - ] - }, + "deferred-clipboard.nvim": { + "flake": false, "locked": { - "lastModified": 1672526278, - "narHash": "sha256-QpebSMK5vrA5tE4xT0WpcP84MRETydL6NCotIXPVvGw=", - "owner": "nix-community", - "repo": "disko", - "rev": "981160e9cfb73a9fc9f7eddfe193953fc784cdfb", + "lastModified": 1677685907, + "narHash": "sha256-nanNQEtpjv0YKEkkrPmq/5FPxq+Yj/19cs0Gf7YgKjU=", + "owner": "EtiamNullam", + "repo": "deferred-clipboard.nvim", + "rev": "810a29d166eaa41afc220cc7cd85eeaa3c43b37f", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "disko", + "owner": "EtiamNullam", + "repo": "deferred-clipboard.nvim", "type": "github" } }, - "dmenu": { + "devenv": { "inputs": { - "nixpkgs": [ - "nixpkgs" - ] + "flake-compat": "flake-compat", + "nix": "nix", + "nixpkgs": "nixpkgs_2", + "pre-commit-hooks": "pre-commit-hooks" }, "locked": { - "lastModified": 1669935246, - "narHash": "sha256-6hNfb7oS1hHGujQ2yj+mVgSd41RSnrfGf9xWu00W+J8=", - "owner": "Gerschtli", - "repo": "dmenu", - "rev": "b3ad84c7fb68ac5ecec01485921b784d190d6dac", + "lastModified": 1709300857, + "narHash": "sha256-jkK99RiSt5YfLWj3kAQoB8OB3idxLTdT9kfo/wILbjw=", + "owner": "cachix", + "repo": "devenv", + "rev": "f0319af4f966fb8bc25c6429f4f2e097e79116c2", "type": "github" }, "original": { - "owner": "Gerschtli", - "repo": "dmenu", + "owner": "cachix", + "repo": "devenv", "type": "github" } }, - "dwm": { + "devshell": { "inputs": { + "flake-utils": "flake-utils_18", "nixpkgs": [ + "nixvim", "nixpkgs" ] }, "locked": { - "lastModified": 1677669066, - "narHash": "sha256-jz2uysaO9Fk3u5HtgMluoLJ1fan5E1Up0UbBnJnRwzQ=", - "owner": "Gerschtli", - "repo": "dwm", - "rev": "988270421149783f35426dc37ad02ee498f891a1", + "lastModified": 1710156081, + "narHash": "sha256-4PMY6aumJi5dLFjBzF5O4flKXmadMNq3AGUHKYfchh0=", + "owner": "numtide", + "repo": "devshell", + "rev": "bc68b058dc7e6d4d6befc4ec6c60082b6e844b7d", "type": "github" }, "original": { - "owner": "Gerschtli", - "repo": "dwm", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "dwm-status": { + "emacs-overlay": { "inputs": { - "naersk": "naersk", - "nixpkgs": [ - "nixpkgs" - ] + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_3", + "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1677658235, - "narHash": "sha256-bETnAR2WB2/+PXp2r6m+6UcEoSuCLBvxBWY5iKHB6MA=", - "owner": "Gerschtli", - "repo": "dwm-status", - "rev": "0173aa4d4040a98357a1672412a351329ced94ab", + "lastModified": 1706260016, + "narHash": "sha256-tNq/IZhAezmzxZvR53NA1TSp4YD9EJs4AsLecSKsAEw=", + "owner": "nix-community", + "repo": "emacs-overlay", + "rev": "babae500c2bca610eb38e17a1ef1bf0f70beb29e", "type": "github" }, "original": { - "owner": "Gerschtli", - "repo": "dwm-status", + "owner": "nix-community", + "repo": "emacs-overlay", + "rev": "babae500c2bca610eb38e17a1ef1bf0f70beb29e", "type": "github" } }, - "flake-utils": { + "emacs-overlay-cached": { + "inputs": { + "flake-utils": "flake-utils_3", + "nixpkgs": "nixpkgs_4", + "nixpkgs-stable": "nixpkgs-stable_3" + }, "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "lastModified": 1698082382, + "narHash": "sha256-Hyynbwt1dF7O35MRr9GGek6spPLXCPEiYGorRpBMECs=", + "owner": "nix-community", + "repo": "emacs-overlay", + "rev": "7fe510de8909d248df2d32d758303a325b3738f9", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "nix-community", + "repo": "emacs-overlay", + "rev": "7fe510de8909d248df2d32d758303a325b3738f9", "type": "github" } }, - "flake-utils_2": { + "faster-nvim": { + "flake": false, "locked": { - "lastModified": 1659877975, - "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "lastModified": 1708934046, + "narHash": "sha256-xECHUbZ91yZiyMNFQLbn8/WyiPIsFRiYhxGiXq+/iCg=", + "owner": "pteroctopus", + "repo": "faster.nvim", + "rev": "2047c01f4fb6ca314b922a1be457450a0592bb1a", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "pteroctopus", + "repo": "faster.nvim", "type": "github" } }, - "home-manager": { + "fenix": { "inputs": { "nixpkgs": [ - "cachix-deploy-flake", - "nixpkgs" + "unstable" ], - "utils": "utils" + "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1672688183, - "narHash": "sha256-3sNEWKTg3XXVDnvzVatdyetiUQWL+ibJ1YkvxSk3PuM=", + "lastModified": 1709274179, + "narHash": "sha256-O6EC6QELBLHzhdzBOJj0chx8AOcd4nDRECIagfT5Nd0=", "owner": "nix-community", - "repo": "home-manager", - "rev": "c1a830c8fabb13f95f51ecf48552f0a794d8718a", + "repo": "fenix", + "rev": "4be608f4f81d351aacca01b21ffd91028c23cc22", "type": "github" }, "original": { "owner": "nix-community", - "repo": "home-manager", + "repo": "fenix", "type": "github" } }, - "home-manager_2": { + "filetype.nvim": { + "flake": false, + "locked": { + "lastModified": 1654194633, + "narHash": "sha256-B+VvgQj8akiKe+MX/dV2/mdaaqF8s2INW3phdPJ5TFA=", + "type": "tarball", + "url": "https://github.com/nathom/filetype.nvim/archive/b522628a45a17d58fc0073ffd64f9dc9530a8027.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/nathom/filetype.nvim/archive/b522628a45a17d58fc0073ffd64f9dc9530a8027.tar.gz" + } + }, + "firefox": { "inputs": { - "nixpkgs": [ - "nixpkgs" - ], - "utils": "utils_2" + "cachix": "cachix", + "flake-compat": "flake-compat_2", + "lib-aggregate": "lib-aggregate", + "mozilla": "mozilla", + "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1677757546, - "narHash": "sha256-tA1ukoluctzLVyWRaKtD4KlTwgXbUsGB5vcyni1OJ9I=", + "lastModified": 1709298986, + "narHash": "sha256-9v+PpxJwHwqBGM0YpkwKtNSrPQpNz9Q3ynQ9YACiZqk=", "owner": "nix-community", - "repo": "home-manager", - "rev": "86bb69b0b1e10d99a30c4352f230f03106dd0f8a", + "repo": "flake-firefox-nightly", + "rev": "30a3e45091ab594394aa975e04f2a354816fe00c", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-22.11", - "repo": "home-manager", + "repo": "flake-firefox-nightly", "type": "github" } }, - "homeage": { + "firefox-addons": { "inputs": { + "flake-utils": "flake-utils_5", "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1669234151, - "narHash": "sha256-TwT87E3m2TZLgwYJESlype14HxUOrRGojPM5C2akrMg=", - "owner": "jordanisaacs", - "repo": "homeage", - "rev": "02bfe4ca06962d222e522fff0240c93946b20278", - "type": "github" + "dir": "pkgs/firefox-addons", + "lastModified": 1710302633, + "narHash": "sha256-nJUBUTSrDoMkPihWG2NgHJDNQZZrztlXewBOwuDARaY=", + "owner": "rycee", + "repo": "nur-expressions", + "rev": "2bd52deee7d17b5a0761fde87ed026c42458d7d1", + "type": "gitlab" }, "original": { - "owner": "jordanisaacs", - "repo": "homeage", - "type": "github" + "dir": "pkgs/firefox-addons", + "owner": "rycee", + "repo": "nur-expressions", + "type": "gitlab" } }, - "impermanence": { + "flake-compat": { + "flake": false, "locked": { - "lastModified": 1675359654, - "narHash": "sha256-FPxzuvJkcO49g4zkWLSeuZkln54bLoTtrggZDJBH90I=", - "owner": "nix-community", - "repo": "impermanence", - "rev": "6138eb8e737bffabd4c8fc78ae015d4fd6a7e2fd", + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "impermanence", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "naersk": { - "inputs": { - "nixpkgs": [ - "dwm-status", - "nixpkgs" - ] - }, + "flake-compat_10": { + "flake": false, "locked": { - "lastModified": 1653413650, - "narHash": "sha256-wojDHjb+eU80MPH+3HQaK0liUy8EgR95rvmCl24i58Y=", - "owner": "nmattia", - "repo": "naersk", - "rev": "69daaceebe12c070cd5ae69ba38f277bbf033695", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { - "owner": "nmattia", - "repo": "naersk", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "nix-formatter-pack": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ], - "nmd": "nmd", - "nmt": "nmt" + "flake-compat_11": { + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "revCount": 57, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz" }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" + } + }, + "flake-compat_12": { + "flake": false, "locked": { - "lastModified": 1677658287, - "narHash": "sha256-1Rfr2yqepXijgowPAToJbafCAqRFqtAAPR98bgqk4cc=", - "owner": "Gerschtli", - "repo": "nix-formatter-pack", - "rev": "712dc9d0b8adc86e83bd297d031a031e3c441937", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { - "owner": "Gerschtli", - "repo": "nix-formatter-pack", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "nix-formatter-pack_2": { - "inputs": { - "nixpkgs": [ - "nix-on-droid", - "nixpkgs" - ], - "nmd": "nmd_2", - "nmt": "nmt_2" - }, + "flake-compat_13": { + "flake": false, "locked": { - "lastModified": 1666720474, - "narHash": "sha256-iWojjDS1D19zpeZXbBdjWb9MiKmVVFQCqtJmtTXgPx8=", - "owner": "Gerschtli", - "repo": "nix-formatter-pack", - "rev": "14876cc8fe94a3d329964ecb073b4c988c7b61f5", + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "type": "github" }, "original": { - "owner": "Gerschtli", - "repo": "nix-formatter-pack", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "nix-index-database": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, + "flake-compat_2": { "locked": { - "lastModified": 1677382901, - "narHash": "sha256-2idFWlTVG+qUZkU2/W50amGSIxmN56igIkMAXKbv4S4=", - "owner": "Mic92", - "repo": "nix-index-database", - "rev": "4306fa7c12e098360439faac1a2e6b8e509ec97c", + "lastModified": 1688025799, + "narHash": "sha256-ktpB4dRtnksm9F5WawoIkEneh1nrEvuxb5lJFt1iOyw=", + "owner": "nix-community", + "repo": "flake-compat", + "rev": "8bf105319d44f6b9f0d764efa4fdef9f1cc9ba1c", "type": "github" }, "original": { - "owner": "Mic92", - "repo": "nix-index-database", + "owner": "nix-community", + "repo": "flake-compat", "type": "github" } }, - "nix-on-droid": { - "inputs": { - "home-manager": [ - "home-manager" - ], - "nix-formatter-pack": "nix-formatter-pack_2", - "nixpkgs": [ - "nixpkgs" - ], - "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap", - "nmd": "nmd_3" - }, + "flake-compat_3": { + "flake": false, "locked": { - "lastModified": 1670198918, - "narHash": "sha256-oNlUhAM0/a3pDdCMmBWA+CLrDAIYJqAAMyrDp8fNSM4=", - "owner": "t184256", - "repo": "nix-on-droid", - "rev": "b00cb5e7e2a47d85a019119069b153cda4002d0a", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { - "owner": "t184256", - "repo": "nix-on-droid", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "nixGL": { - "inputs": { - "flake-utils": "flake-utils_2", - "nixpkgs": [ - "nixpkgs" - ] - }, + "flake-compat_4": { + "flake": false, "locked": { - "lastModified": 1676383589, - "narHash": "sha256-KCkWZXCjH+C4Kn7fUGSrEl5btk+sERHhZueSsvVbPWc=", - "owner": "guibou", - "repo": "nixGL", - "rev": "c917918ab9ebeee27b0dd657263d3f57ba6bb8ad", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { - "owner": "guibou", - "repo": "nixGL", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "nixos-2211": { + "flake-compat_5": { + "flake": false, "locked": { - "lastModified": 1659446231, - "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "eabc38219184cc3e04a974fe31857d8e0eac098d", + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "release-21.11", - "repo": "nixpkgs", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "nixos-images": { - "inputs": { - "nixos-2211": "nixos-2211", - "nixos-unstable": "nixos-unstable" - }, + "flake-compat_6": { + "flake": false, "locked": { - "lastModified": 1671788592, - "narHash": "sha256-MFcGltfuAicQ5FUHYiBzRjy4YMmEOcbFSVEY1bK1Oho=", - "owner": "nix-community", - "repo": "nixos-images", - "rev": "b14097667f2a9889083d6401ba468b046b2b52f1", + "lastModified": 1627913399, + "narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "nixos-images", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "nixos-remote": { - "inputs": { - "disko": [ - "cachix-deploy-flake", - "disko" - ], - "nixos-images": "nixos-images", - "nixpkgs": [ - "cachix-deploy-flake", - "nixpkgs" - ] - }, + "flake-compat_7": { + "flake": false, "locked": { - "lastModified": 1672492099, - "narHash": "sha256-MnmOhBG8+hoLwd6M+AS61+s/dN7hzsfKx71Ja2uUFLk=", - "owner": "numtide", - "repo": "nixos-remote", - "rev": "a2e236b5825d5ec2c9179afc309f20a8bd3587ca", + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "type": "github" }, "original": { - "owner": "numtide", - "repo": "nixos-remote", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "nixos-unstable": { + "flake-compat_8": { + "flake": false, "locked": { - "lastModified": 1671565324, - "narHash": "sha256-FKnxM+07rV3HFNIOw3p1XaopZ3MkaxuHXNcZyYUJt2w=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "3c6d63d22ca8b57adc4120f7c1ea5262925c8c2d", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixos-unstable-small", - "repo": "nixpkgs", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "nixpkgs": { + "flake-compat_9": { + "flake": false, "locked": { - "lastModified": 1668650906, - "narHash": "sha256-JuiYfDO23O8oxUUOmhQflmOoJovyC5G4RjcYQMQjrRE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "3a86856a13c88c8c64ea32082a851fefc79aa700", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { - "id": "nixpkgs", - "type": "indirect" + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" } }, - "nixpkgs-22-05": { + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "unstable" + ] + }, "locked": { - "lastModified": 1669418739, - "narHash": "sha256-T86oFvcUIRwHWBWUt7WjaP4BP/3lDGbv5AppQSI1FkI=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "695b3515251873e0a7e2021add4bba643c56cde3", + "lastModified": 1706830856, + "narHash": "sha256-a0NYyp+h9hlb7ddVz4LUn1vT/PLwqfrWYcHMvFB1xYg=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "b253292d9c0a5ead9bc98c4e9a26c6312e27d69f", "type": "github" }, "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "695b3515251873e0a7e2021add4bba643c56cde3", + "owner": "hercules-ci", + "repo": "flake-parts", "type": "github" } }, - "nixpkgs-for-bootstrap": { + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "neovim-nightly-overlay", + "nixpkgs" + ] + }, "locked": { - "lastModified": 1669834992, - "narHash": "sha256-YnhZGHgb4C3Q7DSGisO/stc50jFb9F/MzHeKS4giotg=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "596a8e828c5dfa504f91918d0fa4152db3ab5502", + "lastModified": 1706830856, + "narHash": "sha256-a0NYyp+h9hlb7ddVz4LUn1vT/PLwqfrWYcHMvFB1xYg=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "b253292d9c0a5ead9bc98c4e9a26c6312e27d69f", "type": "github" }, "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "596a8e828c5dfa504f91918d0fa4152db3ab5502", + "owner": "hercules-ci", + "repo": "flake-parts", "type": "github" } }, - "nixpkgs_2": { + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": [ + "neovim-nightly-overlay", + "hercules-ci-effects", + "nixpkgs" + ] + }, "locked": { - "lastModified": 1672633908, - "narHash": "sha256-sP0BMp4DprVCBjcTYPsTPwkJMsc45vM0FxHdDx6qE8U=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a4379d2b0deefedc8dba360897557707ea9ee9a7", + "lastModified": 1701473968, + "narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5", "type": "github" }, "original": { - "id": "nixpkgs", + "id": "flake-parts", "type": "indirect" } }, - "nixpkgs_3": { + "flake-parts_4": { + "inputs": { + "nixpkgs-lib": [ + "nixvim", + "nixpkgs" + ] + }, "locked": { - "lastModified": 1677779205, - "narHash": "sha256-6DBjL9wjq86p2GczmwnHtFRnWPBPItc67gapWENBgX8=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "96e18717904dfedcd884541e5a92bf9ff632cf39", + "lastModified": 1709336216, + "narHash": "sha256-Dt/wOWeW6Sqm11Yh+2+t0dfEWxoMxGBvv3JpIocFl9E=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixos-22.11", - "repo": "nixpkgs", + "owner": "hercules-ci", + "repo": "flake-parts", "type": "github" } }, - "nmd": { - "flake": false, + "flake-parts_5": { + "inputs": { + "nixpkgs-lib": [ + "nixvim-config", + "nixvim", + "nixpkgs" + ] + }, "locked": { - "lastModified": 1666190571, - "narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=", - "owner": "rycee", - "repo": "nmd", - "rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169", + "lastModified": 1704982712, + "narHash": "sha256-2Ptt+9h8dczgle2Oo6z5ni5rt/uLMG47UFTR1ry/wgg=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "07f6395285469419cf9d078f59b5b49993198c00", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-registry": { + "flake": false, + "locked": { + "lastModified": 1705308826, + "narHash": "sha256-Z3xTYZ9EcRIqZAufZbci912MUKB0sD+qxi/KTGMFVwY=", + "owner": "NixOS", + "repo": "flake-registry", + "rev": "9c69f7bd2363e71fe5cd7f608113290c7614dcdd", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "flake-registry", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1685518550, + "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_10": { + "locked": { + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_11": { + "locked": { + "lastModified": 1629481132, + "narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "997f7efcb746a9c140ce1f13c72263189225f482", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_12": { + "locked": { + "lastModified": 1642700792, + "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_13": { + "inputs": { + "systems": "systems_10" + }, + "locked": { + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_14": { + "inputs": { + "systems": "systems_11" + }, + "locked": { + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_15": { + "inputs": { + "systems": "systems_12" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_16": { + "locked": { + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_17": { + "inputs": { + "systems": "systems_13" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_18": { + "inputs": { + "systems": "systems_14" + }, + "locked": { + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_19": { + "inputs": { + "systems": "systems_15" + }, + "locked": { + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1705309234, + "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_20": { + "inputs": { + "systems": "systems_16" + }, + "locked": { + "lastModified": 1705309234, + "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_21": { + "inputs": { + "systems": "systems_17" + }, + "locked": { + "lastModified": 1685518550, + "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_22": { + "inputs": { + "systems": "systems_18" + }, + "locked": { + "lastModified": 1709126324, + "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "d465f4819400de7c8d874d50b982301f28a84605", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_23": { + "inputs": { + "systems": "systems_19" + }, + "locked": { + "lastModified": 1681202837, + "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "cfacdce06f30d2b68473a46042957675eebb3401", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_24": { + "inputs": { + "systems": "systems_20" + }, + "locked": { + "lastModified": 1705309234, + "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { + "inputs": { + "systems": "systems_3" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_4": { + "inputs": { + "systems": "systems_4" + }, + "locked": { + "lastModified": 1709126324, + "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "d465f4819400de7c8d874d50b982301f28a84605", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_5": { + "locked": { + "lastModified": 1629284811, + "narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c5d161cc0af116a2e17f54316f0bf43f0819785c", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_6": { + "inputs": { + "systems": "systems_5" + }, + "locked": { + "lastModified": 1709126324, + "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "d465f4819400de7c8d874d50b982301f28a84605", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_7": { + "inputs": { + "systems": "systems_6" + }, + "locked": { + "lastModified": 1709126324, + "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "d465f4819400de7c8d874d50b982301f28a84605", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_8": { + "inputs": { + "systems": "systems_7" + }, + "locked": { + "lastModified": 1681202837, + "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "cfacdce06f30d2b68473a46042957675eebb3401", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_9": { + "inputs": { + "systems": [ + "google-chrome", + "systems" + ] + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flatpaks": { + "locked": { + "lastModified": 1699563939, + "narHash": "sha256-2Z4IP5Vb7jDVaDrKMO1tzLvpfuBpgTk9kJ2Okurv7rc=", + "owner": "gmodena", + "repo": "nix-flatpak", + "rev": "df3ea9930422fb14bf00e857ff771ddb85aafba6", + "type": "github" + }, + "original": { + "owner": "gmodena", + "ref": "v0.1.0", + "repo": "nix-flatpak", + "type": "github" + } + }, + "fsread-nvim": { + "flake": false, + "locked": { + "lastModified": 1676854047, + "narHash": "sha256-CsyBn8iAx5m1rhHW+HfbUSbtyTCaSG6/mgyrh+5KOqo=", + "owner": "nullchilly", + "repo": "fsread.nvim", + "rev": "a637bf048f733def7c5c46f5bf482f93a8311b29", + "type": "github" + }, + "original": { + "owner": "nullchilly", + "repo": "fsread.nvim", + "type": "github" + } + }, + "garbage-day.nvim": { + "flake": false, + "locked": { + "lastModified": 1701698407, + "narHash": "sha256-N4AoC6JMt91MDbLVd19uQ4zI5ABTpiLTYftwX9yueiY=", + "owner": "Zeioth", + "repo": "garbage-day.nvim", + "rev": "957499b8a493974bd7002b68b1f15f7d285e0dd1", + "type": "github" + }, + "original": { + "owner": "Zeioth", + "repo": "garbage-day.nvim", + "type": "github" + } + }, + "ghc-nixpkgs-unstable": { + "locked": { + "lastModified": 1696599365, + "narHash": "sha256-Qy2e5VZRoLZ61ee7XmuaUOUgprW3AyE0uLyfohTPxMM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e1ee359d16a1886f0771cc433a00827da98d861c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e1ee359d16a1886f0771cc433a00827da98d861c", + "type": "github" + } + }, + "ghc-wasm-meta": { + "inputs": { + "flake-utils": "flake-utils_7", + "nixpkgs": "nixpkgs_6" + }, + "locked": { + "host": "gitlab.haskell.org", + "lastModified": 1710140452, + "narHash": "sha256-HxyaSp2E4GENg2wjV6dXQzZRhSSEPL1SYGQZV+VBgKI=", + "owner": "ghc", + "repo": "ghc-wasm-meta", + "rev": "f600684166791a4b40d56247b780e0aa6f818aef", + "type": "gitlab" + }, + "original": { + "host": "gitlab.haskell.org", + "owner": "ghc", + "ref": "master", + "repo": "ghc-wasm-meta", + "type": "gitlab" + } + }, + "ghciwatch": { + "inputs": { + "advisory-db": "advisory-db", + "crane": "crane", + "flake-compat": "flake-compat_4", + "nixpkgs": "nixpkgs_7", + "rust-overlay": "rust-overlay", + "systems": "systems_8" + }, + "locked": { + "lastModified": 1709318413, + "narHash": "sha256-3XgijuXrSLUDIFhj6nM5GZ381/qut2xKdj6D1L3q2ds=", + "owner": "MercuryTechnologies", + "repo": "ghciwatch", + "rev": "0482ce2b9e19eee796f511255b1c63c820bc52a8", + "type": "github" + }, + "original": { + "owner": "MercuryTechnologies", + "repo": "ghciwatch", + "type": "github" + } + }, + "git-issue": { + "flake": false, + "locked": { + "lastModified": 1674927719, + "narHash": "sha256-X9N28nJcDqHNMsnJZoxud9k2QjMJihqLH232vSVHvUo=", + "owner": "dspinellis", + "repo": "git-issue", + "rev": "4d2bc4173bf803d74bf2ae54f892bd08754f1b48", + "type": "github" + }, + "original": { + "owner": "dspinellis", + "repo": "git-issue", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "devenv", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1660459072, + "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_2": { + "flake": false, + "locked": { + "lastModified": 1611672876, + "narHash": "sha256-qHu3uZ/o9jBHiA3MEKHJ06k7w4heOhA+4HCSIvflRxo=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "211907489e9f198594c0eb0ca9256a1949c9d412", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_3": { + "inputs": { + "nixpkgs": [ + "jupyenv", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1660459072, + "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_4": { + "inputs": { + "nixpkgs": [ + "nixvim", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1703887061, + "narHash": "sha256-gGPa9qWNc6eCXT/+Z5/zMkyYOuRZqeFZBDbopNZQkuY=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "43e1aa1308018f37118e34d3a9cb4f5e75dc11d5", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_5": { + "inputs": { + "nixpkgs": [ + "nixvim-config", + "nixvim", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1660459072, + "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "google-chrome": { + "inputs": { + "flake-utils": "flake-utils_9", + "nixpkgs": "nixpkgs_8", + "systems": "systems_9" + }, + "locked": { + "lastModified": 1709234549, + "narHash": "sha256-uLCovTIrhVwVL1VZJF5yEGsmyPUk1FutMLvTi6+Zepc=", + "owner": "r-k-b", + "repo": "browser-previews", + "rev": "19bf622d478d35a9f27077050a9701e1262c21d9", + "type": "github" + }, + "original": { + "owner": "r-k-b", + "repo": "browser-previews", + "type": "github" + } + }, + "hercules-ci-effects": { + "inputs": { + "flake-parts": "flake-parts_3", + "nixpkgs": [ + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1708547820, + "narHash": "sha256-xU/KC1PWqq5zL9dQ9wYhcdgxAwdeF/dJCLPH3PNZEBg=", + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "rev": "0ca27bd58e4d5be3135a4bef66b582e57abe8f4a", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "type": "github" + } + }, + "hledger-bin": { + "flake": false, + "locked": { + "dir": "bin", + "lastModified": 1709319837, + "narHash": "sha256-o8e4tzyjS76xOutZD0Px5HX1VTpsypist3KMPvF7hxw=", + "owner": "simonmichael", + "repo": "hledger", + "rev": "c24054455f4aec5a19b76bbf22a2caf0d905221e", + "type": "github" + }, + "original": { + "dir": "bin", + "owner": "simonmichael", + "repo": "hledger", + "type": "github" + } + }, + "hledger-completion.bash": { + "flake": false, + "locked": { + "dir": "hledger/shell-completion", + "lastModified": 1709319837, + "narHash": "sha256-o8e4tzyjS76xOutZD0Px5HX1VTpsypist3KMPvF7hxw=", + "owner": "simonmichael", + "repo": "hledger", + "rev": "c24054455f4aec5a19b76bbf22a2caf0d905221e", + "type": "github" + }, + "original": { + "dir": "hledger/shell-completion", + "owner": "simonmichael", + "repo": "hledger", + "type": "github" + } + }, + "hls": { + "inputs": { + "flake-compat": "flake-compat_6", + "flake-utils": "flake-utils_11", + "gitignore": "gitignore_2", + "nixpkgs": "nixpkgs_9", + "pre-commit-hooks": "pre-commit-hooks_2" + }, + "locked": { + "lastModified": 1637213318, + "narHash": "sha256-ZgxPwV7t4DyGYP7aXoetq+JHtd73XlOV2fYSflQmOXw=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "311107eabbf0537e0c192b2c377d282505b4eff1", + "type": "github" + }, + "original": { + "owner": "haskell", + "repo": "haskell-language-server", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1706981411, + "narHash": "sha256-cLbLPTL1CDmETVh4p0nQtvoF+FSEjsnJTFpTxhXywhQ=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "652fda4ca6dafeb090943422c34ae9145787af37", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-23.11", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager-2211": { + "inputs": { + "nixpkgs": [ + "nixos-2211" + ], + "utils": "utils" + }, + "locked": { + "lastModified": 1685325875, + "narHash": "sha256-tevlLIMPeVNNYPd9UgjHApAUoFAnw9iohqUyj+LPp88=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "b372d7f8d5518aaba8a4058a453957460481afbc", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-22.11", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager-latest": { + "inputs": { + "nixpkgs": [ + "latest" + ] + }, + "locked": { + "lastModified": 1710820906, + "narHash": "sha256-2bNMraoRB4pdw/HtxgYTFeMhEekBZeQ53/a8xkqpbZc=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "022464438a85450abb23d93b91aa82e0addd71fb", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1710062421, + "narHash": "sha256-FiCNRfyUgJOLYIokLiFsfI7B+Zn9HDnOzFR3uVr5qsQ=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "36f873dfc8e2b6b89936ff3e2b74803d50447e0a", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_3": { + "inputs": { + "nixpkgs": [ + "nixvim-config", + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1705104164, + "narHash": "sha256-pllCu3Hcm1wP/B0SUxgUXvHeEd4w8s2aVrEQRdIL1yo=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "0912d26b30332ae6a90e1b321ff88e80492127dd", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "ihaskell": { + "inputs": { + "flake-compat": [ + "jupyenv", + "flake-compat" + ], + "flake-utils": [ + "jupyenv", + "flake-utils" + ], + "hls": "hls", + "nixpkgs": [ + "jupyenv", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1671426600, + "narHash": "sha256-MahAFyp6AxY0H61U6zqJXM1NsckNNkK6iqONEtOPSK0=", + "owner": "ihaskell", + "repo": "ihaskell", + "rev": "1c22a874ac0c8ed019229f4a0cd5a0bfda017357", + "type": "github" + }, + "original": { + "owner": "ihaskell", + "repo": "ihaskell", + "type": "github" + } + }, + "impermanence": { + "locked": { + "lastModified": 1708968331, + "narHash": "sha256-VUXLaPusCBvwM3zhGbRIJVeYluh2uWuqtj4WirQ1L9Y=", + "owner": "nix-community", + "repo": "impermanence", + "rev": "a33ef102a02ce77d3e39c25197664b7a636f9c30", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "impermanence", + "type": "github" + } + }, + "jupyenv": { + "inputs": { + "flake-compat": "flake-compat_5", + "flake-utils": "flake-utils_10", + "ihaskell": "ihaskell", + "nix-dart": "nix-dart", + "nixpkgs": "nixpkgs_10", + "nixpkgs-stable": "nixpkgs-stable_4", + "npmlock2nix": "npmlock2nix", + "opam-nix": "opam-nix", + "poetry2nix": "poetry2nix", + "pre-commit-hooks": "pre-commit-hooks_3", + "rust-overlay": "rust-overlay_2" + }, + "locked": { + "lastModified": 1684225403, + "narHash": "sha256-8OYnupVWa2yZPQ2dEHIMfxLYrXAKCoDa8B3DL5dhSGE=", + "owner": "573", + "repo": "jupyenv-aarch64-experimental", + "rev": "43a8d8d65e88a689e917b6aefc179e82f0221a1d", + "type": "github" + }, + "original": { + "owner": "573", + "repo": "jupyenv-aarch64-experimental", + "type": "github" + } + }, + "latest": { + "locked": { + "lastModified": 1710851866, + "narHash": "sha256-nmVi5qKl/1mKU0HDGVniy0ocE/5SrPmzamn5lHUisyE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4a9a5fab1c2db1ede39ab3877c597f8ff4cae247", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "type": "github" + } + }, + "lib-aggregate": { + "inputs": { + "flake-utils": "flake-utils_4", + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1709208631, + "narHash": "sha256-n+SCii/GQR3zjaZzjhGAjrQQlF+xjaGEjWdpDb4wJ3U=", + "owner": "nix-community", + "repo": "lib-aggregate", + "rev": "1f03ac8dc3a54f68f55d36b5e7fc65afc302a3d7", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "lib-aggregate", + "type": "github" + } + }, + "lowdown-src": { + "flake": false, + "locked": { + "lastModified": 1633514407, + "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", + "owner": "kristapsdz", + "repo": "lowdown", + "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "type": "github" + }, + "original": { + "owner": "kristapsdz", + "repo": "lowdown", + "type": "github" + } + }, + "mach-nix": { + "inputs": { + "flake-utils": "flake-utils_12", + "nixpkgs": [ + "unstable" + ], + "pypi-deps-db": [ + "pypi-deps-db" + ] + }, + "locked": { + "lastModified": 1705470643, + "narHash": "sha256-CqgkRcvOonJ2fL6542/ykZR3yL6qVLWy0pdyY5YKRlE=", + "owner": "DavHau", + "repo": "mach-nix", + "rev": "28f563aeb8c9e679a3f2b531c728573fce7a4594", + "type": "github" + }, + "original": { + "owner": "DavHau", + "repo": "mach-nix", + "type": "github" + } + }, + "mirage-opam-overlays": { + "flake": false, + "locked": { + "lastModified": 1661959605, + "narHash": "sha256-CPTuhYML3F4J58flfp3ZbMNhkRkVFKmBEYBZY5tnQwA=", + "owner": "dune-universe", + "repo": "mirage-opam-overlays", + "rev": "05f1c1823d891ce4d8adab91f5db3ac51d86dc0b", + "type": "github" + }, + "original": { + "owner": "dune-universe", + "repo": "mirage-opam-overlays", + "type": "github" + } + }, + "mistty": { + "flake": false, + "locked": { + "lastModified": 1700684951, + "narHash": "sha256-nn3e0CpO9QyG6eW926PmxzBKpO1hFNfx08kXUxrSZBQ=", + "owner": "szermatt", + "repo": "mistty", + "rev": "d51d6d995db42377d225169ec8ad200cbbfca401", + "type": "github" + }, + "original": { + "owner": "szermatt", + "repo": "mistty", + "type": "github" + } + }, + "mozilla": { + "flake": false, + "locked": { + "lastModified": 1704373101, + "narHash": "sha256-+gi59LRWRQmwROrmE1E2b3mtocwueCQqZ60CwLG+gbg=", + "owner": "mozilla", + "repo": "nixpkgs-mozilla", + "rev": "9b11a87c0cc54e308fa83aac5b4ee1816d5418a2", + "type": "github" + }, + "original": { + "owner": "mozilla", + "repo": "nixpkgs-mozilla", + "type": "github" + } + }, + "nano-emacs": { + "flake": false, + "locked": { + "lastModified": 1694425853, + "narHash": "sha256-LmPj48mNpo4aa5O8iZzlKJfa0L804E7vm+QU7/SEV4M=", + "owner": "rougier", + "repo": "nano-emacs", + "rev": "b8631088220dbbcd885ad1353bdc52b569655f85", + "type": "github" + }, + "original": { + "owner": "rougier", + "repo": "nano-emacs", + "type": "github" + } + }, + "neovim-flake": { + "inputs": { + "flake-utils": "flake-utils_13", + "nixpkgs": "nixpkgs_11" + }, + "locked": { + "dir": "contrib", + "lastModified": 1709314314, + "narHash": "sha256-yFQtn59VbOLc1zWJHWhEYWT7xi6Fwb4eOQ38Nfpg0FA=", + "owner": "neovim", + "repo": "neovim", + "rev": "b413f5d048ab8676d5a77d0f2b3c20587a270673", + "type": "github" + }, + "original": { + "dir": "contrib", + "owner": "neovim", + "repo": "neovim", + "type": "github" + } + }, + "neovim-flake_2": { + "inputs": { + "flake-utils": "flake-utils_14", + "nixpkgs": [ + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "dir": "contrib", + "lastModified": 1709244818, + "narHash": "sha256-dCwN7Z4t+pmGuH90Dff5h1qIm2Rh917cZX3GF/W5GYk=", + "owner": "neovim", + "repo": "neovim", + "rev": "5d4e1693cb415e8b76749e833e28f00f14630b87", + "type": "github" + }, + "original": { + "dir": "contrib", + "owner": "neovim", + "repo": "neovim", + "type": "github" + } + }, + "neovim-nightly-overlay": { + "inputs": { + "flake-compat": "flake-compat_8", + "flake-parts": "flake-parts_2", + "hercules-ci-effects": "hercules-ci-effects", + "neovim-flake": "neovim-flake_2", + "nixpkgs": "nixpkgs_12" + }, + "locked": { + "lastModified": 1709251411, + "narHash": "sha256-gqdsGpxOYeVKL20NkzXhO34j+/acwf6cPP3WyNawO2A=", + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "rev": "cc9a9e3382376958422b12170c7edd78087c7a98", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "type": "github" + } + }, + "nix": { + "inputs": { + "lowdown-src": "lowdown-src", + "nixpkgs": [ + "devenv", + "nixpkgs" + ], + "nixpkgs-regression": "nixpkgs-regression" + }, + "locked": { + "lastModified": 1676545802, + "narHash": "sha256-EK4rZ+Hd5hsvXnzSzk2ikhStJnD63odF7SzsQ8CuSPU=", + "owner": "domenkozar", + "repo": "nix", + "rev": "7c91803598ffbcfe4a55c44ac6d49b2cf07a527f", + "type": "github" + }, + "original": { + "owner": "domenkozar", + "ref": "relaxed-flakes", + "repo": "nix", + "type": "github" + } + }, + "nix-dart": { + "inputs": { + "flake-utils": [ + "jupyenv", + "flake-utils" + ], + "nixpkgs": [ + "jupyenv", + "nixpkgs" + ], + "pub2nix": "pub2nix" + }, + "locked": { + "lastModified": 1673740150, + "narHash": "sha256-JiZrr75JILHW7IaNW3MwpYn+084Q6/gnXScPR7Pozhs=", + "owner": "djacu", + "repo": "nix-dart", + "rev": "8ee4e1a5ec0cc6c1e15860c4733f741485e8231e", + "type": "github" + }, + "original": { + "owner": "djacu", + "repo": "nix-dart", + "type": "github" + } + }, + "nix-darwin": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709771483, + "narHash": "sha256-Hjzu9nCknHLQvhdaRFfCEprH0o15KcaNu1QDr3J88DI=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "550340062c16d7ef8c2cc20a3d2b97bcd3c6b6f6", + "type": "github" + }, + "original": { + "owner": "lnl7", + "repo": "nix-darwin", + "type": "github" + } + }, + "nix-darwin_2": { + "inputs": { + "nixpkgs": [ + "nixvim-config", + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1704277720, + "narHash": "sha256-meAKNgmh3goankLGWqqpw73pm9IvXjEENJloF0coskE=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "0dd382b70c351f528561f71a0a7df82c9d2be9a4", + "type": "github" + }, + "original": { + "owner": "lnl7", + "repo": "nix-darwin", + "type": "github" + } + }, + "nix-filter": { + "locked": { + "lastModified": 1705332318, + "narHash": "sha256-kcw1yFeJe9N4PjQji9ZeX47jg0p9A0DuU4djKvg1a7I=", + "owner": "numtide", + "repo": "nix-filter", + "rev": "3449dc925982ad46246cfc36469baf66e1b64f17", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "nix-filter", + "type": "github" + } + }, + "nix-formatter-pack": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "nmd": [ + "nmd" + ], + "nmt": "nmt" + }, + "locked": { + "lastModified": 1705252799, + "narHash": "sha256-HgSTREh7VoXjGgNDwKQUYcYo13rPkltW7IitHrTPA5c=", + "owner": "Gerschtli", + "repo": "nix-formatter-pack", + "rev": "2de39dedd79aab14c01b9e2934842051a160ffa5", + "type": "github" + }, + "original": { + "owner": "Gerschtli", + "repo": "nix-formatter-pack", + "type": "github" + } + }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "talon", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1693660503, + "narHash": "sha256-B/g2V4v6gjirFmy+I5mwB2bCYc0l3j5scVfwgl6WOl8=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "bd5bdbb52350e145c526108f4ef192eb8e554fa0", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-github-actions", + "type": "github" + } + }, + "nix-index-database": { + "inputs": { + "nixpkgs": "nixpkgs_13" + }, + "locked": { + "lastModified": 1708830466, + "narHash": "sha256-nGKe3Y1/jkLR2eh1aRSVBtKadMBNv8kOnB52UXqRy6A=", + "owner": "Mic92", + "repo": "nix-index-database", + "rev": "f070c7eeec3bde8c8c8baa9c02b6d3d5e114d73b", + "type": "github" + }, + "original": { + "owner": "Mic92", + "repo": "nix-index-database", + "type": "github" + } + }, + "nix-ld-rs": { + "inputs": { + "flake-compat": "flake-compat_9", + "flake-utils": "flake-utils_15", + "nixpkgs": "nixpkgs_14" + }, + "locked": { + "lastModified": 1699781621, + "narHash": "sha256-l8OMloSbDyjIb9yVeD10M7aK7qDCVMt3huBztihrbwM=", + "owner": "nix-community", + "repo": "nix-ld-rs", + "rev": "5806f307048a9ae9e3e88cc48006d4d0b2df4410", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-ld-rs", + "type": "github" + } + }, + "nix-on-droid": { + "inputs": { + "home-manager": [ + "home-manager" + ], + "nix-formatter-pack": [ + "nix-formatter-pack" + ], + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-docs": "nixpkgs-docs", + "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap", + "nmd": [ + "nmd" + ] + }, + "locked": { + "lastModified": 1709879753, + "narHash": "sha256-zEpy3eweBus/cW/oRMBINps6Bnlazpa7TadonwWibHA=", + "owner": "nix-community", + "repo": "nix-on-droid", + "rev": "7b3cc6e3f9919b2d23003cfafb60c146c3f45793", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-23.11", + "repo": "nix-on-droid", + "type": "github" + } + }, + "nixGL": { + "inputs": { + "flake-utils": "flake-utils_16", + "nixpkgs": "nixpkgs_15" + }, + "locked": { + "lastModified": 1685908677, + "narHash": "sha256-E4zUPEUFyVWjVm45zICaHRpfGepfkE9Z2OECV9HXfA4=", + "owner": "guibou", + "repo": "nixGL", + "rev": "489d6b095ab9d289fe11af0219a9ff00fe87c7c5", + "type": "github" + }, + "original": { + "owner": "guibou", + "repo": "nixGL", + "type": "github" + } + }, + "nixd": { + "inputs": { + "flake-parts": [ + "flake-parts" + ], + "nixpkgs": [ + "unstable" + ] + }, + "locked": { + "lastModified": 1710142672, + "narHash": "sha256-MRClVDHMGXglXpSR+RflwnrY/ngePqrxOwiwoh5/BtU=", + "owner": "nix-community", + "repo": "nixd", + "rev": "eb40e5b315fafa1086f69be84918bbd9235e0a10", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixd", + "type": "github" + } + }, + "nixos-2211": { + "locked": { + "lastModified": 1688392541, + "narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-22.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixos-2211-small": { + "locked": { + "lastModified": 1688392541, + "narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-22.11-small", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixos-2305": { + "locked": { + "lastModified": 1704290814, + "narHash": "sha256-LWvKHp7kGxk/GEtlrGYV68qIvPHkU9iToomNFGagixU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "70bdadeb94ffc8806c0570eb5c2695ad29f0e421", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixos-wsl": { + "inputs": { + "flake-compat": [ + "flake-compat" + ], + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709211223, + "narHash": "sha256-1cjd+yXbTlnCwNwEDjn289rJ2f0er5M8pOig4PxniEM=", + "owner": "nix-community", + "repo": "nixos-wsl", + "rev": "3257ad7f173b0314c8a42fec450fa6556495b97c", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixos-wsl", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1703013332, + "narHash": "sha256-+tFNwMvlXLbJZXiMHqYq77z/RfmpfpiI3yjL6o/Zo9M=", + "rev": "54aac082a4d9bb5bbc5c4e899603abfb76a3f6d6", + "revCount": 561409, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.561409%2Brev-54aac082a4d9bb5bbc5c4e899603abfb76a3f6d6/018c8732-ea5c-725f-a6c9-9ed48683aa5a/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/NixOS/nixpkgs/0.1.%2A.tar.gz" + } + }, + "nixpkgs-docs": { + "locked": { + "lastModified": 1705957679, + "narHash": "sha256-Q8LJaVZGJ9wo33wBafvZSzapYsjOaNjP/pOnSiKVGHY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9a333eaa80901efe01df07eade2c16d183761fa3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "release-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-for-bootstrap": { + "locked": { + "lastModified": 1708105575, + "narHash": "sha256-sS4AItZeUnAei6v8FqxNlm+/27MPlfoGym/TZP0rmH0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1d1817869c47682a6bee85b5b0a6537b6c0fba26", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1d1817869c47682a6bee85b5b0a6537b6c0fba26", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1708821942, + "narHash": "sha256-jd+E1SD59qty65pwqad2mftzkT6vW5nNFWVuvayh4Zw=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "479831ed8b3c9c7b80533999f880c7d0bf6a491b", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixpkgs-regression": { + "locked": { + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + } + }, + "nixpkgs-ruby": { + "inputs": { + "flake-compat": "flake-compat_10", + "flake-utils": "flake-utils_17", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1707284445, + "narHash": "sha256-KuhA6LxG47kai+WSwQFYldmeHqDlIt36H93f8Y1pPyk=", + "owner": "bobvanderlinden", + "repo": "nixpkgs-ruby", + "rev": "8e48e2fdd7791a73dcd5f5e20a58feef65a1cbd9", + "type": "github" + }, + "original": { + "owner": "bobvanderlinden", + "repo": "nixpkgs-ruby", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1685801374, + "narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c37ca420157f4abc31e26f436c1145f8951ff373", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_2": { + "locked": { + "lastModified": 1706098335, + "narHash": "sha256-r3dWjT8P9/Ah5m5ul4WqIWD8muj5F+/gbCdjiNVBKmU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a77ab169a83a4175169d78684ddd2e54486ac651", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_3": { + "locked": { + "lastModified": 1697851979, + "narHash": "sha256-lJ8k4qkkwdvi+t/Xc6Fn74kUuobpu9ynPGxNZR6OwoA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5550a85a087c04ddcace7f892b0bdc9d8bb080c8", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_4": { + "locked": { + "lastModified": 1672580127, + "narHash": "sha256-3lW3xZslREhJogoOkjeZtlBtvFMyxHku7I/9IVehhT8=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "0874168639713f547c05947c76124f78441ea46c", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-22.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_5": { + "locked": { + "lastModified": 1673800717, + "narHash": "sha256-SFHraUqLSu5cC6IxTprex/nTsI81ZQAtDvlBvGDWfnA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "2f9fd351ec37f5d479556cd48be4ca340da59b8f", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-22.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_10": { + "locked": { + "lastModified": 1673796341, + "narHash": "sha256-1kZi9OkukpNmOaPY7S5/+SlCDOuYnP3HkXHvNDyLQcc=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "6dccdc458512abce8d19f74195bb20fdb067df50", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_11": { + "locked": { + "lastModified": 1703013332, + "narHash": "sha256-+tFNwMvlXLbJZXiMHqYq77z/RfmpfpiI3yjL6o/Zo9M=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "54aac082a4d9bb5bbc5c4e899603abfb76a3f6d6", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_12": { + "locked": { + "lastModified": 1709200309, + "narHash": "sha256-lKdtMbhnBNU1lr978T+wEYet3sfIXXgyiDZNEgx8CV8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ebe6e807793e7c9cc59cf81225fdee1a03413811", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_13": { + "locked": { + "lastModified": 1708655239, + "narHash": "sha256-ZrP/yACUvDB+zbqYJsln4iwotbH6CTZiTkANJ0AgDv4=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "cbc4211f0afffe6dfd2478a62615dd5175a13f9a", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_14": { + "locked": { + "lastModified": 1699099776, + "narHash": "sha256-X09iKJ27mGsGambGfkKzqvw5esP1L/Rf8H3u3fCqIiU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "85f1ba3e51676fa8cc604a3d863d729026a6b8eb", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_15": { + "locked": { + "lastModified": 1660551188, + "narHash": "sha256-a1LARMMYQ8DPx1BgoI/UN4bXe12hhZkCNqdxNi6uS0g=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "441dc5d512153039f19ef198e662e4f3dbb9fd65", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_16": { + "locked": { + "lastModified": 1710695816, + "narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "614b4613980a522ba49f0d194531beddbb7220d3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_17": { + "locked": { + "lastModified": 1709961763, + "narHash": "sha256-6H95HGJHhEZtyYA3rIQpvamMKAGoa8Yh2rFV29QnuGw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "3030f185ba6a4bf4f18b87f345f104e6a6961f34", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_18": { + "locked": { + "lastModified": 1705697961, + "narHash": "sha256-XepT3WS516evSFYkme3GrcI3+7uwXHqtHbip+t24J7E=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e5d1c87f5813afde2dda384ac807c57a105721cc", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_19": { + "locked": { + "lastModified": 1704722960, + "narHash": "sha256-mKGJ3sPsT6//s+Knglai5YflJUF2DGj7Ai6Ynopz0kI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "317484b1ead87b9c1b8ac5261a8d2dd748a0492d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1678875422, + "narHash": "sha256-T3o6NcQPwXjxJMn2shz86Chch4ljXgZn746c2caGxd8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "126f49a01de5b7e35a43fd43f891ecf6d3a51459", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_20": { + "locked": { + "lastModified": 1672428209, + "narHash": "sha256-eejhqkDz2cb2vc5VeaWphJz8UXNuoNoM8/Op8eWv2tQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "293a28df6d7ff3dec1e61e37cc4ee6e6c0fb0847", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_21": { + "locked": { + "lastModified": 1710272261, + "narHash": "sha256-g0bDwXFmTE7uGDOs9HcJsfLFhH7fOsASbAuOzDC+fhQ=", + "rev": "0ad13a6833440b8e238947e47bea7f11071dc2b2", + "revCount": 596105, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.596105%2Brev-0ad13a6833440b8e238947e47bea7f11071dc2b2/018e36a8-f6ad-749d-b12f-45cea2d52979/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/NixOS/nixpkgs/0.1.%2A.tar.gz" + } + }, + "nixpkgs_22": { + "locked": { + "lastModified": 1678875422, + "narHash": "sha256-T3o6NcQPwXjxJMn2shz86Chch4ljXgZn746c2caGxd8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "126f49a01de5b7e35a43fd43f891ecf6d3a51459", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_23": { + "locked": { + "lastModified": 1689261696, + "narHash": "sha256-LzfUtFs9MQRvIoQ3MfgSuipBVMXslMPH/vZ+nM40LkA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "df1eee2aa65052a18121ed4971081576b25d6b5c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_24": { + "locked": { + "lastModified": 1681358109, + "narHash": "sha256-eKyxW4OohHQx9Urxi7TQlFBTDWII+F+x2hklDOQPB50=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "96ba1c52e54e74c3197f4d43026b3f3d92e83ff9", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_25": { + "locked": { + "lastModified": 1706063522, + "narHash": "sha256-o1m9en7ovSjyktXgX3n/6GJEwG06WYa/9Mfx5hTTf5g=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "95c1439b205d507f3cb88aae76e02cd6a01ac504", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1705856552, + "narHash": "sha256-JXfnuEf5Yd6bhMs/uvM67/joxYKoysyE3M2k6T3eWbg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "612f97239e2cc474c13c9dafa0df378058c5ad8d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1697723726, + "narHash": "sha256-SaTWPkI8a5xSHX/rrKzUe+/uVNy6zCGMXgoeMb7T9rg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "7c9cc5a6e5d38010801741ac830a3f8fd667a7a0", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1709237383, + "narHash": "sha256-cy6ArO4k5qTx+l5o+0mL9f5fa86tYUX3ozE1S+Txlds=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "1536926ef5621b09bba54035ae2bb6d806d72ac8", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_6": { + "locked": { + "lastModified": 1709961763, + "narHash": "sha256-6H95HGJHhEZtyYA3rIQpvamMKAGoa8Yh2rFV29QnuGw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "3030f185ba6a4bf4f18b87f345f104e6a6961f34", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_7": { + "locked": { + "lastModified": 1704733241, + "narHash": "sha256-qsQ+Ab9GcBuFEs1Rqa8nF+481Di0cVqnM9pgNBy8uGo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c289413caa1848cfb651b460d477074c191a5b22", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_8": { + "locked": { + "lastModified": 1700794826, + "narHash": "sha256-RyJTnTNKhO0yqRpDISk03I/4A67/dp96YRxc86YOPgU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5a09cb4b393d58f9ed0d9ca1555016a8543c2ac8", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-unstable", + "type": "indirect" + } + }, + "nixpkgs_9": { + "locked": { + "lastModified": 1630887066, + "narHash": "sha256-0ecIlrLsNIIa+zrNmzXXmbMBLZlmHU/aWFsa4bq99Hk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5e47a07e9f2d7ed999f2c7943b0896f5f7321ca3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixvim": { + "inputs": { + "devshell": "devshell", + "flake-compat": "flake-compat_11", + "flake-parts": "flake-parts_4", + "home-manager": "home-manager_2", + "nix-darwin": "nix-darwin", + "nixpkgs": "nixpkgs_17", + "pre-commit-hooks": "pre-commit-hooks_4" + }, + "locked": { + "lastModified": 1710283972, + "narHash": "sha256-kkN0CJwykU4XoTDLHG68eEBXyp+GLTp7eJGDVrI7QIU=", + "owner": "nix-community", + "repo": "nixvim", + "rev": "c2cd3cb7a13c0677c49f46d55a8c65b50b7d9431", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixvim", + "type": "github" + } + }, + "nixvim-config": { + "inputs": { + "flake-utils": "flake-utils_20", + "nixpkgs": "nixpkgs_18", + "nixvim": "nixvim_2" + }, + "locked": { + "lastModified": 1706506332, + "narHash": "sha256-OlYSAbZJEAT0wAlH0PdO5d+7pQ0IqHmfOL0q+4vQ9bU=", + "owner": "MikaelFangel", + "repo": "nixvim-config", + "rev": "d1e8bf9a7e40b96e8b5305edb5192411433b66c8", + "type": "github" + }, + "original": { + "owner": "MikaelFangel", + "repo": "nixvim-config", + "type": "github" + } + }, + "nixvim_2": { + "inputs": { + "flake-parts": "flake-parts_5", + "home-manager": "home-manager_3", + "nix-darwin": "nix-darwin_2", + "nixpkgs": "nixpkgs_19", + "pre-commit-hooks": "pre-commit-hooks_5" + }, + "locked": { + "lastModified": 1705778871, + "narHash": "sha256-WWZzdIHqryR4fCmQehatmQ+S9hYQRH7nIxbvo4LiV6c=", + "owner": "nix-community", + "repo": "nixvim", + "rev": "06d97a1b4435ca2bc3d3bdb6a7646363034ce5a2", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixvim", + "type": "github" + } + }, + "nmd": { + "inputs": { + "nixpkgs": "nixpkgs_20", + "scss-reset": "scss-reset" + }, + "locked": { + "lastModified": 1705050560, + "narHash": "sha256-x3zzcdvhJpodsmdjqB4t5mkVW22V3wqHLOun0KRBzUI=", + "ref": "master", + "rev": "66d9334933119c36f91a78d565c152a4fdc8d3d3", + "revCount": 66, + "type": "git", + "url": "https://git.sr.ht/~rycee/nmd" + }, + "original": { + "ref": "master", + "type": "git", + "url": "https://git.sr.ht/~rycee/nmd" + } + }, + "nmt": { + "flake": false, + "locked": { + "lastModified": 1648075362, + "narHash": "sha256-u36WgzoA84dMVsGXzml4wZ5ckGgfnvS0ryzo/3zn/Pc=", + "owner": "rycee", + "repo": "nmt", + "rev": "d83601002c99b78c89ea80e5e6ba21addcfe12ae", + "type": "gitlab" + }, + "original": { + "owner": "rycee", + "repo": "nmt", "type": "gitlab" + } + }, + "npmlock2nix": { + "flake": false, + "locked": { + "lastModified": 1668989938, + "narHash": "sha256-/IxdS0AiqSN0/VEOLnnfHyi4nP17yPrkhGf6KlXVwrc=", + "owner": "nix-community", + "repo": "npmlock2nix", + "rev": "0ba0746d62974403daf717cded3f24c617622bc7", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "npmlock2nix", + "rev": "0ba0746d62974403daf717cded3f24c617622bc7", + "type": "github" + } + }, + "nvim-dd": { + "flake": false, + "locked": { + "lastModified": 1690128093, + "narHash": "sha256-FP3rXm/ZGqs3Wnuter6z7ib07ZDjq6I2cRuoAh0eERY=", + "owner": "yorickpeterse", + "repo": "nvim-dd", + "rev": "9c21ffeffbf0a99e5614f193455700f355d0951f", + "type": "github" + }, + "original": { + "owner": "yorickpeterse", + "repo": "nvim-dd", + "type": "github" + } + }, + "ocaml-dev-template": { + "inputs": { + "nixpkgs": "nixpkgs_21" + }, + "locked": { + "dir": "ocaml", + "lastModified": 1705594595, + "narHash": "sha256-+SwdK58ngm9RR7W6e1Zfrm0P8q0pnkjRZTiykrOCEoI=", + "owner": "the-nix-way", + "repo": "dev-templates", + "rev": "cb94157e1a3b24df4d939238265592fcdf0c6c18", + "type": "github" + }, + "original": { + "dir": "ocaml", + "owner": "the-nix-way", + "repo": "dev-templates", + "type": "github" + } + }, + "ocaml-overlay": { + "inputs": { + "flake-utils": "flake-utils_22", + "nixpkgs": [ + "latest" + ] + }, + "locked": { + "lastModified": 1709271765, + "narHash": "sha256-bnQrxS5negk0ENUK3fBqpyrKMEt+V1BrxRCLsU8u3nE=", + "owner": "nix-ocaml", + "repo": "nix-overlays", + "rev": "b6fd78db5cad48764137429503b5e2000916cdaf", + "type": "github" + }, + "original": { + "owner": "nix-ocaml", + "repo": "nix-overlays", + "type": "github" + } + }, + "opam-nix": { + "inputs": { + "flake-compat": [ + "jupyenv", + "flake-compat" + ], + "flake-utils": [ + "jupyenv", + "flake-utils" + ], + "mirage-opam-overlays": "mirage-opam-overlays", + "nixpkgs": [ + "jupyenv", + "nixpkgs" + ], + "opam-overlays": "opam-overlays", + "opam-repository": "opam-repository", + "opam2json": "opam2json" + }, + "locked": { + "lastModified": 1669990974, + "narHash": "sha256-wHhdlDUC/tBDVFBemeJPpqdIRdehKKbxbdMP0QjOhM4=", + "owner": "tweag", + "repo": "opam-nix", + "rev": "75199758e1954f78286e7e79c0e3916e28b732b0", + "type": "github" + }, + "original": { + "owner": "tweag", + "repo": "opam-nix", + "rev": "75199758e1954f78286e7e79c0e3916e28b732b0", + "type": "github" + } + }, + "opam-overlays": { + "flake": false, + "locked": { + "lastModified": 1654162756, + "narHash": "sha256-RV68fUK+O3zTx61iiHIoS0LvIk0E4voMp+0SwRg6G6c=", + "owner": "dune-universe", + "repo": "opam-overlays", + "rev": "c8f6ef0fc5272f254df4a971a47de7848cc1c8a4", + "type": "github" + }, + "original": { + "owner": "dune-universe", + "repo": "opam-overlays", + "type": "github" + } + }, + "opam-repository": { + "flake": false, + "locked": { + "lastModified": 1661161626, + "narHash": "sha256-J3P+mXLwE2oEKTlMnx8sYRxwD/uNGSKM0AkAB7BNTxA=", + "owner": "ocaml", + "repo": "opam-repository", + "rev": "54e69ff0949a3aaec0d5e3d67898bb7f279ab09f", + "type": "github" + }, + "original": { + "owner": "ocaml", + "repo": "opam-repository", + "type": "github" + } + }, + "opam2json": { + "inputs": { + "nixpkgs": [ + "jupyenv", + "opam-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1665671715, + "narHash": "sha256-7f75C6fIkiLzfkwLpJxlQIKf+YORGsXGV8Dr2LDDi+A=", + "owner": "tweag", + "repo": "opam2json", + "rev": "32fa2dcd993a27f9e75ee46fb8b78a7cd5d05113", + "type": "github" + }, + "original": { + "owner": "tweag", + "repo": "opam2json", + "type": "github" + } + }, + "org-novelist": { + "flake": false, + "locked": { + "lastModified": 1683800413, + "narHash": "sha256-+wMy4xbFHm/VBD186NijNVH0pvmzvir0SHGxWcU7EW8=", + "owner": "sympodius", + "repo": "org-novelist", + "rev": "d1ef9672bd0e59f97ca0e8cdf27f44cd44ea4a4b", + "type": "github" + }, + "original": { + "owner": "sympodius", + "repo": "org-novelist", + "type": "github" + } + }, + "poetry2nix": { + "inputs": { + "flake-utils": [ + "jupyenv", + "flake-utils" + ], + "nixpkgs": [ + "jupyenv", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1673926875, + "narHash": "sha256-QOsT76Al0Igpo0u5vtQJuDSOxrocX3sTD523pLPEklc=", + "owner": "nix-community", + "repo": "poetry2nix", + "rev": "a5c454a834cd290dd4d33102ab8b4aa37d850e65", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "poetry2nix", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": [ + "devenv", + "flake-compat" + ], + "flake-utils": "flake-utils", + "gitignore": "gitignore", + "nixpkgs": [ + "devenv", + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1704725188, + "narHash": "sha256-qq8NbkhRZF1vVYQFt1s8Mbgo8knj+83+QlL5LBnYGpI=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "ea96f0c05924341c551a797aaba8126334c505d2", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "pre-commit-hooks_2": { + "inputs": { + "flake-utils": [ + "jupyenv", + "ihaskell", + "hls", + "flake-utils" + ], + "nixpkgs": [ + "jupyenv", + "ihaskell", + "hls", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1624971177, + "narHash": "sha256-Amf/nBj1E77RmbSSmV+hg6YOpR+rddCbbVgo5C7BS0I=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "397f0713d007250a2c7a745e555fa16c5dc8cadb", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "pre-commit-hooks_3": { + "inputs": { + "flake-compat": "flake-compat_7", + "flake-utils": [ + "jupyenv", + "flake-utils" + ], + "gitignore": "gitignore_3", + "nixpkgs": [ + "jupyenv", + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable_5" + }, + "locked": { + "lastModified": 1674075316, + "narHash": "sha256-0uZuAcYBpNJLxr7n5O0vhwn3rSLpUTm9M5WGgmNQ+wM=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "3e42a77571cc0463efa470dbcffa063977a521ab", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "pre-commit-hooks_4": { + "inputs": { + "flake-compat": "flake-compat_12", + "flake-utils": "flake-utils_19", + "gitignore": "gitignore_4", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ], + "nixpkgs-stable": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1708018599, + "narHash": "sha256-M+Ng6+SePmA8g06CmUZWi1AjG2tFBX9WCXElBHEKnyM=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "5df5a70ad7575f6601d91f0efec95dd9bc619431", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "pre-commit-hooks_5": { + "inputs": { + "flake-compat": "flake-compat_13", + "flake-utils": "flake-utils_21", + "gitignore": "gitignore_5", + "nixpkgs": [ + "nixvim-config", + "nixvim", + "nixpkgs" + ], + "nixpkgs-stable": [ + "nixvim-config", + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1705072518, + "narHash": "sha256-90dERRuG781f0EWjn2AOtScZqsTcpIFLpY8TN2VbkL8=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "274ae3979a0eacae422e1bbcf63b8b7a335e1114", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "pub2nix": { + "flake": false, + "locked": { + "lastModified": 1594192744, + "narHash": "sha256-pDvcXSG1Mh2BpwkqAcNDJzcupV3pIAAtZJLfkiHMAz4=", + "owner": "paulyoung", + "repo": "pub2nix", + "rev": "0c7ecca590fcd1616db8c6468f799ffef36c85e9", + "type": "github" + }, + "original": { + "owner": "paulyoung", + "repo": "pub2nix", + "type": "github" + } + }, + "pypi-deps-db": { + "flake": false, + "locked": { + "lastModified": 1699338846, + "narHash": "sha256-RhdhdtRRZcRzxCduxQf79d2tE+qhjtlanx7CcAmMhrM=", + "owner": "DavHau", + "repo": "pypi-deps-db", + "rev": "e72a0d5d535bde034717a175c8228c237b18449c", + "type": "github" + }, + "original": { + "owner": "DavHau", + "repo": "pypi-deps-db", + "type": "github" + } + }, + "root": { + "inputs": { + "action-hints.nvim": "action-hints.nvim", + "bundix": "bundix", + "clojure-dev-template": "clojure-dev-template", + "deadcolumn-nvim": "deadcolumn-nvim", + "deferred-clipboard.nvim": "deferred-clipboard.nvim", + "devenv": "devenv", + "emacs-overlay": "emacs-overlay", + "emacs-overlay-cached": "emacs-overlay-cached", + "faster-nvim": "faster-nvim", + "fenix": "fenix", + "filetype.nvim": "filetype.nvim", + "firefox": "firefox", + "firefox-addons": "firefox-addons", + "flake-compat": "flake-compat_3", + "flake-parts": "flake-parts", + "flake-registry": "flake-registry", + "flake-utils": "flake-utils_6", + "flatpaks": "flatpaks", + "fsread-nvim": "fsread-nvim", + "garbage-day.nvim": "garbage-day.nvim", + "ghc-nixpkgs-unstable": "ghc-nixpkgs-unstable", + "ghc-wasm-meta": "ghc-wasm-meta", + "ghciwatch": "ghciwatch", + "git-issue": "git-issue", + "google-chrome": "google-chrome", + "hledger-bin": "hledger-bin", + "hledger-completion.bash": "hledger-completion.bash", + "home-manager": "home-manager", + "home-manager-2211": "home-manager-2211", + "home-manager-latest": "home-manager-latest", + "impermanence": "impermanence", + "jupyenv": "jupyenv", + "latest": "latest", + "mach-nix": "mach-nix", + "mistty": "mistty", + "nano-emacs": "nano-emacs", + "neovim-flake": "neovim-flake", + "neovim-nightly-overlay": "neovim-nightly-overlay", + "nix-filter": "nix-filter", + "nix-formatter-pack": "nix-formatter-pack", + "nix-index-database": "nix-index-database", + "nix-ld-rs": "nix-ld-rs", + "nix-on-droid": "nix-on-droid", + "nixGL": "nixGL", + "nixd": "nixd", + "nixos-2211": "nixos-2211", + "nixos-2211-small": "nixos-2211-small", + "nixos-2305": "nixos-2305", + "nixos-wsl": "nixos-wsl", + "nixpkgs": "nixpkgs_16", + "nixpkgs-ruby": "nixpkgs-ruby", + "nixvim": "nixvim", + "nixvim-config": "nixvim-config", + "nmd": "nmd", + "nvim-dd": "nvim-dd", + "ocaml-dev-template": "ocaml-dev-template", + "ocaml-overlay": "ocaml-overlay", + "org-novelist": "org-novelist", + "pypi-deps-db": "pypi-deps-db", + "ruby-nix": "ruby-nix", + "rust-dev-template": "rust-dev-template", + "rust-overlay": "rust-overlay_4", + "sane-defaults": "sane-defaults", + "sensible-defaults": "sensible-defaults", + "talon": "talon", + "unstable": "unstable", + "virtual-types.nvim": "virtual-types.nvim", + "wsl-vpnkit": "wsl-vpnkit", + "yt-dlp": "yt-dlp", + "zig2nix": "zig2nix" + } + }, + "ruby-nix": { + "inputs": { + "nixpkgs": "nixpkgs_22" + }, + "locked": { + "lastModified": 1705673100, + "narHash": "sha256-BL68W2/TihcpuYrE3v/2ezwzLsV90dnqOEZVlA0tSGI=", + "owner": "inscapist", + "repo": "ruby-nix", + "rev": "d893faada8607c04c92854c15dcae6feec264d4f", + "type": "github" + }, + "original": { + "owner": "inscapist", + "repo": "ruby-nix", + "type": "github" + } + }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1709219524, + "narHash": "sha256-8HHRXm4kYQLdUohNDUuCC3Rge7fXrtkjBUf0GERxrkM=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "9efa23c4dacee88b93540632eb3d88c5dfebfe17", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, + "rust-dev-template": { + "inputs": { + "nixpkgs": "nixpkgs_23", + "rust-overlay": "rust-overlay_3" + }, + "locked": { + "dir": "rust", + "lastModified": 1692727998, + "narHash": "sha256-ulLL1OrvPav2LvNJmzDViPuFGOIMDWdSpcpT7+vcXmE=", + "owner": "the-nix-way", + "repo": "dev-templates", + "rev": "1117b469aa83bef9e29616b7c67d80b14beb2c14", + "type": "github" + }, + "original": { + "dir": "rust", + "owner": "the-nix-way", + "repo": "dev-templates", + "rev": "1117b469aa83bef9e29616b7c67d80b14beb2c14", + "type": "github" + } + }, + "rust-overlay": { + "inputs": { + "flake-utils": "flake-utils_8", + "nixpkgs": [ + "ghciwatch", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1704680242, + "narHash": "sha256-5bD6iSPDgVTLly2gy2oJVwzuyuFZOz2p4qt8c8UoYIE=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "2037779e018ebc2d381001a891e2a793fce7a74f", + "type": "github" }, "original": { - "owner": "rycee", - "repo": "nmd", - "type": "gitlab" + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" } }, - "nmd_2": { - "flake": false, + "rust-overlay_2": { + "inputs": { + "flake-utils": [ + "jupyenv", + "flake-utils" + ], + "nixpkgs": [ + "jupyenv", + "nixpkgs" + ] + }, "locked": { - "lastModified": 1666190571, - "narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=", - "owner": "rycee", - "repo": "nmd", - "rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169", - "type": "gitlab" + "lastModified": 1674008920, + "narHash": "sha256-ugwPxKjvmJ5GpzN/MHg8tuhe8nYi3SbJm5nWNy7CB0Q=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "eecc44934a0f6c02c02856b38bd3b6af3bec0870", + "type": "github" }, "original": { - "owner": "rycee", - "repo": "nmd", - "type": "gitlab" + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_3": { + "inputs": { + "flake-utils": "flake-utils_23", + "nixpkgs": "nixpkgs_24" + }, + "locked": { + "lastModified": 1689302058, + "narHash": "sha256-yD74lcHTrw4niXcE9goJLbzsgyce48rQQoy5jK5ZK40=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "7b8dbbf4c67ed05a9bf3d9e658c12d4108bc24c8", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_4": { + "inputs": { + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "unstable" + ] + }, + "locked": { + "lastModified": 1709259239, + "narHash": "sha256-MbrpgqpvUND7+UnOSLazrAMj0+zle16RRiOKTtjBefw=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "0e031ddb3f5a339dc6eda93d271ae43618b14eec", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" } }, - "nmd_3": { + "sane-defaults": { "flake": false, "locked": { - "lastModified": 1666190571, - "narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=", - "owner": "rycee", - "repo": "nmd", - "rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169", - "type": "gitlab" + "narHash": "sha256-Jb6aBvtFInLphnMdLfP4PDQE3APTdWjLMSlnWaXKnk8=", + "type": "file", + "url": "https://raw.githubusercontent.com/magnars/.emacs.d/master/settings/sane-defaults.el" }, "original": { - "owner": "rycee", - "repo": "nmd", - "type": "gitlab" + "type": "file", + "url": "https://raw.githubusercontent.com/magnars/.emacs.d/master/settings/sane-defaults.el" } }, - "nmt": { + "scss-reset": { "flake": false, "locked": { - "lastModified": 1648075362, - "narHash": "sha256-u36WgzoA84dMVsGXzml4wZ5ckGgfnvS0ryzo/3zn/Pc=", - "owner": "rycee", - "repo": "nmt", - "rev": "d83601002c99b78c89ea80e5e6ba21addcfe12ae", - "type": "gitlab" + "lastModified": 1631450058, + "narHash": "sha256-muDlZJPtXDIGevSEWkicPP0HQ6VtucbkMNygpGlBEUM=", + "owner": "andreymatin", + "repo": "scss-reset", + "rev": "0cf50e27a4e95e9bb5b1715eedf9c54dee1a5a91", + "type": "github" }, "original": { - "owner": "rycee", - "repo": "nmt", - "type": "gitlab" + "owner": "andreymatin", + "repo": "scss-reset", + "type": "github" } }, - "nmt_2": { + "sensible-defaults": { "flake": false, "locked": { - "lastModified": 1648075362, - "narHash": "sha256-u36WgzoA84dMVsGXzml4wZ5ckGgfnvS0ryzo/3zn/Pc=", - "owner": "rycee", - "repo": "nmt", - "rev": "d83601002c99b78c89ea80e5e6ba21addcfe12ae", - "type": "gitlab" + "narHash": "sha256-iqukdbDFens1WGhTsNO3uLh8fpstxyFngUAj6IDkpB0=", + "type": "file", + "url": "https://raw.githubusercontent.com/hrs/sensible-defaults.el/main/sensible-defaults.el" }, "original": { - "owner": "rycee", - "repo": "nmt", - "type": "gitlab" + "type": "file", + "url": "https://raw.githubusercontent.com/hrs/sensible-defaults.el/main/sensible-defaults.el" } }, - "root": { - "inputs": { - "agenix": "agenix", - "agenix-cli": "agenix-cli", - "cachix-deploy-flake": "cachix-deploy-flake", - "dmenu": "dmenu", - "dwm": "dwm", - "dwm-status": "dwm-status", - "home-manager": "home-manager_2", - "homeage": "homeage", - "impermanence": "impermanence", - "nix-formatter-pack": "nix-formatter-pack", - "nix-index-database": "nix-index-database", - "nix-on-droid": "nix-on-droid", - "nixGL": "nixGL", - "nixpkgs": "nixpkgs_3", - "nixpkgs-22-05": "nixpkgs-22-05", - "teamspeak-update-notifier": "teamspeak-update-notifier", - "unstable": "unstable" + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_10": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_11": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_12": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_13": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_14": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_15": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_16": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_17": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_18": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_19": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_20": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_5": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" } }, - "teamspeak-update-notifier": { + "systems_6": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_7": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_8": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_9": { + "locked": { + "lastModified": 1680978846, + "narHash": "sha256-Gtqg8b/v49BFDpDetjclCYXm8mAnTrUzR0JnE2nv5aw=", + "owner": "nix-systems", + "repo": "x86_64-linux", + "rev": "2ecfcac5e15790ba6ce360ceccddb15ad16d08a8", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "x86_64-linux", + "type": "github" + } + }, + "talon": { "inputs": { + "nix-github-actions": "nix-github-actions", "nixpkgs": [ - "nixpkgs" + "unstable" ] }, "locked": { - "lastModified": 1669936391, - "narHash": "sha256-KjsRHh7QSeMingJJ+nAm9s2demBrWc6+Zxu4x/4rq1A=", - "owner": "Gerschtli", - "repo": "teamspeak-update-notifier", - "rev": "cf307b24bca2fe0b2a3199bc944e1050fa62d9b3", + "lastModified": 1701208467, + "narHash": "sha256-1xt+pieI5N1muLQ3NVuar9yl/YpkWX4/2+LPdhPC31Y=", + "owner": "nix-community", + "repo": "talon-nix", + "rev": "75a4a73b457ccbb44229dc9a5ec97c2ca46da065", "type": "github" }, "original": { - "owner": "Gerschtli", - "repo": "teamspeak-update-notifier", + "owner": "nix-community", + "repo": "talon-nix", "type": "github" } }, "unstable": { "locked": { - "lastModified": 1678237502, - "narHash": "sha256-J4cAbmC9RK+Jus3U88WaxkTsnNlZSroE2xZ9A0rSxL4=", + "lastModified": 1710827359, + "narHash": "sha256-/KY8hffTh9SN/tTcDn/FrEiYwTXnU8NKnr4D7/stmmA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1eeea1f1922fb79a36008ba744310ccbf96130e2", + "rev": "5710127d9693421e78cca4f74fac2db6d67162b1", "type": "github" }, "original": { @@ -733,18 +3766,68 @@ "type": "github" } }, - "utils_2": { + "virtual-types.nvim": { + "flake": false, "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "lastModified": 1636214935, + "narHash": "sha256-OuWtzwyMABsVwPVRaVUYRJ4Riiqc5iYyUAJ1u87nX/M=", + "type": "tarball", + "url": "https://github.com/jubnzv/virtual-types.nvim/archive/9ef9f31c58cc9deb914ee728b8bda8f217f9d1c7.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/jubnzv/virtual-types.nvim/archive/9ef9f31c58cc9deb914ee728b8bda8f217f9d1c7.tar.gz" + } + }, + "wsl-vpnkit": { + "flake": false, + "locked": { + "lastModified": 1700490839, + "narHash": "sha256-g9CmU6GgHETrf/SnWHNkicF6Wq1s8bkNyimoS3F1Ufs=", + "owner": "sakai135", + "repo": "wsl-vpnkit", + "rev": "6845578336b5bcc3484f23dce51c4f6ac37baba6", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "sakai135", + "repo": "wsl-vpnkit", + "rev": "6845578336b5bcc3484f23dce51c4f6ac37baba6", + "type": "github" + } + }, + "yt-dlp": { + "flake": false, + "locked": { + "lastModified": 1709247770, + "narHash": "sha256-tScIUuLvXNleWinQTDk9Rre1P8Xe2w/Rxtu0rEd+lOg=", + "owner": "yt-dlp", + "repo": "yt-dlp", + "rev": "413d3675804599bc8fe419c19e36490fd8f0b30f", + "type": "github" + }, + "original": { + "owner": "yt-dlp", + "repo": "yt-dlp", + "type": "github" + } + }, + "zig2nix": { + "inputs": { + "flake-utils": "flake-utils_24", + "nixpkgs": "nixpkgs_25" + }, + "locked": { + "lastModified": 1709219548, + "narHash": "sha256-UYkj1d/dR/+BCUf/+vsovpll/sca1pVxZaX9kwXbTEY=", + "owner": "Cloudef", + "repo": "zig2nix", + "rev": "890e518c1ea2e385ebe815dce14f02bcc3ef8a21", + "type": "github" + }, + "original": { + "owner": "Cloudef", + "repo": "zig2nix", "type": "github" } } diff --git a/flake.lock.bak b/flake.lock.bak new file mode 100644 index 00000000..f4562e2b --- /dev/null +++ b/flake.lock.bak @@ -0,0 +1,4167 @@ +{ + "nodes": { + "alejandra": { + "inputs": { + "fenix": "fenix", + "flakeCompat": "flakeCompat", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1694541876, + "narHash": "sha256-lStDIPizbJipd1JpNKX1olBKzyIosyC2U/mVFwJPcZE=", + "owner": "kamadorueda", + "repo": "alejandra", + "rev": "e53c2c6c6c103dc3f848dbd9fbd93ee7c69c109f", + "type": "github" + }, + "original": { + "owner": "kamadorueda", + "repo": "alejandra", + "type": "github" + } + }, + "autodocodec": { + "flake": false, + "locked": { + "lastModified": 1696603846, + "narHash": "sha256-GfcJ1T+4SQ+3T1Q4jO7xNcqn7Kvfp65MF19Un7K36yI=", + "owner": "NorfairKing", + "repo": "autodocodec", + "rev": "762eb76333e9812160733e377b973ff76fe45378", + "type": "github" + }, + "original": { + "owner": "NorfairKing", + "repo": "autodocodec", + "type": "github" + } + }, + "bundix": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1688825865, + "narHash": "sha256-7HP6amLkY3u2NvPguanIW/gugUvGsmY5OMY6tKpjMrA=", + "owner": "inscapist", + "repo": "bundix", + "rev": "5cb01869cb09fb367c02527b1f66707fb9277076", + "type": "github" + }, + "original": { + "owner": "inscapist", + "ref": "main", + "repo": "bundix", + "type": "github" + } + }, + "cachix": { + "locked": { + "lastModified": 1635350005, + "narHash": "sha256-tAMJnUwfaDEB2aa31jGcu7R7bzGELM9noc91L2PbVjg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "1c1f5649bb9c1b0d98637c8c365228f57126f361", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-20.09", + "repo": "nixpkgs", + "type": "github" + } + }, + "clojure-dev-template": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "dir": "clojure", + "lastModified": 1692727998, + "narHash": "sha256-ulLL1OrvPav2LvNJmzDViPuFGOIMDWdSpcpT7+vcXmE=", + "owner": "the-nix-way", + "repo": "dev-templates", + "rev": "1117b469aa83bef9e29616b7c67d80b14beb2c14", + "type": "github" + }, + "original": { + "dir": "clojure", + "owner": "the-nix-way", + "repo": "dev-templates", + "type": "github" + } + }, + "code_runner.nvim": { + "flake": false, + "locked": { + "lastModified": 1662055737, + "narHash": "sha256-oVkjS91FrHMu3JtR5yccJ6+dvRd/0xE4gMsfwGxJTwU=", + "type": "tarball", + "url": "https://github.com/CRAG666/code_runner.nvim/archive/7cdeb206520c5afb2bd7655da981a9bcdc3f43f8.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/CRAG666/code_runner.nvim/archive/7cdeb206520c5afb2bd7655da981a9bcdc3f43f8.tar.gz" + } + }, + "deferred-clipboard.nvim": { + "flake": false, + "locked": { + "lastModified": 1677685907, + "narHash": "sha256-nanNQEtpjv0YKEkkrPmq/5FPxq+Yj/19cs0Gf7YgKjU=", + "owner": "EtiamNullam", + "repo": "deferred-clipboard.nvim", + "rev": "810a29d166eaa41afc220cc7cd85eeaa3c43b37f", + "type": "github" + }, + "original": { + "owner": "EtiamNullam", + "repo": "deferred-clipboard.nvim", + "type": "github" + } + }, + "dekking": { + "flake": false, + "locked": { + "lastModified": 1694680694, + "narHash": "sha256-LON8AC76I28A7cyfuDwvX7/uMOKPNwkuS8Y/YyOXv2c=", + "owner": "NorfairKing", + "repo": "dekking", + "rev": "97875f0a6aa9ca659dfe3303d02dfdf94f56a36c", + "type": "github" + }, + "original": { + "owner": "NorfairKing", + "repo": "dekking", + "type": "github" + } + }, + "devenv": { + "inputs": { + "flake-compat": "flake-compat", + "nix": "nix", + "nixpkgs": "nixpkgs_3", + "pre-commit-hooks": "pre-commit-hooks" + }, + "locked": { + "lastModified": 1699541523, + "narHash": "sha256-Rv0ryuBC5KtA/3YqwIEe58Tabu71qSGnGcGRd67mMUY=", + "owner": "cachix", + "repo": "devenv", + "rev": "14fdefc0bb80c3d6f3a18a491e33429b4064c371", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "devenv", + "type": "github" + } + }, + "doom-emacs": { + "flake": false, + "locked": { + "lastModified": 1662497747, + "narHash": "sha256-4n7E1fqda7cn5/F2jTkOnKw1juG6XMS/FI9gqODL3aU=", + "owner": "doomemacs", + "repo": "doomemacs", + "rev": "3853dff5e11655e858d0bfae64b70cb12ef685ac", + "type": "github" + }, + "original": { + "owner": "doomemacs", + "repo": "doomemacs", + "rev": "3853dff5e11655e858d0bfae64b70cb12ef685ac", + "type": "github" + } + }, + "doom-snippets": { + "flake": false, + "locked": { + "lastModified": 1694887483, + "narHash": "sha256-KlKhruPSLPSKqUnr5/U65arm16VrY9ORzm+XKNZhpTQ=", + "owner": "doomemacs", + "repo": "snippets", + "rev": "f022984ee1318a4015d5d081b3c3dab5a60dc6ff", + "type": "github" + }, + "original": { + "owner": "doomemacs", + "repo": "snippets", + "type": "github" + } + }, + "duck.nvim": { + "flake": false, + "locked": { + "lastModified": 1688801219, + "narHash": "sha256-YPZF57FsN1Zr8S2R2hKIX9xO0w8kbNs8zdLjm6hpynI=", + "owner": "tamton-aquib", + "repo": "duck.nvim", + "rev": "8f18dd79c701698fc150119ef642c1881ce6a538", + "type": "github" + }, + "original": { + "owner": "tamton-aquib", + "repo": "duck.nvim", + "type": "github" + } + }, + "emacs-overlay": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_4", + "nixpkgs-stable": "nixpkgs-stable_2" + }, + "locked": { + "lastModified": 1699523543, + "narHash": "sha256-Kv+y3Aj0hq9vC/EccyX8KWL6dTVyZTtO2EbUnST648A=", + "owner": "nix-community", + "repo": "emacs-overlay", + "rev": "db5f62b4e53ec885fd7777a61f872b3a7bdf269d", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "emacs-overlay", + "type": "github" + } + }, + "emacs-overlay-cached": { + "inputs": { + "flake-utils": "flake-utils_3", + "nixpkgs": "nixpkgs_5", + "nixpkgs-stable": "nixpkgs-stable_3" + }, + "locked": { + "lastModified": 1698082382, + "narHash": "sha256-Hyynbwt1dF7O35MRr9GGek6spPLXCPEiYGorRpBMECs=", + "owner": "nix-community", + "repo": "emacs-overlay", + "rev": "7fe510de8909d248df2d32d758303a325b3738f9", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "emacs-overlay", + "rev": "7fe510de8909d248df2d32d758303a325b3738f9", + "type": "github" + } + }, + "emacs-overlay_2": { + "flake": false, + "locked": { + "lastModified": 1676366521, + "narHash": "sha256-i4UAY8t9Au9SJtsgYppa3NHSVf1YkV6yqnNIQd+Km4g=", + "owner": "nix-community", + "repo": "emacs-overlay", + "rev": "c16be6de78ea878aedd0292aa5d4a1ee0a5da501", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "emacs-overlay", + "rev": "c16be6de78ea878aedd0292aa5d4a1ee0a5da501", + "type": "github" + } + }, + "emacs-so-long": { + "flake": false, + "locked": { + "lastModified": 1575031854, + "narHash": "sha256-xIa5zO0ZaToDrec1OFjBK6l39AbA4l/CE4LInVu2hi0=", + "owner": "hlissner", + "repo": "emacs-so-long", + "rev": "ed666b0716f60e8988c455804de24b55919e71ca", + "type": "github" + }, + "original": { + "owner": "hlissner", + "repo": "emacs-so-long", + "type": "github" + } + }, + "evil-escape": { + "flake": false, + "locked": { + "lastModified": 1588439096, + "narHash": "sha256-aB2Ge5o/93B18tPf4fN1c+O46CNh/nOqwLJbox4c8Gw=", + "owner": "hlissner", + "repo": "evil-escape", + "rev": "819f1ee1cf3f69a1ae920e6004f2c0baeebbe077", + "type": "github" + }, + "original": { + "owner": "hlissner", + "repo": "evil-escape", + "type": "github" + } + }, + "evil-markdown": { + "flake": false, + "locked": { + "lastModified": 1626852210, + "narHash": "sha256-HBBuZ1VWIn6kwK5CtGIvHM1+9eiNiKPH0GUsyvpUVN8=", + "owner": "Somelauw", + "repo": "evil-markdown", + "rev": "8e6cc68af83914b2fa9fd3a3b8472573dbcef477", + "type": "github" + }, + "original": { + "owner": "Somelauw", + "repo": "evil-markdown", + "type": "github" + } + }, + "evil-org-mode": { + "flake": false, + "locked": { + "lastModified": 1607203864, + "narHash": "sha256-JxwqVYDN6OIJEH15MVI6XOZAPtUWUhJQWHyzcrUvrFg=", + "owner": "hlissner", + "repo": "evil-org-mode", + "rev": "a9706da260c45b98601bcd72b1d2c0a24a017700", + "type": "github" + }, + "original": { + "owner": "hlissner", + "repo": "evil-org-mode", + "type": "github" + } + }, + "evil-quick-diff": { + "flake": false, + "locked": { + "lastModified": 1575189609, + "narHash": "sha256-oGzl1ayW9rIuq0haoiFS7RZsS8NFMdEA7K1BSozgnJU=", + "owner": "rgrinberg", + "repo": "evil-quick-diff", + "rev": "69c883720b30a892c63bc89f49d4f0e8b8028908", + "type": "github" + }, + "original": { + "owner": "rgrinberg", + "repo": "evil-quick-diff", + "type": "github" + } + }, + "explain-pause-mode": { + "flake": false, + "locked": { + "lastModified": 1595842060, + "narHash": "sha256-++znrjiDSx+cy4okFBBXUBkRFdtnE2x+trkmqjB3Njs=", + "owner": "lastquestion", + "repo": "explain-pause-mode", + "rev": "2356c8c3639cbeeb9751744dbe737267849b4b51", + "type": "github" + }, + "original": { + "owner": "lastquestion", + "repo": "explain-pause-mode", + "type": "github" + } + }, + "fast-myers-diff": { + "flake": false, + "locked": { + "lastModified": 1696885120, + "narHash": "sha256-wqJ0/P3pXOISDhRHpEt11GVYllb+DFt46Mh+k/y1bYw=", + "owner": "NorfairKing", + "repo": "fast-myers-diff", + "rev": "c106ef803c69ef9440399247ec4ffd59c84f6fc7", + "type": "github" + }, + "original": { + "owner": "NorfairKing", + "repo": "fast-myers-diff", + "type": "github" + } + }, + "feedback": { + "inputs": { + "autodocodec": "autodocodec", + "dekking": "dekking", + "fast-myers-diff": "fast-myers-diff", + "nixpkgs": "nixpkgs_6", + "pre-commit-hooks": "pre-commit-hooks_2", + "safe-coloured-text": "safe-coloured-text", + "sydtest": "sydtest", + "validity": "validity" + }, + "locked": { + "lastModified": 1697621628, + "narHash": "sha256-bqCgWkeJRVV86JMTuGbOrcNhp+lB74BlTvDdVML7qIQ=", + "owner": "NorfairKing", + "repo": "feedback", + "rev": "6a4fc8cb38b2f784b781ad9dfcf9ee286cf74242", + "type": "github" + }, + "original": { + "owner": "NorfairKing", + "repo": "feedback", + "type": "github" + } + }, + "fenix": { + "inputs": { + "nixpkgs": [ + "alejandra", + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src" + }, + "locked": { + "lastModified": 1668234453, + "narHash": "sha256-FmuZThToBvRsqCauYJ3l8HJoGLAY5cMULeYEKIaGrRw=", + "owner": "nix-community", + "repo": "fenix", + "rev": "8f219f6b36e8d0d56afa7f67e6e3df63ef013cdb", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "fenix", + "type": "github" + } + }, + "fenix_2": { + "inputs": { + "nixpkgs": [ + "unstable" + ], + "rust-analyzer-src": "rust-analyzer-src_2" + }, + "locked": { + "lastModified": 1699510895, + "narHash": "sha256-eaOkJUvHeYNW/xEoRotz0rHkKihKoQdWB1ctX4q1MTQ=", + "owner": "nix-community", + "repo": "fenix", + "rev": "8eeef23f2c8d092227af40eff98afe5b41891e3b", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "fenix", + "type": "github" + } + }, + "filetype.nvim": { + "flake": false, + "locked": { + "lastModified": 1654194633, + "narHash": "sha256-B+VvgQj8akiKe+MX/dV2/mdaaqF8s2INW3phdPJ5TFA=", + "type": "tarball", + "url": "https://github.com/nathom/filetype.nvim/archive/b522628a45a17d58fc0073ffd64f9dc9530a8027.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/nathom/filetype.nvim/archive/b522628a45a17d58fc0073ffd64f9dc9530a8027.tar.gz" + } + }, + "firefox": { + "inputs": { + "cachix": "cachix", + "flake-compat": "flake-compat_3", + "lib-aggregate": "lib-aggregate", + "mozilla": "mozilla", + "nixpkgs": "nixpkgs_8" + }, + "locked": { + "lastModified": 1699532700, + "narHash": "sha256-jOBUt4ncY2/rnUq6t6WPdW4OdnEpcbQY0kwoS1Whkmk=", + "owner": "nix-community", + "repo": "flake-firefox-nightly", + "rev": "4e4066d700dc03f0686b468bfdc478bb5a5d6da0", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "flake-firefox-nightly", + "type": "github" + } + }, + "firefox-addons": { + "inputs": { + "flake-utils": "flake-utils_6", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "dir": "pkgs/firefox-addons", + "lastModified": 1699474771, + "narHash": "sha256-447mf95EXA3anSyLlVXCt49pyFhxcDgoNcdQi1xqFCU=", + "owner": "rycee", + "repo": "nur-expressions", + "rev": "157a2f215a4e7e04a49ef672070da835e4a98107", + "type": "gitlab" + }, + "original": { + "dir": "pkgs/firefox-addons", + "owner": "rycee", + "repo": "nur-expressions", + "type": "gitlab" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_10": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_3": { + "locked": { + "lastModified": 1688025799, + "narHash": "sha256-ktpB4dRtnksm9F5WawoIkEneh1nrEvuxb5lJFt1iOyw=", + "owner": "nix-community", + "repo": "flake-compat", + "rev": "8bf105319d44f6b9f0d764efa4fdef9f1cc9ba1c", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_4": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_5": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_6": { + "flake": false, + "locked": { + "lastModified": 1627913399, + "narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_7": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_8": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_9": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "unstable" + ] + }, + "locked": { + "lastModified": 1698882062, + "narHash": "sha256-HkhafUayIqxXyHH1X8d9RDl1M2CkFgZLjKD3MzabiEo=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "8c9fa2545007b49a5db5f650ae91f227672c3877", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "hercules-ci-effects", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1696343447, + "narHash": "sha256-B2xAZKLkkeRFG5XcHHSXXcP7To9Xzr59KXeZiRf4vdQ=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4", + "type": "github" + }, + "original": { + "id": "flake-parts", + "type": "indirect" + } + }, + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": [ + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1698882062, + "narHash": "sha256-HkhafUayIqxXyHH1X8d9RDl1M2CkFgZLjKD3MzabiEo=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "8c9fa2545007b49a5db5f650ae91f227672c3877", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_4": { + "inputs": { + "nixpkgs-lib": [ + "neovim-nightly-overlay", + "hercules-ci-effects", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1696343447, + "narHash": "sha256-B2xAZKLkkeRFG5XcHHSXXcP7To9Xzr59KXeZiRf4vdQ=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4", + "type": "github" + }, + "original": { + "id": "flake-parts", + "type": "indirect" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1685518550, + "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_10": { + "locked": { + "lastModified": 1642700792, + "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_11": { + "inputs": { + "systems": "systems_8" + }, + "locked": { + "lastModified": 1685518550, + "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_12": { + "inputs": { + "systems": "systems_9" + }, + "locked": { + "lastModified": 1685518550, + "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_13": { + "inputs": { + "systems": "systems_10" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_14": { + "inputs": { + "systems": "systems_11" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_15": { + "locked": { + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_16": { + "inputs": { + "systems": "systems_12" + }, + "locked": { + "lastModified": 1689068808, + "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_17": { + "inputs": { + "systems": "systems_13" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_18": { + "inputs": { + "systems": "systems_14" + }, + "locked": { + "lastModified": 1681202837, + "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "cfacdce06f30d2b68473a46042957675eebb3401", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { + "inputs": { + "systems": "systems_3" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_4": { + "inputs": { + "systems": "systems_4" + }, + "locked": { + "lastModified": 1685518550, + "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_5": { + "inputs": { + "systems": "systems_5" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_6": { + "locked": { + "lastModified": 1629284811, + "narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c5d161cc0af116a2e17f54316f0bf43f0819785c", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_7": { + "inputs": { + "systems": "systems_6" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_8": { + "locked": { + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_9": { + "locked": { + "lastModified": 1629481132, + "narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "997f7efcb746a9c140ce1f13c72263189225f482", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flakeCompat": { + "flake": false, + "locked": { + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "format-all": { + "flake": false, + "locked": { + "lastModified": 1581716637, + "narHash": "sha256-ul7LCe60W8TIvUmUtZtZRo8489TK9iTPDsLHmzxY57M=", + "owner": "lassik", + "repo": "emacs-format-all-the-code", + "rev": "47d862d40a088ca089c92cd393c6dca4628f87d3", + "type": "github" + }, + "original": { + "owner": "lassik", + "repo": "emacs-format-all-the-code", + "rev": "47d862d40a088ca089c92cd393c6dca4628f87d3", + "type": "github" + } + }, + "fsread-nvim": { + "flake": false, + "locked": { + "lastModified": 1676854047, + "narHash": "sha256-CsyBn8iAx5m1rhHW+HfbUSbtyTCaSG6/mgyrh+5KOqo=", + "owner": "nullchilly", + "repo": "fsread.nvim", + "rev": "a637bf048f733def7c5c46f5bf482f93a8311b29", + "type": "github" + }, + "original": { + "owner": "nullchilly", + "repo": "fsread.nvim", + "type": "github" + } + }, + "ghc-nixpkgs-unstable": { + "locked": { + "lastModified": 1696748673, + "narHash": "sha256-UbPHrH4dKN/66EpfFpoG4St4XZYDX9YcMVRQGWzAUNA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9957cd48326fe8dbd52fdc50dd2502307f188b0d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9957cd48326fe8dbd52fdc50dd2502307f188b0d", + "type": "github" + } + }, + "git-issue": { + "flake": false, + "locked": { + "lastModified": 1674927719, + "narHash": "sha256-X9N28nJcDqHNMsnJZoxud9k2QjMJihqLH232vSVHvUo=", + "owner": "dspinellis", + "repo": "git-issue", + "rev": "4d2bc4173bf803d74bf2ae54f892bd08754f1b48", + "type": "github" + }, + "original": { + "owner": "dspinellis", + "repo": "git-issue", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "devenv", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1660459072, + "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_2": { + "inputs": { + "nixpkgs": [ + "feedback", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1660459072, + "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_3": { + "flake": false, + "locked": { + "lastModified": 1611672876, + "narHash": "sha256-qHu3uZ/o9jBHiA3MEKHJ06k7w4heOhA+4HCSIvflRxo=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "211907489e9f198594c0eb0ca9256a1949c9d412", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_4": { + "inputs": { + "nixpkgs": [ + "jupyenv", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1660459072, + "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "hercules-ci-effects": { + "inputs": { + "flake-parts": "flake-parts_2", + "nixpkgs": [ + "unstable" + ] + }, + "locked": { + "lastModified": 1699381651, + "narHash": "sha256-mZlQ54xJs3j5+SJrLhzePPMXzS+Czbx7gNyOnOAQrHA=", + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "rev": "0bd99f5ab7ec7a74c11238bd02bb29e709c14328", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "type": "github" + } + }, + "hercules-ci-effects_2": { + "inputs": { + "flake-parts": "flake-parts_4", + "nixpkgs": [ + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1699381651, + "narHash": "sha256-mZlQ54xJs3j5+SJrLhzePPMXzS+Czbx7gNyOnOAQrHA=", + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "rev": "0bd99f5ab7ec7a74c11238bd02bb29e709c14328", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "type": "github" + } + }, + "hls": { + "inputs": { + "flake-compat": "flake-compat_6", + "flake-utils": "flake-utils_9", + "gitignore": "gitignore_3", + "nixpkgs": "nixpkgs_10", + "pre-commit-hooks": "pre-commit-hooks_3" + }, + "locked": { + "lastModified": 1637213318, + "narHash": "sha256-ZgxPwV7t4DyGYP7aXoetq+JHtd73XlOV2fYSflQmOXw=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "311107eabbf0537e0c192b2c377d282505b4eff1", + "type": "github" + }, + "original": { + "owner": "haskell", + "repo": "haskell-language-server", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1695108154, + "narHash": "sha256-gSg7UTVtls2yO9lKtP0yb66XBHT1Fx5qZSZbGMpSn2c=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "07682fff75d41f18327a871088d20af2710d4744", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-23.05", + "repo": "home-manager", + "type": "github" + } + }, + "hyprland": { + "inputs": { + "hyprland-protocols": "hyprland-protocols", + "nixpkgs": "nixpkgs_9", + "systems": "systems_7", + "wlroots": "wlroots", + "xdph": "xdph" + }, + "locked": { + "lastModified": 1699545905, + "narHash": "sha256-jzLPImU0ta6f4A3SCmjYRlXBRyVCy26l4ETvvVoBGKI=", + "owner": "hyprwm", + "repo": "Hyprland", + "rev": "da6fa9cbd24fb45edf35cc51317392e18f682595", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "Hyprland", + "type": "github" + } + }, + "hyprland-protocols": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1691753796, + "narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, + "ihaskell": { + "inputs": { + "flake-compat": [ + "jupyenv", + "flake-compat" + ], + "flake-utils": [ + "jupyenv", + "flake-utils" + ], + "hls": "hls", + "nixpkgs": [ + "jupyenv", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1671426600, + "narHash": "sha256-MahAFyp6AxY0H61U6zqJXM1NsckNNkK6iqONEtOPSK0=", + "owner": "ihaskell", + "repo": "ihaskell", + "rev": "1c22a874ac0c8ed019229f4a0cd5a0bfda017357", + "type": "github" + }, + "original": { + "owner": "ihaskell", + "repo": "ihaskell", + "type": "github" + } + }, + "impermanence": { + "locked": { + "lastModified": 1697303681, + "narHash": "sha256-caJ0rXeagaih+xTgRduYtYKL1rZ9ylh06CIrt1w5B4g=", + "owner": "nix-community", + "repo": "impermanence", + "rev": "0f317c2e9e56550ce12323eb39302d251618f5b5", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "impermanence", + "type": "github" + } + }, + "invokeai-src": { + "flake": false, + "locked": { + "lastModified": 1697424725, + "narHash": "sha256-y3nxZ4PQ/d2wMX1crpJPDMYXf48YBG0sRIBOTgN6XlI=", + "owner": "invoke-ai", + "repo": "InvokeAI", + "rev": "ad786130ffb11f91cbfcc40846114dd1fdcecdf6", + "type": "github" + }, + "original": { + "owner": "invoke-ai", + "ref": "v3.3.0post3", + "repo": "InvokeAI", + "type": "github" + } + }, + "jupyenv": { + "inputs": { + "flake-compat": "flake-compat_5", + "flake-utils": "flake-utils_8", + "ihaskell": "ihaskell", + "nix-dart": "nix-dart", + "nixpkgs": "nixpkgs_11", + "nixpkgs-stable": "nixpkgs-stable_5", + "npmlock2nix": "npmlock2nix", + "opam-nix": "opam-nix", + "poetry2nix": "poetry2nix", + "pre-commit-hooks": "pre-commit-hooks_4", + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1684225403, + "narHash": "sha256-8OYnupVWa2yZPQ2dEHIMfxLYrXAKCoDa8B3DL5dhSGE=", + "owner": "573", + "repo": "jupyenv-aarch64-experimental", + "rev": "43a8d8d65e88a689e917b6aefc179e82f0221a1d", + "type": "github" + }, + "original": { + "owner": "573", + "repo": "jupyenv-aarch64-experimental", + "type": "github" + } + }, + "latest": { + "locked": { + "lastModified": 1699548666, + "narHash": "sha256-ahFivvVtLKxcKXFvbZ559yWj2ispVVpvFAbIJoz9+go=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0f422015905a90a24bc125d956331487200e84ed", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "master", + "repo": "nixpkgs", + "type": "github" + } + }, + "latest-home-manager": { + "inputs": { + "nixpkgs": "nixpkgs_12" + }, + "locked": { + "lastModified": 1699368917, + "narHash": "sha256-nUtGIWf86BOkUbtksWtfglvCZ/otP0FTZlQH8Rzc7PA=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "6a8444467c83c961e2f5ff64fb4f422e303c98d3", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "lib-aggregate": { + "inputs": { + "flake-utils": "flake-utils_5", + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1699186103, + "narHash": "sha256-B13wpM9/sLYBO2TjxFYLhPUD9v3LVFVOmH12pGB3E0w=", + "owner": "nix-community", + "repo": "lib-aggregate", + "rev": "99ff947f29d9c89fe26072b1927e594ee45ccda0", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "lib-aggregate", + "type": "github" + } + }, + "lowdown-src": { + "flake": false, + "locked": { + "lastModified": 1633514407, + "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", + "owner": "kristapsdz", + "repo": "lowdown", + "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "type": "github" + }, + "original": { + "owner": "kristapsdz", + "repo": "lowdown", + "type": "github" + } + }, + "mach-nix": { + "inputs": { + "flake-utils": "flake-utils_10", + "nixpkgs": [ + "unstable" + ], + "pypi-deps-db": [ + "pypi-deps-db" + ] + }, + "locked": { + "lastModified": 1698993818, + "narHash": "sha256-bs0pQ13R8OG7C4hcCdojoCZ7ubkeVIohIRZIOzjWlpY=", + "owner": "DavHau", + "repo": "mach-nix", + "rev": "c7477e767e4cf794b10d550aeb8a361b515c5f73", + "type": "github" + }, + "original": { + "owner": "DavHau", + "repo": "mach-nix", + "type": "github" + } + }, + "markid": { + "flake": false, + "locked": { + "lastModified": 1697604241, + "narHash": "sha256-xTEKyc3+BadA0q0Kx9MMSdkzApEEYYZMtQqSCbt42Rs=", + "owner": "David-Kunz", + "repo": "markid", + "rev": "9b249e4d2ad0767a1091017cd52264590e41a274", + "type": "github" + }, + "original": { + "owner": "David-Kunz", + "repo": "markid", + "type": "github" + } + }, + "mirage-opam-overlays": { + "flake": false, + "locked": { + "lastModified": 1661959605, + "narHash": "sha256-CPTuhYML3F4J58flfp3ZbMNhkRkVFKmBEYBZY5tnQwA=", + "owner": "dune-universe", + "repo": "mirage-opam-overlays", + "rev": "05f1c1823d891ce4d8adab91f5db3ac51d86dc0b", + "type": "github" + }, + "original": { + "owner": "dune-universe", + "repo": "mirage-opam-overlays", + "type": "github" + } + }, + "mistty": { + "flake": false, + "locked": { + "lastModified": 1699288037, + "narHash": "sha256-Cez8xbao/m5Q/+QJygYFBn53xJpticm6PMtCe1kq/P0=", + "owner": "szermatt", + "repo": "mistty", + "rev": "7f9d259db5e50bbb13876b5927ee78b3d7d127ea", + "type": "github" + }, + "original": { + "owner": "szermatt", + "repo": "mistty", + "type": "github" + } + }, + "mozilla": { + "flake": false, + "locked": { + "lastModified": 1695805681, + "narHash": "sha256-1ElPLD8eFfnuIk0G52HGGpRtQZ4QPCjChRlEOfkZ5ro=", + "owner": "mozilla", + "repo": "nixpkgs-mozilla", + "rev": "6eabade97bc28d707a8b9d82ad13ef143836736e", + "type": "github" + }, + "original": { + "owner": "mozilla", + "repo": "nixpkgs-mozilla", + "type": "github" + } + }, + "murmur.lua": { + "flake": false, + "locked": { + "lastModified": 1689819647, + "narHash": "sha256-Wdk7NSxO8VgRPoKQE5iudgP9KpWhjX3mdURFPjuB/DI=", + "owner": "nyngwang", + "repo": "murmur.lua", + "rev": "85d3f1c3e98fa60b523abf40f4951d4ddb44fa54", + "type": "github" + }, + "original": { + "owner": "nyngwang", + "repo": "murmur.lua", + "type": "github" + } + }, + "naersk": { + "inputs": { + "nixpkgs": [ + "tree-grepper", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1692351612, + "narHash": "sha256-KTGonidcdaLadRnv9KFgwSMh1ZbXoR/OBmPjeNMhFwU=", + "owner": "nmattia", + "repo": "naersk", + "rev": "78789c30d64dea2396c9da516bbcc8db3a475207", + "type": "github" + }, + "original": { + "owner": "nmattia", + "repo": "naersk", + "type": "github" + } + }, + "neovim-flake": { + "inputs": { + "flake-utils": "flake-utils_11", + "nixpkgs": "nixpkgs_13" + }, + "locked": { + "dir": "contrib", + "lastModified": 1699538014, + "narHash": "sha256-HGcF6yGOrHp55ItbZjgExu9/r0QzFQgnmWNNcbOpJW8=", + "owner": "neovim", + "repo": "neovim", + "rev": "267c346e2cd10081bfebe86be59f137a1b7470e5", + "type": "github" + }, + "original": { + "dir": "contrib", + "owner": "neovim", + "repo": "neovim", + "type": "github" + } + }, + "neovim-flake_2": { + "inputs": { + "flake-utils": "flake-utils_12", + "nixpkgs": [ + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "dir": "contrib", + "lastModified": 1699486685, + "narHash": "sha256-pb4O9I8nkIPyvdWS33FPUgGIA4Y24pCLlxvqWmKxRik=", + "owner": "neovim", + "repo": "neovim", + "rev": "04187d1cb58a46dff3b490115f38f9120e13d598", + "type": "github" + }, + "original": { + "dir": "contrib", + "owner": "neovim", + "repo": "neovim", + "type": "github" + } + }, + "neovim-nightly-overlay": { + "inputs": { + "flake-compat": "flake-compat_8", + "flake-parts": "flake-parts_3", + "hercules-ci-effects": "hercules-ci-effects_2", + "neovim-flake": "neovim-flake_2", + "nixpkgs": "nixpkgs_14" + }, + "locked": { + "lastModified": 1699488661, + "narHash": "sha256-rJZNJexm3CGs86m0xrQ1pr2LCJ5E2BALwD4n3ePycFU=", + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "rev": "fa7175414af333bbb9ea4546cf8f7d037b504ded", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "type": "github" + } + }, + "nil": { + "inputs": { + "flake-utils": "flake-utils_13", + "nixpkgs": "nixpkgs_15", + "rust-overlay": "rust-overlay_2" + }, + "locked": { + "lastModified": 1699423608, + "narHash": "sha256-WEVUgivm5DCziwZqiXRPeoD3FQTXW38ExKrZjvMveqE=", + "owner": "oxalica", + "repo": "nil", + "rev": "5607d429016d6f9a72843b07127fad23ea9d661f", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "nil", + "type": "github" + } + }, + "nix": { + "inputs": { + "lowdown-src": "lowdown-src", + "nixpkgs": [ + "devenv", + "nixpkgs" + ], + "nixpkgs-regression": "nixpkgs-regression" + }, + "locked": { + "lastModified": 1676545802, + "narHash": "sha256-EK4rZ+Hd5hsvXnzSzk2ikhStJnD63odF7SzsQ8CuSPU=", + "owner": "domenkozar", + "repo": "nix", + "rev": "7c91803598ffbcfe4a55c44ac6d49b2cf07a527f", + "type": "github" + }, + "original": { + "owner": "domenkozar", + "ref": "relaxed-flakes", + "repo": "nix", + "type": "github" + } + }, + "nix-dart": { + "inputs": { + "flake-utils": [ + "jupyenv", + "flake-utils" + ], + "nixpkgs": [ + "jupyenv", + "nixpkgs" + ], + "pub2nix": "pub2nix" + }, + "locked": { + "lastModified": 1673740150, + "narHash": "sha256-JiZrr75JILHW7IaNW3MwpYn+084Q6/gnXScPR7Pozhs=", + "owner": "djacu", + "repo": "nix-dart", + "rev": "8ee4e1a5ec0cc6c1e15860c4733f741485e8231e", + "type": "github" + }, + "original": { + "owner": "djacu", + "repo": "nix-dart", + "type": "github" + } + }, + "nix-doom-emacs": { + "inputs": { + "doom-emacs": "doom-emacs", + "doom-snippets": "doom-snippets", + "emacs-overlay": "emacs-overlay_2", + "emacs-so-long": "emacs-so-long", + "evil-escape": "evil-escape", + "evil-markdown": "evil-markdown", + "evil-org-mode": "evil-org-mode", + "evil-quick-diff": "evil-quick-diff", + "explain-pause-mode": "explain-pause-mode", + "flake-compat": "flake-compat_9", + "flake-utils": "flake-utils_14", + "format-all": "format-all", + "nix-straight": "nix-straight", + "nixpkgs": "nixpkgs_16", + "nose": "nose", + "ob-racket": "ob-racket", + "org": "org", + "org-contrib": "org-contrib", + "org-yt": "org-yt", + "php-extras": "php-extras", + "revealjs": "revealjs", + "rotate-text": "rotate-text", + "sln-mode": "sln-mode", + "ts-fold": "ts-fold", + "ws-butler": "ws-butler" + }, + "locked": { + "lastModified": 1695950746, + "narHash": "sha256-ZDXcQ49q9mglhw6nETJxXxBdA68P/WkshMAGGbXKRoE=", + "owner": "nix-community", + "repo": "nix-doom-emacs", + "rev": "9b1c3371dd4b4f42f54701d42f31d3f805bfae8d", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "9b1c337", + "repo": "nix-doom-emacs", + "type": "github" + } + }, + "nix-filter": { + "locked": { + "lastModified": 1694857738, + "narHash": "sha256-bxxNyLHjhu0N8T3REINXQ2ZkJco0ABFPn6PIe2QUfqo=", + "owner": "numtide", + "repo": "nix-filter", + "rev": "41fd48e00c22b4ced525af521ead8792402de0ea", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "nix-filter", + "type": "github" + } + }, + "nix-formatter-pack": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "nmd": "nmd", + "nmt": "nmt" + }, + "locked": { + "lastModified": 1694984852, + "narHash": "sha256-A1x55uLb2LT9evsTWYc1U9+iki1AmE5ROxOuCKPf3JE=", + "owner": "Gerschtli", + "repo": "nix-formatter-pack", + "rev": "23795a4daf29ce784b3edc13b9776c7b445c453b", + "type": "github" + }, + "original": { + "owner": "Gerschtli", + "repo": "nix-formatter-pack", + "type": "github" + } + }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "talon", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1693660503, + "narHash": "sha256-B/g2V4v6gjirFmy+I5mwB2bCYc0l3j5scVfwgl6WOl8=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "bd5bdbb52350e145c526108f4ef192eb8e554fa0", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-github-actions", + "type": "github" + } + }, + "nix-index-database": { + "inputs": { + "nixpkgs": "nixpkgs_17" + }, + "locked": { + "lastModified": 1699156599, + "narHash": "sha256-Qk9ZE/pG9lNIGUVNArJxL0Hc0Soa92eQPPIhcDwWinU=", + "owner": "Mic92", + "repo": "nix-index-database", + "rev": "5388a4002179d6778d212dc2fdcc7ac3fdbd5b65", + "type": "github" + }, + "original": { + "owner": "Mic92", + "repo": "nix-index-database", + "type": "github" + } + }, + "nix-on-droid": { + "inputs": { + "home-manager": [ + "home-manager" + ], + "nix-formatter-pack": [ + "nix-formatter-pack" + ], + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap", + "nmd": [ + "nix-formatter-pack", + "nmd" + ] + }, + "locked": { + "lastModified": 1694604941, + "narHash": "sha256-KsoRStRs8dNRRMWQhuB3eUOpzQhOc4dcBQB85tEq3wY=", + "owner": "nix-community", + "repo": "nix-on-droid", + "rev": "039379abeee67144d4094d80bbdaf183fb2eabe5", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-on-droid", + "type": "github" + } + }, + "nix-straight": { + "flake": false, + "locked": { + "lastModified": 1694361489, + "narHash": "sha256-kjDp+j6OtrmqbtjQB5uuOtjS08+kgJQuxFqhWE1Y9Rw=", + "owner": "nix-community", + "repo": "nix-straight.el", + "rev": "748be99b84be0b130e946288099806a0f16d6e57", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-straight.el", + "type": "github" + } + }, + "nixGL": { + "inputs": { + "flake-utils": "flake-utils_15", + "nixpkgs": "nixpkgs_18" + }, + "locked": { + "lastModified": 1685908677, + "narHash": "sha256-E4zUPEUFyVWjVm45zICaHRpfGepfkE9Z2OECV9HXfA4=", + "owner": "guibou", + "repo": "nixGL", + "rev": "489d6b095ab9d289fe11af0219a9ff00fe87c7c5", + "type": "github" + }, + "original": { + "owner": "guibou", + "repo": "nixGL", + "type": "github" + } + }, + "nixd": { + "inputs": { + "flake-parts": [ + "flake-parts" + ], + "nixpkgs": "nixpkgs_19" + }, + "locked": { + "lastModified": 1691762808, + "narHash": "sha256-W44orkPZQ9gDUTogb8YVIaw4WHzUA+ExOXhTnZlJ6yY=", + "owner": "nix-community", + "repo": "nixd", + "rev": "22f8532d9dcc3b50c46a5da5393fd6960a7a7cdc", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "1.2.2", + "repo": "nixd", + "type": "github" + } + }, + "nixified-ai": { + "inputs": { + "flake-parts": [ + "flake-parts" + ], + "hercules-ci-effects": [ + "hercules-ci-effects" + ], + "invokeai-src": "invokeai-src", + "nixpkgs": [ + "unstable" + ], + "textgen-src": "textgen-src" + }, + "locked": { + "lastModified": 1698023400, + "narHash": "sha256-2wrm9Y9gsI/OaZEsTqc2wflkfxlrvCRocJHpqkOm/Cc=", + "owner": "nixified-ai", + "repo": "flake", + "rev": "7b9730e0a75bcd6375b0780aef75e406ea20a9a4", + "type": "github" + }, + "original": { + "owner": "nixified-ai", + "repo": "flake", + "type": "github" + } + }, + "nixos-2211": { + "locked": { + "lastModified": 1688392541, + "narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-22.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixos-wsl": { + "inputs": { + "flake-compat": [ + "flake-compat" + ], + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1699303900, + "narHash": "sha256-xS+BjUfadCLCs6kU2ceYPEvUmUKkkC8miXzWi6XxgyE=", + "owner": "nix-community", + "repo": "NixOS-WSL", + "rev": "6e3d83b05ea7fe090a406081db871c8090a00fba", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NixOS-WSL", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1668226844, + "narHash": "sha256-G/S4FBWDAqHeBS/hfXwUCJbnaKnrQFoeeKwzvZEOgxM=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "dd4767bf613bf9553eee6ff37c0996b9c876e7d8", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable-small", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-for-bootstrap": { + "locked": { + "lastModified": 1686921029, + "narHash": "sha256-J1bX9plPCFhTSh6E3TWn9XSxggBh/zDD4xigyaIQBy8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c7ff1b9b95620ce8728c0d7bd501c458e6da9e04", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c7ff1b9b95620ce8728c0d7bd501c458e6da9e04", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1699145078, + "narHash": "sha256-OO1b3jiMUGjafD2ErkbTPVgUlhmyWo2Z5i0k2kD1ViU=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "174d7dc67189bc4a53f1bffb4fb9d0f13b79cd3c", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixpkgs-regression": { + "locked": { + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + } + }, + "nixpkgs-ruby": { + "inputs": { + "flake-compat": "flake-compat_10", + "flake-utils": "flake-utils_16", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1697607585, + "narHash": "sha256-2p+02R0xKZ42+mBdAxNXGKeO9bKJXI78P+VCRb001+I=", + "owner": "bobvanderlinden", + "repo": "nixpkgs-ruby", + "rev": "4cf39cd85b288ff41407067347ad11accfa2a31e", + "type": "github" + }, + "original": { + "owner": "bobvanderlinden", + "repo": "nixpkgs-ruby", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1685801374, + "narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c37ca420157f4abc31e26f436c1145f8951ff373", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_2": { + "locked": { + "lastModified": 1699291058, + "narHash": "sha256-5ggduoaAMPHUy4riL+OrlAZE14Kh7JWX4oLEs22ZqfU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "41de143fda10e33be0f47eab2bfe08a50f234267", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_3": { + "locked": { + "lastModified": 1697851979, + "narHash": "sha256-lJ8k4qkkwdvi+t/Xc6Fn74kUuobpu9ynPGxNZR6OwoA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5550a85a087c04ddcace7f892b0bdc9d8bb080c8", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_4": { + "locked": { + "lastModified": 1685801374, + "narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c37ca420157f4abc31e26f436c1145f8951ff373", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_5": { + "locked": { + "lastModified": 1672580127, + "narHash": "sha256-3lW3xZslREhJogoOkjeZtlBtvFMyxHku7I/9IVehhT8=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "0874168639713f547c05947c76124f78441ea46c", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-22.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_6": { + "locked": { + "lastModified": 1673800717, + "narHash": "sha256-SFHraUqLSu5cC6IxTprex/nTsI81ZQAtDvlBvGDWfnA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "2f9fd351ec37f5d479556cd48be4ca340da59b8f", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-22.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_10": { + "locked": { + "lastModified": 1630887066, + "narHash": "sha256-0ecIlrLsNIIa+zrNmzXXmbMBLZlmHU/aWFsa4bq99Hk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5e47a07e9f2d7ed999f2c7943b0896f5f7321ca3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_11": { + "locked": { + "lastModified": 1673796341, + "narHash": "sha256-1kZi9OkukpNmOaPY7S5/+SlCDOuYnP3HkXHvNDyLQcc=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "6dccdc458512abce8d19f74195bb20fdb067df50", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_12": { + "locked": { + "lastModified": 1697456312, + "narHash": "sha256-roiSnrqb5r+ehnKCauPLugoU8S36KgmWraHgRqVYndo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ca012a02bf8327be9e488546faecae5e05d7d749", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_13": { + "locked": { + "lastModified": 1686226982, + "narHash": "sha256-nLuiPoeiVfqqzeq9rmXxpybh77VS37dsY/k8N2LoxVg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "a64b73e07d4aa65cfcbda29ecf78eaf9e72e44bd", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_14": { + "locked": { + "lastModified": 1699343069, + "narHash": "sha256-s7BBhyLA6MI6FuJgs4F/SgpntHBzz40/qV0xLPW6A1Q=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ec750fd01963ab6b20ee1f0cb488754e8036d89d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_15": { + "locked": { + "lastModified": 1696725822, + "narHash": "sha256-B7uAOS7TkLlOg1aX01rQlYbydcyB6ZnLJSfaYbKVww8=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "5aabb5780a11c500981993d49ee93cfa6df9307b", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_16": { + "locked": { + "lastModified": 1695806987, + "narHash": "sha256-fX5kGs66NZIxCMcpAGIpxuftajHL8Hil1vjHmjjl118=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f3dab3509afca932f3f4fd0908957709bb1c1f57", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixpkgs-unstable", + "type": "indirect" + } + }, + "nixpkgs_17": { + "locked": { + "lastModified": 1698924604, + "narHash": "sha256-GCFbkl2tj8fEZBZCw3Tc0AkGo0v+YrQlohhEGJ/X4s0=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "fa804edfb7869c9fb230e174182a8a1a7e512c40", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_18": { + "locked": { + "lastModified": 1660551188, + "narHash": "sha256-a1LARMMYQ8DPx1BgoI/UN4bXe12hhZkCNqdxNi6uS0g=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "441dc5d512153039f19ef198e662e4f3dbb9fd65", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_19": { + "locked": { + "lastModified": 1686398752, + "narHash": "sha256-nGWNQVhSw4VSL+S0D0cbrNR9vs9Bq7rlYR+1K5f5j6w=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a30520bf8eabf8a5c37889d661e67a2dbcaa59e6", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1689261696, + "narHash": "sha256-LzfUtFs9MQRvIoQ3MfgSuipBVMXslMPH/vZ+nM40LkA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "df1eee2aa65052a18121ed4971081576b25d6b5c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_20": { + "locked": { + "lastModified": 1699291058, + "narHash": "sha256-5ggduoaAMPHUy4riL+OrlAZE14Kh7JWX4oLEs22ZqfU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "41de143fda10e33be0f47eab2bfe08a50f234267", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_21": { + "locked": { + "lastModified": 1689261696, + "narHash": "sha256-LzfUtFs9MQRvIoQ3MfgSuipBVMXslMPH/vZ+nM40LkA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "df1eee2aa65052a18121ed4971081576b25d6b5c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_22": { + "locked": { + "lastModified": 1678875422, + "narHash": "sha256-T3o6NcQPwXjxJMn2shz86Chch4ljXgZn746c2caGxd8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "126f49a01de5b7e35a43fd43f891ecf6d3a51459", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_23": { + "locked": { + "lastModified": 1689261696, + "narHash": "sha256-LzfUtFs9MQRvIoQ3MfgSuipBVMXslMPH/vZ+nM40LkA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "df1eee2aa65052a18121ed4971081576b25d6b5c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_24": { + "locked": { + "lastModified": 1681358109, + "narHash": "sha256-eKyxW4OohHQx9Urxi7TQlFBTDWII+F+x2hklDOQPB50=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "96ba1c52e54e74c3197f4d43026b3f3d92e83ff9", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1678875422, + "narHash": "sha256-T3o6NcQPwXjxJMn2shz86Chch4ljXgZn746c2caGxd8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "126f49a01de5b7e35a43fd43f891ecf6d3a51459", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1699099776, + "narHash": "sha256-X09iKJ27mGsGambGfkKzqvw5esP1L/Rf8H3u3fCqIiU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "85f1ba3e51676fa8cc604a3d863d729026a6b8eb", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1697723726, + "narHash": "sha256-SaTWPkI8a5xSHX/rrKzUe+/uVNy6zCGMXgoeMb7T9rg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "7c9cc5a6e5d38010801741ac830a3f8fd667a7a0", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_6": { + "locked": { + "lastModified": 1696983906, + "narHash": "sha256-L7GyeErguS7Pg4h8nK0wGlcUTbfUMDu+HMf1UcyP72k=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "bd1cde45c77891214131cbbea5b1203e485a9d51", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_7": { + "locked": { + "lastModified": 1689261696, + "narHash": "sha256-LzfUtFs9MQRvIoQ3MfgSuipBVMXslMPH/vZ+nM40LkA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "df1eee2aa65052a18121ed4971081576b25d6b5c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_8": { + "locked": { + "lastModified": 1699099776, + "narHash": "sha256-X09iKJ27mGsGambGfkKzqvw5esP1L/Rf8H3u3fCqIiU=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "85f1ba3e51676fa8cc604a3d863d729026a6b8eb", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_9": { + "locked": { + "lastModified": 1698134075, + "narHash": "sha256-foCD+nuKzfh49bIoiCBur4+Fx1nozo+4C/6k8BYk4sg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "8efd5d1e283604f75a808a20e6cde0ef313d07d4", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nmd": { + "flake": false, + "locked": { + "lastModified": 1666190571, + "narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=", + "owner": "rycee", + "repo": "nmd", + "rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169", + "type": "gitlab" + }, + "original": { + "owner": "rycee", + "repo": "nmd", + "type": "gitlab" + } + }, + "nmt": { + "flake": false, + "locked": { + "lastModified": 1648075362, + "narHash": "sha256-u36WgzoA84dMVsGXzml4wZ5ckGgfnvS0ryzo/3zn/Pc=", + "owner": "rycee", + "repo": "nmt", + "rev": "d83601002c99b78c89ea80e5e6ba21addcfe12ae", + "type": "gitlab" + }, + "original": { + "owner": "rycee", + "repo": "nmt", + "type": "gitlab" + } + }, + "nose": { + "flake": false, + "locked": { + "lastModified": 1400604510, + "narHash": "sha256-daEi8Kta1oGaDEmUUDDQMahTTPOpvNpDKk22rlr7cB0=", + "owner": "emacsattic", + "repo": "nose", + "rev": "f8528297519eba911696c4e68fa88892de9a7b72", + "type": "github" + }, + "original": { + "owner": "emacsattic", + "repo": "nose", + "type": "github" + } + }, + "npmlock2nix": { + "flake": false, + "locked": { + "lastModified": 1668989938, + "narHash": "sha256-/IxdS0AiqSN0/VEOLnnfHyi4nP17yPrkhGf6KlXVwrc=", + "owner": "nix-community", + "repo": "npmlock2nix", + "rev": "0ba0746d62974403daf717cded3f24c617622bc7", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "npmlock2nix", + "rev": "0ba0746d62974403daf717cded3f24c617622bc7", + "type": "github" + } + }, + "nvim-cmp": { + "flake": false, + "locked": { + "lastModified": 1699261102, + "narHash": "sha256-auUHEjUDOaDkMI9loN6T+/whDDNzPl04bf+nqqLQ5+I=", + "owner": "hrsh7th", + "repo": "nvim-cmp", + "rev": "0b751f6beef40fd47375eaf53d3057e0bfa317e4", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "nvim-cmp", + "type": "github" + } + }, + "nvim-lspconfig": { + "flake": false, + "locked": { + "lastModified": 1699493893, + "narHash": "sha256-eQhnQz3/aIdsyhMU9OsY1r+f5q60TsjJNkybaKLAegw=", + "owner": "neovim", + "repo": "nvim-lspconfig", + "rev": "36e4ffec0a9e373ac9dbf7949d3567c8f04ca3df", + "type": "github" + }, + "original": { + "owner": "neovim", + "repo": "nvim-lspconfig", + "type": "github" + } + }, + "nvim-treesitter": { + "flake": false, + "locked": { + "lastModified": 1699512903, + "narHash": "sha256-CSu+y0DiLrAgPRe4jUoU6VSJ7GytQx8GV5W+r16rWWQ=", + "owner": "nvim-treesitter", + "repo": "nvim-treesitter", + "rev": "8996612bfbebe1657e1bb55a95201c96cab945c6", + "type": "github" + }, + "original": { + "owner": "nvim-treesitter", + "repo": "nvim-treesitter", + "type": "github" + } + }, + "ob-racket": { + "flake": false, + "locked": { + "lastModified": 1584656173, + "narHash": "sha256-rBUYDDCXb+3D4xTPQo9UocbTPZ32kWV1Uya/1DmZknU=", + "owner": "xchrishawk", + "repo": "ob-racket", + "rev": "83457ec9e1e96a29fd2086ed19432b9d75787673", + "type": "github" + }, + "original": { + "owner": "xchrishawk", + "repo": "ob-racket", + "type": "github" + } + }, + "ocaml-dev-template": { + "inputs": { + "nixpkgs": "nixpkgs_21" + }, + "locked": { + "dir": "ocaml", + "lastModified": 1692727998, + "narHash": "sha256-ulLL1OrvPav2LvNJmzDViPuFGOIMDWdSpcpT7+vcXmE=", + "owner": "the-nix-way", + "repo": "dev-templates", + "rev": "1117b469aa83bef9e29616b7c67d80b14beb2c14", + "type": "github" + }, + "original": { + "dir": "ocaml", + "owner": "the-nix-way", + "repo": "dev-templates", + "type": "github" + } + }, + "ocaml-overlay": { + "inputs": { + "flake-utils": "flake-utils_17", + "nixpkgs": [ + "latest" + ] + }, + "locked": { + "lastModified": 1699412913, + "narHash": "sha256-J1Y87vS2+wD/MGyEpnuBuWXs5mdvM+ygQFuX658TOF0=", + "owner": "nix-ocaml", + "repo": "nix-overlays", + "rev": "397e064df12d858aa057fbf6f8f21b1a846bd544", + "type": "github" + }, + "original": { + "owner": "nix-ocaml", + "repo": "nix-overlays", + "type": "github" + } + }, + "opam-nix": { + "inputs": { + "flake-compat": [ + "jupyenv", + "flake-compat" + ], + "flake-utils": [ + "jupyenv", + "flake-utils" + ], + "mirage-opam-overlays": "mirage-opam-overlays", + "nixpkgs": [ + "jupyenv", + "nixpkgs" + ], + "opam-overlays": "opam-overlays", + "opam-repository": "opam-repository", + "opam2json": "opam2json" + }, + "locked": { + "lastModified": 1669990974, + "narHash": "sha256-wHhdlDUC/tBDVFBemeJPpqdIRdehKKbxbdMP0QjOhM4=", + "owner": "tweag", + "repo": "opam-nix", + "rev": "75199758e1954f78286e7e79c0e3916e28b732b0", + "type": "github" + }, + "original": { + "owner": "tweag", + "repo": "opam-nix", + "rev": "75199758e1954f78286e7e79c0e3916e28b732b0", + "type": "github" + } + }, + "opam-overlays": { + "flake": false, + "locked": { + "lastModified": 1654162756, + "narHash": "sha256-RV68fUK+O3zTx61iiHIoS0LvIk0E4voMp+0SwRg6G6c=", + "owner": "dune-universe", + "repo": "opam-overlays", + "rev": "c8f6ef0fc5272f254df4a971a47de7848cc1c8a4", + "type": "github" + }, + "original": { + "owner": "dune-universe", + "repo": "opam-overlays", + "type": "github" + } + }, + "opam-repository": { + "flake": false, + "locked": { + "lastModified": 1661161626, + "narHash": "sha256-J3P+mXLwE2oEKTlMnx8sYRxwD/uNGSKM0AkAB7BNTxA=", + "owner": "ocaml", + "repo": "opam-repository", + "rev": "54e69ff0949a3aaec0d5e3d67898bb7f279ab09f", + "type": "github" + }, + "original": { + "owner": "ocaml", + "repo": "opam-repository", + "type": "github" + } + }, + "opam2json": { + "inputs": { + "nixpkgs": [ + "jupyenv", + "opam-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1665671715, + "narHash": "sha256-7f75C6fIkiLzfkwLpJxlQIKf+YORGsXGV8Dr2LDDi+A=", + "owner": "tweag", + "repo": "opam2json", + "rev": "32fa2dcd993a27f9e75ee46fb8b78a7cd5d05113", + "type": "github" + }, + "original": { + "owner": "tweag", + "repo": "opam2json", + "type": "github" + } + }, + "org": { + "flake": false, + "locked": { + "lastModified": 1695726851, + "narHash": "sha256-qgbjspklSoI8M3cbCJOcUdjuijRgsL/+PSyEOW9VX4I=", + "owner": "emacs-straight", + "repo": "org-mode", + "rev": "aa9177e1a8b039c357d369c1c9aaab710bb247a9", + "type": "github" + }, + "original": { + "owner": "emacs-straight", + "repo": "org-mode", + "type": "github" + } + }, + "org-contrib": { + "flake": false, + "locked": { + "lastModified": 1694946041, + "narHash": "sha256-X/HFG6NZe5BY00KvGbcsIuf9R6Lg8x7Uhd0Y5+Q3qZU=", + "owner": "emacsmirror", + "repo": "org-contrib", + "rev": "5eabbf22bdd4523c922a30787e98ee66c24221aa", + "type": "github" + }, + "original": { + "owner": "emacsmirror", + "repo": "org-contrib", + "type": "github" + } + }, + "org-novelist": { + "flake": false, + "locked": { + "lastModified": 1683800413, + "narHash": "sha256-+wMy4xbFHm/VBD186NijNVH0pvmzvir0SHGxWcU7EW8=", + "owner": "sympodius", + "repo": "org-novelist", + "rev": "d1ef9672bd0e59f97ca0e8cdf27f44cd44ea4a4b", + "type": "github" + }, + "original": { + "owner": "sympodius", + "repo": "org-novelist", + "type": "github" + } + }, + "org-yt": { + "flake": false, + "locked": { + "lastModified": 1527381913, + "narHash": "sha256-dzQ6B7ryzatHCTLyEnRSbWO0VUiX/FHYnpHTs74aVUs=", + "owner": "TobiasZawada", + "repo": "org-yt", + "rev": "40cc1ac76d741055cbefa13860d9f070a7ade001", + "type": "github" + }, + "original": { + "owner": "TobiasZawada", + "repo": "org-yt", + "type": "github" + } + }, + "php-extras": { + "flake": false, + "locked": { + "lastModified": 1573312690, + "narHash": "sha256-r4WyVbzvT0ra4Z6JywNBOw5RxOEYd6Qe2IpebHXkj1U=", + "owner": "arnested", + "repo": "php-extras", + "rev": "d410c5af663c30c01d461ac476d1cbfbacb49367", + "type": "github" + }, + "original": { + "owner": "arnested", + "repo": "php-extras", + "type": "github" + } + }, + "poetry2nix": { + "inputs": { + "flake-utils": [ + "jupyenv", + "flake-utils" + ], + "nixpkgs": [ + "jupyenv", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1673926875, + "narHash": "sha256-QOsT76Al0Igpo0u5vtQJuDSOxrocX3sTD523pLPEklc=", + "owner": "nix-community", + "repo": "poetry2nix", + "rev": "a5c454a834cd290dd4d33102ab8b4aa37d850e65", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "poetry2nix", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": [ + "devenv", + "flake-compat" + ], + "flake-utils": "flake-utils", + "gitignore": "gitignore", + "nixpkgs": [ + "devenv", + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1688056373, + "narHash": "sha256-2+SDlNRTKsgo3LBRiMUcoEUb6sDViRNQhzJquZ4koOI=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "5843cf069272d92b60c3ed9e55b7a8989c01d4c7", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "pre-commit-hooks_2": { + "inputs": { + "flake-compat": "flake-compat_2", + "flake-utils": "flake-utils_4", + "gitignore": "gitignore_2", + "nixpkgs": "nixpkgs_7", + "nixpkgs-stable": "nixpkgs-stable_4" + }, + "locked": { + "lastModified": 1696846637, + "narHash": "sha256-0hv4kbXxci2+pxhuXlVgftj/Jq79VSmtAyvfabCCtYk=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "42e1b6095ef80a51f79595d9951eb38e91c4e6ca", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "pre-commit-hooks_3": { + "inputs": { + "flake-utils": [ + "jupyenv", + "ihaskell", + "hls", + "flake-utils" + ], + "nixpkgs": [ + "jupyenv", + "ihaskell", + "hls", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1624971177, + "narHash": "sha256-Amf/nBj1E77RmbSSmV+hg6YOpR+rddCbbVgo5C7BS0I=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "397f0713d007250a2c7a745e555fa16c5dc8cadb", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "pre-commit-hooks_4": { + "inputs": { + "flake-compat": "flake-compat_7", + "flake-utils": [ + "jupyenv", + "flake-utils" + ], + "gitignore": "gitignore_4", + "nixpkgs": [ + "jupyenv", + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable_6" + }, + "locked": { + "lastModified": 1674075316, + "narHash": "sha256-0uZuAcYBpNJLxr7n5O0vhwn3rSLpUTm9M5WGgmNQ+wM=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "3e42a77571cc0463efa470dbcffa063977a521ab", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "pub2nix": { + "flake": false, + "locked": { + "lastModified": 1594192744, + "narHash": "sha256-pDvcXSG1Mh2BpwkqAcNDJzcupV3pIAAtZJLfkiHMAz4=", + "owner": "paulyoung", + "repo": "pub2nix", + "rev": "0c7ecca590fcd1616db8c6468f799ffef36c85e9", + "type": "github" + }, + "original": { + "owner": "paulyoung", + "repo": "pub2nix", + "type": "github" + } + }, + "pup": { + "flake": false, + "locked": { + "lastModified": 1568916684, + "narHash": "sha256-eZ/gCTO4/TTWriVW8576eM/TiM3Xk1beM3gFRjGYocM=", + "owner": "ericchiang", + "repo": "pup", + "rev": "681d7bb639334bf485476f5872c5bdab10931f9a", + "type": "github" + }, + "original": { + "owner": "ericchiang", + "repo": "pup", + "rev": "681d7bb639334bf485476f5872c5bdab10931f9a", + "type": "github" + } + }, + "pypi-deps-db": { + "flake": false, + "locked": { + "lastModified": 1699338846, + "narHash": "sha256-RhdhdtRRZcRzxCduxQf79d2tE+qhjtlanx7CcAmMhrM=", + "owner": "DavHau", + "repo": "pypi-deps-db", + "rev": "e72a0d5d535bde034717a175c8228c237b18449c", + "type": "github" + }, + "original": { + "owner": "DavHau", + "repo": "pypi-deps-db", + "type": "github" + } + }, + "revealjs": { + "flake": false, + "locked": { + "lastModified": 1695738029, + "narHash": "sha256-Z9c9Q41jMkj/DyXOiZYyIa7Gmn8VB8yauTyWrSsT+ps=", + "owner": "hakimel", + "repo": "reveal.js", + "rev": "88fbfc5751ad01e3f6adee5819eabeb9e73c3757", + "type": "github" + }, + "original": { + "owner": "hakimel", + "repo": "reveal.js", + "type": "github" + } + }, + "root": { + "inputs": { + "alejandra": "alejandra", + "bundix": "bundix", + "clojure-dev-template": "clojure-dev-template", + "code_runner.nvim": "code_runner.nvim", + "deferred-clipboard.nvim": "deferred-clipboard.nvim", + "devenv": "devenv", + "duck.nvim": "duck.nvim", + "emacs-overlay": "emacs-overlay", + "emacs-overlay-cached": "emacs-overlay-cached", + "feedback": "feedback", + "fenix": "fenix_2", + "filetype.nvim": "filetype.nvim", + "firefox": "firefox", + "firefox-addons": "firefox-addons", + "flake-compat": "flake-compat_4", + "flake-parts": "flake-parts", + "flake-utils": "flake-utils_7", + "fsread-nvim": "fsread-nvim", + "ghc-nixpkgs-unstable": "ghc-nixpkgs-unstable", + "git-issue": "git-issue", + "hercules-ci-effects": "hercules-ci-effects", + "home-manager": "home-manager", + "hyprland": "hyprland", + "impermanence": "impermanence", + "jupyenv": "jupyenv", + "latest": "latest", + "latest-home-manager": "latest-home-manager", + "mach-nix": "mach-nix", + "markid": "markid", + "mistty": "mistty", + "murmur.lua": "murmur.lua", + "neovim-flake": "neovim-flake", + "neovim-nightly-overlay": "neovim-nightly-overlay", + "nil": "nil", + "nix-doom-emacs": "nix-doom-emacs", + "nix-filter": "nix-filter", + "nix-formatter-pack": "nix-formatter-pack", + "nix-index-database": "nix-index-database", + "nix-on-droid": "nix-on-droid", + "nixGL": "nixGL", + "nixd": "nixd", + "nixified-ai": "nixified-ai", + "nixos-2211": "nixos-2211", + "nixos-wsl": "nixos-wsl", + "nixpkgs": "nixpkgs_20", + "nixpkgs-ruby": "nixpkgs-ruby", + "nvim-cmp": "nvim-cmp", + "nvim-lspconfig": "nvim-lspconfig", + "nvim-treesitter": "nvim-treesitter", + "ocaml-dev-template": "ocaml-dev-template", + "ocaml-overlay": "ocaml-overlay", + "org-novelist": "org-novelist", + "pup": "pup", + "pypi-deps-db": "pypi-deps-db", + "ruby-nix": "ruby-nix", + "rust-dev-template": "rust-dev-template", + "rust-overlay": "rust-overlay_4", + "sqlite-mode-extras": "sqlite-mode-extras", + "staging": "staging", + "statusline-action-hints.nvim": "statusline-action-hints.nvim", + "talon": "talon", + "telescope-makefile": "telescope-makefile", + "tree-grepper": "tree-grepper", + "unstable": "unstable", + "virtual-types.nvim": "virtual-types.nvim", + "yt-dlp": "yt-dlp" + } + }, + "rotate-text": { + "flake": false, + "locked": { + "lastModified": 1322962747, + "narHash": "sha256-SOeOgSlcEIsKhUiYDJv0p+mLUb420s9E2BmvZQvZ0wk=", + "owner": "debug-ito", + "repo": "rotate-text.el", + "rev": "48f193697db996855aee1ad2bc99b38c6646fe76", + "type": "github" + }, + "original": { + "owner": "debug-ito", + "repo": "rotate-text.el", + "type": "github" + } + }, + "ruby-nix": { + "inputs": { + "nixpkgs": "nixpkgs_22" + }, + "locked": { + "lastModified": 1688825976, + "narHash": "sha256-7EvZu+/+uNZ0kfSgQQIrRGg8RXcUN9UgRsobjbxEdBQ=", + "owner": "inscapist", + "repo": "ruby-nix", + "rev": "911d5e8584453e1aff0fb85c93aa163dcdd0f3f0", + "type": "github" + }, + "original": { + "owner": "inscapist", + "repo": "ruby-nix", + "type": "github" + } + }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1668182250, + "narHash": "sha256-PYGaOCiFvnJdVz+ZCaKF8geGdffXjJUNcMwaBHv0FT4=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "45ec315e01dc8dd1146dfeb65f0ef6e5c2efed78", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, + "rust-analyzer-src_2": { + "flake": false, + "locked": { + "lastModified": 1699451299, + "narHash": "sha256-7HJMyp62fCS6/aCCCASz8MdJM2/M8d1pBNukyLmPdwA=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "7059ae2fc2d55fa20d7e2671597b516431129445", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, + "rust-dev-template": { + "inputs": { + "nixpkgs": "nixpkgs_23", + "rust-overlay": "rust-overlay_3" + }, + "locked": { + "dir": "rust", + "lastModified": 1692727998, + "narHash": "sha256-ulLL1OrvPav2LvNJmzDViPuFGOIMDWdSpcpT7+vcXmE=", + "owner": "the-nix-way", + "repo": "dev-templates", + "rev": "1117b469aa83bef9e29616b7c67d80b14beb2c14", + "type": "github" + }, + "original": { + "dir": "rust", + "owner": "the-nix-way", + "repo": "dev-templates", + "type": "github" + } + }, + "rust-overlay": { + "inputs": { + "flake-utils": [ + "jupyenv", + "flake-utils" + ], + "nixpkgs": [ + "jupyenv", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1674008920, + "narHash": "sha256-ugwPxKjvmJ5GpzN/MHg8tuhe8nYi3SbJm5nWNy7CB0Q=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "eecc44934a0f6c02c02856b38bd3b6af3bec0870", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_2": { + "inputs": { + "flake-utils": [ + "nil", + "flake-utils" + ], + "nixpkgs": [ + "nil", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1696817516, + "narHash": "sha256-Xt9OY4Wnk9/vuUfA0OHFtmSlaen5GyiS9msgwOz3okI=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "c0df7f2a856b5ff27a3ce314f6d7aacf5fda546f", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_3": { + "inputs": { + "flake-utils": "flake-utils_18", + "nixpkgs": "nixpkgs_24" + }, + "locked": { + "lastModified": 1689302058, + "narHash": "sha256-yD74lcHTrw4niXcE9goJLbzsgyce48rQQoy5jK5ZK40=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "7b8dbbf4c67ed05a9bf3d9e658c12d4108bc24c8", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_4": { + "inputs": { + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "unstable" + ] + }, + "locked": { + "lastModified": 1699495996, + "narHash": "sha256-m0LWmnEJhHTY4gJX9HPsQ8voZptvr1Sx6dXkk9Xp0sI=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "603e4962d7d2225ba2caf66b0eabfcaa9a93c490", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "safe-coloured-text": { + "flake": false, + "locked": { + "lastModified": 1696884906, + "narHash": "sha256-7CanCNOCB5gFwqhEPFIoOojoM1iVJZKF5YRy7unUDuo=", + "owner": "NorfairKing", + "repo": "safe-coloured-text", + "rev": "50abcbfa2a2ed15c6186fa2381fe818bd93a730b", + "type": "github" + }, + "original": { + "owner": "NorfairKing", + "repo": "safe-coloured-text", + "type": "github" + } + }, + "sln-mode": { + "flake": false, + "locked": { + "lastModified": 1423727528, + "narHash": "sha256-XqkqPyEJuTtFslOz1fpTf/Klbd/zA7IGpzpmum/MGao=", + "owner": "sensorflo", + "repo": "sln-mode", + "rev": "0f91d1b957c7d2a7bab9278ec57b54d57f1dbd9c", + "type": "github" + }, + "original": { + "owner": "sensorflo", + "repo": "sln-mode", + "type": "github" + } + }, + "sqlite-mode-extras": { + "flake": false, + "locked": { + "lastModified": 1699429551, + "narHash": "sha256-X/TSG/MmFp3jTuLq48bBGQ5aYAhA4UV4tIrfQXYgVyQ=", + "owner": "xenodium", + "repo": "dotsies", + "rev": "0910fae7a5340bff5562c50522cf6033b0813220", + "type": "github" + }, + "original": { + "owner": "xenodium", + "repo": "dotsies", + "type": "github" + } + }, + "staging": { + "locked": { + "lastModified": 1699537863, + "narHash": "sha256-xXb+WIA9/TTkjhT8scKQcZR9z1YYgNdst1KKsfXAHWk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "b4df396365ad702d4a33908b9981dc902b2db0c6", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "staging", + "repo": "nixpkgs", + "type": "github" + } + }, + "statusline-action-hints.nvim": { + "flake": false, + "locked": { + "lastModified": 1694254260, + "narHash": "sha256-BTXmb1uGbXKkORnf1hbEa8jEmpPpzjMaerdldo5tkxs=", + "owner": "roobert", + "repo": "statusline-action-hints.nvim", + "rev": "ab10fef255dd4bc933c92d8f9969828f2f856e71", + "type": "github" + }, + "original": { + "owner": "roobert", + "repo": "statusline-action-hints.nvim", + "type": "github" + } + }, + "sydtest": { + "flake": false, + "locked": { + "lastModified": 1696883645, + "narHash": "sha256-Yr5piSv96hgKC7z7aHqo8kMKJPyL8ZG2lbDb7oFUZxw=", + "owner": "NorfairKing", + "repo": "sydtest", + "rev": "6313c1b211d14c1215cdf97b9933675cf9c2adb9", + "type": "github" + }, + "original": { + "owner": "NorfairKing", + "repo": "sydtest", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_10": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_11": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_12": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_13": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_14": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_5": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_6": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_7": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "systems_8": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_9": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "talon": { + "inputs": { + "nix-github-actions": "nix-github-actions", + "nixpkgs": [ + "unstable" + ] + }, + "locked": { + "lastModified": 1698974395, + "narHash": "sha256-Te2Mx7TLBJhNHgbEsB0sb8qSEe2TyjGQ9gRIw1XNJNY=", + "owner": "nix-community", + "repo": "talon-nix", + "rev": "d23e9f04449b892702bf247685e812e4c0950512", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "talon-nix", + "type": "github" + } + }, + "telescope-makefile": { + "flake": false, + "locked": { + "lastModified": 1676029323, + "narHash": "sha256-RFrONpvOiOhvBlSJNxRhsZIQ2zQ9Xl2zr6yRkVU7HMQ=", + "owner": "ptethng", + "repo": "telescope-makefile", + "rev": "6e5b5767751dbf73ad4f126840dcf1abfc38e891", + "type": "github" + }, + "original": { + "owner": "ptethng", + "repo": "telescope-makefile", + "type": "github" + } + }, + "textgen-src": { + "flake": false, + "locked": { + "lastModified": 1696789008, + "narHash": "sha256-+V8XOVnEyImj+a8uCkZXEHXW8bTIBRlnfMcQfcZNgqg=", + "owner": "oobabooga", + "repo": "text-generation-webui", + "rev": "2e471071af48e19867cfa522d2def44c24785c50", + "type": "github" + }, + "original": { + "owner": "oobabooga", + "ref": "v1.7", + "repo": "text-generation-webui", + "type": "github" + } + }, + "tree-grepper": { + "inputs": { + "flake-utils": [ + "flake-utils" + ], + "naersk": "naersk", + "nixpkgs": [ + "unstable" + ], + "tree-sitter-c": "tree-sitter-c", + "tree-sitter-cpp": "tree-sitter-cpp", + "tree-sitter-elixir": "tree-sitter-elixir", + "tree-sitter-elm": "tree-sitter-elm", + "tree-sitter-go": "tree-sitter-go", + "tree-sitter-haskell": "tree-sitter-haskell", + "tree-sitter-java": "tree-sitter-java", + "tree-sitter-javascript": "tree-sitter-javascript", + "tree-sitter-markdown": "tree-sitter-markdown", + "tree-sitter-nix": "tree-sitter-nix", + "tree-sitter-php": "tree-sitter-php", + "tree-sitter-python": "tree-sitter-python", + "tree-sitter-ruby": "tree-sitter-ruby", + "tree-sitter-rust": "tree-sitter-rust", + "tree-sitter-typescript": "tree-sitter-typescript" + }, + "locked": { + "lastModified": 1699355615, + "narHash": "sha256-w2YH7LiFU7znpAWUHB003SMTZV0/Ydk1GSKYihs3Gfk=", + "owner": "BrianHicks", + "repo": "tree-grepper", + "rev": "8d15b10d04452ccd5aa4419e09e81c6a47b9c8a7", + "type": "github" + }, + "original": { + "owner": "BrianHicks", + "repo": "tree-grepper", + "type": "github" + } + }, + "tree-sitter-c": { + "flake": false, + "locked": { + "lastModified": 1691959600, + "narHash": "sha256-39i06oXMQemfq3Y4TTXai6HFXvURVOif1v2i9LP4sAI=", + "owner": "tree-sitter", + "repo": "tree-sitter-c", + "rev": "a2b7bac3b313efbaa683d9a276ff63cdc544d960", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-c", + "type": "github" + } + }, + "tree-sitter-cpp": { + "flake": false, + "locked": { + "lastModified": 1692168382, + "narHash": "sha256-e9Mz84lssaPR80hlogyjXx+jA8gD8YVp4T06qC6gRVI=", + "owner": "tree-sitter", + "repo": "tree-sitter-cpp", + "rev": "a90f170f92d5d70e7c2d4183c146e61ba5f3a457", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-cpp", + "type": "github" + } + }, + "tree-sitter-elixir": { + "flake": false, + "locked": { + "lastModified": 1690442748, + "narHash": "sha256-hBHqQ3eBjknRPJjP+lQJU6NPFhUMtiv4FbKsTw28Bog=", + "owner": "elixir-lang", + "repo": "tree-sitter-elixir", + "rev": "a2861e88a730287a60c11ea9299c033c7d076e30", + "type": "github" + }, + "original": { + "owner": "elixir-lang", + "ref": "main", + "repo": "tree-sitter-elixir", + "type": "github" + } + }, + "tree-sitter-elm": { + "flake": false, + "locked": { + "lastModified": 1690715507, + "narHash": "sha256-KtijU8ZODsqcNZc4Roh0AILaBWFs+D1cnSUfwQlEx84=", + "owner": "elm-tooling", + "repo": "tree-sitter-elm", + "rev": "b075803c445191af3cf7dbfdc84efef5f5bbc0f5", + "type": "github" + }, + "original": { + "owner": "elm-tooling", + "ref": "main", + "repo": "tree-sitter-elm", + "type": "github" + } + }, + "tree-sitter-go": { + "flake": false, + "locked": { + "lastModified": 1690364909, + "narHash": "sha256-G7d8CHCyKDAb9j6ijRfHk/HlgPqSI+uvkuRIRRvjkHI=", + "owner": "tree-sitter", + "repo": "tree-sitter-go", + "rev": "bbaa67a180cfe0c943e50c55130918be8efb20bd", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-go", + "type": "github" + } + }, + "tree-sitter-haskell": { + "flake": false, + "locked": { + "lastModified": 1690487499, + "narHash": "sha256-JJvXkunDFRjWoXipxl1o2P+lRIDa4kw/Ys3LUu3piIY=", + "owner": "tree-sitter", + "repo": "tree-sitter-haskell", + "rev": "99706824b92f162d4e0f47c7e930bbccb367276e", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-haskell", + "type": "github" + } + }, + "tree-sitter-java": { + "flake": false, + "locked": { + "lastModified": 1692857861, + "narHash": "sha256-0kOLAVsrCUfpU8sZGRVrr+D3bGWj8bH2qce/ygrIw2w=", + "owner": "tree-sitter", + "repo": "tree-sitter-java", + "rev": "38be6eccc1b86d6ec5dca0976659e807fd4dc28d", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-java", + "type": "github" + } + }, + "tree-sitter-javascript": { + "flake": false, + "locked": { + "lastModified": 1692941092, + "narHash": "sha256-VbK2asd1CavcBYGia30MomQh+KOgKgz5ax10V6nEVEs=", + "owner": "tree-sitter", + "repo": "tree-sitter-javascript", + "rev": "f1e5a09b8d02f8209a68249c93f0ad647b228e6e", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-javascript", + "type": "github" + } + }, + "tree-sitter-markdown": { + "flake": false, + "locked": { + "lastModified": 1618750161, + "narHash": "sha256-86sDA+8xROfuWiNrWTfN7sExAqwfj+CyXq+ZeHpKSKg=", + "owner": "ikatyang", + "repo": "tree-sitter-markdown", + "rev": "8b8b77af0493e26d378135a3e7f5ae25b555b375", + "type": "github" + }, + "original": { + "owner": "ikatyang", + "repo": "tree-sitter-markdown", + "type": "github" + } + }, + "tree-sitter-nix": { + "flake": false, + "locked": { + "lastModified": 1689222204, + "narHash": "sha256-+o+f1TlhcrcCB3TNw1RyCjVZ+37e11nL+GWBPo0Mxxg=", + "owner": "cstrahan", + "repo": "tree-sitter-nix", + "rev": "66e3e9ce9180ae08fc57372061006ef83f0abde7", + "type": "github" + }, + "original": { + "owner": "cstrahan", + "repo": "tree-sitter-nix", + "type": "github" + } + }, + "tree-sitter-php": { + "flake": false, + "locked": { + "lastModified": 1692289393, + "narHash": "sha256-HZOIz9KiZ13aqeQtCeQln56RRRPUSgT7ulPJs54fzJc=", + "owner": "tree-sitter", + "repo": "tree-sitter-php", + "rev": "ce2c73a8d84b5648e8792698dc9fd955e5f6a906", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-php", + "type": "github" + } + }, + "tree-sitter-python": { + "flake": false, + "locked": { + "lastModified": 1692219578, + "narHash": "sha256-cV/QwvEQkIQcgo0Pm+3pUH2LhpYOPsuWMgjXMa8dv+s=", + "owner": "tree-sitter", + "repo": "tree-sitter-python", + "rev": "c01fb4e38587e959b9058b8cd34b9e6a3068c827", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-python", + "type": "github" + } + }, + "tree-sitter-ruby": { + "flake": false, + "locked": { + "lastModified": 1686602119, + "narHash": "sha256-0EaU9O67faGwtO1GIxjK4Uv1etd0p1vtfrVB3d6TDF8=", + "owner": "tree-sitter", + "repo": "tree-sitter-ruby", + "rev": "f257f3f57833d584050336921773738a3fd8ca22", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-ruby", + "type": "github" + } + }, + "tree-sitter-rust": { + "flake": false, + "locked": { + "lastModified": 1692862531, + "narHash": "sha256-2WPL7ap2fHEi0+pNnJlHLxKBqPrHsve+DzJSCqw/gpw=", + "owner": "tree-sitter", + "repo": "tree-sitter-rust", + "rev": "39eaeb41e17572c17e35bb050d6bf2da17568dbf", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-rust", + "type": "github" + } + }, + "tree-sitter-typescript": { + "flake": false, + "locked": { + "lastModified": 1689751053, + "narHash": "sha256-oZKit8kScXcOptmT2ckywL5JlAVe+wuwhuj6ThEI5OQ=", + "owner": "tree-sitter", + "repo": "tree-sitter-typescript", + "rev": "b1bf4825d9eaa0f3bdeb1e52f099533328acfbdf", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-typescript", + "type": "github" + } + }, + "ts-fold": { + "flake": false, + "locked": { + "lastModified": 1695278494, + "narHash": "sha256-O4NcUC1u08W8ZslqoA/i+iTaLotKwheURXQWBxLLMFc=", + "owner": "jcs-elpa", + "repo": "ts-fold", + "rev": "70b2c79ff4daa7351d4e2917b0343b9a18d4d4f2", + "type": "github" + }, + "original": { + "owner": "jcs-elpa", + "repo": "ts-fold", + "type": "github" + } + }, + "unstable": { + "locked": { + "lastModified": 1699343069, + "narHash": "sha256-s7BBhyLA6MI6FuJgs4F/SgpntHBzz40/qV0xLPW6A1Q=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ec750fd01963ab6b20ee1f0cb488754e8036d89d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "validity": { + "flake": false, + "locked": { + "lastModified": 1696884006, + "narHash": "sha256-w2dKXZrNxXm/hsYkef5ZLTDxm3IsIzdj3i2qc1GC+A8=", + "owner": "NorfairKing", + "repo": "validity", + "rev": "34e17fe6d92765209f1db8127aee13c74285805d", + "type": "github" + }, + "original": { + "owner": "NorfairKing", + "repo": "validity", + "type": "github" + } + }, + "virtual-types.nvim": { + "flake": false, + "locked": { + "lastModified": 1636214935, + "narHash": "sha256-OuWtzwyMABsVwPVRaVUYRJ4Riiqc5iYyUAJ1u87nX/M=", + "type": "tarball", + "url": "https://github.com/jubnzv/virtual-types.nvim/archive/9ef9f31c58cc9deb914ee728b8bda8f217f9d1c7.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/jubnzv/virtual-types.nvim/archive/9ef9f31c58cc9deb914ee728b8bda8f217f9d1c7.tar.gz" + } + }, + "wlroots": { + "flake": false, + "locked": { + "host": "gitlab.freedesktop.org", + "lastModified": 1697909146, + "narHash": "sha256-jU0I6FoCKnj4zIBL4daosFWh81U1fM719Z6cae8PxSY=", + "owner": "wlroots", + "repo": "wlroots", + "rev": "47bf87ade2bd32395615a385ebde1fefbcdf79a2", + "type": "gitlab" + }, + "original": { + "host": "gitlab.freedesktop.org", + "owner": "wlroots", + "repo": "wlroots", + "rev": "47bf87ade2bd32395615a385ebde1fefbcdf79a2", + "type": "gitlab" + } + }, + "ws-butler": { + "flake": false, + "locked": { + "lastModified": 1634511126, + "narHash": "sha256-c0y0ZPtxxICPk+eaNbbQf6t+FRCliNY54CCz9QHQ8ZI=", + "owner": "hlissner", + "repo": "ws-butler", + "rev": "572a10c11b6cb88293de48acbb59a059d36f9ba5", + "type": "github" + }, + "original": { + "owner": "hlissner", + "repo": "ws-butler", + "type": "github" + } + }, + "xdph": { + "inputs": { + "hyprland-protocols": [ + "hyprland", + "hyprland-protocols" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1697981233, + "narHash": "sha256-y8q4XUwx+gVK7i2eLjfR32lVo7TYvEslyzrmzYEaPZU=", + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "rev": "22e7a65ff9633e1dedfa5317fdffc49f68de2ff2", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "type": "github" + } + }, + "yt-dlp": { + "flake": false, + "locked": { + "lastModified": 1699398601, + "narHash": "sha256-pkqsBtDlUmFkKJumwmxx0R/EjlbYM9BGCFhFsfxi2rQ=", + "owner": "yt-dlp", + "repo": "yt-dlp", + "rev": "10025b715ea01489557eb2c5a3cc04d361fcdb52", + "type": "github" + }, + "original": { + "owner": "yt-dlp", + "repo": "yt-dlp", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.lock.unsupported b/flake.lock.unsupported new file mode 100644 index 00000000..3423df7b --- /dev/null +++ b/flake.lock.unsupported @@ -0,0 +1,4201 @@ +{ + "nodes": { + "action-hints.nvim": { + "flake": false, + "locked": { + "lastModified": 1694254260, + "narHash": "sha256-BTXmb1uGbXKkORnf1hbEa8jEmpPpzjMaerdldo5tkxs=", + "owner": "roobert", + "repo": "action-hints.nvim", + "rev": "ab10fef255dd4bc933c92d8f9969828f2f856e71", + "type": "github" + }, + "original": { + "owner": "roobert", + "repo": "action-hints.nvim", + "type": "github" + } + }, + "alejandra": { + "inputs": { + "fenix": "fenix", + "flakeCompat": "flakeCompat", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1694541876, + "narHash": "sha256-lStDIPizbJipd1JpNKX1olBKzyIosyC2U/mVFwJPcZE=", + "owner": "kamadorueda", + "repo": "alejandra", + "rev": "e53c2c6c6c103dc3f848dbd9fbd93ee7c69c109f", + "type": "github" + }, + "original": { + "owner": "kamadorueda", + "repo": "alejandra", + "type": "github" + } + }, + "autodocodec": { + "flake": false, + "locked": { + "lastModified": 1696603846, + "narHash": "sha256-GfcJ1T+4SQ+3T1Q4jO7xNcqn7Kvfp65MF19Un7K36yI=", + "owner": "NorfairKing", + "repo": "autodocodec", + "rev": "762eb76333e9812160733e377b973ff76fe45378", + "type": "github" + }, + "original": { + "owner": "NorfairKing", + "repo": "autodocodec", + "type": "github" + } + }, + "bundix": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1688825865, + "narHash": "sha256-7HP6amLkY3u2NvPguanIW/gugUvGsmY5OMY6tKpjMrA=", + "owner": "inscapist", + "repo": "bundix", + "rev": "5cb01869cb09fb367c02527b1f66707fb9277076", + "type": "github" + }, + "original": { + "owner": "inscapist", + "ref": "main", + "repo": "bundix", + "type": "github" + } + }, + "cachix": { + "locked": { + "lastModified": 1635350005, + "narHash": "sha256-tAMJnUwfaDEB2aa31jGcu7R7bzGELM9noc91L2PbVjg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "1c1f5649bb9c1b0d98637c8c365228f57126f361", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-20.09", + "repo": "nixpkgs", + "type": "github" + } + }, + "clojure-dev-template": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "dir": "clojure", + "lastModified": 1692727998, + "narHash": "sha256-ulLL1OrvPav2LvNJmzDViPuFGOIMDWdSpcpT7+vcXmE=", + "owner": "the-nix-way", + "repo": "dev-templates", + "rev": "1117b469aa83bef9e29616b7c67d80b14beb2c14", + "type": "github" + }, + "original": { + "dir": "clojure", + "owner": "the-nix-way", + "repo": "dev-templates", + "type": "github" + } + }, + "code_runner.nvim": { + "flake": false, + "locked": { + "lastModified": 1662055737, + "narHash": "sha256-oVkjS91FrHMu3JtR5yccJ6+dvRd/0xE4gMsfwGxJTwU=", + "type": "tarball", + "url": "https://github.com/CRAG666/code_runner.nvim/archive/7cdeb206520c5afb2bd7655da981a9bcdc3f43f8.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/CRAG666/code_runner.nvim/archive/7cdeb206520c5afb2bd7655da981a9bcdc3f43f8.tar.gz" + } + }, + "deferred-clipboard.nvim": { + "flake": false, + "locked": { + "lastModified": 1677685907, + "narHash": "sha256-nanNQEtpjv0YKEkkrPmq/5FPxq+Yj/19cs0Gf7YgKjU=", + "owner": "EtiamNullam", + "repo": "deferred-clipboard.nvim", + "rev": "810a29d166eaa41afc220cc7cd85eeaa3c43b37f", + "type": "github" + }, + "original": { + "owner": "EtiamNullam", + "repo": "deferred-clipboard.nvim", + "type": "github" + } + }, + "dekking": { + "flake": false, + "locked": { + "lastModified": 1694680694, + "narHash": "sha256-LON8AC76I28A7cyfuDwvX7/uMOKPNwkuS8Y/YyOXv2c=", + "owner": "NorfairKing", + "repo": "dekking", + "rev": "97875f0a6aa9ca659dfe3303d02dfdf94f56a36c", + "type": "github" + }, + "original": { + "owner": "NorfairKing", + "repo": "dekking", + "type": "github" + } + }, + "devenv": { + "inputs": { + "flake-compat": "flake-compat", + "nix": "nix", + "nixpkgs": "nixpkgs_3", + "pre-commit-hooks": "pre-commit-hooks" + }, + "locked": { + "lastModified": 1700691772, + "narHash": "sha256-LidI1PVpxL5/WchIRfMszzsiA5t40QyJiU8V/vd4ZZE=", + "owner": "cachix", + "repo": "devenv", + "rev": "38302f4b9ff45915151848b719c5c4127946c1b8", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "devenv", + "type": "github" + } + }, + "doom-emacs": { + "flake": false, + "locked": { + "lastModified": 1662497747, + "narHash": "sha256-4n7E1fqda7cn5/F2jTkOnKw1juG6XMS/FI9gqODL3aU=", + "owner": "doomemacs", + "repo": "doomemacs", + "rev": "3853dff5e11655e858d0bfae64b70cb12ef685ac", + "type": "github" + }, + "original": { + "owner": "doomemacs", + "repo": "doomemacs", + "rev": "3853dff5e11655e858d0bfae64b70cb12ef685ac", + "type": "github" + } + }, + "doom-snippets": { + "flake": false, + "locked": { + "lastModified": 1694887483, + "narHash": "sha256-KlKhruPSLPSKqUnr5/U65arm16VrY9ORzm+XKNZhpTQ=", + "owner": "doomemacs", + "repo": "snippets", + "rev": "f022984ee1318a4015d5d081b3c3dab5a60dc6ff", + "type": "github" + }, + "original": { + "owner": "doomemacs", + "repo": "snippets", + "type": "github" + } + }, + "duck.nvim": { + "flake": false, + "locked": { + "lastModified": 1700680572, + "narHash": "sha256-bw+V5zn/HuOBdlnO/OdYGmnAMSZVwxcFqVa3f09QASw=", + "owner": "tamton-aquib", + "repo": "duck.nvim", + "rev": "977b4aa4004726ed3d87b2437f543cef2153b8ea", + "type": "github" + }, + "original": { + "owner": "tamton-aquib", + "repo": "duck.nvim", + "type": "github" + } + }, + "emacs-overlay": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_4", + "nixpkgs-stable": "nixpkgs-stable_2" + }, + "locked": { + "lastModified": 1700732379, + "narHash": "sha256-JL+7LVTNhjLxExqrPzvyHLyJY+xHk+fK6h7HdD+Ytpc=", + "owner": "nix-community", + "repo": "emacs-overlay", + "rev": "b60a4a64a9659c58aa5e28724e4a9dae7872a546", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "emacs-overlay", + "type": "github" + } + }, + "emacs-overlay-cached": { + "inputs": { + "flake-utils": "flake-utils_3", + "nixpkgs": "nixpkgs_5", + "nixpkgs-stable": "nixpkgs-stable_3" + }, + "locked": { + "lastModified": 1698082382, + "narHash": "sha256-Hyynbwt1dF7O35MRr9GGek6spPLXCPEiYGorRpBMECs=", + "owner": "nix-community", + "repo": "emacs-overlay", + "rev": "7fe510de8909d248df2d32d758303a325b3738f9", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "emacs-overlay", + "rev": "7fe510de8909d248df2d32d758303a325b3738f9", + "type": "github" + } + }, + "emacs-overlay_2": { + "flake": false, + "locked": { + "lastModified": 1676366521, + "narHash": "sha256-i4UAY8t9Au9SJtsgYppa3NHSVf1YkV6yqnNIQd+Km4g=", + "owner": "nix-community", + "repo": "emacs-overlay", + "rev": "c16be6de78ea878aedd0292aa5d4a1ee0a5da501", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "emacs-overlay", + "rev": "c16be6de78ea878aedd0292aa5d4a1ee0a5da501", + "type": "github" + } + }, + "emacs-so-long": { + "flake": false, + "locked": { + "lastModified": 1575031854, + "narHash": "sha256-xIa5zO0ZaToDrec1OFjBK6l39AbA4l/CE4LInVu2hi0=", + "owner": "hlissner", + "repo": "emacs-so-long", + "rev": "ed666b0716f60e8988c455804de24b55919e71ca", + "type": "github" + }, + "original": { + "owner": "hlissner", + "repo": "emacs-so-long", + "type": "github" + } + }, + "evil-escape": { + "flake": false, + "locked": { + "lastModified": 1588439096, + "narHash": "sha256-aB2Ge5o/93B18tPf4fN1c+O46CNh/nOqwLJbox4c8Gw=", + "owner": "hlissner", + "repo": "evil-escape", + "rev": "819f1ee1cf3f69a1ae920e6004f2c0baeebbe077", + "type": "github" + }, + "original": { + "owner": "hlissner", + "repo": "evil-escape", + "type": "github" + } + }, + "evil-markdown": { + "flake": false, + "locked": { + "lastModified": 1626852210, + "narHash": "sha256-HBBuZ1VWIn6kwK5CtGIvHM1+9eiNiKPH0GUsyvpUVN8=", + "owner": "Somelauw", + "repo": "evil-markdown", + "rev": "8e6cc68af83914b2fa9fd3a3b8472573dbcef477", + "type": "github" + }, + "original": { + "owner": "Somelauw", + "repo": "evil-markdown", + "type": "github" + } + }, + "evil-org-mode": { + "flake": false, + "locked": { + "lastModified": 1607203864, + "narHash": "sha256-JxwqVYDN6OIJEH15MVI6XOZAPtUWUhJQWHyzcrUvrFg=", + "owner": "hlissner", + "repo": "evil-org-mode", + "rev": "a9706da260c45b98601bcd72b1d2c0a24a017700", + "type": "github" + }, + "original": { + "owner": "hlissner", + "repo": "evil-org-mode", + "type": "github" + } + }, + "evil-quick-diff": { + "flake": false, + "locked": { + "lastModified": 1575189609, + "narHash": "sha256-oGzl1ayW9rIuq0haoiFS7RZsS8NFMdEA7K1BSozgnJU=", + "owner": "rgrinberg", + "repo": "evil-quick-diff", + "rev": "69c883720b30a892c63bc89f49d4f0e8b8028908", + "type": "github" + }, + "original": { + "owner": "rgrinberg", + "repo": "evil-quick-diff", + "type": "github" + } + }, + "explain-pause-mode": { + "flake": false, + "locked": { + "lastModified": 1595842060, + "narHash": "sha256-++znrjiDSx+cy4okFBBXUBkRFdtnE2x+trkmqjB3Njs=", + "owner": "lastquestion", + "repo": "explain-pause-mode", + "rev": "2356c8c3639cbeeb9751744dbe737267849b4b51", + "type": "github" + }, + "original": { + "owner": "lastquestion", + "repo": "explain-pause-mode", + "type": "github" + } + }, + "fast-myers-diff": { + "flake": false, + "locked": { + "lastModified": 1696885120, + "narHash": "sha256-wqJ0/P3pXOISDhRHpEt11GVYllb+DFt46Mh+k/y1bYw=", + "owner": "NorfairKing", + "repo": "fast-myers-diff", + "rev": "c106ef803c69ef9440399247ec4ffd59c84f6fc7", + "type": "github" + }, + "original": { + "owner": "NorfairKing", + "repo": "fast-myers-diff", + "type": "github" + } + }, + "feedback": { + "inputs": { + "autodocodec": "autodocodec", + "dekking": "dekking", + "fast-myers-diff": "fast-myers-diff", + "nixpkgs": "nixpkgs_6", + "pre-commit-hooks": "pre-commit-hooks_2", + "safe-coloured-text": "safe-coloured-text", + "sydtest": "sydtest", + "validity": "validity" + }, + "locked": { + "lastModified": 1699717881, + "narHash": "sha256-8PYJ5UBACkS56RW6Ewb8okt9fnspQascL5kWLapkeU4=", + "owner": "NorfairKing", + "repo": "feedback", + "rev": "f891d19cd8bd1b6aebfca37f37261cc6c6ef2f27", + "type": "github" + }, + "original": { + "owner": "NorfairKing", + "repo": "feedback", + "type": "github" + } + }, + "fenix": { + "inputs": { + "nixpkgs": [ + "alejandra", + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src" + }, + "locked": { + "lastModified": 1668234453, + "narHash": "sha256-FmuZThToBvRsqCauYJ3l8HJoGLAY5cMULeYEKIaGrRw=", + "owner": "nix-community", + "repo": "fenix", + "rev": "8f219f6b36e8d0d56afa7f67e6e3df63ef013cdb", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "fenix", + "type": "github" + } + }, + "fenix_2": { + "inputs": { + "nixpkgs": [ + "unstable" + ], + "rust-analyzer-src": "rust-analyzer-src_2" + }, + "locked": { + "lastModified": 1700720546, + "narHash": "sha256-p31fe4lp2KBCyUf58mgai1xYjMLl5S0PQiSvv9+1j/Y=", + "owner": "nix-community", + "repo": "fenix", + "rev": "5ade7808d45671b545f3516adf61bc9a604a6246", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "fenix", + "type": "github" + } + }, + "filetype.nvim": { + "flake": false, + "locked": { + "lastModified": 1654194633, + "narHash": "sha256-B+VvgQj8akiKe+MX/dV2/mdaaqF8s2INW3phdPJ5TFA=", + "type": "tarball", + "url": "https://github.com/nathom/filetype.nvim/archive/b522628a45a17d58fc0073ffd64f9dc9530a8027.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/nathom/filetype.nvim/archive/b522628a45a17d58fc0073ffd64f9dc9530a8027.tar.gz" + } + }, + "firefox": { + "inputs": { + "cachix": "cachix", + "flake-compat": "flake-compat_3", + "lib-aggregate": "lib-aggregate", + "mozilla": "mozilla", + "nixpkgs": "nixpkgs_8" + }, + "locked": { + "lastModified": 1700742339, + "narHash": "sha256-mh7WhmfOj7coI9Ft+KFrGO/d7QcZwXruFEiqsAftUF4=", + "owner": "nix-community", + "repo": "flake-firefox-nightly", + "rev": "ba02e6854f7babb69bc7db41868d9722c54f6a7c", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "flake-firefox-nightly", + "type": "github" + } + }, + "firefox-addons": { + "inputs": { + "flake-utils": "flake-utils_6", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "dir": "pkgs/firefox-addons", + "lastModified": 1700712158, + "narHash": "sha256-48BYQsb8by0O3jF3iRyRV0i06S6grxj4UcFPPeuNU4s=", + "owner": "rycee", + "repo": "nur-expressions", + "rev": "bedfff74a9c318ea2e82f6ce38964c8df803ec10", + "type": "gitlab" + }, + "original": { + "dir": "pkgs/firefox-addons", + "owner": "rycee", + "repo": "nur-expressions", + "type": "gitlab" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_10": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_3": { + "locked": { + "lastModified": 1688025799, + "narHash": "sha256-ktpB4dRtnksm9F5WawoIkEneh1nrEvuxb5lJFt1iOyw=", + "owner": "nix-community", + "repo": "flake-compat", + "rev": "8bf105319d44f6b9f0d764efa4fdef9f1cc9ba1c", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_4": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_5": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_6": { + "flake": false, + "locked": { + "lastModified": 1627913399, + "narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_7": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_8": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_9": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "unstable" + ] + }, + "locked": { + "lastModified": 1698882062, + "narHash": "sha256-HkhafUayIqxXyHH1X8d9RDl1M2CkFgZLjKD3MzabiEo=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "8c9fa2545007b49a5db5f650ae91f227672c3877", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "hercules-ci-effects", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1696343447, + "narHash": "sha256-B2xAZKLkkeRFG5XcHHSXXcP7To9Xzr59KXeZiRf4vdQ=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4", + "type": "github" + }, + "original": { + "id": "flake-parts", + "type": "indirect" + } + }, + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": [ + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1698882062, + "narHash": "sha256-HkhafUayIqxXyHH1X8d9RDl1M2CkFgZLjKD3MzabiEo=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "8c9fa2545007b49a5db5f650ae91f227672c3877", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_4": { + "inputs": { + "nixpkgs-lib": [ + "neovim-nightly-overlay", + "hercules-ci-effects", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1696343447, + "narHash": "sha256-B2xAZKLkkeRFG5XcHHSXXcP7To9Xzr59KXeZiRf4vdQ=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4", + "type": "github" + }, + "original": { + "id": "flake-parts", + "type": "indirect" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1685518550, + "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_10": { + "locked": { + "lastModified": 1642700792, + "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_11": { + "inputs": { + "systems": "systems_8" + }, + "locked": { + "lastModified": 1685518550, + "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_12": { + "inputs": { + "systems": "systems_9" + }, + "locked": { + "lastModified": 1685518550, + "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_13": { + "inputs": { + "systems": "systems_10" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_14": { + "inputs": { + "systems": "systems_11" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_15": { + "locked": { + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_16": { + "inputs": { + "systems": "systems_12" + }, + "locked": { + "lastModified": 1689068808, + "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_17": { + "inputs": { + "systems": "systems_13" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_18": { + "inputs": { + "systems": "systems_14" + }, + "locked": { + "lastModified": 1681202837, + "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "cfacdce06f30d2b68473a46042957675eebb3401", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { + "inputs": { + "systems": "systems_3" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_4": { + "inputs": { + "systems": "systems_4" + }, + "locked": { + "lastModified": 1685518550, + "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_5": { + "inputs": { + "systems": "systems_5" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_6": { + "locked": { + "lastModified": 1629284811, + "narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c5d161cc0af116a2e17f54316f0bf43f0819785c", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_7": { + "inputs": { + "systems": "systems_6" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_8": { + "locked": { + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_9": { + "locked": { + "lastModified": 1629481132, + "narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "997f7efcb746a9c140ce1f13c72263189225f482", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flakeCompat": { + "flake": false, + "locked": { + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flatpaks": { + "locked": { + "lastModified": 1699563939, + "narHash": "sha256-2Z4IP5Vb7jDVaDrKMO1tzLvpfuBpgTk9kJ2Okurv7rc=", + "owner": "gmodena", + "repo": "nix-flatpak", + "rev": "df3ea9930422fb14bf00e857ff771ddb85aafba6", + "type": "github" + }, + "original": { + "owner": "gmodena", + "ref": "v0.1.0", + "repo": "nix-flatpak", + "type": "github" + } + }, + "format-all": { + "flake": false, + "locked": { + "lastModified": 1581716637, + "narHash": "sha256-ul7LCe60W8TIvUmUtZtZRo8489TK9iTPDsLHmzxY57M=", + "owner": "lassik", + "repo": "emacs-format-all-the-code", + "rev": "47d862d40a088ca089c92cd393c6dca4628f87d3", + "type": "github" + }, + "original": { + "owner": "lassik", + "repo": "emacs-format-all-the-code", + "rev": "47d862d40a088ca089c92cd393c6dca4628f87d3", + "type": "github" + } + }, + "fsread-nvim": { + "flake": false, + "locked": { + "lastModified": 1676854047, + "narHash": "sha256-CsyBn8iAx5m1rhHW+HfbUSbtyTCaSG6/mgyrh+5KOqo=", + "owner": "nullchilly", + "repo": "fsread.nvim", + "rev": "a637bf048f733def7c5c46f5bf482f93a8311b29", + "type": "github" + }, + "original": { + "owner": "nullchilly", + "repo": "fsread.nvim", + "type": "github" + } + }, + "ghc-nixpkgs-unstable": { + "locked": { + "lastModified": 1696748673, + "narHash": "sha256-UbPHrH4dKN/66EpfFpoG4St4XZYDX9YcMVRQGWzAUNA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9957cd48326fe8dbd52fdc50dd2502307f188b0d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9957cd48326fe8dbd52fdc50dd2502307f188b0d", + "type": "github" + } + }, + "git-issue": { + "flake": false, + "locked": { + "lastModified": 1674927719, + "narHash": "sha256-X9N28nJcDqHNMsnJZoxud9k2QjMJihqLH232vSVHvUo=", + "owner": "dspinellis", + "repo": "git-issue", + "rev": "4d2bc4173bf803d74bf2ae54f892bd08754f1b48", + "type": "github" + }, + "original": { + "owner": "dspinellis", + "repo": "git-issue", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "devenv", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1660459072, + "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_2": { + "inputs": { + "nixpkgs": [ + "feedback", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1660459072, + "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_3": { + "flake": false, + "locked": { + "lastModified": 1611672876, + "narHash": "sha256-qHu3uZ/o9jBHiA3MEKHJ06k7w4heOhA+4HCSIvflRxo=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "211907489e9f198594c0eb0ca9256a1949c9d412", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_4": { + "inputs": { + "nixpkgs": [ + "jupyenv", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1660459072, + "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "hercules-ci-effects": { + "inputs": { + "flake-parts": "flake-parts_2", + "nixpkgs": [ + "unstable" + ] + }, + "locked": { + "lastModified": 1699381651, + "narHash": "sha256-mZlQ54xJs3j5+SJrLhzePPMXzS+Czbx7gNyOnOAQrHA=", + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "rev": "0bd99f5ab7ec7a74c11238bd02bb29e709c14328", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "type": "github" + } + }, + "hercules-ci-effects_2": { + "inputs": { + "flake-parts": "flake-parts_4", + "nixpkgs": [ + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1699381651, + "narHash": "sha256-mZlQ54xJs3j5+SJrLhzePPMXzS+Czbx7gNyOnOAQrHA=", + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "rev": "0bd99f5ab7ec7a74c11238bd02bb29e709c14328", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "type": "github" + } + }, + "hls": { + "inputs": { + "flake-compat": "flake-compat_6", + "flake-utils": "flake-utils_9", + "gitignore": "gitignore_3", + "nixpkgs": "nixpkgs_10", + "pre-commit-hooks": "pre-commit-hooks_3" + }, + "locked": { + "lastModified": 1637213318, + "narHash": "sha256-ZgxPwV7t4DyGYP7aXoetq+JHtd73XlOV2fYSflQmOXw=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "311107eabbf0537e0c192b2c377d282505b4eff1", + "type": "github" + }, + "original": { + "owner": "haskell", + "repo": "haskell-language-server", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1700392168, + "narHash": "sha256-v5LprEFx3u4+1vmds9K0/i7sHjT0IYGs7u9v54iz/OA=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "28535c3a34d79071f2ccb68671971ce0c0984d7e", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-23.05", + "repo": "home-manager", + "type": "github" + } + }, + "hyprland": { + "inputs": { + "hyprland-protocols": "hyprland-protocols", + "nixpkgs": "nixpkgs_9", + "systems": "systems_7", + "wlroots": "wlroots", + "xdph": "xdph" + }, + "locked": { + "lastModified": 1700739112, + "narHash": "sha256-lsJWWR8JjIWku1AcMrHa7wO4UILytsFRgkFY7T9yRGQ=", + "owner": "hyprwm", + "repo": "Hyprland", + "rev": "e40e486f61f2643578b9977b86f408799dbc75fd", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "Hyprland", + "type": "github" + } + }, + "hyprland-protocols": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1691753796, + "narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, + "ihaskell": { + "inputs": { + "flake-compat": [ + "jupyenv", + "flake-compat" + ], + "flake-utils": [ + "jupyenv", + "flake-utils" + ], + "hls": "hls", + "nixpkgs": [ + "jupyenv", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1671426600, + "narHash": "sha256-MahAFyp6AxY0H61U6zqJXM1NsckNNkK6iqONEtOPSK0=", + "owner": "ihaskell", + "repo": "ihaskell", + "rev": "1c22a874ac0c8ed019229f4a0cd5a0bfda017357", + "type": "github" + }, + "original": { + "owner": "ihaskell", + "repo": "ihaskell", + "type": "github" + } + }, + "impermanence": { + "locked": { + "lastModified": 1697303681, + "narHash": "sha256-caJ0rXeagaih+xTgRduYtYKL1rZ9ylh06CIrt1w5B4g=", + "owner": "nix-community", + "repo": "impermanence", + "rev": "0f317c2e9e56550ce12323eb39302d251618f5b5", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "impermanence", + "type": "github" + } + }, + "invokeai-src": { + "flake": false, + "locked": { + "lastModified": 1697424725, + "narHash": "sha256-y3nxZ4PQ/d2wMX1crpJPDMYXf48YBG0sRIBOTgN6XlI=", + "owner": "invoke-ai", + "repo": "InvokeAI", + "rev": "ad786130ffb11f91cbfcc40846114dd1fdcecdf6", + "type": "github" + }, + "original": { + "owner": "invoke-ai", + "ref": "v3.3.0post3", + "repo": "InvokeAI", + "type": "github" + } + }, + "jupyenv": { + "inputs": { + "flake-compat": "flake-compat_5", + "flake-utils": "flake-utils_8", + "ihaskell": "ihaskell", + "nix-dart": "nix-dart", + "nixpkgs": "nixpkgs_11", + "nixpkgs-stable": "nixpkgs-stable_5", + "npmlock2nix": "npmlock2nix", + "opam-nix": "opam-nix", + "poetry2nix": "poetry2nix", + "pre-commit-hooks": "pre-commit-hooks_4", + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1684225403, + "narHash": "sha256-8OYnupVWa2yZPQ2dEHIMfxLYrXAKCoDa8B3DL5dhSGE=", + "owner": "573", + "repo": "jupyenv-aarch64-experimental", + "rev": "43a8d8d65e88a689e917b6aefc179e82f0221a1d", + "type": "github" + }, + "original": { + "owner": "573", + "repo": "jupyenv-aarch64-experimental", + "type": "github" + } + }, + "latest": { + "locked": { + "lastModified": 1700747666, + "narHash": "sha256-Lha6BCwyMp7NF3FuYQOW9eqQ0cE5ip8Wds3SNEj/N54=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "8b40cd457e0e5e8fbad82461c6397b3709e35f3c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "master", + "repo": "nixpkgs", + "type": "github" + } + }, + "latest-home-manager": { + "inputs": { + "nixpkgs": "nixpkgs_12" + }, + "locked": { + "lastModified": 1700695018, + "narHash": "sha256-MAiPLgBF4GLzSOlhnPCDWkWW5CDx4i7ApIYaR+TwTVg=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "134deb46abd5d0889d913b8509413f6f38b0811e", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "lib-aggregate": { + "inputs": { + "flake-utils": "flake-utils_5", + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1700395747, + "narHash": "sha256-pzLYZGK34vhAFfyAJjcZYX3BK0Ap/QY/rd8B6Q30tHo=", + "owner": "nix-community", + "repo": "lib-aggregate", + "rev": "474538707da35589543af5a1c8c31f9978841add", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "lib-aggregate", + "type": "github" + } + }, + "lowdown-src": { + "flake": false, + "locked": { + "lastModified": 1633514407, + "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", + "owner": "kristapsdz", + "repo": "lowdown", + "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "type": "github" + }, + "original": { + "owner": "kristapsdz", + "repo": "lowdown", + "type": "github" + } + }, + "mach-nix": { + "inputs": { + "flake-utils": "flake-utils_10", + "nixpkgs": [ + "unstable" + ], + "pypi-deps-db": [ + "pypi-deps-db" + ] + }, + "locked": { + "lastModified": 1698993818, + "narHash": "sha256-bs0pQ13R8OG7C4hcCdojoCZ7ubkeVIohIRZIOzjWlpY=", + "owner": "DavHau", + "repo": "mach-nix", + "rev": "c7477e767e4cf794b10d550aeb8a361b515c5f73", + "type": "github" + }, + "original": { + "owner": "DavHau", + "repo": "mach-nix", + "type": "github" + } + }, + "markid": { + "flake": false, + "locked": { + "lastModified": 1697604241, + "narHash": "sha256-xTEKyc3+BadA0q0Kx9MMSdkzApEEYYZMtQqSCbt42Rs=", + "owner": "David-Kunz", + "repo": "markid", + "rev": "9b249e4d2ad0767a1091017cd52264590e41a274", + "type": "github" + }, + "original": { + "owner": "David-Kunz", + "repo": "markid", + "type": "github" + } + }, + "mirage-opam-overlays": { + "flake": false, + "locked": { + "lastModified": 1661959605, + "narHash": "sha256-CPTuhYML3F4J58flfp3ZbMNhkRkVFKmBEYBZY5tnQwA=", + "owner": "dune-universe", + "repo": "mirage-opam-overlays", + "rev": "05f1c1823d891ce4d8adab91f5db3ac51d86dc0b", + "type": "github" + }, + "original": { + "owner": "dune-universe", + "repo": "mirage-opam-overlays", + "type": "github" + } + }, + "mistty": { + "flake": false, + "locked": { + "lastModified": 1700684951, + "narHash": "sha256-nn3e0CpO9QyG6eW926PmxzBKpO1hFNfx08kXUxrSZBQ=", + "owner": "szermatt", + "repo": "mistty", + "rev": "d51d6d995db42377d225169ec8ad200cbbfca401", + "type": "github" + }, + "original": { + "owner": "szermatt", + "repo": "mistty", + "type": "github" + } + }, + "mozilla": { + "flake": false, + "locked": { + "lastModified": 1695805681, + "narHash": "sha256-1ElPLD8eFfnuIk0G52HGGpRtQZ4QPCjChRlEOfkZ5ro=", + "owner": "mozilla", + "repo": "nixpkgs-mozilla", + "rev": "6eabade97bc28d707a8b9d82ad13ef143836736e", + "type": "github" + }, + "original": { + "owner": "mozilla", + "repo": "nixpkgs-mozilla", + "type": "github" + } + }, + "murmur.lua": { + "flake": false, + "locked": { + "lastModified": 1689819647, + "narHash": "sha256-Wdk7NSxO8VgRPoKQE5iudgP9KpWhjX3mdURFPjuB/DI=", + "owner": "nyngwang", + "repo": "murmur.lua", + "rev": "85d3f1c3e98fa60b523abf40f4951d4ddb44fa54", + "type": "github" + }, + "original": { + "owner": "nyngwang", + "repo": "murmur.lua", + "type": "github" + } + }, + "naersk": { + "inputs": { + "nixpkgs": [ + "tree-grepper", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1692351612, + "narHash": "sha256-KTGonidcdaLadRnv9KFgwSMh1ZbXoR/OBmPjeNMhFwU=", + "owner": "nmattia", + "repo": "naersk", + "rev": "78789c30d64dea2396c9da516bbcc8db3a475207", + "type": "github" + }, + "original": { + "owner": "nmattia", + "repo": "naersk", + "type": "github" + } + }, + "neovim-flake": { + "inputs": { + "flake-utils": "flake-utils_11", + "nixpkgs": "nixpkgs_13" + }, + "locked": { + "dir": "contrib", + "lastModified": 1700740697, + "narHash": "sha256-+7z4zttvBY0SFy95xHAaDnajnaL6Ym8IgCffWeq+BbA=", + "owner": "neovim", + "repo": "neovim", + "rev": "c126a3756a09716ed64fd2acb9eee5d411c4aa7b", + "type": "github" + }, + "original": { + "dir": "contrib", + "owner": "neovim", + "repo": "neovim", + "type": "github" + } + }, + "neovim-flake_2": { + "inputs": { + "flake-utils": "flake-utils_12", + "nixpkgs": [ + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "dir": "contrib", + "lastModified": 1700415469, + "narHash": "sha256-uRdcRPnOkaL/rk3c/u2zUV6hPDoaplWAbJ6ajlhHdaw=", + "owner": "neovim", + "repo": "neovim", + "rev": "7ca2d64e8bbfb73f33cf82a2f9c03808bfea3d95", + "type": "github" + }, + "original": { + "dir": "contrib", + "owner": "neovim", + "repo": "neovim", + "type": "github" + } + }, + "neovim-nightly-overlay": { + "inputs": { + "flake-compat": "flake-compat_8", + "flake-parts": "flake-parts_3", + "hercules-ci-effects": "hercules-ci-effects_2", + "neovim-flake": "neovim-flake_2", + "nixpkgs": "nixpkgs_14" + }, + "locked": { + "lastModified": 1700438595, + "narHash": "sha256-3Kr57JalUnLCJ4EpencaE+Dh7orKF7VBcU/YyrjSWYM=", + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "rev": "d811ebe5a826ccdc0c27f89b1e41314828d652aa", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "type": "github" + } + }, + "nil": { + "inputs": { + "flake-utils": "flake-utils_13", + "nixpkgs": "nixpkgs_15", + "rust-overlay": "rust-overlay_2" + }, + "locked": { + "lastModified": 1699423608, + "narHash": "sha256-WEVUgivm5DCziwZqiXRPeoD3FQTXW38ExKrZjvMveqE=", + "owner": "oxalica", + "repo": "nil", + "rev": "5607d429016d6f9a72843b07127fad23ea9d661f", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "nil", + "type": "github" + } + }, + "nix": { + "inputs": { + "lowdown-src": "lowdown-src", + "nixpkgs": [ + "devenv", + "nixpkgs" + ], + "nixpkgs-regression": "nixpkgs-regression" + }, + "locked": { + "lastModified": 1676545802, + "narHash": "sha256-EK4rZ+Hd5hsvXnzSzk2ikhStJnD63odF7SzsQ8CuSPU=", + "owner": "domenkozar", + "repo": "nix", + "rev": "7c91803598ffbcfe4a55c44ac6d49b2cf07a527f", + "type": "github" + }, + "original": { + "owner": "domenkozar", + "ref": "relaxed-flakes", + "repo": "nix", + "type": "github" + } + }, + "nix-dart": { + "inputs": { + "flake-utils": [ + "jupyenv", + "flake-utils" + ], + "nixpkgs": [ + "jupyenv", + "nixpkgs" + ], + "pub2nix": "pub2nix" + }, + "locked": { + "lastModified": 1673740150, + "narHash": "sha256-JiZrr75JILHW7IaNW3MwpYn+084Q6/gnXScPR7Pozhs=", + "owner": "djacu", + "repo": "nix-dart", + "rev": "8ee4e1a5ec0cc6c1e15860c4733f741485e8231e", + "type": "github" + }, + "original": { + "owner": "djacu", + "repo": "nix-dart", + "type": "github" + } + }, + "nix-doom-emacs": { + "inputs": { + "doom-emacs": "doom-emacs", + "doom-snippets": "doom-snippets", + "emacs-overlay": "emacs-overlay_2", + "emacs-so-long": "emacs-so-long", + "evil-escape": "evil-escape", + "evil-markdown": "evil-markdown", + "evil-org-mode": "evil-org-mode", + "evil-quick-diff": "evil-quick-diff", + "explain-pause-mode": "explain-pause-mode", + "flake-compat": "flake-compat_9", + "flake-utils": "flake-utils_14", + "format-all": "format-all", + "nix-straight": "nix-straight", + "nixpkgs": "nixpkgs_16", + "nose": "nose", + "ob-racket": "ob-racket", + "org": "org", + "org-contrib": "org-contrib", + "org-yt": "org-yt", + "php-extras": "php-extras", + "revealjs": "revealjs", + "rotate-text": "rotate-text", + "sln-mode": "sln-mode", + "ts-fold": "ts-fold", + "ws-butler": "ws-butler" + }, + "locked": { + "lastModified": 1695950746, + "narHash": "sha256-ZDXcQ49q9mglhw6nETJxXxBdA68P/WkshMAGGbXKRoE=", + "owner": "nix-community", + "repo": "nix-doom-emacs", + "rev": "9b1c3371dd4b4f42f54701d42f31d3f805bfae8d", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "9b1c337", + "repo": "nix-doom-emacs", + "type": "github" + } + }, + "nix-filter": { + "locked": { + "lastModified": 1694857738, + "narHash": "sha256-bxxNyLHjhu0N8T3REINXQ2ZkJco0ABFPn6PIe2QUfqo=", + "owner": "numtide", + "repo": "nix-filter", + "rev": "41fd48e00c22b4ced525af521ead8792402de0ea", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "nix-filter", + "type": "github" + } + }, + "nix-formatter-pack": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "nmd": "nmd", + "nmt": "nmt" + }, + "locked": { + "lastModified": 1694984852, + "narHash": "sha256-A1x55uLb2LT9evsTWYc1U9+iki1AmE5ROxOuCKPf3JE=", + "owner": "Gerschtli", + "repo": "nix-formatter-pack", + "rev": "23795a4daf29ce784b3edc13b9776c7b445c453b", + "type": "github" + }, + "original": { + "owner": "Gerschtli", + "repo": "nix-formatter-pack", + "type": "github" + } + }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "talon", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1693660503, + "narHash": "sha256-B/g2V4v6gjirFmy+I5mwB2bCYc0l3j5scVfwgl6WOl8=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "bd5bdbb52350e145c526108f4ef192eb8e554fa0", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-github-actions", + "type": "github" + } + }, + "nix-index-database": { + "inputs": { + "nixpkgs": "nixpkgs_17" + }, + "locked": { + "lastModified": 1700363379, + "narHash": "sha256-fBEVPFwSZ6AmBE1s1oT7E9WVuqRghruxTnSQ8UUlMkw=", + "owner": "Mic92", + "repo": "nix-index-database", + "rev": "27920146e671a0d565aaa7452907383be14d8d82", + "type": "github" + }, + "original": { + "owner": "Mic92", + "repo": "nix-index-database", + "type": "github" + } + }, + "nix-on-droid": { + "inputs": { + "home-manager": [ + "home-manager" + ], + "nix-formatter-pack": [ + "nix-formatter-pack" + ], + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap", + "nmd": [ + "nix-formatter-pack", + "nmd" + ] + }, + "locked": { + "lastModified": 1694604941, + "narHash": "sha256-KsoRStRs8dNRRMWQhuB3eUOpzQhOc4dcBQB85tEq3wY=", + "owner": "nix-community", + "repo": "nix-on-droid", + "rev": "039379abeee67144d4094d80bbdaf183fb2eabe5", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-on-droid", + "type": "github" + } + }, + "nix-straight": { + "flake": false, + "locked": { + "lastModified": 1694361489, + "narHash": "sha256-kjDp+j6OtrmqbtjQB5uuOtjS08+kgJQuxFqhWE1Y9Rw=", + "owner": "nix-community", + "repo": "nix-straight.el", + "rev": "748be99b84be0b130e946288099806a0f16d6e57", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-straight.el", + "type": "github" + } + }, + "nixGL": { + "inputs": { + "flake-utils": "flake-utils_15", + "nixpkgs": "nixpkgs_18" + }, + "locked": { + "lastModified": 1685908677, + "narHash": "sha256-E4zUPEUFyVWjVm45zICaHRpfGepfkE9Z2OECV9HXfA4=", + "owner": "guibou", + "repo": "nixGL", + "rev": "489d6b095ab9d289fe11af0219a9ff00fe87c7c5", + "type": "github" + }, + "original": { + "owner": "guibou", + "repo": "nixGL", + "type": "github" + } + }, + "nixd": { + "inputs": { + "flake-parts": [ + "flake-parts" + ], + "nixpkgs": "nixpkgs_19" + }, + "locked": { + "lastModified": 1691762808, + "narHash": "sha256-W44orkPZQ9gDUTogb8YVIaw4WHzUA+ExOXhTnZlJ6yY=", + "owner": "nix-community", + "repo": "nixd", + "rev": "22f8532d9dcc3b50c46a5da5393fd6960a7a7cdc", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "1.2.2", + "repo": "nixd", + "type": "github" + } + }, + "nixified-ai": { + "inputs": { + "flake-parts": [ + "flake-parts" + ], + "hercules-ci-effects": [ + "hercules-ci-effects" + ], + "invokeai-src": "invokeai-src", + "nixpkgs": [ + "unstable" + ], + "textgen-src": "textgen-src" + }, + "locked": { + "lastModified": 1700487639, + "narHash": "sha256-bk3GlaXHluoxDyGK0dEqhYg+lEs4UdHt20N9NYJ4vvY=", + "owner": "nixified-ai", + "repo": "flake", + "rev": "3bb166cfc1d50bfb0718d8f98a7aaa9a169557c1", + "type": "github" + }, + "original": { + "owner": "nixified-ai", + "repo": "flake", + "type": "github" + } + }, + "nixos-2211": { + "locked": { + "lastModified": 1688392541, + "narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-22.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixos-wsl": { + "inputs": { + "flake-compat": [ + "flake-compat" + ], + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1700665566, + "narHash": "sha256-+AU2AdpA2eHlVwH3LL1qCWCTJyOJwCw/7pwampP3Jy8=", + "owner": "nix-community", + "repo": "nixos-wsl", + "rev": "a9287f7191467138d6203ea44b3a0b9c745cb145", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixos-wsl", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1668226844, + "narHash": "sha256-G/S4FBWDAqHeBS/hfXwUCJbnaKnrQFoeeKwzvZEOgxM=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "dd4767bf613bf9553eee6ff37c0996b9c876e7d8", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable-small", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-for-bootstrap": { + "locked": { + "lastModified": 1686921029, + "narHash": "sha256-J1bX9plPCFhTSh6E3TWn9XSxggBh/zDD4xigyaIQBy8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c7ff1b9b95620ce8728c0d7bd501c458e6da9e04", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c7ff1b9b95620ce8728c0d7bd501c458e6da9e04", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1700354803, + "narHash": "sha256-kJYhswYp1XMdpI2p/2oRcZxvwW83e64r1av/9zypFLU=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "07e160fb6ad2c4bcabecd43425ebaaa4336c5da2", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixpkgs-regression": { + "locked": { + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + } + }, + "nixpkgs-ruby": { + "inputs": { + "flake-compat": "flake-compat_10", + "flake-utils": "flake-utils_16", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1699940389, + "narHash": "sha256-nyeaGnrToe2g86kj1elImJ9gga3VOZzd4n+lYoHOQQs=", + "owner": "bobvanderlinden", + "repo": "nixpkgs-ruby", + "rev": "065106dbb7eb33514478157868ad1069f26115b2", + "type": "github" + }, + "original": { + "owner": "bobvanderlinden", + "repo": "nixpkgs-ruby", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1685801374, + "narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c37ca420157f4abc31e26f436c1145f8951ff373", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_2": { + "locked": { + "lastModified": 1700501263, + "narHash": "sha256-M0U063Ba2DKL4lMYI7XW13Rsk5tfUXnIYiAVa39AV/0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f741f8a839912e272d7e87ccf4b9dbc6012cdaf9", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_3": { + "locked": { + "lastModified": 1697851979, + "narHash": "sha256-lJ8k4qkkwdvi+t/Xc6Fn74kUuobpu9ynPGxNZR6OwoA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5550a85a087c04ddcace7f892b0bdc9d8bb080c8", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_4": { + "locked": { + "lastModified": 1685801374, + "narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c37ca420157f4abc31e26f436c1145f8951ff373", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_5": { + "locked": { + "lastModified": 1672580127, + "narHash": "sha256-3lW3xZslREhJogoOkjeZtlBtvFMyxHku7I/9IVehhT8=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "0874168639713f547c05947c76124f78441ea46c", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-22.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_6": { + "locked": { + "lastModified": 1673800717, + "narHash": "sha256-SFHraUqLSu5cC6IxTprex/nTsI81ZQAtDvlBvGDWfnA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "2f9fd351ec37f5d479556cd48be4ca340da59b8f", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-22.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_10": { + "locked": { + "lastModified": 1630887066, + "narHash": "sha256-0ecIlrLsNIIa+zrNmzXXmbMBLZlmHU/aWFsa4bq99Hk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5e47a07e9f2d7ed999f2c7943b0896f5f7321ca3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_11": { + "locked": { + "lastModified": 1673796341, + "narHash": "sha256-1kZi9OkukpNmOaPY7S5/+SlCDOuYnP3HkXHvNDyLQcc=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "6dccdc458512abce8d19f74195bb20fdb067df50", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_12": { + "locked": { + "lastModified": 1700204040, + "narHash": "sha256-xSVcS5HBYnD3LTer7Y2K8ZQCDCXMa3QUD1MzRjHzuhI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c757e9bd77b16ca2e03c89bf8bc9ecb28e0c06ad", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_13": { + "locked": { + "lastModified": 1686226982, + "narHash": "sha256-nLuiPoeiVfqqzeq9rmXxpybh77VS37dsY/k8N2LoxVg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "a64b73e07d4aa65cfcbda29ecf78eaf9e72e44bd", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_14": { + "locked": { + "lastModified": 1700416016, + "narHash": "sha256-Qp8Of0BUYGjqodmE912h+/uGknB7J11ypcQMKnEDUrg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0bf3f5cf6a98b5d077cdcdb00a6d4b3d92bc78b5", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_15": { + "locked": { + "lastModified": 1696725822, + "narHash": "sha256-B7uAOS7TkLlOg1aX01rQlYbydcyB6ZnLJSfaYbKVww8=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "5aabb5780a11c500981993d49ee93cfa6df9307b", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_16": { + "locked": { + "lastModified": 1695806987, + "narHash": "sha256-fX5kGs66NZIxCMcpAGIpxuftajHL8Hil1vjHmjjl118=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f3dab3509afca932f3f4fd0908957709bb1c1f57", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixpkgs-unstable", + "type": "indirect" + } + }, + "nixpkgs_17": { + "locked": { + "lastModified": 1700204040, + "narHash": "sha256-xSVcS5HBYnD3LTer7Y2K8ZQCDCXMa3QUD1MzRjHzuhI=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "c757e9bd77b16ca2e03c89bf8bc9ecb28e0c06ad", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_18": { + "locked": { + "lastModified": 1660551188, + "narHash": "sha256-a1LARMMYQ8DPx1BgoI/UN4bXe12hhZkCNqdxNi6uS0g=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "441dc5d512153039f19ef198e662e4f3dbb9fd65", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_19": { + "locked": { + "lastModified": 1686398752, + "narHash": "sha256-nGWNQVhSw4VSL+S0D0cbrNR9vs9Bq7rlYR+1K5f5j6w=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a30520bf8eabf8a5c37889d661e67a2dbcaa59e6", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1689261696, + "narHash": "sha256-LzfUtFs9MQRvIoQ3MfgSuipBVMXslMPH/vZ+nM40LkA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "df1eee2aa65052a18121ed4971081576b25d6b5c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_20": { + "locked": { + "lastModified": 1700501263, + "narHash": "sha256-M0U063Ba2DKL4lMYI7XW13Rsk5tfUXnIYiAVa39AV/0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f741f8a839912e272d7e87ccf4b9dbc6012cdaf9", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_21": { + "locked": { + "lastModified": 1689261696, + "narHash": "sha256-LzfUtFs9MQRvIoQ3MfgSuipBVMXslMPH/vZ+nM40LkA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "df1eee2aa65052a18121ed4971081576b25d6b5c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_22": { + "locked": { + "lastModified": 1678875422, + "narHash": "sha256-T3o6NcQPwXjxJMn2shz86Chch4ljXgZn746c2caGxd8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "126f49a01de5b7e35a43fd43f891ecf6d3a51459", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_23": { + "locked": { + "lastModified": 1689261696, + "narHash": "sha256-LzfUtFs9MQRvIoQ3MfgSuipBVMXslMPH/vZ+nM40LkA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "df1eee2aa65052a18121ed4971081576b25d6b5c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_24": { + "locked": { + "lastModified": 1681358109, + "narHash": "sha256-eKyxW4OohHQx9Urxi7TQlFBTDWII+F+x2hklDOQPB50=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "96ba1c52e54e74c3197f4d43026b3f3d92e83ff9", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1678875422, + "narHash": "sha256-T3o6NcQPwXjxJMn2shz86Chch4ljXgZn746c2caGxd8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "126f49a01de5b7e35a43fd43f891ecf6d3a51459", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1700390070, + "narHash": "sha256-de9KYi8rSJpqvBfNwscWdalIJXPo8NjdIZcEJum1mH0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e4ad989506ec7d71f7302cc3067abd82730a4beb", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1697723726, + "narHash": "sha256-SaTWPkI8a5xSHX/rrKzUe+/uVNy6zCGMXgoeMb7T9rg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "7c9cc5a6e5d38010801741ac830a3f8fd667a7a0", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_6": { + "locked": { + "lastModified": 1696983906, + "narHash": "sha256-L7GyeErguS7Pg4h8nK0wGlcUTbfUMDu+HMf1UcyP72k=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "bd1cde45c77891214131cbbea5b1203e485a9d51", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_7": { + "locked": { + "lastModified": 1689261696, + "narHash": "sha256-LzfUtFs9MQRvIoQ3MfgSuipBVMXslMPH/vZ+nM40LkA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "df1eee2aa65052a18121ed4971081576b25d6b5c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_8": { + "locked": { + "lastModified": 1700390070, + "narHash": "sha256-de9KYi8rSJpqvBfNwscWdalIJXPo8NjdIZcEJum1mH0=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "e4ad989506ec7d71f7302cc3067abd82730a4beb", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_9": { + "locked": { + "lastModified": 1698134075, + "narHash": "sha256-foCD+nuKzfh49bIoiCBur4+Fx1nozo+4C/6k8BYk4sg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "8efd5d1e283604f75a808a20e6cde0ef313d07d4", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nmd": { + "flake": false, + "locked": { + "lastModified": 1666190571, + "narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=", + "owner": "rycee", + "repo": "nmd", + "rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169", + "type": "gitlab" + }, + "original": { + "owner": "rycee", + "repo": "nmd", + "type": "gitlab" + } + }, + "nmt": { + "flake": false, + "locked": { + "lastModified": 1648075362, + "narHash": "sha256-u36WgzoA84dMVsGXzml4wZ5ckGgfnvS0ryzo/3zn/Pc=", + "owner": "rycee", + "repo": "nmt", + "rev": "d83601002c99b78c89ea80e5e6ba21addcfe12ae", + "type": "gitlab" + }, + "original": { + "owner": "rycee", + "repo": "nmt", + "type": "gitlab" + } + }, + "nose": { + "flake": false, + "locked": { + "lastModified": 1400604510, + "narHash": "sha256-daEi8Kta1oGaDEmUUDDQMahTTPOpvNpDKk22rlr7cB0=", + "owner": "emacsattic", + "repo": "nose", + "rev": "f8528297519eba911696c4e68fa88892de9a7b72", + "type": "github" + }, + "original": { + "owner": "emacsattic", + "repo": "nose", + "type": "github" + } + }, + "npmlock2nix": { + "flake": false, + "locked": { + "lastModified": 1668989938, + "narHash": "sha256-/IxdS0AiqSN0/VEOLnnfHyi4nP17yPrkhGf6KlXVwrc=", + "owner": "nix-community", + "repo": "npmlock2nix", + "rev": "0ba0746d62974403daf717cded3f24c617622bc7", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "npmlock2nix", + "rev": "0ba0746d62974403daf717cded3f24c617622bc7", + "type": "github" + } + }, + "nvim-cmp": { + "flake": false, + "locked": { + "lastModified": 1699261102, + "narHash": "sha256-auUHEjUDOaDkMI9loN6T+/whDDNzPl04bf+nqqLQ5+I=", + "owner": "hrsh7th", + "repo": "nvim-cmp", + "rev": "0b751f6beef40fd47375eaf53d3057e0bfa317e4", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "nvim-cmp", + "type": "github" + } + }, + "nvim-lspconfig": { + "flake": false, + "locked": { + "lastModified": 1700655312, + "narHash": "sha256-1Q2RHwYQ+KoDZIHJX4orZCrNOpyqRg9HEtIHr7McoEo=", + "owner": "neovim", + "repo": "nvim-lspconfig", + "rev": "553c4e0e667167640c5398573f6f3a488ff8047a", + "type": "github" + }, + "original": { + "owner": "neovim", + "repo": "nvim-lspconfig", + "type": "github" + } + }, + "nvim-treesitter": { + "flake": false, + "locked": { + "lastModified": 1700746920, + "narHash": "sha256-FYsNAFnjuubs1cpArTA52wknjG3NgSy5ZQL4jrJmGnk=", + "owner": "nvim-treesitter", + "repo": "nvim-treesitter", + "rev": "71bdf97bf6dafc776ad957169533f2f669a8c562", + "type": "github" + }, + "original": { + "owner": "nvim-treesitter", + "repo": "nvim-treesitter", + "type": "github" + } + }, + "ob-racket": { + "flake": false, + "locked": { + "lastModified": 1584656173, + "narHash": "sha256-rBUYDDCXb+3D4xTPQo9UocbTPZ32kWV1Uya/1DmZknU=", + "owner": "xchrishawk", + "repo": "ob-racket", + "rev": "83457ec9e1e96a29fd2086ed19432b9d75787673", + "type": "github" + }, + "original": { + "owner": "xchrishawk", + "repo": "ob-racket", + "type": "github" + } + }, + "ocaml-dev-template": { + "inputs": { + "nixpkgs": "nixpkgs_21" + }, + "locked": { + "dir": "ocaml", + "lastModified": 1692727998, + "narHash": "sha256-ulLL1OrvPav2LvNJmzDViPuFGOIMDWdSpcpT7+vcXmE=", + "owner": "the-nix-way", + "repo": "dev-templates", + "rev": "1117b469aa83bef9e29616b7c67d80b14beb2c14", + "type": "github" + }, + "original": { + "dir": "ocaml", + "owner": "the-nix-way", + "repo": "dev-templates", + "type": "github" + } + }, + "ocaml-overlay": { + "inputs": { + "flake-utils": "flake-utils_17", + "nixpkgs": [ + "latest" + ] + }, + "locked": { + "lastModified": 1700721198, + "narHash": "sha256-BLj4dL3CWOyVmseoon0o1Cyen+JrLakCZOTCH9s3pA4=", + "owner": "nix-ocaml", + "repo": "nix-overlays", + "rev": "f1a9833efb410d8d0f32679d774a12ff232117f5", + "type": "github" + }, + "original": { + "owner": "nix-ocaml", + "repo": "nix-overlays", + "type": "github" + } + }, + "opam-nix": { + "inputs": { + "flake-compat": [ + "jupyenv", + "flake-compat" + ], + "flake-utils": [ + "jupyenv", + "flake-utils" + ], + "mirage-opam-overlays": "mirage-opam-overlays", + "nixpkgs": [ + "jupyenv", + "nixpkgs" + ], + "opam-overlays": "opam-overlays", + "opam-repository": "opam-repository", + "opam2json": "opam2json" + }, + "locked": { + "lastModified": 1669990974, + "narHash": "sha256-wHhdlDUC/tBDVFBemeJPpqdIRdehKKbxbdMP0QjOhM4=", + "owner": "tweag", + "repo": "opam-nix", + "rev": "75199758e1954f78286e7e79c0e3916e28b732b0", + "type": "github" + }, + "original": { + "owner": "tweag", + "repo": "opam-nix", + "rev": "75199758e1954f78286e7e79c0e3916e28b732b0", + "type": "github" + } + }, + "opam-overlays": { + "flake": false, + "locked": { + "lastModified": 1654162756, + "narHash": "sha256-RV68fUK+O3zTx61iiHIoS0LvIk0E4voMp+0SwRg6G6c=", + "owner": "dune-universe", + "repo": "opam-overlays", + "rev": "c8f6ef0fc5272f254df4a971a47de7848cc1c8a4", + "type": "github" + }, + "original": { + "owner": "dune-universe", + "repo": "opam-overlays", + "type": "github" + } + }, + "opam-repository": { + "flake": false, + "locked": { + "lastModified": 1661161626, + "narHash": "sha256-J3P+mXLwE2oEKTlMnx8sYRxwD/uNGSKM0AkAB7BNTxA=", + "owner": "ocaml", + "repo": "opam-repository", + "rev": "54e69ff0949a3aaec0d5e3d67898bb7f279ab09f", + "type": "github" + }, + "original": { + "owner": "ocaml", + "repo": "opam-repository", + "type": "github" + } + }, + "opam2json": { + "inputs": { + "nixpkgs": [ + "jupyenv", + "opam-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1665671715, + "narHash": "sha256-7f75C6fIkiLzfkwLpJxlQIKf+YORGsXGV8Dr2LDDi+A=", + "owner": "tweag", + "repo": "opam2json", + "rev": "32fa2dcd993a27f9e75ee46fb8b78a7cd5d05113", + "type": "github" + }, + "original": { + "owner": "tweag", + "repo": "opam2json", + "type": "github" + } + }, + "org": { + "flake": false, + "locked": { + "lastModified": 1695726851, + "narHash": "sha256-qgbjspklSoI8M3cbCJOcUdjuijRgsL/+PSyEOW9VX4I=", + "owner": "emacs-straight", + "repo": "org-mode", + "rev": "aa9177e1a8b039c357d369c1c9aaab710bb247a9", + "type": "github" + }, + "original": { + "owner": "emacs-straight", + "repo": "org-mode", + "type": "github" + } + }, + "org-contrib": { + "flake": false, + "locked": { + "lastModified": 1694946041, + "narHash": "sha256-X/HFG6NZe5BY00KvGbcsIuf9R6Lg8x7Uhd0Y5+Q3qZU=", + "owner": "emacsmirror", + "repo": "org-contrib", + "rev": "5eabbf22bdd4523c922a30787e98ee66c24221aa", + "type": "github" + }, + "original": { + "owner": "emacsmirror", + "repo": "org-contrib", + "type": "github" + } + }, + "org-novelist": { + "flake": false, + "locked": { + "lastModified": 1683800413, + "narHash": "sha256-+wMy4xbFHm/VBD186NijNVH0pvmzvir0SHGxWcU7EW8=", + "owner": "sympodius", + "repo": "org-novelist", + "rev": "d1ef9672bd0e59f97ca0e8cdf27f44cd44ea4a4b", + "type": "github" + }, + "original": { + "owner": "sympodius", + "repo": "org-novelist", + "type": "github" + } + }, + "org-yt": { + "flake": false, + "locked": { + "lastModified": 1527381913, + "narHash": "sha256-dzQ6B7ryzatHCTLyEnRSbWO0VUiX/FHYnpHTs74aVUs=", + "owner": "TobiasZawada", + "repo": "org-yt", + "rev": "40cc1ac76d741055cbefa13860d9f070a7ade001", + "type": "github" + }, + "original": { + "owner": "TobiasZawada", + "repo": "org-yt", + "type": "github" + } + }, + "php-extras": { + "flake": false, + "locked": { + "lastModified": 1573312690, + "narHash": "sha256-r4WyVbzvT0ra4Z6JywNBOw5RxOEYd6Qe2IpebHXkj1U=", + "owner": "arnested", + "repo": "php-extras", + "rev": "d410c5af663c30c01d461ac476d1cbfbacb49367", + "type": "github" + }, + "original": { + "owner": "arnested", + "repo": "php-extras", + "type": "github" + } + }, + "poetry2nix": { + "inputs": { + "flake-utils": [ + "jupyenv", + "flake-utils" + ], + "nixpkgs": [ + "jupyenv", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1673926875, + "narHash": "sha256-QOsT76Al0Igpo0u5vtQJuDSOxrocX3sTD523pLPEklc=", + "owner": "nix-community", + "repo": "poetry2nix", + "rev": "a5c454a834cd290dd4d33102ab8b4aa37d850e65", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "poetry2nix", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": [ + "devenv", + "flake-compat" + ], + "flake-utils": "flake-utils", + "gitignore": "gitignore", + "nixpkgs": [ + "devenv", + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1688056373, + "narHash": "sha256-2+SDlNRTKsgo3LBRiMUcoEUb6sDViRNQhzJquZ4koOI=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "5843cf069272d92b60c3ed9e55b7a8989c01d4c7", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "pre-commit-hooks_2": { + "inputs": { + "flake-compat": "flake-compat_2", + "flake-utils": "flake-utils_4", + "gitignore": "gitignore_2", + "nixpkgs": "nixpkgs_7", + "nixpkgs-stable": "nixpkgs-stable_4" + }, + "locked": { + "lastModified": 1696846637, + "narHash": "sha256-0hv4kbXxci2+pxhuXlVgftj/Jq79VSmtAyvfabCCtYk=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "42e1b6095ef80a51f79595d9951eb38e91c4e6ca", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "pre-commit-hooks_3": { + "inputs": { + "flake-utils": [ + "jupyenv", + "ihaskell", + "hls", + "flake-utils" + ], + "nixpkgs": [ + "jupyenv", + "ihaskell", + "hls", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1624971177, + "narHash": "sha256-Amf/nBj1E77RmbSSmV+hg6YOpR+rddCbbVgo5C7BS0I=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "397f0713d007250a2c7a745e555fa16c5dc8cadb", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "pre-commit-hooks_4": { + "inputs": { + "flake-compat": "flake-compat_7", + "flake-utils": [ + "jupyenv", + "flake-utils" + ], + "gitignore": "gitignore_4", + "nixpkgs": [ + "jupyenv", + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable_6" + }, + "locked": { + "lastModified": 1674075316, + "narHash": "sha256-0uZuAcYBpNJLxr7n5O0vhwn3rSLpUTm9M5WGgmNQ+wM=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "3e42a77571cc0463efa470dbcffa063977a521ab", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "pub2nix": { + "flake": false, + "locked": { + "lastModified": 1594192744, + "narHash": "sha256-pDvcXSG1Mh2BpwkqAcNDJzcupV3pIAAtZJLfkiHMAz4=", + "owner": "paulyoung", + "repo": "pub2nix", + "rev": "0c7ecca590fcd1616db8c6468f799ffef36c85e9", + "type": "github" + }, + "original": { + "owner": "paulyoung", + "repo": "pub2nix", + "type": "github" + } + }, + "pup": { + "flake": false, + "locked": { + "lastModified": 1568916684, + "narHash": "sha256-eZ/gCTO4/TTWriVW8576eM/TiM3Xk1beM3gFRjGYocM=", + "owner": "ericchiang", + "repo": "pup", + "rev": "681d7bb639334bf485476f5872c5bdab10931f9a", + "type": "github" + }, + "original": { + "owner": "ericchiang", + "repo": "pup", + "rev": "681d7bb639334bf485476f5872c5bdab10931f9a", + "type": "github" + } + }, + "pypi-deps-db": { + "flake": false, + "locked": { + "lastModified": 1699338846, + "narHash": "sha256-RhdhdtRRZcRzxCduxQf79d2tE+qhjtlanx7CcAmMhrM=", + "owner": "DavHau", + "repo": "pypi-deps-db", + "rev": "e72a0d5d535bde034717a175c8228c237b18449c", + "type": "github" + }, + "original": { + "owner": "DavHau", + "repo": "pypi-deps-db", + "type": "github" + } + }, + "revealjs": { + "flake": false, + "locked": { + "lastModified": 1695738029, + "narHash": "sha256-Z9c9Q41jMkj/DyXOiZYyIa7Gmn8VB8yauTyWrSsT+ps=", + "owner": "hakimel", + "repo": "reveal.js", + "rev": "88fbfc5751ad01e3f6adee5819eabeb9e73c3757", + "type": "github" + }, + "original": { + "owner": "hakimel", + "repo": "reveal.js", + "type": "github" + } + }, + "root": { + "inputs": { + "action-hints.nvim": "action-hints.nvim", + "alejandra": "alejandra", + "bundix": "bundix", + "clojure-dev-template": "clojure-dev-template", + "code_runner.nvim": "code_runner.nvim", + "deferred-clipboard.nvim": "deferred-clipboard.nvim", + "devenv": "devenv", + "duck.nvim": "duck.nvim", + "emacs-overlay": "emacs-overlay", + "emacs-overlay-cached": "emacs-overlay-cached", + "feedback": "feedback", + "fenix": "fenix_2", + "filetype.nvim": "filetype.nvim", + "firefox": "firefox", + "firefox-addons": "firefox-addons", + "flake-compat": "flake-compat_4", + "flake-parts": "flake-parts", + "flake-utils": "flake-utils_7", + "flatpaks": "flatpaks", + "fsread-nvim": "fsread-nvim", + "ghc-nixpkgs-unstable": "ghc-nixpkgs-unstable", + "git-issue": "git-issue", + "hercules-ci-effects": "hercules-ci-effects", + "home-manager": "home-manager", + "hyprland": "hyprland", + "impermanence": "impermanence", + "jupyenv": "jupyenv", + "latest": "latest", + "latest-home-manager": "latest-home-manager", + "mach-nix": "mach-nix", + "markid": "markid", + "mistty": "mistty", + "murmur.lua": "murmur.lua", + "neovim-flake": "neovim-flake", + "neovim-nightly-overlay": "neovim-nightly-overlay", + "nil": "nil", + "nix-doom-emacs": "nix-doom-emacs", + "nix-filter": "nix-filter", + "nix-formatter-pack": "nix-formatter-pack", + "nix-index-database": "nix-index-database", + "nix-on-droid": "nix-on-droid", + "nixGL": "nixGL", + "nixd": "nixd", + "nixified-ai": "nixified-ai", + "nixos-2211": "nixos-2211", + "nixos-wsl": "nixos-wsl", + "nixpkgs": "nixpkgs_20", + "nixpkgs-ruby": "nixpkgs-ruby", + "nvim-cmp": "nvim-cmp", + "nvim-lspconfig": "nvim-lspconfig", + "nvim-treesitter": "nvim-treesitter", + "ocaml-dev-template": "ocaml-dev-template", + "ocaml-overlay": "ocaml-overlay", + "org-novelist": "org-novelist", + "pup": "pup", + "pypi-deps-db": "pypi-deps-db", + "ruby-nix": "ruby-nix", + "rust-dev-template": "rust-dev-template", + "rust-overlay": "rust-overlay_4", + "sqlite-mode-extras": "sqlite-mode-extras", + "staging": "staging", + "stcursorword": "stcursorword", + "talon": "talon", + "telescope-makefile": "telescope-makefile", + "tree-grepper": "tree-grepper", + "unstable": "unstable", + "virtual-types.nvim": "virtual-types.nvim", + "yt-dlp": "yt-dlp" + } + }, + "rotate-text": { + "flake": false, + "locked": { + "lastModified": 1322962747, + "narHash": "sha256-SOeOgSlcEIsKhUiYDJv0p+mLUb420s9E2BmvZQvZ0wk=", + "owner": "debug-ito", + "repo": "rotate-text.el", + "rev": "48f193697db996855aee1ad2bc99b38c6646fe76", + "type": "github" + }, + "original": { + "owner": "debug-ito", + "repo": "rotate-text.el", + "type": "github" + } + }, + "ruby-nix": { + "inputs": { + "nixpkgs": "nixpkgs_22" + }, + "locked": { + "lastModified": 1688825976, + "narHash": "sha256-7EvZu+/+uNZ0kfSgQQIrRGg8RXcUN9UgRsobjbxEdBQ=", + "owner": "inscapist", + "repo": "ruby-nix", + "rev": "911d5e8584453e1aff0fb85c93aa163dcdd0f3f0", + "type": "github" + }, + "original": { + "owner": "inscapist", + "repo": "ruby-nix", + "type": "github" + } + }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1668182250, + "narHash": "sha256-PYGaOCiFvnJdVz+ZCaKF8geGdffXjJUNcMwaBHv0FT4=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "45ec315e01dc8dd1146dfeb65f0ef6e5c2efed78", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, + "rust-analyzer-src_2": { + "flake": false, + "locked": { + "lastModified": 1700642897, + "narHash": "sha256-LoyZRcl0bBuSnV9SVqrf+vUxN1u9FeYk4vgQS/kyCOI=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "7ceefc7ee981f7dd9de4cfdd070696e48b4ab43e", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, + "rust-dev-template": { + "inputs": { + "nixpkgs": "nixpkgs_23", + "rust-overlay": "rust-overlay_3" + }, + "locked": { + "dir": "rust", + "lastModified": 1692727998, + "narHash": "sha256-ulLL1OrvPav2LvNJmzDViPuFGOIMDWdSpcpT7+vcXmE=", + "owner": "the-nix-way", + "repo": "dev-templates", + "rev": "1117b469aa83bef9e29616b7c67d80b14beb2c14", + "type": "github" + }, + "original": { + "dir": "rust", + "owner": "the-nix-way", + "repo": "dev-templates", + "type": "github" + } + }, + "rust-overlay": { + "inputs": { + "flake-utils": [ + "jupyenv", + "flake-utils" + ], + "nixpkgs": [ + "jupyenv", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1674008920, + "narHash": "sha256-ugwPxKjvmJ5GpzN/MHg8tuhe8nYi3SbJm5nWNy7CB0Q=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "eecc44934a0f6c02c02856b38bd3b6af3bec0870", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_2": { + "inputs": { + "flake-utils": [ + "nil", + "flake-utils" + ], + "nixpkgs": [ + "nil", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1696817516, + "narHash": "sha256-Xt9OY4Wnk9/vuUfA0OHFtmSlaen5GyiS9msgwOz3okI=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "c0df7f2a856b5ff27a3ce314f6d7aacf5fda546f", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_3": { + "inputs": { + "flake-utils": "flake-utils_18", + "nixpkgs": "nixpkgs_24" + }, + "locked": { + "lastModified": 1689302058, + "narHash": "sha256-yD74lcHTrw4niXcE9goJLbzsgyce48rQQoy5jK5ZK40=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "7b8dbbf4c67ed05a9bf3d9e658c12d4108bc24c8", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_4": { + "inputs": { + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "unstable" + ] + }, + "locked": { + "lastModified": 1700705722, + "narHash": "sha256-cFfTFToYTeRQtdNqo53+E+G5RxPiTbWusGq+MpZSpbA=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "67998ae1cabcf683cb115c5ab01ae4ff067e3d60", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "safe-coloured-text": { + "flake": false, + "locked": { + "lastModified": 1696884906, + "narHash": "sha256-7CanCNOCB5gFwqhEPFIoOojoM1iVJZKF5YRy7unUDuo=", + "owner": "NorfairKing", + "repo": "safe-coloured-text", + "rev": "50abcbfa2a2ed15c6186fa2381fe818bd93a730b", + "type": "github" + }, + "original": { + "owner": "NorfairKing", + "repo": "safe-coloured-text", + "type": "github" + } + }, + "sln-mode": { + "flake": false, + "locked": { + "lastModified": 1423727528, + "narHash": "sha256-XqkqPyEJuTtFslOz1fpTf/Klbd/zA7IGpzpmum/MGao=", + "owner": "sensorflo", + "repo": "sln-mode", + "rev": "0f91d1b957c7d2a7bab9278ec57b54d57f1dbd9c", + "type": "github" + }, + "original": { + "owner": "sensorflo", + "repo": "sln-mode", + "type": "github" + } + }, + "sqlite-mode-extras": { + "flake": false, + "locked": { + "lastModified": 1699429551, + "narHash": "sha256-X/TSG/MmFp3jTuLq48bBGQ5aYAhA4UV4tIrfQXYgVyQ=", + "owner": "xenodium", + "repo": "dotsies", + "rev": "0910fae7a5340bff5562c50522cf6033b0813220", + "type": "github" + }, + "original": { + "owner": "xenodium", + "repo": "dotsies", + "type": "github" + } + }, + "staging": { + "locked": { + "lastModified": 1700740908, + "narHash": "sha256-kgDHd9I+FXuxzmshsAQtvurBDDFgqKGOLHcvyqUIg8Y=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "38d802ea1da8fc829b6709b3fe263836f0508f67", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "staging", + "repo": "nixpkgs", + "type": "github" + } + }, + "stcursorword": { + "flake": false, + "locked": { + "lastModified": 1700180575, + "narHash": "sha256-GwC9iuGr2cLfS+FKWslHI/gGkhuB1LswOdgYpw9q7qM=", + "owner": "sontungexpt", + "repo": "stcursorword", + "rev": "9ca2de4f29baff8ed5231e808aa9a8b85801f157", + "type": "github" + }, + "original": { + "owner": "sontungexpt", + "repo": "stcursorword", + "type": "github" + } + }, + "sydtest": { + "flake": false, + "locked": { + "lastModified": 1696883645, + "narHash": "sha256-Yr5piSv96hgKC7z7aHqo8kMKJPyL8ZG2lbDb7oFUZxw=", + "owner": "NorfairKing", + "repo": "sydtest", + "rev": "6313c1b211d14c1215cdf97b9933675cf9c2adb9", + "type": "github" + }, + "original": { + "owner": "NorfairKing", + "repo": "sydtest", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_10": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_11": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_12": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_13": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_14": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_5": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_6": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_7": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "systems_8": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_9": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "talon": { + "inputs": { + "nix-github-actions": "nix-github-actions", + "nixpkgs": [ + "unstable" + ] + }, + "locked": { + "lastModified": 1699656779, + "narHash": "sha256-LHCGZ3wYXSe3x6+TMx2xyiS8vgMLzzimOiSVKal0amo=", + "owner": "nix-community", + "repo": "talon-nix", + "rev": "8e11e83d6f131b15761e39ca6ce1e3708ffad073", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "talon-nix", + "type": "github" + } + }, + "telescope-makefile": { + "flake": false, + "locked": { + "lastModified": 1676029323, + "narHash": "sha256-RFrONpvOiOhvBlSJNxRhsZIQ2zQ9Xl2zr6yRkVU7HMQ=", + "owner": "ptethng", + "repo": "telescope-makefile", + "rev": "6e5b5767751dbf73ad4f126840dcf1abfc38e891", + "type": "github" + }, + "original": { + "owner": "ptethng", + "repo": "telescope-makefile", + "type": "github" + } + }, + "textgen-src": { + "flake": false, + "locked": { + "lastModified": 1696789008, + "narHash": "sha256-+V8XOVnEyImj+a8uCkZXEHXW8bTIBRlnfMcQfcZNgqg=", + "owner": "oobabooga", + "repo": "text-generation-webui", + "rev": "2e471071af48e19867cfa522d2def44c24785c50", + "type": "github" + }, + "original": { + "owner": "oobabooga", + "ref": "v1.7", + "repo": "text-generation-webui", + "type": "github" + } + }, + "tree-grepper": { + "inputs": { + "flake-utils": [ + "flake-utils" + ], + "naersk": "naersk", + "nixpkgs": [ + "unstable" + ], + "tree-sitter-c": "tree-sitter-c", + "tree-sitter-cpp": "tree-sitter-cpp", + "tree-sitter-elixir": "tree-sitter-elixir", + "tree-sitter-elm": "tree-sitter-elm", + "tree-sitter-go": "tree-sitter-go", + "tree-sitter-haskell": "tree-sitter-haskell", + "tree-sitter-java": "tree-sitter-java", + "tree-sitter-javascript": "tree-sitter-javascript", + "tree-sitter-markdown": "tree-sitter-markdown", + "tree-sitter-nix": "tree-sitter-nix", + "tree-sitter-php": "tree-sitter-php", + "tree-sitter-python": "tree-sitter-python", + "tree-sitter-ruby": "tree-sitter-ruby", + "tree-sitter-rust": "tree-sitter-rust", + "tree-sitter-typescript": "tree-sitter-typescript" + }, + "locked": { + "lastModified": 1700564526, + "narHash": "sha256-D4aF6iq2Tgmo20+vMafiXm4sazyhDQ/FiCHUT4Ev+dg=", + "owner": "BrianHicks", + "repo": "tree-grepper", + "rev": "bdda18c45092a19df395bd15e4265effbf6b1af9", + "type": "github" + }, + "original": { + "owner": "BrianHicks", + "repo": "tree-grepper", + "type": "github" + } + }, + "tree-sitter-c": { + "flake": false, + "locked": { + "lastModified": 1691959600, + "narHash": "sha256-39i06oXMQemfq3Y4TTXai6HFXvURVOif1v2i9LP4sAI=", + "owner": "tree-sitter", + "repo": "tree-sitter-c", + "rev": "a2b7bac3b313efbaa683d9a276ff63cdc544d960", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-c", + "type": "github" + } + }, + "tree-sitter-cpp": { + "flake": false, + "locked": { + "lastModified": 1692168382, + "narHash": "sha256-e9Mz84lssaPR80hlogyjXx+jA8gD8YVp4T06qC6gRVI=", + "owner": "tree-sitter", + "repo": "tree-sitter-cpp", + "rev": "a90f170f92d5d70e7c2d4183c146e61ba5f3a457", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-cpp", + "type": "github" + } + }, + "tree-sitter-elixir": { + "flake": false, + "locked": { + "lastModified": 1690442748, + "narHash": "sha256-hBHqQ3eBjknRPJjP+lQJU6NPFhUMtiv4FbKsTw28Bog=", + "owner": "elixir-lang", + "repo": "tree-sitter-elixir", + "rev": "a2861e88a730287a60c11ea9299c033c7d076e30", + "type": "github" + }, + "original": { + "owner": "elixir-lang", + "ref": "main", + "repo": "tree-sitter-elixir", + "type": "github" + } + }, + "tree-sitter-elm": { + "flake": false, + "locked": { + "lastModified": 1690715507, + "narHash": "sha256-KtijU8ZODsqcNZc4Roh0AILaBWFs+D1cnSUfwQlEx84=", + "owner": "elm-tooling", + "repo": "tree-sitter-elm", + "rev": "b075803c445191af3cf7dbfdc84efef5f5bbc0f5", + "type": "github" + }, + "original": { + "owner": "elm-tooling", + "ref": "main", + "repo": "tree-sitter-elm", + "type": "github" + } + }, + "tree-sitter-go": { + "flake": false, + "locked": { + "lastModified": 1690364909, + "narHash": "sha256-G7d8CHCyKDAb9j6ijRfHk/HlgPqSI+uvkuRIRRvjkHI=", + "owner": "tree-sitter", + "repo": "tree-sitter-go", + "rev": "bbaa67a180cfe0c943e50c55130918be8efb20bd", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-go", + "type": "github" + } + }, + "tree-sitter-haskell": { + "flake": false, + "locked": { + "lastModified": 1690487499, + "narHash": "sha256-JJvXkunDFRjWoXipxl1o2P+lRIDa4kw/Ys3LUu3piIY=", + "owner": "tree-sitter", + "repo": "tree-sitter-haskell", + "rev": "99706824b92f162d4e0f47c7e930bbccb367276e", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-haskell", + "type": "github" + } + }, + "tree-sitter-java": { + "flake": false, + "locked": { + "lastModified": 1692857861, + "narHash": "sha256-0kOLAVsrCUfpU8sZGRVrr+D3bGWj8bH2qce/ygrIw2w=", + "owner": "tree-sitter", + "repo": "tree-sitter-java", + "rev": "38be6eccc1b86d6ec5dca0976659e807fd4dc28d", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-java", + "type": "github" + } + }, + "tree-sitter-javascript": { + "flake": false, + "locked": { + "lastModified": 1692941092, + "narHash": "sha256-VbK2asd1CavcBYGia30MomQh+KOgKgz5ax10V6nEVEs=", + "owner": "tree-sitter", + "repo": "tree-sitter-javascript", + "rev": "f1e5a09b8d02f8209a68249c93f0ad647b228e6e", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-javascript", + "type": "github" + } + }, + "tree-sitter-markdown": { + "flake": false, + "locked": { + "lastModified": 1618750161, + "narHash": "sha256-86sDA+8xROfuWiNrWTfN7sExAqwfj+CyXq+ZeHpKSKg=", + "owner": "ikatyang", + "repo": "tree-sitter-markdown", + "rev": "8b8b77af0493e26d378135a3e7f5ae25b555b375", + "type": "github" + }, + "original": { + "owner": "ikatyang", + "repo": "tree-sitter-markdown", + "type": "github" + } + }, + "tree-sitter-nix": { + "flake": false, + "locked": { + "lastModified": 1689222204, + "narHash": "sha256-+o+f1TlhcrcCB3TNw1RyCjVZ+37e11nL+GWBPo0Mxxg=", + "owner": "cstrahan", + "repo": "tree-sitter-nix", + "rev": "66e3e9ce9180ae08fc57372061006ef83f0abde7", + "type": "github" + }, + "original": { + "owner": "cstrahan", + "repo": "tree-sitter-nix", + "type": "github" + } + }, + "tree-sitter-php": { + "flake": false, + "locked": { + "lastModified": 1692289393, + "narHash": "sha256-HZOIz9KiZ13aqeQtCeQln56RRRPUSgT7ulPJs54fzJc=", + "owner": "tree-sitter", + "repo": "tree-sitter-php", + "rev": "ce2c73a8d84b5648e8792698dc9fd955e5f6a906", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-php", + "type": "github" + } + }, + "tree-sitter-python": { + "flake": false, + "locked": { + "lastModified": 1692219578, + "narHash": "sha256-cV/QwvEQkIQcgo0Pm+3pUH2LhpYOPsuWMgjXMa8dv+s=", + "owner": "tree-sitter", + "repo": "tree-sitter-python", + "rev": "c01fb4e38587e959b9058b8cd34b9e6a3068c827", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-python", + "type": "github" + } + }, + "tree-sitter-ruby": { + "flake": false, + "locked": { + "lastModified": 1686602119, + "narHash": "sha256-0EaU9O67faGwtO1GIxjK4Uv1etd0p1vtfrVB3d6TDF8=", + "owner": "tree-sitter", + "repo": "tree-sitter-ruby", + "rev": "f257f3f57833d584050336921773738a3fd8ca22", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-ruby", + "type": "github" + } + }, + "tree-sitter-rust": { + "flake": false, + "locked": { + "lastModified": 1692862531, + "narHash": "sha256-2WPL7ap2fHEi0+pNnJlHLxKBqPrHsve+DzJSCqw/gpw=", + "owner": "tree-sitter", + "repo": "tree-sitter-rust", + "rev": "39eaeb41e17572c17e35bb050d6bf2da17568dbf", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-rust", + "type": "github" + } + }, + "tree-sitter-typescript": { + "flake": false, + "locked": { + "lastModified": 1689751053, + "narHash": "sha256-oZKit8kScXcOptmT2ckywL5JlAVe+wuwhuj6ThEI5OQ=", + "owner": "tree-sitter", + "repo": "tree-sitter-typescript", + "rev": "b1bf4825d9eaa0f3bdeb1e52f099533328acfbdf", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-typescript", + "type": "github" + } + }, + "ts-fold": { + "flake": false, + "locked": { + "lastModified": 1695278494, + "narHash": "sha256-O4NcUC1u08W8ZslqoA/i+iTaLotKwheURXQWBxLLMFc=", + "owner": "jcs-elpa", + "repo": "ts-fold", + "rev": "70b2c79ff4daa7351d4e2917b0343b9a18d4d4f2", + "type": "github" + }, + "original": { + "owner": "jcs-elpa", + "repo": "ts-fold", + "type": "github" + } + }, + "unstable": { + "locked": { + "lastModified": 1700538105, + "narHash": "sha256-uZhOCmwv8VupEmPZm3erbr9XXmyg7K67Ul3+Rx2XMe0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "51a01a7e5515b469886c120e38db325c96694c2f", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "validity": { + "flake": false, + "locked": { + "lastModified": 1696884006, + "narHash": "sha256-w2dKXZrNxXm/hsYkef5ZLTDxm3IsIzdj3i2qc1GC+A8=", + "owner": "NorfairKing", + "repo": "validity", + "rev": "34e17fe6d92765209f1db8127aee13c74285805d", + "type": "github" + }, + "original": { + "owner": "NorfairKing", + "repo": "validity", + "type": "github" + } + }, + "virtual-types.nvim": { + "flake": false, + "locked": { + "lastModified": 1636214935, + "narHash": "sha256-OuWtzwyMABsVwPVRaVUYRJ4Riiqc5iYyUAJ1u87nX/M=", + "type": "tarball", + "url": "https://github.com/jubnzv/virtual-types.nvim/archive/9ef9f31c58cc9deb914ee728b8bda8f217f9d1c7.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/jubnzv/virtual-types.nvim/archive/9ef9f31c58cc9deb914ee728b8bda8f217f9d1c7.tar.gz" + } + }, + "wlroots": { + "flake": false, + "locked": { + "host": "gitlab.freedesktop.org", + "lastModified": 1699292815, + "narHash": "sha256-HXu98PyBMKEWLqiTb8viuLDznud/SdkdJsx5A5CWx7I=", + "owner": "wlroots", + "repo": "wlroots", + "rev": "5de9e1a99d6642c2d09d589aa37ff0a8945dcee1", + "type": "gitlab" + }, + "original": { + "host": "gitlab.freedesktop.org", + "owner": "wlroots", + "repo": "wlroots", + "rev": "5de9e1a99d6642c2d09d589aa37ff0a8945dcee1", + "type": "gitlab" + } + }, + "ws-butler": { + "flake": false, + "locked": { + "lastModified": 1634511126, + "narHash": "sha256-c0y0ZPtxxICPk+eaNbbQf6t+FRCliNY54CCz9QHQ8ZI=", + "owner": "hlissner", + "repo": "ws-butler", + "rev": "572a10c11b6cb88293de48acbb59a059d36f9ba5", + "type": "github" + }, + "original": { + "owner": "hlissner", + "repo": "ws-butler", + "type": "github" + } + }, + "xdph": { + "inputs": { + "hyprland-protocols": [ + "hyprland", + "hyprland-protocols" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1697981233, + "narHash": "sha256-y8q4XUwx+gVK7i2eLjfR32lVo7TYvEslyzrmzYEaPZU=", + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "rev": "22e7a65ff9633e1dedfa5317fdffc49f68de2ff2", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "type": "github" + } + }, + "yt-dlp": { + "flake": false, + "locked": { + "lastModified": 1700520232, + "narHash": "sha256-+F9wOOGLIkbVxbg64Ri2XfGRR/iG1tJURXiYvC6gLLk=", + "owner": "yt-dlp", + "repo": "yt-dlp", + "rev": "a0b19d319a6ce8b7059318fa17a34b144fde1785", + "type": "github" + }, + "original": { + "owner": "yt-dlp", + "repo": "yt-dlp", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix index 58270212..fec90b1d 100644 --- a/flake.nix +++ b/flake.nix @@ -1,74 +1,344 @@ { + # FIXME https://github.com/cafkafk/fortune-kind/blob/b8dd6073ed41e0823271e3a073587cc7f60167db/flake.nixpkgs + # formatter and rime description = "A collection of my system configs and dotfiles."; inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.11"; - unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + flake-registry = { + url = "github:NixOS/flake-registry"; + flake = false; + }; - # some commit containing mysql57 and php74 - nixpkgs-22-05.url = "github:NixOS/nixpkgs/695b3515251873e0a7e2021add4bba643c56cde3"; + ####### FIXME Start using https://github.com/cafkafk/rime here ########## + nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11"; + nixos-2305.url = "github:NixOS/nixpkgs/nixos-23.05"; + # nixpkgs-unstable is cached (also nixos-unstable). Those are basically "the latest snapshot of master to have everything built and cached". + # FIXME Remove pin, when https://github.com/NixOS/nixpkgs/pull/276887 is reverted, it broke hm, see https://github.com/nix-community/home-manager/issues/4875 + unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; # PR 276887 is reverted, so /b2e4fd1049a3e92c898c99adc8832361fa7e1397"; #/635a306fc8ede2e34cb3dd0d6d0a5d49362150ed"; # nvim broken in 8d447c5626cfefb9b129d5b30103344377fe09bc, see https://github.com/573/nix-config-1/actions/runs/4960709342/jobs/8876554875#step:6:3671 + #unstable.url = "github:NixOS/nixpkgs/c4d0026e7346ad2006c2ba730d5a712c18195aab"; + # latest is not cached, also github:NixOS/nixpkgs points to master/latest so no branch spec needed + latest.url = "github:NixOS/nixpkgs"; # "github:NixOS/nixpkgs/master"; + # or rather (bc I basically only need simple-scan and sane-backends) : https://lazamar.co.uk/nix-versions/?package=sane-backends&version=1.0.32&fullName=sane-backends-1.0.32&keyName=sane-backends&revision=1732ee9120e43c1df33a33004315741d0173d0b2&channel=nixos-22.11#instructions ? + nixos-2211.url = "github:NixOS/nixpkgs/nixos-22.11"; + nixos-2211-small.url = "github:NixOS/nixpkgs/nixos-22.11-small"; - home-manager = { + # TODO Is this up-to-date for release-23.11 still ? ghc cached based on nixpkgs-unstable (i. e. https://lazamar.co.uk/nix-versions/?package=ghc&version=9.4.6&fullName=ghc-9.4.6&keyName=ghc&revision=9957cd48326fe8dbd52fdc50dd2502307f188b0d&channel=nixpkgs-unstable#instructions) + # see how-to: https://discourse.nixos.org/t/cache-for-other-ghc-versions/18511 + ghc-nixpkgs-unstable.url = "github:NixOS/nixpkgs/e1ee359d16a1886f0771cc433a00827da98d861c"; + + # https://github.com/NixOS/nixpkgs/pull/274799 + # https://lazamar.co.uk/nix-versions/?channel=nixos-22.11&package=simple-scan + # https://discourse.nixos.org/t/binary-cache-for-staging/23813/4 + # https://discourse.nixos.org/t/when-does-staging-hit-release-channels/11892 + # https://discourse.nixos.org/t/release-process-staging-branches/2799/4 + #glib-issue.url = "github:NixOS/nixpkgs/staging-next"; + + home-manager-latest = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "latest"; + }; + home-manager-2211 = { url = "github:nix-community/home-manager/release-22.11"; + inputs.nixpkgs.follows = "nixos-2211"; + }; + + home-manager = { + url = "github:nix-community/home-manager/release-23.11"; inputs.nixpkgs.follows = "nixpkgs"; }; + + flake-compat = { + url = "github:edolstra/flake-compat"; + flake = false; + }; + + devenv = { + url = "github:cachix/devenv"; + }; + nix-on-droid = { - url = "github:t184256/nix-on-droid"; - inputs.home-manager.follows = "home-manager"; - inputs.nixpkgs.follows = "nixpkgs"; + # if all fails, stick to ../../release-23.05 again, although looking at + # https://github.com/nix-community/nix-on-droid/blob/nix-community-move/flake.nix nix-on-droids inputs anyway seem to follow (as of Dec 1, 2023): + # - nixpkgs master branch + # - home-managers master branch overridden aforementioneds nixpkgs (that is currently nixos-unstable) + # - nix-formatter-packs master branch overridden aforementioneds nixpkgs (that is currently release-22.11) + url = "github:nix-community/nix-on-droid/release-23.11"; + inputs.home-manager.follows = "home-manager"; # I'm overriding master@de3758e31a3a1bc79d569f5deb5dac39791bf9b6 (Sep 23, 2022) here + inputs.nixpkgs.follows = "nixpkgs"; # I'm overriding master@9c64b91d14268cf20ea07ea7930479a75325af9f (Sep 24, 2022) here + inputs.nix-formatter-pack.follows = "nix-formatter-pack"; + inputs.nmd.follows = "nmd"; }; - cachix-deploy-flake.url = "github:cachix/cachix-deploy-flake"; + flake-utils.url = "github:numtide/flake-utils"; - agenix = { - url = "github:ryantm/agenix"; - inputs.nixpkgs.follows = "nixpkgs"; + "virtual-types.nvim" = { + flake = false; + url = "https://github.com/jubnzv/virtual-types.nvim/archive/9ef9f31c58cc9deb914ee728b8bda8f217f9d1c7.tar.gz"; }; - agenix-cli = { - url = "github:cole-h/agenix-cli"; - inputs.nixpkgs.follows = "nixpkgs"; + + neovim-flake = { + url = "github:neovim/neovim?dir=contrib"; # &rev=d321deb4a9b05e9d81b79ac166274f4a6e7981bf"; # the commit used in neovim-nightly-overlay itself, i. e. https://github.com/nix-community/neovim-nightly-overlay/commit/e5a94bb91c94dc079e7c714494a0be7814b51c6d + # FIXME Gerschtli rather follows nixpkgs for all inputs, should I too ? + #inputs.nixpkgs.follows = "unstable"; + #inputs.flake-utils.follows = "flake-utils"; }; - homeage = { - url = "github:jordanisaacs/homeage"; - inputs.nixpkgs.follows = "nixpkgs"; + + # TODO https://github.com/nix-community/neovim-nightly-overlay/blob/89fdda1/flake.nix#L39 + neovim-nightly-overlay = { + url = "github:nix-community/neovim-nightly-overlay"; + #inputs.nixpkgs.follows = "unstable"; + #inputs.flake-parts.follows = "flake-parts"; + #inputs.hercules-ci-effects.follows = "hercules-ci-effects"; + #inputs.flake-compat.follows = "flake-compat"; + #inputs.neovim-flake.follows = "neovim-flake"; }; - dmenu = { - url = "github:Gerschtli/dmenu"; - inputs.nixpkgs.follows = "nixpkgs"; + nmd.url = "git+https://git.sr.ht/~rycee/nmd?ref=master"; + + fenix = { + url = "github:nix-community/fenix"; + inputs.nixpkgs.follows = "unstable"; }; - dwm = { - url = "github:Gerschtli/dwm"; - inputs.nixpkgs.follows = "nixpkgs"; + + "hledger-completion.bash" = { + flake = false; + url = "github:simonmichael/hledger?dir=hledger/shell-completion"; }; - dwm-status = { - url = "github:Gerschtli/dwm-status"; - inputs.nixpkgs.follows = "nixpkgs"; + + hledger-bin = { + flake = false; + url = "github:simonmichael/hledger?dir=bin"; }; - teamspeak-update-notifier = { - url = "github:Gerschtli/teamspeak-update-notifier"; + + fsread-nvim = { + flake = false; + url = "github:nullchilly/fsread.nvim"; + }; + + ruby-nix = { + url = "github:inscapist/ruby-nix"; + }; + + bundix = { + url = "github:inscapist/bundix/main"; inputs.nixpkgs.follows = "nixpkgs"; }; + rust-overlay = { + url = "github:oxalica/rust-overlay"; + inputs.flake-utils.follows = "flake-utils"; + inputs.nixpkgs.follows = "unstable"; + }; + + nix-filter = { + url = "github:numtide/nix-filter"; + }; + nix-formatter-pack = { url = "github:Gerschtli/nix-formatter-pack"; inputs.nixpkgs.follows = "nixpkgs"; + inputs.nmd.follows = "nmd"; }; nixGL = { url = "github:guibou/nixGL"; - inputs.nixpkgs.follows = "nixpkgs"; + # follows nixpkgs (master) + }; + + # follows nixpkgs (master) + nix-index-database.url = "github:Mic92/nix-index-database"; + + "deferred-clipboard.nvim" = { + flake = false; + url = "github:EtiamNullam/deferred-clipboard.nvim"; + }; + + "filetype.nvim" = { + url = "https://github.com/nathom/filetype.nvim/archive/b522628a45a17d58fc0073ffd64f9dc9530a8027.tar.gz"; + flake = false; }; - nix-index-database = { - url = "github:Mic92/nix-index-database"; + "action-hints.nvim" = { + url = "github:roobert/action-hints.nvim"; + flake = false; + }; + + "garbage-day.nvim" = { + url = "github:Zeioth/garbage-day.nvim"; + flake = false; + }; + + # FIXME broken, https://www.reddit.com/r/NixOS/comments/175w44g/broken_flake_sorta/ + nixos-wsl = { + #url ="github:nix-community/nixos-wsl?ref=refs/tags/23.5.5.0"; + url = "github:nix-community/nixos-wsl"; inputs.nixpkgs.follows = "nixpkgs"; + inputs.flake-compat.follows = "flake-compat"; + inputs.flake-utils.follows = "flake-utils"; + }; + + emacs-overlay = { + url = "github:nix-community/emacs-overlay/babae500c2bca610eb38e17a1ef1bf0f70beb29e"; + }; + + emacs-overlay-cached = { + url = "github:nix-community/emacs-overlay/7fe510de8909d248df2d32d758303a325b3738f9"; + #url = "github:nix-community/emacs-overlay/2308be4351ab8a152248a48baebf22649c83a487"; + }; + + # nix 2.11 assumed, nix-build-uncached also seems not to like this https://github.com/573/nix-config-1/actions/runs/3550769213/jobs/5964441134 + #sanemacs_el = { + # url = "https://sanemacs.com/sanemacs.el"; + # flake = false; + #}; + + sane-defaults = { + url = "https://raw.githubusercontent.com/magnars/.emacs.d/master/settings/sane-defaults.el"; + flake = false; + }; + + sensible-defaults = { + url = "https://raw.githubusercontent.com/hrs/sensible-defaults.el/main/sensible-defaults.el"; + flake = false; + }; + + yt-dlp = { + url = "github:yt-dlp/yt-dlp"; + flake = false; }; impermanence.url = "github:nix-community/impermanence"; + + talon = { + url = "github:nix-community/talon-nix"; + inputs.nixpkgs.follows = "unstable"; + }; + + flake-parts = { + url = "github:hercules-ci/flake-parts"; + inputs.nixpkgs-lib.follows = "unstable"; + }; + + jupyenv.url = "github:573/jupyenv-aarch64-experimental"; + + nixpkgs-ruby = { + url = "github:bobvanderlinden/nixpkgs-ruby"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + ocaml-overlay = { + url = "github:nix-ocaml/nix-overlays"; + inputs.nixpkgs.follows = "latest"; + }; + + pypi-deps-db = { + url = "github:DavHau/pypi-deps-db"; + flake = false; + }; + + mach-nix = { + url = "github:DavHau/mach-nix"; # ?ref=3.5.0 + inputs.nixpkgs.follows = "unstable"; + inputs.pypi-deps-db.follows = "pypi-deps-db"; + }; + + nixd = { + #url = "github:nix-community/nixd?ref=1.2.3"; + url = "github:nix-community/nixd"; + inputs.nixpkgs.follows = "unstable"; + inputs.flake-parts.follows = "flake-parts"; + }; + + org-novelist = { + url = "github:sympodius/org-novelist"; + flake = false; + }; + + firefox = { + url = "github:nix-community/flake-firefox-nightly"; + }; + + rust-dev-template = { + url = "github:the-nix-way/dev-templates/1117b469aa83bef9e29616b7c67d80b14beb2c14?dir=rust"; # reason for pin: error: flake input attribute 'nixpkgs' is a thunk while a string, Boolean, or integer is expected :: meaning the url is resolved to *.tar.gz thus ?/dir= uri would not work yet + }; + + clojure-dev-template = { + url = "github:the-nix-way/dev-templates?dir=clojure"; + }; + + ocaml-dev-template = { + url = "github:the-nix-way/dev-templates?dir=ocaml"; + }; + + git-issue = { + url = "github:dspinellis/git-issue"; + flake = false; + }; + + firefox-addons = { url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; inputs.nixpkgs.follows = "nixpkgs"; }; + + mistty = { + url = "github:szermatt/mistty"; + flake = false; + }; + + flatpaks = { + url = "github:gmodena/nix-flatpak/?ref=v0.1.0"; + }; + + wsl-vpnkit = { + # misusing the github api a bit here, see https://docs.github.com/de/rest/pulls/pulls?apiVersion=2022-11-28#get-a-pull-request--code-samples, a ?ref= would not work, but hash is correctly resolved to pull/250/commits/hash + url = "github:sakai135/wsl-vpnkit/6845578336b5bcc3484f23dce51c4f6ac37baba6"; #28992229fedfa64979faa9ec84b1b4bcf5c8f449"; #/?dir=pulls/250"; + flake = false; + }; + + google-chrome = { + url = "github:r-k-b/browser-previews"; + }; + + ghc-wasm-meta.url = "gitlab:ghc/ghc-wasm-meta/master?host=gitlab.haskell.org"; + + zig2nix.url = "github:Cloudef/zig2nix"; + + nix-ld-rs.url = "github:nix-community/nix-ld-rs"; + nixvim-config.url = "github:MikaelFangel/nixvim-config"; + + nixvim = { + url = "github:nix-community/nixvim"; + # inputs.nixpkgs.follows = "nixpkgs"; + }; + + ghciwatch = { + url = "github:MercuryTechnologies/ghciwatch"; + }; + + nvim-dd = { + url = "github:yorickpeterse/nvim-dd"; + flake = false; + }; + + nano-emacs = { + url = "github:rougier/nano-emacs"; + flake = false; + }; + + faster-nvim = { + url = "github:pteroctopus/faster.nvim"; + flake = false; + }; + + deadcolumn-nvim = { + url = "github:Bekaboo/deadcolumn.nvim"; + flake = false; + }; }; - outputs = { self, nixpkgs, cachix-deploy-flake, nix-formatter-pack, ... } @ inputs: + outputs = + { self + , nixpkgs + , nix-formatter-pack + , ... + } @ inputs: let rootPath = self; forEachSystem = nixpkgs.lib.genAttrs [ "aarch64-linux" "x86_64-linux" ]; @@ -76,8 +346,6 @@ inherit inputs rootPath forEachSystem; }; - cachixDeployLibFor = forEachSystem (system: cachix-deploy-flake.lib nixpkgs.legacyPackages.${system}); - formatterPackArgsFor = forEachSystem (system: { inherit nixpkgs system; checkFiles = [ self ]; @@ -88,90 +356,406 @@ noLambdaPatternNames = true; }; nixpkgs-fmt.enable = true; - statix.enable = true; + statix = { + enable = true; + disabledLints = [ "repeated_keys" ]; + }; }; + }); inherit (nixpkgs.lib) listToAttrs; - inherit (flakeLib) mkApp mkDevShellJdk mkDevShellPhp mkHome mkNixOnDroid mkNixos; + inherit (flakeLib) mkApp mkHome mkNixOnDroid mkNixos mkDevenvJvmLang mkDevenvDeno mkDevenvFlutter mkDevenvOcaml mkDevenvRust mkDevenvMachnix mkDevenvJupyenv mkDevenvRuby mkDevenvHaskell mkDevenvRustWasm32; in { homeConfigurations = listToAttrs [ - (mkHome "x86_64-linux" "tobias@gamer") - (mkHome "x86_64-linux" "tobhap@M386") + (mkHome "x86_64-linux" "dani@maiziedemacchiato") ]; nixOnDroidConfigurations = listToAttrs [ - (mkNixOnDroid "aarch64-linux" "oneplus5") + (mkNixOnDroid "aarch64-linux" "sams9") ]; nixosConfigurations = listToAttrs [ - (mkNixos "aarch64-linux" "argon") - (mkNixos "x86_64-linux" "krypton") - (mkNixos "x86_64-linux" "neon") - (mkNixos "aarch64-linux" "xenon") + (mkNixos "x86_64-linux" "DANIELKNB1") ]; - apps = forEachSystem (system: listToAttrs [ - (mkApp system "nixos-shell" { - file = ./files/apps/nixos-shell.sh; - path = pkgs: with pkgs; [ nixos-shell gawk jq git ]; - }) + apps = forEachSystem (system: + (listToAttrs [ + ( + # TODO Also try https://github.com/IllustratedMan-code/tick_egg_paper/blob/bf14af5/flake.nix#L44 + let + inherit (inputs.jupyenv.lib.${system}) mkJupyterlabNew; + jupyterlab = mkJupyterlabNew ({ ... }: { + nixpkgs = inputs.nixpkgs; + imports = [ + ({ pkgs, ... }: { + kernel.python.science = { + enable = true; + }; + #kernel.ocaml.minimal-example = { + # enable = true; + #}; + #kernel.julia.minimal-example = { + # enable = true; + # julia = pkgs.julia-bin; + #}; + kernel.rust.minimal-example = { + enable = true; + }; + }) + ]; + }); + in + { + name = "jupyenv-app"; + value = { + program = "${jupyterlab}/bin/jupyter-lab"; + type = "app"; + }; + } + ) - (mkApp system "setup" { - file = ./files/apps/setup.sh; - path = pkgs: with pkgs; [ coreutils curl git gnugrep hostname jq nix openssh ]; - envs._doNotClearPath = true; - }) - ]); + (mkApp system "nvim" rec { + file = builtins.toFile "file" '' + source @bashLib@ + nvim + ''; + path = pkgs: with pkgs; (map (x: "${x.custom.programs.neovim.lightweight.outPath}") (( + let inherit (pkgs.stdenv) isLinux isx86_64; in lib.optionals (isLinux && isx86_64) [ + self.nixosConfigurations.DANIELKNB1.config.home-manager.users.nixos + self.homeConfigurations."dani@maiziedemacchiato".config + ] + ) ++ ( + let inherit (pkgs.stdenv) isLinux isAarch64; in lib.optionals (isLinux && isAarch64) [ + self.nixOnDroidConfigurations.sams9.config.home-manager.config + ] + ))); + }) - checks = forEachSystem (system: { - nix-formatter-pack-check = nix-formatter-pack.lib.mkCheck formatterPackArgsFor.${system}; - }); + ({ + name = "nixvim"; + value = let pkgs = inputs.nixpkgs.legacyPackages.${system}; in { + program = builtins.toString (pkgs.writeShellScript "testnixvim" '' + ${self.inputs.nixvim.packages."${system}".default}/bin/nvim + ''); + type = "app"; + }; + }) + + (mkApp system "emacs" rec { + file = builtins.toFile "file" '' + source @bashLib@ + emacs + ''; + path = pkgs: with pkgs; (map (x: "${x.custom.programs.emacs.finalPackage.outPath}") (( + let inherit (pkgs.stdenv) isLinux isx86_64; in lib.optionals (isLinux && isx86_64) [ + self.nixosConfigurations.DANIELKNB1.config.home-manager.users.nixos + self.homeConfigurations."dani@maiziedemacchiato".config + ] + ) ++ ( + let inherit (pkgs.stdenv) isLinux isAarch64; in lib.optionals (isLinux && isAarch64) [ + self.nixOnDroidConfigurations.sams9.config.home-manager.config + ] + ))); + }) + + (mkApp system "nixos-shell" { + file = ./files/apps/nixos-shell.sh; + path = pkgs: with pkgs; [ nixos-shell gawk jq git ]; + }) + + (mkApp system "setup" { + file = ./files/apps/setup.sh; + path = pkgs: with pkgs; [ coreutils curl git gnugrep hostname jq nixVersions.nix_2_19 openssh ]; + envs._doNotClearPath = true; + }) + + ]) // { + nilApp = null; + } + ); + + checks = forEachSystem (system: + { + nix-formatter-pack-check = nix-formatter-pack.lib.mkCheck formatterPackArgsFor.${system}; + + /* neovim-check-config = pkgs.runCommand "neovim-check-config" + { + buildInputs = [ pkgs.git self.nixosConfigurations.DANIELKNB1.pkgs.neovim ]; + + } '' + mkdir -p "$out" + + # prevent E886 ('/home-shelter' error) + export HOME=$TMPDIR + # presumes prior devenv shell run in ~/debugpy-devshell/, https://github.com/mfussenegger/nvim-dap-python/blob/408186a/README.md#debugpy + export VIRTUAL_ENV=/home/dkahlenberg/debugpy-devshell/.devenv/state/venv + nvim --headless +":scriptnames | q" 2> "$out/nvim.log" + + if [ -n "$(cat "$out/nvim.log")" ]; then + echo "output: "$(cat "$out/nvim.log")"" + exit 1 + fi + ''; + */ + }); # use like: # $ direnv-init jdk11 # $ lorri-init jdk11 devShells = forEachSystem (system: listToAttrs [ - (mkDevShellJdk system "jdk8" { jdk = pkgs: pkgs.jdk8; }) - (mkDevShellJdk system "jdk11" { jdk = pkgs: pkgs.jdk11; }) - (mkDevShellJdk system "jdk17" { jdk = pkgs: pkgs.jdk17; }) + ({ + name = "nixd"; + value = inputs.nixd.devShells.${system}.default; + }) + ( + let + pkgs = inputs.unstable.legacyPackages.${system}; + in + rec { + # TODO https://github.com/thenbe/neotest-playwright for configuration + name = "playwright"; + value = inputs.devenv.lib.mkShell { + inherit inputs pkgs; + modules = [ + ({ pkgs, ... }: { + packages = with pkgs;[ nodejs playwright-test playwright-driver.browsers ]; + env.PLAYWRIGHT_BROWSERS_PATH = "${pkgs.playwright-driver.browsers}"; + env.PLAYWRIGHT_NODEJS_PATH = "${pkgs.nodejs}/bin/node"; + env.PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD = 1; + enterShell = '' + # Remove playwright from node_modules, so it will be taken from playwright-test + rm node_modules/@playwright/ -R + ''; + }) + ]; + }; + } + ) + # AFAIU the pkgs used herein (mkDevenv*) are with the overlays as in flake/nixpkgs.nix etc. applied, also means any derivation defined therein can be used here then, but is a different derivation than i. e. some binary-cached elsewhere, which can lead to subtle differences i. e. (un)expected rebuilds. To use a binary-cached flake define here directly in flake.nix and add overlays when needed only. + (mkDevenvJupyenv system "jupyenv" { }) + (mkDevenvJvmLang system "jvmlanguages-devenv" { }) + (mkDevenvDeno system "deno" { }) + (mkDevenvFlutter system "flutter" { }) + # TODO https://github.com/c-cube/iter + (mkDevenvOcaml system "ocaml" { }) + (mkDevenvRuby system "ruby" { }) + (mkDevenvRust system "rust" { }) + (mkDevenvRustWasm32 system "rustwasm32" { }) + (mkDevenvHaskell system "haskell" { }) + + (mkDevenvMachnix system "machnix" { }) + #(mkDevenvJulia system "julia" { }) + ] // ({ + # based on this https://github.com/cachix/devenv/pull/667#issuecomment-1656811711 + rustyShell = + let + # FIXME https://discourse.nixos.org/t/unexpected-11h-build-after-auto-update/39907/9 + pkgs = import inputs.unstable { + inherit system; + overlays = + (map (x: x.overlays.default) [ + inputs.rust-overlay + # see https://github.com/nix-community/fenix#usage (as a flake) + inputs.fenix + ]) + ; + }; + rustVersion = pkgs.rust-bin.selectLatestNightlyWith (toolchain: toolchain.default); + #aarch64-binutils = pkgs.pkgsCross.aarch64-multiplatform.stdenv.cc; + #x86_64-binutils = pkgs.pkgsCross.gnu64.stdenv.cc; + in + inputs.devenv.lib.mkShell rec { + inherit inputs pkgs; + modules = [ + ({ pkgs, ... }: { + languages.rust = { + enable = true; + toolchain.rustc = (rustVersion.override { + extensions = [ "rust-src" "rust-analyzer" ]; + targets = [ /*"x86_64-unknown-linux-gnu" "aarch64-unknown-linux-gnu"*/ "wasm32-unknown-unknown" ]; + }); + }; - (mkDevShellPhp system "php74" { phpVersion = "74"; }) - (mkDevShellPhp system "php80" { phpVersion = "80"; }) - (mkDevShellPhp system "php81" { phpVersion = "81"; }) - ]); + /*packages = [ + pkgs.libunwind + aarch64-binutils + ] ++ pkgs.lib.optionals pkgs.stdenv.isDarwin (with pkgs.darwin.apple_sdk; [ + frameworks.Security + frameworks.CoreFoundation + x86_64-binutils + ]);*/ + }) + ]; + }; + pythonShell = + let + pkgs = inputs.unstable.legacyPackages.${system}; #import inputs.unstable { inherit system; }; + # see https://discourse.nixos.org/t/help-using-poetry-in-a-flake-devshell/36874/3 + mypython = pkgs.python311.withPackages (p: with p; [ + sqlglot + # https://medium.com/social-impact-analytics/extract-text-from-unsearchable-pdfs-for-data-analysis-using-python-a6a2ca0866dd + pymupdf + pdf2image + opencv4 + pytesseract + ocrmypdf + pandas + numpy + ]); + in + pkgs.mkShell { + packages = [ mypython ]; + }; + agda = + let + pkgs = inputs.ghc-nixpkgs-unstable.legacyPackages.${system}; #import inputs.ghc-nixpkgs-unstable { inherit system; }; + myagda = (pkgs.agdaPackages.override { + Agda = pkgs.haskellPackages.Agda.overrideAttrs { }; + }).agda.withPackages (p: with p; [ standard-library ]); + in + pkgs.mkShell { + packages = [ myagda ]; + }; + # https://github.com/NixOS/nixpkgs/blob/9e860e4/pkgs/development/lisp-modules/shell.nix + clShell = let pkgs = inputs.unstable.legacyPackages.${system}; in #import inputs.unstable { inherit system; }; in + pkgs.mkShell { + nativeBuildInputs = [ + (pkgs.sbcl.withPackages + (ps: with ps; [ + alexandria + str + dexador + cl-ppcre + sqlite + arrow-macros + jzon + ])) + ]; + }; + # https://github.com/tweag/ormolu/blob/74887f00137d6cd91811440325c3ac330a371b2c/ormolu-live/default.nix + ghcWasmShell = + let + pkgs = inputs.unstable.legacyPackages.${system}; #import inputs.unstable { inherit system; }; + in + pkgs.mkShell { + packages = [ inputs.ghc-wasm-meta.packages.${system}.all_9_8 ]; + }; + # try https://github.com/cachix/devenv/issues/585 + haskellShell = + let + hiPrio = pkg: pkgs.lib.updateManyAttrsByPath (builtins.map (output: { path = [ output ]; update = pkgs.hiPrio; }) pkg.outputs) pkg; + pkgs = inputs.ghc-nixpkgs-unstable.legacyPackages.${system}; #import inputs.ghc-nixpkgs-unstable { inherit system; }; + stack = hiPrio (inputs.unstable.legacyPackages.${system}.stack); + in + inputs.devenv.lib.mkShell rec { + inherit inputs pkgs; + modules = [ + ({ pkgs, ... }: + { + packages = [ + (inputs.ghciwatch.packages.${system}.default) + stack # still the stack from ghc-nixpkgs-unstable seemingly + pkgs.hledger + ]; + + languages.haskell = { + enable = true; + package = pkgs.haskell.packages.ghc946.ghcWithHoogle (pset: with pset; [ + # libraries + #zlib + #arrows + #async + # cgi # marked broken + #criterion + # tools + #cabal-install + shake + # see this also: https://nixos.wiki/wiki/Haskell#Using_Stack_.28no_nix_caching.29 + # stack # stack of ghc-nixpkgs-unstable is too old + ]); + }; + }) + ]; + }; + # https://github.com/NixOS/nixpkgs/blob/9e860e4/pkgs/development/lisp-modules/shell.nix + zigShell = inputs.zig2nix.devShells.${system}.default; + rustShell = inputs.rust-dev-template.devShells.${system}.default; + cljShell = inputs.clojure-dev-template.devShells.${system}.default; + ocamlShell = inputs.ocaml-dev-template.devShells.${system}.default; + cudaShell = + let + pkgs = import inputs.nixpkgs { + inherit system; + # FIXME https://discourse.nixos.org/t/too-dumb-to-use-allowunfreepredicate/39956/17 + config = { + allowUnfree = true; + cudaSupport = true; + }; + }; + in + pkgs.mkShell { + buildInputs = + [ + pkgs.python310 + #pkgs.python38Packages.pytorch + pkgs.python310Packages.pytorch-bin + ]; + + shellHook = '' + export LD_LIBRARY_PATH=/usr/lib/wsl/lib + ''; + }; + yaocaml = + let + pkgs = inputs.unstable.legacyPackages.${system}; #import inputs.unstable { inherit system; }; + in + pkgs.mkShell { + packages = with pkgs; [ ocaml ocamlformat opam ] ++ + (with pkgs.ocamlPackages; [ + ocaml + findlib + dune_3 + odoc + ocaml-lsp + merlin + utop + ocp-indent + janeStreet.async + janeStreet.base + janeStreet.core_unix + janeStreet.ppx_let + ]); + }; + })); formatter = forEachSystem (system: nix-formatter-pack.lib.mkFormatter formatterPackArgsFor.${system}); nixosModules.nixos-shell-vm = import ./files/nix/nixos-shell-vm.nix rootPath; + packages = let - cachixDeployOutput = builder: name: module: - let - inherit (module.pkgs) system; - in - { - ${system}."cachix-deploy-spec-${name}" = cachixDeployLibFor.${system}.spec { - agents.${name} = builder module; - }; + cachixSpecBuilder = pkgs: spec: pkgs.writeText "cachix-deploy.json" (builtins.toJSON spec); + + cachixDeployOutput = builder: name: module: { + ${module.pkgs.system}."cachix-deploy-spec-${name}" = cachixSpecBuilder module.pkgs { + agents.${name} = builder module; }; + }; cachixDeployOutputHomeManager = cachixDeployOutput (module: module.activationPackage); + cachixDeployOutputNixondroid = cachixDeployOutput (module: module.activationPackage); cachixDeployOutputNixos = cachixDeployOutput (module: module.config.system.build.toplevel); in nixpkgs.lib.foldl nixpkgs.lib.recursiveUpdate - { - aarch64-linux = { - rpi-firmware = import ./files/nix/rpi-firmware.nix { inherit nixpkgs; }; - rpi-image = import ./files/nix/rpi-image.nix { inherit nixpkgs rootPath; }; - }; - - x86_64-linux.installer-image = import ./files/nix/installer-image.nix { inherit nixpkgs; }; - } + { } (nixpkgs.lib.mapAttrsToList cachixDeployOutputNixos self.nixosConfigurations - ++ [ (cachixDeployOutputHomeManager "M386" self.homeConfigurations."tobhap@M386") ]); + ++ [ (cachixDeployOutputNixondroid "sams9" self.nixOnDroidConfigurations.sams9) (cachixDeployOutputHomeManager "maiziedemacchiato" self.homeConfigurations."dani@maiziedemacchiato") ]); + }; + + nixConfig = { }; } diff --git a/flake/builders/gemset.nix b/flake/builders/gemset.nix new file mode 100644 index 00000000..7667f47a --- /dev/null +++ b/flake/builders/gemset.nix @@ -0,0 +1,23 @@ +{ + gmail-britta = { + dependencies = [ "haml" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "044z8w58hykdy3jsifhq298rpb6c6vfxlxsmc1cma93d7q7phrva"; + type = "gem"; + }; + version = "0.1.7"; + }; + haml = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "05qnmrcjp85bgjwgmb0yhi7jyb7vd9jdqgxhzc7mmz0ch58rvxj4"; + type = "gem"; + }; + version = "3.1.8"; + }; +} diff --git a/flake/builders/mkDevShellJdk.nix b/flake/builders/mkDevShellJdk.nix deleted file mode 100644 index 9329603b..00000000 --- a/flake/builders/mkDevShellJdk.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ system, pkgsFor, name, args, ... }: - -let - pkgs = pkgsFor.${system}; - jdk = args.jdk pkgs; -in - -pkgs.mkShell { - inherit name; - buildInputs = [ jdk pkgs.maven ]; - JAVA_HOME = "${jdk}/lib/openjdk"; -} diff --git a/flake/builders/mkDevShellPhp.nix b/flake/builders/mkDevShellPhp.nix deleted file mode 100644 index aedff8d1..00000000 --- a/flake/builders/mkDevShellPhp.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ system, pkgsFor, name, args, ... }: - -let - pkgs = pkgsFor.${system}; - version = args.phpVersion; - - phpPackage = pkgs."php${version}"; - phpExtensions = pkgs."php${version}Extensions"; - phpPackages = pkgs."php${version}Packages"; - - extensions = [ - "bz2" - ]; -in - -pkgs.mkShell { - inherit name; - - buildInputs = [ - phpPackage - phpPackages.composer - ]; - - PHPRC = import ./util/phpIni.nix { - inherit (pkgs) lib writeTextDir; - inherit extensions phpPackage phpExtensions; - }; -} diff --git a/flake/builders/mkDevenvDeno.nix b/flake/builders/mkDevenvDeno.nix new file mode 100644 index 00000000..cc8164b5 --- /dev/null +++ b/flake/builders/mkDevenvDeno.nix @@ -0,0 +1,14 @@ +{ system, pkgsFor, inputs, name, args, ... }: + +let + pkgs = pkgsFor.${system}; +in + +inputs.devenv.lib.mkShell { + inherit inputs pkgs; + modules = [ + ({ pkgs, ... }: { + languages.deno.enable = true; + }) + ]; +} diff --git a/flake/builders/mkDevenvFlutter.nix b/flake/builders/mkDevenvFlutter.nix new file mode 100644 index 00000000..e6ef149c --- /dev/null +++ b/flake/builders/mkDevenvFlutter.nix @@ -0,0 +1,16 @@ +{ system, pkgsFor, inputs, name, args, ... }: + +let + pkgs = pkgsFor.${system}; +in + +inputs.devenv.lib.mkShell { + inherit inputs pkgs; + modules = [ + ({ pkgs, ... }: { + packages = [ pkgs.flutter ]; + + languages.dart.enable = true; + }) + ]; +} diff --git a/flake/builders/mkDevenvHaskell.nix b/flake/builders/mkDevenvHaskell.nix new file mode 100644 index 00000000..54a363ad --- /dev/null +++ b/flake/builders/mkDevenvHaskell.nix @@ -0,0 +1,43 @@ +{ system, pkgsFor, inputs, name, args, ... }: + +let + pkgs = pkgsFor.${system}; + inherit (inputs.devenv.lib) mkShell; +in +mkShell rec { + inherit inputs pkgs; + modules = [ + ({ pkgs, ... }: + let + myHaskellPackages = + inputs.ghc-nixpkgs-unstable.legacyPackages.${system}.haskell.packages.ghc946.override (old: { + overrides = pkgs.lib.composeExtensions (old.overrides or (_: _: { })) + (hself: hsuper: { + ghc = hsuper.ghc // { withPackages = hsuper.ghc.withHoogle; }; + #ghcWithPackages = hself.ghc.withPackages; # would this be a function still ? leads to infinite recursion + myGhc = hself.ghc.withPackages (p: with p; with hsuper; [ + zlib + # hledger # haddock: internal error: Data.Binary.getPrim: end of file + arrows + async + # cgi # marked broken + criterion + # tools + cabal-install + # haskintex + # haskell-language-server # haddock: internal error: Data.Binary.getPrim: end of file + ]); + }); + }); + in + { + + languages.haskell = { + enable = true; + package = myHaskellPackages.myGhc; + languageServer = null; + }; + + }) + ]; +} diff --git a/flake/builders/mkDevenvJulia.nix b/flake/builders/mkDevenvJulia.nix new file mode 100644 index 00000000..2b7cfde2 --- /dev/null +++ b/flake/builders/mkDevenvJulia.nix @@ -0,0 +1,14 @@ +{ system, pkgsFor, inputs, name, args, ... }: + +let + pkgs = pkgsFor.${system}; +in + +inputs.devenv.lib.mkShell { + inherit inputs pkgs; + modules = [ + ({ pkgs, ... }: { + languages.julia.enable = true; + }) + ]; +} diff --git a/flake/builders/mkDevenvJupyenv.nix b/flake/builders/mkDevenvJupyenv.nix new file mode 100644 index 00000000..3df974d0 --- /dev/null +++ b/flake/builders/mkDevenvJupyenv.nix @@ -0,0 +1,76 @@ +{ system, pkgsFor, inputs, name, args, ... }: + +let + pkgs = pkgsFor.${system}; + inherit (inputs.devenv.lib) mkShell; +in + +mkShell { + inherit inputs pkgs; + modules = [ + ({ pkgs, ... }: + { + #languages.ocaml.enable = true; + + packages = + let + inherit (inputs.jupyenv.lib.${system}) mkJupyterlabNew; + jupyterlab = mkJupyterlabNew ({ ... }: { + nixpkgs = inputs.nixpkgs; + imports = [ + ({ pkgs, ... }: { + kernel.go.science.enable = true; + kernel.r.science = { + enable = true; + extraRPackages = ps: [ ps.foreign ps.ggplot2 ps.easystats ]; + }; + kernel.python.science = { + enable = true; + }; + #kernel.ocaml.minimal-example = { + # enable = true; + #}; + #kernel.julia.minimal-example = { + # enable = true; + # julia = pkgs.julia-bin; + #}; + #kernel.scala.minimal-example = { + # enable = true; + #}; + kernel.rust.minimal-example = { + enable = true; + }; + kernel.elm.minimal-example = { + enable = true; + }; + }) + ]; + }); + in + [ + (jupyterlab.overrideAttrs + (_: { + runtimePackages = [ + # Used to setup the OCAMLPATH for libs + #pkgs.ocamlPackages.findlib + + # Libs + #pkgs.ocamlPackages.base + #pkgs.ocamlPackages.core_kernel + #pkgs.ocamlPackages.ounit + #pkgs.ocamlPackages.qcheck + + # REPL + #pkgs.ocamlPackages.utop + ]; + })) + + ]; + + enterShell = '' + echo "jupyter lab --core-mode" + ''; + } + ) + ]; +} diff --git a/flake/builders/mkDevenvJvmLang.nix b/flake/builders/mkDevenvJvmLang.nix new file mode 100644 index 00000000..8ee918da --- /dev/null +++ b/flake/builders/mkDevenvJvmLang.nix @@ -0,0 +1,28 @@ +{ system, pkgsFor, inputs, name, args, ... }: + +let + pkgs = pkgsFor.${system}; +in + +inputs.devenv.lib.mkShell { + inherit inputs pkgs; + modules = [ + { + # https://devenv.sh/reference/options/ + packages = [ pkgs.hello ]; + + languages = { + java = { + enable = true; + gradle.enable = true; + maven.enable = true; + }; + kotlin.enable = true; + }; + + enterShell = '' + hello + ''; + } + ]; +} diff --git a/flake/builders/mkDevenvMachnix.nix b/flake/builders/mkDevenvMachnix.nix new file mode 100644 index 00000000..c25a9ba9 --- /dev/null +++ b/flake/builders/mkDevenvMachnix.nix @@ -0,0 +1,38 @@ +{ system, pkgsFor, inputs, name, args, ... }: + +let + pkgs = pkgsFor.${system}; + inherit (inputs.devenv.lib) mkShell; +in + +mkShell { + inherit inputs pkgs; + modules = [ + ({ pkgs, ... }: + { + packages = + let + mach-nix = import (inputs.mach-nix) { + python = "python310"; # python37 + inherit system; + }; + + machNix = mach-nix.mkPython rec { + requirements = '' + jupyterlab + notebook + agentpy + seaborn + ''; + + providers.jupyterlab = "nixpkgs"; + }; + in + [ machNix ]; + enterShell = '' + echo "jupyter lab --core-mode" + ''; + } + ) + ]; +} diff --git a/flake/builders/mkDevenvOcaml.nix b/flake/builders/mkDevenvOcaml.nix new file mode 100644 index 00000000..0c22f488 --- /dev/null +++ b/flake/builders/mkDevenvOcaml.nix @@ -0,0 +1,21 @@ +{ system, pkgsFor, inputs, name, args, ... }: + +let + pkgs = pkgsFor.${system}; +in + +inputs.devenv.lib.mkShell { + inherit inputs pkgs; + modules = [ + ({ pkgs, config, lib, ... }: + { + languages.ocaml.enable = true; + # languages.ocaml.packages = ocamlPackagesNew; + packages = with config.languages.ocaml.packages; [ + pkgs.opam + findlib + # see https://github.com/NixOS/nixpkgs/issues/16085, utop sufficient, no need for #use "topfind";; in ocaml + ]; + }) + ]; +} diff --git a/flake/builders/mkDevenvRuby.nix b/flake/builders/mkDevenvRuby.nix new file mode 100644 index 00000000..072d9a7f --- /dev/null +++ b/flake/builders/mkDevenvRuby.nix @@ -0,0 +1,27 @@ +{ system, rootPath, pkgsFor, inputs, name, args, ... }: + +let + pkgs = pkgsFor.${system}; + + ruby = inputs.nixpkgs-ruby.lib.packageFromRubyVersionFile { + file = "${rootPath}/home/misc/.ruby-version"; + inherit system; + }; + + gems = pkgs.bundlerEnv { + name = "gemset"; + inherit ruby; + gemfile = "${rootPath}/home/misc/Gemfile"; + lockfile = "${rootPath}/home/misc/Gemfile.lock"; + # TODO Find out, why moving the generated gemset.nix to some other folder does not work + gemset = "${rootPath}/flake/builders/gemset.nix"; + groups = [ "default" "production" "development" "test" ]; + }; +in +pkgs.mkShell { + buildInputs = [ + gems + ruby + pkgs.bundix + ]; +} diff --git a/flake/builders/mkDevenvRust.nix b/flake/builders/mkDevenvRust.nix new file mode 100644 index 00000000..774ada45 --- /dev/null +++ b/flake/builders/mkDevenvRust.nix @@ -0,0 +1,31 @@ +{ system, pkgsFor, inputs, name, args, ... }: + +let + pkgs = pkgsFor.${system}; + inherit (inputs.devenv.lib) mkShell; + # mkShellClang = mkShell.override { stdenv = pkgs.clangStdenv; }; +in + +# pkgs.mkShell.override { stdenv = pkgs.clangStdenv; } + # env.CC=clang + +mkShell { + inherit inputs pkgs; + modules = [ + ({ pkgs, ... }: + { + languages.rust.enable = true; + env.CC = "clang"; + env.LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath [ pkgs.openssl pkgs.sqlite ]; + packages = [ + pkgs.rustup + pkgs.wasm-bindgen-cli + pkgs.wasm-pack + pkgs.binaryen + pkgs.protobuf + ]; + }) + ]; +} + + diff --git a/flake/builders/mkDevenvRustWasm32.nix b/flake/builders/mkDevenvRustWasm32.nix new file mode 100644 index 00000000..a105b436 --- /dev/null +++ b/flake/builders/mkDevenvRustWasm32.nix @@ -0,0 +1,55 @@ +{ system, pkgsFor, inputs, name, args, ... }: + +let + pkgs = pkgsFor.${system}; + inherit (inputs.devenv.lib) mkShell; + # mkShellClang = mkShell.override { stdenv = pkgs.clangStdenv; }; +in + +# pkgs.mkShell.override { stdenv = pkgs.clangStdenv; } + # env.CC=clang + +mkShell { + inherit inputs pkgs; + modules = [ + # https://matrix.to/#/!plrRoZsBTUYBWzvzIq:matrix.org/$80LefOPCyVvyNl6Hj_VB7cSjonWGaM3TFZhETDTNQTU?via=matrix.org&via=beeper.com&via=lossy.network + ({ pkgs, lib, stdenv, ... }@inputs: + + let + toolchain = (with inputs.fenix.packages.${pkgs.stdenv.system}; + combine [ latest.rustc latest.cargo latest.rust-src latest.clippy latest.rustfmt latest.rust-analyzer targets.wasm32-unknown-unknown.latest.rust-std ] + ); + in + + { + languages.rust = { + enable = true; + # https://devenv.sh/reference/options/#languagesrustchannel + channel = "nightly"; + + components = [ ]; + + toolchain = pkgs.lib.mkForce toolchain; + }; + languages.javascript.enable = true; + + #pre-commit.hooks = { + # rustfmt.enable = true; + # clippy.enable = true; + #}; + + scripts.watch-build.exec = '' + ls -d ./src/* | entr cargo build + ''; + + packages = [ + pkgs.wasm-pack + pkgs.entr + toolchain + ] ++ lib.optionals pkgs.stdenv.isDarwin (with pkgs.darwin.apple_sdk; [ + frameworks.Security + ]); + }) + ]; +} + diff --git a/flake/builders/mkHome.nix b/flake/builders/mkHome.nix index e3e3f10f..fad851dd 100644 --- a/flake/builders/mkHome.nix +++ b/flake/builders/mkHome.nix @@ -12,6 +12,8 @@ inputs.home-manager.lib.homeManagerConfiguration { pkgs = pkgsFor.${system}; extraSpecialArgs = { inherit inputs rootPath; }; - modules = [ "${rootPath}/hosts/${hostname}/home-${username}.nix" ] - ++ homeModulesFor.${system}; + modules = [ + "${rootPath}/hosts/${hostname}/home-${username}.nix" + ] + ++ homeModulesFor.${system}; } diff --git a/flake/builders/util/phpIni.nix b/flake/builders/util/phpIni.nix deleted file mode 100644 index 94fa498e..00000000 --- a/flake/builders/util/phpIni.nix +++ /dev/null @@ -1,34 +0,0 @@ -# originally taken from https://gist.github.com/3noch/79255f8c5ec3c287b91b7484265a89a8 - -{ lib, writeTextDir, phpPackage, phpExtensions, extensions ? [ ], enableXdebug ? false }: - -let - inherit (lib) - concatMapStringsSep - optionalString - ; - - includePackage = directive: extensionName: "${directive} = ${phpExtensions.${extensionName}}/lib/php/extensions/${extensionName}.so"; - - # defaultPhpIni = readFile "${phpPackage}/etc/php.ini"; - - phpIni = '' - # FIXME: add defaultPhpIni here - - ${optionalString enableXdebug '' - zend_extension = "${phpExtensions.xdebug}/lib/php/extensions/xdebug.so" - ''} - - ${concatMapStringsSep "\n" (includePackage "extension") extensions} - - error_reporting = E_ALL - display_errors = On - - memory_limit = 2G - - date.timezone = "Europe/Berlin" - ''; - -in - -writeTextDir "php.ini" phpIni diff --git a/flake/default.nix b/flake/default.nix index 7cef2dc6..40d8d753 100644 --- a/flake/default.nix +++ b/flake/default.nix @@ -1,8 +1,9 @@ { inputs, rootPath, forEachSystem }: let - pkgsFor = forEachSystem (system: import ./nixpkgs.nix { inherit inputs system; }); - pkgsNixOnDroidFor = forEachSystem (system: import ./nixpkgs.nix { inherit inputs system; nixOnDroid = true; }); + pkgsFor = forEachSystem (system: import ./nixpkgs.nix { inherit inputs rootPath system; }); + + pkgsNixOnDroidFor = forEachSystem (system: import ./nixpkgs.nix { inherit inputs rootPath system; nixOnDroid = true; }); customLibFor = forEachSystem (system: import "${rootPath}/lib" { pkgs = pkgsFor.${system}; @@ -34,6 +35,15 @@ in mkNixos = simpleWrapper ./builders/mkNixos.nix; mkApp = wrapper ./builders/mkApp.nix; - mkDevShellJdk = wrapper ./builders/mkDevShellJdk.nix; - mkDevShellPhp = wrapper ./builders/mkDevShellPhp.nix; + mkDevenvJvmLang = wrapper ./builders/mkDevenvJvmLang.nix; + mkDevenvDeno = wrapper ./builders/mkDevenvDeno.nix; + mkDevenvFlutter = wrapper ./builders/mkDevenvFlutter.nix; + mkDevenvRuby = wrapper ./builders/mkDevenvRuby.nix; + mkDevenvHaskell = wrapper ./builders/mkDevenvHaskell.nix; + mkDevenvOcaml = wrapper ./builders/mkDevenvOcaml.nix; + mkDevenvRust = wrapper ./builders/mkDevenvRust.nix; + mkDevenvRustWasm32 = wrapper ./builders/mkDevenvRustWasm32.nix; + mkDevenvMachnix = wrapper ./builders/mkDevenvMachnix.nix; + mkDevenvJulia = wrapper ./builders/mkDevenvJulia.nix; + mkDevenvJupyenv = wrapper ./builders/mkDevenvJupyenv.nix; } diff --git a/flake/nixpkgs.nix b/flake/nixpkgs.nix index 0c6e4cdc..57fe8735 100644 --- a/flake/nixpkgs.nix +++ b/flake/nixpkgs.nix @@ -1,75 +1,627 @@ -{ inputs, system, nixOnDroid ? false }: - +{ inputs +, rootPath +, system +, nixOnDroid ? false +, +}: let config = { + # FIXME https://discourse.nixos.org/t/unexpected-11h-build-after-auto-update/39907/9 allowAliases = false; allowUnfree = true; + cudaSupport = true; + cudnnSupport = true; + cudaVersion = "12"; + # https://discourse.nixos.org/t/laggy-mouse-when-use-nvidia-driver/38410 + nvidia.acceptLicense = true; }; in - import inputs.nixpkgs { - inherit config system; - - overlays = [ - (final: prev: - let - inherit (prev.stdenv.hostPlatform) system; - - unstable = import inputs.unstable { - inherit config system; - }; - - nixpkgs-22-05 = import inputs.nixpkgs-22-05 { - inherit config system; - }; - - gerschtliOverlays = map (x: x.overlays.default) [ - inputs.dmenu - inputs.dwm - inputs.dwm-status - inputs.teamspeak-update-notifier - ]; - in - { - inherit (inputs.agenix-cli.packages.${system}) agenix-cli; - - inherit (unstable) - # need bleeding edge version - jetbrains - minecraft-server - minecraftServers - teamspeak_server - - # need >= 1.3 - cachix - - # need >= 0.1.4 - nix-index - - # fails with version in stable - nixos-shell - ; + inherit config system rootPath; + + overlays = + [ + #inputs.rust-overlay.overlays.default # now commented out due to: error: attribute 'rust-analyzer' missing https://github.com/573/nix-config-1/actions/runs/4923802480/jobs/8796067915#step:6:826 # rustc still 1.64 when building as opposed to nix shell 1.67 + #(import inputs.rust-overlay) + (final: prev: + let + inherit (prev.stdenv.hostPlatform) system; + inherit (prev.lib) remove flatten; + # inherit rootPath; + unstable = inputs.unstable.legacyPackages.${system}; #import inputs.unstable { inherit config system; }; + latest = inputs.latest.legacyPackages.${system}; #import inputs.latest { inherit config system; }; #import inputs.nixos-2305 { inherit config system; }; + nixos-2211 = inputs.nixos-2211.legacyPackages.${system}; #import inputs.nixos-2211 { inherit config system; }; #import inputs.ghc-nixpkgs-unstable { inherit config system; }; - # pin 22.05 release for removed packages - inherit (nixpkgs-22-05) - mysql57 - php74 - php74Extensions - php74Packages + # TODO https://github.com/onekey-sec/unblob/blob/4e900ff/flake.nix#L21 + moreOverlays = + (map (x: x.overlays.default) [ + # NOTE: overlays listed here are meant to use the overlays.${system} syntax (?) (is that so ?) + # dont use see https://github.com/nix-community/neovim-nightly-overlay/issues/153#issuecomment-1264366764 + #inputs.neovim-nightly-overlay.overlay # What I try to achieve here is to have neovim as overridden in the overlay below be the neovim neovim-nightly-overlay provides !?? + #inputs.neovim-flake.overlay + #inputs.rust-overlay # letzer versuch + #inputs.emacs-overlay + #inputs.talon + #inputs.nixpkgs-ruby + inputs.ocaml-overlay # see i. e. https://github.com/nix-ocaml/nix-overlays/blob/51c3d87/README.md#alternative-advanced + #inputs.nixpkgs-wayland + ]) ; - gerschtli = prev.lib.composeManyExtensions gerschtliOverlays final prev; + in + { + /*inherit + (unstable) + #lua-language-server + #texlab + ##deno # long rebuild needed in unstable so taking release-version + + #stylua + ##sqlite # long rebuild needed in unstable so taking release-version + + #nodejs_latest# long rebuild needed in unstable so taking release-version + + #broot + + #chafa + ##w3m # long rebuild needed in unstable so taking release-version, see i. e. nix why-depends --derivation nixos-unstable#w3m nixos-unstable#fontforge + + ##fff # long rebuild needed in unstable so taking release-version, see i. e. nix why-depends --derivation nixos-unstable#w3m nixos-unstable#fontforge + + #epr + #vale + #ltex-ls + # TODO https://github.com/rocktimsaikia/cambd-cli + + #ripgrep-all + #pandoc + #micro + #jdt-language-server + #ranger + #masterpdfeditor + #ouch + + #playwright-test + + # hydra build still in queue for mdbook-0.4.30 my gha fails to build that + # https://discourse.nixos.org/t/hydra-check-does-package-x-still-build-on-channel-y/6126/6 + # https://hydra.nixos.org/job/nixos/trunk-combined/nixpkgs.mdbook.aarch64-linux + # https://hydra.nixos.org/build/223289643 + mdbook + ; */ + + #inherit (latest) photoprism cups-filters abcde git-absorb flutter dart difftastic diffoscope bashdb scrcpy hydra-check hledger hledger-web autorandr mons maim xdotool xclip nil keepassxc signal-desktop julia_19 sd openssh tailscale; + + inherit (latest) tailscale csvlens oxker; + inherit (unstable) cachix/*nixVersions*/ eza mermaid-cli scrcpy yazi powerline-rs pwvucontrol gscan2pdf htmx-lsp/* for nixvim */ gtt; + inherit (unstable.cudaPackages) cudatoolkit; + + # see https://github.com/NixOS/nixpkgs/issues/271989, I think this comes down to not having the correct udev rules in place + # on the host os for the home-manager managed nix, thus on a non-nixos currently (release-23-11) there is no scanner + # detected + # simple-scan (v42.5) from nixos-22.11 seems to work with sane from arch linux + # also simple-scan (v44.0) from nixos-23.11 does NOT seem to work with sane from arch linux + # there is still the problem of crashing (https://github.com/NixOS/nixpkgs/issues/271991), which will not fixed for that v42.5 which would mean being stuck at it with oom bug, so maybe rather use arch linux' simple-scan also until the scanner missing bug (https://github.com/NixOS/nixpkgs/issues/271989) is sorted out as well. + inherit (nixos-2211) simple-scan/*sane-backends*/; # nixos-23.11 Scanner not found + + #inherit (latest.xorg) libxcvt; + + #inherit (latest.python311Packages) bpython; + + nvim-configured = inputs.nixvim-config.packages.${system}.default; + + bundixcli = inputs.bundix.packages.${system}.default; + + feedback = inputs.feedback.packages.${system}.default; + + #yazi = inputs.yazi.packages.${system}.default; + + firefox = inputs.firefox.packages.${system}.firefox-bin; #.unwrapped; + + # rustShell = inputs.rust-dev-template.devShells.${system}.default; + + talon = inputs.talon.packages.${system}.default; + + nixd = inputs.nixd.packages.${system}.default; + + rime = inputs.rime.packages.${system}.default; + + nix-ld-rs = inputs.nix-ld-rs.packages.${system}.default; + + git-issue = inputs.git-issue; + + # FIXME is workaround until upstream has the PR accepted, see https://github.com/nix-community/NixOS-WSL/issues/262#issuecomment-1825648537 + wsl-vpnkit = + let inherit (unstable) + lib + findutils + pstree + resholve + wsl-vpnkit; + in + wsl-vpnkit.override { + resholve = + resholve + // { + mkDerivation = attrs @ { solutions, ... }: + resholve.mkDerivation (lib.recursiveUpdate attrs { + src = inputs.wsl-vpnkit; + #src = fetchFromGitHub { + # owner = "sakai135"; + # repo = "wsl-vpnkit"; + # rev = "28992229fedfa64979faa9ec84b1b4bcf5c8f449"; + # sha256 = "sha256-6VKFUoPAhVOmORTGELZu00SnGmYSbumPOZ64giWq14Q="; + #}; + + solutions.wsl-vpnkit = { + inputs = + solutions.wsl-vpnkit.inputs + ++ [ + findutils + pstree + ]; + + execer = + solutions.wsl-vpnkit.execer + ++ [ "cannot:${pstree}/bin/pstree" ]; + }; + }); + }; + }; + + openai-whisper = + let + inherit (latest) openai-whisper; + in + openai-whisper.override { + torch = prev.python3.pkgs.torch-bin; + }; + + # https://discourse.nixos.org/t/is-it-possible-to-override-cargosha256-in-buildrustpackage/4393/6 + /* + nil = (prev.makeRustPlatform { + cargo = prev.rust-bin.stable.latest.default; + rustc = prev.rust-bin.stable.latest.default; + }).buildRustPackage { + pname = "nil"; + version = "2023.02.23"; + src = inputs.nil; + nativeBuildInputs = [ + prev.rust-bin.stable.latest.default + ]; + cargoSha256 = "sha256-DaUFXksA/GDSjLqoEhK1uNMD7Nh474yZN4uu4YQytvI="; + }; + */ + + /* + nil = prev.callPackage "${inputs.unstable}/pkgs/development/tools/language-servers/nil" { + rustPlatform = prev.rustPlatform // { + buildRustPackage = args: + prev.rustPlatform.buildRustPackage (args // { + nativeBuildInputs = [ + prev.rust-bin.stable.latest.default + ]; + src = inputs.nil; + version = "2023.02.23"; + cargoHash = "sha256-DaUFXksA/GDSjLqoEhK1uNMD7Nh474yZN4uu4YQytvI="; + }); + }; + }; + */ + + # fix pam-service in xsecurelock, see https://git.rauhala.info/MasseR/temp-fix-xsecurelock/commit/129fcc5eb285ece0f7c414b42bef6281fc4edc42 + # https://github.com/google/xsecurelock/issues/102#issuecomment-621432204 + xsecurelock = + prev.xsecurelock.overrideAttrs + # simply replacing the configureFlags rn + (oldAttrs: { configureFlags = (remove "--with-pam-service-name=login" (flatten oldAttrs.configureFlags)) ++ [ "--with-pam-service-name=system_auth" ]; }); # if doesn't work, try --with-pam-service-name=authproto_pam here or ...=common_auth or ...system-local-login, https://github.com/google/xsecurelock/blob/8a448bd/README.md#installation and https://sourcegraph.com/search?q=context%3Aglobal+content%3A--with-pam-service-name&patternType=standard&sm=1&groupBy=repo + + # FIXME Remove when fixed in upstream nixvim + #elixir_ls = let + # inherit (unstable) elixir-ls; + #in elixir-ls; + + yt-dlp = + prev.yt-dlp.overrideAttrs + (_: { src = inputs.yt-dlp; }); + + #python3Packages = + # prev.python311Packages + # // { + # inherit + # (nixos-2305.python311Packages) + # ruff-lsp + # ; + # }; + pup = + let + inherit (unstable) pup; + in + pup.overrideAttrs + (_: { src = inputs.pup; }); + + emacsPackages = + prev.emacsPackages + // { + inherit + (unstable.emacsPackages) + mistty + ; + }; + cudaPackages = + prev.cudaPackages + // { + inherit + (unstable.cudaPackages) + cudatoolkit + ; + }; + nixVersions = + prev.nixVersions + // { + inherit + (unstable.nixVersions) + nix_2_19; + }; + nodePackages = + prev.nodePackages + // { + inherit + (latest.nodePackages) + bash-language-server + vim-language-server + vscode-json-languageserver-bin + # mermaid-cli # at latest in top-level now + ; + #inherit + # (nixos-2305.nodePackages) + # prettier_d_slim + # markdownlint-cli + # eslint_d + # ; + }; + + gradle-vscode-extension = + prev.vscode-extensions.vscjava + // { + inherit + (latest.vscode-extensions.vscjava) + vscode-gradle + ; + }; + + vimUtils = + prev.vimUtils + // { + inherit + (unstable.vimUtils) + buildVimPlugin + ; + }; + + /*vimPlugins = let + inherit (prev.vimPlugins) surround-nvim; + in + prev.vimPlugins + // { + surround = surround-nvim; + };*/ + + vimPlugins = + prev.vimPlugins + // rec { + inherit + (unstable.vimPlugins) + nvim-lspconfig + nix-develop-nvim + cmp-cmdline + plenary-nvim + #nvim-lspconfig + trouble-nvim + nvim-cmp + cmp-buffer + cmp-path + cmp_luasnip + cmp-nvim-lsp + cmp-omni + cmp-emoji + cmp-nvim-lua + luasnip + friendly-snippets + lspkind-nvim + # LanguageTool-nvim + + #vim-grammarous + comment-nvim + nvim-treesitter + nvim-treesitter-context + indent-blankline-nvim + wildfire-vim + nvim-tree-lua + nnn-vim + asyncrun-vim + vim-table-mode + telescope-nvim + zen-mode-nvim + which-key-nvim + vimtex + haskell-tools-nvim + lualine-nvim + nvim-osc52 + nvim-dap-python + nvim-dap + nvim-gdb + neoterm + nvim-dap-ui + nvim-treesitter-endwise + orgmode + neorg + markid + virtual-types-nvim + gitsigns-nvim + # FIXME remove when fixed in nixvim upstream + #surround-nvim + ; + + #surround = surround-nvim; + }; + + builtGrammars = + prev.tree-sitter.builtGrammars + // { + inherit + (unstable.tree-sitter.builtGrammars) + tree-sitter-lua + #tree-sitter-python + tree-sitter-nix + #tree-sitter-ruby + #tree-sitter-vim + #tree-sitter-json + #tree-sitter-bash + tree-sitter-comment + tree-sitter-latex + ; + }; + + vscode-extensions-new = + (final.vscode-extensions.vscjava).overrideAttrs + (_: { vscode-gradle = latest.vscode-extensions.vscjava.vscode-gradle; }); + + # FIXME 2.2.2024, take this again if things went awe + nvim-treesitter-full-latest = + unstable.vimPlugins.nvim-treesitter.withAllGrammars; + + nvim-treesitter-full = + (final.vimPlugins.nvim-treesitter.withAllGrammars).overrideAttrs + (_: { src = inputs.nvim-treesitter; }); + + nvim-treesitter-as-in-manual = + unstable.vimPlugins.nvim-treesitter.withPlugins ( + plugins: + with plugins; [ + nix + latex + nix + comment + lua + json + bash + vim + ] + ); + + nvim-treesitter-selection = (final.vimPlugins.nvim-treesitter.withPlugins (_: + with final.tree-sitter.builtGrammars; [ + tree-sitter-lua + tree-sitter-python + tree-sitter-nix + tree-sitter-ruby + tree-sitter-vim + tree-sitter-json + tree-sitter-bash + tree-sitter-comment + tree-sitter-latex + ])).overrideAttrs (_: { src = inputs.nvim-treesitter; }); + + + desed = final.callPackage "${rootPath}/drvs/desed" { }; + + /* + As in: + nix-repl> nixosConfigurations.DANIELKNB1.pkgs.neovim.unwrapped.version + "84378c4" + nix-repl> nixosConfigurations.DANIELKNB1.pkgs.neovim-nightly.version + "84378c4" + */ + /* TODO This is home/programs/neovim.nix now + my-neovim = + let + inherit (final) neovim; + in + neovim.override { + # in unstable.neovim.override { + # final.neovim-nightly.override { # error: attribute 'neovim-nightly' missing # final, weil das overlay bereits applied wurde # inputs.neovim-nightly-overlay.packages.${prev.stdenv.hostPlatform.system}.neovim.override { # error: anonymous function at /nix/store/yz0w1s863vqsas7jpzg5rpc29ig17566-source/pkgs/applications/editors/neovim/default.nix:1:1 called with unexpected argument 'viAlias' # inputs.neovim-flake.packages.${prev.stdenv.hostPlatform.system}.neovim.override { # I wonder why final.neovim-nightly doesn't work here or eveb final.neovim when the overlay is applied already above + viAlias = true; + vimAlias = true; + # vimdiffAlias = true; # for this needs to override wrapNeovimUnstable in overlay (https://github.com/NixOS/nixpkgs/pull/121339#issuecomment-830868690) + configure = { + packages.plugins = { + start = + (with final.vimPlugins; [ + # https://gitlab.com/rycee/home-manager/blob/de3758e3/modules/programs/neovim.nix#L113 + # null-ls-nvim + plenary-nvim + nvim-lspconfig + trouble-nvim + nvim-cmp + cmp-cmdline + cmp-buffer + cmp-path + cmp_luasnip + cmp-nvim-lsp + cmp-omni + cmp-emoji + cmp-nvim-lua + luasnip + friendly-snippets + lspkind-nvim + # LanguageTool-nvim + #vim-grammarous + comment-nvim + nvim-treesitter-context + indent-blankline-nvim + wildfire-vim + nvim-tree-lua + nnn-vim + asyncrun-vim + vim-table-mode + telescope-nvim + zen-mode-nvim + which-key-nvim + vimtex + haskell-tools-nvim + nvim-osc52 + lualine-nvim + nix-develop-nvim + nvim-dap + nvim-dap-python + neoterm + nvim-gdb + nvim-dap-ui + nvim-treesitter-endwise + orgmode + neorg + final.nvim-treesitter-full-latest + #pkgs.nvim-treesitter-selection + ]) + ++ (with final; [ + markid + telescope-makefile + code-runner-nvim + virtual-types-nvim + #fsread-nvim + deferred-clipboard-nvim + statusline-action-hints-nvim + #murmur-lua-nvim + filetype-nvim + duck-nvim + #nvim-lspconfig + ]); + }; + + customRC = '' + if filereadable($HOME . "/.vimrc") + source ~/.vimrc + endif + colorscheme lunaperche + luafile ${rootPath}/home/misc/nvim-treesitter.lua + luafile ${rootPath}/home/misc/trouble-nvim.lua + " luafile ${rootPath}/home/misc/null-ls-nvim.lua + luafile ${rootPath}/home/misc/nvim-lspconfig.lua + luafile ${rootPath}/home/misc/nvim-cmp.lua + luafile ${rootPath}/home/misc/luasnip-snippets.lua + luafile ${rootPath}/home/misc/comment-nvim.lua + luafile ${rootPath}/home/misc/indent-blankline.lua + luafile ${rootPath}/home/misc/markid.lua + luafile ${rootPath}/home/misc/nvim-treesitter-context.lua + luafile ${rootPath}/home/misc/nvim-osc52.lua + luafile ${rootPath}/home/misc/telescope-nvim.lua + luafile ${rootPath}/home/misc/duck-nvim.lua + luafile ${rootPath}/home/misc/nvim-dap.lua + luafile ${rootPath}/home/misc/nvim-dap-ui.lua + lua require("nvim-tree").setup() + lua require("which-key").setup() + lua require("lualine").setup() + luafile ${rootPath}/home/misc/nvim-wsl-clipboard.lua + + " let g:languagetool_server_command='$ { pkgs.languagetool }/bin/languagetool-http-server' + ''; + }; + }; + */ + + #inherit (inputs) sanemacs; + + # see https://sourcegraph.com/github.com/johnae/world@016fbbb0d64af7fc3963e2253e6dffada8d26cb5/-/blob/packages/overlays.nix?L78 + # better: https://sourcegraph.com/search?q=context:global+content:%22emacsWithPackagesFromUsePackage%22+file:%5E.*%5C.nix%24&patternType=standard&sm=1 + # TODO https://github.com/nix-community/emacs-overlay/issues/341#issuecomment-1605290875 + # TODO init.el ? + # https://matrix.:to/#/!ZmUSesoOjmVsKbzFbp:nixos.org/$IvE50XOAU4T4eBJZfZtHoY7QaXfsDuEMGiuPcF-gKXA?via=nixos.org&via=matrix.org&via=tchncs.de + # https://www.gnu.org/software/emacs/manual/html_node/emacs/Init-File.html + # https://www.reddit.com/r/emacs/comments/phb5sw/should_i_use_emacs_or_initel_file_if_i_want_to/ + # https://emacs.stackexchange.com/questions/51559/difference-between-emacs-and-init-el-and-the-point-of-not-keeping-multiple-in + my-emacs = + let + # see https://github.com/nix-community/emacs-overlay/blob/eb1d1ce/overlays/package.nix and https://github.com/nix-community/emacs-overlay/blob/842fdae/overlays/emacs.nix + inherit (inputs.emacs-overlay.lib.${system}) emacsWithPackagesFromUsePackage; + inherit (inputs.emacs-overlay.packages.${system}) emacs-git-nox; + inherit rootPath; + my-default-el = final.runCommand "default.el" { text = builtins.readFile "${rootPath}/home/misc/emacs.el"; } '' + target=$out/share/emacs/site-lisp/default.el + mkdir -p "$(dirname "$target")" + echo -n "$text" > "$target" + ''; + in + emacsWithPackagesFromUsePackage { + package = emacs-git-nox; + config = ""; # just an empty string as defaultInitFile is false anyway and default.el as an emacs package is used (my-default-el), see https://github.com/nix-community/emacs-overlay/commit/94c7550ae2155ebd04a7527b3a200deafece86dc#diff-576b45d3b2393944d2637eab91a52fa6522a49148ec3424a0bb1345c4a38b14dR48 + #defaultInitFile = false; # false by default anyway, meaning not using value of config, see https://github.com/nix-community/emacs-overlay/blob/94c7550ae2155ebd04a7527b3a200deafece86dc/elisp.nix#L15C1-L15C1 + alwaysEnsure = true; + #override = epkgs: epkgs // { inherit my-default-el; }; + extraEmacsPackages = epkgs: + with epkgs; [ + my-default-el # including this here seems essential while override = epkgs: epkgs // { inherit my-default-el; }; seems not and is also not sufficient itself + vterm + #treesit-grammars.with-all-grammars + use-package + moe-theme + deft + zetteldeft + company-emoji + org + org-contrib + visual-fill-column + org-bullets + writeroom-mode + ]; + }; + + devenv = inputs.devenv.packages.${system}.devenv; + + + # works only when rust-overlay not nested in moreOverlays + rustenv = let inherit (final.rust-bin.stable.latest) default; in default.override { + extensions = [ "rust-src" "rust-analyzer" ]; + targets = [ "aarch64-unknown-linux-gnu" "wasm32-unknown-unknown" ]; + }; + + somemore = prev.lib.composeManyExtensions moreOverlays final prev; - nixVersions = prev.nixVersions // { - inherit (unstable.nixVersions) nix_2_13; - }; + # TODO [gist] For later ref - override to i. e. nix_2_13 - see https://github.com/Gerschtli/nix-config/commit/da486994d122eb4e64a8b7940e9ef3469b44e06c#diff-3bcbef26c40d018f46094799af27a3698c921aa094bb2bffdaac77266c90ec21L64 - # the only alias that I need, this allows me to set allowAliases=false - inherit system; - } - ) + # the only alias that I need, this allows me to set allowAliases=false + inherit + system + # rootPath - inputs.nixGL.overlays.default - ] - ++ inputs.nixpkgs.lib.optional nixOnDroid inputs.nix-on-droid.overlays.default; + ; + }) + ] ++ (map (x: x.overlays.default) [ + # FIXME when to do this: https://github.com/jtojnar/nixfiles/blob/522466da4dd5206c7b444ba92c8d387eedf32a22/hosts/brian/profile.nix#L10-L12 + inputs.nixGL + inputs.rust-overlay + ###########inputs.emacs-overlay + inputs.nixpkgs-ruby + # inputs.talon + # inputs.ocaml-overlay + #inputs.nixpkgs-wayland + inputs.neovim-nightly-overlay + ]) + /*++ [ + # inputs.tree-grepper.overlay."${system}" + # DONT when enabling this overlay as in my setup it will start i. e. to build chromium-unwrapped for whatever reason for my nix-on-droid machine: inputs.ruby-nix.overlays.ruby # DONT do not enable TODO review my setup + #inputs.ocaml-overlay.overlays."${system}" + ]*/ + ++ inputs.nixpkgs.lib.optional nixOnDroid + inputs.nix-on-droid.overlays.default; } diff --git a/home/README.md b/home/README.md new file mode 100644 index 00000000..72f0a46a --- /dev/null +++ b/home/README.md @@ -0,0 +1,4 @@ +See https://matrix.to/#/!KqkRjyTEzAGRiZFBYT:nixos.org/$epsxI9hjLXiMMHcE5L6ZBBENUyR-RjmC-O_uTfy9TVU?via=matrix.org&via=tchncs.de&via=envs.net + +https://github.com/573/nix-config-1/blob/a508b133e1b6699c2e931addcfa340c15e5406ce/flake/default.nix#L19 days that everything in this (home) folder is included as home-manager modules, thus has to be according the module structure. +For "simpler" derivations use another folder. diff --git a/home/base/desktop.nix b/home/base/desktop.nix index 8f86d30c..42d10822 100644 --- a/home/base/desktop.nix +++ b/home/base/desktop.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: +{ config, lib, pkgs, inputs, ... }: let inherit (lib) @@ -6,14 +6,22 @@ let mkIf optionals ; - + inherit (pkgs.stdenv.hostPlatform) system; cfg = config.custom.base.desktop; + # missing-gsettings-schemas-fix = builtins.readFile "${pkgs.stdenv.mkDerivation { + # name = "missing-gsettings-schemas-fix"; + # dontUnpack = true; # Make it buildable without “src” attribute + # buildInputs = [ pkgs.gtk3 ]; + # installPhase = '' printf %s "$GSETTINGS_SCHEMAS_PATH" > "$out" ''; + # }}"; + + # https://github.com/search?q=language%3Anix+nixgl.nixGLIntel+alacritty&type=code&ref=advsearch # to fix scaling issues on 1440p monitors chrome = config.lib.custom.wrapProgram { name = "google-chrome-stable"; desktopFileName = "google-chrome"; - source = pkgs.google-chrome; + source = pkgs.google-chrome; # needs unfree: inputs.google-chrome.packages.${system}.google-chrome-dev; # pkgs.google-chrome; path = "/bin/google-chrome-stable"; flags = [ "--force-device-scale-factor=1" @@ -21,6 +29,46 @@ let ]; fixGL = true; }; + + # different approach here: https://pmiddend.github.io/posts/nixgl-on-ubuntu + qutebrowser = config.lib.custom.wrapProgram { + name = "qutebrowser"; + source = pkgs.qutebrowser; + path = "/bin/qutebrowser"; + fixGL = true; + }; + + ausweisapp = config.lib.custom.wrapProgram { + name = "ausweisapp"; + source = pkgs.ausweisapp; + path = "/bin/AusweisApp"; + fixGL = true; + }; + + /* + mpv = config.lib.custom.wrapProgram { + name = "mpv"; + desktopFileName = "mpv"; + source = pkgs.mpv; + path = "/bin/mpv"; + fixGL = false; + };*/ + + # simple-scan = pkgs.symlinkJoin { + # name = "${pkgs.lib.getName pkgs.simple-scan}-wrapper"; + # nativeBuildInputs = [ pkgs.makeWrapper ]; + # buildInputs = [ pkgs.gtk3 ]; + # paths = [ pkgs.simple-scan ]; + # postBuild = '' + # wrapProgram "$out"/bin/simple-scan \ + # --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + # ''; + # }; + + #xsecurelock = pkgs.xsecurelock.overrideAttrs (oldAttrs: rec { + # # FIXME --with-pam-service-name=authproto_pam belongs added after removing --with-pam-service-name=?? + # configureFlags = (remove "--with-pam-service-name=login" (flatten oldAttrs.configureFlags ++ [ "--with-pam-service-name=lxdm" "--with-xscreensaver=${pkgs.xscreensaver}/libexec/xscreensaver" ])); # ++ [ "--with-pam-service-name=lxdm" "--with-xscreensaver=${pkgs.xscreensaver}/libexec/xscreensaver" ]; + # }); in { @@ -47,37 +95,98 @@ in custom = { development.direnv.enable = true; - programs = { - atom.enable = true; - idea-ultimate.enable = true; - - pass = mkIf cfg.private { - enable = true; - browserpass = true; - }; + programs = { }; + }; - ssh.modules = [ "private" ]; - tmux.urlview = true; + # https://www.codingblatt.de/arch-linux-xsecurelock-screenlocker-einrichten/ + /* + services.screen-locker = { + enable = true; + lockCmd = "${pkgs.xsecurelock}/bin/xsecurelock"; + inactiveInterval = 4; + xautolock.enable = false; + xss-lock = { + extraOptions = [ "-n ${pkgs.xsecurelock}/libexec/xsecurelock/dimmer" "-l" ]; + screensaverCycle = 5; + }; }; + */ + # above not working, FIXME override differently see https://bnikolic.co.uk/nix-cheatsheet.html#orgb5bd923 + # creates the .config/systemd/user/xss-lock.service file and + # running just systemctl status --user xss-lock.service succeeds + /*services.screen-locker = { + enable = true; + lockCmd = "${pkgs.i3lock}/bin/i3lock -n -c 000000"; + inactiveInterval = 1; + };*/ + + programs.firefox = { + enable = true; + profiles.dani = { + bookmarks = { }; + extensions = with inputs.firefox-addons.packages.${system}; [ + privacy-possum + # sourcegraph # > error: cannot download sourcegraph_for_firefox-23.10.9.2250.xpi from any mirror + facebook-container + private-relay + browserpass + ]; + }; + package = pkgs.firefox; }; + # https://github.com/google/xsecurelock/issues/102#issuecomment-621432204 + home.sessionVariables.XSECURELOCK_PAM_SERVICE = "lxdm"; + + # home.sessionVariables.XDG_DATA_DIRS = mkAfter [ "${missing-gsettings-schemas-fix}" ]; + home.packages = with pkgs; [ + #pw-viz + pavucontrol + #pwvucontrol + qutebrowser chrome - gh + ausweisapp gimp - libreoffice - nomacs + #skanpage + #simple-scan # for now use print instead of save as long as file picker not fixed, also: scanner not detected, was in 22.11 though, also file picker crash when saving file + ##gscan2pdf + #swingsane # crashes with perms denied + #libreoffice pdftk - postman qpdfview spotify - sshfs + #sshfs + # https://wiki.archlinux.de/title/Openbox, https://unix.stackexchange.com/a/32217/102072 + obconf + # https://gist.github.com/573/aa12e8fa8c98aeaf788c3687c3b658dc + #xorg.xset + xorg.xev + lxde.lxsession + # DONT home-manager on non-nixos can't manage system files i. e. /etc/pam.d/* see https://github.com/NixOS/nixpkgs/issues/157112 + #xss-lock # reason for slock not being on this list: https://gist.github.com/573/5ce58db3b72913648968968dbfa59d86 + # FIXME do https://github.com/google/xsecurelock/issues/102#issuecomment-621432204 see https://bnikolic.co.uk/nix-cheatsheet.html#orgb5bd923 + #xsecurelock # lxdm not shown + xscreensaver + droidcam # host-install v4l2loopback + #mpv + #libdvdread + #libdvdcss + #libdvdnav + #mplayer + vlc + #xorg.libXpresent + #xine-ui + #xine-lib + mediathekview + xclip ] ++ (optionals cfg.private [ - audacity - musescore - thunderbird ]); + home.file.".Xkbmap".text = '' + -model pc104 -layout us -variant altgr-intl + ''; + }; } diff --git a/home/base/general.nix b/home/base/general.nix index 4afdb65b..2080f057 100644 --- a/home/base/general.nix +++ b/home/base/general.nix @@ -1,74 +1,70 @@ -{ config, lib, pkgs, ... }: - +{ config, lib, pkgs, inputs, ... }: +with lib; let - inherit (lib) - concatStringsSep - mkEnableOption - mkIf - mkMerge - ; - cfg = config.custom.base.general; - localeGerman = "de_DE.UTF-8"; localeEnglish = "en_US.UTF-8"; in - { - ###### interface options = { - custom.base.general = { enable = mkEnableOption "basic config" // { default = true; }; - lightWeight = mkEnableOption "light weight config for low performance hosts"; + lightWeight = + mkEnableOption "light weight config for low performance hosts"; + + wsl = mkEnableOption "config for NixOS-WSL instances"; minimal = mkEnableOption "minimal config"; }; - }; + ###### implementation config = mkIf cfg.enable (mkMerge [ - { custom.programs = { bash.enable = true; htop.enable = true; - neovim.enable = true; nix-index.enable = true; - prompts = { - liquidprompt.enable = mkIf (!cfg.lightWeight) true; - pure.enable = mkIf cfg.lightWeight true; - }; - tmux.enable = true; - zsh.enable = true; }; home = { language = { base = localeEnglish; address = localeEnglish; - collate = localeEnglish; - ctype = localeEnglish; + #collate = localeEnglish; + #ctype = localeEnglish; measurement = localeGerman; - messages = localeEnglish; + #messages = localeEnglish; monetary = localeEnglish; name = localeEnglish; - numeric = localeEnglish; + #numeric = localeEnglish; paper = localeGerman; telephone = localeEnglish; - time = localeGerman; + #time = localeGerman; }; packages = with pkgs; [ + # TODO Put into home/programs/neovim ASAP + # https://discourse.nixos.org/t/how-can-i-distinguish-between-two-packages-who-has-the-same-name-for-the-binary/39770/2 + #(inputs.nixvim.packages."${system}".default) + # this way can have nvim-mini in parallel + # https://discourse.nixos.org/t/how-can-i-distinguish-between-two-packages-who-has-the-same-name-for-the-executable/39770/4 + # FIXME assumes now broken https://github.com/nix-community/nixvim/commit/d53afe0d7348b6c41a9127db4217adeaf1e9d69b + # https://github.com/nix-community/nixvim/compare/main...573:nixvim:fit-23.11 + #(pkgs.runCommand "nix-nvim" { nativeBuildInputs = [ pkgs.makeWrapper ]; } '' + # mkdir -p $out/bin + # makeWrapper ${inputs.nixvim.packages."${system}".default}/bin/nvim $out/bin/nix-nvim + # '') + #nixvim-configured bc file - httpie + # httpie # build for aarch64-linux times out, https://github.com/573/nix-config-1/actions/runs/3744580521/jobs/6358117765#step:5:7429 iotop jq mmv-go @@ -76,7 +72,8 @@ in ncdu nload # network traffic monitor pwgen - ripgrep + #ripgrep # build broken on aarch64-linux, https://github.com/573/nix-config-1/actions/runs/6309380420/job/17129186691, also build unmaintained currently + silver-searcher tree wget yq-go @@ -88,8 +85,25 @@ in bind # dig netcat + + iotop + ncdu + nload psmisc # killall whois + + sqlite + + eza + #cachix + #yazi + #actionlint + #powerline-rs + + gist + fd + sd + pv ]; sessionVariables = { @@ -100,9 +114,17 @@ in "--tabs=4" ]; PAGER = "${pkgs.less}/bin/less"; + SHELL = "bash"; + # (ft-man-plugin), + # https://neovim.io/doc/user/starting.html#starting, + # https://www.chrisdeluca.me/2022/03/07/use-neovim-as.html + # nix-repl> nixOnDroidConfigurations.sams9.config.home-manager.config.home.sessionVariables.MANPAGER + # MANPAGER="nvim -u NONE -i NONE \"+runtime plugin/man.lua\" -c \"Man"'!'"\" -o -" + # export MANPAGER='nvim -u NONE -i NONE "+runtime plugin/man.lua" -c "Man"''!'' -o -' + #working#MANPAGER = "${config.custom.programs.neovim.finalPackage}/bin/nvim -u NONE -i NONE '+runtime plugin/man.lua' -c Man! -o -"; }; - stateVersion = "22.11"; + stateVersion = "23.11"; }; programs.fzf.enable = true; @@ -111,24 +133,53 @@ in systemd.user.startServices = "legacy"; } + (mkIf cfg.wsl { + custom.programs.shell.shellAliases = { + pbcopy = "powershell.exe -NoProfile -Command \"Set-Clipboard -Value \\\$input\""; + pbpaste = "powershell.exe -NoProfile -Command 'Get-Clipboard'"; + }; + + # programs.starship.enable = true; # long lines are distorted + }) + + (mkIf (!cfg.lightWeight) { + custom.programs = { + tmux.enable = true; + emacs.enable = true; + emacs-novelist.enable = true; + emacs-nano.enable = true; + neovim.enable = true; + }; + + home.packages = with pkgs; [ + lshw + ouch + strace + lineselect + git-annex + #git-annex-remote-googledrive + #haskellPackages.feedback + #haskellPackages.pushme # broken + #datalad + #git-annex-utils + ]; + }) + (mkIf (!cfg.minimal) { custom = { misc.util-bins.enable = true; + # see ./home/programs programs = { git.enable = true; nnn.enable = true; rsync.enable = true; - ssh = { - enable = true; - modules = [ "vcs" ]; - }; }; }; - programs.home-manager.enable = true; + programs = { + home-manager.enable = true; + }; }) - ]); - } diff --git a/home/base/non-nixos.nix b/home/base/non-nixos.nix index 106dfbf0..4a71c477 100644 --- a/home/base/non-nixos.nix +++ b/home/base/non-nixos.nix @@ -3,7 +3,6 @@ let inherit (lib) concatStringsSep - mkAfter mkEnableOption mkIf mkOption @@ -27,12 +26,13 @@ in installNix = mkEnableOption "nix installation" // { default = true; }; builders = mkOption { - type = types.listOf types.string; + type = types.listOf types.str; default = [ ]; description = "Nix remote builders."; }; }; + }; @@ -66,12 +66,7 @@ in ; }; - programs.zsh.envExtra = mkAfter '' - hash -f - ''; targets.genericLinux.enable = true; - }; - } diff --git a/home/development/direnv/default.nix b/home/development/direnv/default.nix index 9c2174ef..2688b314 100644 --- a/home/development/direnv/default.nix +++ b/home/development/direnv/default.nix @@ -52,32 +52,13 @@ in declare -A direnv_layout_dirs direnv_layout_dir() { echo "''${direnv_layout_dirs[$PWD]:=$( - local hash="$(sha1sum - <<<"$PWD" | cut -c-7)" + local hash="$(${pkgs.coreutils}/bin/sha1sum - <<<"$PWD" | cut -c-7)" local path="''${PWD//[^a-zA-Z0-9]/-}" echo "''${XDG_CACHE_HOME:-"$HOME/.cache"}/direnv/layouts/''${hash}''${path}" )}" } ''; }; - - zsh.initExtraBeforeCompInit = '' - # is set in nix-shell - if [[ ! -z "$buildInputs" ]]; then - for buildInput in "''${(ps: :)buildInputs}"; do - directories=( - $buildInput/share/zsh/site-functions - $buildInput/share/zsh/$ZSH_VERSION/functions - $buildInput/share/zsh/vendor-completions - ) - - for directory in $directories; do - if [[ -d "$directory" ]]; then - fpath+=("$directory") - fi - done - done - fi - ''; }; services.lorri.enable = true; diff --git a/home/development/helm/default.nix b/home/development/helm/default.nix deleted file mode 100644 index 8f8e0eca..00000000 --- a/home/development/helm/default.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - ; - - cfg = config.custom.development.helm; -in - -{ - - ###### interface - - options = { - - custom.development.helm.enable = mkEnableOption "helm aliases"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom.programs.shell.shellAliases = { - helm-int = "helm --kube-context integration --namespace integration"; - }; - - home.packages = [ - pkgs.kubernetes-helm - - (config.lib.custom.mkScript - "helm-upgrade" - ./helm-upgrade.sh - (with pkgs; [ kubernetes-helm ]) - { } - ) - - (config.lib.custom.mkZshCompletion - "helm-upgrade" - ./helm-upgrade-completion.zsh - { } - ) - ]; - - }; - -} diff --git a/home/development/helm/helm-upgrade-completion.zsh b/home/development/helm/helm-upgrade-completion.zsh deleted file mode 100644 index 88de65bd..00000000 --- a/home/development/helm/helm-upgrade-completion.zsh +++ /dev/null @@ -1,4 +0,0 @@ -_arguments \ - "1:release name:()" \ - "2:app version:()" \ - "3:options:(--atomic --wait)" diff --git a/home/development/helm/helm-upgrade.sh b/home/development/helm/helm-upgrade.sh deleted file mode 100644 index 4eafbd62..00000000 --- a/home/development/helm/helm-upgrade.sh +++ /dev/null @@ -1,60 +0,0 @@ -if [[ $# -lt 2 ]]; then - >&2 echo "USAGE: $0 [--atomic|--wait]" - exit 2 -fi - -release_name="${1}" -app_version="${2}" - -atomic= -wait_= -if [[ "${3:-}" == "--atomic" ]]; then - atomic=1 -elif [[ "${3:-}" == "--wait" ]]; then - wait_=1 -fi - -separate_namespace= -env=integration - -if [[ "${release_name}" =~ ^stage- ]]; then - echo "deploy to stage environment" - env=stage -elif [[ "${release_name}" =~ ^integration- ]]; then - echo "deploy to integration environment" -elif [[ "${release_name}" =~ ^tobhap- ]]; then - separate_namespace=1 -else - >&2 echo "invalid release name: ${release_name}" - exit 2 -fi - -chart_directory="container/$(basename "$(pwd)")" -if [[ ! -d "$(pwd)/${chart_directory}" || ! -r "$(pwd)/${chart_directory}/Chart.yaml" ]]; then - >&2 echo "no valid chart directory found: ${chart_directory}" - exit 2 -fi - -helm_extra_options=() -if [[ -n ${separate_namespace} ]]; then - helm_extra_options+=(--values "${chart_directory}/values.env.autotest.yaml") -fi - -if [[ -n ${atomic} ]]; then - helm_extra_options+=(--atomic --timeout 600s) -fi - -if [[ -n ${wait_} ]]; then - helm_extra_options+=(--wait --timeout 600s) -fi - -set -x - -helm upgrade --install \ - --reset-values \ - --values "${chart_directory}/values.${env}.yaml" \ - "${helm_extra_options[@]}" \ - --set "appVersion=${app_version}" \ - --kube-context "${env}" --namespace "${env}" \ - "${release_name}" \ - "${chart_directory}" diff --git a/home/development/jbang.nix b/home/development/jbang.nix new file mode 100644 index 00000000..eac651e2 --- /dev/null +++ b/home/development/jbang.nix @@ -0,0 +1,49 @@ +{ config, lib, pkgs, ... }: + +let + inherit (lib) + mkEnableOption + mkIf + mkOption + types + ; + + cfg = config.custom.development.jbang; +in + +{ + + ###### interface + + options = { + + custom.development.jbang = { + enable = mkEnableOption "jbang config"; + + trustedSources = mkOption { + type = types.listOf types.str; + default = [ ]; + description = "URL's matching one or more entries in the list below will be trusted to be runnable by jbang."; + }; + }; + + }; + + + ###### implementation + + config = mkIf cfg.enable { + + custom.programs.shell.initExtra = '' + source <(jbang completion) + ''; + + home = { + file.".jbang/trusted-sources.json".text = builtins.toJSON cfg.trustedSources; + packages = [ pkgs.jbang ]; + sessionPath = [ "${config.home.homeDirectory}/.jbang/bin" ]; + }; + + }; + +} diff --git a/home/development/nix/default.nix b/home/development/nix/default.nix index 935a0ad0..0ab68823 100644 --- a/home/development/nix/default.nix +++ b/home/development/nix/default.nix @@ -64,20 +64,20 @@ in (buildWithDiff "hm-build" "home-manager build --flake '${nixConfigDir}'" - "/nix/var/nix/profiles/per-user/${config.home.username}/home-manager" + "/home/${config.home.username}/.local/state/nix/profiles/home-manager" ) ]; }) (mkIf cfg.nix-on-droid.enable { custom.programs.shell.shellAliases = { - nod-switch = "nix-on-droid switch --flake '${nixConfigDir}#oneplus5'"; + nod-switch = "nix-on-droid switch --flake '${nixConfigDir}#sams9'"; }; home.packages = [ (buildWithDiff "nod-build" - "nix-on-droid build --flake '${nixConfigDir}#oneplus5'" + "nix-on-droid build --flake '${nixConfigDir}#sams9'" "/nix/var/nix/profiles/nix-on-droid" ) ]; @@ -88,7 +88,7 @@ in (config.lib.custom.mkScript "n-rebuild" ./n-rebuild.sh - [ pkgs.ccze ] + [ /*pkgs.ccze*/ ] # FIXME madhouse/ccze repo now private on github, remove dep ? { inherit nixConfigDir; buildCmd = "${buildWithDiff @@ -99,12 +99,6 @@ in _doNotClearPath = true; } ) - - (config.lib.custom.mkZshCompletion - "n-rebuild" - ./n-rebuild-completion.zsh - { } - ) ]; }) diff --git a/home/development/nodejs.nix b/home/development/nodejs.nix deleted file mode 100644 index e2434905..00000000 --- a/home/development/nodejs.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - ; - - cfg = config.custom.development.nodejs; -in - -{ - - ###### interface - - options = { - - custom.development.nodejs.enable = mkEnableOption "nodejs config"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom.programs.shell.dynamicShellInit = [ - { - condition = "available npm && is_bash"; - - initExtra = '' - eval "$(npm completion)" - ''; - } - ]; - - home.file.".npmrc".text = '' - engine-strict=true - ''; - - programs.zsh.plugins = [ - { - name = "zsh-better-npm-completion"; - src = "${pkgs.zsh-better-npm-completion}/share/zsh-better-npm-completion"; - } - ]; - - }; - -} diff --git a/home/misc/.ruby-version b/home/misc/.ruby-version new file mode 100644 index 00000000..197c4d5c --- /dev/null +++ b/home/misc/.ruby-version @@ -0,0 +1 @@ +2.4.0 diff --git a/home/misc/Gemfile b/home/misc/Gemfile new file mode 100644 index 00000000..b92a39ac --- /dev/null +++ b/home/misc/Gemfile @@ -0,0 +1,3 @@ +source 'https://rubygems.org' + +gem "gmail-britta", "~> 0.1.7" diff --git a/home/misc/Gemfile.lock b/home/misc/Gemfile.lock new file mode 100644 index 00000000..6c0008ba --- /dev/null +++ b/home/misc/Gemfile.lock @@ -0,0 +1,15 @@ +GEM + remote: https://rubygems.org/ + specs: + gmail-britta (0.1.7) + haml (~> 3.1.6) + haml (3.1.8) + +PLATFORMS + x86_64-linux + +DEPENDENCIES + gmail-britta (~> 0.1.7) + +BUNDLED WITH + 2.4.10 diff --git a/home/misc/cachix-agent.nix b/home/misc/cachix-agent.nix index 064f8fc4..e14ec79b 100644 --- a/home/misc/cachix-agent.nix +++ b/home/misc/cachix-agent.nix @@ -35,12 +35,14 @@ in config = mkIf cfg.enable { - custom.misc.homeage.secrets = [ "cachix-agent-token-${cfg.hostName}" ]; + # FIXME w/o homeage: https://sourcegraph.com/github.com/nix-community/home-manager@release-23.05/-/blob/modules/services/cachix-agent.nix + #custom.misc.homeage.secrets = [ "cachix-agent-token-${cfg.hostName}" ]; services.cachix-agent = { enable = true; name = cfg.hostName; - credentialsFile = config.homeage.file."cachix-agent-token-${cfg.hostName}".path; + # FIXME w/o homeage + #credentialsFile = config.homeage.file."cachix-agent-token-${cfg.hostName}".path; }; }; diff --git a/home/misc/comment-nvim.lua b/home/misc/comment-nvim.lua new file mode 100644 index 00000000..a8443238 --- /dev/null +++ b/home/misc/comment-nvim.lua @@ -0,0 +1 @@ +require('Comment').setup() diff --git a/home/misc/doom.d/config.el b/home/misc/doom.d/config.el new file mode 100644 index 00000000..e69de29b diff --git a/home/misc/doom.d/init.el b/home/misc/doom.d/init.el new file mode 100644 index 00000000..7e0ae312 --- /dev/null +++ b/home/misc/doom.d/init.el @@ -0,0 +1,191 @@ +;;; init.el -*- lexical-binding: t; -*- + +;; This file controls what Doom modules are enabled and what order they load +;; in. Remember to run 'doom sync' after modifying it! + +;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's +;; documentation. There you'll find a "Module Index" link where you'll find +;; a comprehensive list of Doom's modules and what flags they support. + +;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or +;; 'C-c c k' for non-vim users) to view its documentation. This works on +;; flags as well (those symbols that start with a plus). +;; +;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its +;; directory (for easy access to its source code). + +(doom! :input + ;;chinese + ;;japanese + ;;layout ; auie,ctsrnm is the superior home row + + :completion + company ; the ultimate code completion backend + ;;helm ; the *other* search engine for love and life + ;;ido ; the other *other* search engine... + ;;ivy ; a search engine for love and life + vertico ; the search engine of the future + + :ui + ;;deft ; notational velocity for Emacs + doom ; what makes DOOM look the way it does + doom-dashboard ; a nifty splash screen for Emacs + doom-quit ; DOOM quit-message prompts when you quit Emacs + ;;(emoji +unicode) ; 🙂 + hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW + ;;hydra + ;;indent-guides ; highlighted indent columns + ;;ligatures ; ligatures and symbols to make your code pretty again + ;;minimap ; show a map of the code on the side + modeline ; snazzy, Atom-inspired modeline, plus API + ;;nav-flash ; blink cursor line after big motions + ;;neotree ; a project drawer, like NERDTree for vim + ophints ; highlight the region an operation acts on + (popup +defaults) ; tame sudden yet inevitable temporary windows + ;;tabs ; a tab bar for Emacs + ;;treemacs ; a project drawer, like neotree but cooler + ;;unicode ; extended unicode support for various languages + vc-gutter ; vcs diff in the fringe + vi-tilde-fringe ; fringe tildes to mark beyond EOB + ;;window-select ; visually switch windows + workspaces ; tab emulation, persistence & separate workspaces + ;;zen ; distraction-free coding or writing + + :editor + (evil +everywhere); come to the dark side, we have cookies + file-templates ; auto-snippets for empty files + fold ; (nigh) universal code folding + ;;(format +onsave) ; automated prettiness + ;;god ; run Emacs commands without modifier keys + ;;lispy ; vim for lisp, for people who don't like vim + ;;multiple-cursors ; editing in many places at once + ;;objed ; text object editing for the innocent + ;;parinfer ; turn lisp into python, sort of + ;;rotate-text ; cycle region at point between text candidates + snippets ; my elves. They type so I don't have to + ;;word-wrap ; soft wrapping with language-aware indent + + :emacs + dired ; making dired pretty [functional] + electric ; smarter, keyword-based electric-indent + ;;ibuffer ; interactive buffer management + undo ; persistent, smarter undo for your inevitable mistakes + vc ; version-control and Emacs, sitting in a tree + + :term + ;;eshell ; the elisp shell that works everywhere + ;;shell ; simple shell REPL for Emacs + ;;term ; basic terminal emulator for Emacs + ;;vterm ; the best terminal emulation in Emacs + + :checkers + syntax ; tasing you for every semicolon you forget + ;;(spell +flyspell) ; tasing you for misspelling mispelling + ;;grammar ; tasing grammar mistake every you make + + :tools + ;;ansible + ;;biblio ; Writes a PhD for you (citation needed) + ;;debugger ; FIXME stepping through code, to help you add bugs + ;;direnv + ;;docker + ;;editorconfig ; let someone else argue about tabs vs spaces + ;;ein ; tame Jupyter notebooks with emacs + (eval +overlay) ; run code, run (also, repls) + ;;gist ; interacting with github gists + lookup ; navigate your code and its documentation + ;;lsp ; M-x vscode + magit ; a git porcelain for Emacs + ;;make ; run make tasks from Emacs + ;;pass ; password manager for nerds + ;;pdf ; pdf enhancements + ;;prodigy ; FIXME managing external services & code builders + ;;rgb ; creating color strings + ;;taskrunner ; taskrunner for all your projects + ;;terraform ; infrastructure as code + ;;tmux ; an API for interacting with tmux + ;;upload ; map local to remote projects via ssh/ftp + + :os + (:if IS-MAC macos) ; improve compatibility with macOS + ;;tty ; improve the terminal Emacs experience + + :lang + ;;agda ; types of types of types of types... + ;;beancount ; mind the GAAP + ;;cc ; C > C++ == 1 + ;;clojure ; java with a lisp + ;;common-lisp ; if you've seen one lisp, you've seen them all + ;;coq ; proofs-as-programs + ;;crystal ; ruby at the speed of c + ;;csharp ; unity, .NET, and mono shenanigans + ;;data ; config/data formats + ;;(dart +flutter) ; paint ui and not much else + ;;dhall + ;;elixir ; erlang done right + ;;elm ; care for a cup of TEA? + emacs-lisp ; drown in parentheses + ;;erlang ; an elegant language for a more civilized age + ;;ess ; emacs speaks statistics + ;;factor + ;;faust ; dsp, but you get to keep your soul + ;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER) + ;;fsharp ; ML stands for Microsoft's Language + ;;fstar ; (dependent) types and (monadic) effects and Z3 + ;;gdscript ; the language you waited for + ;;(go +lsp) ; the hipster dialect + ;;(haskell +lsp) ; a language that's lazier than I am + ;;hy ; readability of scheme w/ speed of python + ;;idris ; a language you can depend on + ;;json ; At least it ain't XML + ;;(java +meghanada) ; the poster child for carpal tunnel syndrome + ;;javascript ; all(hope(abandon(ye(who(enter(here)))))) + ;;julia ; a better, faster MATLAB + ;;kotlin ; a better, slicker Java(Script) + ;;latex ; writing papers in Emacs has never been so fun + ;;lean ; for folks with too much to prove + ;;ledger ; be audit you can be + ;;lua ; one-based indices? one-based indices + markdown ; writing docs for people to ignore + ;;nim ; python + lisp at the speed of c + ;;nix ; I hereby declare "nix geht mehr!" + ;;ocaml ; an objective camel + org ; organize your plain life in plain text + ;;php ; perl's insecure younger brother + ;;plantuml ; diagrams for confusing people more + ;;purescript ; javascript, but functional + ;;python ; beautiful is better than ugly + ;;qt ; the 'cutest' gui framework ever + ;;racket ; a DSL for DSLs + ;;raku ; the artist formerly known as perl6 + ;;rest ; Emacs as a REST client + ;;rst ; ReST in peace + ;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} + ;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap() + ;;scala ; java, but good + ;;(scheme +guile) ; a fully conniving family of lisps + sh ; she sells {ba,z,fi}sh shells on the C xor + ;;sml + ;;solidity ; do you need a blockchain? No. + ;;swift ; who asked for emoji variables? + ;;terra ; Earth and Moon in alignment for performance. + ;;web ; the tubes + ;;yaml ; JSON, but readable + ;;zig ; C, but simpler + + :email + ;;(mu4e +org +gmail) + ;;notmuch + ;;(wanderlust +gmail) + + :app + ;;calendar + ;;emms + ;;everywhere ; *leave* Emacs!? You must be joking + ;;irc ; how neckbeards socialize + ;;(rss +org) ; emacs as an RSS reader + ;;twitter ; twitter client https://twitter.com/vnought + + :config + ;;literate + (default +bindings +smartparens)) diff --git a/home/misc/doom.d/packages.el b/home/misc/doom.d/packages.el new file mode 100644 index 00000000..e69de29b diff --git a/home/misc/duck-nvim.lua b/home/misc/duck-nvim.lua new file mode 100644 index 00000000..ddc86120 --- /dev/null +++ b/home/misc/duck-nvim.lua @@ -0,0 +1,3 @@ +vim.keymap.set('n', 'dd', function() require("duck").hatch() end, {}) +vim.keymap.set('n', 'dk', function() require("duck").cook() end, {}) + diff --git a/home/misc/emacs.el b/home/misc/emacs.el new file mode 100644 index 00000000..5d1cf8d9 --- /dev/null +++ b/home/misc/emacs.el @@ -0,0 +1,159 @@ +;; TODO Use / Integrate with https://github.com/radian-software/straight.el#integration-with-use-package-1 to also have things like https://github.com/rougier/nano-emacs possible +;;(eval-when-compile +;; (require 'use-package)) +;; Disable startup message. +(setq inhibit-startup-screen t + ;; https://github.com/emacs-dashboard/emacs-dashboard#emacs-daemon + initial-buffer-choice (lambda () (get-buffer "*Deft*")) + ;; initial-buffer-choice 'ignore + inhibit-startup-echo-area-message (user-login-name)) + +(use-package company-emoji + :config (add-to-list 'company-backends 'company-emoji)) + +(use-package org + ;; :bind ( + ;; ("C-c l" . org-store-link) + ;; :map org-mode-map + ;; ("C-c SPC" . nil) + ;; ("C-c SPC" . nil) + ;; ) + ;; https://orgmode.org/manual/Dynamic-Headline-Numbering.html - https://github.com/bzg/org-mode/blob/5dc8ea0/lisp/org.el#L1026 + :init (setq org-startup-numerated t) + :hook + (org-mode . (lambda () + (setq-local delete-trailing-lines nil))) + :config + ;; Add some todo keywords. + ;; https://orgmode.org/list/8763vfa9hl.fsf@legolas.norang.ca/ + (setq org-log-done t + org-use-fast-todo-selection t + ) + ;; https://orgmode.org/manual/Dynamic-Headline-Numbering.html#Dynamic-Headline-Numbering (numbered headlines in orgmode) + + ;; M-x list-colors-display (https://www.gnu.org/software/emacs/manual/html_node/elisp/Color-Names.html) + ;;(setq org-todo-keyword-faces + ;; '(("TODO" . (:foreground "red" :weight bold)) + ;;("NEXT" . (:foreground "red" :weight bold)) + ;; ("DONE" . (:foreground "forest green" :weight bold)) + ;; ("WAITING" . (:foreground "orange" :weight bold)) + ;; ("RETEST" . (:foreground "brightred" :weight bold)) + ;; ("CANCELLED" . (:foreground "forest green" :weight bold)) + ;; ("SOMEDAY" . (:foreground "orange" :weight bold)) + ;; ("OPEN" . (:foreground "red" :weight bold)) + ;; ("CLOSED" . (:foreground "forest green" :weight bold)) + ;; ("ONGOING" . (:foreground "orange" :weight bold)))) + + ;; (setq org-todo-keywords + ;; '((sequence "TODO(t)" "NEXT(n)" "|" "DONE(d!/!)") + ;; (sequence "WAITING(w@/!)" "RETEST(r@/!)" "|" "CANCELLED(c!/!)") + ;; (sequence "SOMEDAY(s!/!)" "|") + ;; (sequence "OPEN(O!)" "|" "CLOSED(C!)") + ;; (sequence "ONGOING(o)" "|"))) + + ;; Unfortunately org-mode tends to take over keybindings that + ;; start with C-c. + ) + +;; https://fortune-teller-amy-88756.netlify.app/knusper#org7704e78 +(global-set-key "\C-cl" 'org-store-link) +(global-set-key "\C-ca" 'org-agenda) +(global-set-key "\C-cb" 'org-iswitchb) +(setq org-log-done t) + + + +;; https://github.com/EFLS/zetteldeft/blob/a16a02e/docs/index.html#L628 - source for https://efls.github.io/zetteldeft/ that is linked here https://github.com/EFLS/zetteldeft/blame/0e56fe3b0bf8fddca6e3537abdc79128c93408f7/README.org#L13 +(use-package deft + ;; :after org-super-links ;; does not work, needed ? + ;; :bind ("C-" . deft) + :commands (deft) + :config ;; https://github.com/jrblevin/deft/blame/462dd37db34a7c13baf3e2295c988d783ca9680b/README.md#L220 + (setq deft-extensions '("org") + deft-directory "~/meinzettelkasten" + deft-recursive t + ;; deft-new-file-format "%Y-%m-%dT%H%M" + deft-use-filename-as-title t + ;; I tend to write org-mode titles with #+title: (i.e., uncapitalized). Also other org-mode code at the beginning is written in lower case. + ;; In order to filter these from the deft summary, let’s alter the regular expression: + deft-strip-summary-regexp + (concat "\\(" + "[\n\t]" ;; blank + "\\|^#\\+[a-zA-Z_]+:.*$" ;;org-mode metadata + "\\)") + ;; Its original value was \\([\n ]\\|^#\\+[[:upper:]_]+:.*$\\). + + deft-default-extension "org")) + +(use-package zetteldeft + :after deft + :config (zetteldeft-set-classic-keybindings)) + + +;;(org-babel-do-load-languages + ;;'org-babel-load-languages + ;;'((emacs-lisp . nil) + ;; (mermaid . t) + ;; (scheme . t) + ;; (shell . t))) + +;; https://github.com/joostkremers/visual-fill-column - Emacs mode for wrapping visual-line-mode buffers at fill-column. See https://stackoverflow.com/a/4879934/3320256 and https://gitlab.com/ndw/dotfiles/-/blob/16a02b38bbf7c5a750f0009fcd19636b039d2006/emacs.d/emacs.org#L1136 as well +;; (setq line-move-visual nil) +;; (setq visual-line-fringe-indicators '(left-curly-arrow right-curly-arrow)) +;; (use-package visual-fill-column +;; :hook visual-line-mode) + +;;(global-visual-line-mode) +;;(setq-default visual-fill-column-width 103) +;;(global-visual-fill-column-mode) + +;;(use-package tree-sitter) + +;;(use-package tree-sitter-langs +;; :after tree-sitter) + +;; (use-package nix-mode +;; :mode ("\\.nix\\'" "\\.nix.in\\'")) +;; (use-package nix-drv-mode +;; :ensure nix-mode +;; :mode "\\.drv\\'") +;; (use-package nix-shell +;; :ensure nix-mode +;; :commands (nix-shell-unpack nix-shell-configure nix-shell-build)) +;; (use-package nix-repl +;; :ensure nix-mode +;; :commands (nix-repl)) + +;; https://fortune-teller-amy-88756.netlify.app/knusper#orgfa7de9d +(use-package org-bullets + :ensure t + :init + (setq org-bullets-bullet-list + '("◉" "◎" "⚫" "○" "►" "◇")) + :config + (add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))) + ) +(setq org-todo-keywords '((sequence "☛ TODO(t)" "|" "✔ DONE(d)") + (sequence "⚑ WAITING(w)" "|") + (sequence "|" "✘ CANCELED(c)"))) + +;; https://mstempl.netlify.app/post/beautify-org-mode/ +;;(use-package org-bullets +;; :custom +;; (org-bullets-bullet-list '("◉" "☯" "○" "☯" "✸" "☯" "✿" "☯" "✜" "☯" "◆" "☯" "▶")) +;; (org-ellipsis "⤵") +;; :hook org-mode) + +(font-lock-add-keywords 'org-mode + '(("^ *\\([-]\\) " + (0 (prog1 () (compose-region (match-beginning 1) (match-end 1) "•")))))) +(font-lock-add-keywords 'org-mode + '(("^ *\\([+]\\) " + (0 (prog1 () (compose-region (match-beginning 1) (match-end 1) "◦")))))) + +;; i. e. https://github.com/DougBeney/emacs/blob/e55430a4c5fa6fc238676f3b3565f0afe6ee8e70/sanemacs.el#L56 does something annoying at least for me, see also https://stackoverflow.com/a/14164500/3320256 and for a cool workaround see https://emacs.stackexchange.com/questions/14438/remove-hooks-for-specific-modes +(remove-hook 'before-save-hook 'delete-trailing-whitespace t) + +;; TODO how to create a dynamic headline (rendered only) line in emacs + +(deft) diff --git a/home/misc/haskell-tools-nvim.lua b/home/misc/haskell-tools-nvim.lua new file mode 100644 index 00000000..9a656994 --- /dev/null +++ b/home/misc/haskell-tools-nvim.lua @@ -0,0 +1,48 @@ +local ht = require('haskell-tools') +local def_opts = { noremap = true, silent = true, } +ht.setup { +tools = { -- haskell-tools options + codeLens = { + -- Whether to automatically display/refresh codeLenses + -- (explicitly set to false to disable) + autoRefresh = true, + }, + hoogle = { + -- 'auto': Choose a mode automatically, based on what is available. + -- 'telescope-local': Force use of a local installation. + -- 'telescope-web': The online version (depends on curl). + -- 'browser': Open hoogle search in the default browser. + mode = 'auto', + }, + repl = { + -- 'builtin': Use the simple builtin repl + -- 'toggleterm': Use akinsho/toggleterm.nvim + handler = 'builtin', + builtin = { + create_repl_window = function(view) + -- create_repl_split | create_repl_vsplit | create_repl_tabnew | create_repl_cur_win + return view.create_repl_split { size = vim.o.lines / 3 } + end + }, + }, + }, +hls = { + -- See nvim-lspconfig's suggested configuration for keymaps, etc. + on_attach = function(client, bufnr) + local opts = vim.tbl_extend('keep', def_opts, { buffer = bufnr, }) + -- haskell-language-server relies heavily on codeLenses, + -- so auto-refresh (see advanced configuration) is enabled by default + vim.keymap.set('n', 'ca', vim.lsp.codelens.run, opts) + vim.keymap.set('n', 'hs', ht.hoogle.hoogle_signature, opts) + -- default_on_attach(client, bufnr) -- if defined, see nvim-lspconfig + end, + }, +} +-- Suggested keymaps that do not depend on haskell-language-server +-- Toggle a GHCi repl for the current package +vim.keymap.set('n', 'rr', ht.repl.toggle, def_opts) +-- Toggle a GHCi repl for the current buffer +vim.keymap.set('n', 'rf', function() + ht.repl.toggle(vim.api.nvim_buf_get_name(0)) +end, def_opts) +vim.keymap.set('n', 'rq', ht.repl.quit, def_opts) diff --git a/home/misc/homeage.nix b/home/misc/homeage.nix deleted file mode 100644 index cd4f3115..00000000 --- a/home/misc/homeage.nix +++ /dev/null @@ -1,128 +0,0 @@ -{ config, lib, pkgs, inputs, rootPath, ... }: - -let - inherit (builtins) - removeAttrs - ; - inherit (lib) - elem - flatten - listToAttrs - mkOption - nameValuePair - optional - types - ; - - cfg = config.custom.misc.homeage; - - buildSshConfig = name: { - name = "ssh-config-${name}"; - source = "${rootPath}/secrets/ssh/${name}/config.age"; - copies = [ "${config.home.homeDirectory}/.ssh/config.d/${name}" ]; - }; - - buildSshKey = module: name: [ - { - name = "ssh-key-${name}"; - source = "${rootPath}/secrets/ssh/${module}/id-rsa-${name}.age"; - copies = [ "${config.home.homeDirectory}/.ssh/keys/id_rsa.${name}" ]; - } - { - name = "ssh-key-${name}-pub"; - source = "${rootPath}/secrets/ssh/${module}/id-rsa-${name}-pub.age"; - copies = [ "${config.home.homeDirectory}/.ssh/keys/id_rsa.${name}.pub" ]; - } - ]; -in - -{ - - imports = [ inputs.homeage.homeManagerModules.homeage ]; - - - ###### interface - - options = { - - custom.misc.homeage = { - secrets = mkOption { - type = types.listOf (types.enum [ "cachix-agent-token-M386" "sedo" "ssh-private" "ssh-sedo" "ssh-vcs" ]); - default = [ ]; - description = '' - Secrets to install. - ''; - }; - - directory = mkOption { - type = types.nullOr types.string; - default = "${config.xdg.dataHome}/secrets"; - description = '' - Directory to save secrets in. See homeage.mount. - ''; - }; - }; - - }; - - - ###### implementation - - config = { - - home.packages = [ - pkgs.age - pkgs.agenix-cli - ]; - - homeage = { - identityPaths = [ - "${config.home.homeDirectory}/.age/key.txt" - ]; - - installationType = "activation"; - mount = cfg.directory; - - file = listToAttrs ( - map - (entry: nameValuePair entry.name (removeAttrs entry [ "name" ])) - (flatten ( - (optional (elem "cachix-agent-token-M386" cfg.secrets) [ - { - name = "cachix-agent-token-M386"; - source = "${rootPath}/secrets/M386/cachix-agent-token.age"; - } - ]) - ++ (optional (elem "sedo" cfg.secrets) [ - { - name = "sedo-aliases"; - source = "${rootPath}/secrets/M386/aliases.sh.age"; - copies = [ "${config.home.homeDirectory}/.aliases.sh" ]; - } - { - name = "sedo-settings"; - source = "${rootPath}/secrets/M386/settings.xml.age"; - copies = [ "${config.home.homeDirectory}/.m2/settings.xml" ]; - } - ]) - ++ (optional (elem "ssh-private" cfg.secrets) [ - (buildSshConfig "private") - (buildSshKey "private" "private") - (buildSshKey "private" "strato") - ]) - ++ (optional (elem "ssh-sedo" cfg.secrets) [ - (buildSshConfig "sedo") - (buildSshKey "sedo" "sedo") - (buildSshKey "sedo" "sedo-integration") - ]) - ++ (optional (elem "ssh-vcs" cfg.secrets) [ - (buildSshConfig "vcs") - (buildSshKey "vcs" "vcs") - ]) - )) - ); - }; - - }; - -} diff --git a/home/misc/indent-blankline.lua b/home/misc/indent-blankline.lua new file mode 100644 index 00000000..3b3b62d9 --- /dev/null +++ b/home/misc/indent-blankline.lua @@ -0,0 +1,10 @@ +vim.opt.list = true +vim.opt.listchars:append "space:⋅" +vim.opt.listchars:append "eol:↴" + +require("indent_blankline").setup { + space_char_blankline = " ", + show_current_context = true, + show_current_context_start = true, +} + diff --git a/home/misc/luasnip-snippets.lua b/home/misc/luasnip-snippets.lua new file mode 100644 index 00000000..5664402e --- /dev/null +++ b/home/misc/luasnip-snippets.lua @@ -0,0 +1,574 @@ +local ls = require("luasnip") +-- some shorthands... +local s = ls.snippet +local sn = ls.snippet_node +local t = ls.text_node +local i = ls.insert_node +local f = ls.function_node +local c = ls.choice_node +local d = ls.dynamic_node +local r = ls.restore_node +local l = require("luasnip.extras").lambda +local rep = require("luasnip.extras").rep +local p = require("luasnip.extras").partial +local m = require("luasnip.extras").match +local n = require("luasnip.extras").nonempty +local dl = require("luasnip.extras").dynamic_lambda +local fmt = require("luasnip.extras.fmt").fmt +local fmta = require("luasnip.extras.fmt").fmta +local types = require("luasnip.util.types") +local conds = require("luasnip.extras.expand_conditions") + +-- If you're reading this file for the first time, best skip to around line 190 +-- where the actual snippet-definitions start. + +-- Every unspecified option will be set to the default. +ls.config.set_config({ + history = true, + -- Update more often, :h events for more info. + update_events = "TextChanged,TextChangedI", + -- Snippets aren't automatically removed if their text is deleted. + -- `delete_check_events` determines on which events (:h events) a check for + -- deleted snippets is performed. + -- This can be especially useful when `history` is enabled. + delete_check_events = "TextChanged", + ext_opts = { + [types.choiceNode] = { + active = { + virt_text = { { "choiceNode", "Comment" } }, + }, + }, + }, + -- treesitter-hl has 100, use something higher (default is 200). + ext_base_prio = 300, + -- minimal increase in priority. + ext_prio_increase = 1, + enable_autosnippets = true, + -- mapping for cutting selected text so it's usable as SELECT_DEDENT, + -- SELECT_RAW or TM_SELECTED_TEXT (mapped via xmap). + store_selection_keys = "", + -- luasnip uses this function to get the currently active filetype. This + -- is the (rather uninteresting) default, but it's possible to use + -- eg. treesitter for getting the current filetype by setting ft_func to + -- require("luasnip.extras.filetype_functions").from_cursor (requires + -- `nvim-treesitter/nvim-treesitter`). This allows correctly resolving + -- the current filetype in eg. a markdown-code block or `vim.cmd()`. + ft_func = function() + return vim.split(vim.bo.filetype, ".", true) + end, +}) + +-- args is a table, where 1 is the text in Placeholder 1, 2 the text in +-- placeholder 2,... +local function copy(args) + return args[1] +end + +-- 'recursive' dynamic snippet. Expands to some text followed by itself. +local rec_ls +rec_ls = function() + return sn( + nil, + c(1, { + -- Order is important, sn(...) first would cause infinite loop of expansion. + t(""), + sn(nil, { t({ "", "\t\\item " }), i(1), d(2, rec_ls, {}) }), + }) + ) +end + +-- complicated function for dynamicNode. +local function jdocsnip(args, _, old_state) + -- !!! old_state is used to preserve user-input here. DON'T DO IT THAT WAY! + -- Using a restoreNode instead is much easier. + -- View this only as an example on how old_state functions. + local nodes = { + t({ "/**", " * " }), + i(1, "A short Description"), + t({ "", "" }), + } + + -- These will be merged with the snippet; that way, should the snippet be updated, + -- some user input eg. text can be referred to in the new snippet. + local param_nodes = {} + + if old_state then + nodes[2] = i(1, old_state.descr:get_text()) + end + param_nodes.descr = nodes[2] + + -- At least one param. + if string.find(args[2][1], ", ") then + vim.list_extend(nodes, { t({ " * ", "" }) }) + end + + local insert = 2 + for indx, arg in ipairs(vim.split(args[2][1], ", ", true)) do + -- Get actual name parameter. + arg = vim.split(arg, " ", true)[2] + if arg then + local inode + -- if there was some text in this parameter, use it as static_text for this new snippet. + if old_state and old_state[arg] then + inode = i(insert, old_state["arg" .. arg]:get_text()) + else + inode = i(insert) + end + vim.list_extend( + nodes, + { t({ " * @param " .. arg .. " " }), inode, t({ "", "" }) } + ) + param_nodes["arg" .. arg] = inode + + insert = insert + 1 + end + end + + if args[1][1] ~= "void" then + local inode + if old_state and old_state.ret then + inode = i(insert, old_state.ret:get_text()) + else + inode = i(insert) + end + + vim.list_extend( + nodes, + { t({ " * ", " * @return " }), inode, t({ "", "" }) } + ) + param_nodes.ret = inode + insert = insert + 1 + end + + if vim.tbl_count(args[3]) ~= 1 then + local exc = string.gsub(args[3][2], " throws ", "") + local ins + if old_state and old_state.ex then + ins = i(insert, old_state.ex:get_text()) + else + ins = i(insert) + end + vim.list_extend( + nodes, + { t({ " * ", " * @throws " .. exc .. " " }), ins, t({ "", "" }) } + ) + param_nodes.ex = ins + insert = insert + 1 + end + + vim.list_extend(nodes, { t({ " */" }) }) + + local snip = sn(nil, nodes) + -- Error on attempting overwrite. + snip.old_state = param_nodes + return snip +end + +-- Make sure to not pass an invalid command, as io.popen() may write over nvim-text. +local function bash(_, _, command) + local file = io.popen(command, "r") + local res = {} + for line in file:lines() do + table.insert(res, line) + end + return res +end + +-- Returns a snippet_node wrapped around an insert_node whose initial +-- text value is set to the current date in the desired format. +local date_input = function(args, snip, old_state, fmt) + local fmt = fmt or "%Y-%m-%d" + return sn(nil, i(1, os.date(fmt))) +end + +-- snippets are added via ls.add_snippets(filetype, snippets[, opts]), where +-- opts may specify the `type` of the snippets ("snippets" or "autosnippets", +-- for snippets that should expand directly after the trigger is typed). +-- +-- opts can also specify a key. By passing an unique key to each add_snippets, it's possible to reload snippets by +-- re-`:luafile`ing the file in which they are defined (eg. this one). +ls.add_snippets("all", { + -- trigger is `fn`, second argument to snippet-constructor are the nodes to insert into the buffer on expansion. + s("fn", { + -- Simple static text. + t("//Parameters: "), + -- function, first parameter is the function, second the Placeholders + -- whose text it gets as input. + f(copy, 2), + t({ "", "function " }), + -- Placeholder/Insert. + i(1), + t("("), + -- Placeholder with initial text. + i(2, "int foo"), + -- Linebreak + t({ ") {", "\t" }), + -- Last Placeholder, exit Point of the snippet. + i(0), + t({ "", "}" }), + }), + s("class", { + -- Choice: Switch between two different Nodes, first parameter is its position, second a list of nodes. + c(1, { + t("public "), + t("private "), + }), + t("class "), + i(2), + t(" "), + c(3, { + t("{"), + -- sn: Nested Snippet. Instead of a trigger, it has a position, just like insert-nodes. !!! These don't expect a 0-node!!!! + -- Inside Choices, Nodes don't need a position as the choice node is the one being jumped to. + sn(nil, { + t("extends "), + -- restoreNode: stores and restores nodes. + -- pass position, store-key and nodes. + r(1, "other_class", i(1)), + t(" {"), + }), + sn(nil, { + t("implements "), + -- no need to define the nodes for a given key a second time. + r(1, "other_class"), + t(" {"), + }), + }), + t({ "", "\t" }), + i(0), + t({ "", "}" }), + }), + -- Alternative printf-like notation for defining snippets. It uses format + -- string with placeholders similar to the ones used with Python's .format(). + s( + "fmt1", + fmt("To {title} {} {}.", { + i(2, "Name"), + i(3, "Surname"), + title = c(1, { t("Mr."), t("Ms.") }), + }) + ), + -- To escape delimiters use double them, e.g. `{}` -> `{{}}`. + -- Multi-line format strings by default have empty first/last line removed. + -- Indent common to all lines is also removed. Use the third `opts` argument + -- to control this behaviour. + s( + "fmt2", + fmt( + [[ + foo({1}, {3}) {{ + return {2} * {4} + }} + ]], + { + i(1, "x"), + rep(1), + i(2, "y"), + rep(2), + } + ) + ), + -- Empty placeholders are numbered automatically starting from 1 or the last + -- value of a numbered placeholder. Named placeholders do not affect numbering. + s( + "fmt3", + fmt("{} {a} {} {1} {}", { + t("1"), + t("2"), + a = t("A"), + }) + ), + -- The delimiters can be changed from the default `{}` to something else. + s("fmt4", fmt("foo() { return []; }", i(1, "x"), { delimiters = "[]" })), + -- `fmta` is a convenient wrapper that uses `<>` instead of `{}`. + s("fmt5", fmta("foo() { return <>; }", i(1, "x"))), + -- By default all args must be used. Use strict=false to disable the check + s( + "fmt6", + fmt("use {} only", { t("this"), t("not this") }, { strict = false }) + ), + -- Use a dynamic_node to interpolate the output of a + -- function (see date_input above) into the initial + -- value of an insert_node. + s("novel", { + t("It was a dark and stormy night on "), + d(1, date_input, {}, { user_args = { "%A, %B %d of %Y" } }), + t(" and the clocks were striking thirteen."), + }), + -- Parsing snippets: First parameter: Snippet-Trigger, Second: Snippet body. + -- Placeholders are parsed into choices with 1. the placeholder text(as a snippet) and 2. an empty string. + -- This means they are not SELECTed like in other editors/Snippet engines. + ls.parser.parse_snippet( + "lspsyn", + "Wow! This ${1:Stuff} really ${2:works. ${3:Well, a bit.}}" + ), + + -- When wordTrig is set to false, snippets may also expand inside other words. + ls.parser.parse_snippet( + { trig = "te", wordTrig = false }, + "${1:cond} ? ${2:true} : ${3:false}" + ), + + -- When regTrig is set, trig is treated like a pattern, this snippet will expand after any number. + ls.parser.parse_snippet({ trig = "%d", regTrig = true }, "A Number!!"), + -- Using the condition, it's possible to allow expansion only in specific cases. + s("cond", { + t("will only expand in c-style comments"), + }, { + condition = function(line_to_cursor, matched_trigger, captures) + -- optional whitespace followed by // + return line_to_cursor:match("%s*//") + end, + }), + -- there's some built-in conditions in "luasnip.extras.expand_conditions". + s("cond2", { + t("will only expand at the beginning of the line"), + }, { + condition = conds.line_begin, + }), + -- The last entry of args passed to the user-function is the surrounding snippet. + s( + { trig = "a%d", regTrig = true }, + f(function(_, snip) + return "Triggered with " .. snip.trigger .. "." + end, {}) + ), + -- It's possible to use capture-groups inside regex-triggers. + s( + { trig = "b(%d)", regTrig = true }, + f(function(_, snip) + return "Captured Text: " .. snip.captures[1] .. "." + end, {}) + ), + s({ trig = "c(%d+)", regTrig = true }, { + t("will only expand for even numbers"), + }, { + condition = function(line_to_cursor, matched_trigger, captures) + return tonumber(captures[1]) % 2 == 0 + end, + }), + -- Use a function to execute any shell command and print its text. + s("bash", f(bash, {}, { user_args = { "ls" } })), + -- Short version for applying String transformations using function nodes. + s("transform", { + i(1, "initial text"), + t({ "", "" }), + -- lambda nodes accept an l._1,2,3,4,5, which in turn accept any string transformations. + -- This list will be applied in order to the first node given in the second argument. + l(l._1:match("[^i]*$"):gsub("i", "o"):gsub(" ", "_"):upper(), 1), + }), + + s("transform2", { + i(1, "initial text"), + t("::"), + i(2, "replacement for e"), + t({ "", "" }), + -- Lambdas can also apply transforms USING the text of other nodes: + l(l._1:gsub("e", l._2), { 1, 2 }), + }), + s({ trig = "trafo(%d+)", regTrig = true }, { + -- env-variables and captures can also be used: + l(l.CAPTURE1:gsub("1", l.TM_FILENAME), {}), + }), + -- Set store_selection_keys = "" (for example) in your + -- luasnip.config.setup() call to populate + -- TM_SELECTED_TEXT/SELECT_RAW/SELECT_DEDENT. + -- In this case: select a URL, hit Tab, then expand this snippet. + s("link_url", { + t(''), + i(1), + t(""), + i(0), + }), + -- Shorthand for repeating the text in a given node. + s("repeat", { i(1, "text"), t({ "", "" }), rep(1) }), + -- Directly insert the ouput from a function evaluated at runtime. + s("part", p(os.date, "%Y")), + -- use matchNodes (`m(argnode, condition, then, else)`) to insert text + -- based on a pattern/function/lambda-evaluation. + -- It's basically a shortcut for simple functionNodes: + s("mat", { + i(1, { "sample_text" }), + t(": "), + m(1, "%d", "contains a number", "no number :("), + }), + -- The `then`-text defaults to the first capture group/the entire + -- match if there are none. + s("mat2", { + i(1, { "sample_text" }), + t(": "), + m(1, "[abc][abc][abc]"), + }), + -- It is even possible to apply gsubs' or other transformations + -- before matching. + s("mat3", { + i(1, { "sample_text" }), + t(": "), + m( + 1, + l._1:gsub("[123]", ""):match("%d"), + "contains a number that isn't 1, 2 or 3!" + ), + }), + -- `match` also accepts a function in place of the condition, which in + -- turn accepts the usual functionNode-args. + -- The condition is considered true if the function returns any + -- non-nil/false-value. + -- If that value is a string, it is used as the `if`-text if no if is explicitly given. + s("mat4", { + i(1, { "sample_text" }), + t(": "), + m(1, function(args) + -- args is a table of multiline-strings (as usual). + return (#args[1][1] % 2 == 0 and args[1]) or nil + end), + }), + -- The nonempty-node inserts text depending on whether the arg-node is + -- empty. + s("nempty", { + i(1, "sample_text"), + n(1, "i(1) is not empty!"), + }), + -- dynamic lambdas work exactly like regular lambdas, except that they + -- don't return a textNode, but a dynamicNode containing one insertNode. + -- This makes it easier to dynamically set preset-text for insertNodes. + s("dl1", { + i(1, "sample_text"), + t({ ":", "" }), + dl(2, l._1, 1), + }), + -- Obviously, it's also possible to apply transformations, just like lambdas. + s("dl2", { + i(1, "sample_text"), + i(2, "sample_text_2"), + t({ "", "" }), + dl(3, l._1:gsub("\n", " linebreak ") .. l._2, { 1, 2 }), + }), +}, { + key = "all", +}) + +ls.add_snippets("java", { + -- Very long example for a java class. + s("fn", { + d(6, jdocsnip, { 2, 4, 5 }), + t({ "", "" }), + c(1, { + t("public "), + t("private "), + }), + c(2, { + t("void"), + t("String"), + t("char"), + t("int"), + t("double"), + t("boolean"), + i(nil, ""), + }), + t(" "), + i(3, "myFunc"), + t("("), + i(4), + t(")"), + c(5, { + t(""), + sn(nil, { + t({ "", " throws " }), + i(1), + }), + }), + t({ " {", "\t" }), + i(0), + t({ "", "}" }), + }), +}, { + key = "java", +}) + +ls.add_snippets("tex", { + -- rec_ls is self-referencing. That makes this snippet 'infinite' eg. have as many + -- \item as necessary by utilizing a choiceNode. + s("ls", { + t({ "\\begin{itemize}", "\t\\item " }), + i(1), + d(2, rec_ls, {}), + t({ "", "\\end{itemize}" }), + }), + s("cvse", { + t( "\\begin{cvsection}{" ), + i(1, "career station"), + t("}"), + t({ "", "\\end{cvsection}"}), + }), + s("cvsu", { + t( "\\begin{cvsubsection}{" ), + i(1, "job title"), + t( "}{" ), + i(2, "workplace"), + t( "}{"), + i(3, "hire date"), + t("}"), + t({ "", "\\end{cvsubsection}"}), + }), +}, { + key = "tex", +}) + +-- set type to "autosnippets" for adding autotriggered snippets. +ls.add_snippets("all", { + s("autotrigger", { + t("autosnippet"), + }), +}, { + type = "autosnippets", + key = "all_auto", +}) + +-- in a lua file: search lua-, then c-, then all-snippets. +ls.filetype_extend("lua", { "c" }) +-- in a cpp file: search c-snippets, then all-snippets only (no cpp-snippets!!). +ls.filetype_set("cpp", { "c" }) + +-- Beside defining your own snippets you can also load snippets from "vscode-like" packages +-- that expose snippets in json files, for example . + +require("luasnip.loaders.from_vscode").load({ include = { "tex" } }) -- Load only python snippets + +-- The directories will have to be structured like eg. (include +-- a similar `package.json`) +require("luasnip.loaders.from_vscode").load({ paths = { "~/.config/nvim/snippets" } }) -- Load snippets from my-snippets folder + +-- You can also use lazy loading so snippets are loaded on-demand, not all at once (may interfere with lazy-loading luasnip itself). +require("luasnip.loaders.from_vscode").lazy_load() -- You can pass { paths = "./my-snippets/"} as well + +-- You can also use snippets in snipmate format, for example . +-- The usage is similar to vscode. + +-- One peculiarity of honza/vim-snippets is that the file containing global +-- snippets is _.snippets, so we need to tell luasnip that the filetype "_" +-- contains global snippets: +ls.filetype_extend("all", { "_" }) + +require("luasnip.loaders.from_snipmate").load({ include = { "c" } }) -- Load only snippets for c. + +-- Load snippets from my-snippets folder +-- The "." refers to the directory where of your `$MYVIMRC` (you can print it +-- out with `:lua print(vim.env.MYVIMRC)`. +-- NOTE: It's not always set! It isn't set for example if you call neovim with +-- the `-u` argument like this: `nvim -u yeet.txt`. +require("luasnip.loaders.from_snipmate").load({ path = { "./my-snippets" } }) +-- If path is not specified, luasnip will look for the `snippets` directory in rtp (for custom-snippet probably +-- `~/.config/nvim/snippets`). + +require("luasnip.loaders.from_snipmate").lazy_load() -- Lazy loading + +-- see DOC.md/LUA SNIPPETS LOADER for some details. +require("luasnip.loaders.from_lua").load({ include = { "c" } }) +require("luasnip.loaders.from_lua").lazy_load({ include = { "all", "cpp" } }) diff --git a/home/misc/markid.lua b/home/misc/markid.lua new file mode 100644 index 00000000..72d8641f --- /dev/null +++ b/home/misc/markid.lua @@ -0,0 +1,3 @@ +require'nvim-treesitter.configs'.setup { + markid = { enable = true } +} diff --git a/home/misc/minimal.el b/home/misc/minimal.el new file mode 100644 index 00000000..e928b5d0 --- /dev/null +++ b/home/misc/minimal.el @@ -0,0 +1,117 @@ +(setq inhibit-startup-screen t + ;; https://github.com/emacs-dashboard/emacs-dashboard#emacs-daemon + ;; initial-buffer-choice (lambda () (get-buffer "*Deft*")) + initial-buffer-choice 'ignore + inhibit-startup-echo-area-message (user-login-name)) + +;; Enable transient mark mode +;;(transient-mark-mode 1) + +;;(delete-selection-mode 1) + +(setq initial-major-mode 'fundamental-mode + initial-scratch-message nil + inhibit-startup-message t) + +;; Set up fonts early. +(set-face-attribute 'default + nil + :height 60 + :family "Fantasque Sans Mono") +(set-face-attribute 'variable-pitch + nil + :family "DejaVu Sans") + +(require 'sensible-defaults) +(sensible-defaults/use-all-settings) +(sensible-defaults/use-all-keybindings) + +(require 'sane-defaults) + + +;; ICOP see https://github.com/justbur/emacs-which-key/issues/130 +(which-key-mode) + +(use-package bind-key) + +;; Source: https://alhassy.com/emacs.d/ +;; Allow tree-semantics for undo operations. +(use-package undo-tree + :diminish ;; Don't show an icon in the modeline + :bind ("C-x u" . undo-tree-visualize) ;; needs (use-package bind-key) or similar + ;;:hook (org-mode . undo-tree-mode) ;; For some reason, I need this. FIXME. + :config + ;; Always have it on + (global-undo-tree-mode) + + ;; Each node in the undo tree should have a timestamp. + (setq undo-tree-visualizer-timestamps t) + + ;; Show a diff window displaying changes between undo nodes. + (setq undo-tree-visualizer-diff t)) + +;; Execute (undo-tree-visualize) then navigate along the tree to witness +;; changes being made to your file live! + +(use-package moe-theme + :init + ;; Show highlighted buffer-id as decoration. (Default: nil) + (setq moe-theme-highlight-buffer-id t) + + ;; Resize titles (optional). + (setq moe-theme-resize-markdown-title '(1.5 1.4 1.3 1.2 1.0 1.0)) + (setq moe-theme-resize-org-title '(1.5 1.4 1.3 1.2 1.1 1.0 1.0 1.0 1.0)) + (setq moe-theme-resize-rst-title '(1.5 1.4 1.3 1.2 1.1 1.0)) + + ;; Highlight Buffer-id on Mode-line + (setq moe-theme-highlight-buffer-id nil) + + ;; Choose a color for mode-line.(Default: blue) + (setq moe-theme-set-color 'cyan) + + (load-theme 'moe-dark t)) + +(use-package jinx + :hook (emacs-startup . global-jinx-mode) + :bind (("M-$" . jinx-correct) + ("C-M-$" . jinx-languages))) + +(use-package org-novelist + :ensure nil +;; :load-path "~/Downloads/" ; The directory containing 'org-novelist.el' + :custom +;; Setting de-DE leads to subtle errors (no localised files) + (org-novelist-language-tag "en-GB") ; The interface language for Org Novelist to use. It defaults to 'en-GB' when not set + (org-novelist-author "Daniel Kahlenberg") ; The default author name to use when exporting a story. Each story can also override this setting + (org-novelist-author-email "573@users.noreply.github.com") ; The default author contact email to use when exporting a story. Each story can also override this setting + (org-novelist-automatic-referencing-p nil)) + +;; if the last doesn't work, try +;; https://www.reddit.com/r/emacs/comments/t01efg/comment/iat14ob/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button +;; https://emacs.stackexchange.com/questions/70982/cursor-jumps-words-jumbled-emacs-in-terminal-via-iterm2-on-macos +;; https://emacs.stackexchange.com/questions/17085/undesirable-cursor-jump-after-movement-with-m-left-or-m-right-in-term-mode +(eval-after-load "term" + '(progn + ;; Fix forward/backward word when (term-in-char-mode). + (define-key term-raw-map (kbd "") + (lambda () (interactive) (term-send-raw-string "\eb"))) + (define-key term-raw-map (kbd "") + (lambda () (interactive) (term-send-raw-string "\eb"))) + (define-key term-raw-map (kbd "") + (lambda () (interactive) (term-send-raw-string "\ef"))) + (define-key term-raw-map (kbd "") + (lambda () (interactive) (term-send-raw-string "\ef"))) + ;; Disable killing and yanking in char mode (term-raw-map). + (mapc + (lambda (func) + (eval `(define-key term-raw-map [remap ,func] + (lambda () (interactive) (ding))))) + '(backward-kill-paragraph + backward-kill-sentence backward-kill-sexp backward-kill-word + bookmark-kill-line kill-backward-chars kill-backward-up-list + kill-forward-chars kill-line kill-paragraph kill-rectangle + kill-region kill-sentence kill-sexp kill-visual-line + kill-whole-line kill-word subword-backward-kill subword-kill + yank yank-pop yank-rectangle)))) + +(add-to-list 'global-auto-revert-ignore-modes 'Buffer-menu-mode) diff --git a/home/misc/null-ls-nvim.lua b/home/misc/null-ls-nvim.lua new file mode 100644 index 00000000..b1e29b44 --- /dev/null +++ b/home/misc/null-ls-nvim.lua @@ -0,0 +1,20 @@ +-- null-ls.nvim configuration +-- ++++++ https://github.com/jose-elias-alvarez/null-ls.nvim/wiki/ +local null_ls = require("null-ls") +null_ls.setup({ + debug = true, + sources = { +-- null_ls.builtins.diagnostics.vale, + null_ls.builtins.diagnostics.statix, + null_ls.builtins.code_actions.statix, + null_ls.builtins.diagnostics.deadnix, + null_ls.builtins.code_actions.shellcheck, + null_ls.builtins.diagnostics.shellcheck, + null_ls.builtins.formatting.shellharden, + null_ls.builtins.formatting.alejandra, + null_ls.builtins.formatting.nixfmt, + null_ls.builtins.formatting.shfmt, + null_ls.builtins.completion.luasnip, + null_ls.builtins.formatting.latexindent.with({ timeout_ms = 10000 }) + } +}) diff --git a/home/misc/nvim-cmp.lua b/home/misc/nvim-cmp.lua new file mode 100644 index 00000000..8be24fbf --- /dev/null +++ b/home/misc/nvim-cmp.lua @@ -0,0 +1,120 @@ +--------------- +-- About cmp -- +--------------- +local cmp_status_ok, cmp = pcall(require, "cmp") +if not cmp_status_ok then + return +end +local snip_status_ok, luasnip = pcall(require, "luasnip") +if not snip_status_ok then + return +end + +require("luasnip/loaders/from_vscode").lazy_load() + + +-- https://github.com/hrsh7th/nvim-cmp/wiki/Language-Server-Specific-Samples +vim.opt.completeopt = "menu,menuone,noinsert,noselect" + +local kind_icons = { + Text = "󰊄", + Method = "", + Function = "󰡱", + Constructor = "", + Field = "", + Variable = "󱀍", + Class = "", + Interface = "", + Module = "󰕳", + Property = "", + Unit = "", + Value = "", + Enum = "", + Keyword = "", + Snippet = "", + Color = "", + File = "", + Reference = "", + Folder = "", + EnumMember = "", + Constant = "", + Struct = "", + Event = "", + Operator = "", + TypeParameter = "", + } + -- find more here: https://www.nerdfonts.com/cheat-sheet ("cod-symbol_") + +cmp.setup({ + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) -- For `luasnip` users. + end, + }, + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping.scroll_docs(-4), -- Up + [""] = cmp.mapping.scroll_docs(4), -- Down + -- C-b (back) C-f (forward) for snippet placeholder navigation. + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.confirm({ + behavior = cmp.ConfirmBehavior.Replace, + select = true, + }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + else + fallback() + end + end, { "i", "s" }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { "i", "s" }), + }), + formatting = { + fields = { "kind", "abbr", "menu" }, + format = function(entry, vim_item) + vim_item.kind = string.format("%s", kind_icons[vim_item.kind]) + vim_item.menu = ({ + nvim_lsp = 'λ', + luasnip = '⋗', + buffer = 'Ω', + path = '💻', + nvim_lua = "[NVIM_LUA]", + })[entry.source.name] + return vim_item + end, + }, + sources = { + { name = 'path' }, + { name = 'nvim_lsp', keyword_length = 3 }, + { name = 'buffer', keyword_length = 3 }, + { name = 'luasnip', keyword_length = 2 }, + { name = 'omni', keyword_length = 3 }, + { name = 'nvim_lua' }, -- nvim_lua ? + { name = 'emoji', insert = true } + }, + confirm_opts = { + behavior = cmp.ConfirmBehavior.Replace, + select = false, + }, + window = { + completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + }, + experimental = { + ghost_text = false, + native_menu = false, + }, +}) + + +--require("luasnip.loaders.from_lua").lazy_load() diff --git a/home/misc/nvim-dap-ui.lua b/home/misc/nvim-dap-ui.lua new file mode 100644 index 00000000..d3946721 --- /dev/null +++ b/home/misc/nvim-dap-ui.lua @@ -0,0 +1,11 @@ +local dap, dapui = require("dap"), require("dapui") +dap.listeners.after.event_initialized["dapui_config"] = function() + dapui.open() +end +dap.listeners.before.event_terminated["dapui_config"] = function() + dapui.close() +end +dap.listeners.before.event_exited["dapui_config"] = function() + dapui.close() +end +dapui.setup() diff --git a/home/misc/nvim-dap.lua b/home/misc/nvim-dap.lua new file mode 100644 index 00000000..f01fc4a7 --- /dev/null +++ b/home/misc/nvim-dap.lua @@ -0,0 +1,19 @@ +local dap = require('dap') +dap.adapters.python = { + type = 'executable'; + command = os.getenv("VIRTUAL_ENV") .. "/bin/python"; + args = { '-m', 'debugpy.adapter' }; +} + +dap.configurations.python = { + { + -- The first three options are required by nvim-dap + type = 'python'; -- the type here established the link to the adapter definition: `dap.adapters.python` + request = 'launch'; + name = "Launch file"; + + -- Options below are for debugpy, see https://github.com/microsoft/debugpy/wiki/Debug-configuration-settings for supported options + + program = "${file}"; -- This configuration will launch the current file if used. + }, +} diff --git a/home/misc/nvim-lspconfig.lua b/home/misc/nvim-lspconfig.lua new file mode 100644 index 00000000..2915cd76 --- /dev/null +++ b/home/misc/nvim-lspconfig.lua @@ -0,0 +1,102 @@ +--------------------- +-- About lspconfig -- +--------------------- + +local nvim_lsp = require("lspconfig") + +-- Global mappings. + -- See `:help vim.diagnostic.*` for documentation on any of the below functions + vim.keymap.set("n", "e", vim.diagnostic.open_float) + vim.keymap.set("n", "[d", vim.diagnostic.goto_prev) + vim.keymap.set("n", "]d", vim.diagnostic.goto_next) + vim.keymap.set("n", "q", vim.diagnostic.setloclist) + +-- Use LspAttach autocommand to only map the following keys +-- after the language server attaches to the current buffer +vim.api.nvim_create_autocmd("LspAttach", { + group = vim.api.nvim_create_augroup("UserLspConfig", {}), + callback = function(ev) + -- Manual, triggered completion is provided by Nvim's builtin omnifunc. For autocompletion, a general purpose autocompletion plugin(.i.e nvim-cmp) is required + -- Enable completion triggered by + vim.bo[ev.buf].omnifunc = "v:lua.vim.lsp.omnifunc" + + -- Buffer local mappings. + -- See `:help vim.lsp.*` for documentation on any of the below functions + local opts = { buffer = ev.buf } + vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts) + vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) + vim.keymap.set("n", "K", vim.lsp.buf.hover, opts) + vim.keymap.set("n", "gi", vim.lsp.buf.implementation, opts) + vim.keymap.set("n", "", vim.lsp.buf.signature_help, opts) + vim.keymap.set("n", "wa", vim.lsp.buf.add_workspace_folder, opts) + vim.keymap.set("n", "wr", vim.lsp.buf.remove_workspace_folder, opts) + vim.keymap.set("n", "wl", function() + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) + end, opts) + vim.keymap.set("n", "D", vim.lsp.buf.type_definition, opts) + vim.keymap.set("n", "rn", vim.lsp.buf.rename, opts) + vim.keymap.set({ "n", "v" }, "ca", vim.lsp.buf.code_action, opts) + vim.keymap.set("n", "gr", vim.lsp.buf.references, opts) + vim.keymap.set("n", "f", function() + vim.lsp.buf.format({ async = true }) + end, opts) + end, + }) + +local jsonls_capabilities = vim.lsp.protocol.make_client_capabilities() +jsonls_capabilities.textDocument.completion.completionItem.snippetSupport = true + +-- Use a loop to conveniently call 'setup' on multiple servers and +-- map buffer local keybindings when the language server attaches +local servers = { 'hls', 'nixd', 'lua_ls', 'texlab', 'jsonls', 'vimls', 'bashls', 'yamlls', 'ltex' } -- comma-separated list +for _, lsp in pairs(servers) do + require('lspconfig')[lsp].setup { + settings = { + -- ++++++ https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#sumneko_lua begin + -- ++++++ https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#sumneko_lua end + Lua = { + runtime = { + -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) + version = 'LuaJIT', + }, + diagnostics = { + -- Get the language server to recognize the `vim` global + globals = { 'vim' }, + }, + workspace = { + -- Make the server aware of Neovim runtime files + library = vim.api.nvim_get_runtime_file("", true), + }, + -- Do not send telemetry data containing a randomized but unique identifier + telemetry = { + enable = false, + }, + }, + }, + on_attach = function(client, bufnr) + on_attach(client, bufnr) + -- the on_attach callback from my null-ls config above is attached here + -- Try :w with `debug = true` set in null-ls.setup then :NullLsLog and skim + -- for `/command "alejandra` (the formatter I configured null-ls with for nix files) + end, + flags = { + -- This will be the default in neovim 0.7+ + debounce_text_changes = 150, + } + } +end + +require "lspconfig".jsonls.setup { + cmd = {"json-languageserver", "--stdio"}, + capabilities = jsonls_capabilities, + filetypes = {"json", "jsonc"}, + root_dir = function() + return vim.loop.cwd() + end, + on_attach = on_attach, +} + +-- in case something is missing try https://github.com/mfussenegger/nvim-jdtls +require'lspconfig'.jdtls.setup{ cmd = {'jdt-language-server', '-data', '/tmp'} } + +-- require'lspconfig'.nil_ls.setup { settings = { ['nil'] = { formatting = { command = { "nix fmt" } } } } } diff --git a/home/misc/nvim-osc52.lua b/home/misc/nvim-osc52.lua new file mode 100644 index 00000000..805804c1 --- /dev/null +++ b/home/misc/nvim-osc52.lua @@ -0,0 +1,33 @@ +-- osc52 copy function - https://github.com/ojroques/nvim-osc52/blob/27b922a/README.md#advanced-usages +function copy() + if vim.v.event.operator == 'y' and vim.v.event.regname == 'c' then + require('osc52').copy_register('c') + end +end + +vim.api.nvim_create_autocmd('TextYankPost', {callback = copy}) + +-- nvim-osc52 clipboard provider - https://github.com/ojroques/nvim-osc52/blob/27b922a/README.md#using-nvim-osc52-as-clipboard-provider +local function copy(lines, _) + require('osc52').copy(table.concat(lines, '\n')) +end + +local function paste() + return {vim.fn.split(vim.fn.getreg(''), '\n'), vim.fn.getregtype('')} +end + +vim.g.clipboard = { + name = 'osc52', + copy = {['+'] = copy, ['*'] = copy}, + paste = {['+'] = paste, ['*'] = paste}, +} + +-- Now the '+' register will copy to system clipboard using OSC52 +vim.keymap.set('n', 'c', '"+y') +vim.keymap.set('n', 'cc', '"+yy') + +-- osc52 keymap - https://github.com/ojroques/nvim-osc52/blob/27b922a/README.md#usages +vim.keymap.set("n", "c", require("osc52").copy_operator, {expr = true}) +vim.keymap.set("n", "cc", "c_", {remap = true}) +vim.keymap.set("x", "c", require("osc52").copy_visual) + diff --git a/home/misc/nvim-treesitter-context.lua b/home/misc/nvim-treesitter-context.lua new file mode 100644 index 00000000..534574f7 --- /dev/null +++ b/home/misc/nvim-treesitter-context.lua @@ -0,0 +1 @@ +require'treesitter-context'.setup() diff --git a/home/misc/nvim-treesitter.lua b/home/misc/nvim-treesitter.lua new file mode 100644 index 00000000..a8699d36 --- /dev/null +++ b/home/misc/nvim-treesitter.lua @@ -0,0 +1,16 @@ +local vim = vim +local opt = vim.opt + +opt.foldmethod = "expr" +opt.foldexpr = "nvim_treesitter#foldexpr()" + +require'nvim-treesitter.configs'.setup { + highlight = { + enable = true, + -- Setting this to true will run `:h syntax` and tree-sitter at the same time. + -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). + -- Using this option may slow down your editor, and you may see some duplicate highlights. + -- Instead of true it can also be a list of languages + additional_vim_regex_highlighting = false, + }, +} diff --git a/home/misc/nvim-wsl-clipboard.lua b/home/misc/nvim-wsl-clipboard.lua new file mode 100644 index 00000000..807f07eb --- /dev/null +++ b/home/misc/nvim-wsl-clipboard.lua @@ -0,0 +1,16 @@ +local on_wsl = vim.loop.os_uname().release:match 'WSL' + +if on_wsl then +vim.g.clipboard = { + name = 'WslClipboard', + copy = { + ["+"] = {'clip.exe'}, + ["*"] = {'clip.exe'}, + }, + paste = { + ["+"] = {'powershell.exe', '-c', '[Console]::Out.Write($(Get-Clipboard -Raw).tostring().replace("`r", ""))'}, + ["*"] = {'powershell.exe', '-c', '[Console]::Out.Write($(Get-Clipboard -Raw).tostring().replace("`r", ""))'}, + }, + cache_enabled = false, +} +end diff --git a/home/misc/sdks.nix b/home/misc/sdks.nix index 86d1e2c6..0957cf01 100644 --- a/home/misc/sdks.nix +++ b/home/misc/sdks.nix @@ -29,7 +29,7 @@ in default = { }; example = { "link-name" = pkgs.python3; }; description = '' - Links to generate in ~/.sdks directory. + Links to generate in `~/.sdks` directory. ''; }; }; diff --git a/home/misc/statusline-action-hints.lua b/home/misc/statusline-action-hints.lua new file mode 100644 index 00000000..4c6310c8 --- /dev/null +++ b/home/misc/statusline-action-hints.lua @@ -0,0 +1,5 @@ +require('lualine').setup { + sections = { + lualine_x = { require("statusline-action-hints").statusline }, + } +} diff --git a/home/misc/telescope-nvim.lua b/home/misc/telescope-nvim.lua new file mode 100644 index 00000000..c55f118e --- /dev/null +++ b/home/misc/telescope-nvim.lua @@ -0,0 +1,5 @@ +local builtin = require('telescope.builtin') +vim.keymap.set('n', 'ff', builtin.find_files, {}) +vim.keymap.set('n', 'fg', builtin.live_grep, {}) +vim.keymap.set('n', 'fb', builtin.buffers, {}) +vim.keymap.set('n', 'fh', builtin.help_tags, {}) diff --git a/home/misc/trouble-nvim.lua b/home/misc/trouble-nvim.lua new file mode 100644 index 00000000..10f85710 --- /dev/null +++ b/home/misc/trouble-nvim.lua @@ -0,0 +1,17 @@ +-- trouble.nvim configuration +-- ++++++++++++++++++++ https://github.com/folke/trouble.nvim/#setup +require("trouble").setup({ + -- settings without a patched font or icons + icons = false, + fold_open = "v", -- icon used for open folds + fold_closed = ">", -- icon used for closed folds + indent_lines = false, -- add an indent guide below the fold icons + signs = { + -- icons / text used for a diagnostic + error = "error", + warning = "warn", + hint = "hint", + information = "info" + }, + use_diagnostic_signs = false -- enabling this will use the signs defined in your lsp client +}) diff --git a/home/misc/util-bins/default.nix b/home/misc/util-bins/default.nix index 235b6a4d..481492ef 100644 --- a/home/misc/util-bins/default.nix +++ b/home/misc/util-bins/default.nix @@ -49,6 +49,13 @@ in (with pkgs; [ age git gnugrep gnused nvd ]) { _doNotClearPath = true; } ) + + (config.lib.custom.mkScript + "kvm_display_handler_layout" + ./kvm_display_handler_layout.sh + (with pkgs; [ xorg.xrandr ]) + { _doNotClearPath = true; } + ) ]; }; diff --git a/home/misc/util-bins/kvm_display_handler_layout.sh b/home/misc/util-bins/kvm_display_handler_layout.sh new file mode 100644 index 00000000..d9f19908 --- /dev/null +++ b/home/misc/util-bins/kvm_display_handler_layout.sh @@ -0,0 +1,2 @@ +source @bashLib@ +xrandr --output eDP-1 --mode 2880x1620_59.96 --pos 1920x0 --rotate normal --output VGA-1 --primary --mode 1920x1080 --pos 0x0 --rotate normal --output DP-1 --off --output HDMI-1 --off --output DP-2 --off --output HDMI-2 --off diff --git a/home/misc/util-bins/system-update.sh b/home/misc/util-bins/system-update.sh index 3c9e7295..3c5dd8b8 100644 --- a/home/misc/util-bins/system-update.sh +++ b/home/misc/util-bins/system-update.sh @@ -82,17 +82,17 @@ fi if [[ "${USER}" == "nix-on-droid" ]] && _available nix-on-droid; then _log "nix" "build nix-on-droid configuration" - nix-on-droid build --flake "${nix_config}#oneplus5" + nix-on-droid build --flake "${nix_config}#sams9" _show_result_diff "/nix/var/nix/profiles/nix-on-droid" _log "nix" "switch nix-on-droid configuration" - nix-on-droid switch --flake "${nix_config}#oneplus5" + nix-on-droid switch --flake "${nix_config}#sams9" fi if ! _is_nixos && _available home-manager; then _log "nix" "build home-manager configuration" home-manager build --flake "${nix_config}" - _show_result_diff "/nix/var/nix/profiles/per-user/${USER}/home-manager" + _show_result_diff "/home/${USER}/.local/state/nix/profiles/home-manager" _log "nix" "switch home-manager configuration" home-manager switch --flake "${nix_config}" -b hm-bak @@ -133,10 +133,10 @@ fi if ! _has_unit_enabled "nix-gc.timer"; then _log "nix" "nix-collect-garbage" - "${sudo_for_cleanup}" nix-collect-garbage --delete-older-than 14d 2> /dev/null + ${sudo_for_cleanup} nix-collect-garbage --delete-older-than 14d 2> /dev/null fi if ! _has_unit_enabled "nix-optimise.timer" && [[ "${USER}" != "nix-on-droid" ]]; then - _log "nix" "nix-store --optimise" - "${sudo_for_cleanup}" nix-store --optimise + _log "nix" "nix store optimise" + ${sudo_for_cleanup} nix store optimise fi diff --git a/home/misc/work.nix b/home/misc/work.nix index b313d870..40189bc5 100644 --- a/home/misc/work.nix +++ b/home/misc/work.nix @@ -21,15 +21,15 @@ in enable = mkEnableOption "work related config"; directory = mkOption { - type = types.nullOr types.string; + type = types.nullOr types.str; default = null; description = '' - Directory in ~/projects where git projects are saved. + Directory in `~/projects` where git projects are saved. ''; }; mailAddress = mkOption { - type = types.nullOr types.string; + type = types.nullOr types.str; default = null; description = '' Work related mail address (used for git config). diff --git a/home/openbox/rc.xml b/home/openbox/rc.xml new file mode 100644 index 00000000..7b6a4cbc --- /dev/null +++ b/home/openbox/rc.xml @@ -0,0 +1,750 @@ + + + + + + + + 10 + 20 + + + + yes + + no + + yes + + no + + 200 + + no + + + + + Smart + +
yes
+ + Primary + + 1 + +
+ + + Clearlooks + NLIMC + + yes + yes + + sans + 8 + + bold + + normal + + + + sans + 8 + + bold + + normal + + + + sans + 9 + + normal + + normal + + + + sans + 9 + + normal + + normal + + + + sans + 9 + + bold + + normal + + + + sans + 9 + + bold + + normal + + + + + + + 4 + 1 + + + + 875 + + + + + yes + Nonpixel + + Center + + + + + 10 + + 10 + + + + + + + 0 + 0 + 0 + 0 + + + + TopLeft + + 0 + 0 + no + Above + + Vertical + + no + 300 + + 300 + + Middle + + + + + C-g + + + leftno + + + rightno + + + upno + + + downno + + + leftno + + + rightno + + + upno + + + downno + + + 1 + + + 2 + + + 3 + + + 4 + + + + + + + + + + + + + + + + client-menu + + + + + + + + + + + + + + + + + + + + + + + + yesyes + + + + + + + + + + + + right + + + + + left + + + + + up + + + + + down + + + + + + + + true + Konqueror + + kfmclient openProfile filemanagement + + + + + + + + xset s activate + + + + + + 1 + + 500 + + 400 + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + previous + + + next + + + previous + + + next + + + previous + + + next + + + + + + + + + + + + + + no + + + + + + + + + + + yes + + + + + + + + + + + + + + + + + + + + + + + + + client-menu + + + + + + top + + + + + + left + + + + + + right + + + + + + bottom + + + + + + client-menu + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + client-menu + + + + + client-menu + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + vertical + + + horizontal + + + + + + + + + + + + + + + + + previous + + + next + + + + previous + + + next + + + previous + + + next + + + + + + + + + + + + + + + + client-list-combined-menu + + + root-menu + + + + + + previous + + + next + + + previous + + + next + + + + + + + + + menu.xml + 200 + + no + + 100 + + 400 + + yes + + yes + + + + + + + +
diff --git a/home/programs/atom.nix b/home/programs/atom.nix deleted file mode 100644 index 967efc63..00000000 --- a/home/programs/atom.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - mkOption - types - ; - - cfg = config.custom.programs.atom; -in - -{ - - ###### interface - - options = { - - custom.programs.atom = { - enable = mkEnableOption "atom"; - - packages = mkOption { - type = types.listOf types.package; - default = [ ]; - description = "List of packages that should be put on PATH for atom."; - }; - }; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom.programs.atom.packages = [ - pkgs.python3Packages.sqlparse - ]; - - home.packages = [ - (config.lib.custom.wrapProgram { - inherit (cfg) packages; - name = "atom"; - source = pkgs.atom; - path = "/bin/atom"; - }) - ]; - - }; - -} diff --git a/home/programs/bash.nix b/home/programs/bash.nix index 88ac66bb..196421b7 100644 --- a/home/programs/bash.nix +++ b/home/programs/bash.nix @@ -29,14 +29,18 @@ in programs.bash = { enable = true; - historySize = 1000; - historyFileSize = 2000; - historyControl = [ "ignorespace" "ignoredups" ]; + historySize = 10000000; + historyFileSize = 20000000; + historyControl = [ "erasedups" "ignorespace" "ignoredups" ]; + historyIgnore = [ "ls" "cd" "exit" ]; # mkBefore is needed because hashing needs to be enabled early in the config initExtra = mkBefore '' - # enable hashing - set -h + # enable hashing + set -h + + # curr. https://github.com/nix-community/home-manager/blob/6e1eff9aac0e8d84bda7f2d60ba6108eea9b7e79/modules/programs/bash.nix#L211 - initExtra should (?) run before the hm-session-vars.sh is sourced so I make sure history expansion is suspended by then. Could reenable it at a certain phase again as well, is it guaranteed, that nix closures bodies are run in order ? + # set +H ''; }; diff --git a/home/programs/emacs-nano.nix b/home/programs/emacs-nano.nix new file mode 100644 index 00000000..0e39e810 --- /dev/null +++ b/home/programs/emacs-nano.nix @@ -0,0 +1,117 @@ +# TODO Rework +{ config, lib, pkgs, rootPath, inputs, ... }: + +let + inherit (lib) + mkEnableOption + mkIf + mkOption + optionalAttrs + types + ; + inherit (pkgs.stdenv.hostPlatform) system; + inherit (pkgs.stdenv) isLinux isAarch64; + + emacs = + if isLinux && isAarch64 + then inputs.emacs-overlay-cached.packages.${system}.emacs-unstable-nox + else + inputs.emacs-overlay.packages.${system}.emacs-unstable /* disabled for now as it causes rebuilds obviously*/ # .override ({ + # withImageMagick = true; + # # https://github.com/NixOS/nixpkgs/blob/90fba39/pkgs/applications/editors/emacs/generic.nix#L319 + # withPgtk = true; + # withGTK3 = true; + #}) + ; + + inherit (inputs.emacs-overlay.lib.${system}) emacsWithPackagesFromUsePackage; + + emacs-nano = (pkgs.emacsPackages.trivialBuild rec { + pname = "emacs-nano"; + version = "0"; + src = "${inputs.nano-emacs}"; + phases = [ "unpackPhase" "installPhase" ]; + installPhase = '' + ls -la . + target=$out/share/emacs/site-lisp/$pname/ + mkdir -p "$target" + cp *.el "$target" + ''; + meta = with lib; { + description = "GNU Emacs / N Λ N O is a set of configuration files for GNU Emacs such as to provide a nice and consistent look and feel."; + }; + }); + + my-default-el = pkgs.emacsPackages.trivialBuild { + pname = "default.el"; + version = "0"; + src = pkgs.writeText "default.el" '' + (require 'nano) + (nano-faces) + (nano-theme) + (nano-theme-set-light) + (nano-theme-set-dark) + (require 'nano-help) + (require 'nano-splash) + (nano-modeline) + ''; + preferLocalBuild = true; + allowSubstitutes = false; + buildPhase = ""; + }; + + cfg = config.custom.programs.emacs-nano; +in + +{ + + # TODO research https://github.com/rougier/nano-emacs and nixvim in this flake for how to make many flavours of an editor @once + + ###### interface + + options = { + + custom.programs.emacs-nano = { + + enable = mkEnableOption "emacs config specialised for emacs-nano"; + + finalPackage = mkOption { + type = types.nullOr types.package; + default = null; + internal = true; + description = '' + Package of final emacs-nano. + ''; + }; + + }; + + }; + + + ###### implementation + + config = mkIf cfg.enable { + # Or as in https://github.com/szermatt/mistty/issues/14 + custom.programs.emacs-nano.finalPackage = (emacsWithPackagesFromUsePackage { + alwaysEnsure = true; + package = emacs; + extraEmacsPackages = epkgs: with epkgs; [ + bind-key # FIXME not redundant ? Is in https://github.com/jwiegley/use-package + use-package + emacs-nano + my-default-el + ]; + config = ""; + }); + + custom.programs.shell.shellAliases = { } // optionalAttrs (isLinux && isAarch64) { emacs-nano = "emacs-nano -nw"; }; + + home.packages = with pkgs; [ + (pkgs.runCommand "emacs-nano" { nativeBuildInputs = [ pkgs.makeWrapper ]; } '' + mkdir -p $out/bin + makeWrapper ${config.custom.programs.emacs-nano.finalPackage.outPath}/bin/emacs $out/bin/emacs-nano --argv0 emacs + '') + ]; + }; +} diff --git a/home/programs/emacs-novelist.nix b/home/programs/emacs-novelist.nix new file mode 100644 index 00000000..e9b3da9a --- /dev/null +++ b/home/programs/emacs-novelist.nix @@ -0,0 +1,168 @@ +# TODO Rework +{ config, lib, pkgs, rootPath, inputs, ... }: + +let + inherit (lib) + mkEnableOption + mkIf + mkOption + optionalAttrs + types + ; + inherit (pkgs.stdenv.hostPlatform) system; + inherit (pkgs.stdenv) isLinux isAarch64; + + emacs = + if isLinux && isAarch64 + then inputs.emacs-overlay-cached.packages.${system}.emacs-unstable-nox + else + inputs.emacs-overlay.packages.${system}.emacs-unstable /* disabled for now as it causes rebuilds obviously*/ # .override ({ + # withImageMagick = true; + # # https://github.com/NixOS/nixpkgs/blob/90fba39/pkgs/applications/editors/emacs/generic.nix#L319 + # withPgtk = true; + # withGTK3 = true; + #}) + ; + + emacsWithPackagesFromUsePackage = + if isLinux && isAarch64 + then inputs.emacs-overlay-cached.lib.${system}.emacsWithPackagesFromUsePackage + else inputs.emacs-overlay.lib.${system}.emacsWithPackagesFromUsePackage + ; + + org-novelist = (pkgs.emacsPackages.trivialBuild rec { + pname = "org-novelist"; + version = "0"; + src = "${inputs.org-novelist}"; + installPhase = '' + target=$out/share/emacs/site-lisp/$pname/${pname}.el + mkdir -p "$(dirname "$target")" + cp *.el "$target" + ''; + meta = with lib; { + description = "Org Novelist is a system for writing novel-length fiction using Emacs Org mode."; + }; + }); + + # https://raw.githubusercontent.com/hrs/sensible-defaults.el/main/sensible-defaults.el + sensible-defaults = (pkgs.emacsPackages.trivialBuild rec { + pname = "sensible-defaults"; + version = "0"; + src = "${inputs.sensible-defaults.outPath}"; + phases = [ "installPhase" ]; + installPhase = '' + target=$out/share/emacs/site-lisp/$pname/${pname}.el + mkdir -p "$(dirname "$target")" + cp "$src" "$target" + ''; + meta = with lib; { + description = "A simple, modular collection of better Emacs default settings."; + }; + }); + sane-defaults = (pkgs.emacsPackages.trivialBuild rec { + pname = "sane-defaults"; + version = "0"; + src = "${inputs.sane-defaults.outPath}"; + phases = [ "installPhase" ]; + installPhase = '' + target=$out/share/emacs/site-lisp/$pname/${pname}.el + mkdir -p "$(dirname "$target")" + cp "$src" "$target" + ''; + meta = with lib; { + description = "An ever-changing set of emacs settings.."; + }; + }); + my-default-el = pkgs.emacsPackages.trivialBuild { + pname = "default.el"; + version = "0"; + src = pkgs.writeText "default.el" '' + (add-to-list 'load-path "${inputs.sensible-defaults.outPath}") + (add-to-list 'load-path "${inputs.sane-defaults.outPath}") + ${builtins.readFile "${rootPath}/home/misc/minimal.el"} + ;; for explanation see https://emacs.stackexchange.com/questions/51989/how-to-truncate-lines-by-default and from there also + ;; https://stackoverflow.com/questions/950340/how-do-you-activate-line-wrapping-in-emacs/950406#950406 + ;; You can explicitly enable line truncation for a particular buffer with the command C-x x t ( toggle-truncate-lines ). This works by locally changing the variable truncate-lines . If that variable is non- nil , long lines are truncated; if it is nil , they are continued onto multiple screen lines. + (set-default 'truncate-lines nil) + (set-default 'truncate-partial-width-windows nil) + (setq auto-hscroll-mode 'current-line) + ;; most important: + ;; https://orgmode.org/worg/doc.html#org-startup-truncated + (set-default 'org-startup-truncated nil) + ;; TODO [F12 is impractial] Add F12 to toggle line wrap + ;;(global-set-key (kbd "") 'toggle-truncate-lines) + (use-package moe-theme + :init + + (load-theme 'moe-light t)) + ''; + preferLocalBuild = true; + allowSubstitutes = false; + buildPhase = ""; + }; + + cfg = config.custom.programs.emacs-novelist; +in + +{ + + # TODO research https://github.com/rougier/nano-emacs and nixvim in this flake for how to make many flavours of an editor @once + + ###### interface + + options = { + + custom.programs.emacs-novelist = { + + enable = mkEnableOption "emacs config specialised for org-novelist"; + + finalPackage = mkOption { + type = types.nullOr types.package; + default = null; + internal = true; + description = '' + Package of final emacs-novelist. + ''; + }; + + }; + + }; + + + ###### implementation + + config = mkIf cfg.enable { + # Or as in https://github.com/szermatt/mistty/issues/14 + custom.programs.emacs-novelist.finalPackage = (emacsWithPackagesFromUsePackage { + alwaysEnsure = true; + package = emacs; + extraEmacsPackages = epkgs: with epkgs; [ + my-default-el + moe-theme + org-novelist + better-defaults + bind-key # FIXME not redundant ? Is in https://github.com/jwiegley/use-package + use-package + writeroom-mode + which-key + # https://cestlaz.github.io/posts/using-emacs-16-undo-tree/ + undo-tree + smooth-scrolling + sensible-defaults + sane-defaults + jinx + ]; + config = ""; + }); + + custom.programs.shell.shellAliases = { } // optionalAttrs (isLinux && isAarch64) { emacs-novelist = "emacs-novelist -nw"; }; + + home.packages = with pkgs; [ + (pkgs.runCommand "emacs-novelist" { nativeBuildInputs = [ pkgs.makeWrapper ]; } '' + mkdir -p $out/bin + makeWrapper ${config.custom.programs.emacs-novelist.finalPackage.outPath}/bin/emacs $out/bin/emacs-novelist --argv0 emacs + '') + ]; + }; +} diff --git a/home/programs/emacs.nix b/home/programs/emacs.nix new file mode 100644 index 00000000..3c482dfe --- /dev/null +++ b/home/programs/emacs.nix @@ -0,0 +1,194 @@ +{ config, lib, pkgs, rootPath, inputs, ... }: + +let + inherit (lib) + mkEnableOption + mkIf + mkOption + optionalAttrs + optionals + optionalString + types + ; + inherit (pkgs.stdenv.hostPlatform) system; + inherit (pkgs.stdenv) isLinux isAarch64 isx86_64; + + emacs = + if isLinux && isAarch64 + then inputs.emacs-overlay-cached.packages.${system}.emacs-unstable-nox + else + inputs.emacs-overlay.packages.${system}.emacs-unstable /* disabled for now as it causes rebuilds obviously*/ # .override ({ + # withImageMagick = true; + # # https://github.com/NixOS/nixpkgs/blob/90fba39/pkgs/applications/editors/emacs/generic.nix#L319 + # withPgtk = true; + # withGTK3 = true; + #}) + ; + + cfg = config.custom.programs.emacs; +in + +{ + + # TODO research https://github.com/rougier/nano-emacs and nixvim in this flake for how to make many flavours of an editor @once + + ###### interface + + options = { + + custom.programs.emacs = { + + enable = mkEnableOption "emacs config"; + + finalPackage = mkOption { + type = types.nullOr types.package; + default = null; + internal = true; + description = '' + Package of final emacs. + ''; + }; + + }; + + }; + + + ###### implementation + + config = mkIf cfg.enable { + + # TODO Or better for later refs: To built emacs when using the home-manager module as configured here, I would do: + # nix build --json --accept-flake-config --impure --print-build-logs .#nixOnDroidConfigurations.sams9.config.home-manager.config.programs.emacs.finalPackage | jq -r '.[].outputs | to_entries[].value' | cachix push 573-bc + # See also https://github.com/nix-community/home-manager/blob/19c6a40/modules/programs/emacs.nix#L90 + # Does make sense now: + # This is the goal - WITH packages + # nix-repl> :p nixOnDroidConfigurations.sams9.config.home-manager.config.custom.programs.emacs.finalPackage.drvPath + # "/nix/store/aiibhwmjwki6w7kfzpqfb0a9dxxqdsgs-emacs-unstable-with-packages-29.1-nox.drv" + # This is just the bare emacs - WITHOUT packages + # nix-repl> :p nixOnDroidConfigurations.sams9.pkgs.emacs.drvPath + # "/nix/store/nanbgjyp8ys1sppyjbz6ksxql13ljgvr-emacs-unstable-29.1-nox.drv" + # This could be used as well to cache, it comes via the inherit ... finalPackage + # nix-repl> :p nixOnDroidConfigurations.sams9.config.home-manager.config.programs.emacs.finalPackage.drvPath + # "/nix/store/aiibhwmjwki6w7kfzpqfb0a9dxxqdsgs-emacs-unstable-with-packages-29.1-nox.drv" + custom.programs.emacs = { inherit (config.programs.emacs) finalPackage; }; + + custom.programs.shell.shellAliases = { } // optionalAttrs (isLinux && isAarch64) { emacs = "emacs -nw"; }; + + home.packages = with pkgs; [ + # https://www.emacswiki.org/emacs/EmacsSvg; not working when emacs -nw + librsvg.out + # DONT # https://github.com/nix-community/home-manager/issues/3113 + #dconf + #emacsPackages.git-annex + ]; + + programs.emacs = { + enable = true; + + package = emacs; #.pkgs.withPackages(epkgs: with epkgs; [mistty]); # pkgs.emacs; only when via overlay + + # .text = pkgs.lib.mkDefault( pkgs.lib.mkAfter "# hi" ); + # (load "~/.emacs.d/sanemacs.el" nil t) + #extraConfig = builtins.readFile inputs."sanemacs.el".outPath; # builtins.readFile "${rootPath}/home/misc/emacs.el"; + extraConfig = '' + (add-to-list 'load-path "${inputs.sensible-defaults.outPath}") + (add-to-list 'load-path "${inputs.sane-defaults.outPath}") + ${builtins.readFile "${rootPath}/home/misc/minimal.el"} + '' + (optionalString (isLinux && isx86_64) '' + ${builtins.readFile "${rootPath}/home/misc/emacs.el"} + '') + '' + ;; for explanation see https://emacs.stackexchange.com/questions/51989/how-to-truncate-lines-by-default and from there also + ;; https://stackoverflow.com/questions/950340/how-do-you-activate-line-wrapping-in-emacs/950406#950406 + ;; You can explicitly enable line truncation for a particular buffer with the command C-x x t ( toggle-truncate-lines ). This works by locally changing the variable truncate-lines . If that variable is non- nil , long lines are truncated; if it is nil , they are continued onto multiple screen lines. + (set-default 'truncate-lines nil) + (set-default 'truncate-partial-width-windows nil) + (setq auto-hscroll-mode 'current-line) + ;; most important: + ;; https://orgmode.org/worg/doc.html#org-startup-truncated + (set-default 'org-startup-truncated nil) + ;; TODO [F12 is impractial] Add F12 to toggle line wrap + ;;(global-set-key (kbd "") 'toggle-truncate-lines) + ''; + + extraPackages = epkgs: with epkgs; + #(pack emacs.pkgs.melpaPackages) ++ + [ + moe-theme + org-novelist + better-defaults + vterm + bind-key # FIXME not redundant ? Is in https://github.com/jwiegley/use-package + use-package + writeroom-mode + which-key + # https://cestlaz.github.io/posts/using-emacs-16-undo-tree/ + undo-tree + smooth-scrolling + repl-driven-development + sensible-defaults + sane-defaults + ] ++ optionals (isLinux && isx86_64) [ + flymake-hledger + hledger-mode + sqlite3 + keycast + deft + zetteldeft + company-emoji + org-contrib + visual-fill-column + org-bullets + ob-mermaid + magit + git-annex + ]; + + overrides = _self: _super: rec { + org-novelist = (pkgs.emacsPackages.trivialBuild rec { + pname = "org-novelist"; + version = "0"; + src = "${inputs.org-novelist}"; + installPhase = '' + target=$out/share/emacs/site-lisp/$pname/${pname}.el + mkdir -p "$(dirname "$target")" + cp *.el "$target" + ''; + meta = with lib; { + description = "Org Novelist is a system for writing novel-length fiction using Emacs Org mode."; + }; + }); + + # https://raw.githubusercontent.com/hrs/sensible-defaults.el/main/sensible-defaults.el + sensible-defaults = (pkgs.emacsPackages.trivialBuild rec { + pname = "sensible-defaults"; + version = "0"; + src = "${inputs.sensible-defaults.outPath}"; + phases = [ "installPhase" ]; + installPhase = '' + target=$out/share/emacs/site-lisp/$pname/${pname}.el + mkdir -p "$(dirname "$target")" + cp "$src" "$target" + ''; + meta = with lib; { + description = "A simple, modular collection of better Emacs default settings."; + }; + }); + sane-defaults = (pkgs.emacsPackages.trivialBuild rec { + pname = "sane-defaults"; + version = "0"; + src = "${inputs.sane-defaults.outPath}"; + phases = [ "installPhase" ]; + installPhase = '' + target=$out/share/emacs/site-lisp/$pname/${pname}.el + mkdir -p "$(dirname "$target")" + cp "$src" "$target" + ''; + meta = with lib; { + description = "An ever-changing set of emacs settings.."; + }; + }); + }; + }; + }; +} diff --git a/home/programs/git/default.nix b/home/programs/git/default.nix index e1b4f5d2..a5babde9 100644 --- a/home/programs/git/default.nix +++ b/home/programs/git/default.nix @@ -111,13 +111,16 @@ in [ pkgs.coreutils pkgs.git ] { } ) + pkgs.lefthook ]; + custom.programs.shell.initExtra = "source ${pkgs.git-issue}/gi-completion.sh"; + programs.git = { enable = true; - userName = "Tobias Happ"; - userEmail = "tobias.happ@gmx.de"; + userName = "Daniel Kahlenberg"; + userEmail = "573@users.noreply.github.com"; ignores = ignoreList; @@ -127,6 +130,7 @@ in bc = "switch --create"; bd = "branch --verbose --delete"; bdd = "branch --verbose -D"; + bug = externGitAlias "${pkgs.git-bug}/bin/git-bug"; ca = "commit -q --branch --status --verbose --amend"; cl = externGitAlias "git clone --recursive --progress"; cm = "commit --branch --status --verbose"; @@ -138,6 +142,8 @@ in dsi = "diff --staged --ignore-all-space"; fe = "fetch --progress"; fm = externGitAlias "git fe --all && git fe --all --tags"; + is = externGitAlias "${pkgs.git-issue}/git-issue.sh"; + issue = "is"; lg = "log --stat"; lp = "log -10 --patch-with-stat"; ma = "merge --abort"; @@ -171,6 +177,7 @@ in mma = "merge origin/master"; rde = "rebase origin/develop"; + res = externGitAlias "git fetch origin && git reset origin/$(git name-rev --name-only HEAD) --hard"; rma = "rebase origin/master"; rup = "rebase upstream/master"; sde = externGitAlias "git switch develop && git rebase origin/develop"; @@ -239,7 +246,7 @@ in core = { compression = 9; eol = "lf"; - editor = "${config.custom.programs.neovim.finalPackage}/bin/nvim"; + editor = "nvim"; # "${config.custom.programs.neovim.finalPackage}/bin/nvim"; hooksPath = toString hooksPath; loosecompression = 9; pager = "${pkgs.less}/bin/less -x1,5"; # set tab width to 4 starting at offset of 1 to cope with diff format @@ -267,7 +274,7 @@ in difftool = { prompt = true; - nvim.cmd = "${config.custom.programs.neovim.finalPackage}/bin/nvim -d \"$LOCAL\" \"$REMOTE\""; + nvim.cmd = "nvim -R -d \"$LOCAL\" \"$REMOTE\""; # "${config.custom.programs.neovim.finalPackage}/bin/nvim -R -d \"$LOCAL\" \"$REMOTE\""; }; fetch = { @@ -301,7 +308,7 @@ in prompt = true; writeToTemp = true; - nvim.cmd = "${config.custom.programs.neovim.finalPackage}/bin/nvim -d \"$LOCAL\" \"$REMOTE\" \"$MERGED\" -c 'wincmd w' -c 'wincmd J'"; + nvim.cmd = "nvim -d \"$LOCAL\" \"$REMOTE\" \"$MERGED\" -c 'wincmd w' -c 'wincmd J'"; # "${config.custom.programs.neovim.finalPackage}/bin/nvim -d \"$LOCAL\" \"$REMOTE\" \"$MERGED\" -c 'wincmd w' -c 'wincmd J'"; }; pack.compression = 9; diff --git a/home/programs/go.nix b/home/programs/go.nix deleted file mode 100644 index 8860ed3f..00000000 --- a/home/programs/go.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - ; - - cfg = config.custom.programs.go; -in - -{ - - ###### interface - - options = { - - custom.programs.go.enable = mkEnableOption "go config"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - home.sessionVariables.GOPATH = "${config.home.homeDirectory}/.go"; - - }; - -} diff --git a/home/programs/hledger.nix b/home/programs/hledger.nix new file mode 100644 index 00000000..2da4d53e --- /dev/null +++ b/home/programs/hledger.nix @@ -0,0 +1,69 @@ +{ config, lib, pkgs, inputs, ... }: + +let + inherit (lib) + mkAfter + mkDefault + mkEnableOption + mkIf + optionals + ; + + inherit (pkgs.stdenv) isLinux isx86_64; + + cfg = config.custom.programs.hledger; +in + +{ + + ###### interface + + options = { + + custom.programs.hledger = { + enable = mkEnableOption "hledger config"; + }; + + }; + + + ###### implementation + + config = mkIf cfg.enable { + + custom.programs = { + shell = { + initExtra = '' + source ${inputs."hledger-completion.bash".outPath}/hledger/shell-completion/hledger-completion.bash + ''; + envExtra = mkDefault ( + mkAfter '' + LEDGER_FILE = "~/finance/2023.journal" + '' + ); + }; + }; + + home = { + packages = [ + (config.lib.custom.wrapProgram { + name = "hledger"; + source = pkgs.hledger; + path = "/bin/hledger"; + editor = pkgs.micro; # TODO replace by nvim when faster + }) + #pkgs.hledger-check-fancyassertions + pkgs.hledger-interest + pkgs.hledger-utils + ] ++ optionals (isLinux && isx86_64) [ + # pkgs.hledger-iadd # DONT on demand can retrieve via nix profile install nixpkgs/d1c3fea7ecbed758168787fe4e4a3157e52bc808#haskellPackages.hledger-iadd, see https://gist.github.com/573/6b02765d71c27edb10c481e4746e7264 + pkgs.hledger-ui + pkgs.hledger-web + # pkgs.hledger-flow # DONT same as hledger-flow above + ]; + sessionPath = [ "${inputs.hledger-bin.outPath}/bin" ]; + }; + + }; + +} diff --git a/home/programs/idea-ultimate.nix b/home/programs/idea-ultimate.nix deleted file mode 100644 index 19c3d6e2..00000000 --- a/home/programs/idea-ultimate.nix +++ /dev/null @@ -1,75 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - mkMerge - mkOption - types - ; - - cfg = config.custom.programs.idea-ultimate; -in - -{ - - ###### interface - - options = { - - custom.programs.idea-ultimate = { - enable = mkEnableOption "idea-ultimate"; - - packages = mkOption { - type = types.listOf types.package; - default = [ ]; - description = "List of packages that should be put on PATH for idea-ultimate."; - }; - }; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom = { - misc.sdks = { - enable = true; - links = mkMerge [ - { inherit (pkgs) jdk11 python37; } - - (mkIf config.custom.programs.go.enable { - go-1-15 = pkgs.go; - }) - ]; - }; - - programs.idea-ultimate.packages = with pkgs; [ - # node - nodejs - - # rust - gcc - - # python - pipenv - ]; - }; - - home.packages = [ - (config.lib.custom.wrapProgram { - inherit (cfg) packages; - name = "idea-ultimate"; - source = pkgs.jetbrains.idea-ultimate; - path = "/bin/idea-ultimate"; - }) - - pkgs.rustup # needs to be globally installed for ide integration - ]; - - }; - -} diff --git a/home/programs/maven/default.nix b/home/programs/maven/default.nix deleted file mode 100644 index 765fbbb5..00000000 --- a/home/programs/maven/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - ; - - cfg = config.custom.programs.maven; -in - -{ - - ###### interface - - options = { - - custom.programs.maven.enable = mkEnableOption "maven config"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom.programs.shell.shellAliases = { - maven = "mvn -U clean package -DskipTests=true -Dmaven.compiler.showDeprecation=true -Dmaven.compiler.showWarnings=true"; - }; - - home.packages = [ - (config.lib.custom.mkScript - "mvn" - ./mvn.sh - [ ] - { _doNotClearPath = true; } - ) - ]; - - }; - -} diff --git a/home/programs/maven/mvn.sh b/home/programs/maven/mvn.sh deleted file mode 100644 index 6bc674b8..00000000 --- a/home/programs/maven/mvn.sh +++ /dev/null @@ -1,9 +0,0 @@ -EXECUTABLE=mvn - -if [[ -f mvnw ]]; then - [[ -x mvnw ]] || chmod -v +x mvnw - - EXECUTABLE=./mvnw -fi - -exec "${EXECUTABLE}" "$@" diff --git a/home/programs/neovim.nix b/home/programs/neovim.nix index 1a028c97..8ec53d75 100644 --- a/home/programs/neovim.nix +++ b/home/programs/neovim.nix @@ -1,182 +1,337 @@ -{ config, lib, pkgs, ... }: +{ config, lib, pkgs, rootPath, inputs, ... }: let inherit (lib) mkEnableOption mkIf + mkMerge mkOption types ; + inherit (pkgs.stdenvNoCC.hostPlatform) system; cfg = config.custom.programs.neovim; - extraConfig = '' - "" Encoding - set encoding=utf-8 - set fileencoding=utf-8 - set fileencodings=utf-8,iso-8859-1 - - - "" Tabs. May be overriten by autocmd rules - set tabstop=4 - set ts=4 - set softtabstop=0 - set shiftwidth=4 - set expandtab - set autoindent - set smartindent - - - "" Enable filetype detection: - filetype on - filetype plugin on - filetype indent on - - autocmd Filetype make set noexpandtab - autocmd Filetype c set expandtab - autocmd Filetype cpp set expandtab - autocmd Filetype tex set tabstop=2 shiftwidth=2 textwidth=119 - - let g:tex_flavor = 'latex' - - - "" Remove trailing whitespaces on save - autocmd BufWritePre * %s/\s\+$//e - - - "" Set tab size to 4 in gitcommit - autocmd FileType gitcommit setl ts=4 - - - "" Directories for swp files - set nobackup - set noswapfile - set nowb - - - "" Automatically update a file if it is changed externally - set autoread - - - "" Visual settings - syntax on - let g:enable_bold_font = 1 - set background=dark - colorscheme hybrid_material - set ruler - set number - set cursorline - set cursorcolumn - set colorcolumn=121 - - "" Enable modelines - set modeline - set modelines=5 - - - "" Airline - set laststatus=2 - - let g:airline_powerline_fonts = 1 - let g:airline_theme='hybrid' - - if !exists('g:airline_symbols') - let g:airline_symbols = {} - endif - - " unicode symbols - let g:airline_left_sep = '»' - let g:airline_left_sep = '▶' - let g:airline_right_sep = '«' - let g:airline_right_sep = '◀' - let g:airline_symbols.linenr = '␊' - let g:airline_symbols.linenr = '␤' - let g:airline_symbols.linenr = '¶' - let g:airline_symbols.branch = '⎇' - let g:airline_symbols.paste = 'ρ' - let g:airline_symbols.paste = 'Þ' - let g:airline_symbols.paste = '∥' - let g:airline_symbols.whitespace = 'Ξ' - - " airline symbols - let g:airline_left_sep = '' - let g:airline_left_alt_sep = '' - let g:airline_right_sep = '' - let g:airline_right_alt_sep = '' - let g:airline_symbols.branch = '' - let g:airline_symbols.readonly = '' - let g:airline_symbols.linenr = '' - - - "" Mappings - let mapleader="," - - " turn off search highlight with ,- - nnoremap :nohlsearch - - :map iso :w ++enc=iso-8859-1 - - - "" Buffers - - " Enable the list of buffers - let g:airline#extensions#tabline#enabled = 1 - - " Show just the filename - let g:airline#extensions#tabline#fnamemod = ':t' - - " This allows buffers to be hidden if you've modified a buffer. - " This is almost a must if you wish to use buffers in this way. - set hidden - - " To open a new empty buffer - " This replaces :tabnew which I used to bind to this mapping - nmap w :enew - - " Move to the next buffer - nmap n :bnext - - " Move to the previous buffer - nmap p :bprevious - - " Close the current buffer and move to the previous one - " This replicates the idea of closing a tab - nmap q :bp bd # - - " Show all open buffers and their status - nmap l :ls - - " Disables formatting in paste mode - set pastetoggle= - - - "" Auto formatter - let g:formatdef_nixpkgs_fmt = '"${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt"' - let g:formatters_nix = ['nixpkgs_fmt'] - - let g:autoformat_autoindent = 0 - let g:autoformat_retab = 0 - - noremap :Autoformat - "au BufWrite * :Autoformat - ''; - - plugins = with pkgs.vimPlugins; [ - vim-airline - vim-airline-themes - vim-hybrid-material - - nerdtree - csv-vim - gitignore-vim - rust-vim - vim-autoformat - vim-json - vim-nix - vim-tmux - vim-toml + # i. e. nix-repl> :p (homeConfigurations."dani@maiziedemacchiato".pkgs.vimUtils.buildVimPluginFrom2Nix { pname = "markid"; src = inputs.markid; version = inputs.markid.rev; }).drvAttrs + # pluggo = name: pkgs.vimUtils.buildVimPlugin { + # pname = name; + # src = inputs."${name}"; + # version = "2023-20-10"; + # }; + + pluggo = pname: inputs.unstable.legacyPackages.${system}.vimUtils.buildVimPlugin { inherit pname; src = inputs."${pname}"; version = "0.1"; }; + /*extraConfig = '' + if filereadable($HOME . "/.vimrc") + source ~/.vimrc + endif + colorscheme lunaperche + luafile ${rootPath}/home/misc/nvim-treesitter.lua + luafile ${rootPath}/home/misc/trouble-nvim.lua + " luafile ${rootPath}/home/misc/null-ls-nvim.lua + luafile ${rootPath}/home/misc/nvim-lspconfig.lua + luafile ${rootPath}/home/misc/nvim-cmp.lua + luafile ${rootPath}/home/misc/luasnip-snippets.lua + luafile ${rootPath}/home/misc/comment-nvim.lua + luafile ${rootPath}/home/misc/indent-blankline.lua + luafile ${rootPath}/home/misc/markid.lua + luafile ${rootPath}/home/misc/nvim-treesitter-context.lua + luafile ${rootPath}/home/misc/nvim-osc52.lua + luafile ${rootPath}/home/misc/telescope-nvim.lua + luafile ${rootPath}/home/misc/duck-nvim.lua + luafile ${rootPath}/home/misc/nvim-dap.lua + luafile ${rootPath}/home/misc/nvim-dap-ui.lua + lua require("nvim-tree").setup() + lua require("which-key").setup() + lua require("lualine").setup() + luafile ${rootPath}/home/misc/nvim-wsl-clipboard.lua + + " let g:languagetool_server_command='$ { pkgs.languagetool }/bin/languagetool-http-server' + lua require("gitsigns").setup() + lua require("stcursorword").setup() + '';*/ + /*plugins = with pkgs.vimPlugins; [ + # https://gitlab.com/rycee/home-manager/blob/de3758e3/modules/programs/neovim.nix#L113 + # null-ls-nvim + plenary-nvim + nvim-lspconfig + trouble-nvim + nvim-cmp + cmp-cmdline + cmp-buffer + cmp-path + cmp_luasnip + cmp-nvim-lsp + cmp-omni + cmp-emoji + cmp-nvim-lua + luasnip + friendly-snippets + lspkind-nvim + # LanguageTool-nvim + #vim-grammarous + comment-nvim + nvim-treesitter-context + indent-blankline-nvim + wildfire-vim + nvim-tree-lua + nnn-vim + asyncrun-vim + vim-table-mode + telescope-nvim + zen-mode-nvim + which-key-nvim vimtex - ]; + haskell-tools-nvim + nvim-osc52 + lualine-nvim + nix-develop-nvim + nvim-dap + nvim-dap-python + neoterm + nvim-gdb + nvim-dap-ui + nvim-treesitter-endwise + orgmode + neorg + pkgs.nvim-treesitter-as-in-manual + #pkgs.nvim-treesitter-selection + vim-illuminate + markid + virtual-types-nvim + gitsigns-nvim + # semantic-highlight-vim + (pluggo "stcursorword") + (pluggo "murmur.lua") + (pluggo "action-hints.nvim") + (pluggo "deferred-clipboard.nvim") + (pluggo "code_runner.nvim") + (pluggo "garbage-day.nvim") + + ] + ;*/ + configuration = { + colorschemes.catppuccin.enable = true; + extraPlugins = with pkgs; [ + vimPlugins.nnn-vim + vimPlugins.trouble-nvim + vimPlugins.vimtex + vimPlugins.vim-jack-in + vimPlugins.neoterm + (pluggo "nvim-dd") + (pluggo "faster-nvim") + # (pluggo "deadcolumn-nvim") + ]; + extraConfigLua = '' + require('dd').setup() + require("trouble").setup({ + -- settings without a patched font or icons + icons = false, + fold_open = "v", -- icon used for open folds + fold_closed = ">", -- icon used for closed folds + indent_lines = false, -- add an indent guide below the fold icons + signs = { + -- icons / text used for a diagnostic + error = "error", + warning = "warn", + hint = "hint", + information = "info" + }, + use_diagnostic_signs = false -- enabling this will use the signs defined in your lsp client + }) + ''; + plugins = { + nvim-osc52.enable = true; + treesitter-context.enable = true; + rainbow-delimiters.enable = true; + which-key.enable = true; + conjure.enable = true; + lsp = { + enable = true; + servers = { + #nixd.enable = true; + ltex.enable = true; + texlab.enable = true; + lua-ls.enable = true; + }; + keymaps.lspBuf = { + "gd" = "definition"; + "gD" = "references"; + "gt" = "type_definition"; + "gi" = "implementation"; + "K" = "hover"; + }; + }; + + treesitter = { + enable = true; + nixGrammars = true; + indent = true; + # DONT see https://discourse.nixos.org/t/conflicts-between-treesitter-withallgrammars-and-builtin-neovim-parsers-lua-c/33536/3 + #grammarPackages = with pkgs.tree-sitter-grammars; [ + # tree-sitter-nix + # tree-sitter-bash + # tree-sitter-yaml + # tree-sitter-json + # tree-sitter-lua + # tree-sitter-latex + # tree-sitter-comment + #]; + }; + gitsigns = { + enable = true; + currentLineBlame = true; + }; + # # Source: https://github.com/hmajid2301/dotfiles/blob/ab7098387426f73c461950c7c0a4f8fb4c843a2c/home-manager/editors/nvim/plugins/coding/cmp.nix + luasnip.enable = true; + cmp-buffer = { enable = true; }; + + cmp-emoji = { enable = true; }; + + cmp-nvim-lsp = { enable = true; }; + + cmp-path = { enable = true; }; + + cmp_luasnip = { enable = true; }; + + + # FIXME Use `plugins.cmp.settings.sources` option + cmp = { + enable = true; + settings = { + sources = [ + { name = "nvim_lsp"; } + { name = "luasnip"; } + { name = "buffer"; } + { name = "nvim_lua"; } + { name = "path"; } + ]; + /*sources = { + __raw = '' + cmp.config.sources({ + { name = 'nvim_lsp' }, + -- { name = 'vsnip' }, + { name = 'luasnip' }, + { name = 'nvim_lua' }, + -- { name = 'ultisnips' }, + -- { name = 'snippy' }, + }, { + { name = 'buffer' }, + { name = 'path' }, + }) + ''; + }; */ + + formatting = { + fields = [ "abbr" "kind" "menu" ]; + format = + # lua + '' + function(_, item) + local icons = { + Namespace = "󰌗", + Text = "󰉿", + Method = "󰆧", + Function = "󰆧", + Constructor = "", + Field = "󰜢", + Variable = "󰀫", + Class = "󰠱", + Interface = "", + Module = "", + Property = "󰜢", + Unit = "󰑭", + Value = "󰎠", + Enum = "", + Keyword = "󰌋", + Snippet = "", + Color = "󰏘", + File = "󰈚", + Reference = "󰈇", + Folder = "󰉋", + EnumMember = "", + Constant = "󰏿", + Struct = "󰙅", + Event = "", + Operator = "󰆕", + TypeParameter = "󰊄", + Table = "", + Object = "󰅩", + Tag = "", + Array = "[]", + Boolean = "", + Number = "", + Null = "󰟢", + String = "󰉿", + Calendar = "", + Watch = "󰥔", + Package = "", + Copilot = "", + Codeium = "", + TabNine = "", + } + local icon = icons[item.kind] or "" + item.kind = string.format("%s %s", icon, item.kind or "") + return item + end + ''; + }; + + # DONE Use `plugins.cmp.settings.snippet.expand` option. + #snippet = {expand = "luasnip";}; + snippet.expand = "function(args) require('luasnip').lsp_expand(args.body) end"; + + window = { + completion = { + winhighlight = "FloatBorder:CmpBorder,Normal:CmpPmenu,CursorLine:CmpSel,Search:PmenuSel"; + scrollbar = false; + side_padding = 0; + border = [ "╭" "─" "╮" "│" "╯" "─" "╰" "│" ]; + }; + + documentation = { + border = [ "╭" "─" "╮" "│" "╯" "─" "╰" "│" ]; + winhighlight = "FloatBorder:CmpBorder,Normal:CmpPmenu,CursorLine:CmpSel,Search:PmenuSel"; + }; + }; + + mapping = { + "" = "cmp.mapping.select_next_item()"; + "" = "cmp.mapping.select_prev_item()"; + "" = "cmp.mapping.select_next_item()"; + "" = "cmp.mapping.select_prev_item()"; + "" = "cmp.mapping.scroll_docs(-4)"; + "" = "cmp.mapping.scroll_docs(4)"; + "" = "cmp.mapping.complete()"; + "" = "cmp.mapping.close()"; + "" = "cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Insert, select = true })"; + # as in: https://vonheikemen.github.io/devlog/tools/setup-nvim-lspconfig-plus-nvim-cmp/ + "" = '' + cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif require("luasnip").expand_or_jumpable() then + vim.fn.feedkeys(vim.api.nvim_replace_termcodes("luasnip-expand-or-jump", true, true, true), "") + else + fallback() + end + end, {'i', 's'}) + ''; + "" = '' + cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif require("luasnip").jumpable(-1) then + vim.fn.feedkeys(vim.api.nvim_replace_termcodes("luasnip-jump-prev", true, true, true), "") + else + fallback() + end + end, {'i', 's'}) + ''; + }; + }; + }; + }; + }; in { @@ -189,6 +344,16 @@ in enable = mkEnableOption "neovim config"; + #lightweight = mkEnableOption "light weight config for low performance hosts"; + lightweight = mkOption { + type = types.nullOr types.package; + default = null; + internal = true; + description = '' + Package of minimal neovim. + ''; + }; + finalPackage = mkOption { type = types.nullOr types.package; default = null; @@ -205,20 +370,41 @@ in ###### implementation - config = mkIf cfg.enable { - - custom.programs.neovim = { inherit (config.programs.neovim) finalPackage; }; - - home.sessionVariables.EDITOR = "nvim"; - - programs.neovim = { - inherit extraConfig plugins; - - enable = true; - viAlias = true; - vimAlias = true; - }; - - }; + config = mkIf cfg.enable (mkMerge [ + { + custom.programs.neovim.lightweight = inputs.nixvim.legacyPackages."${system}".makeNixvim { + colorschemes.gruvbox.enable = true; + }; + home.packages = let inherit (config.custom.programs.neovim) lightweight; in [ + (pkgs.runCommand "minimal-nvim" { nativeBuildInputs = [ pkgs.makeWrapper ]; } '' + mkdir -p $out/bin + makeWrapper ${lightweight.outPath}/bin/nvim $out/bin/nvim-min --argv0 nvim + '') + ]; + } + + (mkIf (!cfg.lightweight) { + custom.programs.neovim.finalPackage = inputs.nixvim.legacyPackages."${system}".makeNixvim configuration; + + home.packages = let inherit (config.custom.programs.neovim) finalPackage; in [ + finalPackage + ]; + + # see https://discourse.nixos.org/t/conflicts-between-treesitter-withallgrammars-and-builtin-neovim-parsers-lua-c/33536/3 + # TODO Put into home/programs/neovim ASAP +/* xdg.configFile."nvim/parser".source = "${pkgs.symlinkJoin { + name = "treesitter-parsers"; + paths = (pkgs.vimPlugins.nvim-treesitter.withPlugins (plugins: with plugins; [ + nix + bash + yaml + json + lua + latex + comment + ])).dependencies; + }}/parser"; */ + }) + ]); } diff --git a/home/programs/pass.nix b/home/programs/pass.nix index c68e844b..87d3853a 100644 --- a/home/programs/pass.nix +++ b/home/programs/pass.nix @@ -8,14 +8,8 @@ let cfg = config.custom.programs.pass; - # see dmenucmd in dwm config - dmenuCmd = ''dmenu -fn "Ubuntu Mono Nerd Font:size=9" -nb "#222222" -nf "#bbbbbb" -sb "#540303" -sf "#eeeeee"''; - - package = pkgs.pass.overrideAttrs (_old: { - postBuild = '' - sed -i -e 's@"$dmenu"@${dmenuCmd}@' contrib/dmenu/passmenu - ''; - }); + # see https://github.com/NixOS/nixpkgs/blob/nixos-23.05/pkgs/tools/security/pass/extensions/checkup.nix + package = pkgs.pass.withExtensions (exts: [ exts.pass-checkup ]); in { diff --git a/home/programs/prompts/liquidprompt.nix b/home/programs/prompts/liquidprompt.nix deleted file mode 100644 index 75225e43..00000000 --- a/home/programs/prompts/liquidprompt.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - concatStringsSep - mapAttrsToList - mkEnableOption - mkIf - ; - - cfg = config.custom.programs.prompts.liquidprompt; - - liquidpromptConfig = { - LP_ENABLE_BATT = 0; - LP_ENABLE_BZR = 0; - LP_ENABLE_DETACHED_SESSIONS = 0; - LP_ENABLE_FOSSIL = 0; - LP_ENABLE_FQDN = 0; - LP_ENABLE_GIT = 1; - LP_ENABLE_HG = 0; - LP_ENABLE_JOBS = 0; - LP_ENABLE_SCLS = 0; - LP_ENABLE_SVN = 0; - LP_ENABLE_TEMP = 0; - LP_ENABLE_VCS_ROOT = 1; - LP_ENABLE_VIRTUALENV = 0; - LP_HOSTNAME_ALWAYS = 1; - LP_PATH_LENGTH = 50; - }; -in - -{ - - ###### interface - - options = { - - custom.programs.prompts.liquidprompt = { - - enable = mkEnableOption "liquidprompt config"; - - }; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - programs = { - bash.initExtra = '' - source ${pkgs.liquidprompt}/share/zsh/plugins/liquidprompt/liquidprompt - ''; - - zsh.plugins = [ - { - name = "liquidprompt"; - src = "${pkgs.liquidprompt}/share/zsh/plugins/liquidprompt"; - } - ]; - }; - - xdg.configFile."liquidpromptrc".text = '' - ${concatStringsSep "\n" (mapAttrsToList (key: value: "${key}=${toString value}") liquidpromptConfig)} - - # PS1 Modifications - - LP_PS1_SHELL_SYMBOL="\$" - if [[ -n "''${BASH_VERSION-}" ]]; then - LP_PS1_SHELL_SYMBOL="B" - fi - - LP_PS1_POSTFIX=$'\n'"''${BOLD_GREEN}''${LP_PS1_SHELL_SYMBOL}>''${NO_COL} " - ''; - - }; - -} diff --git a/home/programs/prompts/pure.nix b/home/programs/prompts/pure.nix deleted file mode 100644 index cbc692b0..00000000 --- a/home/programs/prompts/pure.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - ; - - cfg = config.custom.programs.prompts.pure; -in - -{ - - ###### interface - - options = { - - custom.programs.prompts.pure.enable = mkEnableOption "pure prompt"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - home.sessionVariables.PURE_GIT_PULL = 0; - - programs.zsh = { - initExtra = '' - autoload -U promptinit; promptinit - prompt pure - ''; - - plugins = [ - { - name = "pure"; - src = "${pkgs.pure-prompt}/share/zsh/site-functions"; - } - ]; - }; - - }; - -} diff --git a/home/programs/shell.nix b/home/programs/shell.nix index 52811749..20473f0f 100644 --- a/home/programs/shell.nix +++ b/home/programs/shell.nix @@ -23,8 +23,7 @@ let example = "available cargo"; description = '' Condition to be matched before the provided aliases and config are set. - The value has to be a bash/zsh expression to be placed into an - if. + The value has to be a bash/zsh expression to be placed into an `if`. ''; }; @@ -32,7 +31,7 @@ let default = ""; type = types.lines; description = '' - Extra commands that should be run when condition is + Extra commands that should be run when `condition` is met. Commands need to be idempotent as they are potentially executed mulitple times. ''; @@ -99,10 +98,10 @@ let ll = "ls -AFhlv"; llr = "ll /nix/var/nix/gcroots/auto --color=always | grep result"; - cp = "cp -av"; - mv = "mv -v"; - rm = "rm -v"; - ln = "ln -v"; + cp = "cp -iav"; + mv = "mv -iv"; + rm = "rm -iv"; + ln = "ln -iv"; grep = "grep --color=auto"; fgrep = "fgrep --color=auto"; @@ -135,6 +134,14 @@ let tree = "tree -F --dirsfirst"; treea = "tree -a"; treei = "treea -I '.git|.idea'"; + + ghlimits = "${pkgs.coreutils}/bin/date --date @`${pkgs.curl.bin}/bin/curl -s -i https://api.github.com/users/573 | ${pkgs.gnugrep}/bin/grep x-ratelimit-reset | ${pkgs.gawk}/bin/awk '{print $2}'`"; + dateviaepoch = "date --date @$(echo $EPOCHSECONDS)"; + nvimscaffold = "echo import os | nvim +\":set autochdir\" - +'file main.py' # https://neovim.io/doc/user/starting.html"; + + nvi = "nvim -u NONE -i NONE"; + + nix-stray-roots = "nix-store --gc --print-roots | egrep -v '^(/nix/var|/run/\w+-system|\{memory|\{censored|/proc/maps/)'"; } // cfg.shellAliases // (optionalAttrs (dynamicShellInit != "") { @@ -232,8 +239,6 @@ in description = '' Specify dynamic shell init which has to be reloaded after environment change. - - Note: This only adds config and is not intended to cleanup after context switch when to defined conditions are no more true. ''; @@ -254,11 +259,6 @@ in profileExtra = mkMerge [ profileExtra cfg.envExtra ]; initExtra = mkMerge [ initExtra cfg.loginExtra ]; }; - - zsh = { - inherit (cfg) envExtra loginExtra; - inherit initExtra logoutExtra profileExtra shellAliases; - }; }; }; diff --git a/home/programs/ssh/default.nix b/home/programs/ssh/default.nix index d9de7818..bd7b54bf 100644 --- a/home/programs/ssh/default.nix +++ b/home/programs/ssh/default.nix @@ -40,7 +40,7 @@ in }; modules = mkOption { - type = types.listOf (types.enum [ "private" "sedo" "vcs" ]); + type = types.listOf (types.enum [ "private" "vcs" ]); default = [ ]; description = "SSH modules to enable."; }; @@ -55,7 +55,7 @@ in config = mkIf cfg.enable { custom = { - misc.homeage.secrets = map (value: "ssh-${value}") cfg.modules; + #misc.homeage.secrets = map (value: "ssh-${value}") cfg.modules; programs.shell = { initExtra = '' @@ -63,7 +63,7 @@ in if [[ -z "$1" ]]; then echo "Enter path as argument!" else - ssh-keygen -t rsa -b 4096 -f "$1" + ssh-keygen -t ed25519 -f "$1" fi } @@ -93,15 +93,11 @@ in home.packages = [ pkgs.openssh - - (config.lib.custom.mkZshCompletion - "kadd" - ./kadd-completion.zsh - { inherit keysDirectory; } - ) ]; programs = { + # https://sourcegraph.com/search?q=context:global+file:%5E*.nix%24+content:programs.keychain.&patternType=standard&sm=1&groupBy=repo + # https://www.google.com/search?q=+id_ed25519+keychain keychain = { enable = true; agents = [ "ssh" ]; diff --git a/home/programs/ssh/kadd-completion.zsh b/home/programs/ssh/kadd-completion.zsh deleted file mode 100644 index f473b5ec..00000000 --- a/home/programs/ssh/kadd-completion.zsh +++ /dev/null @@ -1,5 +0,0 @@ -source @completionLib@ - -_search_and_append_by_prefix_and_suffix "@keysDirectory@/id_rsa." ".pub" - -_arguments "*:ssh keys:(${list[*]})" diff --git a/home/programs/tex.nix b/home/programs/tex.nix new file mode 100644 index 00000000..d438c633 --- /dev/null +++ b/home/programs/tex.nix @@ -0,0 +1,40 @@ +{ config, lib, pkgs, inputs, ... }: + +let + inherit (lib) + mkEnableOption + mkIf + ; + + cfg = config.custom.programs.tex; +in + +{ + + ###### interface + + options = { + + custom.programs.tex = { + enable = mkEnableOption "tex config"; + }; + + }; + + + ###### implementation + + config = mkIf cfg.enable { + + home = { + packages = [ + #pkgs.texliveBookPub + #pkgs.texlab # DONT come with texlab.enable and ltex.enable in nixvim + #pkgs.ltex-ls + (pkgs.texlive.combine { inherit (pkgs.texlive) scheme-minimal latexmk; }) + ]; + }; + + }; + +} diff --git a/home/programs/tmux/default.nix b/home/programs/tmux/default.nix index 438b4103..0d53f325 100644 --- a/home/programs/tmux/default.nix +++ b/home/programs/tmux/default.nix @@ -182,7 +182,7 @@ in home = { file.".urlview" = mkIf cfg.urlview { text = '' - COMMAND ${pkgs.google-chrome}/bin/google-chrome-stable %s > /dev/null 2>&1 + COMMAND ${pkgs.w3m-nox}/bin/w3m %s > /dev/null 2>&1 ''; }; diff --git a/home/programs/urxvt.nix b/home/programs/urxvt.nix deleted file mode 100644 index b5197c57..00000000 --- a/home/programs/urxvt.nix +++ /dev/null @@ -1,87 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - concatStringsSep - mkEnableOption - mkIf - ; - - cfg = config.custom.programs.urxvt; - - colorBlue = "#6d68ff"; - fontName = "UbuntuMono Nerd Font"; - fontSize = "13"; - - buildFont = modifier: concatStringsSep ":" ( - [ "xft" fontName ] - ++ modifier - ++ [ "pixelsize=${fontSize}" ] - ); -in - -{ - - ###### interface - - options = { - - custom.programs.urxvt.enable = mkEnableOption "urxvt config"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - programs.urxvt = { - enable = true; - package = pkgs.rxvt-unicode; - - scroll.bar.enable = false; - - extraConfig = { - "font" = buildFont [ ]; - "boldFont" = buildFont [ "bold" ]; - "italicFont" = buildFont [ "italic" ]; - "boldItalicFont" = buildFont [ "bold" "italic" ]; - - "background" = "black"; - "foreground" = "white"; - "modifier" = "alt"; - - "perl-ext-common" = "default,font-size,keyboard-select,selection-to-clipboard,url-select"; - - "font-size.step" = 2; - "url-select.launcher" = "${pkgs.google-chrome}/bin/google-chrome-stable"; - - "color4" = colorBlue; - "color12" = colorBlue; - - "termName" = "screen-256color"; - }; - - keybindings = { - "C-minus" = "perl:font-size:decrease"; - "C-plus" = "perl:font-size:increase"; - "C-equal" = "perl:font-size:reset"; - - "M-s" = "perl:keyboard-select:activate"; - "M-r" = "perl:keyboard-select:search"; - - "M-u" = "perl:url-select:select_next"; - }; - }; - - xresources.properties = { - "Xft.dpi" = 96; - "Xft.antialias" = true; - "Xft.rgba" = "rgb"; - "Xft.hinting" = true; - "Xft.hintstyle" = "hintslight"; - }; - - }; - -} diff --git a/home/programs/vscode.nix b/home/programs/vscode.nix deleted file mode 100644 index 8c7e9142..00000000 --- a/home/programs/vscode.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - mkOption - types - ; - - cfg = config.custom.programs.vscode; -in - -{ - - ###### interface - - options = { - - custom.programs.vscode = { - enable = mkEnableOption "vscode"; - - packages = mkOption { - type = types.listOf types.package; - default = [ ]; - description = "List of packages that should be put on PATH for vscode."; - }; - }; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom.programs.vscode.packages = [ - pkgs.nixpkgs-fmt - ]; - - home.packages = [ - (config.lib.custom.wrapProgram { - inherit (cfg) packages; - name = "code"; - source = pkgs.vscode; - path = "/bin/code"; - }) - ]; - - }; - -} diff --git a/home/programs/watson.nix b/home/programs/watson.nix deleted file mode 100644 index a5d160ba..00000000 --- a/home/programs/watson.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - ; - - cfg = config.custom.programs.watson; - - iniFormat = pkgs.formats.ini { }; - - configFile = iniFormat.generate "watson-config" { - options = { - log_current = true; - report_current = true; - }; - }; -in - -{ - - ###### interface - - options = { - - custom.programs.watson.enable = mkEnableOption "watson config"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom.programs.shell.shellAliases = { - wsta = "watson start work"; - wsto = "watson stop"; - wwat = "watch --color --interval 1 watson --color log --day"; - }; - - home.packages = [ pkgs.watson ]; - - xdg.configFile."watson/config".source = configFile; - - }; - -} diff --git a/home/programs/zsh/completion.zsh b/home/programs/zsh/completion.zsh deleted file mode 100644 index 7e59d658..00000000 --- a/home/programs/zsh/completion.zsh +++ /dev/null @@ -1,113 +0,0 @@ -# source with some modifications: https://raw.githubusercontent.com/grml/grml-etc-core/master/etc/zsh/zshrc - -# allow one error for every three characters typed in approximate completer -zstyle ':completion:*:approximate:' max-errors 'reply=( $((($#PREFIX+$#SUFFIX)/3 )) numeric )' - -# start menu completion only if it could find no unambiguous initial string -zstyle ':completion:*:correct:*' insert-unambiguous true -zstyle ':completion:*:corrections' format $'%{\e[0;31m%}%d (errors: %e)%{\e[0m%}' -zstyle ':completion:*:correct:*' original true - -# activate color-completion -zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS} - -# format on completion -zstyle ':completion:*:descriptions' format $'%{\e[0;31m%}completing %B%d%b%{\e[0m%}' - -# insert all expansions for expand completer -zstyle ':completion:*:expand:*' tag-order all-expansions -zstyle ':completion:*:history-words' list false - -# activate menu -zstyle ':completion:*:history-words' menu yes - -# ignore duplicate entries -zstyle ':completion:*:history-words' remove-all-dups yes -zstyle ':completion:*:history-words' stop yes - -# match uppercase from lowercase -zstyle ':completion:*' matcher-list 'm:{a-zA-Z-_}={A-Za-z_-}' - -# separate matches into groups -zstyle ':completion:*:matches' group 'yes' -zstyle ':completion:*' group-name '' - -# if there are more than 5 options allow selecting from a menu -zstyle ':completion:*' menu select=3 - -zstyle ':completion:*:messages' format '%d' -zstyle ':completion:*:options' auto-description '%d' - -# describe options in full -zstyle ':completion:*:options' description 'yes' - -# on processes completion complete all user processes -zstyle ':completion:*:processes' command 'ps -au$USER' - -# offer indexes before parameters in subscripts -zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters - -# provide verbose completion information -zstyle ':completion:*' verbose true - -# recent (as of Dec 2007) zsh versions are able to provide descriptions -# for commands (read: 1st word in the line) that it will list for the user -# to choose from. The following disables that, because it's not exactly fast. -zstyle ':completion:*:-command-:*:' verbose false - -# set format for warnings -zstyle ':completion:*:warnings' format $'%{\e[0;31m%}No matches for:%{\e[0m%} %d' - -# define files to ignore for zcompile -zstyle ':completion:*:*:zcompile:*' ignored-patterns '(*~|*.zwc)' -zstyle ':completion:correct:' prompt 'correct to: %e' - -# Ignore completion functions for commands you don't have: -zstyle ':completion::(^approximate*):*:functions' ignored-patterns '_*' - -# Provide more processes in completion of programs like killall: -zstyle ':completion:*:processes-names' command 'ps c -u ${USER} -o command | uniq' - -# complete manual by their section -zstyle ':completion:*:manuals' separate-sections true -zstyle ':completion:*:manuals.*' insert-sections true -zstyle ':completion:*:man:*' menu yes select - -# Search path for sudo completion -zstyle ':completion:*:sudo:*' command-path \ - /usr/local/sbin \ - /usr/local/bin \ - /usr/sbin \ - /usr/bin \ - /sbin \ - /bin \ - /usr/X11R6/bin \ - /etc/profiles/per-user/root/bin \ - /run/current-system/sw/sbin \ - /run/current-system/sw/bin - -# provide .. as a completion -zstyle ':completion:*' special-dirs .. - -# command for process lists, the local web server details and host completion -zstyle ':completion:*:urls' local 'www' '/var/www/' 'public_html' - -# host completion -[[ -r ~/.ssh/config ]] && _ssh_config_hosts=(${${(s: :)${(ps:\t:)${${(@M)${(f)"$(<$HOME/.ssh/config)"}:#Host *}#Host }}}:#*[*?]*}) || _ssh_config_hosts=() -[[ -r ~/.ssh/known_hosts ]] && _ssh_hosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=() -[[ -r /etc/hosts ]] && : ${(A)_etc_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$(- - -bindkey '^xp' history-beginning-search-backward -bindkey '^xP' history-beginning-search-forward - -# beginning-of-line (^A) (unbound) (unbound) -# Move to the beginning of the line. If already at the beginning of the line, -# move to the beginning of the previous line, if any. -if [[ -n "${key[Home]}" ]]; then - bindkey "${key[Home]}" beginning-of-line - bindkey -M vicmd "${key[Home]}" vi-beginning-of-line - bindkey -M viins "${key[Home]}" vi-beginning-of-line -fi - -# end-of-line (^E) (unbound) (unbound) -# Move to the end of the line. If already at the end of the line, move to the -# end of the next line, if any. -if [[ -n "${key[End]}" ]]; then - bindkey "${key[End]}" end-of-line - bindkey -M vicmd "${key[End]}" vi-end-of-line - bindkey -M viins "${key[End]}" vi-end-of-line -fi - -# vi-delete-char (unbound) (x) (unbound) -# Delete the character under the cursor, without going past the end of the line. -if [[ -n "${key[Delete]}" ]]; then - bindkey "${key[Delete]}" delete-char - bindkey -M vicmd "${key[Delete]}" vi-delete-char - bindkey -M viins "${key[Delete]}" vi-delete-char -fi - -# backward-delete-char (^H ^?) (unbound) (unbound) -# Delete the character behind the cursor. -if [[ -n "${key[Backspace]}" ]]; then - bindkey "${key[Backspace]}" backward-delete-char - bindkey -M viins "${key[Backspace]}" backward-delete-char - #bindkey -M vicmd "${key[Backspace]}" backward-delete-char -fi - -# overwrite-mode (^X^O) (unbound) (unbound) -# Toggle between overwrite mode and insert mode. -if [[ -n "${key[Insert]}" ]]; then - bindkey -M viins "${key[Insert]}" overwrite-mode - bindkey -M emacs "${key[Insert]}" overwrite-mode -fi - -# up-line-or-search -# Move up a line in the buffer, or if already at the top line, search backward -# in the history for a line beginning with the first word in the buffer. -[[ -n "${key[Up]}" ]] && bindkey "${key[Up]}" up-line-or-search - -# down-line-or-search -# Move down a line in the buffer, or if already at the bottom line, search -# forward in the history for a line beginning with the first word in the buffer. -[[ -n "${key[Down]}" ]] && bindkey "${key[Down]}" down-line-or-search - -# history-incremental-search-backward (^R ^Xr) (unbound) (unbound) -# Search backward incrementally for a specified string. The search is -# case-insensitive if the search string does not have uppercase letters and no -# numeric argument was given. The string may begin with "^" to anchor the search -# to the beginning of the line. -# NOTE: disabled because fzf binds to this -#bindkey -M vicmd "\C-r" history-incremental-search-backward -#bindkey -M viins "\C-r" history-incremental-search-backward - -# history-incremental-search-forward (^S ^Xs) (unbound) (unbound) -# Search forward incrementally for a specified string. The search is -# case-insensitive if the search string does not have uppercase letters and no -# numeric argument was given. The string may begin with "^" to anchor the search -# to the beginning of the line. The functions available in the mini-buffer are -# the same as for history-incremental-search-backward. -bindkey -M vicmd "\C-s" history-incremental-search-forward -bindkey -M viins "\C-s" history-incremental-search-forward - -# The zsh/complist Module -# The zsh/complist module offers three extensions to completion listings: the -# ability to highlight matches in such a list, the ability to scroll through -# long lists and a different style of menu completion. -autoload -Uz zsh/complist -zmodload -i zsh/complist - -# accept-and-menu-complete -# In a menu completion, insert the current completion into the buffer, and -# advance to the next possible completion. -bindkey -M menuselect '\e^M' accept-and-menu-complete - -bindkey '^ ' forward-word diff --git a/home/services/dunst.nix b/home/services/dunst.nix deleted file mode 100644 index 0f4686dd..00000000 --- a/home/services/dunst.nix +++ /dev/null @@ -1,185 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - ; - - cfg = config.custom.services.dunst; -in - -{ - - ###### interface - - options = { - - custom.services.dunst.enable = mkEnableOption "dunst config"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - services.dunst = { - enable = true; - - settings = { - global = { - font = "Monospace 11"; - - # Allow a small subset of html markup: - # bold - # italic - # strikethrough - # underline - # - # For a complete reference see - # . - # If markup is not allowed, those tags will be stripped out of the - # message. - markup = true; - - # The format of the message. Possible variables are: - # %a appname - # %s summary - # %b body - # %i iconname (including its path) - # %I iconname (without its path) - # %p progress value if set ([ 0%] to [100%]) or nothing - # Markup is allowed - format = ''%s\n%b''; - - # Sort messages by urgency. - sort = true; - - # Show how many messages are currently hidden (because of geometry). - indicate_hidden = true; - - # Alignment of message text. - # Possible values are "left", "center" and "right". - alignment = "right"; - - # The frequency with wich text that is longer than the notification - # window allows bounces back and forth. - # This option conflicts with "word_wrap". - # Set to 0 to disable. - bounce_freq = 0; - - # Show age of message if message is older than show_age_threshold - # seconds. - # Set to -1 to disable. - show_age_threshold = 60; - - # Split notifications into multiple lines if they don't fit into - # geometry. - word_wrap = true; - - # Ignore newlines '\n' in notifications. - ignore_newline = false; - - width = 300; - offset = "8x25"; - - # Shrink window if it's smaller than the width. Will be ignored if - # width is 0. - shrink = false; - - # The transparency of the window. Range: [0; 100]. - # This option will only work if a compositing windowmanager is - # present (e.g. xcompmgr, compiz, etc.). - transparency = 0; - - # Don't remove messages, if the user is idle (no mouse or keyboard input) - # for longer than idle_threshold seconds. - # Set to 0 to disable. - idle_threshold = 120; - - # Which monitor should the notifications be displayed on. - monitor = 0; - - # Display notification on focused monitor. Possible modes are: - # mouse: follow mouse pointer - # keyboard: follow window with keyboard focus - # none: don't follow anything - # - # "keyboard" needs a windowmanager that exports the - # _NET_ACTIVE_WINDOW property. - # This should be the case for almost all modern windowmanagers. - # - # If this option is set to mouse or keyboard, the monitor option - # will be ignored. - follow = "mouse"; - - # Should a notification popped up from history be sticky or timeout - # as if it would normally do. - sticky_history = true; - - # Maximum amount of notifications kept in history - history_length = 20; - - # Display indicators for URLs (U) and actions (A). - show_indicators = true; - - # The height of a single line. If the height is smaller than the - # font height, it will get raised to the font height. - # This adds empty space above and under the text. - line_height = 0; - - # Draw a line of "separatpr_height" pixel height between two - # notifications. - # Set to 0 to disable. - separator_height = 2; - - # Padding between text and separator. - padding = 8; - - # Horizontal padding. - horizontal_padding = 8; - - # Define a color for the separator. - # possible values are: - # * auto: dunst tries to find a color fitting to the background; - # * foreground: use the same color as the foreground; - # * frame: use the same color as the frame; - # * anything else will be interpreted as a X color. - separator_color = "frame"; - - # Print a notification on startup. - # This is mainly for error detection, since dbus (re-)starts dunst - # automatically after a crash. - startup_notification = false; - - # Align icons left/right/off - icon_position = "off"; - - frame_width = 3; - frame_color = "#aaaaaa"; - }; - - urgency_low = { - foreground = "#778c7b"; - background = "#222222"; - timeout = 5; - }; - - urgency_normal = { - foreground = "#778c7b"; - background = "#222222"; - timeout = 5; - }; - - urgency_critical = { - background = "#990000"; - foreground = "#222222"; - timeout = 0; - }; - }; - }; - - }; - -} diff --git a/home/services/dwm-status.nix b/home/services/dwm-status.nix deleted file mode 100644 index 237fd74d..00000000 --- a/home/services/dwm-status.nix +++ /dev/null @@ -1,97 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - lists - mkEnableOption - mkIf - mkMerge - mkOption - types - ; - - cfg = config.custom.services.dwm-status; -in - -{ - - ###### interface - - options = { - - custom.services.dwm-status = { - enable = mkEnableOption "dwm-status user service"; - - audio = mkEnableOption "audio feature" // { default = true; }; - - laptop = mkEnableOption "laptop config"; - - backlightDevice = mkOption { - type = types.nullOr types.str; - description = '' - Name of backlight device. - ''; - }; - - useGlobalAlsaUtils = mkEnableOption "use global alsa utils instead of nix' one"; - }; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - services.dwm-status = { - enable = true; - - package = - if cfg.useGlobalAlsaUtils - then pkgs.gerschtli.dwm-status-without-alsa-utils - else pkgs.gerschtli.dwm-status; - - order = - let - list = - if cfg.laptop - then [ "cpu_load" "backlight" "audio" "battery" "time" ] - else [ "cpu_load" "audio" "time" ]; - in - if cfg.audio - then list - else lists.remove "audio" list; - - extraConfig = mkMerge [ - { - separator = "  "; - } - - (mkIf cfg.audio { - audio = { - mute = "ﱝ"; - template = "{ICO} {VOL}%"; - icons = [ "奄" "奔" "墳" ]; - }; - }) - - (mkIf cfg.laptop { - backlight = { - fallback = mkIf (cfg.backlightDevice != null) cfg.backlightDevice; - template = "{ICO} {BL}%"; - icons = [ "" "" "" ]; - }; - - battery = { - charging = ""; - discharging = ""; - no_battery = ""; - icons = [ "" "" "" "" "" "" "" "" "" "" "" ]; - }; - }) - ]; - }; - - }; - -} diff --git a/home/wm/dwm.nix b/home/wm/dwm.nix deleted file mode 100644 index 33468e7e..00000000 --- a/home/wm/dwm.nix +++ /dev/null @@ -1,97 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - ; - - cfg = config.custom.wm.dwm; -in - -{ - - ###### interface - - options = { - - custom.wm.dwm.enable = mkEnableOption "config for dwm"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom = { - services = { - dunst.enable = true; - - dwm-status = { - inherit (config.custom.base.desktop) laptop; - - enable = true; - }; - }; - - wm.general.enable = true; - }; - - home = { - keyboard = { - layout = "de"; - options = [ "ctrl:nocaps" ]; - variant = "nodeadkeys"; - }; - - packages = with pkgs; [ - gerschtli.dmenu - gerschtli.dwm - playerctl - scrot - xclip - xorg.xkill - ]; - - # Fix java applications - sessionVariables.AWT_TOOLKIT = "MToolkit"; - }; - - services.screen-locker = { - enable = true; - lockCmd = "${config.custom.wm.general.lockScreenPackage}/bin/lock-screen"; - inactiveInterval = 60; - - # disable xautolock when cursor is in bottom right corner - xautolock.extraOptions = [ "-corners" "000-" ]; - - # lock before suspending/hibernating, see https://github.com/i3/i3lock/issues/207 - xss-lock.extraOptions = [ "--transfer-sleep-lock" ]; - }; - - xsession = { - enable = true; - windowManager.command = "${pkgs.gerschtli.dwm}/bin/dwm"; - - numlock.enable = true; - - initExtra = '' - # Disable screen saver - ${pkgs.xorg.xset}/bin/xset s off - # Disable screen power saving settings - ${pkgs.xorg.xset}/bin/xset -dpms - # Increase key repeat speed - ${pkgs.xorg.xset}/bin/xset r rate 250 30 - - # Fix java applications, dwm needs to be up and running before executing this command - for i in 1 2 3; do - sleep 1 - ${pkgs.wmname}/bin/wmname LG3D - done & - ''; - }; - - }; - -} diff --git a/home/wm/general/default.nix b/home/wm/general/default.nix index 22a8aaab..190bab2a 100644 --- a/home/wm/general/default.nix +++ b/home/wm/general/default.nix @@ -54,7 +54,7 @@ in config = mkIf cfg.enable { custom = { - programs.alacritty.enable = true; + #programs.alacritty.enable = true; wm.general = { inherit lockScreenPackage; }; }; diff --git a/home/wm/sway.nix b/home/wm/sway.nix deleted file mode 100644 index 9495275a..00000000 --- a/home/wm/sway.nix +++ /dev/null @@ -1,139 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - mkOptionDefault - optionalString - ; - - cfg = config.custom.wm.sway; - - dmenuFont = "Ubuntu Mono Nerd Font:size=10"; - fonts = [ "Ubuntu Mono Nerd Font 10" ]; - - logFile = "${config.home.homeDirectory}/.sway-log"; - - screenshotBin = enableSelect: pkgs.writeScriptBin "screenshot" '' - ${pkgs.coreutils}/bin/mkdir --parents /tmp/screenshot - ${pkgs.grim}/bin/grim \ - ${optionalString enableSelect "-g $(${pkgs.slurp}/bin/slurp)"} \ - $(${pkgs.coreutils}/bin/date +"/tmp/screenshot/%Y-%m-%d-%H-%M-%S.png") - ''; -in - -{ - - ###### interface - - options = { - - custom.wm.sway.enable = mkEnableOption "config for sway"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom = { - programs.shell.loginExtra = '' - if [[ "$(tty)" == "/dev/tty1" ]]; then - echo "===== SWAY STARTUP ($(${pkgs.coreutils}/bin/date +"%Y-%m-%d %H-%M-%S")) =====" >> "${logFile}" - exec ${config.wayland.windowManager.sway.package}/bin/sway >> "${logFile}" 2>&1 - fi - ''; - - wm.general.enable = true; - }; - - home = { - file.".Xdefaults".source = - let xresources = config.home.file.".Xresources"; - in mkIf (xresources.source != null) xresources.source; - - sessionVariables."_JAVA_AWT_WM_NONREPARENTING" = 1; - }; - - wayland.windowManager.sway = { - enable = true; - - config = { - inherit fonts; - modifier = "Mod4"; - terminal = "${config.programs.urxvt.package}/bin/urxvt"; - menu = "${pkgs.gerschtli.dmenu}/bin/dmenu_path | " - + "${pkgs.gerschtli.dmenu}/bin/dmenu -fn '${dmenuFont}' -nb '#222222' -nf '#bbbbbb' -sb '#540303' -sf '#eeeeee' | " - + "${pkgs.findutils}/bin/xargs swaymsg exec --"; - - input = { - "type:keyboard" = { - "xkb_layout" = "de"; - "xkb_variant" = "nodeadkeys"; - "xkb_options" = "ctrl:nocaps"; - "repeat_delay" = "250"; - "repeat_rate" = "30"; - "xkb_numlock" = "enabled"; - }; - "type:touchpad" = { - "accel_profile" = "flat"; - "tap" = "enabled"; - "tap_button_map" = "lmr"; - }; - }; - - floating.criteria = [ - { app_id = "zenity"; } - ]; - - keybindings = - let - inherit (swayConfig) modifier; - swayConfig = config.wayland.windowManager.sway.config; - exec = command: "exec \"${command}\""; - in - mkOptionDefault { - "${modifier}+Return" = null; - "${modifier}+Tab" = "workspace back_and_forth"; - "${modifier}+Shift+Return" = exec swayConfig.terminal; - "${modifier}+Shift+q" = null; - "${modifier}+Shift+c" = "kill"; - "${modifier}+Shift+r" = "reload"; - "${modifier}+d" = null; - "${modifier}+p" = exec swayConfig.menu; - - "${modifier}+Ctrl+Left" = "workspace prev"; - "${modifier}+Ctrl+Right" = "workspace next"; - - "${modifier}+Alt+p" = exec "${pkgs.qpdfview}/bin/qpdfview"; - "${modifier}+Alt+g" = exec "${pkgs.google-chrome}/bin/google-chrome-stable"; - "${modifier}+Ctrl+s" = exec (screenshotBin false); - "${modifier}+Shift+s" = exec (screenshotBin true); - "${modifier}+Ctrl+l" = exec "${config.custom.wm.general.lockScreenPackage}/bin/lock-screen"; - - "XF86AudioRaiseVolume" = exec "amixer set Master 1%+"; - "XF86AudioLowerVolume" = exec "amixer set Master 1%-"; - "XF86AudioMute" = exec "amixer set Master toggle"; - "XF86MonBrightnessUp" = exec "light -A 5"; - "XF86MonBrightnessDown" = exec "light -U 5"; - "XF86AudioPlay" = exec "${pkgs.playerctl}/bin/playerctl play-pause"; - "XF86AudioNext" = exec "${pkgs.playerctl}/bin/playerctl next"; - "XF86AudioPrev" = exec "${pkgs.playerctl}/bin/playerctl previous"; - "XF86AudioStop" = exec "${pkgs.playerctl}/bin/playerctl stop"; - }; - - bars = [ - { - inherit fonts; - position = "top"; - statusCommand = "${pkgs.i3status}/bin/i3status"; - } - ]; - }; - }; - - }; - -} diff --git a/hosts/DANIELKNB1/configuration.nix b/hosts/DANIELKNB1/configuration.nix new file mode 100644 index 00000000..1107fe67 --- /dev/null +++ b/hosts/DANIELKNB1/configuration.nix @@ -0,0 +1,26 @@ +{ config, lib, pkgs, rootPath, ... }: + +{ + # FIXME currently disabled due to Windows-Update 21.11.23 + # https://mynixos.com/nixpkgs/option/boot.binfmt.emulatedSystems + boot.binfmt.emulatedSystems = [ "aarch64-linux" ]; + + custom.base.general.wsl = true; + + systemd.tmpfiles.rules = [ + '' + f /tmp/test/.nixd.json - - - - {"eval":{"depth":10,"target":{"args":["--expr","with import { }; callPackage /tmp/test/default.nix { }"],"installable":""}}} + '' + ]; + + # if resources are accessible only with gid 1000so be it have it here (ubuntu) + # https://github.com/NixOS/nixpkgs/blob/nixos-23.11/nixos/modules/config/users-groups.nix#L662 + users.groups = { + nixos.gid = lib.mkForce config.custom.ids.gids.nixos; + }; + users.users.nixos = { + uid = lib.mkForce config.custom.ids.uids.nixos; + extraGroups = [ "nixos" "users" ]; + #isSystemUser = lib.mkForce true; + }; +} diff --git a/hosts/DANIELKNB1/hardware-configuration.nix b/hosts/DANIELKNB1/hardware-configuration.nix new file mode 100644 index 00000000..d90c3841 --- /dev/null +++ b/hosts/DANIELKNB1/hardware-configuration.nix @@ -0,0 +1,4 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ } diff --git a/hosts/DANIELKNB1/home-funktionstester.nix b/hosts/DANIELKNB1/home-funktionstester.nix new file mode 100644 index 00000000..22252aaa --- /dev/null +++ b/hosts/DANIELKNB1/home-funktionstester.nix @@ -0,0 +1,18 @@ +{ config, lib, pkgs, rootPath, inputs, ... }: { + + custom = { + base = { + general.wsl = true; + }; + + development = { + nix.nixos.enable = true; + }; + }; + + home.packages = with pkgs; [ + hadolint + ]; + + xdg.enable = true; +} diff --git a/hosts/DANIELKNB1/home-nixos.nix b/hosts/DANIELKNB1/home-nixos.nix new file mode 100644 index 00000000..3ff2f3e4 --- /dev/null +++ b/hosts/DANIELKNB1/home-nixos.nix @@ -0,0 +1,135 @@ +{ config, lib, pkgs, rootPath, inputs, ... }: { + + custom = { + base = { + desktop = { + enable = true; + }; + + general.wsl = true; + }; + + programs = { + hledger.enable = true; + tex.enable = true; + }; + + development = { + jbang = { + enable = false; + trustedSources = [ "https://repo1.maven.org/maven2/io/quarkus/quarkus-cli/" ]; + }; + + nix.nixos.enable = true; + }; + + misc = { + sdks = { + enable = false; + links = { + inherit (pkgs) jdk21 python310; + }; + }; + }; + }; + + # programs.doom-emacs = { + # enable = true; + # doomPrivateDir = "${rootPath}/home/misc/doom.d"; + # }; + + + # https://discourse.nixos.org/t/whats-the-difference-between-extraargs-and-specialargs-for-lib-eval-config-nix/5281/2 + # disabledModules = [ "programs/password-store.nix" ]; + # hyprland has no module in home-manager@release-23.05 + + # DONT anymore, this hack isn't needed anymore since https://github.com/nix-community/home-manager/blob/release-23.11/modules/services/window-managers/hyprland.nix + #imports = [ + # (args@{ config, lib, pkgs, ... }: + # # Pattern: home-manager@master follows nixpkgs@nixpkgs-unstable + # import "${inputs.latest-home-manager.outPath}/modules/services/window-managers/hyprland.nix" + # (args // { pkgs = inputs.unstable.legacyPackages.${pkgs.system}; }) + # ) + #]; + + home.packages = with pkgs; [ + #alejandra + shellharden + shfmt + #rnix-lsp + #deadnix + #statix + #nixfmt + lua-language-server + nodePackages.bash-language-server + nodePackages.vim-language-server + #deno + stylua + sqlite + nodePackages.vscode-json-languageserver-bin + xsel + #nodejs_latest + shellcheck + chafa + #cachix + #nil + w3m + #fff + #my-neovim + #manix + #lolcat + epr + #my-emacs + pandoc + #rustenv + # this version fails, use version before https://github.com/573/nix-config-1/actions/runs/6589493931/job/17904090802 + #yt-dlp + micro + jdt-language-server + #ranger + #pup + difftastic + bashdb + desed + gradle-vscode-extension.vscode-gradle + python310Packages.pudb + jacinda + mermaid-cli + dstask + nixgl.nixGLIntel + nix-prefetch + hadolint + csvlens + hurl + oxker + ]; + /* + home.file = { + ".emacs.d/early-init.el".text = '' + (setq package-enable-at-startup nil) + (provide 'early-init) + ''; + }; + */ + xdg.enable = true; + + # see https://github.com/nix-community/neovim-nightly-overlay/wiki/Tree-sitter + /*xdg.configFile."nvim/parser/lua.so".source = + "${pkgs.tree-sitter.builtGrammars.tree-sitter-lua}/parser"; + xdg.configFile."nvim/parser/python.so".source = + "${pkgs.tree-sitter.builtGrammars.tree-sitter-python}/parser"; + xdg.configFile."nvim/parser/nix.so".source = + "${pkgs.tree-sitter.builtGrammars.tree-sitter-nix}/parser"; + xdg.configFile."nvim/parser/ruby.so".source = + "${pkgs.tree-sitter.builtGrammars.tree-sitter-ruby}/parser"; + xdg.configFile."nvim/parser/vim.so".source = + "${pkgs.tree-sitter.builtGrammars.tree-sitter-vim}/parser"; + xdg.configFile."nvim/parser/json.so".source = + "${pkgs.tree-sitter.builtGrammars.tree-sitter-json}/parser"; + xdg.configFile."nvim/parser/bash.so".source = + "${pkgs.tree-sitter.builtGrammars.tree-sitter-bash}/parser"; + xdg.configFile."nvim/parser/comment.so".source = + "${pkgs.tree-sitter.builtGrammars.tree-sitter-comment}/parser"; + xdg.configFile."nvim/parser/latex.so".source = + "${pkgs.tree-sitter.builtGrammars.tree-sitter-latex}/parser";*/ +} diff --git a/hosts/DANIELKNB1/home-root.nix b/hosts/DANIELKNB1/home-root.nix new file mode 100644 index 00000000..848ffdb0 --- /dev/null +++ b/hosts/DANIELKNB1/home-root.nix @@ -0,0 +1,5 @@ +{ config, lib, pkgs, ... }: + +{ + #custom.base.general.minimal = true; +} diff --git a/hosts/M386/home-tobhap.nix b/hosts/M386/home-tobhap.nix deleted file mode 100644 index 7d128781..00000000 --- a/hosts/M386/home-tobhap.nix +++ /dev/null @@ -1,93 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - custom = { - base = { - desktop = { - enable = true; - laptop = true; - }; - - non-nixos.enable = true; - }; - - cachix-agent = { - enable = true; - hostName = "M386"; - }; - - development = { - helm.enable = true; - - nix.home-manager.enable = true; - }; - - misc = { - homeage.secrets = [ "sedo" ]; - - sdks = { - enable = true; - links = { - inherit (pkgs) jdk8 jdk11 jdk17 go; - }; - }; - - work = { - enable = true; - directory = "sedo"; - mailAddress = "tobias.happ@sedo.com"; - }; - }; - - programs = { - go.enable = true; - - idea-ultimate.enable = lib.mkForce false; - - maven.enable = true; - - shell.initExtra = '' - . ${config.home.homeDirectory}/.aliases.sh - ''; - - ssh.modules = [ "sedo" ]; - - watson.enable = true; - }; - }; - - home = { - homeDirectory = "/home/tobhap"; - username = "tobhap"; - - packages = with pkgs; [ - dbeaver - gitflow - k9s - kubectl - mariadb.client - minikube - nixpkgs-fmt # for vscode integration - nodejs # for ide integration - php # for ide integration - ]; - - sessionPath = [ - "${config.home.homeDirectory}/projects/sedo/devops-scripts/bin" - ]; - - sessionVariables = { - # see: https://github.com/NixOS/nixpkgs/issues/38991#issuecomment-400657551 - LOCALE_ARCHIVE_2_11 = "/usr/bin/locale/locale-archive"; - LOCALE_ARCHIVE_2_27 = "${pkgs.glibcLocales}/lib/locale/locale-archive"; - - KUBECONFIG = lib.concatMapStringsSep ":" (path: "${config.home.homeDirectory}/.kube/${path}") [ - "config" - "config.integration" - "config.integration2" - "config.stage" - "config.production" - ]; - }; - }; -} diff --git a/hosts/argon/configuration.nix b/hosts/argon/configuration.nix deleted file mode 100644 index cf16bc35..00000000 --- a/hosts/argon/configuration.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ config, lib, pkgs, rootPath, ... }: - -{ - custom = { - applications.original-chattengauer.enable = true; - - base.server.enable = true; - - services = { - backup.enable = true; - - minecraft-server.enable = true; - - openssh.enable = true; - }; - - system.boot.mode = "efi"; - }; - - home-manager.users.steini = import "${rootPath}/hosts/${config.custom.base.general.hostname}/home-steini.nix"; - - security.sudo.extraRules = [ - { - users = [ "steini" ]; - runAs = "root:root"; - commands = map - (command: { - command = "/run/current-system/sw/bin/${command}"; - options = [ "NOPASSWD" ]; - }) - [ - "journalctl -xe -u minecraft-server.service" - "systemctl restart minecraft-server.service" - "systemctl start minecraft-server.service" - "systemctl status minecraft-server.service" - "systemctl stop minecraft-server.service" - ]; - } - ]; - - systemd.services.minecraft-server.serviceConfig.UMask = lib.mkForce "0007"; # change 0077 to 0007 to make group-writeable - - users.users = { - minecraft.homeMode = "0770"; - - steini = { - uid = config.custom.ids.uids.steini; - extraGroups = [ "minecraft" ]; - isNormalUser = true; - shell = pkgs.zsh; - openssh.authorizedKeys.keyFiles = [ - "${rootPath}/files/keys/id_rsa.steini.pub" - ]; - }; - }; - - zramSwap.enable = true; -} diff --git a/hosts/argon/hardware-configuration.nix b/hosts/argon/hardware-configuration.nix deleted file mode 100644 index aa9cd420..00000000 --- a/hosts/argon/hardware-configuration.nix +++ /dev/null @@ -1,38 +0,0 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - -{ - imports = - [ - (modulesPath + "/profiles/qemu-guest.nix") - ]; - - boot.initrd.availableKernelModules = [ "xhci_pci" "virtio_pci" "usbhid" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { - device = "/dev/disk/by-uuid/2cb35e79-5f70-499d-aaab-fa00e39df589"; - fsType = "ext4"; - }; - - fileSystems."/boot" = - { - device = "/dev/disk/by-uuid/A579-11C7"; - fsType = "vfat"; - }; - - swapDevices = [ ]; - - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking - # (the default) this is the recommended approach. When using systemd-networkd it's - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.eth0.useDHCP = lib.mkDefault true; - -} diff --git a/hosts/argon/home-root.nix b/hosts/argon/home-root.nix deleted file mode 100644 index 39bf1b4c..00000000 --- a/hosts/argon/home-root.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - custom.base.general.minimal = true; -} diff --git a/hosts/argon/home-steini.nix b/hosts/argon/home-steini.nix deleted file mode 100644 index 2f3fbbc9..00000000 --- a/hosts/argon/home-steini.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - motdPath = ".motd"; -in - -{ - custom.base.general.minimal = true; - - home = { - file.${motdPath}.text = '' - Minecraft state directory: /var/lib/minecraft - Start/stop minecraft server: sudo systemctl minecraft-server.service - Status of minecraft server: sudo systemctl status minecraft-server.service - Logs of minecraft server: sudo journalctl -xe -u minecraft-server.service - ''; - - packages = [ pkgs.nano ]; - }; - - programs.zsh.loginExtra = '' - echo - echo "==================== BASIC INFOS ====================" - cat ${config.home.homeDirectory}/${motdPath} - echo - echo "See ~/${motdPath} file" - echo "=====================================================" - echo - ''; -} diff --git a/hosts/argon/home-tobias.nix b/hosts/argon/home-tobias.nix deleted file mode 100644 index fdae0b7e..00000000 --- a/hosts/argon/home-tobias.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - custom.development.nix.nixos.enable = true; -} diff --git a/hosts/gamer/home-tobias.nix b/hosts/gamer/home-tobias.nix deleted file mode 100644 index 2cc863e5..00000000 --- a/hosts/gamer/home-tobias.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - custom = { - base.non-nixos.enable = true; - - development.nix.home-manager.enable = true; - - programs.ssh.modules = [ "private" ]; - }; - - home = { - homeDirectory = "/home/tobias"; - username = "tobias"; - }; -} diff --git a/hosts/krypton/configuration.nix b/hosts/krypton/configuration.nix deleted file mode 100644 index a66e8a96..00000000 --- a/hosts/krypton/configuration.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - custom = { - applications = { - downloads.enable = true; - - tobias-happ.enable = true; - }; - - base.server = { - enable = true; - ipv6Address = "2a01:4f8:1c0c:7161::2"; - }; - - ids.enable = false; - - services = { - backup.enable = true; - - gitea.enable = true; - - openssh.rootLogin = true; - - teamspeak.enable = true; - }; - - system.boot = { - mode = "grub"; - device = "/dev/sda"; - }; - }; -} diff --git a/hosts/krypton/hardware-configuration.nix b/hosts/krypton/hardware-configuration.nix deleted file mode 100644 index 833005d3..00000000 --- a/hosts/krypton/hardware-configuration.nix +++ /dev/null @@ -1,34 +0,0 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - -{ - imports = - [ - (modulesPath + "/profiles/qemu-guest.nix") - ]; - - boot.initrd.availableKernelModules = [ "ata_piix" "virtio_pci" "virtio_scsi" "xhci_pci" "sd_mod" "sr_mod" ]; - boot.initrd.kernelModules = [ "dm-snapshot" ]; - boot.kernelModules = [ ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { - device = "/dev/disk/by-uuid/3100ccc9-75bf-4109-b1f6-43275489601f"; - fsType = "ext4"; - }; - - swapDevices = - [{ device = "/dev/disk/by-uuid/94c0be7f-2f66-449b-90c9-46ed847df3cc"; }]; - - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking - # (the default) this is the recommended approach. When using systemd-networkd it's - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.eth0.useDHCP = lib.mkDefault true; - - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/hosts/krypton/home-root.nix b/hosts/krypton/home-root.nix deleted file mode 100644 index 39bf1b4c..00000000 --- a/hosts/krypton/home-root.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - custom.base.general.minimal = true; -} diff --git a/hosts/krypton/home-tobias.nix b/hosts/krypton/home-tobias.nix deleted file mode 100644 index f7f1c26f..00000000 --- a/hosts/krypton/home-tobias.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - custom = { - development.nix.nixos.enable = true; - - programs = { - gpg.curses = true; - - pass.enable = true; - }; - }; -} diff --git a/hosts/maiziedemacchiato/home-dani.nix b/hosts/maiziedemacchiato/home-dani.nix new file mode 100644 index 00000000..04119686 --- /dev/null +++ b/hosts/maiziedemacchiato/home-dani.nix @@ -0,0 +1,227 @@ +{ config, lib, pkgs, inputs, rootPath, ... }: + +{ + custom = { + base = { + desktop = { + enable = true; + laptop = true; + }; + + non-nixos.enable = true; + }; + + development = { + nix.home-manager.enable = true; + }; + + programs = { + shell.initExtra = '' + #. ${config.home.homeDirectory}/.aliases.sh + ''; + + hledger.enable = true; + }; + }; + + # disabledModules = [ "${inputs.home-manager.outPath}/modules/misc/gtk.nix" ]; + + # imports = [ + # (args@{ config, lib, pkgs, ... }: + # import "${inputs.home-manager-2211.outPath}/modules/misc/gtk.nix" + # (args // { pkgs = inputs.nixos-2211.legacyPackages.${pkgs.system}; }) + # ) + # ]; + + # https://mipmip.github.io/home-manager-option-search/?query=syncthing + services.syncthing = { + enable = true; + tray.enable = true; + }; + + # imports = [ inputs.flatpaks.homeManagerModules.nix-flatpak ]; + + # services.flatpak = { + # enable = true; + # packages = [ + # "com.github.KRTirtho.Spotube" + # ]; + # }; + + #xsession = { + # enable = true; + # # the default is fine here, then I only need to create ~/.xsession file in Archlinux + # windowManager.i3 = { + # enable = true; + # }; + #}; + + # slock needs group "nogroup" to work, https://www.reddit.com/r/suckless/comments/qpupu2/slock_doesnt_work_if_compiled_from_git/hk0qz3l/ + # home.activation = { + # alertNoGroup = '' + # ${pkgs.getent}/bin/getent group nogroup || echo Please run groupadd nogroup for slock to work ! + # ''; + # }; + + # news = { + # display = "show"; + # entries = [ + # { + # gg time = "2023-09-14T14:04:00+00:00"; + # message = '' + # slock⋅needs⋅group⋅"nogroup"⋅to⋅work,⋅https://www.reddit.com/r/suckless/comments/qpupu2/slock_doesnt_work_if_compiled_from_git/hk0qz3l/ + # + # Run the following to test if the system is prepared: + # ${pkgs.getent}/bin/getent⋅group⋅nogroup⋅||⋅echo⋅Please⋅run⋅groupadd⋅nogroup⋅for⋅slock⋅to⋅work⋅! + # ''; + # } + # ]; + # }; + + home = { + enableDebugInfo = false; # Enabled that for https://github.com/NixOS/nixpkgs/issues/271991 + homeDirectory = "/home/dani"; + username = "dani"; + + packages = with pkgs; [ + #my-neovim + #ranger + photoprism + #alejandra + shellharden + shfmt + #rnix-lsp + #deadnix + #statix + #nixfmt + stylua + shellcheck + #yt-dlp + micro + #ranger + masterpdfeditor + abcde + cups-filters + # talon + #scrcpy + autorandr + mons + xorg.libxcvt + xorg.xrandr + maim + xdotool + xclip + keepassxc + swappy + arandr + xterm + signal-desktop + #tailscale # and openssh to custom package, i. e. home/programs/ssh + #my-emacs + #openssh + dstask + # TODO https://wiki.hyprland.org/Nix/Hyprland-on-Home-Manager/ https://wiki.hyprland.org/Nix/Hyprland-on-other-distros/ https://discourse.nixos.org/t/opening-i3-from-home-manager-automatically/4849/8 https://wiki.archlinux.org/title/Display_manager + nixgl.nixGLIntel + pcmanfm + chafa + #simple-scan # memory error, potential workaround: https://github.com/NixOS/nixpkgs/issues/149812 + #tint2 # rather use at service definition themselves + #simple-scan # DONT bc simple-scan requires sane-backends which in turn requires udev rules to be in place for the scanner to be detected, so on non-nixos installations of home-manager this simply cannot work. also a mix of non-nixos host provided sane-backends vs simple-scan will not work, rather using host's simple-scan until https://github.com/NixOS/nixpkgs/issues/271989 gets recognition + #sane-frontends.out + # sane-backends only "worked" due to leftover udev files from a non-nixos host provided sane installation I removed without rebooting and so tricked the system into belief it had scanner access via standalone home-manager + # paths only seem to be there but aren't in use (version 1.0.32 of sane-backends in nixos-22.11) + # ls $(dirname $(realpath $(which scanimage)))/../etc/udev + # ls $(dirname $(realpath $(which scanimage)))/../sbin + #sane-backends # DONT bc simple-scan requires sane-backends which in turn requires udev rules to be in place for the scanner to be detected, so on non-nixos installations oof home-manager this simply cannot work. also a mix of non-nixos host provided sane-backends vs simple-scan will not work + #ocrfeeder # import pdf dialog crashes, broken on NixOS-WSL as well + ##pdfsandwich # archlinux rather, gscan2pdf, ocrmypdf + cuneiform + normcap + ##gImageReader # archlinux rather + usbutils.out + #gtk4 + gdb + #libreoffice-qt.out + libcdio-paranoia + #mpvScripts.chapterskip + #mpvScripts.quality-menu + (nerdfonts.override { fonts = [ "UbuntuMono" ]; }) + source-code-pro + ubuntu_font_family + spotify-player + (writeScriptBin "keyboard-de" '' + #!${runtimeShell} + + setxkbmap -model pc104 -layout de + '') + (writeScriptBin "keyboard-en" '' + #!${runtimeShell} + + setxkbmap -model pc104 -layout us -variant altgr-intl + '') + #gtt + ]; + + + + sessionPath = [ + #"${config.home.homeDirectory}/projects/sedo/devops-scripts/bin" + ]; + + sessionVariables = { + # see: https://github.com/NixOS/nixpkgs/issues/38991#issuecomment-400657551 + LOCALE_ARCHIVE_2_11 = "/usr/bin/locale/locale-archive"; + LOCALE_ARCHIVE_2_27 = "${pkgs.glibcLocales}/lib/locale/locale-archive"; + }; + }; + + fonts.fontconfig.enable = true; + + gtk = { + enable = true; + gtk3.extraConfig = { + gtk-cursor-blink = false; + }; + }; + + # not started as of release-23.05 + #programs.tint2 = { + # enable = true; + # extraConfig = '' + # # are we enabled ? + # ''; + #}; + + xdg.enable = true; + + # templates (arch linux) in /etc/xdg/openbox/ (autostart and also rc.xml which is for key shortcuts) + xdg.configFile = { + "openbox/rc.xml".source = "${rootPath}/home/openbox/rc.xml"; + + "openbox/autostart".text = '' + ${pkgs.xorg.xrandr}/bin/xrandr --listmonitors + + # FIXME rather store path ? https://search.nixos.org/packages?query=pcmanfm or https://search.nixos.org/packages?query=pcmanfm-qt + ${pkgs.pcmanfm}/bin/pcmanfm -d & + + ${pkgs.tint2}/bin/tint2 & + + # only archlinux' version of xsecurelock has suid bit set + # still DONT I'll use the home-manager managed user systemd service here + #xss-lock -n /usr/lib/xsecurelock/dimmer -l -- xsecurelock & + systemctl start --user xss-lock + ''; + }; + + # see https://sourcegraph.com/github.com/thiagokokada/nix-configs@e9980c5b31c1aae55c5cb9465fb15137349f7680/-/blob/home-manager/desktop/i3/screen-locker.nix?L24:13 + services.screen-locker = { + enable = true; + xautolock.enable = false; + lockCmd = "xsecurelock"; + xss-lock.extraOptions = [ + "-n /usr/lib/xsecurelock/dimmer" + "-l" + ]; + }; + +} diff --git a/hosts/neon/configuration.nix b/hosts/neon/configuration.nix deleted file mode 100644 index 36563d62..00000000 --- a/hosts/neon/configuration.nix +++ /dev/null @@ -1,129 +0,0 @@ -{ config, lib, pkgs, inputs, ... }: - -{ - imports = [ inputs.impermanence.nixosModules.impermanence ]; - - boot.binfmt.emulatedSystems = [ "aarch64-linux" ]; - - custom = { - agenix.secrets = [ "passwd-root-neon" "passwd-tobias-neon" ]; - - base.desktop = { - enable = true; - laptop = true; - }; - - programs.docker.enable = true; - - system = { - boot.mode = "efi"; - - nvidia-optimus = { - enable = true; - amdgpuBusId = "PCI:6:0:0"; - nvidiaBusId = "PCI:1:0:0"; - }; - }; - }; - - # agenix needs to wait for impermanence - system.activationScripts.agenixNewGeneration.deps = [ "persist-files" ]; - - boot.kernelPackages = pkgs.linuxPackages_latest; - boot.supportedFilesystems = [ "btrfs" ]; - hardware.enableAllFirmware = true; - nixpkgs.config.allowUnfree = true; - - environment.persistence."/persist" = { - hideMounts = true; - directories = [ - "/etc/NetworkManager/system-connections" - "/root/.local/share/nix" - "/var/lib/docker" - "/var/lib/fail2ban" - "/var/lib/systemd/coredump" - ]; - files = [ - "/etc/adjtime" - "/etc/machine-id" - "/root/.bash_history" - "/root/.config/zsh/.zsh_history" - { file = "/root/.age/key.txt"; parentDirectory = { mode = "0700"; }; } - ]; - - users.tobias = { - directories = [ - ".PortfolioPerformance" - ".config/Code" - ".config/audacity" - ".config/google-chrome" - ".config/pulse" - ".config/spotify" - ".config/vlc" - ".eclipse" # for portfolio-performance - ".files" - ".local/share/direnv" - ".local/share/nix" - ".local/state/pnpm" - ".nix-config" - ".password-store" - ".rustup" - ".thunderbird" - ".vscode" - "Documents" - "Downloads" - "projects" - { directory = ".gnupg"; mode = "0700"; } - ]; - files = [ - ".bash_history" - ".config/QtProject.conf" - ".config/gtk-3.0/bookmarks" - ".config/zsh/.zsh_history" - { file = ".age/key.txt"; parentDirectory = { mode = "0700"; }; } - { file = ".ssh/known_hosts"; parentDirectory = { mode = "0700"; }; } - ]; - }; - }; - - security.sudo.extraConfig = '' - Defaults lecture = never - ''; - - boot.initrd.postDeviceCommands = lib.mkBefore '' - mkdir -p /mnt - - mount -o subvol=/ /dev/vg/root /mnt - - # remove auto-created subvolumes in /root subvolume - # - /root/srv - # - /root/var/lib/portables # from systemd - # - /root/var/lib/machines # from systemd - btrfs subvolume list -o /mnt/root \ - | cut -f9 -d' ' \ - | while read subvolume; do - echo "deleting /$subvolume subvolume..." - btrfs subvolume delete "/mnt/$subvolume" - done - - echo "creating /root snapshot..." - btrfs subvolume snapshot -r /mnt/root "/mnt/root-$(date +"%Y-%m-%d-%H-%M-%S")" - - echo "deleting /root subvolume..." - btrfs subvolume delete /mnt/root - - echo "restoring blank /root subvolume..." - btrfs subvolume snapshot /mnt/root-blank /mnt/root - - umount /mnt - ''; - - users = { - mutableUsers = false; - - users = { - root.passwordFile = config.age.secrets.passwd-root-neon.path; - tobias.passwordFile = config.age.secrets.passwd-tobias-neon.path; - }; - }; -} diff --git a/hosts/neon/hardware-configuration.nix b/hosts/neon/hardware-configuration.nix deleted file mode 100644 index 198f0bc3..00000000 --- a/hosts/neon/hardware-configuration.nix +++ /dev/null @@ -1,74 +0,0 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - -{ - imports = - [ - (modulesPath + "/installer/scan/not-detected.nix") - ]; - - boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ]; - boot.initrd.kernelModules = [ "dm-snapshot" ]; - boot.kernelModules = [ "kvm-amd" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { - device = "/dev/disk/by-uuid/6cc6eddf-9d97-4151-95b1-24ed0bea3816"; - fsType = "btrfs"; - options = [ "subvol=root" "compress=zstd" "noatime" ]; - }; - - fileSystems."/nix" = - { - device = "/dev/disk/by-uuid/6cc6eddf-9d97-4151-95b1-24ed0bea3816"; - fsType = "btrfs"; - options = [ "subvol=nix" "compress=zstd" "noatime" ]; - }; - - fileSystems."/persist" = - { - device = "/dev/disk/by-uuid/6cc6eddf-9d97-4151-95b1-24ed0bea3816"; - fsType = "btrfs"; - options = [ "subvol=persist" "compress=zstd" "noatime" ]; - neededForBoot = true; - }; - - fileSystems."/var/log" = - { - device = "/dev/disk/by-uuid/6cc6eddf-9d97-4151-95b1-24ed0bea3816"; - fsType = "btrfs"; - options = [ "subvol=log" "compress=zstd" "noatime" ]; - neededForBoot = true; - }; - - fileSystems."/boot" = - { - device = "/dev/disk/by-uuid/BC56-6BB1"; - fsType = "vfat"; - }; - - fileSystems."/btrfs" = - { - device = "/dev/disk/by-uuid/6cc6eddf-9d97-4151-95b1-24ed0bea3816"; - fsType = "btrfs"; - options = [ "subvol=/" "compress=zstd" "noatime" ]; - }; - - swapDevices = - [{ device = "/dev/disk/by-uuid/db7ba2be-681c-4ee6-9da5-c2c3b9d87534"; }]; - - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking - # (the default) this is the recommended approach. When using systemd-networkd it's - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.docker0.useDHCP = lib.mkDefault true; - # networking.interfaces.eth0.useDHCP = lib.mkDefault true; - # networking.interfaces.wlan0.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/hosts/neon/home-root.nix b/hosts/neon/home-root.nix deleted file mode 100644 index 39bf1b4c..00000000 --- a/hosts/neon/home-root.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - custom.base.general.minimal = true; -} diff --git a/hosts/neon/home-tobias.nix b/hosts/neon/home-tobias.nix deleted file mode 100644 index c82dcf78..00000000 --- a/hosts/neon/home-tobias.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - custom = { - base.desktop = { - enable = true; - laptop = true; - private = true; - }; - - development.nix.nixos.enable = true; - - misc = { - backup = { - enable = true; - directories = [ - "~/Documents/finance" - "~/Documents/general" - ]; - }; - - sdks = { - enable = true; - links = { - inherit (pkgs) python310; - }; - }; - }; - - programs = { - go.enable = true; - - vscode.enable = true; - }; - - services.dwm-status.backlightDevice = "amdgpu_bl*"; - - wm.dwm.enable = true; - }; - - home.packages = with pkgs; [ - openshot-qt - portfolio - skypeforlinux - vlc - zoom-us - ]; - - services.blueman-applet.enable = true; - - xsession.initExtra = '' - xinput set-prop "UNIW0001:00 093A:0255 Touchpad" "Coordinate Transformation Matrix" 2 0 0 0 2 0 0 0 1 - ''; -} diff --git a/hosts/oneplus5/home-nix-on-droid.nix b/hosts/pixel7a/home-nix-on-droid.nix similarity index 86% rename from hosts/oneplus5/home-nix-on-droid.nix rename to hosts/pixel7a/home-nix-on-droid.nix index 7559d0be..d94b848a 100644 --- a/hosts/oneplus5/home-nix-on-droid.nix +++ b/hosts/pixel7a/home-nix-on-droid.nix @@ -18,9 +18,9 @@ programs = { shell.logoutExtra = '' - count="$(${pkgs.procps}/bin/pgrep proot-static | ${pkgs.coreutils}/bin/wc -l)" + count="$(ps -e | grep proot-static | wc -l)" if [[ -z "$SSH_TTY" && "$SHLVL" == 1 && "$count" == 1 ]]; then - ${pkgs.procps}/bin/pkill "^ssh(d|-agent)$" + ps -e | grep -E " ssh(d|-agent)$" | awk '{print $1}' | xargs -I % kill % fi ''; diff --git a/hosts/oneplus5/nix-on-droid.nix b/hosts/pixel7a/nix-on-droid.nix similarity index 91% rename from hosts/oneplus5/nix-on-droid.nix rename to hosts/pixel7a/nix-on-droid.nix index 566edb39..d64ca21f 100644 --- a/hosts/oneplus5/nix-on-droid.nix +++ b/hosts/pixel7a/nix-on-droid.nix @@ -61,19 +61,19 @@ in useUserPackages ; - config = commonConfig.homeManager.userConfig "oneplus5" "nix-on-droid"; + config = commonConfig.homeManager.userConfig "pixel7a" "nix-on-droid"; }; nix = { inherit (commonConfig.nix) package; }; - system.stateVersion = "22.11"; + system.stateVersion = "23.11"; terminal.font = let fontPackage = pkgs.nerdfonts.override { fonts = [ "UbuntuMono" ]; }; - fontPath = "/share/fonts/truetype/NerdFonts/Ubuntu Mono Nerd Font Complete Mono.ttf"; + fontPath = "/share/fonts/truetype/NerdFonts/UbuntuMonoNerdFont-Regular.ttf"; in fontPackage + fontPath; diff --git a/hosts/sams9/home-nix-on-droid.nix b/hosts/sams9/home-nix-on-droid.nix new file mode 100644 index 00000000..cd2e2bcf --- /dev/null +++ b/hosts/sams9/home-nix-on-droid.nix @@ -0,0 +1,95 @@ +{ config, lib, pkgs, rootPath, ... }: { + custom = { + base = { + general.lightWeight = true; + + non-nixos = { + enable = true; + installNix = true; + #builders = [ + # "ssh://private.maiziedemacchiato aarch64-linux - 4" + #]; + }; + + }; + + development.nix.nix-on-droid.enable = true; + + programs = { + tex.enable = true; + # hledger.enable = true; + shell = { + logoutExtra = '' + count="$(ps -e | grep proot-static | wc -l)" + if [[ -z "$SSH_TTY" && "$SHLVL" == 1 && "$count" == 1 ]]; then + ps -e | grep -E " ssh(d|-agent)$" | awk '{print $1}' | xargs -I % kill % + fi + ''; + # for ssh smartphone nix -version, probably redundant though https://github.com/search?q=repo%3Anix-community%2Fnix-on-droid%20nix-on-droid-session-init.sh&type=code + # envExtra = '' + # . "${config.home.profileDirectory}/etc/profile.d/nix-on-droid-session-init.sh" + # ''; + }; + + ssh = { + cleanKeysOnShellStartup = false; + controlMaster = "no"; + modules = [ "private" ]; + }; + + # FIXME: tmux does not start + tmux.enable = lib.mkForce false; + + }; + }; + + home = { + packages = with pkgs; [ + /* + (writeShellScriptBin "tailscale" '' + ${pkgs.sysvtools}/bin/pidof tailscaled &>/dev/null || { + echo "starting tailscaled" + nohup ${pkgs.busybox}/bin/setsid ${pkgs.tailscale}/bin/tailscaled -tun userspace-networking /dev/null & jobs -p %1 + } + + [[ -n $1 ]] && { + ${pkgs.tailscale}/bin/tailscale "$@" + } + '') + */ + #hydra-check + #pandoc + #nixd + #mermaid-cli + #chafa + # asciinema + ]; + + activation = let inherit config; in { + copyFont = + let + font_src = "${pkgs.carlito}/share/fonts/truetype/."; + font_dst = "${config.home.homeDirectory}/texmf/fonts/truetype/Carlito"; + in + lib.hm.dag.entryAfter [ "writeBoundary" ] '' + test -e "${font_dst}" && comm -1 -3 <(sha1sum ${font_src}/*.ttf|cut -d' ' -f1) <(sha1sum ${font_dst}/*.ttf|cut -d' ' -f1) &>/dev/null + if [ $? -ne 0 ] + then + mkdir -p "${font_dst}" + cp -R "${font_src}" "${font_dst}" + fi + ''; + }; + }; + + # FIXME: without overrides produces warnings + home.language = { + collate = lib.mkForce null; + ctype = lib.mkForce null; + messages = lib.mkForce null; + numeric = lib.mkForce null; + time = lib.mkForce null; + }; + + xdg.enable = true; +} diff --git a/hosts/sams9/nix-on-droid.nix b/hosts/sams9/nix-on-droid.nix new file mode 100644 index 00000000..cceb29e7 --- /dev/null +++ b/hosts/sams9/nix-on-droid.nix @@ -0,0 +1,120 @@ +{ config, lib, pkgs, homeModules, inputs, rootPath, ... }@configArgs: + +let + sshdTmpDirectory = "${config.user.home}/sshd-tmp"; + sshdDirectory = "${config.user.home}/sshd"; + sshdConfig = '' + UsePAM=no\nForceCommand eval ". ${config.home-manager.config.home.profileDirectory}/etc/profile.d/nix-on-droid-session-init.sh" ; nice -n20 nix-store --serve --write\nHostKey ${sshdDirectory}/ssh_host_ed25519_key\nPort 8022\n + ''; + + commonConfig = config.lib.custom.commonConfig configArgs; + + inherit (lib) + concatStringsSep + ; +in +{ + # FIXME: Move sshd config to nix-on-droid + # DONE It is practical that this way all the files are still accessible + build.activation.sshd = '' + $DRY_RUN_CMD mkdir $VERBOSE_ARG --parents "${config.user.home}/.ssh" + $DRY_RUN_CMD cat "${rootPath}/files/keys/id_ed25519.daniel.pub" > "${config.user.home}/.ssh/authorized_keys" + $DRY_RUN_CMD cat "${rootPath}/files/keys/id_ed25519.danielwdws.pub" >> "${config.user.home}/.ssh/authorized_keys" + + if [[ ! -d "${sshdDirectory}" ]]; then + $DRY_RUN_CMD rm $VERBOSE_ARG --recursive --force "${sshdTmpDirectory}" + $DRY_RUN_CMD mkdir $VERBOSE_ARG --parents "${sshdTmpDirectory}" + + $VERBOSE_ECHO "Generating host keys..." + $DRY_RUN_CMD ${pkgs.openssh}/bin/ssh-keygen -t ed25519 -f "${sshdTmpDirectory}/ssh_host_ed25519_key" -N "" + $VERBOSE_ECHO "Writing sshd_config..." + $DRY_RUN_CMD echo -e "${sshdConfig}" > "${sshdTmpDirectory}/sshd_config" + + $DRY_RUN_CMD mv $VERBOSE_ARG "${sshdTmpDirectory}" "${sshdDirectory}" + fi + ''; + + environment = { + etcBackupExtension = ".nod-bak"; + motd = null; + packages = with pkgs; [ + diffutils + findutils + gawk + gnugrep + gnused + gnutar + hostname + man + ncurses + procps + psmisc + # TODO Maybe do sshd-start here as gerschtli does + gzip + which + micro + (writeScriptBin "debug-ssl" '' + #!${runtimeShell} + + openssl s_client -connect nixos.org:443 + '') + (writeScriptBin "sshd-start" '' + #!${runtimeShell} + + echo "Starting sshd in non-daemonized way on port 8022" + ${openssh}/bin/sshd -f "${sshdDirectory}/sshd_config" -D + '') + ]; + }; + + home-manager = { + inherit (commonConfig.homeManager.baseConfig) + backupFileExtension + extraSpecialArgs + sharedModules + useGlobalPkgs + useUserPackages + ; + + config = commonConfig.homeManager.userConfig "sams9" "nix-on-droid"; + }; + + nix = + # Disabling the extraOptions part now as of gha run # 149 + let + inherit (commonConfig.nix.settings) + trusted-public-keys + experimental-features + log-lines + ; + in + { + inherit (commonConfig.nix) nixPath package registry; + inherit (commonConfig.nix.settings) substituters; + trustedPublicKeys = trusted-public-keys; + # https://nixos.org/manual/nix/stable/command-ref/conf-file#conf-experimental-features nix --version 2.15.2 + # see https://github.com/nix-community/nix-on-droid/blob/ae0569f/modules/environment/nix.nix#L107 and https://github.com/nix-community/nix-on-droid/issues/166 + extraOptions = '' + keep-derivations = true + keep-outputs = true + experimental-features = ${concatStringsSep " " experimental-features} + flake-registry = + log-lines = ${toString log-lines} + ''; + }; + + # FIXME: update when released + system.stateVersion = "23.11"; + + terminal.font = + let + fontPackage = pkgs.nerdfonts.override { + fonts = [ "UbuntuMono" ]; + }; + fontPath = "/share/fonts/truetype/NerdFonts/UbuntuMonoNerdFont-Regular.ttf"; + in + fontPackage + fontPath; + + time.timeZone = "Europe/Berlin"; + +} diff --git a/hosts/xenon/configuration.nix b/hosts/xenon/configuration.nix deleted file mode 100644 index 662c3ea8..00000000 --- a/hosts/xenon/configuration.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - custom = { - agenix.secrets = [ "wireless-config" ]; - - base.server.enable = true; - - services.storage = { - enable = true; - mountDevice = "/dev/disk/by-uuid/e3cda2ab-9b36-4d60-9a9c-dfba6f00ab32"; - interval = "Wed *-*-* 04:00:00"; - expiresAfter = 90; - server = [ - { - name = "argon"; - ip = "141.147.62.247"; - } - { - name = "krypton"; - ip = "195.201.88.53"; - } - ]; - }; - - system.boot.mode = "raspberry"; - }; - - environment.systemPackages = with pkgs; [ - exfat - ntfs3g - ]; - - # hardware.bluetooth.enable = true; - - networking.wireless = { - enable = true; - environmentFile = config.age.secrets.wireless-config.path; - networks."Fritzens WLAN".psk = "@PSK@"; - }; - - # needed because wpa_supplicant fails on startup - # see https://github.com/NixOS/nixpkgs/issues/82462 - systemd.services.wpa_supplicant.serviceConfig = { - Restart = "always"; - RestartSec = 5; - }; -} diff --git a/hosts/xenon/hardware-configuration.nix b/hosts/xenon/hardware-configuration.nix deleted file mode 100644 index dcd553c9..00000000 --- a/hosts/xenon/hardware-configuration.nix +++ /dev/null @@ -1,42 +0,0 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - -{ - imports = - [ - (modulesPath + "/installer/scan/not-detected.nix") - ]; - - boot.initrd.availableKernelModules = [ "usb_storage" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { - device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888"; - fsType = "ext4"; - }; - - fileSystems."/nix/store" = - { - device = "/nix/store"; - fsType = "none"; - options = [ "bind" ]; - }; - - swapDevices = - [{ device = "/swapfile"; }]; - - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking - # (the default) this is the recommended approach. When using systemd-networkd it's - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.eth0.useDHCP = lib.mkDefault true; - # networking.interfaces.wlan0.useDHCP = lib.mkDefault true; - - powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand"; -} diff --git a/hosts/xenon/home-root.nix b/hosts/xenon/home-root.nix deleted file mode 100644 index 3fefb198..00000000 --- a/hosts/xenon/home-root.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - custom.base.general = { - lightWeight = true; - minimal = true; - }; -} diff --git a/hosts/xenon/home-tobias.nix b/hosts/xenon/home-tobias.nix deleted file mode 100644 index 0fe5858f..00000000 --- a/hosts/xenon/home-tobias.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - custom = { - base.general.lightWeight = true; - - development.nix.nixos.enable = true; - }; -} diff --git a/lib/common-config.nix b/lib/common-config.nix index d6df0547..8614c85d 100644 --- a/lib/common-config.nix +++ b/lib/common-config.nix @@ -8,7 +8,7 @@ _: backupFileExtension = "hm-bak"; extraSpecialArgs = { inherit inputs rootPath; }; sharedModules = homeModules; - useGlobalPkgs = true; + useGlobalPkgs = true; # disables options nixpkgs.* useUserPackages = true; }; @@ -17,22 +17,41 @@ _: nix = { settings = { + # TODO https://discourse.nixos.org/t/merged-list-contains-duplicates/38004 substituters = [ - "https://cache.nixos.org" - "https://gerschtli.cachix.org" - "https://nix-on-droid.cachix.org" + "https://573-bc.cachix.org/" + "https://cache.nixos.org/" + "https://nix-on-droid.cachix.org/" + "https://arm.cachix.org/" + "https://cachix.cachix.org/" + "https://coq.cachix.org/" + #"https://devenv.cachix.org" + "https://gerschtli.cachix.org/" + "https://haskell-language-server.cachix.org/" + "https://nix-community.cachix.org/" + "https://nixpkgs-ruby.cachix.org/" ]; trusted-public-keys = lib.mkForce [ + "573-bc.cachix.org-1:2XtNmCSdhLggQe4UTa4i3FSDIbYWx/m1gsBOxS6heJs=" "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" - "gerschtli.cachix.org-1:dWJ/WiIA3W2tTornS/2agax+OI0yQF8ZA2SFjU56vZ0=" "nix-on-droid.cachix.org-1:56snoMJTXmDRC1Ei24CmKoUqvHJ9XCp+nidK7qkMQrU=" + "arm.cachix.org-1:K3XjAeWPgWkFtSS9ge5LJSLw3xgnNqyOaG7MDecmTQ8=" + "cachix.cachix.org-1:eWNHQldwUO7G2VkjpnjDbWwy4KQ/HNxht7H4SSoMckM=" + "coq.cachix.org-1:5QW/wwEnD+l2jvN6QRbRRsa4hBHG3QiQQ26cxu1F5tI=" + #"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" + "gerschtli.cachix.org-1:dWJ/WiIA3W2tTornS/2agax+OI0yQF8ZA2SFjU56vZ0=" + "haskell-language-server.cachix.org-1:juFfHrwkOxqIOZShtC4YC1uT1bBcq2RSvC7OMKx0Nz8=" + "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + "nixpkgs-ruby.cachix.org-1:vrcdi50fTolOxWCZZkw0jakOnUI1T19oYJ+PRYdK4SM=" ]; - experimental-features = [ "nix-command" "flakes" ]; - log-lines = 30; - flake-registry = null; + experimental-features = [ "nix-command" "flakes" "configurable-impure-env" "auto-allocate-uids" ]; + log-lines = 35; + # discourse:nix-flake-update-timeout/17215/5 + #flake-registry = null; + flake-registry = "${inputs.flake-registry}/flake-registry.json"; }; - package = pkgs.nixVersions.nix_2_13; + package = pkgs.nixVersions.nix_2_19; registry = { nixpkgs.flake = inputs.nixpkgs; nix-config.flake = inputs.self; diff --git a/lib/script/default.nix b/lib/script/default.nix index 87fbc9fc..45cb71c9 100644 --- a/lib/script/default.nix +++ b/lib/script/default.nix @@ -24,23 +24,25 @@ let + optionalString (envs ? _doNotClearPath && envs._doNotClearPath) ":\${PATH}"; }) '' - file=${destPath} - mkdir --parents "$(dirname "$file")" + file=${destPath} + mkdir --parents "$(dirname "$file")" - cat ${preamble} "${file}" > "$file" - substituteAllInPlace "$file" + #variables = { } // optionalAttrs (isLinux && isAarch64) { emacs = "emacs -nw"; }; - ${pkgs.shellcheck}/bin/shellcheck \ - --check-sourced \ - --enable all \ - --exclude SC2310,SC2312 \ - --external-sources \ - --shell bash \ - "$file" + cat ${preamble} "${file}" > "$file" + substituteAllInPlace "$file" - ${optionalString executable '' - chmod +x "$file" - ''} + ${pkgs.shellcheck}/bin/shellcheck \ + --check-sourced \ + --enable all \ + --exclude SC2310,SC2312 \ + --external-sources \ + --shell bash \ + "$file" + + ${optionalString executable '' + chmod +x "$file" + ''} ''; in diff --git a/lib/wrap-program.nix b/lib/wrap-program.nix index c8dd860f..ac4c9cfd 100644 --- a/lib/wrap-program.nix +++ b/lib/wrap-program.nix @@ -1,8 +1,8 @@ { lib, pkgs }: { - wrapProgram = { name, desktopFileName ? name, source, path, packages ? [ ], flags ? [ ], fixGL ? false }: - if packages == [ ] && flags == [ ] && !fixGL + wrapProgram = let inherit (lib) stringLength; in { name, desktopFileName ? name, source, path, packages ? [ ], editor ? "", flags ? [ ], fixGL ? false }: + if packages == [ ] && flags == [ ] && !fixGL && stringLength editor == 0 then source else pkgs.symlinkJoin { @@ -17,6 +17,7 @@ filter hasPrefix splitString + stringLength readFile ; @@ -30,22 +31,27 @@ wrapProgramArgsForFixGL = concatMapStringsSep " " (line: "--run ${escapeShellArg line}") filteredLines; in '' - # desktop entry - if [[ -L "${out}/share/applications" ]]; then - rm "${out}/share/applications" - mkdir "${out}/share/applications" - else - rm "${out + desktopEntryPath}" - fi + # desktop entry + if [[ -L "${out}/share/applications" ]]; then + rm "${out}/share/applications" + mkdir "${out}/share/applications" + else + if [[ -f "${out + desktopEntryPath}" ]]; then + rm "${out + desktopEntryPath}" + fi + fi - sed -e "s|Exec=${source + path}|Exec=${out + path}|" \ - "${source + desktopEntryPath}" \ - > "${out + desktopEntryPath}" + if [[ -f "${source + desktopEntryPath}" ]]; then + sed -e "s|Exec=${source + path}|Exec=${out + path}|" \ + "${source + desktopEntryPath}" \ + > "${out + desktopEntryPath}" + fi - wrapProgram "${out + path}" \ - ${lib.optionalString fixGL wrapProgramArgsForFixGL} \ - ${lib.optionalString (packages != []) ''--prefix PATH : "${lib.makeBinPath packages}"''} \ - ${lib.optionalString (flags != []) ''--add-flags "${toString flags}"''} + wrapProgram "${out + path}" \ + ${lib.optionalString fixGL wrapProgramArgsForFixGL} \ + ${lib.optionalString (packages != []) ''--prefix PATH : "${lib.makeBinPath packages}"''} \ + ${lib.optionalString (stringLength editor != 0) ''--prefix EDITOR : "${editor}"''} \ + ${lib.optionalString (flags != []) ''--add-flags "${toString flags}"''} ''; }; } diff --git a/nixos/applications/downloads.nix b/nixos/applications/downloads.nix deleted file mode 100644 index 0a1b243e..00000000 --- a/nixos/applications/downloads.nix +++ /dev/null @@ -1,63 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - ; - - cfg = config.custom.applications.downloads; - - location = "/var/lib/downloads.tobias-happ.de"; -in - -{ - - ###### interface - - options = { - - custom.applications.downloads.enable = mkEnableOption "downloads.tobias-happ.de"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom.services.nginx.enable = true; - - services.nginx.virtualHosts."downloads.tobias-happ.de" = { - enableACME = true; - forceSSL = true; - root = location; - - extraConfig = '' - autoindex on; - disable_symlinks off; - - error_page 403 /403.html; - error_page 404 /404.html; - ''; - - locations = { - "= /403.html".alias = pkgs.writeText "403.html" "403 - Forbidden"; - - "= /404.html".alias = pkgs.writeText "404.html" "404 - Not Found"; - - "= /robots.txt".alias = pkgs.writeText "robots.txt" '' - User-agent: * - Disallow: / - ''; - }; - }; - - # FIXME use systemd tmpfiles - system.activationScripts.downloads = '' - mkdir -p ${location} - ''; - - }; - -} diff --git a/nixos/applications/original-chattengauer.nix b/nixos/applications/original-chattengauer.nix deleted file mode 100644 index 94e1eac2..00000000 --- a/nixos/applications/original-chattengauer.nix +++ /dev/null @@ -1,103 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkForce - mkIf - ; - - cfg = config.custom.applications.original-chattengauer; - - location = "/var/lib/original-chattengauer/app"; - httpdPort = 8080; - domain = "original-chattengauer.de"; -in - -{ - - ###### interface - - options = { - - custom.applications.original-chattengauer.enable = mkEnableOption domain; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - containers.oc = { - autoStart = true; - bindMounts.${location} = { - hostPath = location; - isReadOnly = false; - }; - - config = - let - pkgs' = pkgs; - in - { pkgs, ... }: - { - nixpkgs.pkgs = pkgs'; - - services.httpd = { - enable = true; - adminAddr = "tobias.happ@gmx.de"; - enablePHP = true; - phpPackage = pkgs.php74; - extraModules = [ "rewrite" ]; - - virtualHosts.${domain} = { - documentRoot = location; - locations."/".index = "index.php"; - listen = [{ port = httpdPort; }]; - - extraConfig = '' - - AllowOverride All - - ''; - }; - }; - - system = { inherit (config.system) stateVersion; }; - }; - }; - - custom = { - services = { - backup.services.oc-uploads = { - description = "Uploads of ${domain}"; - interval = "Tue *-*-* 03:00:00"; - - directoryToBackup = "${location}/uploads"; - }; - - mysql = { - enable = true; - backups = [ "original_chattengauer" ]; - }; - - nginx.enable = true; - }; - }; - - security.acme.certs.${domain}.extraDomainNames = [ "www.${domain}" ]; - - services = { - mysql.package = mkForce pkgs.mysql57; - - nginx.virtualHosts.${domain} = { - enableACME = true; - forceSSL = true; - locations."/".proxyPass = "http://127.0.0.1:${toString httpdPort}/"; - }; - }; - - }; - -} diff --git a/nixos/applications/tobias-happ/default.nix b/nixos/applications/tobias-happ/default.nix deleted file mode 100644 index ddee59ab..00000000 --- a/nixos/applications/tobias-happ/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - ; - - cfg = config.custom.applications.tobias-happ; - - website = pkgs.runCommand "tobias-happ.de" { } '' - install -D -m 0400 ${./index.html} ${placeholder "out"}/index.html - install -D -m 0400 ${./robots.txt} ${placeholder "out"}/robots.txt - ''; -in - -{ - - ###### interface - - options = { - - custom.applications.tobias-happ.enable = mkEnableOption "tobias-happ.de"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom.services.nginx.enable = true; - - services.nginx.virtualHosts = { - "tobias-happ.de" = { - default = true; - root = website; - enableACME = true; - forceSSL = true; - extraConfig = "error_page 404 @notfound;"; - locations = { - "/".index = "index.html"; - "@notfound".extraConfig = "return 302 /;"; - }; - }; - - "*.tobias-happ.de".extraConfig = "return 302 https://tobias-happ.de/;"; - }; - - }; - -} diff --git a/nixos/applications/tobias-happ/index.html b/nixos/applications/tobias-happ/index.html deleted file mode 100644 index b4b4c126..00000000 --- a/nixos/applications/tobias-happ/index.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - Tobias Happ - - - - - - - - - - - -

Just an empty space, probably not forever but who knows…

- - - diff --git a/nixos/applications/tobias-happ/robots.txt b/nixos/applications/tobias-happ/robots.txt deleted file mode 100644 index 1f53798b..00000000 --- a/nixos/applications/tobias-happ/robots.txt +++ /dev/null @@ -1,2 +0,0 @@ -User-agent: * -Disallow: / diff --git a/nixos/base/desktop.nix b/nixos/base/desktop.nix deleted file mode 100644 index 52bdab05..00000000 --- a/nixos/base/desktop.nix +++ /dev/null @@ -1,135 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - mkMerge - ; - - cfg = config.custom.base.desktop; -in - -{ - - ###### interface - - options = { - - custom.base.desktop = { - enable = mkEnableOption "basic desktop config"; - - enableXserver = mkEnableOption "xserver config" // { default = true; }; - - laptop = mkEnableOption "services and config for battery, network, backlight"; - }; - - }; - - - ###### implementation - - config = mkIf cfg.enable (mkMerge [ - { - boot = { - # The default max inotify watches is 8192. - # Nowadays most apps require a good number of inotify watches, - # the value below is used by default on several other distros. - kernel.sysctl."fs.inotify.max_user_watches" = 524288; - - tmpOnTmpfs = true; - }; - - custom.system.boot.mode = "efi"; - - environment.systemPackages = with pkgs; [ - exfat - ntfs3g - - jmtpfs # use like jmtpfs /mnt - ]; - - fonts = { - enableDefaultFonts = true; - enableGhostscriptFonts = true; - fontDir.enable = true; - - fonts = with pkgs; [ - (nerdfonts.override { fonts = [ "UbuntuMono" ]; }) - source-code-pro - ubuntu_font_family - ]; - }; - - hardware = { - opengl.enable = true; - pulseaudio.enable = true; - }; - - programs.ssh.askPassword = ""; - - services.xserver = mkIf cfg.enableXserver { - enable = true; - - displayManager.lightdm.enable = true; - - # FIXME: why is this line needed? ~/.xsession is executed anyway.. - windowManager.dwm.enable = true; - }; - - sound.enable = true; - - xdg = { - autostart.enable = true; - icons.enable = true; - menus.enable = true; - mime.enable = true; - sounds.enable = true; - }; - } - - (mkIf cfg.laptop - { - hardware = { - bluetooth = { - enable = true; - disabledPlugins = [ "sap" ]; - # fix error logs on boot - settings.General.Experimental = true; - }; - - # for bluetooth support - pulseaudio.package = pkgs.pulseaudioFull; - }; - - networking.networkmanager.enable = true; - - programs.light.enable = true; - - services = { - blueman.enable = true; - - logind.extraConfig = '' - HandlePowerKey=ignore - ''; - - upower.enable = true; - - xserver.libinput = mkIf cfg.enableXserver { - enable = true; - touchpad = { - accelProfile = "flat"; - additionalOptions = '' - Option "TappingButtonMap" "lmr" - ''; - }; - }; - }; - - users.users.tobias.extraGroups = [ "networkmanager" "video" ]; - } - ) - - ]); - -} diff --git a/nixos/base/general.nix b/nixos/base/general.nix index a93145f1..c763b6e4 100644 --- a/nixos/base/general.nix +++ b/nixos/base/general.nix @@ -1,11 +1,12 @@ { config, lib, pkgs, homeModules, inputs, rootPath, ... }@configArgs: - +# TODO https://github.com/search?q=repo%3AGerschtli%2Fnix-config%20custom.base.desktop&type=code let inherit (lib) genAttrs mkEnableOption mkForce mkIf + mkMerge mkOption types ; @@ -16,19 +17,37 @@ let in { - - imports = [ inputs.home-manager.nixosModules.home-manager ]; + # See https://sourcegraph.com/github.com/michalrus/dotfiles/-/blob/machines/_shared_/features/canoscan-lide-20/default.nix?L34:11 + # but also https://discourse.nixos.org/t/whats-the-difference-between-extraargs-and-specialargs-for-lib-eval-config-nix/5281/2 + disabledModules = [ "services/hardware/sane.nix" ]; + + imports = [ + inputs.home-manager.nixosModules.home-manager + # Is in 23.05 + # "${inputs.latest}/nixos/modules/services/web-apps/photoprism.nix" + + # FIXME Can this be guarded somehow as well ? + inputs.nixos-wsl.nixosModules.wsl + # TODO could this be elevated to use unstable home-manager modules in parallel to release-XX as well ? + (args@{ config, lib, pkgs, ... }: + import "${inputs.nixpkgs.outPath}/nixos/modules/services/hardware/sane.nix" + (args // { pkgs = inputs.nixos-2211.legacyPackages.${pkgs.system}; }) + # above works, but FIXME does not work (again) in unstable yet + #(args // { pkgs = inputs.unstable.legacyPackages.${pkgs.system}; }) + ) + ]; ###### interface options = { - custom.base.general = { enable = mkEnableOption "basic config" // { default = true; }; + wsl = mkEnableOption "nixos-wsl specific config"; + hostname = mkOption { - type = types.enum [ "argon" "krypton" "neon" "xenon" ]; + type = types.enum [ "DANIELKNB1" ]; description = "Host name."; }; }; @@ -38,90 +57,255 @@ in ###### implementation - config = mkIf cfg.enable { + config = mkIf cfg.enable (mkMerge [ + { - boot.cleanTmpDir = true; + boot.tmp.cleanOnBoot = true; - console.keyMap = "de"; + console.keyMap = "de"; - custom = { - cachix-agent.enable = true; + custom = { + system.firewall.enable = true; + }; - system.firewall.enable = true; - }; + documentation.nixos.enable = false; - environment = { - defaultPackages = [ ]; - shellAliases = mkForce { }; - }; + environment = { + defaultPackages = [ ]; + shellAliases = mkForce { }; + }; - home-manager = { - inherit (commonConfig.homeManager.baseConfig) - backupFileExtension - extraSpecialArgs - sharedModules - useGlobalPkgs - useUserPackages - ; + home-manager = { + inherit (commonConfig.homeManager.baseConfig) + backupFileExtension + extraSpecialArgs + sharedModules + useGlobalPkgs + useUserPackages + ; - users = genAttrs [ "root" "tobias" ] (commonConfig.homeManager.userConfig cfg.hostname); - }; + users = genAttrs [ "root" "nixos" ] (commonConfig.homeManager.userConfig cfg.hostname); + }; - i18n.supportedLocales = [ - "C.UTF-8/UTF-8" - "de_DE.UTF-8/UTF-8" - "en_US.UTF-8/UTF-8" - ]; + i18n.supportedLocales = [ + "C.UTF-8/UTF-8" + "de_DE.UTF-8/UTF-8" + "en_US.UTF-8/UTF-8" + ]; - networking = { - hostName = cfg.hostname; - usePredictableInterfaceNames = false; - }; + networking = { + hostName = cfg.hostname; + usePredictableInterfaceNames = false; + }; - nix = { - settings = { - inherit (commonConfig.nix.settings) - experimental-features - flake-registry - log-lines - substituters - trusted-public-keys + nix = { + settings = { + inherit (commonConfig.nix.settings) + experimental-features + flake-registry + log-lines + substituters + trusted-public-keys + ; + + trusted-users = [ "root" "nixos" ]; + }; + + inherit (commonConfig.nix) + nixPath + package + registry ; + }; - trusted-users = [ "root" "tobias" ]; + system = { + configurationRevision = inputs.self.rev or "dirty"; + stateVersion = "23.11"; }; - inherit (commonConfig.nix) - nixPath - package - registry - ; - }; + time.timeZone = "Europe/Berlin"; + + # for NixOS-WSL in case of own user, see https://github.com/nix-community/NixOS-WSL/blob/4840f5d/modules/wsl-distro.nix#L89C5-L93C7 + # DONT for now using only NixOS-WSL and there only nixos user + #users.users = { + # dkahlenberg = { + # uid = config.custom.ids.uids.dkahlenberg; + # extraGroups = [ "wheel" ]; + # isNormalUser = true; + # }; + #}; + } + + (mkIf (cfg.wsl) { + + custom.wsl.usbip.enable = true; + + custom.system.boot.enable = mkForce false; + + wsl = { + enable = true; + # see https://github.com/nix-community/NixOS-WSL/blob/4840f5d/modules/wsl-distro.nix#L17 + #defaultUser = "dkahlenberg"; + # FIXME Disabled due to Windows Update 21.11.23 + # FIXME wsl-vpnkit / journalctl: "cannot connect to host: fork/exec /nix/store/ifayrgnd020y38gssz3x4y3sld0sdry5-gvproxy-0.7.1/bin/gvproxy-windows.exe: exec format error" + interop.register = true; + + # https://github.com/nix-community/NixOS-WSL/commit/7f6189c658963fce68ab38fa9200729a6328f280 + usbip = { + enable = true; + autoAttach = [ "1-1" "1-2" ]; + }; + + wslConf.user.default = "nixos"; + + # FIXME disabled until https://www.catalog.update.microsoft.com/Search.aspx?q=KB5020030, https://support.microsoft.com/en-us/topic/november-15-2022-kb5020030-os-builds-19042-2311-19043-2311-19044-2311-and-19045-2311-preview-237a9048-f853-4e29-a3a2-62efdbea95e2 https://devblogs.microsoft.com/commandline/the-windows-subsystem-for-linux-in-the-microsoft-store-is-now-generally-available-on-windows-10-and-11/, native systemd needs these versions + # FIXME Disabled due to Windows Update 21.11.23 + nativeSystemd = true; + # docker-native = { # https://github.com/573/nix-config-1/actions/runs/6403582504/job/17382383615#step:8:164, "Additional workarounds are no longer required for Docker to work. Please use the standard `virtualisation.docker` NixOS options." + # enable = true; + #}; + }; - programs.zsh = { - enable = true; - enableGlobalCompInit = false; - promptInit = ""; - }; + services = { + syncthing = { + enable = true; + # see https://nixos.wiki/wiki/Syncthing + user = "nixos"; + configDir = "/home/nixos/.config/syncthing"; + settings = { + devices = { + "Newer Laptop" = { + id = "FDBTMR3-XQDMU6L-AJF6WBP-WC65GPB-ZS67G4Q-7KWG3LY-2JGOSL7-Z4QUJQF"; + }; + }; + }; + }; + }; - system = { - configurationRevision = inputs.self.rev or "dirty"; - stateVersion = "22.11"; - }; + # TODO Separate nvidia.nix + /* hardware.opengl = { + driSupport = true; + }; + + # Load nvidia driver for Xorg and Wayland + services.xserver.videoDrivers = [ "nvidia" ]; + #nixpkgs.config.cudaSupport = true; + + hardware.nvidia = { + modesetting.enable = true; + + # Nvidia power management. Experimental, and can cause sleep/suspend to fail. + powerManagement.enable = false; + # Fine-grained power management. Turns off GPU when not in use. + # Experimental and only works on modern Nvidia GPUs (Turing or newer). + powerManagement.finegrained = false; + + # Use the NVidia open source kernel module (not to be confused with the + # independent third-party "nouveau" open source driver). + # Support is limited to the Turing and later architectures. Full list of + # supported GPUs is at: + # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus + # Only available from driver 515.43.04+ + # Currently alpha-quality/buggy, so false is currently the recommended setting. + open = false; + + # Enable the Nvidia settings menu, + # accessible via `nvidia-settings`. + nvidiaSettings = true; + + # Optionally, you may need to select the appropriate driver version for your specific GPU. + package = config.boot.kernelPackages.nvidiaPackages.stable; + }; + + environment.systemPackages = with pkgs; [ + cudatoolkit + ]; + */ + + # FIXME Windows-Update 21.11.23 + virtualisation.docker = { + enable = true; + # enableNvidia = true; + + storageDriver = "overlay2"; + # https://github.com/NVIDIA/nvidia-docker/issues/942 + #virtualisation.docker.enableNvidia = true; + # TODO Encapsulate in work.enable the case where rootless is not used + rootless = { + enable = true; + # for the "whole" discussion of it (rootless or not) i. e. https://discourse.nixos.org/t/docker-rootless-with-nvidia-support/37069 + setSocketVariable = true; # false for driver exact support + /* daemon.settings = { + runtimes = { + nvidia = { + path = "${pkgs.nvidia-docker}/bin/nvidia-container-runtime"; + }; + }; + }; + */ + }; + }; - time.timeZone = "Europe/Berlin"; + # https://github.com/nix-community/NixOS-WSL/blob/0fa9268bf9a903498cb567e6d4d01eb945f36f6e/tests/docker/docker-native.nix#L9 + users.users.nixos.extraGroups = [ "docker" ]; - users.users = { - root.shell = pkgs.zsh; + environment.defaultPackages = [ pkgs.wslu ]; - tobias = { - uid = config.custom.ids.uids.tobias; - extraGroups = [ "wheel" ]; - isNormalUser = true; - shell = pkgs.zsh; + # TODO idea: https://github.com/nix-community/NixOS-WSL/pull/203 + # environment.systemPackages = [ pkgs.tailscale ]; + + # see https://github.com/sakai135/wsl-vpnkit/blob/5084c6d/wsl-vpnkit.service + # see flake/nixpkgs.nix regarding changes regarding Windows-Update 21.11.23 + systemd.services.wsl-vpnkit = { + enable = true; + description = "wsl-vpnkit"; + after = [ "network.target" ]; + #wantedBy = [ "multi-user.target" ]; + + serviceConfig = { + ExecStart = "${pkgs.wsl-vpnkit}/bin/wsl-vpnkit"; + Restart = "always"; + RestartSec = "30s"; + KillMode = "mixed"; + }; }; - }; - }; + # https://github.com/nix-community/NixOS-WSL/issues/246#issuecomment-1577173622 + # to run: NIX_LD_LIBRARY_PATH=/usr/lib/wsl/lib/ /usr/lib/wsl/lib/nvidia-smi + #programs.nix-ld.enable = true; + # see https://github.com/nix-community/NixOS-WSL/discussions/92 + programs.nix-ld = { + enable = true; + package = pkgs.nix-ld-rs; + # TODO https://github.com/Mic92/dotfiles/blob/1b76848e2b5951bc9041af95a834a08b68e146fd/nixos/modules/nix-ld.nix + libraries = with pkgs; [ + stdenv.cc.cc # for libstdc++.so.6 + ]; + }; + /*environment.variables = { + NIX_LD_LIBRARY_PATH = lib.mkDefault (lib.makeLibraryPath [ + pkgs.stdenv.cc.cc + ]); + #NIX_LD = builtins.readFile "${pkgs.stdenv.cc}/nix-support/dynamic-linker"; #"${pkgs.glibc}/lib/ld-linux-x86-64.so.2"; + NIX_LD = lib.mkDefault pkgs.stdenv.cc.bintools.dynamicLinker; + };*/ + + hardware.opengl = { + enable = true; + driSupport32Bit = true; + }; + + # FIXME Windows-Update 21.11.23 + #services.tailscale.enable = true; + + # https://github.com/nix-community/NixOS-WSL/discussions/71 + security.sudo.wheelNeedsPassword = true; + + # https://discourse.nixos.org/t/gpu-enabled-docker-containers-in-nixos/23870/2 + systemd.enableUnifiedCgroupHierarchy = false; + + }) + + ]); } diff --git a/nixos/base/server.nix b/nixos/base/server.nix deleted file mode 100644 index 8dc5da5e..00000000 --- a/nixos/base/server.nix +++ /dev/null @@ -1,72 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - mkOption - types - ; - - cfg = config.custom.base.server; -in - -{ - - ###### interface - - options = { - - custom.base.server = { - enable = mkEnableOption "basic server config"; - - ipv6Address = mkOption { - type = types.nullOr types.str; - default = null; - description = "IPv6 address."; - }; - }; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom.services.openssh.enable = true; - - networking = mkIf (cfg.ipv6Address != null) { - defaultGateway6 = { - address = "fe80::1"; - interface = "eth0"; - }; - - interfaces.eth0.ipv6.addresses = [ - { - address = cfg.ipv6Address; - prefixLength = 64; - } - ]; - }; - - nix = { - gc = { - automatic = true; - dates = "Mon *-*-* 00:00:00"; - options = "--delete-older-than 14d"; - }; - - optimise = { - automatic = true; - dates = [ "Mon *-*-* 01:00:00" ]; - }; - }; - - services.journald.extraConfig = '' - SystemMaxUse=2G - ''; - - }; - -} diff --git a/nixos/misc/agenix.nix b/nixos/misc/agenix.nix deleted file mode 100644 index 7a1580ae..00000000 --- a/nixos/misc/agenix.nix +++ /dev/null @@ -1,143 +0,0 @@ -{ config, lib, pkgs, inputs, rootPath, ... }: - -let - inherit (lib) - elem - mkIf - mkMerge - mkOption - types - ; - - cfg = config.custom.agenix; - - buildConfig = { name, host, user, fileName ? name }: mkIf (elem name cfg.secrets) { - ${name} = { - file = "${rootPath}/secrets/${host}/${fileName}.age"; - owner = user; - group = user; - }; - }; -in - -{ - - imports = [ inputs.agenix.nixosModules.age ]; - - - ###### interface - - options = { - - custom.agenix.secrets = mkOption { - type = types.listOf (types.enum [ - "cachix-agent-token-argon" - "cachix-agent-token-krypton" - "cachix-agent-token-neon" - "cachix-agent-token-xenon" - "gitea-dbpassword" - "id-rsa-backup" - "mysql-backup-password" - "passwd-root-neon" - "passwd-tobias-neon" - "teamspeak-serverquery-password" - "wireless-config" - ]); - default = [ ]; - description = '' - Secrets to install. - ''; - }; - - }; - - - ###### implementation - - config = { - - age = { - secrets = mkMerge [ - - (buildConfig { - name = "cachix-agent-token-argon"; - fileName = "cachix-agent-token"; - host = "argon"; - user = "root"; - }) - - (buildConfig { - name = "cachix-agent-token-krypton"; - fileName = "cachix-agent-token"; - host = "krypton"; - user = "root"; - }) - - (buildConfig { - name = "cachix-agent-token-neon"; - fileName = "cachix-agent-token"; - host = "neon"; - user = "root"; - }) - - (buildConfig { - name = "cachix-agent-token-xenon"; - fileName = "cachix-agent-token"; - host = "xenon"; - user = "root"; - }) - - (buildConfig { - name = "gitea-dbpassword"; - host = "krypton"; - user = "gitea"; - }) - - (buildConfig { - name = "id-rsa-backup"; - host = "xenon"; - user = "storage"; - }) - - (buildConfig { - name = "mysql-backup-password"; - host = "argon"; - user = "backup"; - }) - - (buildConfig { - name = "passwd-root-neon"; - fileName = "passwd-root"; - host = "neon"; - user = "root"; - }) - - (buildConfig { - name = "passwd-tobias-neon"; - fileName = "passwd-tobias"; - host = "neon"; - user = "root"; - }) - - (buildConfig { - name = "teamspeak-serverquery-password"; - host = "krypton"; - user = "teamspeak-update-notifier"; - }) - - (buildConfig { - name = "wireless-config"; - host = "xenon"; - user = "root"; - }) - - ]; - - identityPaths = [ - "/root/.age/key.txt" - ]; - }; - - }; - -} diff --git a/nixos/misc/cachix-agent.nix b/nixos/misc/cachix-agent.nix deleted file mode 100644 index 3b08b98d..00000000 --- a/nixos/misc/cachix-agent.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ config, lib, pkgs, rootPath, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - ; - - cfg = config.custom.cachix-agent; - - inherit (config.networking) hostName; -in - -{ - - ###### interface - - options = { - - custom.cachix-agent.enable = mkEnableOption "cachix-agent"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom.agenix.secrets = [ "cachix-agent-token-${hostName}" ]; - - services.cachix-agent = { - enable = true; - credentialsFile = config.age.secrets."cachix-agent-token-${hostName}".path; - }; - - }; - -} diff --git a/nixos/misc/ids.nix b/nixos/misc/ids.nix index 39b0acdc..20c7af13 100644 --- a/nixos/misc/ids.nix +++ b/nixos/misc/ids.nix @@ -48,22 +48,29 @@ in custom.ids = { uids = mapIds { - backup = 500; - storage = 501; - # ip-watcher = 502; - teamspeak-update-notifier = 503; - - tobias = 1000; - steini = 1001; + #syncthing = 237; + + # WORKAROUND After first installation needs fix bc had uid 1000 earlier, see https://github.com/NixOS/nixpkgs/issues/12170 + # i. e. uid 1000 gid 1000 or gid 100 + # https://github.com/nix-community/NixOS-WSL/pull/85 + # default user gets 1000 in modules/wsl-distro.nix + # see nixos/base/nixoswsl.nix, line + # DONT keeping nixos user for now in NixOS-WSL + #dkahlenberg = 1000; + + # https://github.com/nix-community/NixOS-WSL/blob/0fa9268bf9a903498cb567e6d4d01eb945f36f6e/modules/wsl-distro.nix#L120 + nixos = 1000; + #funktionstester = 1000; }; gids = mapIds { - backup = 500; - storage = 501; - # ip-watcher = 502; - teamspeak-update-notifier = 503; + #syncthing = 237; + # scanner = 444; - # secret-files = 600; + # leaving users gids on users group's gid (100) as creating for each user a gid that is the same as it's uid and that's group name is the same as the user's name seems highly redundant + # Thus DONT i. e. nixos = 1000;: see https://unix.stackexchange.com/questions/319729/recommended-gid-for-users-group-in-linux-100-or-1000 + # WIP testing it in case resources are indeed only accessible for gid 1000 + nixos = 1000; }; }; diff --git a/nixos/programs/arduino.nix b/nixos/programs/arduino.nix deleted file mode 100644 index a03edb89..00000000 --- a/nixos/programs/arduino.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - ; - - cfg = config.custom.programs.arduino; -in - -{ - - ###### interface - - options = { - - custom.programs.arduino.enable = mkEnableOption "arduino"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - users.users.tobias = { - extraGroups = [ "tty" "dialout" ]; - packages = [ pkgs.arduino ]; - }; - - }; - -} diff --git a/nixos/programs/docker.nix b/nixos/programs/docker.nix deleted file mode 100644 index 317b06ba..00000000 --- a/nixos/programs/docker.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - ; - - cfg = config.custom.programs.docker; -in - -{ - - ###### interface - - options = { - - custom.programs.docker.enable = mkEnableOption "docker"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - users.users.tobias.extraGroups = [ "docker" ]; - - virtualisation.docker.enable = true; - - }; - -} diff --git a/nixos/programs/teamspeak-update-notifier.nix b/nixos/programs/teamspeak-update-notifier.nix deleted file mode 100644 index cacc1534..00000000 --- a/nixos/programs/teamspeak-update-notifier.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - ; - - cfg = config.custom.programs.teamspeak-update-notifier; - - configFile = pkgs.writeText "config.ini" '' - [ts3] - host = 127.0.0.1 - port = 10011 - username = serveradmin - password_file = ${config.age.secrets.teamspeak-serverquery-password.path} - server_id = 1 - - [notifier] - server_group_id = 6 - ''; - - user = "teamspeak-update-notifier"; -in - -{ - - ###### interface - - options = { - - custom.programs.teamspeak-update-notifier.enable = mkEnableOption "teamspeak-update-notifier"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom = { - agenix.secrets = [ "teamspeak-serverquery-password" ]; - - utils.systemUsers.${user} = { }; - }; - - systemd.services.teamspeak-update-notifier = { - description = "Teamspeak update notifier service"; - - after = [ "teamspeak3-server.service" ]; - requires = [ "teamspeak3-server.service" ]; - wantedBy = [ "multi-user.target" "teamspeak3-server.service" ]; - - serviceConfig = { - Group = user; - User = user; - ExecStart = "${pkgs.gerschtli.teamspeak-update-notifier}/bin/teamspeak-update-notifier ${configFile}"; - Restart = "always"; - RestartSec = 5; - }; - }; - - }; - -} diff --git a/nixos/programs/virtualbox.nix b/nixos/programs/virtualbox.nix deleted file mode 100644 index eaaa96a5..00000000 --- a/nixos/programs/virtualbox.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - ; - - cfg = config.custom.programs.virtualbox; -in - -{ - - ###### interface - - options = { - - custom.programs.virtualbox.enable = mkEnableOption "virtualbox"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - users.users.tobias.extraGroups = [ "vboxusers" ]; - - virtualisation.virtualbox.host.enable = true; - - }; - -} diff --git a/nixos/services/applications/gitea.nix b/nixos/services/applications/gitea.nix deleted file mode 100644 index 4b985448..00000000 --- a/nixos/services/applications/gitea.nix +++ /dev/null @@ -1,73 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - ; - - cfg = config.custom.services.gitea; - giteaCfg = config.services.gitea; - - domain = "git.tobias-happ.de"; -in - -{ - - ###### interface - - options = { - - custom.services.gitea.enable = mkEnableOption "gitea"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom = { - agenix.secrets = [ "gitea-dbpassword" ]; - - services.backup.services.gitea = { - inherit (config.services.gitea) user; - description = "Gitea"; - interval = "Tue *-*-* 04:00:00"; - - script = '' - pushd ${config.services.gitea.stateDir} - ${pkgs.gitea}/bin/gitea dump \ - --config ${config.services.gitea.stateDir}/custom/conf/app.ini \ - --work-path ${config.services.gitea.stateDir} - popd - - mv ${config.services.gitea.stateDir}/gitea-dump-*.zip . - chmod g+r * - ''; - }; - }; - - services = { - gitea = { - enable = true; - database.passwordFile = config.age.secrets.gitea-dbpassword.path; - rootUrl = "https://${domain}/"; - - settings.service = { - COOKIE_SECURE = true; - DISABLE_REGISTRATION = true; - REQUIRE_SIGNIN_VIEW = true; - }; - }; - - nginx.virtualHosts.${domain} = { - enableACME = true; - forceSSL = true; - locations."/".proxyPass = "http://localhost:${toString giteaCfg.httpPort}/"; - }; - }; - - }; - -} diff --git a/nixos/services/applications/minecraft-server.nix b/nixos/services/applications/minecraft-server.nix deleted file mode 100644 index fa386d22..00000000 --- a/nixos/services/applications/minecraft-server.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - concatStringsSep - mkEnableOption - mkIf - ; - - cfg = config.custom.services.minecraft-server; -in - -{ - - ###### interface - - options = { - - custom.services.minecraft-server.enable = mkEnableOption "minecraft-server"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom.services.backup.services.minecraft-server = { - description = "Minecraft server"; - user = "minecraft"; - interval = "Tue *-*-* 05:10:00"; - - directoryToBackup = config.services.minecraft-server.dataDir; - - extraOptions = { - conflicts = [ "minecraft-server.service" ]; - # FIXME: refactor like described in https://unix.stackexchange.com/a/362883 - serviceConfig.ExecStopPost = "${config.systemd.package}/bin/systemctl start minecraft-server.service"; - }; - }; - - services.minecraft-server = { - enable = true; - eula = true; - openFirewall = true; - jvmOpts = concatStringsSep " " [ - "-Xms4G" - "-Xmx16G" - ]; - }; - - }; - -} diff --git a/nixos/services/applications/mysql.nix b/nixos/services/applications/mysql.nix deleted file mode 100644 index 2e2cc641..00000000 --- a/nixos/services/applications/mysql.nix +++ /dev/null @@ -1,73 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - concatMapStringsSep - mkEnableOption - mkIf - mkOption - types - ; - - cfg = config.custom.services.mysql; -in - -{ - - ###### interface - - options = { - - custom.services.mysql = { - enable = mkEnableOption "mysql (MariaDB)"; - - backups = mkOption { - type = types.listOf types.str; - default = [ ]; - description = '' - List of databases to backup. - ''; - }; - }; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom = { - agenix.secrets = [ "mysql-backup-password" ]; - - # Need to run: - # CREATE USER 'backup'@'localhost' IDENTIFIED BY 'password'; - # GRANT SELECT, LOCK TABLES ON *.* TO 'backup'@'localhost'; - services.backup.services.mysql = { - description = "Mysql"; - interval = "Tue *-*-* 04:10:00"; - - script = - let - passwordFile = config.age.secrets.mysql-backup-password.path; - in - concatMapStringsSep - "\n" - (database: '' - ${pkgs.mariadb}/bin/mysqldump -ubackup -p$(cat ${passwordFile}) ${database} | \ - ${pkgs.gzip}/bin/gzip -c > ${database}-$(date +%s).gz - '') - cfg.backups; - }; - }; - - services.mysql = { - # Set password with: - # SET PASSWORD FOR root@localhost = PASSWORD('password'); - enable = true; - package = pkgs.mariadb; - }; - - }; - -} diff --git a/nixos/services/applications/nginx.nix b/nixos/services/applications/nginx.nix deleted file mode 100644 index 0282e9a4..00000000 --- a/nixos/services/applications/nginx.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - ; - - cfg = config.custom.services.nginx; -in - -{ - - ###### interface - - options = { - - custom.services.nginx.enable = mkEnableOption "nginx"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - networking.firewall.allowedTCPPorts = [ - 80 - 443 - ]; - - security.acme = { - acceptTerms = true; - defaults.email = "tobias.happ@gmx.de"; - }; - - services.nginx = { - enable = true; - enableReload = true; - recommendedOptimisation = true; - recommendedTlsSettings = true; - recommendedGzipSettings = true; - recommendedProxySettings = true; - }; - - }; - -} diff --git a/nixos/services/applications/openssh.nix b/nixos/services/applications/openssh.nix index c236bcae..a7dc810a 100644 --- a/nixos/services/applications/openssh.nix +++ b/nixos/services/applications/openssh.nix @@ -41,11 +41,11 @@ in users.users = { root.openssh.authorizedKeys.keyFiles = mkIf cfg.rootLogin [ - "${rootPath}/files/keys/id_rsa.tobias.pub" + "${rootPath}/files/keys/id_rsa.daniel.pub" ]; tobias.openssh.authorizedKeys.keyFiles = [ - "${rootPath}/files/keys/id_rsa.tobias.pub" + "${rootPath}/files/keys/id_rsa.daniel.pub" ]; }; diff --git a/nixos/services/applications/teamspeak.nix b/nixos/services/applications/teamspeak.nix deleted file mode 100644 index a5b38a74..00000000 --- a/nixos/services/applications/teamspeak.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - ; - - cfg = config.custom.services.teamspeak; -in - -{ - - ###### interface - - options = { - - custom.services.teamspeak.enable = mkEnableOption "teamspeak"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom = { - programs.teamspeak-update-notifier.enable = true; - - services.backup.services.teamspeak3 = { - description = "Teamspeak3 server"; - user = "teamspeak"; - interval = "Tue *-*-* 05:00:00"; - - directoryToBackup = config.services.teamspeak3.dataDir; - }; - - # to prevent accidental restarts, do weekly scheduled restarts - utils.systemd.timers.teamspeak-restart = { - description = "teamspeak server restart"; - interval = "Tue *-*-* 07:00:00"; - - serviceConfig.script = '' - ${config.systemd.package}/bin/systemctl try-restart teamspeak3-server.service - ''; - }; - }; - - networking.firewall = { - allowedTCPPorts = [ - 10011 - 30033 - 41144 - ]; - - allowedUDPPorts = [ - 9987 - ]; - }; - - services.teamspeak3.enable = true; - - systemd.services.teamspeak3-server.restartIfChanged = false; - - }; - -} diff --git a/nixos/services/maintenance/backup.nix b/nixos/services/maintenance/backup.nix deleted file mode 100644 index 5d9c758f..00000000 --- a/nixos/services/maintenance/backup.nix +++ /dev/null @@ -1,203 +0,0 @@ -{ config, lib, pkgs, rootPath, ... }: - -let - inherit (builtins) - fromTOML - ; - inherit (lib) - attrValues - flip - listToAttrs - mkDefault - mkEnableOption - mkIf - mkMerge - mkOption - nameValuePair - readFile - types - ; - - cfg = config.custom.services.backup; - - user = "backup"; - - serviceOpts = { name, config, ... }: { - options = { - name = mkOption { - type = types.str; - description = '' - The name of the service. If undefined, the name of the attribute set - will be used. - ''; - }; - - description = mkOption { - type = types.str; - description = '' - Description or name of service. - ''; - }; - - user = mkOption { - type = types.str; - default = user; - description = '' - User to run the backup script with. - ''; - }; - - interval = mkOption { - type = types.str; - description = '' - Systemd calendar expression when to create the backup. See - systemd.time - 7. - ''; - }; - - expiresAfter = mkOption { - type = types.int; - default = 28; - description = '' - Maximum age of backups in days. - ''; - }; - - - directoryToBackup = mkOption { - type = types.nullOr types.str; - default = null; - description = '' - Directory to backup. Overwrites value in script. - ''; - }; - - script = mkOption { - type = types.nullOr types.str; - default = null; - description = '' - Backup script. - ''; - }; - - extraOptions = mkOption { - type = types.attrs; - default = { }; - description = '' - Extra options for systemd service. - ''; - }; - }; - - config = mkMerge [ - { name = mkDefault name; } - - (mkIf (config.directoryToBackup != null) { - script = '' - ${pkgs.gnutar}/bin/tar -cpzf ${name}-$(date +%s).tar.gz -C ${dirOf config.directoryToBackup} ${baseNameOf config.directoryToBackup} - ''; - - extraOptions = { - path = [ pkgs.gzip ]; - }; - }) - ]; - }; -in - -{ - - ###### interface - - options = { - - custom.services.backup = { - enable = mkEnableOption "backups"; - - location = mkOption { - type = types.str; - default = "/var/lib/backup"; - readOnly = true; - description = '' - Path to backup directory. - ''; - }; - - services = mkOption { - type = types.attrsOf (types.submodule serviceOpts); - default = { }; - description = '' - Service configurations for backups with key as service name. - ''; - }; - }; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom.utils = { - systemd.timers = listToAttrs (flip map (attrValues cfg.services) ( - service: - let - location = "${cfg.location}/${service.name}"; - - agenixToml = fromTOML (readFile "${rootPath}/.agenix.toml"); - ageKey = agenixToml.identities.bak; - in - - nameValuePair "${service.name}-backup" { - inherit (service) interval; - description = "${service.description} backup"; - - serviceConfig = mkMerge [ - { - serviceConfig = { - Group = user; - User = service.user; - }; - # FIXME replace with systemd tmpfiles - preStart = '' - mkdir -p ${location} - chmod 0750 ${location} - ''; - script = '' - cd ${location} - ${service.script} - - find ${location} -type f -not -iname "*.age" -exec ${pkgs.age}/bin/age \ - --encrypt --recipient "${ageKey}" --output {}.age {} \; - - find ${location} -type f -not -iname "*.age" -exec rm -r {} \+ - find ${location} -mtime +${toString service.expiresAfter} -exec rm -r {} \+ - ''; - } - service.extraOptions - ]; - } - )); - - systemUsers.${user} = { - home = cfg.location; - - packages = [ pkgs.rsync ]; - sshKeys = [ - "${rootPath}/files/keys/id_rsa.backup.pub" - ]; - }; - }; - - # FIXME replace with systemd tmpfiles - system.activationScripts.backup = '' - mkdir -p ${cfg.location} - chown ${user}:${user} ${cfg.location} - chmod 0770 ${cfg.location} - ''; - - }; - -} diff --git a/nixos/services/maintenance/storage.nix b/nixos/services/maintenance/storage.nix deleted file mode 100644 index da87d63e..00000000 --- a/nixos/services/maintenance/storage.nix +++ /dev/null @@ -1,158 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - concatMapStringsSep - mkEnableOption - mkIf - mkOption - types - ; - - cfg = config.custom.services.storage; - - location = "/storage"; - backupDir = "${location}/backup"; - useMount = cfg.mountDevice != null; - user = "storage"; - backupUser = "backup"; -in - -{ - - ###### interface - - options = { - - custom.services.storage = { - enable = mkEnableOption "storage module"; - - mountDevice = mkOption { - type = types.nullOr types.str; - default = null; - description = '' - Optional path to device to mount. - ''; - }; - - interval = mkOption { - type = types.str; - description = '' - Systemd calendar expression when to sync the backups. See - systemd.time - 7. - ''; - }; - - expiresAfter = mkOption { - type = types.int; - description = '' - Maximum age of backups in days. - ''; - }; - - server = mkOption { - type = types.listOf ( - types.submodule { - options = { - name = mkOption { - type = types.str; - description = '' - Name of server. - ''; - }; - - ip = mkOption { - type = types.str; - description = '' - IP of server. - ''; - }; - }; - } - ); - default = [ ]; - description = '' - List of server using the backup module. - ''; - }; - }; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom = { - agenix.secrets = [ "id-rsa-backup" ]; - - utils = { - systemd.timers.storage-backup = { - inherit (cfg) interval; - description = "Storage backup"; - - serviceConfig = { - serviceConfig = { - Group = user; - User = user; - PermissionsStartOnly = true; - }; - unitConfig.RequiresMountsFor = mkIf useMount location; - # FIXME replace with systemd tmpfiles - preStart = '' - mkdir -p ${backupDir} - chown ${user}:${user} ${backupDir} - chmod 0750 ${backupDir} - ''; - script = '' - cd ${backupDir} - - ${ - concatMapStringsSep - "\n" - (server: '' - ${pkgs.rsync}/bin/rsync \ - --archive \ - --compress \ - --include "*.age" \ - --prune-empty-dirs \ - --verbose \ - --whole-file \ - --rsh "${pkgs.openssh}/bin/ssh \ - -o UserKnownHostsFile=/dev/null \ - -o StrictHostKeyChecking=no \ - -i ${config.age.secrets.id-rsa-backup.path}" \ - "${backupUser}@${server.ip}:${config.custom.services.backup.location}/*" \ - "${backupDir}/${server.name}" - '') - cfg.server - } - - find ${backupDir} -type f -mtime +${toString cfg.expiresAfter} -exec rm {} \+ - ''; - }; - }; - - systemUsers.${user} = { }; - }; - }; - - # FIXME replace with systemd tmpfiles - system.activationScripts.backup = mkIf (! useMount) '' - mkdir -p ${location} - ''; - - systemd.mounts = mkIf useMount [ - { - what = cfg.mountDevice; - where = location; - type = "ext4"; - wantedBy = [ "multi-user.target" ]; - } - ]; - - }; - -} diff --git a/nixos/system/boot.nix b/nixos/system/boot.nix index 6aaaae03..4a919923 100644 --- a/nixos/system/boot.nix +++ b/nixos/system/boot.nix @@ -2,6 +2,7 @@ let inherit (lib) + mkEnableOption mkIf mkMerge mkOption @@ -18,6 +19,9 @@ in options = { custom.system.boot = { + + enable = mkEnableOption "Boot mode and device config" // { default = true; }; + mode = mkOption { type = types.enum [ "efi" "grub" "raspberry" ]; description = '' @@ -39,7 +43,7 @@ in ###### implementation - config = mkMerge [ + config = mkIf cfg.enable (mkMerge [ { assertions = [ { @@ -91,6 +95,6 @@ in } ) - ]; - + ] + ); } diff --git a/nixos/utils/systemd.nix b/nixos/utils/systemd.nix index 8983a4b8..37ca14cc 100644 --- a/nixos/utils/systemd.nix +++ b/nixos/utils/systemd.nix @@ -31,9 +31,7 @@ let interval = mkOption { type = types.str; description = '' - Systemd calendar expression when to run service. See - systemd.time - 7. + Systemd calendar expression when to run service. See {manpage}`systemd.time(7)`. ''; }; diff --git a/nixos/wsl/usbip.nix b/nixos/wsl/usbip.nix new file mode 100644 index 00000000..51a11a3e --- /dev/null +++ b/nixos/wsl/usbip.nix @@ -0,0 +1,76 @@ +{ config +, lib +, pkgs +, ... +}: +with lib; let + /* https://github.com/NixOS/nixpkgs/issues/191128#issuecomment-1514224101 + nix hash to-sri --type sha256 $(nix-prefetch-url https://raw.githubusercontent.com/dorssel/usbipd-win/v3.2.0 + /Usbipd/wsl-scripts/auto-attach.sh) + */ + #usbipd-win-auto-attach = pkgs.fetchurl { + # url = "https://raw.githubusercontent.com/dorssel/usbipd-win/v3.2.0/Usbipd/wsl-scripts/auto-attach.sh"; + # hash = "sha256-KJ0tEuY+hDJbBQtJj8nSNk17FHqdpDWTpy9/DLqUFaM="; + #}; + + cfg = config.custom.wsl.usbip; + # Source: https://lgug2z.com/articles/yubikey-passthrough-on-wsl2-with-full-fido2-support/ +in +{ + options.custom.wsl.usbip = with types; { + enable = mkEnableOption "Customisation of USB/IP integration to support Scanner and Yubikey"; + }; + + # TODO Plan, enable these customisations when upstream is enabled, as in https://github.com/nix-community/NixOS-WSL/pull/203 + config = mkIf (config.wsl.enable && config.wsl.usbip.enable && cfg.enable) { + + #users.groups.scanner.members = [ "dkahlenberg" ]; # see https://nixos.wiki/wiki/Scanners and https://github.com/nix-community/NixOS-WSL/commit/7f6189c658963fce68ab38fa9200729a6328f280 usbip + users.users.nixos.extraGroups = [ "scanner" "lp" ]; + + environment.systemPackages = [ + #pkgs.gscan2pdf + pkgs.simple-scan + pkgs.sane-backends.out + pkgs.usbutils.out + pkgs.yubikey-manager + pkgs.libfido2 + ]; + + # https://www.google.com/search?client=firefox-b-d&q=sane-plustek+nixos + # http://www.sane-project.org/lists/sane-mfgs-cvs.html + # https://github.com/NixOS/nixpkgs/issues/33579 + hardware.sane = { + enable = true; + }; + + #environment.etc."sane.d/lide_30.conf".text = "usb 0x04a9 0x220e"; + # see https://www.reddit.com/r/NixOS/comments/ijje39/difficulties_with_scangearmp2_cannon_scanner/ + # and https://sourcegraph.com/search?q=context:global+file:%5E*.nix%24+content:environment.etc.%22sane&patternType=standard&sm=1&groupBy=repo + # and https://forum.ubuntuusers.de/post/6301022/ + environment.etc."sane.d/dll.d/plustek.conf".text = '' + # sane-dll entry for canon Lide 30 + [usb] 0x04a9 0x220e + device auto + ''; + + # See https://sourcegraph.com/github.com/michalrus/dotfiles/-/blob/machines/_shared_/features/canoscan-lide-20/default.nix?L34:11 and nixos/base/general.nix + + services.pcscd.enable = true; + + services.udev = { + enable = true; + packages = [ pkgs.yubikey-personalization ]; + # TODO Here it is different though (scanner): https://unix.stackexchange.com/questions/184367/scanimage-does-not-find-scanner-unless-sudoed-but-shows-up-with-sane-find-scan + extraRules = optionalString config.custom.wsl.usbip.enable '' + SUBSYSTEM=="usb", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0010|0110|0111|0114|0116|0401|0403|0405|0407|0410", MODE="0666" + ATTR{idVendor}=="04a9", ATTR{idProduct}=="220e", MODE="0664", GROUP="scanner", ENV{libsane_matched}="yes" + ''; + # TODO Still needed ? + # ATTR{idVendor}=="04a9", ATTR{idProduct}=="220e", MODE="0666", GROUP="scanner" + #'' + # SUBSYSTEM=="usb", MODE="0666" + # KERNEL=="hidraw*", SUBSYSTEM=="hidraw", TAG+="uaccess", MODE="0666" + #''; + }; + }; +} diff --git a/renovate.json b/renovate.json deleted file mode 100644 index f45d8f11..00000000 --- a/renovate.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": [ - "config:base" - ] -} diff --git a/secrets/M386/aliases.sh.age b/secrets/M386/aliases.sh.age deleted file mode 100644 index e9eb97c9..00000000 --- a/secrets/M386/aliases.sh.age +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvOHprQW9vMVRsUFBtVWJl -cG15RFhEZHRjeXErSW5BaVdVR2t0eE1wTnpRCnhhMVZjVDVvOFYrODVkWkFtQm9k -b3JrT3Noa1dOdEwwbzcrUGdsTTlQWEEKLT4gWDI1NTE5IEV5cVEzUDIxN1pkT1V2 -bktTazhaU3AzZ3Y4bkRMWFZjUXFueTM2VDVVRjgKelZ0djNBRHFqMEE3UVRLNksw -OER5SWRzRHo4S2JLZXFFL2F1YUJudDRDRQotPiBNMHEkNyxqLWdyZWFzZSAzYiBS -enlmXX10IDpwRGMKTk5qOUhGK3NNK3RJUXVGdkFpdGx4OTRVcTdrZ2J3SWJvbG5X -OGF0WmZWbXF6L0huYm5yMzBuaFJORzRZWGRNRQo1NDZIa1l2RGVDbWhIQXRzNk1Q -c3ZkMVdlRVBySzZyVQotLS0gUU1XYzFlbWJvMHNQeHBuWC9iYWtHZG1jendpN0FK -NUJCZVQwZ1hvMjZsTQpHkQWoMlW5IL1KBtG086YN0g4nYNite7DdlbzHZ4CH7Te4 -2Gn5MInAs7jqYybQay8kt7/uK3s5JFzCAM030Ta1bDRB/6SDN8tGxZKi+EKJFucC -Vp1hg0EVuezKop8tflmCQdTHYOKKVIt/hd76oDQBNOrL85kWCyau1+i0YuuUdvzQ -0ZW5ijxige1SuEb/wIqapnDrq18e1ZKZkXL0rQeigtFGIC1MHXIoKJLI5NosjRHF -AEHsTn/WtIE5DgospK5GG+ahg0sK+GM4TCYJKFavMYKKfeUSqQvNZhPulKNWyWtB -7+dzdkNwqN9EvyCpdzPdBCqy/aIzWJYUfhPXYy9IA5zpmChY/FtWlyDnOaIS3l7k -sN42HVVmhE69qTbK17VySybG+2AGANoehRl39lxuHgZbgzhBllcFcg5ktg4561KZ -p8LS+voLOv0HvyObeBetyHNFy0cCBv6DmQPvXjM/ewCIMedBrSMcsmHczfQVinoI -qU1B5ynvJorsGC76cVvKa7koDP1y3YEEsE6C2CLEceL3bkYPBUIAvbdvkQlIMzQf -mBCjywZT1ZMhZnIKiU5xVwX7kRHFmkI1wBryfxcOyZ5mgvESOlWM/ratMPCzHdqC -FGiupLjM5EisGVh1hDJ63rJS/1gDrbkynJnHozAkARyB1qCFGnTp8aj067PelVW9 -d72gAUwq1ATLNx/hJMj8U1TG7VmmfuO+xuATOayXHlpqRH28/xY+BdfSOYlpgBcM -Zy8agY3ESYjuG++BkAOG8IQoNq/R8d6HD9uMIsDdIVNCdYAihCPWY0udwudFJx9B -9Gl/P8OA1tZo4KqGqV3g/b5Y188IDaecPC8vpQt2d0jUUOzQfXSABBUudgn54xJY -h/wP0tqKdA5XjYZSSUM19rk4RU8EstJt27lI6cuaQosOzBA5CEcfo6Ow4svJQ4Pd -wKWDf8MxyTNKS5fOlzpEZZPaQ/tru6hehSF4O/Ox8w8LIBR9tr7AncMaUEf/4bnf -jN57J6a+07AuHwfCEGjYPPgi8JjAIHDsshyifnhsKfCNAliyZgDSTk/5373lQhF5 -qm/GgfeIxxQ/QqqvPt6x8lUx6NICMsbSuQQRhw2BH1JWQchGKRGRQc8J5CWq+dNR ------END AGE ENCRYPTED FILE----- diff --git a/secrets/M386/cachix-agent-token.age b/secrets/M386/cachix-agent-token.age deleted file mode 100644 index 121c36c3..00000000 --- a/secrets/M386/cachix-agent-token.age +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNVkhjRE90OS84aGdBWHNF -MHZSNnpjOVlNbU83NXRqb2ZLNXNCbUFHcmtNCktxVEdzeXRiNEI2aXNRV2RDWE1s -bXNyWjBVSDJFNTdJRU9HUFNtb1JPUzAKLT4gWDI1NTE5IGdxdVpySkJaOVdjcDRC -L2t4ODRDTlRvdmU3R2xIeVBFeHFibHVweFFhVGsKWVpOWDB3ek11SURDcTdNQzRQ -bHRnOXFzT0twTG1EeGhNN3dPd09FQWNocwotPiBrbyspQ1lwdC1ncmVhc2UgT0RK -XGhMOlggYXxPUiA7ICMhd1cpCkU1VTBncVBpRGQrQTNqbWpPNjBJWENlTkk4Ullp -aTUvQm0yVlRwOWE5dGI0UHM4cXE5czV1bmJnbkt5NlBaR20KOC9CTzBFRjFXUU9T -OUIzcDJ0ZmMydmNKeFpPS2I0VnBWTlhtd3E5UTh4elM4ZwotLS0gQng3QUE5VFpv -WW50SDdqYUY1dzN6QmNEYXhLY0ZiSlIvajJhVGQ2UVBScwqYuaPgfyIHdIKZMrMB -WaBQ6wtBT0GmHZ8yw4WY0+neV98wQFmAA1F5rzfGemUqFM7beacEwLM3bDTQq2O6 -0vrri+mhsBir+xzQvhDfYoDQy8gVkeUbj0dYmb3dKsY1pRBLs62VLej89CLCrtSK -giJGe0fudOQ/5KTVnPXnpKyhslZ9L27QU8/AklfRnllUGcH6fLD+k/5NKUawoFKu -qEBnT1TFOHM17cz2g/hleUILmdnTjtwRhCGNybTlHe9U3LA9OTjZQGulq4w= ------END AGE ENCRYPTED FILE----- diff --git a/secrets/M386/settings.xml.age b/secrets/M386/settings.xml.age deleted file mode 100644 index 251458aa..00000000 --- a/secrets/M386/settings.xml.age +++ /dev/null @@ -1,55 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBudUxkVGV4bVVVVmEwaFkr -RE9sL1NxY0dFYkhnTXRQZkFETDBhME5pQUdJCjJ4UDMvSi9INFRmcE9qR1VRdWQ3 -c2t6OUVVdDRIb0g3U2N2MG51WkRpVmsKLT4gWDI1NTE5IHp5VnNxcmpDQnZtUGk3 -SmRoaHNJa3Q4S09PMXF1ZC8zR3A2MWJDaVFSQlkKcjY3QnR0R0FrQXdzYWprS2VJ -V25vejRQcFRTempjWkJaeGYwL29venU5QQotPiBJVjY5OS1ncmVhc2UgYU8zaC8z -cQpzaW9pMXVDZm9zNDdMOSs2VG5qT1FON1cwUDRHMXV3aTZ5dzdYSy9KSWNzMjRX -cjA4TWFuaGMvcUgxOFpMMUJnClNwWVM2YXZsVlhzV0ZFUUtYT2F4Y1lreVJPc3BU -cEVRRmxWUzJRVUFPalp2aHlUQ25CUk42aVEKLS0tIGg3QTcvdExPeXlRVUVFelVs -SDJKTlJta09pa3Y0dmNERUxZNzNKTVBnbkEKvMa+uZXnlV+jsL1KtZWihM7SByme -1O1o0cDdJoo/n3alJKURUga9fkLoifs1kH9CdlD1nm3I385VA+xdShGBfeplq3W+ -rKj3cAZtl4tWQzBc9fmdbSKQvoa95iDaKkoiXRxZOiYvZzFE9TIRJb9iNmCfuYGD -waNtfscv3wtIQ8yL4JWdowt5FkTjsz7fOI9VJkhd/TBieHT+zt383PG7ylm9OpGP -VRFJJ4F1jo8tNWpuk+m2N7IerAuFkfk+w5itOAmOE0ibvSg3ELLEBNHWDMWK63y0 -pmljFBFm1vJtjw9f00csOA/iU8WoytOqQrb6mPi/7iT6kizv3DToYd6yld7DSMVY -xE0+LbBe9Ir3E3z9OG9cvjrFWPkkjqDG88X+9+Uj4+huOQ2DGNqlIGYx5+YROHhM -Up+wP9n1kvOxvgFqFvkmhRsHWJSwqF5QPZ/4tS0iR1v+o/x+rqqwkwM+wDFzPzeZ -73HPUiiyWB4NQv5+Cy8WADeY2dOd59yPnIzer9YqzsghvlmFktQOMCGWynghecM1 -L7mJ9Uq3MRREbun5ClVZef19bXZp+XKt+VgWBtyH3RzuK7/44x5v6MA6VG3sBGMo -PyX9PWp1hbqMGJtrFfrOoGVIecOjlK7x0FW+UwtZwl6CFfapnhe0Pp0NmwRGOCte -OaCT/rF2p6VT5MdLFci2GAjPJ9YSjcVSd2iqH8JTg/kwjIB+ecDWTEZg9JuV2kdo -9Qb9PuHdCvzm92CtKfWPQ0xEafQAXiGPbR2dvjdzJGBxjth4n/Lh6205JVmv7V7X -flSn5a6/WZO6OQU2no7cRssVW7NqNPtpxY6FWDLpchamebl2QksBiSSBfr2o8+FB -4PD3ro8PRyKcjbUR4fATXOuofwTneHCffMtiz7W0hIKc2D4C+4f8mvQWmMHM2dB0 -IvBkgO/kU7Iw6o1urywITVgAWgKPlvTzCCEHvoGA721T8gsQwzf3FEMLlZ4Mbd7c -1rZhyQk8Os55dKfMLyLL7xiloeMf3Hd3dsROCKkKgVGRa5mp3SvJcPYrYv5Kcq4b -k5VgYQJh9/sMyCf+qnVFwOJgUT8cuFEQ7AD8OKS3Q7IdA22SwF0Dka+mdUIeE4dQ -VTodT4kFzZ64b8tXX+CZy8razBd/FwcDldjsfx+NoThPyvkcJT1DXtxnA43w6vXX -vnCh8lJ4xzlOeXXes0LVTgSj+G8QwBZOZLlIOPp7tqaPpJUcy6vxRVXw9eSY/JcK -s0ZitNH720cJKgsTjBbJ8GdM0xsys5twnYeFG2ZcFo8wOiXFcvPQN6bUvSp2/dAB -8xw/GAB/v9Wnz+thD4CyY8VsZg9Bv9jqazXXRIfbJiNYwvGkCr5WCDD81AXwL0Yc -U86N5KU3RE5Ur/dqh/+95qhSGTsTO21TqYND+cy7Vjf31Jkc2ejxRL7rWV33QjeZ -nmw+sA/rSbE08rdIwL0RyITJ3tpFT3RLVgOQ4Y69ROI/i9EGF/Jsh98uH3/zmzWz -bKY5wNMGIFADO/tNnZwy1sgmVtZ9IpXF85+8UFA/4dNCNvxu/WYwB9hItr263MbW -/5l3Shdv1sMboYfjMQThn+u9bWJ2V+erJJWtsLw7GT3BTHuR/cVkyDZmDRQdRSM6 -A1xAbUsjMPStBvAO0+IflPre6NeE2woUxOvh3BTH+KbnmTtpyA9VqR7RSJOdysBz -OS2HysMhtFAucLMmTemtEa5F3IeMgRKPHAwGhr39AvJtN2bmRocjMRa8OLwRp4rQ -zlQCEQPVpNfS+w1NTp0NaJjmgMpvopWMV/mgKkpZPaDgXH0XtGmQYUWMPFg9rwyW -edaOWw2g2yrWULMQPMZMbOcd4US2v3bT2HoKj2xyReQ/51hSldVkXFVs1eLKNEz/ -hznVDGCpLotWuFRjdETBE2hYycPUDHgghnxwq45T1lCVj2yeBnpX3GZizWvBpx2M -7amyFPN/WVc0r7heSj5lrF3eAYEhjttMSicS6jIf1M4fJu3BgFFfxvrLo0iN4fiH -KIUTheawRbIigggUxA4eVLKJmH+ykylgEl7CxyTXNH/qNsN+xZR2eE4IBFH1qCp/ -NIXHXEfnlMLfJSAxAiq1H7kHH0OxFN0twiV/bLHvag7Hp7/VYuFPDv/5rq4rihpy -O+NEYS6N0lFfYWAn+Lq02nQiOy4eWCfdM68MJmI0nEjNV/b+ZwyBeVsETBgLzAoq -YQfWBNTk9v2NnMVys+vRjELI3xzG8sqF/pzqUKx9Rsl29EmROT74TaXtl3vogBOc -bzfsLY+WKQ5B1TuL+DFkxTtcqZZBPTbp4IFMvErewhq6C/in9w9F0307f6x+HR2y -aD5KghabSGFrJnE6fbXK50eVVVvYBKw13xz05eDNGNVZ0zKselj8mFcOqNfOAa3/ -phjGRXoSshANDVrmduP6orgl6hDgbKQvT+G5IotZz3RGNM7Dlmqc1ROycofeRgPA -2/L7GdYegJ2IHtXzitvwKmjyZtXQoB8GnAbhHo/aqUflvx9qG6Lk25ViQdc0YpNw -t7/FZnTSSBFBMZIfm77vXHhXtCssrv5MaEsq5cMuhESvfZ450AlL5IuZWckC38T1 -SO17zcCyCPSCIEJwVc1YRDOl9+uG60dbtO9BMjzNSlZThGhN4JKjOVxagq2/7jq+ -ZGhnbXieiEJ9bfDxzkF4J+xRX1McxmgHdjmCHrNUrtZ3R9if09xIV4B8xmHlP9oB -TtXEaEe6dzlvSPM7b2R36nN+OrtiLEDtubsB7jzqEoqylyvYU95bvRck4adDzHOZ -x0sSwEBw9PZFC6FLspBzdAmCpLxbJOPBvQ== ------END AGE ENCRYPTED FILE----- diff --git a/secrets/argon/cachix-agent-token.age b/secrets/argon/cachix-agent-token.age deleted file mode 100644 index ef433260..00000000 --- a/secrets/argon/cachix-agent-token.age +++ /dev/null @@ -1,13 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIcEIwdjVxSjlwRXgrdWww -VmU3eG5rSGdZR1l1M0NTUGdyZzZpKzB0YXk0CjBkcHZtUkNhSUgvNlFpZW53YTNx -WUV6dG1ySWtsZkt0SlBhdEtQcndHVEkKLT4gWDI1NTE5IE4zMzJjaTlLdEEzVmQw -aThLdVNsR1Nyd2hWVUZUS0lsSXh3VjA1WVVJUkUKSVZ5SHI1Wkd1Ump6eXo1MlhK -S1lrYTVBa2pHVHdENmt3ZnpuOTMrU00ydwotPiBQLWdyZWFzZSAuUF9bTHQgZmpx -Z3gKSFpkQmpoVkhnNCs3Ci0tLSBuNzFRWnJ6czkxam85V1VmVnRHWG4xWlViaWFx -UVkxN1luMDVBM1lxWVlBCoOKGw/ZkDfiyBYUyu7mINYX2ROrb8N5SUh/d9ohgvfl -LvX2RxAyzPDrOLaKYXDTsoPVbEAwg/H/3XDUic8KJoRz4are76s23YQHQF7TqKLk -BRKkpAlwVax8mecnBxkcMwDrd85Dt5s1rjs9jY/4j3tdU+4r4pqASW//plfEvoj2 -oP5WxIogmCwru+mA82l0THrIX0qYFvjqkcF9o6K/oNkhqvd/NojzEOvAAriKePcI -clb1jxYH8cdPNx7T6kzy5Rz+/gFLrvDc0A== ------END AGE ENCRYPTED FILE----- diff --git a/secrets/argon/mysql-backup-password.age b/secrets/argon/mysql-backup-password.age deleted file mode 100644 index 759779d8..00000000 --- a/secrets/argon/mysql-backup-password.age +++ /dev/null @@ -1,12 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzd0pLV3ZHOFMzYWNqVXlD -bldlcE1DSEVKNXRidk8xY1RVOTVuSXE2R1dZClRWZTNIbzlQSjFDazB4UjlmWGtQ -WkMwZGRMVmEvOElnYXFOTzNWMXkweHcKLT4gWDI1NTE5IE4zZWcxS3YrV0ovNkVF -SkNTWm5VbWV5dTlpRmdiMVlJTWtrcDRCcjJ6M00KbnYxR0kxTFg4T3ppcUVjZmdl -Y2p4L0xoN3ZTbkNEVDVZSDFnVmpFeUwyYwotPiBpcS1ncmVhc2UKQXlpclJPWXdV -K2ZlMHMyZS9FZUhORnB6RlpCNjlvelcrc3U4c21iSlhiMW5ZZGlQV0IzUWVWdGdV -S1M3djBsRgoyV05IVHU3bmcxVEVCQjRac0J4QVBVODNaVWxLb0tsSDhBeXVwTDA1 -Lzl4V3ByUllyOTJnemh3V2tKZnQ0NUEKLS0tIFBKY25xcHVTNzk1Tm1xTGJBWkEz -WURQeDBxNUlyTXMyVEFBcWFxdnNGemcK6zV59X+EkAB2uzgqG9/N5CYfIlg2ar19 -MnmF1ykqlpniK70hrEWMfGsBd/4eNvC4SGbyW35KSsC6Uc2Whtao ------END AGE ENCRYPTED FILE----- diff --git a/secrets/krypton/cachix-agent-token.age b/secrets/krypton/cachix-agent-token.age deleted file mode 100644 index cefa4a52..00000000 --- a/secrets/krypton/cachix-agent-token.age +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlMlI0cDJEWWRRSGw0R3RT -T3JVMHc3ZDZjYmRvemtKRUZpTmNsYjJvZ0dJClBIYkZzakEvczlZUERoVGpFelRR -L0JjWmRZWVhPMzU0VUpTODk4aEQ4LzQKLT4gWDI1NTE5IFNudzJ2SE1rdjlURG1u -c2R3RWNvTlRkZXVtMXFRMzdNR1psdE45b3FRRk0KVWVFZWFPeEh3WTVHWnR1NjUy -RjluQ0E1TGFGaTQycWhpT3NESmlibk9WRQotPiBqYnBOcUEtZ3JlYXNlCmNHZnJE -ZS84blpJSnJ3M3MvZDRvMHNWR00vQWF4aFNTZ0IySVRKVExTTVdxb3EyKzNpd1Ji -Unh5UGlub2hxNWEKdVl3S3BrL3hEMjBsVjBUd2FTQ1ovTFR4SStiRzRxbStXcWoy -M2xRbEVEQlpyemJwV2w1UDdudUhKTnlmVjBxNQpwUQotLS0gUmpRMk8yTVorSlg2 -N0N2Z3VEbGZkdkEwQStoMVhHT216eXJzWUs5RWFiQQoiwZdn9ItJ1rNrCk5K4Gx+ -uITCjy6YUdwcE/iFN5CfP/AggmSWJ1kCxBudYopi7cbsQQ75aRvYG3Y7faYiOXb8 -+Ggye40L9QiLabbGF4KCx7oKosFo+kvAXYjVO3vigfFO4rDRsT5Y0jS/QRIvv8Yw -FNgEoCfsEetYy9Vzu0jU5W2UR7h5ZnqhwCBdMb/hLPlRrvwW3k9V/Xs6L/BCs7rz -u0tcu/DbYswvKE2t42ilD/VWYTBMDypyEt5gyoMw7Dc5nl9Lv1R/jpY= ------END AGE ENCRYPTED FILE----- diff --git a/secrets/krypton/gitea-dbpassword.age b/secrets/krypton/gitea-dbpassword.age deleted file mode 100644 index 61bf5f21..00000000 --- a/secrets/krypton/gitea-dbpassword.age +++ /dev/null @@ -1,12 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDaEJvV1BwM2I1TE1JTHBl -Zk8rcndWYTZtc1BRRTFvYzZyL2hFcTYraTFFCnQ0dHJyUHNiRjlXZU1BVUtBVWds -c3ZRVUZxbDF0RFRVaHoyM0ZzNUdib3cKLT4gWDI1NTE5IFZNb1NNRURJWE5wNmI4 -SXowd3E0eWtTYmlMcVhYQ1h0NnFnQ0s2b01pbEUKd3lpclFOLzlmOVVldGV1RWZu -elUvY3pZeXgzN3dBSUJWMndWei8zSVpNOAotPiBoXGMmWS94LWdyZWFzZSAtNEgv -I3xUUSBfIFgufV9cCjN6VWVVM3dJMFpFRTNFWE5ueldKSlBEaFlRSUVjajY5bm0w -emVqZXFXQmsKLS0tIGdua3J2WE9KUTVxVjY1cHNGVkxML1lZT3RKdUFnVUwvNU5D -M3l2THZvVnMKGsf4NKd4hytwGWoVLh2196JTBmbxNWrXqavNNy+b34ObxbBA1O7s -8vhi7nAHbfSwrUs74r860u7tQGb3Ky7COfHq54rcNQ7TYEB7F97l6zb2ZEJ5Oj7Y -VYRoueC+5JTBxA== ------END AGE ENCRYPTED FILE----- diff --git a/secrets/krypton/teamspeak-serverquery-password.age b/secrets/krypton/teamspeak-serverquery-password.age deleted file mode 100644 index 80ccc2ae..00000000 --- a/secrets/krypton/teamspeak-serverquery-password.age +++ /dev/null @@ -1,10 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKVzlibDVkMGptZFJIcnlk -TkZSOVYzcXVmQ1lpZ2ppRWxXb1VIcFByb1VrCkZ0RWtKcFcxQ1REQStDR1c0NVRQ -eTlla25zYVhGbHJzT0ErL0pBMlpRMmsKLT4gWDI1NTE5IEovS0ZmdnpCcjBoMzc5 -OXRCZTd5aGxvNDVaYXB3SDFEU0pCZkdXQUpWd3cKZlY4cStpYU9ETHNGVTVycmFy -WE5EcUxWejN3Uk5JZ3RSSENvVTVJV2xIQQotPiBhVjNSLWdyZWFzZSBFQV05CmxJ -T2RNc3duVXNnCi0tLSBab3FOQThDSWczQys1K3gwNTNId1NsQVM2dFhJT1RHSGF1 -V2Uwc2RzajBJCgLuuOvvt0RHkq6aBz9qnU5ZxVocgUb/4OCuWHpfkQGbHIvaPmr3 -J3CE ------END AGE ENCRYPTED FILE----- diff --git a/secrets/neon/cachix-agent-token.age b/secrets/neon/cachix-agent-token.age deleted file mode 100644 index 41dd3996..00000000 --- a/secrets/neon/cachix-agent-token.age +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvL2lncHJSMUxqbVFYRDVJ -bW9lUUFZZnNTSWJ4Ty84N2xOeVhMbzlzaUV3CjRTdE1Ca1ROdU1Bb3pTaTJHSEM1 -UkxZd1B2NXI4ZUlySzNsR3RLL213aG8KLT4gWDI1NTE5IG5OdTdFcktXK1k3djVP -MHlKOVpnV2JybnF2YWNtN2pEQ2lQNzNIVkZGQk0KbEJrV2U0QjJpNW9FZElWTW85 -NkJHU1BVbFJ6Y1JLZFdBTEdYSDVvSnFWRQotPiBBP1o6N31eJS1ncmVhc2UgKyYg -TUlNJF0gImspXyNCfiBxCjlCSkh2cDlkWUhpeWlNYmR5a3c0MC9FL0dkbExEUVov -MTdNNFZDbWY2ZHV0OGhhRStKL2d1cGVIZStZakVnbVAKVU5PcFI0K3FLZ01qM0hZ -ZFZOR21pM2JrOG50TXJSeW8raXlOeFRzZ1Y4ZmZSS2R3bnVaeAotLS0gVWpVMjVm -ejlYczByYTNPNjZEcEpQR21jRUNFaHpLM016OERDaEl0Q2h1cwopQeOTiLNr7Nmv -B/SAi0FpN30rNzSZnLLJCk1TB2MR0knRmhXPYm+cN2TtNCMqoEU0EyUxfH1vKiz7 -Pv097jGXWMAyuf8xq1/pnMcRXIGa9sBKT70Aaqgbu+IH7DFQx24T5lsrsflAnHZF -SwVKWqwxgP5/Ao8fNByAIGH1ZxhQTMgxb9kZCwJhi4GGVlhl+3RP3DFjY0gFAUEG -FtiIrKzNCNQqg6RBBEf05iCjGZ4N37Qrw4KE4YsL11/3/6i1OsneB/7iMvDHeo0= ------END AGE ENCRYPTED FILE----- diff --git a/secrets/neon/passwd-root.age b/secrets/neon/passwd-root.age deleted file mode 100644 index 280e2cd8..00000000 --- a/secrets/neon/passwd-root.age +++ /dev/null @@ -1,13 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0N29LRDF5Njl4N1g3R3Ny -YlU0cmJzS0phNnU2VGhLQUlIL3VsaGUvWmxnCkJQOU01T0ZhblhIL1c4KzhVNnBO -L3FRTGdFNUdYSGtPWWZwc2lQL2RiQm8KLT4gWDI1NTE5IGErVnBkcndiQVlVQUty -ZCtpOG1EOEx6VlUrT1JlMWhKcWdoM0daMHk2Q28KSjA2RUtFYnJEOEU0bHQ2SUFY -VWdTL2pibGRzVlN5RXpJWXJVUFFHVjdJMAotPiBJTDA9S3ktZ3JlYXNlIEltejhU -TkcgIlUKclEvWCthcnY0RlVYcmNxaUhhOFAvOUhVTWUvYnRhblpVMTd0SEtjVmVI -SE5TWkRTc0hlYldlZEVsR09LdUNTWApibDY3V3hHcUxBR3BMYk5INExRMW1haDhT -YmhTSVBzenhQWkVtUTNSMysvdzQ3QVBxWlUKLS0tIHp1N0lqSG1TeTMzbkdSR1cw -bHRJZjlGNENKVUN0d1UzSmVBRy9FOUx0Vk0K5YrrLxIWyzAbm4kVIcoz56a2q6RQ -GHMGqajHe7wdxE/edHiE+ggX8OJeLgHnCde0cnXSH5IebDcGf0/dnlztv/wA0X1T -XdLn1Qs9C/8s76ITGyxg4vBBrRG7KWZSgNHaRAud7p2FCIg30Q== ------END AGE ENCRYPTED FILE----- diff --git a/secrets/neon/passwd-tobias.age b/secrets/neon/passwd-tobias.age deleted file mode 100644 index 5b6df037..00000000 --- a/secrets/neon/passwd-tobias.age +++ /dev/null @@ -1,12 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3RCtHWUZMbldaejBzNy9M -aDh0eDdML0ZKcjNFdW1Sd0xBOUlyWXg2NVZvCjY3N3hoWkFQdUx2S21DQ2NXVzIw -UHlORXc0SStPb3Q5YWdOTi9OWldpRlUKLT4gWDI1NTE5IE9obGdqb3pld1NDZHlz -b1d6NXBsZ2lZTkp3a05CZ0tBNXBXNEhwVEJNVjgKY2dIamxTb2xEUkpidWJuYW5i -MkNpdlh2K2pHVXhiNDA2TnFhOXpoaGlDRQotPiBle0NRLWdyZWFzZSBwSHpHYlIg -J0RVNSB6eil3ClBZb2F4YXc3MW8vV1MzM3Z2U1RqNzBRNnBKU0pSN1lFODkxTUIw -WTQ2blZubStKZHoxdnJKd0EKLS0tIGhIcnFsQUtpMFYyMzE3MzdQTEVyeG56dVYw -T1pZODI1Z25DSFNFazFxY0UKHgFJp5TteAUjw/GTyx4yioJT1BTTBNOJjSU/BpCo -IgJRlhPcAFgR+R+VCvfTbaWtLVDjuUc4zh3ldpu87H/s4ESA7xQyukhI1DihOTVk -a8VwMG/6OqlLQ804OXdX8KwnhDpYwdPZ0Z/aHQ== ------END AGE ENCRYPTED FILE----- diff --git a/secrets/ssh/private/config.age b/secrets/ssh/private/config.age deleted file mode 100644 index 99cf9a3f..00000000 --- a/secrets/ssh/private/config.age +++ /dev/null @@ -1,34 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5TUx2SVBMYWRzT25mNm5W -Rm41QTd1N2VLbVNNbGxiUVFaNTZEZysvUGswCk9kbjljVnd3QVNwUHhRczl1S1lO -aWcxaWlyRHdzbnV3MFJWMFFQVXQzTmsKLT4gWDI1NTE5IFlweXNvaDBoYTFNemQz -ZGtDTU9SNGt4TG1KUDE4MDhhdDRKM3dFdFMrekUKTWlYdHh1aHNITEVaMU9sS0lI -N2ZDZlcyVmxrTWkzSlgxNms1SHBTbnhvNAotPiBYMjU1MTkgbDE3OTJKSGh3Zkpi -dUU1ZDE0U2dUS3E4NElmTGtzVFVOSmZTMmd1dmQyWQpmNzRuREIzZlZJQkdjTmls -MTlZYVU2UENPWTI1Q1BocDEvMDFZVWF6UkdJCi0+IFgyNTUxOSBIaXRDMDZSQi9P -ZjVZZDE0ZGJaM29FUkJIYW5hOUJCdzQyTmI2VnBSTGtrCktJTjVDaGxPRzFpTXZ1 -bDRYZGNub2s1a1lYUXJMS1VyTHJJSytYL21MVFkKLT4gWDI1NTE5IERHcS95MDdO -L0ZJQ2R2RldtVWc1blNNNDhBbkd6QUJVSjBJUkZkRFJUakUKU1hDbGtOdy80Q3Av -OFp6c0laQjBmS1ZuQUd1dElqVFl2WjVZQnRUK3J0dwotPiB1Xy1ncmVhc2UKZWVv -SUhwT3AwZHZ3ckhFalBKK09nVDd1VjhacmhsMzRaVHN5Z2gzVE1MNjRZOVFwbmN3 -MHdzR1pWU3MvcmNIMgoxM0liUmJMd1ppd29NV2tiSmxiVWRlZVN4UTJjNWRJV2ln -Ci0tLSB6eTFkeVh4Y3pmZ096eVU1RlEzSDFzczlzdXdsYktyTXBhSFFmMjBDRGJF -CpCjAo0K/Xo7cMVWReeEtGLd+bbygwfry4x45jvj7MR1YPVubek4QPhKX7A4ewYj -XC4uDn4Pbhf/37O1fPw0huJdLGgnS8eYZbowcrvtgF039MzlCb8Ua+tULkV7hVjm -1ukVyzp5YlWLqJqLrLHVLvZQbb+VsmiL79kakovAJ2Zck2Ag/ERo6lHS+KmQ8z0D -ukd6rl9WS1h4QT9TBBOLN1qjrR8Noj9j9ePah/8mpYqk/uJ4rKqor193kX+bSjKA -ML1hPa+Tb1eicWBTWB+8dpEOfLBKRCh9KLFD4f1LmlqNjjP5pAMZ5aluHlA4fdqY -4H3k2F7uorzYrKI2IP5hnqBc0eR77Y7xEa7FMGPYdLqlSEmlI6vWjeRFO26A2pPZ -r1P9AVuYedVwOOzPEU9K+zUkxtlVnMDf/Q7fsgiQjmmkRYsC6cJMXCoZVPGkTmSl -qLseHCmBb8Ij0Y3j2HAU0mGgmwAWJpZVbXuzy44t4sEE45/7sMsBa6j5fjaVI+dP -k3/qVBROflGTGhOIMEghJmrVQpKCT/llULNofXQcpUPkSHwhGFoeDfbCp5a9Y078 -kMUdB1zFuUvrXomuE+Lz468/aUdt2Zd5USf594sb1BXBocQU0IHXhcCaTduRz5vo -dPRApySKzy4kasjnQX3GCaM+8yMQKNLKHoaNbXkLwRvFfLlkC3aesLEyad8srJ7D -l8yD1ONUz0gMfYjbcXdPUYsCGgUy/PRPPFutSmHP/wD7ZwNf9/XqQ6PIzc4vdQkm -OskTBqWYZeQ1GG9YtIc0gcSkV7ZIV8vx4Lc6rOrTeJ/CAI+WGly3Uc5JEQC3xN7Q -APV/c11CeZuG11KONhUuqPfN4QNP8ee/ovv2ZI7h2wUzhi8lRIZzkd5FGC8jQ+WG -iOmBuX1ut6N0cQW6ZqLD/hPexBbbC009s4vVQIaZnEQaNAaoHzeo3PITqyd7Tr3j -FIvJx5ap+ZXQ9lJ1L/lAO4wXx070CgNkI3llbnuhZ5Lhd77svkQX4YdvZtqgTVWt -dXDbkg6HmMTkrnlgglVwOhbtfnVmr80RcSIZG96ebXfNZ73ilHHugNr36wVjenIt -ea2VInQkkcCEE9M9cmk8VX6KuZ3kgErvg4wZ2nfSWRVM ------END AGE ENCRYPTED FILE----- diff --git a/secrets/ssh/private/id-rsa-private-pub.age b/secrets/ssh/private/id-rsa-private-pub.age deleted file mode 100644 index 9e8ec9c1..00000000 --- a/secrets/ssh/private/id-rsa-private-pub.age +++ /dev/null @@ -1,31 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnemYyaGVzdy9XOWVpQnEz -VERCb3UrMCtkNFVQL3J4RDZXTEM3M0RyYWxRCmIxUm9OaXY1WWE5bXoxQ1M0eEZB -djlzYUlEK2pMVStLUUk0TFJQeGpEMG8KLT4gWDI1NTE5IEtudjZvbEd2VmdsUVpM -Vm5nZFJQUXNZU21FSFQ2NU5BdDJEVEFBMmEzVkkKdkpVV3FqR3VPcWNDbEdENjRp -UkxaZXo3WDlsdmZUdkdSdndKRUJQaW9qTQotPiBYMjU1MTkgOUxmaUFUTW5lVGlX -amlIcVZsUklJOVRxUEM3UlYyeHNmUWQ2dVhUVE1UZwplZ0ZKRUJUbnNkSng3eHYv -SVV1UythVUl3end3TXo2Wi8yK2wvVkkyblVRCi0+IFgyNTUxOSBpUmxRLzJuSHA5 -TEZycmtSb3pFWSticTljMEowNHlYQms4S0t6U015SDFZCmJTWHpqVnZ1dHVxbzlZ -U3c5ajdGbGJkZUlpOE1kVnVGVTlpNDR5aThiK3MKLT4gWDI1NTE5IFN2azA5N3JE -SkpXdTB1YVJxMkVQaHRKM29UaVVkb2V6bGttRzZiSHpoblUKakZvVGpqTk9ITWVV -bkZ2akpQUEFrWGx5TFgvckl0eHFNT3BtajNpZXlxYwotPiAhTX5PRUlVJC1ncmVh -c2UgXiNPSHQ9WSBbaCMKK0dzUUlRRzZic0EKLS0tIDZIZ0o2SlA1dU9FSTE1Y3Bo -dTA5dml2UVBkSVZzTXhGRXkyamNIZm95V1UKXUfH77ZWeuuloSXiUCjVJJFsaw5I -AUjnU5ViWuXgQK+HhklFem7sDRF6Tym9DiQrfAn7j4WBY/1TqY6LDsklVI2zQQxd -5IDjGxxoBG507656dVblBD4GZHhEQyVuZhdcdoGAW5LPOH+kRwhE6YRjO+ec5C8x -K95QxdaGRLUsyCnOWOJTKiHuFdYnpbqOWGekVbVk4Arz9VQW83g1UrvRfvFywEPR -m7wYG8dnzPia4tRb4Svu3xLh9b1DiVHrswL0sOj5JoNKZ7/ctMZf5TwyP1dAHYY5 -fjEywywBxtp+ePVZqpbOmrvn3mnFifA+XmvpLhdYSJO1P5uKmMdFaiesuMmlK+bm -AwK8UQ0/bKC1QUBO0qL0dJx/UwP3JdKzpCV931Z1IcpSPW/v0eJJb59RCMCbzCh8 -s4IuGK3vTZWBUkQPrfLxFSCBlwBsdMYNVPKVudHsXd5NHVsQtzc0u/HMTRr4ogtO -NmVjPdtWVjy02ePuUr1g/E3dOWpWP4PUOrxbupt65Mr0EJPhjRs4ULysY1U8tJTK -14A/jgJdeU2toIjBNKqFWTWymHt1matpzeHcEZSLMCgTITCulJpxZ8Bf5QHCFXSS -B+LRz++BGzqrL/mMjBXBut0oGrdx14qL4lAQeFdxo6GNqx86GaDdCSCjB34MMQis -SSwSG4ipjcKkhrMdqcBvYAzabWujvpKKARNFtF0aMZMP6gACEcfiQ8yecOTo1fkB -cBPa7ceI563JgAGvJmUtDBsiElPwivulzUGCzfozY2XeuSFcP23V+V6PLUbFW5d2 -mzoohNJKH8PM6DEWRxxxOLQqnfqExA/40ZtmTEpjrqzixb53COYSioZOSKBck5cv -xySKpgUI8GPA1jdRb2YiRccXCRDa5/3eJNrFc2M63Pynezu7Zdkrw9oGEVmAxkJ0 -YZXtfoT8VyUifoVWeHqTdGTiXLOV/rJJUgEyYGrvUPmNADZQk6CvVqKfDo3WuUSt -Gcrk3QaAAZX8UVqKlhRTz8qujGzkhPvG6SjJOwTPJZ+Zr53uWA== ------END AGE ENCRYPTED FILE----- diff --git a/secrets/ssh/private/id-rsa-private.age b/secrets/ssh/private/id-rsa-private.age deleted file mode 100644 index 6b1f6ac4..00000000 --- a/secrets/ssh/private/id-rsa-private.age +++ /dev/null @@ -1,87 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtbnZ4S1Y2VVl0aEtTNEx6 -OExudU04eXlobXZraUxodGJvNzIrWGcvRlJFCmxBK3dsNGp4TTNVZlFTQzc0MGRk -QU9ZemFNMVlMNklMeHlJZ1lkVXkxTWMKLT4gWDI1NTE5IEM3bG5xWnl2NHZZL3pH -VTA4WGZWSjk5eTcvcWUySVJZQ25wSXAyZlpEUUEKRzJ2M1JocXpxK1lORythWTBY -VGp5aHh2ekZ0cWNNYWdyTWdVSHVYdHBYZwotPiBYMjU1MTkgMnZMZURtd2pCNkpy -L2tQWlJkK3RlSVVwZlg5UVJkeHJLd3dRcGh1VXNDZwowczZsZ1pTV2U5VTFYbzY5 -TFdtSElTa1BrL0ZTYjYreU1pY3ZwTGNQZDJVCi0+IFgyNTUxOSBmajRrczdqWFNK -Si9FOTFBRy9wWkpJSzBSb3lHU0VxdTdwZ0VYKzRGalFFCldEUlVrd2V4aTVCUHJX -RGFaRUFveERDR0dXNXgyeTB2b0xacUhPck5jVUkKLT4gWDI1NTE5IGcyNFFGbzVi -MHBYc2svSkJ5U1NXNitUTmdVL2ErR29BQmcreCtnUm55M3cKdUVXTjFlR05BMHd5 -OEkxNlNpS0hiYVB6cXVkVWlGZ3o5bDZlNEcvbGpoMAotPiBGKHAtZ3JlYXNlCmJS -UUFlTk1FVFgvOWZDNW94Tnl3YW1wQ3lTaGI3Q01pMnFOc1o4aTBvdXZDdXRaMHY2 -QkhzMzRubFNFcktSODAKUmE4c09COWJ5bFhCRFBXSFFDb3A2d3hacmF3MVVnMXEv -RW1zeDVNV052ZGJiRTlXU3NVZUdZZmRFZwotLS0gRTR6ZStGRzM1RDNWU01NdGpO -SmZOZ1BpU002Ym5UZnl3eEdMTmUwdVI4UQopFyusTB/Yk5JK9poHupT4tOPSfDuw -hK/CBb1AkJ/l3jCdJeJumpl5DtsSOI1une+W7rSrhHDBHXpf4fZ5zEb8IhyTL4ME -YdLrW1w34JBeC5sbgGOGyJDR9pQEOu36gEIcq3X2K1JN84qQ6wNgNxwchmxMGJMu -6aM0YPpK24V7kFxIG7Pj1vI8LZa0LQJLEKGZwuWB7rx0PakMSW8QQbbCdl0BK6KG -Yjrt4khp6V7vxhLNzfayUvWeUntwQZTEDr2xT8Wi6jNfXh2ivwzlO+OCb7fgH4qC -O/X4Eyjjgb9U+9Beu1o6rOv/hEW3J9EXcyVSZSkZsnihjXwMWocuQLvU7Xxh5iZo -9AfdYY8n68to65pLiWxqh2O1vwc3YMTLifFJ1WPOJm5UQNZiKddl4bWdKkOfC7ez -00g8xa5XdZeq45wa2ABaOX45XwmMbWXu6tMfsLIlGVGQ6SA1JNWMAuz9mPKoI7jb -4idO1xp3jYIJE41bO5FYKoD1t9UaMAB0t9lEBoZSEJNCR5tACEHVZoI7OhiRk/ho -F8fUYlcLHb9L32dLOXNaTOmhP9+NUXsx24KHqnrOISzVTz64c+okmNN5967Sap/f -jXIUSoFTzOkGT8FWVQgs69XSiiYmC93PNCC8LQOv2S1Cw1ZyjhqIZriHmiyZ93jL -YISoLENBxzRvwPEF1GUAApl2CSGf3nk/TDOyee/M1vWVY3IU53z5U9PkuiN9i9wd -GiRqawKMdNCDCqbW19uywuJazfN6BafRQ3sE7daHJODNFGTaT0kEvZfP27hBGrxD -JuwaThe5HA1T7PT11qgEw05IiLfRWJYbWM4Uf6bphYgW+5qveOQeSyipb3NH94yD -EdTamVuz9ewaJK6CSJV2XQdvrDwea2nTMrIyLj3V+B39a6OrdO6XaUhDXESM9Djq -T6gBjEkDZ3uUkOq3VYCIQ5kRHC/LFblIg04getuZB+BJRwoFLqMq3HdP9kWkFPT4 -3W+KNf111iKY+TzsXDcE1bFKYZDtOZ1/jMMC6rcJ2ESQq5OB375GIUDih2rd1p7N -IaVjybXlJnQdVX88J63yxSuc1KDVxwRVMgXRdZgAaTU3b+fcdk6PveOs4zwMmsRP -6LseY41vgh1cKAL90tUR6cayR5Ioehmw1yqMppYuNR+gUOCBvPLHNJ091DbmQqoF -G5mDJx5/FaGmnqVPwae2nFYVklk/52ql3F/9phzahblR8BY+8HsQ7/QCuZlCedLA -3x2SfC84lOZ76Qe+OLPTDIvQ3KuX3pmnPxeT/9qYg3uvuq2ZWbz9N7le7hw1oK2J -l9HDdyZL6cJd4aA97AEQDQRBe7zJRfUhrP7pLigV6jnFj7a7TZSxR34OUt9v/X6q -EbPjauun0+t9GK7PEIXkFo2quCJKnXS+Xwp1eH8/jdp0w5B8TmWyyv2c0VbhJXRx -BgNFpurCA6UaqSONj3giYBQRfeLwsr4bEFUxazz0mW478tvfS8Gb539qJ/S8Xpre -Gz4A63uYfGcraHf2WRWH7YcV68Zf0apo0WCfDYRDVIVkyahxlt1qiRAus1yZRH3w -O1ANQWk5VD2ive12a0kmprcfZoDiUIo5XTys6tys+SsgzL1cBukOecputiHgkUKi -lK8v6UA6thLJ9zHRTQd1wcN/ozPD0SPEhJauALl8dWLIE0iT0/Xn5EVwHO1ToelP -dtl/apv0Ppw3IhsmYNJLnf5N1KYi7DB2ySH8NLDxj8sTZ/Umws1FAJcHqBBmmkyk -0bdHIt+n7EnTzPJm2xOHKsjdpta7sAKHdT10AqITNjzbyK8vUgUYXRtUDp44lw8y -JCdQmi4dLzH2JxmW4s9vRxV3ur4wSECnBd6OOgdet++B20Pi+9+ewc/CZr/2wYYD -ffU8kBiRefHrXQzQJdekRnkUQMa6IiCU7Pn2/bStRPyDbxiC9GdrP+r27uOUq8Zm -RRcYdh6NE4ulxUkKC57t7vpOLZ3iNjz5fGftRL1j1peV/ny4e5IbwRxfv3vAT1nb -5JTO372mb1onbarO5xdPY8af3FQ32LozNDf5fVIG/SBgChW1ZN0mdpazjz4O5Yz1 -RKquS5bVj4g+4uhhbRpSs5hr4tHHrfeSHjo6ODQdSYcrIIm4+h0I73QaRjt9pBza -/9Xx/o13K0hFErJ7+YKNPtOGsf6Xb0QKK9ZCdqPdjjuwhTiJPtXwQWjP4JV1Iz9r -pgwpLz523vpeP07XtrsDHxO1+GpL24FbW7u+UFx9ghKsFEaH2VNxIhhE3M7XqdNB -S+/DiA6b9mPZBW79brO1sS1Eof+ktJ2lOfEpOTP1dCAPBaI9RAnpDzw1eJM6GBgF -QDkoy+NuoTSIgTvbwVRWHotPo4Zvwd5vRR5i8gyZG8UHsR8fSB2+dg/gNuZPNFc8 -b2XaaAC86qecNmXOTxcMx0q0UjSqqkWXGEiPqNuK/8d5nzzSiuyeTvKLRFlxIMIp -7MIP4c7BfdCBljfUuThnqSSbcGMw8qmTt4yXqgQW9dD1kvPa/Q5K9e97ISMGdhk7 -txlRJR6/lzDpg+bV4qoesVfnul03n12jlwDdpY7Ug+pSAd85WMk8HR0xLSdxBOBl -sHVuVvSq3JJKgsgW/ADJseQsrb+/rZz7DC1GAB0K9L5NmZdMsudcL1zHRrDcxy6q -DEnMXuM3WFIawR9r9MBrqjBwJMWyEpPVKL9MNw5RRYz2VnpQTmjz9FNXJLldk50h -JC/BYln7zA5EWmhRqv4RhUjXUV9uJnEe4Q9hNA0Qv1j7HtP4zbV2KyIm2jsXJaqy -0R0RZ4MtNWECawJ89E/YfhcD30UmgJs4YFhswLFyEKWLEV2JT5ZN0+KmeVnKcuM3 -zYWhC4aKUh0BQHWZhR1aba3iXYkInx1Iyp7oKS/iUxtwhW60DNVQt78VOVtzpNjs -VgD1zTO9ifZVw6BWF4xN3hHg6MuFfhfeGIh3/7X24rBPcHHXyJJ4h1j0VdtiuLgr -kkm8vN0Q6ASWvYTe/D83M4Bld0/j8P7QWo/HGtwnwySCIY0vHmQ43EjwRFfbflot -MjPGAR0qzX7g9QXq89+ynwQU6vH6Nd5d0rzG3AkxBG2idkfViMiUpUxTMhZoCVYL -yqx1L9mHazMHNx22mow6HOruueViuZblrxIJQa6k3d4WcFZDDVxjIr4gIA1GrRzP -wEnSUYXvPp5pK/ujx5e10uwlcMTm61HDx/mTq2QxFBLfBVjH/ZMh80MkT2nK4a8s -Hby59PukfaaSBuR61BwO1u2ree7+9Y9aAl7hFEKogUDfXK6V9JJjdqi8fG/nSFhg -dkKX7rhyY0e7M36GGG0SxQR2hzIjsFAEHpzwjfnNV6o7lAIAye0/hGuGNpucF1en -S8yMywNTKd8wGBuugJPyMO1JNS6uGnrkz6g+sM83uOIYwVKr5eUCBQTMYuLxuUSc -3e5Q1vf565FSX6wqpw9s4Vo2O/j+g01eJ968f05CaNC8DZiNHqOdJ30LZAddrgmc -TZYACDDou/YNjwAdj/1zaXbMpeVNWP+bleTKJAvuzYWik150JQJblUVqN0oR42tc -UhHutB0rowY2GoRayOZw871L8qkFtdt85inilQgnlpDa4dSp7sgujnCmcxMOvoEa -UjFts/X7hYprboBhGpHSoFXdTV4uGJ2qCT2N6yYn9AHZlsG6Q6Qxhd0A6Y8pOiKh -7bYW2XOhhz11p+eDImSeszBv+dClF1DiDTkBV0pAzcAIk9+m2awfrb3YPsQhCwaa -em0wlo9XuQLB44Pc//qFsT/1bphr1swIrUj7bHai8055KXOwrSlZbg87QnyBhURy -cxTYiHbHNvENLYZ5C064NATSKA6qqnOH8M5ONAfes4EBPkeHge0SY5N697ui4dMZ -cC9XQuxplPA8KPeFuowYC0EEV2RRsqefzwTUJYUiPzDrNaZxWu/ehwDYFrFe1knh -u4E1RUZcUNlVFGwh7NlcScPascNa0bmiYTx+cDOutaygjSBo2fS4UariCmdD9xGj -QSp7Mo5Ih7MelrprGY34SWAItOvoDI4c/osoizugHt5gFlvLZWjt1m2sdFS74HNc -ttjeaYkCJSYJpPu3h+9HfoC4/QFJdNsNwChX5WCmYUDHUJ49V2FX+sdVoS1tm1J1 -X2D0pNFua//b66jl93BvaJtZ/WWEqFl2fuHqnO1pXyTHLIvf9srLvRl3hTze8kDW -F3rGqC/GZP7rglDg5TscEBjoKHKdlB5GO0sLmESm1a+uQ7D9kxm0gP2n5NodCn16 -cNcZXNHLulkxBRoK8tBJ6ATdpqp+DOYrqORLo6QdTv+BE1LyFj2Hf09i+K6cBe0f -hZ0RcD66B83H4NmqjY75mrWOd8pJyy8TpAepn9y1Q4rg/9ThozMHvWNVOLPXv5vr -YJTW+tU8Uhgaaqg4c2EcCurt17OVgXaZ72LOKli3d7PybKK+vvTk/I3/D286gEl3 -u7BIKVgxfC3WmI0owrfXCdPeqP4U2B2R ------END AGE ENCRYPTED FILE----- diff --git a/secrets/ssh/private/id-rsa-strato-pub.age b/secrets/ssh/private/id-rsa-strato-pub.age deleted file mode 100644 index b4083d76..00000000 --- a/secrets/ssh/private/id-rsa-strato-pub.age +++ /dev/null @@ -1,32 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmQjNuT3I4NXFBR1lEdlBQ -WGpZOS9CNzlXZmM1Q3I4SEFpUGJUY3JBcVM4ClVMcCthZmhuWklQTTVWYURQTWZ4 -dGF1WmU0VU52NU5LckljWFc1SkgwelEKLT4gWDI1NTE5IEczaDJxVHFDWFVHc2FL -ai9QQjBZM0l3MkFrZXhTdklMMlVNUFAwTDVhV0UKNHVyVUduRk9BNFA5dzlvYi9x -RWtlUUYySnJjZE5Ca29KdVZQcG9QR3NtdwotPiBYMjU1MTkgMXJ6TllVVFlGRUpH -WXp1eFpiRHpoYzJIUzhnWXNNeGl2Wk1EeHZaTnJDZwpUZ0Z6bzFXN2x6dUFKV28w -Qmgzc2JTVXhIdjgyeTIrVXBaV0hybXNvZTA4Ci0+IFgyNTUxOSA3U0tKTy9CNlhw -WUpnVyt2d0crZnVBbkdieVM2ajhoRTJCRHAvdk44aW5FClFDQkFZNXlDeW40eEh3 -TGV0bnQxMWNEMXlPUTl4YUUxdlIxL21vMk50RWcKLT4gWDI1NTE5IEUrUm1OeGZq -WU1rV0lEaXhyMGw1NGUrZm05RmI0R0duVWtRdm1ZTzhIeUUKS3RSSHhuZlFmWTFL -dE0xQ3U2dFNBNzhNNWZDOExveStyaGp2MkM1OEtzMAotPiAqLWdyZWFzZSA9TVZN -CnYwMU5VQjJpRFkrNkdXMkM1MG9VSDBUdFBnaVZNQ3UxbkpDY2lFajRua1ZjLzBQ -czlBOElDeGp5RzllYi9qQksKRk1QUnBBM2xrQkwwCi0tLSB4aEliUS9wMFlSYWJ4 -djEyZC9vb2xLOFpXdkxJVzdwN08vVEJXZW45TTZJCh8h7m1U4aq/8xZEdqTobt6w -mRPTn2LZTOoleOtHPh8SLQOzyyWLYtBdzfOWX7NoUJxViFZXc0KyI+fPcD5gJBTN -wQHyWQHbRm0l/5ZM4/OHG48a2z2nj1IUhA5/KaJu6RAMRoXuvaFb8TAjlBHMUoPe -RGgrfNndlhtcmxq3kiigDtniGCpMGtU6NQXkx12ly2o65noiTz08TuqlEpyoL+kT -8E7/OjwqxVF5Oyvm4s3ZFcwx/Cu7L5fs/s8uaqjinbdI0bc4o9Zib/PoyIF4pfcl -UE8Yo6eeac0Z+O9NyvUa/NsHf/zqrhYfG5c175O1l6Qf7PhMppCc4gz0aKbq1/u6 -sPMvu+xKi55cxE/J6KeLcMCP7UtGLxvbWHcmPb42ixBbe+guC4KthHOY5ZqV/1Q0 -gU06KPm0jWh2+UanbxPIWipKlIONl4iM1wr0OpyzIKJ2kJ85PWxlNybrwnLn0AgF -V2nQL2JP6PZeWrtqQ9PsHvMj0O5QIw38yZAG1lYwFaHxG6OelNLpMbBqw+sdZ9lG -8ITFvOzhcs9bGFmkcmMMwnYNQ5i9tjeICHYQrVb9osX4ZYb9pjZ4uni3wrQh6IeJ -919u/rbjiNVuED63CKXFeIZ9DfNlWFkClqyurVUOHVj7xDreWiKd6RkO2Lbw7irV -gDWMIrTauMoo+DIPsxfXJ/KRDt+WgEPh7LLvSnhR4wcvrwuloQ6ulagm7Q5ZD6WC -rdqVSCm6yCeTNnAMH1V8QAwgBj0VRN7v/LIX2/hMgQyM46s4YKG9J9fxVAFMqZr+ -v/4IZywl+7XG8PKNXeSqchIvUg2kSWPI4ZBt+vA6mKHv8MnQ7KE8M3IoZPQ7a58H -twcJ2TxxVVs4saS8f9qtnVRP5VRcKA+eppZSrkLD902pO0pLSmoS0oYCQsi7SxYU -El/yccvgD7xtXPim30tbj233/Gx/ARkAokLPOFUhlgmM/pYaetmS0Mxc43ZOzVQP -Sfhs47rjuFBkxaToktl6nrTZHT4826qXGkyd/3XBXG+dGTpQUxsayPQ= ------END AGE ENCRYPTED FILE----- diff --git a/secrets/ssh/private/id-rsa-strato.age b/secrets/ssh/private/id-rsa-strato.age deleted file mode 100644 index 493f6481..00000000 --- a/secrets/ssh/private/id-rsa-strato.age +++ /dev/null @@ -1,85 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhblBDNWRTM25hZnRjKzdm -RjIyL3JFWVVxaVJTRGYxVnZnQnhKQ0RRemx3CllCaW11Q2tTSEtKZlU3SlBRUHJU -QTFlNUFjWENER0ErNVl2VDZqckNxY2sKLT4gWDI1NTE5IExZZlZiaFByVVFVU3FS -NzR6NDNNTEdRdEpOVjJGMWFmQXJ3MU9nWFJlRVkKcU9TRzVqaThHMWRXRzk3N3V1 -T3U1UVpmaU5FL1JMWGl5VmdySUFOakR0OAotPiBYMjU1MTkgWDFiTFZGK0pGeVA5 -N0M3ZW52elltZ2NyRTRPRU81eGdqR3oxNHVtNVJ6MAoybVdoQVY2djRNb0s0Mzdx -SFlnRzFqcXBhZUc3b1QxbmFPTzIyM0g4WjYwCi0+IFgyNTUxOSBsS0FoVWVjYUJu -dUJzaXF5WFBBQWZPcEdVeGczbDluODB1VkNYaXFpbUFJCmtKVmd5ODdQY3hacys3 -TGZzMWlSQWVjTFRJUGVybWNSODFCNm9ETFZuNFEKLT4gWDI1NTE5IFJxUHRDZlpK -cEJqNmVhbDF1TURmTkdHQXB5aGVLZ0IrRHZqNGtJdFRWbTAKc0poT3NyQmJ0VVZw -S1NNWHA1WElWb3BSbk1WaGZZZERIVDBhV1hBRkhUYwotPiBVI3F8RC1ncmVhc2Ug -YHVARiBJT3hVeUsgTy1UCmVuSEZWQQotLS0gUTFTVEh4RExHV0hhclBVUGNKMlZP -YW5wd0RRZ1Z1UWdWb1liL0ozU0FCNAoLnSynll5QlXlWQTcEv8h71E3FE7UmRXSp -rEKp30nZNxMcapGkw3pBj8OG1f6bm0PyPceOEVscSzBxIwb9zcGIu2vjNLb9Qk4d -jDoadcK+7xHmlEF6gbqZUF8UEJdc1IuIqJxy5ZfD0+19apz6YTPmjtKoSzcVdmsl -BMV8oLAd+Sl5bAjPBd5g00HKzPv9XnJCMXkm57cFV6gDr1aEK3Z7Bi/pGcdX3R2O -7OyBTCJT0CvB73Dqtc5Lc/EAdIouI/aVClkKDvNseqAjSqPjbgzzD6fdN62sqQk/ -Z4Jh6/9uX328UmNXxDAGacV11UBhWUP4XO/KVz4f2Uw6a/F7kpfQo6DUYqAJ7tdQ -A0opil3dtxfPIfAoK0N0lY3lP02FvRPHuFVRC5BE+uFrlKxYwFgPmjVkbOYrePEs -96ZBpyq23kEeXSFRw2/V1iitYSAUt6ja96I9fIHlhEZ2ngM9Ze/P52ybBpH+3HqW -DJ+h8ULb+WJqdzgL969bLWTcdriTmlA1p4hmyWjniQrcHfKLAoFWnb4zlXXLVlMs -cNmrB4yyyvKbACRvv7LC38pD/+z5S2H5GlVgW6OHFmOGJw+FRs9hn3mqywMWFHAQ -bMQXCNvRsrRhZFJs4e0v28idpzGuYVuCVgLCJHl+h6bjJwP/LeTY1mDOyn8xt5EN -fB/XI0i7oHskotwC2578bD3+WWux6cZUp1c2Aw3Z7rh+u7rDdRFwaFk8lpZTUuf1 -HAuaPajKHN/UCZYFRWBn2lzR5HUhx0P7cHXz3p/85HWq305Zr9Fl5vPK1AYTBeHN -SOUxf+FodFih7r6NpEhlpf2rEyugZNe2bA/81dfAgSV0zNSYp+anDH567xU5+Nom -UDsvwEDTcPxt7PWOVWmkzEac4svlhkKFu7vyC9G0IJqtsh2zDTjyY7o1jX8eTG9F -gfRNlCNWxF3+q/k6cqiLbGwaLx69JyiuVzMnFDG7AqQufq6GkdxpPNJxh6FBDqoS -JzmR/WDjqopdz4q7cl6cPmmqFFCbLPcaUaJf4VZZ8Bv6CBwWRg1U5G7Sw60jszXu -HNerMzdYUM6jvkc00T8lOSFUQGET+eHUxEGogQy3gvGpKGPXjE7YDxSxaJF3Ye8V -dBts0OVnZhaaBaeT3+HpocEni3tDEdkgubWR//+nxLYpnUrl9J7Kqyz6ALdUnmhz -wK3uynzQxFGWDq6EG831n35NKPiVj7ip07fh8zi89tj2g2nFl3qTlzWIzH22YlJs -lLLB7SJQpQzdAlpya8MB8qvo/RAAgQxtkJtL72zPWw/RPBTlx8U6aIdnSC7MEAU6 -MbZ0StSP21yVy9g69E1s9/M+mvWJDdKiJHSNTc9IymOm5cKbYJqN78FkHQ57jgua -RtXpIM/ejmHiJIP88jBS4hrSHAyan87fVJyJ0FzYL22dK9SDQ5w1tt0Jb3h/MgGm -4FPcdF+Y/mqYg4dCn5cvOysjKK+TebKGmTfi4FkW7Y0Yrk2JvrH55QeYU6Rb6PLG -Mo+0shfgFgvWUN9cFZ/bPJ7AF+kIrEJKr3eieFbYFEiwelSvTpvAtMcFxWmMgYTk -EOdGTzmh6tEAidZG/xbr0wE5tDugUJ8VMK3At4rafeTpTv66pPcXm1s30V9iAKDQ -y4iEfhWhUob0myK12QI1YqRhsDuWBVrRuNUVIXjcmqjrtA+w5Wh6QtVXHIPOkHV4 -ry3wV7qqSEtByEwG2AJIgVgYe+AqW7buKAq2B1O9hmwSk8r77E9Qpa9DOewChe5P -418g2cUS+mQUjvcKcSzfmAWdNM1+L+10jvL7ENmkljHRrXw4nm58xn7J37TVkJMK -3QCC1gXEaLV4ZUVfkwrJa9GI9Bv4ogxpmaM+wL5ENTQd8sXg0nwghmQ4zNbA2rWX -wHqMtDaKrDcfp9nZ07swHYbMAK/5KjDFpBf3C9skC8Ux7Jp7JJp5DazLqAu5yiy1 -+nQuLkwXWCyvKSx3ZHIhFMUJvIt3UlXnnXM117CVLyNFpxdok2RcNWa4fKSU1xHb -Nuf2mxrAIxOshKtumAOhuDZGosIo5+Ku7dUQ/nhKrIrNcIe/a1SrtsJOSg21XjR5 -4Ig/rgGkFGAxSCxFxYnf7z+xWrVFagE4958xQzGo/AAKilb8EnoAke/n6IClA0tg -TKWxBGTRLU/4Rymwwl3ARI+/KBoOeZu0OmV6Ct0k5tcJ8SMZA4mhREgQ5L52vEL0 -OU2i5oncEJugugZY3xrMwkiseFrZkDKKAJKd3eof904eFd1H8HQ0ZEhGuLDSjRW0 -+UFkW2CEYCkP0QGLqchQy2bCfWiQy+T7LgL+3A4Bcclp8WIDnXicGj6n7DM6H54H -wvkqNqO9OFOou3+PJ1XKb3kMK4wIRjMQHzfQhREP+kf8JupwWle3nY+EZHVmSZup -H8LHDy/ancVDHHymB+RNuSsVXnmUm8l81oVD+hB0T4OyAtvVp3LjDp5k0AW7GS16 -ebMi+7G4zfTf28i/2MQDNSZt6a7T/AsMkB/NLcdB+vbUhKsi5EtxgiEMPHgxeEIP -/VDylLFEghshAcafskMGSpNjLGpXgdrs3DOE1xYEu0DKyIJ0U6mnC86oDctaZxlM -TVe3JJB0P64JBA81Dm0E6r7kS/4fusi1V995pSur8/biOii80Sms9cGpvKpXfzOz -C+qgKrL3um1w+hZsWWfYHjxojMxP4Z5DAHmyM7nUaw3IEKwIHbbFtdjjNc0nCYO2 -HgpXNq9u88XV73sVVTqTqUu3ky1BJk6XuED8BVB4EvmD5Q9qraimVTIghmtEkZxj -RZg83a6Ejc/dG/K0XcOtub17SYOOxyuP9wlmQ/PSyPZxQiePFjYQFSPPYP4YK4OW -pssNOTuUxi6XFcOMePyqJ/PHbRtv23AaSGEB2eeq0QTwelpASG0OpgjIC0hK6nLX -ZAsiM1UEjKBwCCbl8mvG9+cUk/4XT/iqg8Gw5WguQn7LEPlzEuTrpYXSJTwi0ffB -3ljC8zkZnoxFfNqB5WAQZsTMWtr5wQ1LQvsGZ9ct/Rk3K+UOUs851VcE4h9jnezQ -DFs/iT/F5rKERPUF7qDk0D9N6RVArKMJCc0nct6ObpN7LF70zu+ZSQRtNcY0Lz6Y -uQo/3U8R1MJNbTzNKBdnlZp5ayk30NmalErDNhT4dAbEv0SE9xZ424nQhxn04oFD -cW4r/LuNcNeR5A6xUYqaLOCkYb91ZWzsN+shbRWxIAYrwlsd0uBvl3xVWynbOq7e -9+piWib6J9nX1MylETvoFpnpx+MMylRgvIXT9cGH22niZjzMTS+1S0eCljPxvI6z -wxKqfYPSRyKW7PKwdfn1QOhtHrBbNXUsX20cRQFFY/V/0HtpwiHq84HFKAP+5TuR -ZNnM30wTwS0f+OkdGG0Ceoq3BQ7j/udaXOqlR5on0Ox+JGg9lusZp1/WPnhBuKo/ -hL4yDVP1YKowMGZA8xLQ8cFVxvq5tkkNuEsTJoFCA7S13WxSzyCEtfajgiOjm7kn -PWfiiPdVJxdhjIe8FAxZYlDbJEpHddbeEqmeqahRha20VxcoEg3LevA3JflxOzVH -eZ1xsoIDVUT3KTiT9CZrPFDB3qt/SlHODgCFwhLYlK1P8aMvnNimK5xhteNLLiT0 -dWxJ0M3S2lSteY4LMz0wtx7eqEbI/5Boh+MXftUgQn0yY2Cxd3LYuOZFJte+n9GJ -Iww2dMdZRQ7/VJKWK97hZj2Z7UBYcfJ9c0CHs87NfCNbmseIxY/E4qFcueInkDa1 -cI5+dHRwnMiYURi6avrBFbGWXriQ7KG68fd/Ol8d4K7FLvv2eQDL52fL2lcK6cFk -/rM10MSlcDAU4zW3N5yfySo7B/jOxW/x4XNTysMT9FWkbfqxnTVkK0PUx1+OEBMc -+nJNCdu/vPiOD0WWptyqxVaI0wPwKUd/Nr+XPjclbBHpWtgS/unxaWZjR8y6+RGf -kBIMM7mPmvVBh7O2xvbfrdfzOhkBp1YslFd7REBaOq5qSGa73y0mQp5iJ1lemNP9 -sDX99baKLvoSSzb5Xzi0gz9RS7nC5LWgcxBeJxXcucA+qISLGlAgW4qI6vFtA1SG -QZKYf4N0OdWrDUam9fysoUnnZUjGBOj09hsGH0t3uaCdqlJ+0yRgGdPopfxDx2ZD -bLD3tBoE8ay+blhWpm4oj2iT1XmNa6+T3TtiGXtujOqt860JSkPkjTmIuh/fzot/ -ghahkLbllnXE3uS2aNYiAd5+1gsGvMuQmJBPvQlU+cW8JAFtVhBFuDkuBoQf37CQ -/z4doId+VAlOzSuRRcZvLS03TOFvcK/VB2CFAMiyuHjXUXYSXDExkAspSzSCUGxm -027TH+HUB0dw2Hl7HBnuvelQ66HqdqVVOXO6MDIsfT9xrPlyGzlWgfT6y10w6/sB -x/9zEFLhNThWt1xSg2tks3j9/2Hj3pewRC9xLWF/U2sL763P1hPT57BAgmNqGPTh -sA4AdoHrNLWxl2ygPp/tjMLm/HOs ------END AGE ENCRYPTED FILE----- diff --git a/secrets/ssh/sedo/config.age b/secrets/ssh/sedo/config.age deleted file mode 100644 index 9098081f..00000000 --- a/secrets/ssh/sedo/config.age +++ /dev/null @@ -1,24 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArUnE2MjVFUlNRWU9JUEhB -S0RMNzYvQlN3ZHNwaGg2a1JUQk5CTGVMWWxjCnJueXpPZGRMajNxVjRCSHBVWmRq -dkxwQllHYXR4RGYxemxZc3V3WWlmZmcKLT4gWDI1NTE5IFVZNnJENkVFUFJ6MWFM -eU5HaE9EazlPcWFreDJ1RXV5c0Y4RnloR0J5QkUKSm9ZaktJRW5NWFFpZkhCcElE -Nk5DVkdpbFNsN0tZWkMvK2lyTktDRHB2awotPiB0LWdyZWFzZQpNUGlVWnZpTERD -YkYwOEozNS93ZU5LWDdXVXlBMjlLQ2NSZDRiS3hLYWtWOVhsSlQ4dG55TFQ3ZzFP -cThrWUUzClROcnZFTEtId0EKLS0tIE5zTDdlWVhWK2tBSFhLTkx1QjRrUytOTWZm -YW1nMWRyeE5tTXJtREUwcVUKZfR4ZxqDm63F/HjHhCWvfWYgPOj2yLuSNRUNIOV2 -Pp3HjOy+ixTa4iVEj8zo8zQWXdzmF1+AFBVaN8kjB08EguJ8CZyNe4sYCGMaVinS -4nJbcZx7lxQ51RuoC0vwDEbnafcI/LD1EZIvTnFtEY3LIWonjd3i6rjod3RQ0iSH -Ifpa+4MFMLYcs1/8Aj6YxkHfOyzH+4stZrxI1Qx0RV1f7jt8JRqrU4j+b1Tgvm8K -Qd9ljigRhmn/QNEfXmyDu7hCm56ak66gl1bwnkcMirQiPa6UFLdAVXCd3rTKdLhG -gLCgvwu3u/rPGGWFWdiiHrr1SOYCIu/eU7bb1jDVEP9u2rw1RaLY4HV2T7MrpMpQ -3q3oR7O20BKc8bkKlWkb2jO4C6jsdyAdnH8CWahIwsN44pGAiOx2fzs7oY72IMWL -LipvKhsEFBrqtSktMI0qizELQpLWVXpydcPOrskvr/spyj9LI3+3/yccMFvSwR/w -sLriqt7SaSgZFqXxgV4TUcQP1xxH6rZLdkU+mNIaBqqR344FUg4lRPVZs+d6OWFZ -YqSFdJe8cX9WL0/MosRV1bGpaZ/gfDdLXEFW7JL6eXlzq4B87NeyDi9yTnUqsIWV -zggYV4TTKqTseynk6Vdj61T3Gj/ZXURp9ABQOX0BM8q4A+zK2L1FdBjFyVA25FPa -+z7gkLAoPVunEjZTTOQQNrevjcFzJqXzRqmRgeSheeGcVljtBXiWo2vKWpJAAgUL -VTJYzwyfwPIpMucLDdRnJ7YndA0MmiemFdOOm6XIwaW7d8CArgkaXDmyJMuhpk1R -kvC3lIa68OEe1s8chdEUWjkrVv1HV3sx2HAAmxTF4boVh2Ctg+v55aENtezg2giY -7fqx8jVNCG6WDLkmX/SE9cdlJVwKbj6ZwTmQNwnywA== ------END AGE ENCRYPTED FILE----- diff --git a/secrets/ssh/sedo/id-rsa-sedo-integration-pub.age b/secrets/ssh/sedo/id-rsa-sedo-integration-pub.age deleted file mode 100644 index c966c517..00000000 --- a/secrets/ssh/sedo/id-rsa-sedo-integration-pub.age +++ /dev/null @@ -1,26 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHbXRtTmgzNzNsRmVjeUFk -OUpvNmR3cS9YSjhjaEMrODlobTFPa0JrekQwCkhlZHJLVjM0K0d5dWJQL091OFNt -RmJyZ1V0OHNCNGdUSXAyZERzWjdUNVEKLT4gWDI1NTE5IHRySjM4bnBEekdOUU5U -QzRoajRGemhGNEk5c2FPWCtmcU1ITHM2RDA2SEEKTzd2S1J0ZHVIV2xTUEkycUVF -eTQ4a0VvczZUWnBrWUtYZ0xmVGxTd2pJbwotPiA5ZS1ncmVhc2UgRypgIFYtKXZp -SSBGJisnQ34Kb20xVi8yUzhOVExtbC8zZWorVUlJQkZONkVCa2tNVGM1eUdkUGdn -WU9GTisKLS0tIHd4UUJ1WEpETTQrTUR0aVJYNHp6WlJTKzl0UGVQTGJuYnIxbCt5 -d00rWTAKMt9/zSRsv+WJW9NYkRd3N3RdeWqzVGVjk0pEVrWkTnkd1fX7w9+oRdh4 -fW2R6GP577BdX8gOQFWcKwp4JudizUvDgFlUs9Bu6T4fcmXflZl5CcWNTfkHH8iA -3MHfgAsQZBsDZfHDXcF6s+DZc6dfCvKlXDWkeGBZpyET+t1nyHT/jC311yufOkvZ -KEg/5NSAJiHqiArWHlUrMyAviE+D0QiUbVD9aBbNOeqI2JyhRHub95xeOJeY8PZ8 -7zVvfaAcTlq8DWl8hpi01ejlMdV8JBIbldJYg6gpMyHiyOMu9Zkb9RFSPyY1M8E0 -u0UxNV1q6AOrRdYfZmNDeZOMGDA3SfTxM/TO12tb8r2J5r0PMdlj4BUHcm3Rtaxm -3+5cGrjkxvbReITpuhNKjGcSVxy0NxY5s5k6CZPkhiwbpOLz/IaJMq2v24C+jGFj -ZDN7Rugx0IT22egyMrdmrw7vizdz3K8u+NCBK5/g0sJQ2T1L7SOD3k3h4CX3DDUX -HyUp9xSUIEFDDHHW9Fo+8eefZvZgCByhEyGvNsJt+cBeIf+ahlNiwlWzXukXfBzu -6scgkgiMYM3sqO1+YVb9pEogaqymrajjxZ9BX191vZ6NSAIMLvj3zDpq3Cn77+kg -D4ET+7zpoQXm9wvkRuXocU+EpulsdMTGEKf375x3q/MYxoqjuB3OepHdU4BkPTto -ttE9d4DouId4k8gpnTLjJ0qKVaPZDElr3VuuD8+88eCTYjMddyliHOnFEtTmCkSQ -M4GxL4fXCd5jwWC7L4os5KtKBaFd/O3ZBto1N2PlKKCmmP4Q5xCzuS3BruDEtGHS -3kloBUhmftxuYqmoJ4I1vMQ/9claoSVW2Bbw9UWMTpmUz5owf9SPA+eSjRruNp6m -0g4NuKWVIZbgYlgAUskS/FYSMW5DwsdpO1QJw11xgXadX+K+PZSqaZBVMDhMT4sq -3iR3D3RT+wt5Jk6AZiIbGAXq11PwXH8/48WIkQf0t/LU6daolOvgQdVEttmp0bUb -dAZqFgmFFA== ------END AGE ENCRYPTED FILE----- diff --git a/secrets/ssh/sedo/id-rsa-sedo-integration.age b/secrets/ssh/sedo/id-rsa-sedo-integration.age deleted file mode 100644 index 6d55aa81..00000000 --- a/secrets/ssh/sedo/id-rsa-sedo-integration.age +++ /dev/null @@ -1,82 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrZldTckNKUDVPQ2VnTjJ2 -Mm1hUVpoTHpEbDNGVkN0aHM3MTU0bzNvVG5FCjRsZFQrUlduQUR5eXRhclY2RUhv -b3NCLzAwQkNEMFFOaDNlcFUwUHhpNWsKLT4gWDI1NTE5IGFVYWhkQmFVZXpSNEg3 -WXhYNFFETTdvSytiWU5qejc4K0g3Ykd6ZUNOUzQKL0p0dFBUVUQzNWg4OHZlSy9M -MCthM0s2akN3TXA3RGFaWEdpTytHUGVpawotPiBELWdyZWFzZSBobCBIIEc6KGdv -PApSYXpqcndxeDZONUVreVliaE5VYUNoTzh4MGwzOWNIVi9kREFsaG81K1JNdVdh -MytDR25KOXpTeWNZdURQU3NhCmVrQUV1dXBnZC9jaHdKZFIKLS0tICtDVFY5Tkhz -UlBEYjRMY0VKNjlTTzZhWVBJZHlvUmx6MlFUYmZsRDhkTXMK4pp7jrfpP7N43yOO -EKLW4njaAqlWyhTyAjjjqK0qdl9NmTh1Dy86Qildt7iQ/9MIP34RKeB679/E7j75 -larC6mN6nHzWcO2mNJTmj0d30EZTx1CM31e3x9I+EPS0XAx8w6k5uRJVXuzQSEy8 -7o4aMNFnSfkL2nsMjTLSLWdaFX8fNvu7Rec1vdU+axMiyST6Zu09hc0Kh1i264in -Lcv7mTlfff1NYkNLeIDOdSBL+5ZPJzdqCA0YHmmCVcxRaB/CZJt3s8PSGYvTuxeZ -daBY9iKloZ0ABPDmE2FFEAfWINfR2tMtSBMpGScrplLMun8EyO+NNZv4EMhRuFBS -o2b1TS+W3qteBBmMajlgfygbcPwy5YPVLwVqYX994tIY/ZzlEzxF8zXAok2l+t60 -3RjsHL39OD5uUXhgmNB42bAkdvnJb5jesImMKAcWnSER16onQ5ZQoZnoUZhRB54Z -VWZFmusnnVVRfQYMJF/kt/M6tKYvMd/jBkEq2Mfc6rD2CdO+MhfZBXRAYxi817Rh -is4+RUdFoaAauvIsgpap37+LjZijkIHYWRtbxkDw4qr7sPp08SZ69GUV443+OLB0 -o7r7mqH+Xzwtf+enRGdYhiajXYMvwDx9f1jH5yAF9L77S70WZQwk18+NWqFyd5+h -XecDMmVTa7ZNKIO8SE+6ACywk40AoAc21TI+XnUKCZt/VG/XlN2QlPcTYF6qgxmI -fnf8H4ASPtDoHngrqCTelyzwVTBNa1UjKi1584+G8KQB54fetSiIOXb+px/zM6Hz -xuWYrZY8dBy2+zaptVMyi3Q1nh4wlPRQU6DoLQFSL7DxfYaRzF/LTVxRgS6xyoP0 -HtKR+3COlHrICDPS6+QZBzm8I7psyMdSdlJLkPxmZJ8wy6fJFkRrv1F+doYku1sL -qkDrrth7PkwJculBCZ6h7skP3i4LudB+lGCOyNZWmaZfM/85aIDFDzdxqp9lfNip -KsRXJLo75L/jXNtM4M7SlqwDF2rEU67bzNjJZ1XF+AX7L1iIKb63CN9VDke6KCWi -XPWQa09URHPOr60HSRS2N9U9tGMzoUWqnW1iUE6lkJEPJmhuRKsiuFv7bo1+9304 -JqI+XYcPvZVrE0Mkbmw663WGW1cHQQCluS+gGIWdb0vZ2tXuZlUxxLDGGmAEDNnI -RWlEMksXAwDYfxDVrATgPa8wMphaJhNqcH51v4OCthKeXXO5OmNX8r6bdSg9RYt6 -cZkZJLM4RiZ8fAcULbBY2QOlk4zwHwSCp9JOzyw1qHsIW9SabP4TgC+XONC/9J+n -wcOgGc2/mBz3QjVZH3D/bTtUVF0/1lhBzaBd05bgBYd1OZHuMYR6eQaGaaQAP24X -28F37moPLUagF3TACOG0Mr+8GJUR0XQdaagOyRWXiqWaKGlnEtMDSEnrPxuXk+MB -urcGfsdVucatxwCSSxpunSckJH1xTkfuNxcsTGzuRkf3dWzBcH2/jNQyjzo1sEVJ -jzE7lGboZJemWSyDYcAWzkiM2obLIaA7+i+9JjVmFp+h9mN5gNlAGFa4eRpVg2l3 -bHrEiyss9/47Gqdh1rglJ74ii/ToMvYXtpkdFFP3iUtoNvgVj1Jf4DOfRPrz4vF/ -0zDOSCreE71+uZ/yJtmYOUPaTcYV/2R1rEuNX1MYb8GErxkiORIZklEPWtZTEJU7 -HXO7BkI5JZ7PUzxz3O9oEj7lj6aspXrc4sNb9q5Do9QsMXWlfMXjsmC62zNUfdyL -ZsgRpByJ/UxZM9UOquY2nVFN7nsxfg+UqLYa3lndlOKH5lGYRk7N76BnzOFXTjGy -Et7/7f2rqdNN+McLp7SxbaxLXQljtWsyABtiSvOIJytEhJOKkj3m+xrXBO0fqbcX -OssSv4RO/RGPL3o1oOtGvF+wbPcJNl2ehFcyW0rcpCDS6vR6SiwAEevlKYvLR6Y8 -WQsV9HkA5vBVApfiPN8vA+CayXwTFTjuNP0PvtJthERzgW/Z47iFzCMnYclIND7T -vpZx0dMO8tOopCUV3/BDs6Hb55bWFqRh88XUhu6zd2IPNwhccW1N2/YRci5IKQ9r -Mbc7OPVG00lGTCWaAScuTM/bpmce5gtLxCSbvcZdfe+exzwKHDM/HLDvHfETEk5i -bwA6kXEsQGJQNuJFaV1nc6PIt+NY9Y/vrRLN5hKx2zaSSLonCCTrKCD7GhlJFxI1 -WE6hUpWX9NLqMy52nS0mB9clPZU1cNug5VC68nnF0F5oR51rRweAAP4LgjZFrPep -+X+4Z0yzDPMpRUspSQEoCZLXL2Q1IdLsw/X8odX7EaXAmqpYGoyMSDOh9oiogVFs -NsoPcr04R0kAQJu+nv6Hs7nUtUtS6nfT+QwFMDzcUbzagWsVIrRUt7jFKmY8LNZN -6dozoq458fxSBC+MEsif6Bnf4aM6+d5K2kcF+WtKaF/pt3besVUS2Awa1kmbdsE8 -0KHsdeQ24WT8i5Adgm8KuOsWFqTT/O0msofxSIlCbt4eD0ULYWo4EFR6Ur1vrnmv -TL1zDNIvQTIEjd6zCEZns1eAc227mSpFEC6iTJE/y976YoUIFj5waErdIIvUd9fs -cUzh1CTz7cd01TayvNGjfnula5u6Ea2C6OUEhODR3DM83g7/F9bt7IOln9hjiEl7 -dvtgIuSc1RS+I7rwH4GdSQ8xUn7pUk8vm8xv20AwSS7l2xWWKToNdNtaMkK8ctiZ -ZBycpqb0QboTWdHF2oLQyHIkgu0OOmYxe79i+MAMBMaEHIHtJf2oYC47CzplBg8k -pfDaEoW/JUOS2sDOPM3Eu661D48TDWdrhGADE8iQ00h2F8qYFmGtWVUSfEupBYfB -NVWislLYNiI8hw4+DI4Iq9flElxCPr8nE1c999XPYAkgt1LUOksmPMt1Q7mIDgWk -WsvMIgXQG3dqts0L5yPrZ4LlqXbAxniI+nq7hd2VLb6NTB31VtTEzXXdQe0rZH9/ -X60hees0ofZVNdRw9xa4PfABBcTfs2aKjUBkasdOdoPx3jK/KSr2BSnAVbQTDHUq -vC/JBER5HDOK4aKV7ASW/LVZXLJhhJT+JnMT1pY9N5dnwRJ4aHAKmmwKeihO9p6W -HgFa8vnOg3CBBsRUHz1fuzw1HLbJ0ctbSEaofmE3G7VtlIag16qQg+OJrr1QDIBX -BVHE0tqAS5WbIVolpIpcKRiFZabyw1nvSHJ/HUHwljPLWOzr588fkMbBkKu9DkEH -yga/3QKzaX3QZo8oOM8ShfiSxwhogxE4A3m0MbpGeNFostIMvAOjmKNoCQyXiAhS -obEXeT+ceq3taQ8ZsuWvGUVMXSMmmJhdNFNsinSTUJ1bnESrim3H14feoEpc6v6c -UW/rNoLwnZKpRALvd6KUcV05AHtRdcKgPucIMEkH1BK0uTSxtteMHkmaRzyiWnXl -Mi9LJp0sHdHoyoJtaRV60BM+aoSWSoiJ65U0QBUgNf1N3UgIm63xkx6L8/1K+WlH -x66hvutwgC//g6WRUTbK2NnZ3JbHKf7agwzCbXA1Tdhij14a5N9GEBVTCaNZZVBH -iJd0tQWB17/JUB1e8ldSviEOGls2enp2b+T1o/fe8fzTp3A7QeEP+HUMPD+xaNNV -njVXIlXJffrpRkD54VIl3AD/TpEKnt364pSNBaCFmlkIp9UOX0UXzqer8xUrbTf0 -CCN6QR7nyhMuPOJiDyz7T0cMk6A+PgUqjgiiZAIDL8F5L1iToU0UZOD+5W07IqyC -SbKlLOt340lvPB0M2a9i2DGEp6NDn7HwyyoPyTabDeDSXxaOSynKYIVZlnnOa0e4 -KHODj6JYXcqhzBEfn24ABnJuGCFjlw9OwRq7bebrkmB67UyEcsvm/1zGs1uBt0t9 -EC6WV1A7H8c6VgGTjpzFcQRO8xcuwTuqByyg8gq5KAIzxB6mI5LNtWiGa0Oez5fE -Ga3fsb3PgIe6YaDlVRnZz3BhSb7G2Ds+DlMe9tmJafyMkxKnC8RQuGgd9Hx9PWy6 -AHutdPI4dA6RQAeNEzYHgEFRTgYofm+OKtNbKPIaaPz0+HUJlwjH6T1litIJsg1j -e0CYhZilLNDTmt9Y30O7tt8cPCsT5Q3QW2mGWhfi5/ZrQ4oHl36OwcivtOaQa7VF -pKLlcgTzjCis+zJg/6bgbzxUtUM5t5lCrVhLSDfUDL7omqF9bFIK33h33+/vgC4m -v/HHrZZ8eEBPRQgpBzkktvwVPWq5CTAiRMmpGoS0f/2oP/4qQ4DKsejrScnChItw -fsNYYbus92M1b4W1RoFT7Qv/2nE0poG9q2JfMtWEWlq+I6YMoSbU0WjNSbgm+NLW -7CiV6+A3D4eDI+PJeW7nJvPadKNAoAEdy3VoVqx+mlJVz4poMLgfyrvl7BJoM/+c -YD1LCaXUvkjl4JzfpWd7yt6H6NxVpxFX2YLQ+pMJK07c6HHBJxFkOnVUGTPwoAxP -SPIPGPd4p2FADkUbCuApFVcWwqPAJtiblkJhIIiZusTaTKezfdrgXloaXZPyt+Wz -twhYMJw3CLQSAYul4Y6P8fi4jCY98uOwiDpXNEtxeWNA9nlX0iERWuDTXDKDoR1l -7N5O3bocyttQRAA3ydPoWYzp9xK4HIQBAGWxxKH7G1nMb3QVFZlLWNS+BPh8jg== ------END AGE ENCRYPTED FILE----- diff --git a/secrets/ssh/sedo/id-rsa-sedo-pub.age b/secrets/ssh/sedo/id-rsa-sedo-pub.age deleted file mode 100644 index f1d7c3fa..00000000 --- a/secrets/ssh/sedo/id-rsa-sedo-pub.age +++ /dev/null @@ -1,25 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqSXpyVG9TNGhCWWRlamJB -eVZ1VU5CYnBuTXNKRTlxZjVIdS9qTmRNT2lZCk1Odk9DcWZaSFB3Q3FzalFJS0pF -YzlHdVd1Tmowb3JzVVBzODVMVmYySzgKLT4gWDI1NTE5IHBHakpaRE5ySElwZU00 -S1RTZGtGbTNqaFQ2bE1KbTJSMlhYZjZnTFhjRXMKLyszRFNGTHN1VmdIS01yWHZo -S0JYdlMvLzl0TDQxb3FHdUxYMW1VTWJWNAotPiBNJyp6Xi1ncmVhc2UKMDZaOGlL -ZkJxVzZ1UG02M2E3bXZsU0wrbFEzZ1M5VXNhdwotLS0gRC9xWFNKQXh5c1o4WG04 -U29hUEhLRzNDNDF1Y3cxSGZjWHF3YmdaaS9xTQoNdFEHdVXZcJm/Hr8kpUunHRzz -O9f8FcJIRCKSX85eUsJC9kRuiQnga8PC9d0uVZNfOEbl0scjmtt+CuXizcKx70n2 -pTT5y3heXuA61up+Cifn/tEJjP1aCQYuuS3xspDhpjJQobkjdDOfT2hUEJ0K7siQ -JWPgIHds4HDMBw+GZ3//6OrMv082eQl5d5yk9AFauc3nW0+WB52s8IvgtIGG+c8Q -tpUqJbKmgV4vH9iJsmNZcEFb48djBBrcp3oxdmIPJgQtsfnMJBvuWUf0qlDQ3BgY -QyeJpuOZPtmWGNiJaMTEolwIRf0Q41FUuMuepuXz2PhYw5ooYpG5Ka/BMHj9mZ+7 -jX2QTu2DhVUUBF3QZ1p3Gh0elAsw/r2y1+yuIUqV4dgbtLiEDoY2KabZijpqZaqd -aoYZ9P6CEVAgnfjBnAA2ATqr3Au0+acqdHGAEPhW/cMlpexWOZglE9uCY/bT1+AV -rHwXnnPJxW3UXHkCgxhcGY5/fhRzkKvYK75E93tqp+s39OZNfhGhoP3tgZhpWtJ8 -SMUhGPqhsFUtYBqsHu3YpuLgryBbPHxbHZBH59NIhHwg4wxvB/B3EVSFodABrTjL -3Rhvoc4tm/FjPsuup5TgA4IRmjQj4uAATZQK0bN5mT2Mj86FZ1c2GQrf6FSr5Z2l -QrSdl7da84EXSVdtJw9lG9pG+Y3NQR+RE6rleWYj3eLWIsaWoJcFnS5rW+S0CD67 -2T6dy5LXSo1p6ZafYS4BsPhB9uXbw6Ze0TTQA/LuSA31FtaZxll2D+/jZFOF/BxC -qDzTn+mMpG+8+Qmjv2UYkRTvoXc7TInzgGnP1omv8xvJDlOxcArK5SqEQ2KozgbW -0gSlxtoc7a3c2fR+cMSu0mXWfv5vL2ey+cWNq0UIvE0fcGJVmMEpZJ3N0ZbpitWC -aQKs9BsRdHBXfI4D6vdVtwGeK/D95deKemvHMIo6+JlhnZn7FmVTWv9+jwgL3EIP -R76VRdTcRg5pKggZdznVcbXobQ6jFrTN9mq4NuKs ------END AGE ENCRYPTED FILE----- diff --git a/secrets/ssh/sedo/id-rsa-sedo.age b/secrets/ssh/sedo/id-rsa-sedo.age deleted file mode 100644 index 58f62149..00000000 --- a/secrets/ssh/sedo/id-rsa-sedo.age +++ /dev/null @@ -1,80 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYSUVYWGYrYXJ0aGxQVU4r -L21DYU9odVhuVzBXd3JBcTNKTTdkd0c1S3kwCm9HUFFneHpGMGtaTFlTYWY4SXB3 -djAxaU9udzZpMVd4R2M3bEN6blhyYUEKLT4gWDI1NTE5IHdWUlR3TjloYVNGT1dJ -VEE5SlJFVUNOYis1WVdWbmdJYm8xcWtOb0FnUmMKYmNpOGFadElHS2VaQkVpWmND -bk50YUx4azk5Wll4bWRad2V1czNaTlpRMAotPiBCaW8tZ3JlYXNlIHhXYEBZZgpw -QmRhRjlmeDFrVmwvVUpDNzYzNUFvOVpla0VqZjlZeEVxUCtqWVRsZUZMOG1nMTBm -aW9wWlZLRUdDa052N0hECjNUd0p5N0VYWGcKLS0tIHFJRVozbm1ZamFFSnA0MDFo -SzNkOHVrWjNXNVVabUsrU0VpOFQ3NHNXdWMKDvqP9cp5VcYP4q/s8DW+1IdnMmDW -mfF5TNY/zYnhWm82r/omsBvoq8GiDFW5MZyBeTpBDO4etFzT/uDI6fNY/Vvo3Q1C -doUclKLhAj1OTNpAxLGxRzTip6REJH5gO2awTRgbhFfhFKPI/QenRrVl1+0GpB5V -w6rrYP4RYiOut2XAZRImwO21KIcG72eBsx/i/T898JUd7oTMT4CPxxDb01surBV4 -Qwm2gzNoo4l2YSWhwv/pAp3Mqc3WxQSDI7TCp+HYJPX5lIWargcGIIHsvzucemPy -akZ37labmk2a94EwX1heTPA7b0sZh3NEtlrriSsF/2ItwYnzBuze+UgOr+6OI0yP -daBLe1a1pPUpMazxqw9IOfOQ6cPNGl6JDu9EZ2oIRcoZy0GQumdh/fRgoOcZ/ato -+qL6F/lsVY7T8U9CtvwIjzhwiy6wtK7ell7ZZVrWdD9zTYBzvpy9eIp5pC6g1Lxs -O31j53Io9sM5jaIeWt3NWJkI0pqamwtvnQmIfrT11yuxOL1sn0ebqmPARisAzEOr -32fQzN9cGcmDlAmv2SrLDaoU7q+JsOytDuADWmhVmlLSl46KvOrf2oNCS+5hD3xz -A2K43JKb/IKt5tlkKuYcS7MeszzyrdKQROWFIB4ASP6lVQ8ALwr+KiYH3LJ3EY72 -VZgSfUYnKayC7pKQF/eq1zLsiOgs/i+a+/BQLEbkbSDXljSFTLPjjjsiYRM8AiJi -iQaFW76VOS7x1P2XVNRtpC9LoLMT/9YPO7KFEto2koOCMBofr9n/BCR2zqF0+kvV -GCQMaJJEDiqNIa5s1fdipd4hCf0kVVjw/GXfmebAd7Bh5bwTw8eopnAcqYXmVj4c -mM3r17RObezuN+l54Y6xI3qY9UgVOK4i0GT3KVNf6p70f2HdPBU2sUZDflIN9l5a -hlzlKGx3hjYws9fQ9g7U1tWjzF18pfOmw4YCHNf1kg8iuOsAmNy4Ws+P4RSyhIwi -UQdlCk3tFQPpnB4GCnggnffGW9ky5CM7GkLGmt/oZGcfDP+ON7Eyqaq9x4UY4vNS -L2NUToH+dEeqqPeAbBjqB2FJICDK2DKkwzaBJE1pdonSLoR0oA4+A1DHBf65B+47 -EIR0OGWYDpVdxxWTMT6afNHwi2rtEMHfTnM6pSifyHmrMTU0feJxT+k4YI779SCF -s/h/Y12hhci7/PKsNcc0yNCPGEfoFf0B0apU2Opa2QJdOiuXg1HogH8qJE0k/tWX -OoSFZyOzng8iJKsVYESvSdtRWVI72SMHJFAw7nlmKowZBFMthbMZkWAhOysA+SaA -pWd/ISU10UNTu4AL58LdBLJchvnPFZ7/S5WTKTml0Cz3J+zdjIW+XugR1dx0VfrB -0Yi5JL3lRCnsbR6YmkTGk1bivi82uxkWyrJth0PtS1AiTSbGmf4eNJ5TwXTI8XwH -AhgDX8L84Vv4a4YcySgNAAKmXKKbhNzKhrA68el7xGdXAkAA+SVa9qVli9UAJIQe -ConVW0ucsekcet+CvsKzg+O1GucHdHgwOU4rPMAI6vOgXOEoSpd7YZQPvmQ9eEPK -nz/uTjnDULG8mO6a0z2+zR1RnSzjVuobMW6HPNUv2UGcSWCnH/X8V0F+KMSftQew -8H4s88F9E3A3mfhtfafOVIQCLKqsVFvGIZo/U2GtYxw2ZQIg+QyZaUMRZA1CyJgL -cYKzHiTVdCZq3Meurl0Xjrls33tnYR5PnWTJd7MDES0caLMj2ExJItlxvfZf6IKC -gmwPnFCicv0sYlVaX41HALoHOD4qkFBoUS4Pj8nq2F8718CsiFtnP5OIk9GI8wQS -hgFXeWJwBvULgDUMi5t5+ymvjiR2yjarAcZm+JsbCDtQnrKFa0FCqkc0BGa3tmPW -WW+inb7Pld9O7Zf4RptEJJvuRQgf7+ZmnypZwb6VWE0pqsWIK73bJmHAyn0Fjc6W -zthuhaPmFfwIhh3Dbkaj6V1yNU1oFbQqcL8fFkbeLd1DfVmYnVfjHo6YD0jKsawG -Juox58PZZEAQBlnzitfebn8qT1yL5aHyHo8B5d3v0pCABxHzMdyMUBiV3nbxKSdI -ysN3TzeLQIW3LsCPq6VoydEBqm0d20MmMQo9cms9jk5ItBBZxgD/f1G/WuEniI2d -uwTA4D4bFSW43zUCdWGJyF9TkJZ32Fra815zqYKjo4SGjNHnb4VVjj9ktg0yKHWd -IfLGLYkunrordJJpi0HPrt1nnkcxslvAeyXaa0oT6H3kmLVvGGK7hQhwoQ1uYhil -DElnQbleiO3B1pyGQ+stxhD/V7qCGVlXK/Ho4LQiI/pPn3k2CheXSL3KYtafcGSl -jQhK/KrtSCaRsJsVnkqG9QAfzaK0KMfXrUqdwUajEM06FrK4vZPEnkRw4FlRYjJf -2z0AJO5JW+KXDV94kj1ldU6mVG538NGalJeyARsWreBpvgOSUmMq98iU1s+2llwp -zFhs0g5wAjF+Idf7yTYa4Fc/ywcwJV5EuD74fSWLbM7dk95jdp4ME0JJVx/RZS6z -iT1zlwb9+nwQ1is27rhh3GpQwetIgmvg4raQGlU/r0Ds19S3s02o+HQ44Vt7JpJj -sp5qp2P2uIPvsOmZ0gBu/EVefRme/K+TeMAlxVaIpcI6sRCqpGydwUKNwCKTgPgy -eC0AQdKosyW9ES+kMeacNXfBHctycQYDNRUaG6UBMq9acFf23oEegeBoQS44Yfep -eJNpZ8RHci5/K6hMEQiXaIdo+VjI79qJQ2a6TI0ao5/rwagHyU0HSC66g+ykZR6G -CwhhIyUu/V8advryGUchW8Fkh9IA71GGgyQq5TQCPdo+4qVJ2tzCYAYtruvulz/t -7Fc9W1dLAcQPy0agDkJUGYl27gYgsgih2GavkjqQ1R1kQkZChL2HgxTnqwTbRyNk -QL+PoepT/f21/LyI9Nz0Q3Kyeau5siXZhFhRN543wd/6eKqKZgpNNdiYJ/+Gz0pp -DhZjfkwa7PX2Gy+gvCt96Rnd1VkZFZxT/pFYZmebPlDxxPVmgpZDoDa0UZoVoE5N -APLlxrWOur0pyDgacwInaCIlHbX+6TH3tYUJoOyRktYMaWYEthYsEmavhtfkMTSB -7mq/vpoymS3nkTptBn/9cwW3r3DpZKXgtb6kkbWn6znMN4/8/nWz6UxlSbBYIQa7 -HWsac3D4lc+7ULW1h0g+h5F2VL/MeMxxsw+8PvxfZNvIfIUvsNntOPctAvHjbpj/ -y9PgyrZ6MGqOgarINgj46/OeNIWProTfaMtHwiyfMK8rNOBs4QqYTH0RFGuiC9sF -oBU29Xg44KjBKt7IIYjGVcGz2dx9tlL0FS/VIjJ4+x7ZvT1+bB32zurD7c7+3p35 -Y6T7Fi+0bjFan+z93CYOAF2kLsFqZfs6Ca4IMVfSWPA3WOtCwss+D3T6ubo8IISX -4CgeawVaoTH1V/sDjEfsCGDGdcNtX/1fHO8Py7qQ74HQiQ6nh47XLEtazJk6vV3w -UQJEE0vF+k2ZZNQeMsVTYwjvBzh6manXI4j1HL825NebEwIvjfQJI4Vv+Xcp4/Hw -BpHn0eIJrnKPeLSED0TYyBleoIg+AzyOXEEqqRj6LcTPf3q/N0QT1ISlY/aB0VYU -lSFMTjnNTbnJav3UY0Bmn7jx1wd5N9z5YPINsQfvcPjzF2j+klOIGoJZyaRENTuy -hxyPtRbkZcAIeGqUWT6m4oc0x+VJzYiRMuJOl7H0EUteDeyednnpDGhjNeE9AGdW -jiwW9vC32EyRqn+f8DCiZOpNqe0vHmhDqUiwGC7yvge8juj72aFOLJVZmITOVMrG -UNgN2g1W/1Gnmqr1lvkCw/tqG8VRJJ753xcNEGQ4qdK076VQcZw3VkFGYdiim3BO -GDDBz1dixop9pFSlY1IM3njmTrChBPtTYb1VMNpan8YaiXwH/jKWDmYxZerJGhVW -/7ylykpoBra3ONmn7q5/Mjv8D8FWqwOOnch+B5RsDOkhUL+wiDU2Ql64PiY0slu3 -gMaOgVj3Xt8quFdESIBfdxQ30J6mLZv+6s5H8GLea95100+HzOZKxdgN12wvhRw9 -GI5AWQiZbNWI0uGonqUsM23nHLqtHx8Gpy+1rIqQouKnBR/mCiFQd08UwSMT7+yS -Jafq97gKhsqAtR+07aRxN/pRn5siL1UEQvjRfk5BylkZXWbDzY3ymeyw+jduCNMl -sZ7l+JcJfsj1uaSHIJHGbX8gXJxv0TEIJC0/l2KSftp/duIU/OD0+IXvUtrdQoE7 -fFXWrHHo8wqe52X4764MmdGivIV4NiC+UoR4whNX5BvJyfvlA2/t13mPswdSU6Qt -6JUeX0yOjW4re+oPOGAnDkT6UE7AkEQUvwygC7qoEz5Q59A8eqV6nVcCmHDm8f+y -ktv6ZNOLFk3yJZL+vGbfUDYbK6Qi2ba/Fvwi3SMyjEip7loRI6EBSlnTTQGq4X9U -R27IfL3D3/9zlyQvNiQZh63sF9+anrSYXQ== ------END AGE ENCRYPTED FILE----- diff --git a/secrets/ssh/vcs/config.age b/secrets/ssh/vcs/config.age deleted file mode 100644 index b157e13c..00000000 --- a/secrets/ssh/vcs/config.age +++ /dev/null @@ -1,29 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIaXlhbXV2SmNaOHdhb21v -bUR1aGlQWTBsbmk2eU9DUW1zb09wNkVML0FzCm9GQmhubVFiL0JSU3R5OGh0ejYv -TmwxMENmZkxoVTdzWDllRGxwZjc5c0EKLT4gWDI1NTE5IDVya0pGMnhSQVRnWjBQ -VjE4MVpMZFI3bDFNWHg1VmIvODFtRmFVbSs2MmsKbGFjbEtRbzVDNjlIK0JYaWhv -RU5RMlF6UTkzL2VTWDc4cnpPdDdWZWQ4YwotPiBYMjU1MTkgOGhlaXQ3MmU1RWNi -R2RRZFgvdXI3c3JvVjdhbFFjczg3NmhUOEZJaWUwZwpTM1puM1liNWF0ZFEzMlVt -SXUxalFLSlg5THVnemUvanR6dHV5RFdwRUpBCi0+IFgyNTUxOSBHcHIxcG1iNSt0 -SG9qYm9xSVgzSlIvWnQwaUNUSDRDcnVRV0VVS1gvSFJrCjdKc0w4VThjamlpeTlG -S0Y0YXJuQ0ZPL2dIbld4UjJpYTl4cjRaSUNPdEkKLT4gWDI1NTE5IEMzQkdQamVr -VXFwU2oyYjNmMm92b0o1MFZhMmdZWWdOTDdZdE1sQ3d1Q1EKYzdIM1VVUWd2M3VW -RVlva0xReXB3OElua04wQnNnM04yQW5xSms2emF3YwotPiBYMjU1MTkgLzRlemt0 -ZmRGSmN2Q0RkVy9oUEhuMHQ3bisyOUhRUE80OXZCcW5zK25SdwozVUMwV21BTVh2 -dUVqeUNKMHI1bkgwakJRZUIrMUZ5ZDRRSndWUEJqbFNvCi0+IFgyNTUxOSBFOXcw -dGNZV3U2aDc2ZnUwNkR2alV0YTFvV05EdWhQS2E2K29QT0J1MkhZClNSdE5paE9R -SHQwL0h0NWR6dVRaVy9tWXVyZ09wZlFvNUJDd1ppRzdSWVUKLT4gWDI1NTE5IDBL -c3QvTmdpNVVLbkpHUGZoa3VqRHU2RXZqTjdwZ0FyWSs4S1hacjJEUUkKVEx3MTdt -S1JNSXJSN051Z2FEM1U0ZkJNd0JxSlNwTjlBSWVQcHVEZ2dKawotPiBeTGtdXWo8 -dy1ncmVhc2UgTUtHWnFJXmgKaHQ5RUpkcm42ai90WVBHZ0pxNjRwdWtyK2ZOTjhu -VjRGSWhRR0YzdVR0WGxSZU5qNngxVm15U0dLZwotLS0gWnY0RzJ3ZnBYcVhMVTJ0 -UjlvWkJJaks5dGNnaUxuMVlDYWkrVFJma3NMUQrGULJD7E/UEXdQs7RCtOeJYj2U -dVREFKt7b4P4KPtSAOmQ7zN8nK+UTo20cPgw/vTB+ldtUQXXlB2EWH7Vcm9sulwk -aLi4JcSTcgfs5WjwRAIGOBjELssLignvucO/swBvJDnZG8OOEmx7yGdzGKx2p/P6 -9wZj9SZPqHG9q0VuNJK6laFlMGnYQ6olh8T4YVkqB/08vqtcGEI58SL1iCblmaSw -2xLk9oMJI9iCqc2P2vjBs+5scag44wFL1UPe2VEQVsQZXzwnYUZx6fyqaeB/VZFt -PqsZaLCjFuhOI6tLZ0bHL8bLKuI15xYCZ5aYqI4dN7TMKVzulaaCw1iZJFHMSWDw -5UkJx3F4MMhERAI/TfKJKyQ3B8fajHRE0HF5hjHIJWFqv2k7p9iWFdJcnZNzFsJa -rgKxAjSzPYc5J5V9EXcRdJe7AJ4Rw01LRovXAJ4ewxK+sxS4cmcJNZw= ------END AGE ENCRYPTED FILE----- diff --git a/secrets/ssh/vcs/id-rsa-vcs-pub.age b/secrets/ssh/vcs/id-rsa-vcs-pub.age deleted file mode 100644 index c3d784ae..00000000 --- a/secrets/ssh/vcs/id-rsa-vcs-pub.age +++ /dev/null @@ -1,39 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0L2hzZG1qbXdYVElkY21U -SVVHT2cxZEcrZXp4WWY2djM0ZXNyeXhMcGlVCnpnTFRqWjA0WDh5ckRGREphSWI3 -dXVDQ3YxcnJmdDA1b1JmR0FXcmw5Wm8KLT4gWDI1NTE5IEhUQ2Z6NlVyRWZraXhk -Sy9NdnlEcWNoTlFWZGswSXlTazJEejYxLzFBa1EKMHZqUzZOYXg4TW9STUhocWx5 -UmhZM3pPYTJqS1NKdk9BM2JIbW9Ub24xdwotPiBYMjU1MTkgQXdrZ3dtcEtYbm9m -bUZieGUvSVE4SnpTQ3hZaFFkNmZJZit0WUpVSE9TawpTYjJOSWM4NGpGSWxDZVY2 -UFp5UG5lekQxU21CUUMxdFBWMnUwUml5ajZZCi0+IFgyNTUxOSBiNVMrOXlZd1lV -cEdWSm1tR2tid1l2OHJ4TE5DcjdJM3hLZXlUdHFQTDJnCjl5Wm03cjQwcE9iNmdX -blpjY01mQXdUbUdIbVJGRWhFZzVFTkxLYUNDTFkKLT4gWDI1NTE5IHdXZUlOWHh6 -eEREd2lSWmFyMDZHOFpuaGt3SlBpTG1vbnhHK21UWEdYVlEKUmJPWk83YUlvRmVt -VHFWaDdRY2ZPelA5SmZESzJKZU9keFNFMmZPeDMxQQotPiBYMjU1MTkgK2FCRlFH -VTFQenh3THdlZmNLQmlSeFI4UTRBVWlJVnFVb2ZiTEd0a3EwbwpYdTE0Wk9GcUJO -eTBqSWNJZ0J2OWhhektBYW5SM2t0c0M1U00xME1ZUG44Ci0+IFgyNTUxOSBpZExM -cjJzVFhrdXJqZzRTVDNXMEsySldlVWh2c09kb3N6ekVQQ01rd0JNCktkWVFIUVM4 -WVBpVmZVNWxnaU5MVlZOb2M3L2U0aHAvd2crZ2JtV0hvYzgKLT4gWDI1NTE5IFZl -d0Y3ZUZVYk5xZ0ZqM1ZWMHdVTUsxZUcwTVUwR0o4Sm5NaVpXZ3g2MjAKZFdMcVkx -cE1nZGJtMVBKNmx5SS9kRkhhVFpVV1p1UGtsbnd5QzlQakVyWQotPiA2RXEtZ3Jl -YXNlIDIlTWggfWUsVGwhZTggKXQ8Y3pKICRFRjdGCkVWSjVQRHhhU1RRbHZNdXZi -b0E5THRQSTNrYTB2ZjV0UzNtTHFRMG10VzZuM0FDZ0xoQVZJSldUSncKLS0tIFYx -VWRkbUhRcERoMEVRejAwNzJNb2lSdGMyWE5WN1NWVTFOMzAzNDlVbnMKyGAaHxdl -vRh33IDpNnw1KSazyImMLb7ITXmBZKHWz0SFwIU/HqKVUZNdwt6hduyYQDVtvtXp -ZtGuXc7wnuD3Bgz2oPzHdKa6xDttCHnyCp7l8oZxcuczfmXvi52yGDSI+k6QKhD0 -UJu7p+TpVJw7uiQaAVVDZgtGObthBeYxOXf4ZA9unI1BoVpkUeQNf/tZZxGQSSLt -jmYLNoJONOGEwoLklLl5ZFuAt199JwLnd4vRqPc1LPIwLnz/C2zF+DGVGnmGf6BN -Sg/QiVKyjfIn3amWzTauQXU2LfC5GrRL1wUeIv8p+fnJqlxsE76toUZB3rI/NHB6 -UwVI5iHho+P1s+qJBLFzYw7IAkA3at5BOybazCZldUXOml4ca+smbKN7Kr8uZj2Y -jeEo38d5HgvNFvg1y/64X2L2vNoaEaaCA+eis874SzyXpFXrg0PvbB3jf4aaNSjZ -dzNdPc2/h1+V32/jAUaXIooTh32SS1Jpv5cl1DPBii55DhIZ0bdpErBFDMDkBMjN -wufqYlz4a/Qi8VHEAUNiG9WG/PhIat+iwYxtPs6pt/VIvgdSPVT96Dsi1soC+rfl -ZTVarmmBIYIGXy0NJOFJVluPKdOfZvwjtGhh5ksrmbBBT0T/QwDGIshyaVyhIJbs -sc5+MsIyjadwYmhWnXNehZin1svjpcypklpLCih9wa+px9ALUkARlg1jWbmOEVs2 -QGpEfyVJwGV9ZDpkZuTUri2d4z5GimGLiG988b6FpwhqzAif8aXtXm8OnQyIRGqi -YRT06Vt2WgSWxs5RelqkSRCUgb4i28wqd7x2MZKAjeLKusVeenPe7HopSPWPeWQo -LhKfi0+EplKrr3j1oJ7i6WSEryea1IoUXeVqGpXaW7ghmKdnNrc0Y5NED4uqdev+ -Miy0fUP81VnqG/QEHSW6MckAYil9bzQup9bztsPvhqWgV5H2K3U3VKLS76MHq1Sm -GA22NWDMZ4pCw+TS/KHZ3GAl/PkJj3gOZZA326imXE8s2enB6e4PsPSKpSaa1iEP -fKWz1w== ------END AGE ENCRYPTED FILE----- diff --git a/secrets/ssh/vcs/id-rsa-vcs.age b/secrets/ssh/vcs/id-rsa-vcs.age deleted file mode 100644 index a735b003..00000000 --- a/secrets/ssh/vcs/id-rsa-vcs.age +++ /dev/null @@ -1,92 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1YUR2TUZTVzJ6aThLRnZW -b1pwZDROMFN4YkE4ZS9aaG4xeTNQdFovazBFCmhCSTJ3WWM3NUVvZGZJMXlqdWxu -TGpmaGVmc0hCMmpBMElXRDdVcW5icGcKLT4gWDI1NTE5IEx0MDJSeVlrMFhUWVd6 -N1ZtOExMaGUrTUhEdkNkQ0JUdThPTlZyemx3blEKSjRhcUdkVDdxeExjYjhJSEt6 -bzdmODk0M1RTODhveXBBa2RwY0RNQ3FxbwotPiBYMjU1MTkgeVBKaFRIOVQyWUts -Wmt5THBTWUZtWDE0S25vYVkyOWtwSDZibVVISDlGSQpWWVM0SjE5Q1dkckhlbFlY -ZzFjNGNXRlRnQjJLTVlZeXF3WHFUT0lRWFFRCi0+IFgyNTUxOSBCelVHaldJMFp2 -bEhnZE5zOU1RNzRvZktUM3VQTFI2c2c3L3dnRDErM2pBCkFUa2xWSUs0TENWdFpK -V3UycE52Nnpwd0RBc0w0Mnp2MzRjVDB5b3JqTFEKLT4gWDI1NTE5IDVrSXkwamhz -cHFkSjZMYlB4QTRJemRmTS9vSGpRbEJLRm16czJCdUxDaGMKcGE0eGtFVG9LSUpB -OXJQOHIrU2tHekg5cWNrWVIrK3dLMXRvTEIzeFVIUQotPiBYMjU1MTkgeWdUVGhh -amNCNGhLL3kra25PNW9VdjRVem5ISndEZFZvMFJiLytVNXhrRQpBcUVvNDgvSVZ1 -b3g1T2FwNVMxRk9UTUNlUFY3ZmpVa3ZPNFBrbUdodFZVCi0+IFgyNTUxOSBhVUtS -Mlp5UGJIWnlTK1FtVUVsTGwvdHlxZ2o5U3lWM2RJZE1mQUVMR1g4Ck02ZWNtTXlM -dmVMd2E2YjdOR0NtdEw1YmlOd3hsOXR6dFQ1T0hEalhGU2MKLT4gWDI1NTE5IEl3 -dnpVZ2c2OVoxbUFqVERFQ2VxTS91Q3AyejlJRHI1aHYzQWtaQkR0UzAKRU4rK2NK -UWVmcGh6c3V0SENDbG1KL3l1T3N1S0J6QmhZSWxWL0JXcTcyawotPiByWW53LWdy -ZWFzZQpWeVFWM3JZbVMyVDROWDVneFFkUWZFRkk1dmZTcUtRVmlaS0JkUVFNVFZW -NERiZUlKVitteUJwenRPdUVDdHJMCnF0RlNoR1dpaXBHUjBMMjkrQQotLS0gdXdZ -bzhVeWtqOUpJZjFNSXJuUXZ2ZFZPU3B1bUMyZWNGNVBqcFQ0OVkvYwrZrAWnUCau -5lppkY0XAQIsSoEr2BQb9zONDgajeYcrx+CQ3b1vtvqEOSFoChyx0ICLGe0jBS1Y -cy7zFVPxv9mcIQ6vAI4MTZ0ysXDZwi6YVDFzI/9b3sOgTb+bEmCEx6/KmObJHn7E -7dGJvIqrzVWUghxc26lyCpYsrBVfvm95Tz0ndyEgUq5XWYQ4OD5BwUjKCfsuZlrX -WvDOikhu90/7UO5k/6RQJJ6a9xSuERET6PQMjox+YcrvHC5UfkwqdhgWPqNkReE8 -capMkdpOa4NstBtqRZMd8ivgBUn9XleUS3l0WRkDZEnKsaOp8AoAI9cbbUC1lhSh -guIMPitpIp3dlB+IS1SCMB+rALBPch/AtRFusB+v3ecrryXB1+yv700ATfnPh69l -u8SvBsFWFOW56sA5fU63bu0vNOTkz5yxrJe91MTg+p7n/LjmnYgn+y2wAT1kzMtl -FQNFrX2JCSzRG5HGVtJJ557jSh/d2Jl7CMxsUVbFeHZMJIBYkv9QehLArmnBOffk -paccRHOTj7F9iVsiN/grweKAz61m7SB9EleBSy51HBODO9PmeAmC5ETAyWXKSO5i -bsXE3TjI1jyQbEov4W39Q6mrcZ9+jl0iFZqYRQc6pAnmq+O9U94gaXnpurtbJFdn -d98NfjK/YFPT/Uo1P6t3UNj+7d10zCnNvWGSR/vxp9CUZFSci6yelqdvvlkOKAeL -pB+VORZtCQetHJ/vhrMlQo38pRi0xD+nqCh4oaNN+mzwvQRXoWo6LDhoKlmsCLub -zc3Z6bSiiGDSs3iuUdAIsPBXLHZFro9XL6tng9CUWH/EqXLQIlTJeCpo0sGy52E/ -xum1q4aj1lbFjc1n7yfJVUKIpcK7U31Doe+mfYXRv6NEQDGrhZjSvGtQGDsFZCSo -qsjHVPxfVo5WBv49E7W87LJwnlnxjqeQrhEeW+cRGxYi/8maIzYJs0RbaDjbvqyi -NKQNpCGTJqeXEuxHwMnoqKJ0CRhsYHZE9d/bl2dEeGxsmgzloKZrV7T0Jm5+18XD -7ht6e3/PXa8qcGup5RbECq75iWrySldgbdLy9YkvQp2o9rLLDz79t3M1cEvKJNV+ -u8ciDvLtIjQPDky4YwGPSJKM8jxHR/PTMD5OsrpIPb6hSK8vUDOwuh5ezCc0sRm3 -d3NJ7Hp4GbldY+KqDrCvSzUbv+WdobfAlTgA0T2KBq6CR5ahugQsNpNSpT2cNcdr -fIcN7lMNLHLn2f4xbcPQckGytFjijw8m4/KJoOqaR2i/iG+jnxP/OffESzZVMd+5 -7g5Kfxy5lVUT34kXnvTE6RSMUyxd6bKU43UYOBh2DI+yTPG8J+cNsuAPA3xn3BLw -bKDs29kvjZohC6YWGQkT6f2KEgXbwlpQ1PHT58dJdMFYDdKRHC4JefYjUKYOzMIZ -5wZ29+Wc50v17RvIz2lr9qlK6PkQ9gYWfu1f7M95ip42fAQTmIqrKcXUvCzw9cuu -Z1iz8iP1+Oxlk5jIoLLM8jaB2WYHeiON3yjFA19ycGz+D9JMI+O7qi+0uXFFUpUy -J4lwI/oCrr9B01EnzgWlUULu718KuQYs1vK3GqGRsbeFme+er68r/4v/6mabgs/t -+OZIRoB8l07NOzBr8vy0WJw1pTVf8lP7ugfXb0gRgTC1fuvcUDz8RKtrpK/KPTRM -HSiM1v9qOW1WRB2gCGO0MDYO0S+ZU/i1qEql4C/0u9pRi3TP2bnjzK/HJ48CDdd6 -9tfU1SmqjQCr4eyy0UGPnSCTqBBW6fYktAzr7jDsMqdtoBqQnC2gO1yFJhqpCFxm -m32w4POdMsZBDRxeFWzrhnr4gYZjmSqE2m7kWPKuVfKl3ZxmXpW0dK9eID3TP0oP -FaXgnU72LJZCXNqm2ZK/6PjLDW/Fr3m+akoUAgoI4KfytWaNHK7Q7Exc12pBTnqK -WdHMZ2AxIidtZSEQ3EsuhjZYHAJ/KezsiuxDeCV6dFPSjSTDk2hKfydQ4q9oJIXy -oxatX+LoNcH8f5lqV5vy7Ea1g/ww7P8VEhH2QSJDSOb7YkOEV+yEMedGFEWz6X6y -xopVYwPthzQVBCKTlslKDCosHUmt8OELCnVQuuwEBgqeMYcx5cPm5oNOkpTiqm/t -c4Yj6GtQqjp5LX2yUV5DOl9i/C4paaI+6RdOALtUyibLGigeBd/Z6BRP2z9msPc9 -2CoaKccaVkm1z/abiMf8iGKc6De/r8XSf1MKCyumGMtXjqDJJaexfoh2MY/Xj/ck -VCZQutGzO0MK7mTgJHqWR+NvyWrO84hwAe1EyTKx8342tgrFjXdiqy2DMIZlJL5/ -sr0rSlSKm/jushE0TdhPiZnG1zx/SqQJ3UQdwNnHW+F3nxcUu6cZdg2H54h+yiEY -eLZRZg+FWs+aK0UDqxloi0cyjW/cNf/x8sngxJSLj8R376lOBvY4pD9hiuTSh7qm -/jMwfIyWAz+z5MewoRqELMgZYnnwH7HfRawaxdpjFKauB15clgfYDv1QxnrYUOoo -Inm/ifXPHxwOed9SQIQ7f8cs+nPU48v7c4wNcuW9632H9SDdU7KH10W2HCw7IgCv -Cr3UW1MubJUJlIPR8dSTWF6SNjGdsIr2FdB0mUCzr2otyJg8ykWKEEshC+6uSSEu -yToZXnSeOe3sPZ86pqaTub65tNhX4UgLsf47v8NC4Sx36eD1/XleSPjp4kExLyEf -9m8T/Vs7RlViwX5WNmCFIEFFM2ehmk/5Si4cvBjuEiX0UHsYVF/E6vrLnQO6H6dC -3I9sC7Gkr5z5SbxKNOSmalmD2mkdN0rLaFDD6bp+nF6/ADUc0ibYZxqWunvO+UQ4 -7O+9xFbzqG9vFYB73pE8Lc0k53hZbvBwqjbqGdgR4KIXH/4hgHlbAUabQ7SXGICy -TQXYBS9dtJnGMWzp85UajSyZIfPtiNGfCWDJ/6JJYGKwjoj02EO/CKpV13gtfFUp -N5vGg+VcyIf5hnb3yKod46F1cvGme+4G+RrXDx6RlLcpxmuX2evKTaVuFavyUnSv -2B3Xav0FXuF4jC7UF3AJG3fdxdJkoiUl78UjpU/8hGBVf7STpbdmdDMpVKM6oZr7 -ZCCOE5Q8XDH2yVe31g/EtxUTXtzIhN7VAe7qDOsTxgh3fLJHJm0FD9WHEYlaznnY -oAR6BYiM5+1M6e7LPRE+rMIuH/aLlWSBheDEWGuaqkphFiDM/aJVBIXTs7a6aGSR -Yb18kdJS907A0D6TK/OIrEmFvC51jsX1qwSLzytvtcBkGU/dSKRy1AS3q4aAkcAM -xehzPDcANKmG97BeQoEmKGGM5lKJ3rYsTTAJSxs8v6oj6kvLOxBXsO34nIWDcQd0 -Z2s5H/oiIv1hjJUFABEmpOlCSPDvvvxRHsKm1IOA6vw7+lRdCjpI1EhDDGqzuzwT -AC/cnqbUukkvsIgKczPAX2cKfWzEIJBoIMOkp2BFXDOEkCMhgsB5WfO3yQPY4Lc0 -DcJvik2Y6mk2BrRA5mUZYyiJbzkXy9HY8dDdtLM469gdyEvjD6ZQcJSq3GKeTJUa -HwMeiGUoYz718IrBpHb/gGFn6qTdBGO9wqpC7NBjKKWKkJYDv9YG+UiGQgUwPHO0 -oD3/EnOpaZEU/hzLuaSNEk1BDPjoDUIwzJ/ZAJZLfV2TS0vkxy4IxIKDajYjPnHt -/y3cqop4U9mRSb6IBVJGcoKigZV2BYlQMMEfvZJMl3uCsb3RSco428PQkgUdh+mH -w3AjM1jJ0K2dcGlDRY2TNEJxEASnsj1rTMGPmPVFjoF65E5Vzz7mXyCIFMHyeH40 -qXhJ00A1u0ShiMnVWtmtvmUhMi2FMSJADeq6V9rq7x79WV5V8Zydq3laPkJmAyxQ -Qk0w9BVQ3sRnmvB2ySAVZm/TDB0AfFT8qEt69Kt/Mcx/ZyKwPbWNoFl5gzsErI8S -MnDk+87t9YGtHDbK6QkwbnC+7AChzRCdVssDXvClpA3mBkr5GoFBZMHGNLcmVnRh -UcUe6+lF2vQsKH62Qde6FsgW1uv8NVK+RTH+9x/QWBSQumtu9aveJfrwFSsawzOa -5Vi1SahMlcKgzczuDwvJuSDrOTmxlTV7UWmiOpfYOYGgoJD0OrmlEgJJ+/pdlSZ0 -YiAHWAxRfm2FWC7sSQCX49HL0jY77CNwk/qSww684p9wCPcftyBBntDVo3pIWnLM -4jHNFvyHM6wbwM9VMnqn4cQtQWQZcB3wVX3PzEzA0EQK9rtlxXdHo/i/WEQVUbXR -YJ8vrm1+FodnTmTYpyXUYfXWQDa6gyN73tUBSqepEpOt3aFZ42flhqkUtnKQccdo -8TiX36ifNJpxGuS87tzHzatM9Zd81nu+A5/tnsgqnl58wKBvnmrX2+XrlVcN9tBy -RH0GE/epQNe+X++xeeNzuPmAXacZEZqzRmYpGAHojWIOEdPh7bQ1DKhj0VZTKr1Y -kjJnR5fnfCE805iXMDVIY2pIOQYVZBIgkzBkJTVH8e12qusXcS4x ------END AGE ENCRYPTED FILE----- diff --git a/secrets/xenon/cachix-agent-token.age b/secrets/xenon/cachix-agent-token.age deleted file mode 100644 index 97e49e3e..00000000 --- a/secrets/xenon/cachix-agent-token.age +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvekdSdG5QWXVhQW9ZMWwy -MWJ6SkRtckZsOWlEWVNIVDZ6RExoZnYvTVEwCnE3ZFJ0WnMvbHplQWt5UzdJRGN0 -NUNiMTRnYldKUXV0YmxkbzBvVm8xSmsKLT4gWDI1NTE5IEh3LzkxaVVCV3puMVls -S1VWMnc1bFJFaG0zNDBvNDZxNEVmSWdHelJoQkEKVThLQllwcm8wc0hER3E5aFJp -M3ZmVnBrUnVJdWp2OHpqa3hQRHhBQzFLMAotPiBecHZfaS1ncmVhc2UgWyB5fitU -aCFnIE18OlVhIDAKL0E4dDk0OHBQNVdZS3UwVzV6UVEzRTY1NEdBVTY3YlFLVTMw -SWJhTDh1anhyVEZDeUlWbVdISzRXOXVaMWFtSwpRd3dWMEk5cjRFRmw2UkdFNzFT -SXo1cGJxSkN3anBDMjJWN1dCQk9rVkUwcEhpQUNkKytlCi0tLSA3QStKOXRqSkVS -SWFzbTFMdHU4L0VWZkI3UjJaa0ZBeFpQZFdTa1VnZGFNCgAH6T3/XiDFA8wTopOw -29D66DiAZf1f5q99Ge56+vjotIH3Bk5EaP11WNXBsMbRkMBDVi9szl+jMS9M3OsP -OWFJQE3Z9NNW81ahhaw+Y9APeKH4hcHQVV8Cs5OGiZ0GbLM9pmVvbjJFE8ELjBkC -IzC+u4GenpCQICJQts3kPqKWQ0JApsLiKBJjfzJqgvLrGg3GAp/NzM5wES8TPhZY -1SMvGRKxO+VZfK5PAyiNA/VISdlao+HJ2T9F+Cd5g/CLdNu3JVbYWZoyfw== ------END AGE ENCRYPTED FILE----- diff --git a/secrets/xenon/id-rsa-backup.age b/secrets/xenon/id-rsa-backup.age deleted file mode 100644 index 231637fa..00000000 --- a/secrets/xenon/id-rsa-backup.age +++ /dev/null @@ -1,82 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqWW5ONXUya3owaGRsR1l3 -NmVib0NBZTg4bm9DcVRnbEU0L2VaZkVtL0dvCjhhUVJiT1Rid20vOU91SHoxV2U2 -bk1CZUlZNVFjYVhIbDgrN2VFZmt4aHcKLT4gWDI1NTE5IGpodEd0bHBTYXpESGVD -aVZlMjFVeW1HQmlhZ3l2bUpNemtDaXM5MGtYVjgKUHptT05uS0NTZzNicXhRb2x5 -SG52S2FyZ25uTS9Wd28yLzRGamMxcU9GcwotPiBtNi1ncmVhc2UKdzZhek1ERTNs -dWpiemZxMCtGNy9vNW5nZWcwbDRoUTQwa1F0MnpBeTc3TmwxSFRmdTNnNlVoOUJ3 -SnZmUlg2NApWaTkzWjVobDAxS1N3N01uUVIxeVAydVY1VnZRQWhVdWVTNEh0d0dQ -VEd0Z1FhRnZCaUdyVnNiU2w4cHlJTmMKLS0tIFNQT2JRUFRONWV1VWsrVUYyMVcr -YUJjN05lZE1QZzVHK0lCWkx2dkVyTjAKXjGf4a94YYF37CY8O4GRdT1Ce5pibFNs -qRGndSKhkOF/bsTgcS9UaKeAu2fcDWAajezqkm4FF9OSt4BBgGxtEjwNO1mqhsOr -xSg4XDELx7Lqi5fD2ZduYV3Pyn+Mme3zIUieCgIurEJjk+EncBXn0YMFgarzFBgx -PJcGUCkHfiHaV0yQVJGV7DTYeW4QidrKOGZjLPZHg69GHpOG7N8FEvdlsiimMEeK -ug4lDFycWU8yJq7yW9zKEoNGITDhbVQx/6XFpZKZZxBTksC+PLreEfpollqqfcP0 -JyVcXD90WUAo6J0d36ZmpK0gfEthGvGLf/VPkKu+sQqAzSNmgcQQM0sHfpz/mkPa -xe6qc4r3cWY3G1XfiHTwo+kEcdT4U/KgIznGO7+o5eigwL9lyMaCEmUtZvfpDEH2 -UzFDoBbfy2QO9flxRBIBnHmmD+OLUF2NWCIdfrRGCKaG+CdWM9/q3fK4di5yyxuk -xhlDZHmcm7V05zZzJG1aoyhVnzO958vHGhymsS43+MH29pt/Bbd7rrVY+5kUr8sI -myQbdMLvKddEC8k34k88Y0UBj4eOKrjFTefuFKdEvxxIA2UnW3PvaZbkkG2EXHP/ -8ufnCA/ss++0U4vLavEDvIMw38usSdqyAf9DJmi5r0TyAcEmW8qGF6U6byRzHyo6 -ubSR6QAldThRITPc/+m3ucMtsw5SU/ilAReKzBuKvg0Smp/dWyHlNDGtaKsTfWlP -mjSvrlMSKC4tgcDPZIVWz/XPOw0UkW4pW14nwksHyiBWx/hb32qWPHOWHoY7D1T1 -FJZaAWgQp5GYhg5vT5KCcCimAFKr/MoMC6mn79DmAKHjISPwisWd9BDColnHeVvK -d82YTVIQ9ZvK2ZA1H9FhFyBX7snjua38SIAsXQirtW9FsmUHNRovVX6zHlUOhIru -5PRcR3i7oSFG1JKXS3tIqXmD7DVvHCZQi3KlYTDx3LfU4U01911xjxVNvKOfVJe7 -IDRpD69zFNWpFFPbAFH53F+7facdF1Xe0z9qi01cKhrDJ2+EMJqaFb91WhVwg0h2 -HXLIjaqtF/rb0ATBeOrv52vNbn7X3cXIEaELbh6alQvKWnRUY+EQw6ErWRxvbWex -Tli5Uxi3kuQMMSKEEC9ZynQk9vyH9ZLB05Eow0lz5zRz3nmcC8fS2Rlj5nO1HVQS -gJaP5VzIkB+Sfqw487fvn/zLTphPmvH1YkGMnDNgiZI2eCK/FtQ/cE2pqLLWnU1N -ia/GvwfCpjUotU6TgWyd09t/5joLVEOWpwdCuaIyAwTVEDn7Esp4Tws9Q3Xsu2gm -AL+Vznf1A+d5n6+vydI1ncoG34IWiLv8yAGvxcHyY9fZjVr5McYWqkNvLZzpolB2 -/81lDlNCbln0F+6Qr1tSGEmr3vrj5ZNr/LGbrezb8T5IBgkWls/CxgPES9GonChR -5u9criiZpbEnv7eZXf0t29tJouTdMJAX43tv8KiOPAmleLyAphZIhvmsXxUv5ShX -C5Cq88MAIYwlk0sur26VhXzxDeomP1Q3TCIwJHAz3pgW+zhrHn1eVQvLMUzhdXCe -HwbUNajYo4S/tAypoIChwFNF75B/o7XC+BKO0RJ4h+nCdt8uei9pZTpXgFzH0X6y -YW3F7k917hMKv1X6xnxKyYH4pvdVdL74QJx0FgHbgGJloCPHCISjThaDamso1PlT -LwYAsq8k0+Jil0aT+3AjYLj3oeU2jyDNUjxZ3PlmDwqtulF65/offi5kSDKGpm5O -BODmHNqmlHt3rgScMXxzup7RXm7AZlgpAUXBLa67Z3MAwaUuCXAMm/IVzkhSfSPW -WQ5BtEwKctWW6Glqq6jiY/ypNbC1U2C6zu9eUuDdlI0JYnT3AHnAtMrO2uPAgu3D -vJoMaTC08nAc7EUyKlTU0zSseZNdf0B9yekXud9sGabhHn23ZVZ5orGYMG6mju33 -86YbRoRZ4e8btJKOCZW2rmzTks7ppmcTTEwxlQVD1qfoXPrEeIGBn/PbAZQn4N3c -w0x/w7EVdlbwKT3PLEbebchmuNDu2doM4+iTspogVkLuDVHil7RPAeavNNCXIHqt -amOZYB4LuHHeCpiqk79CvSgzXa+Cjd4pzOobu1kfpBtTaZEGFfYWKq8bY17aiM6S -3JGluirO61LFJ4/2SwoO+wwk1HIO2tb1pXbJoHe+2eMIyJ3Bsi8MY6Bjaucspmka -NwpRp6y7EaGqhygh5E4OoEnx8KYrxWQHoiFw6joWZxS3ybB4dACYGl4o5GfFpLaz -nY16rxujn7dXeMCVvafCLAEEfA1HrB5lzLfTXP+OIcyessQlvlZaS3GJtGCZ18nW -rwVppXr5q3bJJCBFzPN+w/tE3OsRVA5rsgj9nlSeOn6DV/R+lxwv38KF7j9MSau8 -vs3tBg3LsEKQaApJoXHZsVvpRYJAX8HQDNbpTExlICUNyhbMQ3RmDwimWGYMTOQq -Imlq4gUazlCJ3Qsi9iM0gpa9C5mX0x1Fotxjuxtl4lfOkvt4rbPLooYygDbN2H6S -xnvrd3cqtElO8R9Y8iRw1uWrrcEIMFrctrKFvODCqmeHlCBdfgzAMzTXxeWUzanU -zwVCGFeXVeMwWuA6LQSoLjA9LKIFNqnuEwzrJ5iJgE9Y3pMPweyZyZtaG3g4xlwi -IaBPE0AjctXtfnSVVxCP5i068CZxUQyj31DZsoHhxFpTJLoYKTQAU6R8ld/PBN53 -Ryst+d/ZMOk3xcSjL/vHv4FTxX9GGtt9gx1vrq9+KTaWL/ciiM+5kr9m+Q9uSOP3 -3bYNVmjvxW6LO4Q/OtRgpy68cvRaenDgecXtDXv39Ha8pW1ibwTAmcaFmROUF0yr -qWZjUUd0BkkQtSIQ1hk0uaE4wc7UyuGvsG39UuVDSdFtcPOMulM16LfKn/JdL1GU -kko/XQRGxoFvpSAtlFZihAeiNvMfLEK5BnRGScB2sZiMxvGyT5LR0Z//ijJ+Wl37 -b86ERdeRAkX1bJmToz1YyudU5/d56Qvn7uu24aYcHaaXaP5c8uF28BbV16D4JNUE -CVk78/78ezfky4Yp09h8MKrAV4Rca52UJC4dQajEFfyLvBDwcZKPS9C9E1qxNSQd -0Rl+VdE/wswEcE9mFe+adwVFynebdW+uifqJD4a0qqjnMm7W94iDWRdPp0VgWDs8 -NRA2zW24N7TGoDylqnCMaUa9Y8HimFehAjR3rBA6mObOyazgSXYpT3mwLTFfmOl2 -ZvAdaznUA+PZTrq1xWCZzfHe8GkPHryh8HDyyWE5qW/oe3R9B2mkXvT/ZvbslYqn -+RUmhheJHySgKziapG58zZ4f7cdpcaU3xQ9DgtDaIkerPspKEkVBjVwiiwb5Bnmn -2eLRMSpBVw4wbD63AFez1u/2kbvX/gOzd7zKu0dry9RzSwn3h5IqEJt/dLVcEXZ6 -hWJCzVyiyqPLqVuUy+nJJXo8oHyf15BNp+Ws9ZQQUXgGvOlxsmVEwGv+WKcNCQPH -9LpWSQ+t+BBKOpt+Pv6DRH+uVCLrQb7pQZGBCRUcE4P2b6NFzZLzUtYwtDdT4lhD -H4XhAjG+2Qp5tpQizhZBGo1AamMAgWrad7OcOgRHfCsU0Cwf94w8wWxYfVei7oso -xuKqxtsNwoQ6YHh4meAUG3wOJKMXvJ3Xi+dqdbZcnHutY8wvuntIvklHy0Hh/V24 -owg6Y+Soe+gC2UjZYO4UDj5VwxLtB3fk0zo9a7mGcRmvDzaVdLBRL5zcn3dUlks0 -bQru4rK59rUvltotweIra1kLqGOLrndC6rlowOGQWoVzsbIPIRxDBFz1mperxJmn -KR7RvDQqqIfDSiOlJ72p5Pfi16BouCY9V6J/IghbWTyc2dWGeRH9/OBUpFq0O4Yw -QWoLFjykDNBj4301cbjYdgP6U8FbvwbJY8YP1nta+BlEcdqI0XQiT8vxWE1ATDp2 -LseRUsMOTvk2CH4jpkDYhz+g8zpLZanesofW3kKZKOLQjeCz+X+mfHusMU9XtXc7 -mB8w/RVIj5gpyeO0BN5Qz+bw1mn1GRuKxsiFFglzQ6+7N/eJLC8pXaLJR9rtt508 -qvmmin1uLI+UfP7X+0uXT9Z/apxy7JGfgoRE90ETYnd06OL2tRRESaO6nbFxrULz -E2eHeC6LAz017Nhl6vxbZiSQ15Rw/aqyZqpNtxBQgWuXC6Yr2esmXYdhQqdY6zGF -BgInFg/SQoN3jiww6qkUaWiAICxQ5inF2kjPb1i7Q3GHHnPICdCRWgCk/dqoLE8B -6aZ3mpcrCp2662Nw/VpLDCJjMpjKPRn7RZsNFRewmnp2NZHVWOQ9EzT0JtH9Lcnv -UWGTUoTJZRqm2mPHCBAilhv/+pGt0nbpTknnNtC9iK84qECm0nH3q87xFYhkbgbZ -m0l0xkv9Q0SMBBAElUvpaD8adxLxPDBo1OQv/VNtdyvqCc+JgBF7qEEr6akWmUQW -s3pv+BEn2tboHNAXRXzR77TScKZPfQTg+MyaynNiRG7Zvb+SmDkKsZW2W1u5RqQP -/W2KxfPdUNIBq/vWsRSUaOVxz65oAyX7DOXC0hQ= ------END AGE ENCRYPTED FILE----- diff --git a/secrets/xenon/wireless-config.age b/secrets/xenon/wireless-config.age deleted file mode 100644 index 57d293b5..00000000 --- a/secrets/xenon/wireless-config.age +++ /dev/null @@ -1,12 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzaDFMZFlaZjFhZi9Dd2Rr -K1BpbTA1SE1vMGRLY0FpQTRuV3l5Rkd6YWwwCkFITlYzdkI4WS9PUmw3WktWbWt0 -Rk1INlZtUlhvcE1FM2Q0RGk1TmxyRnMKLT4gWDI1NTE5IFJlSlNLdnIrK3cyUitT -NGlwV3VqeFMrbXBoRDRIMzc5M1pSdDAxQSt2d28KZnRXa0UraEV5dURrUlJPaWVB -OTFYR2F0ZExjTlJlb2tmNmEyMDlmYStsZwotPiA3LWdyZWFzZSBZLT1EWyYgcixg -KwpybkR5U3BsOGpaWGxwTXlHMitVVWJFdmpJaGdubFlLVVhzRWcvdEhPVTI1NU94 -TlpZeXRDYkRmSGpFWWtFdzJGCjV2ay9iOFhTK1BqNmRlZDQyVytsb052RmR6Z3BV -M1JWOG5PczNzYwotLS0gRU9rMG8zRzkrZU1FWlpHd1J2WlJDOE83WlFZQXBna2lY -aEFPZndjQlhrMArhIOIxtk7nbZcRVmFYxbA+aU1pTr0Ud56aeDMqNp8d15t47Ctt -ViR6PHVKLkOaxtq/6oIFX+Q5I108rQ== ------END AGE ENCRYPTED FILE----- diff --git a/stable-diff.ipynb b/stable-diff.ipynb new file mode 100644 index 00000000..7bce81cc --- /dev/null +++ b/stable-diff.ipynb @@ -0,0 +1,368 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "d844e631-b8e1-46ee-a533-990234742511", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "env: HF_TOKEN=YOUR_TOKEN_HERE\n" + ] + } + ], + "source": [ + "%env HF_TOKEN=YOUR_TOKEN_HERE" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "90bc2d94-55e3-4317-8b4b-f48f01a1655b", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/nix/store/02qjyfy0qymbf2239ik6m0l0vvpvavvk-python3-3.10.11-env/lib/python3.10/site-packages/tqdm/auto.py:22: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n", + "Downloading (…)p16/model_index.json: 100%|█████████████████████████████████████████████| 543/543 [00:00<00:00, 2.02MB/s]\n", + "Fetching 16 files: 0%| | 0/16 [00:00 + { + config = + { + allowUnfree = true; + cudaSupport = true; + }; + } +}: + +pkgs.mkShell { + buildInputs = + [ + pkgs.python310 + #pkgs.python38Packages.pytorch + pkgs.python310Packages.pytorch-bin + ]; + + shellHook = '' + export LD_LIBRARY_PATH=/usr/lib/wsl/lib + ''; +}