From 5f92ea3cfcf06dc30c5a7260622a5b0687beb5b6 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 | 113 +- .github/workflows/update.yml | 108 +- .gitignore | 1 + README.md | 168 +- drvs/desed/Cargo.lock | 482 +++ drvs/desed/default.nix | 27 + files/apps/nixos-shell-vm.nix | 26 + files/apps/setup.sh | 103 +- 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/scripts/cp-persist.sh | 17 - files/scripts/fs-diff.sh | 30 - files/tmux/profiles/crossfitamgruen.sh | 6 - files/tmux/profiles/nix-config.sh | 3 - files/tmux/profiles/util/helpers.sh | 4 - flake.lock | 2846 ++++++++++++++--- flake.nix | 455 ++- flake/builders/mkDevShellJdk.nix | 12 - flake/builders/mkDevShellPhp.nix | 28 - flake/builders/mkDevenvDeno.nix | 14 + flake/builders/mkDevenvFlutter.nix | 16 + flake/builders/mkDevenvHaskell.nix | 20 + flake/builders/mkDevenvJulia.nix | 14 + flake/builders/mkDevenvJupyenv.nix | 76 + flake/builders/mkDevenvJvmLang.nix | 28 + flake/builders/mkDevenvMachnix.nix | 38 + flake/builders/mkDevenvOcaml.nix | 34 + flake/builders/mkDevenvRuby.nix | 15 + flake/builders/mkDevenvRust.nix | 29 + flake/builders/util/phpIni.nix | 34 - flake/default.nix | 17 +- flake/nixpkgs.nix | 611 +++- home/README.md | 4 + home/base/desktop.nix | 19 +- home/base/general.nix | 62 +- home/base/non-nixos.nix | 1 - home/development/direnv/default.nix | 19 - home/development/helm/default.nix | 50 - .../helm/helm-upgrade-completion.zsh | 4 - home/development/helm/helm-upgrade.sh | 60 - home/development/nix/default.nix | 14 +- home/development/nodejs.nix | 50 - home/misc/backup/default.nix | 80 - home/misc/backup/local-backup.sh | 42 - home/misc/cachix-agent.nix | 48 - home/misc/comment-nvim.lua | 1 + home/misc/duck-nvim.lua | 3 + home/misc/emacs.el | 165 + home/misc/emacs.elc | Bin 0 -> 8391 bytes 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/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 | 50 - home/misc/statusline-action-hints.lua | 5 + home/misc/telescope-nvim.lua | 5 + home/misc/trouble-nvim.lua | 17 + home/misc/util-bins/system-update.sh | 6 +- home/misc/work.nix | 58 - home/programs/alacritty.nix | 74 - home/programs/atom.nix | 52 - home/programs/git/age-textconv.sh | 3 - home/programs/git/default.nix | 392 --- home/programs/git/git-alias-bcf.sh | 8 - home/programs/git/git-initial-commit.sh | 4 - .../git/gitignores/intellij.gitignore | 93 - home/programs/git/gitignores/linux.gitignore | 19 - home/programs/git/includes/file.sh | 18 - home/programs/git/lib.hooks.sh | 47 - home/programs/git/post-checkout.sh | 8 - home/programs/git/post-commit.sh | 5 - home/programs/git/post-merge.sh | 5 - home/programs/git/post-rewrite.sh | 7 - home/programs/git/pre-commit.sh | 5 - home/programs/git/pre-push.sh | 5 - home/programs/git/prepare-commit-msg.sh | 8 - home/programs/go.nix | 31 - home/programs/gpg.nix | 49 - home/programs/idea-ultimate.nix | 75 - home/programs/maven/default.nix | 42 - home/programs/maven/mvn.sh | 9 - home/programs/neovim.nix | 224 -- home/programs/pass.nix | 57 - home/programs/prompts/liquidprompt.nix | 79 - home/programs/prompts/pure.nix | 45 - home/programs/rsync.nix | 67 - home/programs/shell.nix | 5 - home/programs/ssh/default.nix | 141 - home/programs/ssh/kadd-completion.zsh | 5 - home/programs/tmux/default.nix | 240 -- home/programs/tmux/tprofile-completion.zsh | 31 - home/programs/tmux/tprofile.sh | 92 - 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 | 132 - home/wm/general/inhibit-suspend.sh | 2 - home/wm/general/lock-screen.sh | 12 - home/wm/general/wm-script.sh | 3 - home/wm/sway.nix | 139 - hosts/DANIELKNB1/configuration.nix | 17 + hosts/DANIELKNB1/hardware-configuration.nix | 4 + hosts/DANIELKNB1/home-dkahlenberg.nix | 126 + hosts/{argon => DANIELKNB1}/home-root.nix | 0 hosts/M386/home-tobhap.nix | 93 - hosts/argon/configuration.nix | 58 - hosts/argon/hardware-configuration.nix | 38 - 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 | 147 + hosts/neon/configuration.nix | 129 - hosts/neon/hardware-configuration.nix | 74 - hosts/neon/home-root.nix | 5 - hosts/neon/home-tobias.nix | 54 - hosts/sams9/home-nix-on-droid.nix | 189 ++ hosts/sams9/nix-on-droid.nix | 82 + 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 | 28 +- 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 | 33 +- nixos/base/nixoswsl.nix | 41 + nixos/base/server.nix | 72 - nixos/misc/agenix.nix | 143 - nixos/misc/cachix-agent.nix | 38 - nixos/misc/ids.nix | 22 +- 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 | 54 - nixos/services/applications/teamspeak.nix | 67 - nixos/services/maintenance/backup.nix | 203 -- nixos/services/maintenance/storage.nix | 158 - nixos/system/boot.nix | 96 - nixos/system/nvidia-optimus/default.nix | 82 - nixos/system/nvidia-optimus/nvidia-offload.sh | 6 - 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 - 205 files changed, 6129 insertions(+), 8479 deletions(-) delete mode 100644 .agenix.toml delete mode 100644 .editorconfig create mode 100644 drvs/desed/Cargo.lock create mode 100644 drvs/desed/default.nix create mode 100644 files/apps/nixos-shell-vm.nix 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 100755 files/scripts/cp-persist.sh delete mode 100755 files/scripts/fs-diff.sh delete mode 100644 files/tmux/profiles/crossfitamgruen.sh delete mode 100644 files/tmux/profiles/nix-config.sh delete mode 100644 files/tmux/profiles/util/helpers.sh 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 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 delete mode 100644 home/development/nodejs.nix delete mode 100644 home/misc/backup/default.nix delete mode 100644 home/misc/backup/local-backup.sh delete mode 100644 home/misc/cachix-agent.nix create mode 100644 home/misc/comment-nvim.lua create mode 100644 home/misc/duck-nvim.lua create mode 100644 home/misc/emacs.el create mode 100644 home/misc/emacs.elc 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/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 delete mode 100644 home/misc/sdks.nix 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 delete mode 100644 home/misc/work.nix delete mode 100644 home/programs/alacritty.nix delete mode 100644 home/programs/atom.nix delete mode 100644 home/programs/git/age-textconv.sh delete mode 100644 home/programs/git/default.nix delete mode 100644 home/programs/git/git-alias-bcf.sh delete mode 100644 home/programs/git/git-initial-commit.sh delete mode 100644 home/programs/git/gitignores/intellij.gitignore delete mode 100644 home/programs/git/gitignores/linux.gitignore delete mode 100644 home/programs/git/includes/file.sh delete mode 100644 home/programs/git/lib.hooks.sh delete mode 100644 home/programs/git/post-checkout.sh delete mode 100644 home/programs/git/post-commit.sh delete mode 100644 home/programs/git/post-merge.sh delete mode 100644 home/programs/git/post-rewrite.sh delete mode 100644 home/programs/git/pre-commit.sh delete mode 100644 home/programs/git/pre-push.sh delete mode 100644 home/programs/git/prepare-commit-msg.sh delete mode 100644 home/programs/go.nix delete mode 100644 home/programs/gpg.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/neovim.nix delete mode 100644 home/programs/pass.nix delete mode 100644 home/programs/prompts/liquidprompt.nix delete mode 100644 home/programs/prompts/pure.nix delete mode 100644 home/programs/rsync.nix delete mode 100644 home/programs/ssh/default.nix delete mode 100644 home/programs/ssh/kadd-completion.zsh delete mode 100644 home/programs/tmux/default.nix delete mode 100644 home/programs/tmux/tprofile-completion.zsh delete mode 100644 home/programs/tmux/tprofile.sh 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/general/default.nix delete mode 100644 home/wm/general/inhibit-suspend.sh delete mode 100644 home/wm/general/lock-screen.sh delete mode 100644 home/wm/general/wm-script.sh 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-dkahlenberg.nix rename hosts/{argon => DANIELKNB1}/home-root.nix (100%) 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-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 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 create mode 100644 nixos/base/nixoswsl.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/openssh.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 delete mode 100644 nixos/system/boot.nix delete mode 100644 nixos/system/nvidia-optimus/default.nix delete mode 100644 nixos/system/nvidia-optimus/nvidia-offload.sh 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 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..6fb11449 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,7 +10,6 @@ on: required: false type: string secrets: - CACHIX_ACTIVATE_TOKEN: CACHIX_AUTH_TOKEN: required: true @@ -27,49 +26,28 @@ jobs: - fmt -- --check - eval .#apps.$_system.nixos-shell.program - eval .#apps.$_system.setup.program + - develop .#ruby --impure + - develop .#deno --impure + - develop .#jvmlanguages-devenv --impure + - develop .#ocaml --impure + - develop .#rust --impure + - develop .#haskell --impure + - develop .#playwright --impure + - develop .#machnix --impure + - develop .#jupyenv --impure + - develop .#nixd + - eval .#apps.$_system.jupyenv-app.program include: - - nix-command: develop .#jdk8 --profile profile - system: x86_64 - - nix-command: develop .#jdk11 --profile profile - system: x86_64 - - nix-command: develop .#jdk17 --profile profile - system: x86_64 - - nix-command: develop .#php74 --profile profile - system: x86_64 - - nix-command: develop .#php80 --profile profile - system: x86_64 - - nix-command: develop .#php81 --profile profile + - nix-command: build .#homeConfigurations."dani@maiziedemacchiato".activationPackage 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 --log-lines 9999 .#nixOnDroidConfigurations.sams9.activationPackage --impure --print-build-logs system: aarch64 - - nix-command: build .#nixosConfigurations.argon.config.system.build.toplevel - system: aarch64 - deploy-agent: argon - - nix-command: build .#nixosConfigurations.krypton.config.system.build.toplevel + - nix-command: build .#nixosConfigurations.DANIELKNB1.config.system.build.toplevel system: x86_64 - deploy-agent: krypton - - nix-command: build .#nixosConfigurations.neon.config.system.build.toplevel - system: x86_64 - deploy-agent: neon - deploy-args: --async - - nix-command: build .#nixosConfigurations.xenon.config.system.build.toplevel - system: aarch64 - deploy-agent: xenon - - nix-command: build .#packages.$_system.rpi-firmware - system: aarch64 - - nix-command: build .#packages.$_system.rpi-image - system: aarch64 - nix-command: build .#packages.$_system.installer-image system: x86_64 @@ -80,16 +58,17 @@ jobs: ref: ${{ inputs.branch }} - name: Install nix - uses: cachix/install-nix-action@v20 + uses: cachix/install-nix-action@v21 with: extra_nix_config: | keep-going = true show-trace = true + access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} - name: Setup cachix uses: cachix/cachix-action@v12 with: - name: gerschtli + name: 573-bc authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - name: Build command (aarch64) @@ -100,16 +79,13 @@ jobs: 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 @@ -119,7 +95,6 @@ jobs: 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 @@ -137,6 +112,7 @@ jobs: --fail \ --location \ "https://nixos.org/nix/install" + # "https://releases.nixos.org/nix/nix-2.14.1/install" su ci -c "sh /tmp/install --no-channel-add --no-daemon" rm /tmp/install @@ -145,7 +121,7 @@ jobs: 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 + # FIXME: setting build-hook is needed because default hook `nix __build-remote` is not available - NixOS/nix#7217 function build_hook() { local nix_path="$(run which nix)" echo "${nix_path/bin\/nix/libexec/nix/build-remote}" @@ -158,50 +134,35 @@ jobs: run cachix --version run cachix use gerschtli run cachix use nix-on-droid + run cachix use 573-bc + run cachix use nix-community + run cachix use tweag-jupyter + run cachix use coq + run cachix use nixpkgs-ruby 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"' - }} + # TODO where is run needed + run cachix watch-exec 573-bc \ + nix -- ${{ matrix.nix-command }} - name: Build command (x86_64) if: matrix.system == 'x86_64' 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 - 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 }}")" + cachix use gerschtli + cachix use nix-on-droid + cachix use 573-bc + cachix use nix-community + cachix use tweag-jupyter + cachix use coq + cachix use nixpkgs-ruby - echo "::group::Upload spec" - cachix push gerschtli "$spec" - - echo "::group::Activate deployment" - cachix deploy activate --agent "${{ matrix.deploy-agent }}" ${{ matrix.deploy-args }} "$spec" + echo "::group::Build command" + cachix watch-exec 573-bc \ + nix -- ${{ matrix.nix-command }} # vim: set sw=2: diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index bcb75447..66ced9e1 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@v21 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..38c79312 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.*/ nixos.qcow2 result result-* 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/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..5d81eef4 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,39 @@ if nix-env -q --json | jq ".[].pname" | grep '"nix"' > /dev/null; then nix-env --set-flag priority 1000 nix fi - # installation if _is_nixos; then - hostname=$(_read_enum "Enter hostname" argon krypton neon xenon) + hostname=$(_read_enum "Enter hostname" DANIELKNB1) _log "Run sudo nixos-rebuild switch..." 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" + switch \ + --option extra-substituters "https://573-bc.cachix.org" \ + --option extra-trusted-public-keys "573-bc.cachix.org-1:2XtNmCSdhLggQe4UTa4i3FSDIbYWx/m1gsBOxS6heJs=" \ + --keep-going \ + --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" + --option print-build-logs true \ + --option extra-substituters "https://cache.nixos.org" \ + --option extra-trusted-public-keys "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" \ + --option extra-substituters "https://gerschtli.cachix.org" \ + --option extra-trusted-public-keys "gerschtli.cachix.org-1:dWJ/WiIA3W2tTornS/2agax+OI0yQF8ZA2SFjU56vZ0=" \ + --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" 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 +84,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/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..02949e27 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.05"; 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/scripts/cp-persist.sh b/files/scripts/cp-persist.sh deleted file mode 100755 index f73a246a..00000000 --- a/files/scripts/cp-persist.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -path="$1" -dest="/persist$path" - -if ! [[ "$path" =~ ^/* ]]; then - echo "invalid path: $path" - exit 1 -fi - -if ! [[ -d "$(dirname "$dest")" ]]; then - echo "please create $(dirname "$dest") with necessary permissions and ownership" - exit 2 -fi - -cp -avr "$path" "$dest" diff --git a/files/scripts/fs-diff.sh b/files/scripts/fs-diff.sh deleted file mode 100755 index 920785ae..00000000 --- a/files/scripts/fs-diff.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -IGNORES_FILE="$1" - -OLD_TRANSID=$(sudo btrfs subvolume find-new /btrfs/root-blank 9999999) -OLD_TRANSID=${OLD_TRANSID#transid marker was } - -btrfs subvolume find-new "/btrfs/root" "$OLD_TRANSID" \ - | sed '$d' \ - | cut -f17- -d' ' \ - | sort --unique \ - | while read path; do - path="/$path" - - if grep -q "^$path\$" "$IGNORES_FILE"; then - continue - fi - - if [ -L "$path" ]; then - link_target="$(realpath "$path")" - if ! [[ "$link_target" =~ ^(/nix/store|/persist)/* ]]; then - echo "$path -> $link_target" - fi - elif [ -d "$path" ]; then - : # The path is a directory, ignore - elif ! [[ "$path" =~ ^(/home/tobias|/root)/.(compose-)?cache/ ]]; then - echo "$path" - fi - done 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/files/tmux/profiles/nix-config.sh b/files/tmux/profiles/nix-config.sh deleted file mode 100644 index 8f909e95..00000000 --- a/files/tmux/profiles/nix-config.sh +++ /dev/null @@ -1,3 +0,0 @@ -ROOT="${HOME}/.nix-config" - -PRESET="git-single" diff --git a/files/tmux/profiles/util/helpers.sh b/files/tmux/profiles/util/helpers.sh deleted file mode 100644 index 5117e6f8..00000000 --- a/files/tmux/profiles/util/helpers.sh +++ /dev/null @@ -1,4 +0,0 @@ -_cmds() { - local IFS=":" - echo "$*" -} diff --git a/flake.lock b/flake.lock index 25b7038f..067f3114 100644 --- a/flake.lock +++ b/flake.lock @@ -1,714 +1,2696 @@ { "nodes": { - "agenix": { + "alejandra": { "inputs": { - "darwin": "darwin", - "nixpkgs": [ - "nixpkgs" - ] + "fenix": "fenix", + "flakeCompat": "flakeCompat", + "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1677969766, - "narHash": "sha256-AIp/ZYZMNLDZR/H7iiAlaGpu4lcXsVt9JQpBlf43HRY=", - "owner": "ryantm", - "repo": "agenix", - "rev": "03b51fe8e459a946c4b88dcfb6446e45efb2c24e", + "lastModified": 1684209597, + "narHash": "sha256-6gabWzKnpKNxTwJ/+cASswCCAU+t1rNlpY2DWMgn5r0=", + "owner": "kamadorueda", + "repo": "alejandra", + "rev": "9512caae61b6fbda5298a33813976db4f1c0f17d", "type": "github" }, "original": { - "owner": "ryantm", - "repo": "agenix", + "owner": "kamadorueda", + "repo": "alejandra", "type": "github" } }, - "agenix-cli": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": [ - "nixpkgs" - ] + "code-runner-nvim": { + "flake": false, + "locked": { + "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": 1641404293, - "narHash": "sha256-0+QVY1sDhGF4hAN6m2FdKZgm9V1cuGGjY4aitRBnvKg=", - "owner": "cole-h", - "repo": "agenix-cli", - "rev": "77fccec4ed922a0f5f55ed964022b0db7d99f07d", + "lastModified": 1677685907, + "narHash": "sha256-nanNQEtpjv0YKEkkrPmq/5FPxq+Yj/19cs0Gf7YgKjU=", + "owner": "EtiamNullam", + "repo": "deferred-clipboard.nvim", + "rev": "810a29d166eaa41afc220cc7cd85eeaa3c43b37f", "type": "github" }, "original": { - "owner": "cole-h", - "repo": "agenix-cli", + "owner": "EtiamNullam", + "repo": "deferred-clipboard.nvim", "type": "github" } }, - "cachix-deploy-flake": { + "devenv": { "inputs": { - "darwin": "darwin_2", - "disko": "disko", - "home-manager": "home-manager", - "nixos-remote": "nixos-remote", - "nixpkgs": "nixpkgs_2" + "flake-compat": "flake-compat", + "nix": "nix", + "nixpkgs": "nixpkgs_2", + "pre-commit-hooks": "pre-commit-hooks" }, "locked": { - "lastModified": 1674378263, - "narHash": "sha256-A5mHxh5Fuf/RDY6fgvtEqf7NBgicCY+nctpi+rz3qUI=", + "lastModified": 1687948294, + "narHash": "sha256-ywVFat7o2KJJ8yHKpl3TJHmdKi1ZQYZn9PQ7OhvM+lc=", "owner": "cachix", - "repo": "cachix-deploy-flake", - "rev": "4924836b8ed21d0e7a4a8264fb1b2db3ad8f8aed", + "repo": "devenv", + "rev": "eaa7d3d154e2dd58b5d275bc2f2b9a41af6fdd3d", "type": "github" }, "original": { "owner": "cachix", - "repo": "cachix-deploy-flake", + "repo": "devenv", "type": "github" } }, - "darwin": { - "inputs": { - "nixpkgs": [ - "agenix", - "nixpkgs" - ] - }, + "duck-nvim": { + "flake": false, "locked": { - "lastModified": 1673295039, - "narHash": "sha256-AsdYgE8/GPwcelGgrntlijMg4t3hLFJFCRF3tL5WVjA=", - "owner": "lnl7", - "repo": "nix-darwin", - "rev": "87b9d090ad39b25b2400029c64825fc2a8868943", + "lastModified": 1669798149, + "narHash": "sha256-H+Ufqb3a6Re4eo/ByYmwrzfmHTAU8irZzF/WcoJOjDI=", + "owner": "tamton-aquib", + "repo": "duck.nvim", + "rev": "b1a3b4e52eec886bf4ce5ed692a2162d504d9632", "type": "github" }, "original": { - "owner": "lnl7", - "ref": "master", - "repo": "nix-darwin", + "owner": "tamton-aquib", + "repo": "duck.nvim", "type": "github" } }, - "darwin_2": { + "emacs-overlay": { "inputs": { - "nixpkgs": "nixpkgs" + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_3", + "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1671891118, - "narHash": "sha256-+GJYiT7QbfA306ex4sGMlFB8Ts297pn3OdQ9kTd4aDw=", - "owner": "LnL7", - "repo": "nix-darwin", - "rev": "267040e7a2b8644f1fdfcf57b7e808c286dbdc7b", + "lastModified": 1687944496, + "narHash": "sha256-/m+L9hXVcqtF9djetgRkKEaC3BiSEN0XHoWmV00piMg=", + "owner": "nix-community", + "repo": "emacs-overlay", + "rev": "f42cc216ad19b81c18657671b8681f1b005804b3", "type": "github" }, "original": { - "owner": "LnL7", - "repo": "nix-darwin", + "owner": "nix-community", + "repo": "emacs-overlay", "type": "github" } }, - "disko": { + "fenix": { "inputs": { "nixpkgs": [ - "cachix-deploy-flake", + "alejandra", "nixpkgs" - ] + ], + "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1672526278, - "narHash": "sha256-QpebSMK5vrA5tE4xT0WpcP84MRETydL6NCotIXPVvGw=", + "lastModified": 1668234453, + "narHash": "sha256-FmuZThToBvRsqCauYJ3l8HJoGLAY5cMULeYEKIaGrRw=", "owner": "nix-community", - "repo": "disko", - "rev": "981160e9cfb73a9fc9f7eddfe193953fc784cdfb", + "repo": "fenix", + "rev": "8f219f6b36e8d0d56afa7f67e6e3df63ef013cdb", "type": "github" }, "original": { "owner": "nix-community", - "repo": "disko", + "repo": "fenix", "type": "github" } }, - "dmenu": { + "fenix_2": { "inputs": { "nixpkgs": [ - "nixpkgs" - ] + "unstable" + ], + "rust-analyzer-src": "rust-analyzer-src_2" }, "locked": { - "lastModified": 1669935246, - "narHash": "sha256-6hNfb7oS1hHGujQ2yj+mVgSd41RSnrfGf9xWu00W+J8=", - "owner": "Gerschtli", - "repo": "dmenu", - "rev": "b3ad84c7fb68ac5ecec01485921b784d190d6dac", + "lastModified": 1687933502, + "narHash": "sha256-6AjeSY3ld3keACkmOB5x8+yglyhT3dk0EvfV1wnHKQw=", + "owner": "nix-community", + "repo": "fenix", + "rev": "303533333b5c215686f1230d0672646166fca055", "type": "github" }, "original": { - "owner": "Gerschtli", - "repo": "dmenu", + "owner": "nix-community", + "repo": "fenix", "type": "github" } }, - "dwm": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, + "filetype-nvim": { + "flake": false, "locked": { - "lastModified": 1677669066, - "narHash": "sha256-jz2uysaO9Fk3u5HtgMluoLJ1fan5E1Up0UbBnJnRwzQ=", - "owner": "Gerschtli", - "repo": "dwm", - "rev": "988270421149783f35426dc37ad02ee498f891a1", - "type": "github" + "narHash": "sha256-B+VvgQj8akiKe+MX/dV2/mdaaqF8s2INW3phdPJ5TFA=", + "type": "tarball", + "url": "https://github.com/nathom/filetype.nvim/archive/b522628a45a17d58fc0073ffd64f9dc9530a8027.tar.gz" }, "original": { - "owner": "Gerschtli", - "repo": "dwm", - "type": "github" + "type": "tarball", + "url": "https://github.com/nathom/filetype.nvim/archive/b522628a45a17d58fc0073ffd64f9dc9530a8027.tar.gz" } }, - "dwm-status": { - "inputs": { - "naersk": "naersk", - "nixpkgs": [ - "nixpkgs" - ] - }, + "flake-compat": { + "flake": false, "locked": { - "lastModified": 1677658235, - "narHash": "sha256-bETnAR2WB2/+PXp2r6m+6UcEoSuCLBvxBWY5iKHB6MA=", - "owner": "Gerschtli", - "repo": "dwm-status", - "rev": "0173aa4d4040a98357a1672412a351329ced94ab", + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "type": "github" }, "original": { - "owner": "Gerschtli", - "repo": "dwm-status", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "flake-utils": { + "flake-compat_2": { + "flake": false, "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "flake-utils_2": { + "flake-compat_3": { + "flake": false, "locked": { - "lastModified": 1659877975, - "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "home-manager": { - "inputs": { - "nixpkgs": [ - "cachix-deploy-flake", - "nixpkgs" - ], - "utils": "utils" - }, + "flake-compat_4": { + "flake": false, "locked": { - "lastModified": 1672688183, - "narHash": "sha256-3sNEWKTg3XXVDnvzVatdyetiUQWL+ibJ1YkvxSk3PuM=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "c1a830c8fabb13f95f51ecf48552f0a794d8718a", + "lastModified": 1627913399, + "narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "home-manager", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "home-manager_2": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ], - "utils": "utils_2" - }, + "flake-compat_5": { + "flake": false, "locked": { - "lastModified": 1677757546, - "narHash": "sha256-tA1ukoluctzLVyWRaKtD4KlTwgXbUsGB5vcyni1OJ9I=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "86bb69b0b1e10d99a30c4352f230f03106dd0f8a", + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "type": "github" }, "original": { - "owner": "nix-community", - "ref": "release-22.11", - "repo": "home-manager", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "homeage": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, + "flake-compat_6": { + "flake": false, "locked": { - "lastModified": 1669234151, - "narHash": "sha256-TwT87E3m2TZLgwYJESlype14HxUOrRGojPM5C2akrMg=", - "owner": "jordanisaacs", - "repo": "homeage", - "rev": "02bfe4ca06962d222e522fff0240c93946b20278", + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "type": "github" }, "original": { - "owner": "jordanisaacs", - "repo": "homeage", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "impermanence": { + "flake-compat_7": { "locked": { - "lastModified": 1675359654, - "narHash": "sha256-FPxzuvJkcO49g4zkWLSeuZkln54bLoTtrggZDJBH90I=", + "lastModified": 1680531544, + "narHash": "sha256-8qbiDTYb1kGaDADRXTItpcMKQ1TeQVkuof6oEwHUvVA=", "owner": "nix-community", - "repo": "impermanence", - "rev": "6138eb8e737bffabd4c8fc78ae015d4fd6a7e2fd", + "repo": "flake-compat", + "rev": "95e78dc12268c5e4878621845c511077f3798729", "type": "github" }, "original": { "owner": "nix-community", - "repo": "impermanence", + "repo": "flake-compat", "type": "github" } }, - "naersk": { + "flake-parts": { "inputs": { - "nixpkgs": [ - "dwm-status", - "nixpkgs" + "nixpkgs-lib": [ + "unstable" ] }, "locked": { - "lastModified": 1653413650, - "narHash": "sha256-wojDHjb+eU80MPH+3HQaK0liUy8EgR95rvmCl24i58Y=", - "owner": "nmattia", - "repo": "naersk", - "rev": "69daaceebe12c070cd5ae69ba38f277bbf033695", + "lastModified": 1687762428, + "narHash": "sha256-DIf7mi45PKo+s8dOYF+UlXHzE0Wl/+k3tXUyAoAnoGE=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "37dd7bb15791c86d55c5121740a1887ab55ee836", "type": "github" }, "original": { - "owner": "nmattia", - "repo": "naersk", + "owner": "hercules-ci", + "repo": "flake-parts", "type": "github" } }, - "nix-formatter-pack": { + "flake-parts_2": { "inputs": { - "nixpkgs": [ - "nixpkgs" - ], - "nmd": "nmd", - "nmt": "nmt" + "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1677658287, - "narHash": "sha256-1Rfr2yqepXijgowPAToJbafCAqRFqtAAPR98bgqk4cc=", - "owner": "Gerschtli", - "repo": "nix-formatter-pack", - "rev": "712dc9d0b8adc86e83bd297d031a031e3c441937", + "lastModified": 1685662779, + "narHash": "sha256-cKDDciXGpMEjP1n6HlzKinN0H+oLmNpgeCTzYnsA2po=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "71fb97f0d875fd4de4994dfb849f2c75e17eb6c3", "type": "github" }, "original": { - "owner": "Gerschtli", - "repo": "nix-formatter-pack", - "type": "github" + "id": "flake-parts", + "type": "indirect" } }, - "nix-formatter-pack_2": { + "flake-parts_3": { "inputs": { - "nixpkgs": [ - "nix-on-droid", + "nixpkgs-lib": [ + "hercules-ci-effects", + "hercules-ci-agent", "nixpkgs" - ], - "nmd": "nmd_2", - "nmt": "nmt_2" + ] }, "locked": { - "lastModified": 1666720474, - "narHash": "sha256-iWojjDS1D19zpeZXbBdjWb9MiKmVVFQCqtJmtTXgPx8=", - "owner": "Gerschtli", - "repo": "nix-formatter-pack", - "rev": "14876cc8fe94a3d329964ecb073b4c988c7b61f5", + "lastModified": 1685662779, + "narHash": "sha256-cKDDciXGpMEjP1n6HlzKinN0H+oLmNpgeCTzYnsA2po=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "71fb97f0d875fd4de4994dfb849f2c75e17eb6c3", "type": "github" }, "original": { - "owner": "Gerschtli", - "repo": "nix-formatter-pack", + "owner": "hercules-ci", + "repo": "flake-parts", "type": "github" } }, - "nix-index-database": { + "flake-parts_4": { "inputs": { - "nixpkgs": [ + "nixpkgs-lib": [ + "nixpkgs-wayland", + "nix-eval-jobs", "nixpkgs" ] }, "locked": { - "lastModified": 1677382901, - "narHash": "sha256-2idFWlTVG+qUZkU2/W50amGSIxmN56igIkMAXKbv4S4=", - "owner": "Mic92", - "repo": "nix-index-database", - "rev": "4306fa7c12e098360439faac1a2e6b8e509ec97c", + "lastModified": 1685662779, + "narHash": "sha256-cKDDciXGpMEjP1n6HlzKinN0H+oLmNpgeCTzYnsA2po=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "71fb97f0d875fd4de4994dfb849f2c75e17eb6c3", "type": "github" }, "original": { - "owner": "Mic92", - "repo": "nix-index-database", + "owner": "hercules-ci", + "repo": "flake-parts", "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-utils": { "locked": { - "lastModified": 1670198918, - "narHash": "sha256-oNlUhAM0/a3pDdCMmBWA+CLrDAIYJqAAMyrDp8fNSM4=", - "owner": "t184256", - "repo": "nix-on-droid", - "rev": "b00cb5e7e2a47d85a019119069b153cda4002d0a", + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", "type": "github" }, "original": { - "owner": "t184256", - "repo": "nix-on-droid", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "nixGL": { + "flake-utils_10": { "inputs": { - "flake-utils": "flake-utils_2", - "nixpkgs": [ - "nixpkgs" - ] + "systems": "systems_4" }, "locked": { - "lastModified": 1676383589, - "narHash": "sha256-KCkWZXCjH+C4Kn7fUGSrEl5btk+sERHhZueSsvVbPWc=", - "owner": "guibou", - "repo": "nixGL", - "rev": "c917918ab9ebeee27b0dd657263d3f57ba6bb8ad", + "lastModified": 1687709756, + "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", "type": "github" }, "original": { - "owner": "guibou", - "repo": "nixGL", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "nixos-2211": { + "flake-utils_11": { + "inputs": { + "systems": "systems_5" + }, "locked": { - "lastModified": 1659446231, - "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "eabc38219184cc3e04a974fe31857d8e0eac098d", + "lastModified": 1687709756, + "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "release-21.11", - "repo": "nixpkgs", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "nixos-images": { + "flake-utils_2": { "inputs": { - "nixos-2211": "nixos-2211", - "nixos-unstable": "nixos-unstable" + "systems": "systems" }, "locked": { - "lastModified": 1671788592, - "narHash": "sha256-MFcGltfuAicQ5FUHYiBzRjy4YMmEOcbFSVEY1bK1Oho=", - "owner": "nix-community", - "repo": "nixos-images", - "rev": "b14097667f2a9889083d6401ba468b046b2b52f1", + "lastModified": 1687709756, + "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "nixos-images", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "nixos-remote": { + "flake-utils_3": { "inputs": { - "disko": [ - "cachix-deploy-flake", - "disko" - ], - "nixos-images": "nixos-images", - "nixpkgs": [ - "cachix-deploy-flake", - "nixpkgs" - ] + "systems": "systems_2" }, "locked": { - "lastModified": 1672492099, - "narHash": "sha256-MnmOhBG8+hoLwd6M+AS61+s/dN7hzsfKx71Ja2uUFLk=", + "lastModified": 1687709756, + "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", "owner": "numtide", - "repo": "nixos-remote", - "rev": "a2e236b5825d5ec2c9179afc309f20a8bd3587ca", + "repo": "flake-utils", + "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", "type": "github" }, "original": { "owner": "numtide", - "repo": "nixos-remote", + "repo": "flake-utils", "type": "github" } }, - "nixos-unstable": { + "flake-utils_4": { "locked": { - "lastModified": 1671565324, - "narHash": "sha256-FKnxM+07rV3HFNIOw3p1XaopZ3MkaxuHXNcZyYUJt2w=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "3c6d63d22ca8b57adc4120f7c1ea5262925c8c2d", + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixos-unstable-small", - "repo": "nixpkgs", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "nixpkgs": { + "flake-utils_5": { "locked": { - "lastModified": 1668650906, - "narHash": "sha256-JuiYfDO23O8oxUUOmhQflmOoJovyC5G4RjcYQMQjrRE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "3a86856a13c88c8c64ea32082a851fefc79aa700", + "lastModified": 1629481132, + "narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "997f7efcb746a9c140ce1f13c72263189225f482", "type": "github" }, "original": { - "id": "nixpkgs", - "type": "indirect" + "owner": "numtide", + "repo": "flake-utils", + "type": "github" } }, - "nixpkgs-22-05": { + "flake-utils_6": { "locked": { - "lastModified": 1669418739, - "narHash": "sha256-T86oFvcUIRwHWBWUt7WjaP4BP/3lDGbv5AppQSI1FkI=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "695b3515251873e0a7e2021add4bba643c56cde3", + "lastModified": 1642700792, + "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba", "type": "github" }, "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "695b3515251873e0a7e2021add4bba643c56cde3", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "nixpkgs-for-bootstrap": { + "flake-utils_7": { + "inputs": { + "systems": "systems_3" + }, "locked": { - "lastModified": 1669834992, - "narHash": "sha256-YnhZGHgb4C3Q7DSGisO/stc50jFb9F/MzHeKS4giotg=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "596a8e828c5dfa504f91918d0fa4152db3ab5502", + "lastModified": 1687171271, + "narHash": "sha256-BJlq+ozK2B1sJDQXS3tzJM5a+oVZmi1q0FlBK/Xqv7M=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "abfb11bd1aec8ced1c9bb9adfe68018230f4fb3c", "type": "github" }, "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "596a8e828c5dfa504f91918d0fa4152db3ab5502", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "nixpkgs_2": { + "flake-utils_8": { "locked": { - "lastModified": 1672633908, - "narHash": "sha256-sP0BMp4DprVCBjcTYPsTPwkJMsc45vM0FxHdDx6qE8U=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a4379d2b0deefedc8dba360897557707ea9ee9a7", + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", "type": "github" }, "original": { - "id": "nixpkgs", - "type": "indirect" + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_9": { + "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" + } + }, + "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" + } + }, + "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" + } + }, + "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" + } + }, + "haskell-flake": { + "locked": { + "lastModified": 1684780604, + "narHash": "sha256-2uMZsewmRn7rRtAnnQNw1lj0uZBMh4m6Cs/7dV5YF08=", + "owner": "srid", + "repo": "haskell-flake", + "rev": "74210fa80a49f1b6f67223debdbf1494596ff9f2", + "type": "github" + }, + "original": { + "owner": "srid", + "ref": "0.3.0", + "repo": "haskell-flake", + "type": "github" + } + }, + "hercules-ci-agent": { + "inputs": { + "flake-parts": "flake-parts_3", + "haskell-flake": "haskell-flake", + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1686721748, + "narHash": "sha256-ilD6ANYID+b0/+GTFbuZXfmu92bqVqY5ITKXSxqIp5A=", + "owner": "hercules-ci", + "repo": "hercules-ci-agent", + "rev": "7192b83935ab292a8e894db590dfd44f976e183b", + "type": "github" + }, + "original": { + "id": "hercules-ci-agent", + "type": "indirect" + } + }, + "hercules-ci-effects": { + "inputs": { + "flake-parts": "flake-parts_2", + "hercules-ci-agent": "hercules-ci-agent", + "nixpkgs": [ + "unstable" + ] + }, + "locked": { + "lastModified": 1686830987, + "narHash": "sha256-1XLTM0lFr3NV+0rd55SQW/8oQ3ACnqlYcda3FelIwHU=", + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "rev": "04e4ab63b9eed2452edee1bb698827e1cb8265c6", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "type": "github" + } + }, + "hls": { + "inputs": { + "flake-compat": "flake-compat_4", + "flake-utils": "flake-utils_5", + "gitignore": "gitignore_2", + "nixpkgs": "nixpkgs_5", + "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": 1687871164, + "narHash": "sha256-bBFlPthuYX322xOlpJvkjUBz0C+MOBjZdDOOJJ+G2jU=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "07c347bb50994691d7b0095f45ebd8838cf6bc38", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-23.05", + "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": 1684264534, + "narHash": "sha256-K0zr+ry3FwIo3rN2U/VWAkCJSgBslBisvfRIPwMbuCQ=", + "owner": "nix-community", + "repo": "impermanence", + "rev": "89253fb1518063556edd5e54509c30ac3089d5e6", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "impermanence", + "type": "github" + } + }, + "invokeai-src": { + "flake": false, + "locked": { + "lastModified": 1677475057, + "narHash": "sha256-REtyVcyRgspn1yYvB4vIHdOrPRZRNSSraepHik9MfgE=", + "owner": "invoke-ai", + "repo": "InvokeAI", + "rev": "650f4bb58ceca458bff1410f35cd6d6caad399c6", + "type": "github" + }, + "original": { + "owner": "invoke-ai", + "ref": "v2.3.1.post2", + "repo": "InvokeAI", + "type": "github" + } + }, + "jupyenv": { + "inputs": { + "flake-compat": "flake-compat_3", + "flake-utils": "flake-utils_4", + "ihaskell": "ihaskell", + "nix-dart": "nix-dart", + "nixpkgs": "nixpkgs_6", + "nixpkgs-stable": "nixpkgs-stable_3", + "npmlock2nix": "npmlock2nix", + "opam-nix": "opam-nix", + "poetry2nix": "poetry2nix", + "pre-commit-hooks": "pre-commit-hooks_3", + "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" + } + }, + "koboldai-src": { + "flake": false, + "locked": { + "lastModified": 1668957963, + "narHash": "sha256-fKQ/6LiMmrfSWczC5kcf6M9cpuF9dDYl2gJ4+6ZLSdY=", + "owner": "koboldai", + "repo": "koboldai-client", + "rev": "f2077b8e58db6bd47a62bf9ed2649bb0711f9678", + "type": "github" + }, + "original": { + "owner": "koboldai", + "ref": "1.19.2", + "repo": "koboldai-client", + "type": "github" + } + }, + "latest": { + "locked": { + "lastModified": 1687950564, + "narHash": "sha256-7oWo6VzbdjoIGncgRrs2S//KBmFNuKHCMgeDjuewCEI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1fe1484b87b60b88432c61b011c396ba73d41ff7", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "master", + "repo": "nixpkgs", + "type": "github" + } + }, + "lib-aggregate": { + "inputs": { + "flake-utils": "flake-utils_10", + "nixpkgs-lib": "nixpkgs-lib_2" + }, + "locked": { + "lastModified": 1687781445, + "narHash": "sha256-F02HT/B7Mfv4ypdgkiVnLpX6tk56bZDMJpV7tIiQFz0=", + "owner": "nix-community", + "repo": "lib-aggregate", + "rev": "3dcf917ef862cac326c17cc1e6407c6827509d60", + "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_6", + "nixpkgs": [ + "unstable" + ], + "pypi-deps-db": [ + "pypi-deps-db" + ] + }, + "locked": { + "lastModified": 1681814846, + "narHash": "sha256-IMQ1Twf/ozE53CwrunXNlYD3D31xqgz/mZyZG38Ov/Y=", + "owner": "DavHau", + "repo": "mach-nix", + "rev": "8d903072c7b5426d90bc42a008242c76590af916", + "type": "github" + }, + "original": { + "owner": "DavHau", + "repo": "mach-nix", + "type": "github" + } + }, + "markid": { + "flake": false, + "locked": { + "lastModified": 1681193927, + "narHash": "sha256-92BB4nKSe6Ii+nz0yJzvgr+jwPi4iS6Ddui0KvcYZkY=", + "owner": "David-Kunz", + "repo": "markid", + "rev": "379f7af033d19744b36b454309006d67675ed2f5", + "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" + } + }, + "murmur-lua-nvim": { + "flake": false, + "locked": { + "lastModified": 1677989560, + "narHash": "sha256-7sOL+MULhObL+g3KEp2uJ/0r9xKU2rREBHPxt5RwuLY=", + "owner": "nyngwang", + "repo": "murmur.lua", + "rev": "e6e630c89c7d65ee06315f7bb5e900a04a87fd61", + "type": "github" + }, + "original": { + "owner": "nyngwang", + "repo": "murmur.lua", + "type": "github" + } + }, + "naersk": { + "inputs": { + "nixpkgs": [ + "tree-grepper", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1662220400, + "narHash": "sha256-9o2OGQqu4xyLZP9K6kNe1pTHnyPz0Wr3raGYnr9AIgY=", + "owner": "nmattia", + "repo": "naersk", + "rev": "6944160c19cb591eb85bbf9b2f2768a935623ed3", + "type": "github" + }, + "original": { + "owner": "nmattia", + "repo": "naersk", + "type": "github" + } + }, + "neovim-flake": { + "inputs": { + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "unstable" + ] + }, + "locked": { + "dir": "contrib", + "lastModified": 1687911194, + "narHash": "sha256-lMY74cgPn3+TlM3sy2H6JUHUElkMGmnaJxbOfTLOyI4=", + "owner": "neovim", + "repo": "neovim", + "rev": "42f9573e5da64d6eb8e0dd9ccfefadb68773202c", + "type": "github" + }, + "original": { + "dir": "contrib", + "owner": "neovim", + "repo": "neovim", + "type": "github" + } + }, + "neovim-nightly-overlay": { + "inputs": { + "flake-compat": [ + "flake-compat" + ], + "flake-parts": [ + "flake-parts" + ], + "hercules-ci-effects": [ + "hercules-ci-effects" + ], + "neovim-flake": [ + "neovim-flake" + ], + "nixpkgs": [ + "unstable" + ] + }, + "locked": { + "lastModified": 1687910775, + "narHash": "sha256-Ly86o/Qe61qfcJ/IgSrSY7xO5oIOaqwYAQbbrLVr+3c=", + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "rev": "d1ed83546b3a0713dd22e5ef4585282783be4a19", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "type": "github" + } + }, + "nil": { + "inputs": { + "flake-utils": "flake-utils_7", + "nixpkgs": "nixpkgs_7", + "rust-overlay": "rust-overlay_2" + }, + "locked": { + "lastModified": 1687776032, + "narHash": "sha256-DYC3USpD4CCjC+bsBAIE+eqPDgLLEVor/syZWivYmCA=", + "owner": "oxalica", + "repo": "nil", + "rev": "f6bd5fea84bb5b0b3685b5dd9c21c83fe6ab9b64", + "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-eval-jobs": { + "inputs": { + "flake-parts": "flake-parts_4", + "nixpkgs": "nixpkgs_12" + }, + "locked": { + "lastModified": 1687744035, + "narHash": "sha256-Tv3e/SBh32HWC/5jJCtfS4yFNBn2XzjKDVxRmfZgetM=", + "owner": "nix-community", + "repo": "nix-eval-jobs", + "rev": "a74d3c57242f34a767d920b4b31820047c59ff92", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-eval-jobs", + "type": "github" + } + }, + "nix-filter": { + "locked": { + "lastModified": 1687178632, + "narHash": "sha256-HS7YR5erss0JCaUijPeyg2XrisEb959FIct3n2TMGbE=", + "owner": "numtide", + "repo": "nix-filter", + "rev": "d90c75e8319d0dd9be67d933d8eb9d0894ec9174", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "nix-filter", + "type": "github" + } + }, + "nix-formatter-pack": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "nmd": "nmd", + "nmt": "nmt" + }, + "locked": { + "lastModified": 1687159328, + "narHash": "sha256-1AUjlt+MrF0Lvs4YUsIm2UgadgvCQBG1Q9Jy4V0QbWo=", + "owner": "Gerschtli", + "repo": "nix-formatter-pack", + "rev": "7894633fc596b0858657517cba6ffd0506f4ed19", + "type": "github" + }, + "original": { + "owner": "Gerschtli", + "repo": "nix-formatter-pack", + "type": "github" + } + }, + "nix-formatter-pack_2": { + "inputs": { + "nixpkgs": [ + "nix-on-droid", + "nixpkgs" + ], + "nmd": "nmd_2", + "nmt": "nmt_2" + }, + "locked": { + "lastModified": 1666720474, + "narHash": "sha256-iWojjDS1D19zpeZXbBdjWb9MiKmVVFQCqtJmtTXgPx8=", + "owner": "Gerschtli", + "repo": "nix-formatter-pack", + "rev": "14876cc8fe94a3d329964ecb073b4c988c7b61f5", + "type": "github" + }, + "original": { + "owner": "Gerschtli", + "repo": "nix-formatter-pack", + "type": "github" + } + }, + "nix-index-database": { + "inputs": { + "nixpkgs": "nixpkgs_8" + }, + "locked": { + "lastModified": 1687097842, + "narHash": "sha256-NPAaRZx5foWLgIPfEaiEZMr9JIlEQhLEVEXpx09341Q=", + "owner": "Mic92", + "repo": "nix-index-database", + "rev": "c8210cb3fcde6860255b54ddba74dc177e6232cd", + "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_2", + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap", + "nmd": "nmd_3" + }, + "locked": { + "lastModified": 1684353543, + "narHash": "sha256-0b85kcdeM1WgGZZn0L4fke39xcVpO99hidzcpqvNOcQ=", + "owner": "t184256", + "repo": "nix-on-droid", + "rev": "064e1b280e4711ecea0d7abbe885362cbf7b717a", + "type": "github" + }, + "original": { + "owner": "t184256", + "repo": "nix-on-droid", + "type": "github" + } + }, + "nixGL": { + "inputs": { + "flake-utils": "flake-utils_8", + "nixpkgs": "nixpkgs_9" + }, + "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_10" + }, + "locked": { + "lastModified": 1687942721, + "narHash": "sha256-WmeojpsM6q8+r4u02eHvR5zqI53cXh0ofjfFcBK/AR0=", + "owner": "nix-community", + "repo": "nixd", + "rev": "dedd7860f1a6d4a1671d8bf87005f92a2bf04b15", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixd", + "type": "github" + } + }, + "nixified-ai": { + "inputs": { + "flake-parts": [ + "flake-parts" + ], + "hercules-ci-effects": [ + "hercules-ci-effects" + ], + "invokeai-src": "invokeai-src", + "koboldai-src": "koboldai-src", + "nixpkgs": [ + "unstable" + ] + }, + "locked": { + "lastModified": 1685671845, + "narHash": "sha256-qVA3wIxPb9PIFqa9Wf2a9jRMeMhE4kWw2y3oPSuRHU4=", + "owner": "nixified-ai", + "repo": "flake", + "rev": "0c58f8cba3fb42c54f2a7bf9bd45ee4cbc9f2477", + "type": "github" + }, + "original": { + "owner": "nixified-ai", + "repo": "flake", + "type": "github" + } + }, + "nixos-wsl": { + "inputs": { + "flake-compat": [ + "flake-compat" + ], + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1687279045, + "narHash": "sha256-LR0dsXd/A07M61jclyBUW0wRojEQteWReKM35zoJXp0=", + "owner": "nix-community", + "repo": "NixOS-WSL", + "rev": "a8486b5d191f11d571f15d80b6e265d1712d01cf", + "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": 1669834992, + "narHash": "sha256-YnhZGHgb4C3Q7DSGisO/stc50jFb9F/MzHeKS4giotg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "596a8e828c5dfa504f91918d0fa4152db3ab5502", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "596a8e828c5dfa504f91918d0fa4152db3ab5502", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "dir": "lib", + "lastModified": 1685564631, + "narHash": "sha256-8ywr3AkblY4++3lIVxmrWZFzac7+f32ZEhH/A8pNscI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4f53efe34b3a8877ac923b9350c874e3dcd5dc0a", + "type": "github" + }, + "original": { + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib_2": { + "locked": { + "lastModified": 1687654967, + "narHash": "sha256-ki8vItcjn8Z8n+QD9NEoCQbbbG7VzWy71hyOkFFwCkM=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "b3ec8fb525fc0c8f08eff5ef93c684b4c6d0e777", + "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_6", + "flake-utils": "flake-utils_9", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1686972346, + "narHash": "sha256-RspBtydxRHZQs7QjNe8rhdcImIxGcRpgQMAaq5Gv43M=", + "owner": "bobvanderlinden", + "repo": "nixpkgs-ruby", + "rev": "9466644d759e8f03ffd0332055f84824468b727b", + "type": "github" + }, + "original": { + "owner": "bobvanderlinden", + "repo": "nixpkgs-ruby", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1678872516, + "narHash": "sha256-/E1YwtMtFAu2KUQKV/1+KFuReYPANM2Rzehk84VxVoc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9b8e5abb18324c7fe9f07cb100c3cd4a29cda8b8", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-22.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_2": { + "locked": { + "lastModified": 1687829761, + "narHash": "sha256-QRe1Y8SS3M4GeC58F/6ajz6V0ZLUVWX3ZAMgov2N3/g=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9790f3242da2152d5aa1976e3e4b8b414f4dd206", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_3": { + "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_4": { + "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-wayland": { + "inputs": { + "flake-compat": "flake-compat_7", + "lib-aggregate": "lib-aggregate", + "nix-eval-jobs": "nix-eval-jobs", + "nixpkgs": [ + "unstable" + ] + }, + "locked": { + "lastModified": 1687936622, + "narHash": "sha256-aODOKH97PLLDJOOBJyk9PjeDeDA08JACXgV890DU+K4=", + "owner": "nix-community", + "repo": "nixpkgs-wayland", + "rev": "06de194c938a4cbc17601e751eca3ff74c4a3115", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs-wayland", + "type": "github" + } + }, + "nixpkgs_10": { + "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_11": { + "locked": { + "lastModified": 1687829761, + "narHash": "sha256-QRe1Y8SS3M4GeC58F/6ajz6V0ZLUVWX3ZAMgov2N3/g=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9790f3242da2152d5aa1976e3e4b8b414f4dd206", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_12": { + "locked": { + "lastModified": 1687740418, + "narHash": "sha256-hZ51wbEaMFEo5MAOR9o+h7LNVxMIOCYABT5OwFesfCU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4137dbc2737384c4cc9e2b5d3c4cfc6ba6e5f0cc", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "master", + "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_3": { "locked": { - "lastModified": 1677779205, - "narHash": "sha256-6DBjL9wjq86p2GczmwnHtFRnWPBPItc67gapWENBgX8=", + "lastModified": 1687807295, + "narHash": "sha256-7TUD0p0m4mZpIi1O+Cyk5NCqpJUnhv/CJOAuHOndjao=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "6b3d1b1cf13f407fef5e634b224d575eb7211975", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1686501370, + "narHash": "sha256-G0WuM9fqTPRc2URKP9Lgi5nhZMqsfHGrdEbrLvAPJcg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "75a5ebf473cd60148ba9aec0d219f72e5cf52519", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { + "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_6": { + "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_7": { + "locked": { + "lastModified": 1687488839, + "narHash": "sha256-7JDjuyHwUvGJJge9jxfRJkuYyL5G5yipspc4J3HwjGA=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "f9e94676ce6c7531c44d38da61d2669ebec0f603", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_8": { + "locked": { + "lastModified": 1686960236, + "narHash": "sha256-AYCC9rXNLpUWzD9hm+askOfpliLEC9kwAo7ITJc4HIw=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "04af42f3b31dba0ef742d254456dc4c14eedac86", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_9": { + "locked": { + "lastModified": 1660551188, + "narHash": "sha256-a1LARMMYQ8DPx1BgoI/UN4bXe12hhZkCNqdxNi6uS0g=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "441dc5d512153039f19ef198e662e4f3dbb9fd65", + "type": "github" + }, + "original": { + "owner": "nixos", + "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" + } + }, + "nmd_2": { + "flake": false, + "locked": { + "lastModified": 1666190571, + "narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=", + "owner": "rycee", + "repo": "nmd", + "rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169", + "type": "gitlab" + }, + "original": { + "owner": "rycee", + "repo": "nmd", + "type": "gitlab" + } + }, + "nmd_3": { + "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" + } + }, + "nmt_2": { + "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-cmp": { + "flake": false, + "locked": { + "lastModified": 1687494599, + "narHash": "sha256-qRKhIpcF/26Xtq2T7ca608BbGaAd/AVybqvkEDwT4L8=", + "owner": "hrsh7th", + "repo": "nvim-cmp", + "rev": "e1f1b40790a8cb7e64091fb12cc5ffe350363aa0", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "nvim-cmp", + "type": "github" + } + }, + "nvim-lspconfig": { + "flake": false, + "locked": { + "lastModified": 1687509658, + "narHash": "sha256-t3b57T/Pc0F+rLe954gNk7cfi0L76eTrDOfiNCt14Yo=", + "owner": "neovim", + "repo": "nvim-lspconfig", + "rev": "b6b34b9acf84949f0ac1c00747765e62b81fb38d", + "type": "github" + }, + "original": { + "owner": "neovim", + "repo": "nvim-lspconfig", + "type": "github" + } + }, + "nvim-treesitter": { + "flake": false, + "locked": { + "lastModified": 1687935772, + "narHash": "sha256-i/EZNaKtMG2FVGhaxmJYkmWRIBa7uHEOkceh9Y3c4t4=", + "owner": "nvim-treesitter", + "repo": "nvim-treesitter", + "rev": "f04f137acb1b591a5c21df8c201e8df4878d33ed", + "type": "github" + }, + "original": { + "owner": "nvim-treesitter", + "repo": "nvim-treesitter", + "type": "github" + } + }, + "ocaml-overlay": { + "inputs": { + "flake-utils": "flake-utils_11", + "nixpkgs": [ + "latest" + ] + }, + "locked": { + "lastModified": 1687934320, + "narHash": "sha256-ZC3tHpI1YBxDlj5TOgQKajgpiHIWb2/AjdhX2tnalDs=", + "owner": "nix-ocaml", + "repo": "nix-overlays", + "rev": "571affdbb74952466b996bd56e063dc7f7424b81", + "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" + } + }, + "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": 1686050334, + "narHash": "sha256-R0mczWjDzBpIvM3XXhO908X5e2CQqjyh/gFbwZk/7/Q=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "6881eb2ae5d8a3516e34714e7a90d9d95914c4dc", + "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_5", + "flake-utils": [ + "jupyenv", + "flake-utils" + ], + "gitignore": "gitignore_3", + "nixpkgs": [ + "jupyenv", + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable_4" + }, + "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": 1685526402, + "narHash": "sha256-V0SXx0dWlUBL3E/wHWTszrkK2dOnuYYnBc7n6e0+NQU=", + "owner": "DavHau", + "repo": "pypi-deps-db", + "rev": "ba35683c35218acb5258b69a9916994979dc73a9", + "type": "github" + }, + "original": { + "owner": "DavHau", + "repo": "pypi-deps-db", + "type": "github" + } + }, + "root": { + "inputs": { + "alejandra": "alejandra", + "code-runner-nvim": "code-runner-nvim", + "deferred-clipboard-nvim": "deferred-clipboard-nvim", + "devenv": "devenv", + "duck-nvim": "duck-nvim", + "emacs-overlay": "emacs-overlay", + "fenix": "fenix_2", + "filetype-nvim": "filetype-nvim", + "flake-compat": "flake-compat_2", + "flake-parts": "flake-parts", + "flake-utils": "flake-utils_3", + "fsread-nvim": "fsread-nvim", + "hercules-ci-effects": "hercules-ci-effects", + "home-manager": "home-manager", + "impermanence": "impermanence", + "jupyenv": "jupyenv", + "latest": "latest", + "mach-nix": "mach-nix", + "markid": "markid", + "murmur-lua-nvim": "murmur-lua-nvim", + "neovim-flake": "neovim-flake", + "neovim-nightly-overlay": "neovim-nightly-overlay", + "nil": "nil", + "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-wsl": "nixos-wsl", + "nixpkgs": "nixpkgs_11", + "nixpkgs-ruby": "nixpkgs-ruby", + "nixpkgs-wayland": "nixpkgs-wayland", + "nvim-cmp": "nvim-cmp", + "nvim-lspconfig": "nvim-lspconfig", + "nvim-treesitter": "nvim-treesitter", + "ocaml-overlay": "ocaml-overlay", + "pup": "pup", + "pypi-deps-db": "pypi-deps-db", + "rust-overlay": "rust-overlay_3", + "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" + } + }, + "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": 1687885966, + "narHash": "sha256-pzi4sfi+cy8gcS4TmL8gnadxvgPj7+j+Z+5XfIwhWpA=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "7c8ae35648099189e550c873c0dae3a4ca6c50a9", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "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": 1687400833, + "narHash": "sha256-rVENiSupjAE8o1+ZXNRIqewUzM2brm+aeme8MUrwl0U=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "fc0a266e836c079a9131108f4334e5af219dbb93", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_3": { + "inputs": { + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "unstable" + ] + }, + "locked": { + "lastModified": 1687919622, + "narHash": "sha256-cJwMwVcx+3wW3QYPj5g/fwzrULRUYnGXH9TBv7JwBGk=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "fc57a011f1c20d2b24f75a79ab669430a221b220", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "staging": { + "locked": { + "lastModified": 1687932118, + "narHash": "sha256-Ngipna0X7hRgv/hqraPRFRvd65IvQ+WZHX+ASQB/2Vs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "96e18717904dfedcd884541e5a92bf9ff632cf39", + "rev": "b0a5a6b4131ef621027998d98ca2d86c9522e0fb", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-22.11", + "ref": "staging", "repo": "nixpkgs", "type": "github" } }, - "nmd": { + "statusline-action-hints-nvim": { "flake": false, "locked": { - "lastModified": 1666190571, - "narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=", - "owner": "rycee", - "repo": "nmd", - "rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169", - "type": "gitlab" + "lastModified": 1676294668, + "narHash": "sha256-jl7dO8m1bX6gveC1slsCIY+FSy6x9YGY3ece52MHz9s=", + "owner": "roobert", + "repo": "statusline-action-hints.nvim", + "rev": "1448e14fd014b709d003294cee308bcf6a26d5a9", + "type": "github" }, "original": { - "owner": "rycee", - "repo": "nmd", - "type": "gitlab" + "owner": "roobert", + "repo": "statusline-action-hints.nvim", + "type": "github" } }, - "nmd_2": { + "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_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" + } + }, + "talon": { + "inputs": { + "nixpkgs": [ + "unstable" + ], + "utils": [ + "flake-utils" + ] + }, + "locked": { + "lastModified": 1675344095, + "narHash": "sha256-g5kh5LzdOWCGCmC0G8xocSEbVn8PRRGPvK8bwu5EZOM=", + "owner": "nix-community", + "repo": "talon-nix", + "rev": "64390434de59a6382a1952eabe021705b0a72ec6", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "talon-nix", + "type": "github" + } + }, + "telescope-makefile": { "flake": false, "locked": { - "lastModified": 1666190571, - "narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=", - "owner": "rycee", - "repo": "nmd", - "rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169", - "type": "gitlab" + "lastModified": 1676029323, + "narHash": "sha256-RFrONpvOiOhvBlSJNxRhsZIQ2zQ9Xl2zr6yRkVU7HMQ=", + "owner": "ptethng", + "repo": "telescope-makefile", + "rev": "6e5b5767751dbf73ad4f126840dcf1abfc38e891", + "type": "github" }, "original": { - "owner": "rycee", - "repo": "nmd", - "type": "gitlab" + "owner": "ptethng", + "repo": "telescope-makefile", + "type": "github" } }, - "nmd_3": { + "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": 1687775667, + "narHash": "sha256-0e9t5ZUF+YN5GsKItqZk81ube8MZzhl0CgCegH49eBU=", + "owner": "BrianHicks", + "repo": "tree-grepper", + "rev": "d6383502d34c7397dfe948f2608e47cc34ea4dcd", + "type": "github" + }, + "original": { + "owner": "BrianHicks", + "repo": "tree-grepper", + "type": "github" + } + }, + "tree-sitter-c": { "flake": false, "locked": { - "lastModified": 1666190571, - "narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=", - "owner": "rycee", - "repo": "nmd", - "rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169", - "type": "gitlab" + "lastModified": 1659391371, + "narHash": "sha256-G9kVqX8walvpI7gPvPzS8g7X8RVM9y5wJHGOcyjJA/A=", + "owner": "tree-sitter", + "repo": "tree-sitter-c", + "rev": "7175a6dd5fc1cee660dce6fe23f6043d75af424a", + "type": "github" }, "original": { - "owner": "rycee", - "repo": "nmd", - "type": "gitlab" + "owner": "tree-sitter", + "repo": "tree-sitter-c", + "type": "github" } }, - "nmt": { + "tree-sitter-cpp": { "flake": false, "locked": { - "lastModified": 1648075362, - "narHash": "sha256-u36WgzoA84dMVsGXzml4wZ5ckGgfnvS0ryzo/3zn/Pc=", - "owner": "rycee", - "repo": "nmt", - "rev": "d83601002c99b78c89ea80e5e6ba21addcfe12ae", - "type": "gitlab" + "lastModified": 1659393295, + "narHash": "sha256-8xfns5jhHznvGsQZ3gWsEEobHvamuHxgO8hhd5BefZ4=", + "owner": "tree-sitter", + "repo": "tree-sitter-cpp", + "rev": "f40125503642845492d87fa56ece3ed26a4ef4db", + "type": "github" }, "original": { - "owner": "rycee", - "repo": "nmt", - "type": "gitlab" + "owner": "tree-sitter", + "repo": "tree-sitter-cpp", + "type": "github" } }, - "nmt_2": { + "tree-sitter-elixir": { "flake": false, "locked": { - "lastModified": 1648075362, - "narHash": "sha256-u36WgzoA84dMVsGXzml4wZ5ckGgfnvS0ryzo/3zn/Pc=", - "owner": "rycee", - "repo": "nmt", - "rev": "d83601002c99b78c89ea80e5e6ba21addcfe12ae", - "type": "gitlab" + "lastModified": 1659637723, + "narHash": "sha256-5nopPahI6VDxu9z2lKaXWMPZ+1EWYRM2S9k3cfRrxGM=", + "owner": "elixir-lang", + "repo": "tree-sitter-elixir", + "rev": "05e3631c6a0701c1fa518b0fee7be95a2ceef5e2", + "type": "github" }, "original": { - "owner": "rycee", - "repo": "nmt", - "type": "gitlab" + "owner": "elixir-lang", + "ref": "main", + "repo": "tree-sitter-elixir", + "type": "github" } }, - "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" + "tree-sitter-elm": { + "flake": false, + "locked": { + "lastModified": 1662202946, + "narHash": "sha256-WtR+XEYr0zqObBFS/4fzDQyFJCKcMK8j9YFGu5C8siw=", + "owner": "elm-tooling", + "repo": "tree-sitter-elm", + "rev": "cce0e5938e7779f86cf8bf445eadf7df4b88229d", + "type": "github" + }, + "original": { + "owner": "elm-tooling", + "ref": "main", + "repo": "tree-sitter-elm", + "type": "github" } }, - "teamspeak-update-notifier": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] + "tree-sitter-go": { + "flake": false, + "locked": { + "lastModified": 1670492714, + "narHash": "sha256-38pkqR9iEIEf9r3IHJPIYgKfWBlb9aQWi1kij04Vo5k=", + "owner": "tree-sitter", + "repo": "tree-sitter-go", + "rev": "64457ea6b73ef5422ed1687178d4545c3e91334a", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-go", + "type": "github" + } + }, + "tree-sitter-haskell": { + "flake": false, + "locked": { + "lastModified": 1662169786, + "narHash": "sha256-94zxdt3JjC3iki639taHYmRwQIzOlOM6H9C3sKnRj/o=", + "owner": "tree-sitter", + "repo": "tree-sitter-haskell", + "rev": "e30bdfd53eb28c73f26a68b77d436fd2140af167", + "type": "github" }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-haskell", + "type": "github" + } + }, + "tree-sitter-java": { + "flake": false, "locked": { - "lastModified": 1669936391, - "narHash": "sha256-KjsRHh7QSeMingJJ+nAm9s2demBrWc6+Zxu4x/4rq1A=", - "owner": "Gerschtli", - "repo": "teamspeak-update-notifier", - "rev": "cf307b24bca2fe0b2a3199bc944e1050fa62d9b3", + "lastModified": 1674849453, + "narHash": "sha256-JeQZ4TMpt6Lfbcfc6m/PzhFZEgTdouasJ3b1sPISy2s=", + "owner": "tree-sitter", + "repo": "tree-sitter-java", + "rev": "dd597f13eb9bab0c1bccc9aec390e8e6ebf9e0a6", "type": "github" }, "original": { - "owner": "Gerschtli", - "repo": "teamspeak-update-notifier", + "owner": "tree-sitter", + "repo": "tree-sitter-java", + "type": "github" + } + }, + "tree-sitter-javascript": { + "flake": false, + "locked": { + "lastModified": 1660825759, + "narHash": "sha256-uZW1L9ZE1YSZbwxiqSDiKycWv5mSRG4k4MlWFYoWRbw=", + "owner": "tree-sitter", + "repo": "tree-sitter-javascript", + "rev": "936d976a782e75395d9b1c8c7c7bf4ba6fe0d86b", + "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": 1652985475, + "narHash": "sha256-uTgSj4zz8WvzwIr7UO78F45nzVSjjitdtKY8GV4iL+w=", + "owner": "cstrahan", + "repo": "tree-sitter-nix", + "rev": "6b71a810c0acd49b980c50fc79092561f7cee307", + "type": "github" + }, + "original": { + "owner": "cstrahan", + "repo": "tree-sitter-nix", + "type": "github" + } + }, + "tree-sitter-php": { + "flake": false, + "locked": { + "lastModified": 1657967105, + "narHash": "sha256-wGGKAf8ZcYWEznkdSfKMwqcvXrMaE09WR4swZY1ucwY=", + "owner": "tree-sitter", + "repo": "tree-sitter-php", + "rev": "670d1eb6822d8c7ade1c71232e0bef42757b9da7", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-php", + "type": "github" + } + }, + "tree-sitter-python": { + "flake": false, + "locked": { + "lastModified": 1670432603, + "narHash": "sha256-D2++Xg7dRfjGM2r4cxaXGQnBOAX5JBREcEAJeNa7Y9M=", + "owner": "tree-sitter", + "repo": "tree-sitter-python", + "rev": "9e53981ec31b789ee26162ea335de71f02186003", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-python", + "type": "github" + } + }, + "tree-sitter-ruby": { + "flake": false, + "locked": { + "lastModified": 1662136138, + "narHash": "sha256-BjdgNxXoaZ+nYrszd8trL0Cu4hnQNZkSWejTThkAn0o=", + "owner": "tree-sitter", + "repo": "tree-sitter-ruby", + "rev": "656abef0645caea793e33c1c773570722463e1d8", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-ruby", + "type": "github" + } + }, + "tree-sitter-rust": { + "flake": false, + "locked": { + "lastModified": 1660820867, + "narHash": "sha256-v6ExAQxXIOeLfCjxbIhVEd7XBCkXHCiukRyrUqEBxIA=", + "owner": "tree-sitter", + "repo": "tree-sitter-rust", + "rev": "47b061c1e1ba3a7e9c2f450363a50e87de3f7c61", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-rust", + "type": "github" + } + }, + "tree-sitter-typescript": { + "flake": false, + "locked": { + "lastModified": 1661450839, + "narHash": "sha256-PSOfb96ROwjs8OUomwRuiCY2fNGzJ2EohQvW1+giLHg=", + "owner": "tree-sitter", + "repo": "tree-sitter-typescript", + "rev": "082da44a5263599186dadafd2c974c19f3a73d28", + "type": "github" + }, + "original": { + "owner": "tree-sitter", + "repo": "tree-sitter-typescript", "type": "github" } }, "unstable": { "locked": { - "lastModified": 1678237502, - "narHash": "sha256-J4cAbmC9RK+Jus3U88WaxkTsnNlZSroE2xZ9A0rSxL4=", + "lastModified": 1687886075, + "narHash": "sha256-PeayJDDDy+uw1Ats4moZnRdL1OFuZm1Tj+KiHlD67+o=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1eeea1f1922fb79a36008ba744310ccbf96130e2", + "rev": "a565059a348422af5af9026b5174dc5c0dcefdae", "type": "github" }, "original": { @@ -718,33 +2700,31 @@ "type": "github" } }, - "utils": { + "virtual-types-nvim": { + "flake": false, "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", - "type": "github" + "narHash": "sha256-OuWtzwyMABsVwPVRaVUYRJ4Riiqc5iYyUAJ1u87nX/M=", + "type": "tarball", + "url": "https://github.com/jubnzv/virtual-types.nvim/archive/9ef9f31c58cc9deb914ee728b8bda8f217f9d1c7.tar.gz" }, "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" + "type": "tarball", + "url": "https://github.com/jubnzv/virtual-types.nvim/archive/9ef9f31c58cc9deb914ee728b8bda8f217f9d1c7.tar.gz" } }, - "utils_2": { + "yt-dlp": { + "flake": false, "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "lastModified": 1687902602, + "narHash": "sha256-2ntzI8toXCSeIZ+YQ4xsdVLWXtYLUfr/qI21Cw/Ur3M=", + "owner": "yt-dlp", + "repo": "yt-dlp", + "rev": "a2be9781fbf4d7e4db245c277ca2ecc41cf3a7b2", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "yt-dlp", + "repo": "yt-dlp", "type": "github" } } diff --git a/flake.nix b/flake.nix index 58270212..01f2c997 100644 --- a/flake.nix +++ b/flake.nix @@ -2,52 +2,100 @@ 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"; - - # some commit containing mysql57 and php74 - nixpkgs-22-05.url = "github:NixOS/nixpkgs/695b3515251873e0a7e2021add4bba643c56cde3"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.05"; + unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; #/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.url = "github:NixOS/nixpkgs/master"; # "github:NixOS/nixpkgs/master"; + staging.url = "github:NixOS/nixpkgs/staging"; # "github:NixOS/nixpkgs/2acce7dfdcf382757e6fe219e04668e7a63bf48a"; home-manager = { - url = "github:nix-community/home-manager/release-22.11"; + url = "github:nix-community/home-manager/release-23.05"; inputs.nixpkgs.follows = "nixpkgs"; }; + + flake-compat = { + url = "github:edolstra/flake-compat"; + flake = false; + }; + nix-on-droid = { + # if all fails, stick to ../../release-22.05 again url = "github:t184256/nix-on-droid"; inputs.home-manager.follows = "home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; - 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"; + + 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"; + code-runner-nvim = { + flake = false; + url = "https://github.com/CRAG666/code_runner.nvim/archive/7cdeb206520c5afb2bd7655da981a9bcdc3f43f8.tar.gz"; }; - dwm = { - url = "github:Gerschtli/dwm"; - inputs.nixpkgs.follows = "nixpkgs"; + + fenix = { + url = "github:nix-community/fenix"; + inputs.nixpkgs.follows = "unstable"; }; - dwm-status = { - url = "github:Gerschtli/dwm-status"; - inputs.nixpkgs.follows = "nixpkgs"; + + alejandra = { + url = "github:kamadorueda/alejandra"; + # follows small }; - teamspeak-update-notifier = { - url = "github:Gerschtli/teamspeak-update-notifier"; - inputs.nixpkgs.follows = "nixpkgs"; + + telescope-makefile = { + flake = false; + url = "github:ptethng/telescope-makefile"; + }; + + markid = { + flake = false; + url = "github:David-Kunz/markid"; + }; + + fsread-nvim = { + flake = false; + url = "github:nullchilly/fsread.nvim"; + }; + + rust-overlay = { + url = "github:oxalica/rust-overlay"; + inputs.flake-utils.follows = "flake-utils"; + inputs.nixpkgs.follows = "unstable"; + }; + + nix-filter = { + url = "github:numtide/nix-filter"; + }; + + nvim-treesitter = { + flake = false; + url = "github:nvim-treesitter/nvim-treesitter"; + }; + + nvim-cmp = { + flake = false; + url = "github:hrsh7th/nvim-cmp"; }; nix-formatter-pack = { @@ -57,18 +105,152 @@ nixGL = { url = "github:guibou/nixGL"; - inputs.nixpkgs.follows = "nixpkgs"; + # follows nixpkgs (master) + }; + + # follows nixpkgs (master) + nix-index-database.url = "github:Mic92/nix-index-database"; + + duck-nvim = { + flake = false; + url = "github:tamton-aquib/duck.nvim"; + }; + + nvim-lspconfig = { + flake = false; + url = "github:neovim/nvim-lspconfig"; + }; + + deferred-clipboard-nvim = { + flake = false; + url = "github:EtiamNullam/deferred-clipboard.nvim"; + }; + + murmur-lua-nvim = { + url = "github:nyngwang/murmur.lua"; + flake = false; + }; + + filetype-nvim = { + url = "https://github.com/nathom/filetype.nvim/archive/b522628a45a17d58fc0073ffd64f9dc9530a8027.tar.gz"; + flake = false; }; - nix-index-database = { - url = "github:Mic92/nix-index-database"; + statusline-action-hints-nvim = { + url = "github:roobert/statusline-action-hints.nvim"; + flake = false; + }; + + nixos-wsl = { + url = "github:nix-community/NixOS-WSL"; inputs.nixpkgs.follows = "nixpkgs"; + inputs.flake-compat.follows = "flake-compat"; + inputs.flake-utils.follows = "flake-utils"; + }; + + # TODO Does using a fixed rev avoid rebuilds after each flake update ? + emacs-overlay = {#.url = "github:nix-community/emacs-overlay/ffab139d704bdec0c1d894f667c0fb9fe6261b80"; + url = "github:nix-community/emacs-overlay"; + #inputs.nixpkgs-stable.follows = "nixpkgs"; + #inputs.nixpkgs.follows = "unstable"; + #inputs.flake-utils.follows = "flake-utils"; + }; + + tree-grepper = { + url = "github:BrianHicks/tree-grepper"; + inputs.nixpkgs.follows = "unstable"; + inputs.flake-utils.follows = "flake-utils"; + }; + + # 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 = { + # url = "https://raw.githubusercontent.com/Open-App-Library/Sanemacs/master/sanemacs.el"; + # flake = false; + #}; + + devenv.url = "github:cachix/devenv"; + + # TODO Switch to https://github.com/frioux/pup or https://github.com/htmlparser/htmlparser, needs go fixes + pup = { + url = "github:ericchiang/pup/681d7bb639334bf485476f5872c5bdab10931f9a"; + flake = false; + }; + + yt-dlp = { + url = "github:yt-dlp/yt-dlp"; + flake = false; + }; + + nil = { + url = "github:oxalica/nil"; }; impermanence.url = "github:nix-community/impermanence"; + + talon = { + url = "github:nix-community/talon-nix"; + inputs.nixpkgs.follows = "unstable"; + inputs.utils.follows = "flake-utils"; + }; + + nixpkgs-wayland = { + url = "github:nix-community/nixpkgs-wayland"; + inputs.nixpkgs.follows = "unstable"; + }; + + flake-parts = { + url = "github:hercules-ci/flake-parts"; + inputs.nixpkgs-lib.follows = "unstable"; + }; + + nixified-ai = { + url = "github:nixified-ai/flake"; + inputs.nixpkgs.follows = "unstable"; + inputs.flake-parts.follows = "flake-parts"; + inputs.hercules-ci-effects.follows = "hercules-ci-effects"; + }; + + hercules-ci-effects = { + url = "github:hercules-ci/hercules-ci-effects"; + inputs.nixpkgs.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"; + #inputs.nixpkgs.follows = "unstable"; + inputs.flake-parts.follows = "flake-parts"; + }; }; - 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 +258,6 @@ inherit inputs rootPath forEachSystem; }; - cachixDeployLibFor = forEachSystem (system: cachix-deploy-flake.lib nixpkgs.legacyPackages.${system}); - formatterPackArgsFor = forEachSystem (system: { inherit nixpkgs system; checkFiles = [ self ]; @@ -93,85 +273,178 @@ }); inherit (nixpkgs.lib) listToAttrs; - inherit (flakeLib) mkApp mkDevShellJdk mkDevShellPhp mkHome mkNixOnDroid mkNixos; + inherit (flakeLib) mkApp mkHome mkNixOnDroid mkNixos mkDevenvJvmLang mkDevenvDeno mkDevenvFlutter mkDevenvRuby mkDevenvOcaml mkDevenvRust mkDevenvHaskell mkDevenvMachnix mkDevenvJulia mkDevenvJupyenv; 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 ]; - }) - - (mkApp system "setup" { - file = ./files/apps/setup.sh; - path = pkgs: with pkgs; [ coreutils curl git gnugrep hostname jq nix openssh ]; - envs._doNotClearPath = true; - }) - ]); + 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"; + }; + } + ) - checks = forEachSystem (system: { - nix-formatter-pack-check = nix-formatter-pack.lib.mkCheck formatterPackArgsFor.${system}; - }); + (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.unstable openssh ]; + envs._doNotClearPath = true; + }) + + ] + ); + + checks = forEachSystem (system: + let pkgs = nixpkgs.legacyPackages.${system}; in { + #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; }) - - (mkDevShellPhp system "php74" { phpVersion = "74"; }) - (mkDevShellPhp system "php80" { phpVersion = "80"; }) - (mkDevShellPhp system "php81" { phpVersion = "81"; }) + ({ + name = "nixd"; + value = inputs.nixd.devShells.${system}.default; + }) + ( + let + pkgs = import inputs.unstable { inherit system; }; + in + rec { + name = "playwright"; + value = inputs.devenv.lib.mkShell { + inherit inputs pkgs; + modules = [ + ({ pkgs, ... }: { + packages = with pkgs;[ nodejs playwright-test ]; + env.PLAYWRIGHT_BROWSERS_PATH = "${pkgs.playwright-driver.browsers}"; + enterShell = '' + # Remove playwright from node_modules, so it will be taken from playwright-test + rm node_modules/@playwright/ -R + ''; + }) + ]; + }; + } + ) + (mkDevenvJupyenv system "jupyenv" { }) + (mkDevenvJvmLang system "jvmlanguages-devenv" { }) + (mkDevenvDeno system "deno" { }) + (mkDevenvFlutter system "flutter" { }) + (mkDevenvOcaml system "ocaml" { }) + (mkDevenvRuby system "ruby" { }) + (mkDevenvRust system "rust" { }) + (mkDevenvHaskell system "haskell" { }) + #(mkDevenvMachnix system "machnix" { }) + #(mkDevenvJulia system "julia" { }) ]); 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; - }; - }; - - cachixDeployOutputHomeManager = 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") ]); + nixConfig = { + extra-substituters = [ + "https://cache.nixos.org" + "https://gerschtli.cachix.org" + "https://nix-on-droid.cachix.org" + "https://cache.iog.io" + # "https://srid.cachix.org" + "https://cachix.cachix.org" + "https://nix-community.cachix.org" + "https://niv.cachix.org" + "https://573-bc.cachix.org" + "https://tweag-jupyter.cachix.org" + "https://tree-grepper.cachix.org" + "https://coq.cachix.org" + "https://ai.cachix.org" + "https://nixpkgs-ruby.cachix.org" + #"https://anmonteiro.nix-cache.workers.dev" + "https://nixpkgs-wayland.cachix.org" + ]; + extra-trusted-public-keys = [ + "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" + "gerschtli.cachix.org-1:dWJ/WiIA3W2tTornS/2agax+OI0yQF8ZA2SFjU56vZ0=" + "nix-on-droid.cachix.org-1:56snoMJTXmDRC1Ei24CmKoUqvHJ9XCp+nidK7qkMQrU=" + "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" + # "srid.cachix.org-1:3clnql5gjbJNEvhA/WQp7nrZlBptwpXnUk6JAv8aB2M=" + "cachix.cachix.org-1:eWNHQldwUO7G2VkjpnjDbWwy4KQ/HNxht7H4SSoMckM=" + "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + "niv.cachix.org-1:X32PCg2e/zAm3/uD1ScqW2z/K0LtDyNV7RdaxIuLgQM=" + "573-bc.cachix.org-1:2XtNmCSdhLggQe4UTa4i3FSDIbYWx/m1gsBOxS6heJs=" + "tweag-jupyter.cachix.org-1:UtNH4Zs6hVUFpFBTLaA4ejYavPo5EFFqgd7G7FxGW9g=" + "tree-grepper.cachix.org-1:Tm/owXM+dl3GnT8gZg+GTI3AW+yX1XFVYXspZa7ejHg=" + "coq.cachix.org-1:5QW/wwEnD+l2jvN6QRbRRsa4hBHG3QiQQ26cxu1F5tI=" + "ai.cachix.org-1:N9dzRK+alWwoKXQlnn0H6aUx0lU/mspIoz8hMvGvbbc=" + "nixpkgs-ruby.cachix.org-1:vrcdi50fTolOxWCZZkw0jakOnUI1T19oYJ+PRYdK4SM=" + #"ocaml.nix-cache.com-1:/xI2h2+56rwFfKyyFVbkJSeGqSIYMC/Je+7XXqGKDIY=" + "nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA=" + ]; }; } 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..64243794 --- /dev/null +++ b/flake/builders/mkDevenvHaskell.nix @@ -0,0 +1,20 @@ +{ system, pkgsFor, inputs, name, args, ... }: + +let + pkgs = pkgsFor.${system}; +in + +inputs.devenv.lib.mkShell { + inherit inputs pkgs; + modules = [ + ({ pkgs, ... }: + { + languages.haskell = { + enable = true; + package = (pkgs.haskell.packages.ghc902.ghcWithPackages (pset: with pset; [ zlib hledger ])); + }; + + #packages = [ pkgs.haskellPackages.mtl ]; + }) + ]; +} 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..689f60d0 --- /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..f246a47f --- /dev/null +++ b/flake/builders/mkDevenvOcaml.nix @@ -0,0 +1,34 @@ +{ system, pkgsFor, inputs, name, args, ... }: + +let + pkgs = pkgsFor.${system}; +in + +inputs.devenv.lib.mkShell { + inherit inputs pkgs; + modules = [ + ({ pkgs, ... }: + #let + #ocamlPackagesFlambda = pkgs.ocamlPackages.overrideScope' (self: super: { + # ocaml = super.ocaml.override { flambdaSupport = true; }; + #}); + #in + { + languages.ocaml.enable = true; + #languages.ocaml.packages = ocamlPackagesFlambda; + packages = [ + # 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 + ]; + }) + ]; +} diff --git a/flake/builders/mkDevenvRuby.nix b/flake/builders/mkDevenvRuby.nix new file mode 100644 index 00000000..6ed7d72d --- /dev/null +++ b/flake/builders/mkDevenvRuby.nix @@ -0,0 +1,15 @@ +{ system, pkgsFor, inputs, name, args, ... }: + +let + pkgs = pkgsFor.${system}; +in + +inputs.devenv.lib.mkShell { + inherit inputs pkgs; + modules = [ + ({ pkgs, ... }: { + languages.ruby.enable = true; + languages.ruby.package = inputs.nixpkgs-ruby.packages.${pkgs.system}."ruby-2.7"; + }) + ]; +} diff --git a/flake/builders/mkDevenvRust.nix b/flake/builders/mkDevenvRust.nix new file mode 100644 index 00000000..53e57710 --- /dev/null +++ b/flake/builders/mkDevenvRust.nix @@ -0,0 +1,29 @@ +{ 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/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..6e8ed629 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,14 @@ 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; + 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..0eb20a3d 100644 --- a/flake/nixpkgs.nix +++ b/flake/nixpkgs.nix @@ -1,75 +1,564 @@ -{ inputs, system, nixOnDroid ? false }: - +{ inputs +, rootPath +, system +, nixOnDroid ? false +, +}: let config = { allowAliases = false; allowUnfree = 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 rootPath; - # pin 22.05 release for removed packages - inherit (nixpkgs-22-05) - mysql57 - php74 - php74Extensions - php74Packages + unstable = import inputs.unstable { inherit config system; }; + latest = import inputs.latest { inherit config system; }; + # staging = import inputs.staging { inherit config system; }; + + # 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 + ]) + /*++ [ + inputs.tree-grepper.overlay."${system}" # https://github.com/bnjmnt4n/system/blob/28a560b/flake.nix#L55 (fixes error lib/fixed-points.nix:76:22:) + ]*/ ; + in + { + inherit + (unstable) + alejandra + rnix-lsp + manix + lolcat + fd + deadnix + statix + nixfmt + lua-language-server + texlab + ##deno # long rebuild needed in unstable so taking release-version + + stylua + nnn + ##sqlite # long rebuild needed in unstable so taking release-version + + nodejs_latest# long rebuild needed in unstable so taking release-version + yarn# long rebuild needed in unstable so taking release-version + + #broot + + chafa + ripgrep + ##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 + /* + * yt-dlp + */ + 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 nushell sd openssh tailscale; + + inherit (latest.xorg) libxcvt; + + inherit (latest.python311Packages) bpython; + + talon = inputs.talon.packages.${system}.default; + + nixd = inputs.nixd.packages.${system}.default; + + 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="; + }); + }; + }; + */ + + yt-dlp = + prev.yt-dlp.overrideAttrs + (_: { src = inputs.yt-dlp; }); + + pup = + let + inherit (unstable) pup; + in + pup.overrideAttrs + (_: { src = inputs.pup; }); + + nodePackages = + prev.nodePackages + // { + inherit + (latest.nodePackages) + bash-language-server + vim-language-server + typescript + typescript-language-server + vscode-json-languageserver-bin + yaml-language-server + ; + }; + + gradle-vscode-extension = + prev.vscode-extensions.vscjava + // { + inherit + (latest.vscode-extensions.vscjava) + vscode-gradle + ; + }; + + vimPlugins = + prev.vimPlugins + // { + inherit + (latest.vimPlugins) + nvim-lspconfig + nix-develop-nvim + ; + inherit + (latest.vimPlugins) + 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 + ; + }; + + 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 + ; + }; + + #nvim-lspconfig = prev.vimUtils.buildVimPluginFrom2Nix { + # pname = "nvim-lspconfig"; + # version = "2023-06-03"; + # src = inputs.nvim-lspconfig; + #}; + + telescope-makefile = prev.vimUtils.buildVimPlugin { + name = "telescope-makefile"; + src = inputs.telescope-makefile; + }; + markid = prev.vimUtils.buildVimPlugin { + name = "markid"; + src = inputs.markid; + }; + virtual-types-nvim = prev.vimUtils.buildVimPlugin { + name = "virtual-types.nvim"; + src = inputs.virtual-types-nvim; + }; + code-runner-nvim = prev.vimUtils.buildVimPlugin { + name = "code_runner.nvim"; + src = inputs.code-runner-nvim; + }; + fsread-nvim = prev.vimUtils.buildVimPlugin { + name = "fsread.nvim"; + src = inputs.fsread-nvim; + }; + duck-nvim = prev.vimUtils.buildVimPlugin { + name = "duck.nvim"; + src = inputs.duck-nvim; + }; + deferred-clipboard-nvim = prev.vimUtils.buildVimPlugin { + name = "deferred-clipboard.nvim"; + src = inputs.deferred-clipboard-nvim; + }; + + statusline-action-hints-nvim = prev.vimUtils.buildVimPlugin { + name = "statusline-action-hints.nvim"; + src = inputs.statusline-action-hints-nvim; + }; + + murmur-lua-nvim = prev.vimUtils.buildVimPlugin { + name = "murmur.lua"; + src = inputs.murmur-lua-nvim; + }; + + filetype-nvim = prev.vimUtils.buildVimPluginFrom2Nix { + pname = "filetype.nvim"; + src = inputs.filetype-nvim; + version = "2022.06"; + meta.homepage = "https://github.com/nathom/filetype.nvim/"; + }; + + + vscode-extensions-new = + (final.vscode-extensions.vscjava).overrideAttrs + (_: { vscode-gradle = latest.vscode-extensions.vscjava.vscode-gradle; }); + + nvim-treesitter-full-latest = + latest.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 + python + ] + ); + + 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; }); + + ghcWithHoogle = final.haskellPackages.ghcWithHoogle (haskellPackages: + with haskellPackages; [ + # libraries + arrows + async + cgi + criterion + # tools + cabal-install + haskintex + haskell-language-server + ]); + + # inherit (inputs.neovim-nightly-overlay.packages.${pkgs.stdenv.hostPlatform.system}) neovim; # see staging PR note + + + 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" + */ + 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 + (final) + tree-grepper + /* + talon # getting error: attribute 'pango' missing gnome2.pango + */ + ; + + #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 and https://github.com/nix-community/emacs-overlay/commit/94c7550ae2155ebd04a7527b3a200deafece86dc + inherit (inputs.emacs-overlay.lib.${system}) emacsWithPackagesFromUsePackage; + inherit (inputs.emacs-overlay.packages.${system}) emacs-git-nox; + inherit rootPath; + destination = "/share/emacs/site-lisp/default.el"; + my-default-el = final.runCommand "default.el" { text = builtins.readFile "${rootPath}/home/misc/emacs.el"; inherit destination; } '' + target=$out$destination + mkdir -p "$(dirname "$target")" + echo -n "$text" > "$target" + ''; + in + emacsWithPackagesFromUsePackage { + package = emacs-git-nox; + config = "${my-default-el}${destination}"; + defaultInitFile = my-default-el; + alwaysEnsure = true; +# override = epkgs: epkgs // { inherit my-default-el; }; + extraEmacsPackages = epkgs: + with epkgs; [ +# my-default-el + vterm + treesit-grammars.with-all-grammars + use-package + moe-theme + deft + zetteldeft + company-emoji + org + org-contrib + visual-fill-column + org-bullets + ]; + }; + + 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" ]; + }; - gerschtli = prev.lib.composeManyExtensions gerschtliOverlays final prev; + 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) [ + 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}" + #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..2235ffe3 100644 --- a/home/base/desktop.nix +++ b/home/base/desktop.nix @@ -47,35 +47,18 @@ in custom = { development.direnv.enable = true; - programs = { - atom.enable = true; - idea-ultimate.enable = true; - - pass = mkIf cfg.private { - enable = true; - browserpass = true; - }; - - ssh.modules = [ "private" ]; - tmux.urlview = true; - }; + programs = { }; }; home.packages = with pkgs; [ chrome - gh gimp libreoffice - nomacs pdftk - postman qpdfview spotify sshfs ] ++ (optionals cfg.private [ - audacity - musescore - thunderbird ]); }; diff --git a/home/base/general.nix b/home/base/general.nix index 4afdb65b..4834f1d4 100644 --- a/home/base/general.nix +++ b/home/base/general.nix @@ -1,74 +1,54 @@ { config, lib, pkgs, ... }: - +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"; minimal = mkEnableOption "minimal config"; }; - }; - ###### implementation config = mkIf cfg.enable (mkMerge [ - { custom.programs = { - bash.enable = true; + # 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; [ 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 @@ -100,13 +80,13 @@ in "--tabs=4" ]; PAGER = "${pkgs.less}/bin/less"; + EDITOR = "vim"; + SHELL = "bash"; }; - stateVersion = "22.11"; + stateVersion = "23.05"; }; - programs.fzf.enable = true; - # FIXME: set to sd-switch once it works for krypton systemd.user.startServices = "legacy"; } @@ -115,20 +95,18 @@ in custom = { misc.util-bins.enable = true; + # see ./home/programs programs = { - git.enable = true; + nix-index.enable = true; nnn.enable = true; - rsync.enable = true; - ssh = { - enable = true; - modules = [ "vcs" ]; - }; }; }; - programs.home-manager.enable = true; + programs = { + fzf.enable = true; + home-manager.enable = true; + git.enable = true; + }; }) - ]); - } diff --git a/home/base/non-nixos.nix b/home/base/non-nixos.nix index 106dfbf0..f48a5bee 100644 --- a/home/base/non-nixos.nix +++ b/home/base/non-nixos.nix @@ -71,7 +71,6 @@ in ''; targets.genericLinux.enable = true; - }; } diff --git a/home/development/direnv/default.nix b/home/development/direnv/default.nix index 9c2174ef..ab131955 100644 --- a/home/development/direnv/default.nix +++ b/home/development/direnv/default.nix @@ -59,25 +59,6 @@ in } ''; }; - - 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/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/backup/default.nix b/home/misc/backup/default.nix deleted file mode 100644 index e0940b6c..00000000 --- a/home/misc/backup/default.nix +++ /dev/null @@ -1,80 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - mkOption - types - ; - - cfg = config.custom.misc.backup; - - rsyncOptions = [ - "--compress" - "--cvs-exclude" - "--delete" - "--devices" - "--group" - "--hard-links" - "--human-readable" - "--itemize-changes" - "--links" - "--owner" - "--perms" - "--progress" - "--prune-empty-dirs" - "--recursive" - "--specials" - "--times" - "--update" - "--whole-file" - ]; -in - -{ - - ###### interface - - options = { - - custom.misc.backup = { - enable = mkEnableOption "script to run backups"; - - directories = mkOption { - type = types.listOf types.str; - default = [ ]; - example = [ "~/Documents/program" ]; - description = '' - List of directories to backup. - ''; - }; - }; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom.programs = { - rsync.enable = true; - ssh.modules = [ "private" ]; - }; - - home.packages = [ - (config.lib.custom.mkScript - "local-backup" - ./local-backup.sh - [ pkgs.openssh pkgs.rsync ] - { - inherit (cfg) directories; - inherit rsyncOptions; - } - ) - ]; - - }; - -} diff --git a/home/misc/backup/local-backup.sh b/home/misc/backup/local-backup.sh deleted file mode 100644 index 9467b3b0..00000000 --- a/home/misc/backup/local-backup.sh +++ /dev/null @@ -1,42 +0,0 @@ -source @bashLib@ - -base_dir="/storage/documents" -directories=(@directories@) - -_sync() { - local command="${1}" - - echo - for dir in "${directories[@]}"; do - echo "========== ${dir} ==========" - echo - - if [[ -z ${restore} ]]; then - ${command} "${dir}" "${hostname}:${base_dir}" - else - ${command} "${hostname}:${base_dir}/$(basename "${dir}")" "$(dirname "${dir}")" - fi - - echo - done -} - -command="rsync @rsyncOptions@" - -if _read_boolean "Connect to xenon via local ip?" Y; then - hostname=private.local.xenon -else - hostname=private.xenon -fi - -if _read_boolean "Do you want to backup your data?" Y; then - restore= -else - restore=1 -fi - -_sync "${command} --dry-run" - -if _read_boolean "This was a dry run, do you want to start the sync?" N; then - _sync "${command}" -fi diff --git a/home/misc/cachix-agent.nix b/home/misc/cachix-agent.nix deleted file mode 100644 index 064f8fc4..00000000 --- a/home/misc/cachix-agent.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ config, lib, pkgs, rootPath, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - mkOption - types - ; - - cfg = config.custom.cachix-agent; -in - -{ - - ###### interface - - options = { - - custom.cachix-agent = { - - enable = mkEnableOption "cachix-agent"; - - hostName = mkOption { - type = types.str; - description = "Host name for cachix agent"; - }; - - }; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - 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; - }; - - }; - -} 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/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..7ca3dccd --- /dev/null +++ b/home/misc/emacs.el @@ -0,0 +1,165 @@ +;; 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 + + ;; 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)) + + (setq initial-major-mode 'fundamental-mode + initial-scratch-message nil + inhibit-startup-message t) + + ;; Set up fonts early. + (set-face-attribute 'default + nil + :height 80 + :family "Fantasque Sans Mono") + (set-face-attribute 'variable-pitch + nil + :family "DejaVu Sans") + + +(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) + :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. +) + +(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)) + +;; 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) + (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://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) + + +;; TODO how to create a dynamic headline (rendered only) line in emacs + +(deft) diff --git a/home/misc/emacs.elc b/home/misc/emacs.elc new file mode 100644 index 0000000000000000000000000000000000000000..f317b6f298a79bbbdc4448ae8dd5959440ba98e3 GIT binary patch literal 8391 zcmc&)TW=KE5gu%afE5Hnb~j3v=(r6@52#IF<^qOn0^`YwgtZYySy+#WdZy3JH16ph zx_j(3Sw(q@6y-hSVV|OCU-OhGZ}~6$l6+OCdu|?ky<*~6>dTyKojUb>Rj1l_>yK(5 z6$*v(ckkX6wW!zk1L^S(KNR(z+e*Z)j1xZ!g?)R)=9)b}?Fu&tMAT3Hp8wiSQJt)u z$DiKZPo>d{JSnt>V^(lg&o;D64aYKZSxXI@Uu==RIG0ge`W|j&aRv9v_i?MfkDK$s z4;qe*UbaO=c-pueTqRuPpL|D+z%4Kjx1gHpwT5k0HL(>$u4nXJ$m)k(zv-t&lDcs^ z=o?8ZmNG=KpZacKGzaarjEz<|@>}viV~KLZjiqb!WRkcYYN7h|+?P>o^k}hp5k_{? zR(IGmk*|!lAEYuC%UgE2%385bK`mH}>0pIsX>oCJx!ABP70B)UJQF?_xz%;Ujvsc6 z9*^s}sVlT7?ijWSP2SN&=m#PdNg59uZHwEOCTxUyI~31~+O~-0tAQU&(RW)rw1Dhs zWK#RDC5BkuGFduk+@yVC9d=}zsYhrx)?_=qf#K|JF-V}WAcAB@==P*&4?+*mFoil< zAtY9U&TY3P4L5~&%|R-KC)@5INX2Sb`kihnZkuAY?e_d&UueH{(LH%JkYdvf6Y*&j zMw-}lW8ZBC(&+optI*cuOZPVeZlN96s%(R{MYVWd$5iM{lEMgh-G;H}#v$}%VzFhb zG+Hk0$7$M-GfUTKOK_DJaH}k5dT2*6Hb7|ClUvu5RdGGhgw_ID+;HEJz38Q{2^q&^ z4a!DfYP2E3^OJty?&lMaOCwgf$HZ>^y8isLjVEiO{^SYv4U3qBlV#l~Kq@vJ7E^z+Spr!B zSutK=3Ad_n_Or=C8^5~P)^vgD{gvB=g|$;O zYEn3bX9=QJDvLDy?=XZz8nDkSKA?3|x#KvvVLS|il~yXJS+s_2o0)X#l?BABrDVig zg~fC-F)8-WT&ct zT5VuIO3)JRHn}%)0$^ani$W>r2f?)MCMj^@MMfe6*&@fxbzHO~_xGaMV@^&E6er{4 zG^9$4+YzP11NEmssX))BKS!wRy7qKqZ39FAhLD{&f^QL8EIpL$DYwy#02cbvZLHU)+R@nHk`6@z2M7M_{==sa*FTx+6UA`G@?h&H^{4gCX+fGXdAONk*Y2;^ z>W?1P*QUllTBgm7PwQ*v8szx(-#Tw+{BtG^Qt9 zMRQFIPb$(kcw`=mHKEt0rO1}6M@rmcap+;1WSV`kZ2e5D87;B-xTe94MLP&Ffi^Wq$P7pOIa0S85+?Zu+`I!4Uv4zXLciZC5b{30>(L~$A zGLMc+?774xy+|5qSN6bKClH`kEHV(YYF*Cu0Z|6_nmw3`D?Y@ABSsm86$zB1cxUWPQ2qqd!do~X&?{QlXpI(DkgtD)r-ze zttg1%DR(;=5%ckux0WaLAOlWut8}KzqVeG>wE4y1y0uak)=CMNgUiNc(gk8YSYze2 z`Sb8rMbX-K!y&UCGj@08f)Ri=JrQ`=)&+tG5fL9T$8d3lOqD2)gIc2JDr}o0LJIa~ znW;k#BQ0nn^pEb{%Al$pAcu!&JDFC|5#rTYQkLUIMO6%xzh~6|hUk z0^kbtnc+$S`D)?fM<|6S$tA{-5@!wWgCetJ5JD+$lcAXMH>d}-+YXRSZp1EKyo!6d zhFfLfG}p~K5!7~0k&oIf%*!m11KWBSZ)KEd}X#qPFsAPrGBQhkdG>Z3?TJd9m zyw@)0EK(I*BR59b4#Q0{%yLIM>LaH#=z#|I4MeQ+i|IgFr<4tX57IrSN3`GH>PbI* zEz?v6I|$k-2t|IO(a^UV;koTbl#%Ym&)E`-jslTx0+P^;;7m^f)+1%?VmZW#W#`L?MGT zGS^wSB~&-vrVMZv=kVMJa84W`)2dF{s*e5js6y8zW!EXA)u&TQS0bUlB2pYLD0iv{ z#OYzE03 zO)TtHyT}*hO2}v%xwi4r1M(j;IIheE{Y-9yAdo3i^CtrPyK{#j>`XoIL3?y=Vme<_2uTLy7u7)1>-Q5sfee5Dr}~Kcjbt`CjG}?@vUk8g4a3a?H$ zFWONEJw~k^gTnDFo3BC)<~1bFUx*uYgfMV`C?ff&n?mo$QO8m-1${V+@Ra~(6#6ir zt8dCp{0ix_sIZ_NRff-M^h`a>Q!AN=Or27mK)HaI*H1*^RJrld5uk+^w* ehc6lUr-C$geGp{F*z5YKOz=%t9nJUy-+uuU@Z+5T literal 0 HcmV?d00001 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/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 deleted file mode 100644 index 86d1e2c6..00000000 --- a/home/misc/sdks.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mapAttrs' - mkEnableOption - mkIf - mkOption - nameValuePair - types - ; - - cfg = config.custom.misc.sdks; - - sdksDirectory = "${config.home.homeDirectory}/.sdks"; -in - -{ - - ###### interface - - options = { - - custom.misc.sdks = { - enable = mkEnableOption "sdk links"; - - links = mkOption { - type = types.attrs; - default = { }; - example = { "link-name" = pkgs.python3; }; - description = '' - Links to generate in ~/.sdks directory. - ''; - }; - }; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - home.file = mapAttrs' - (name: package: nameValuePair "${sdksDirectory}/${name}" { source = package; }) - cfg.links; - - }; - -} 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/system-update.sh b/home/misc/util-bins/system-update.sh index 3c9e7295..63873de7 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 diff --git a/home/misc/work.nix b/home/misc/work.nix deleted file mode 100644 index b313d870..00000000 --- a/home/misc/work.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - mkOption - types - ; - - cfg = config.custom.misc.work; -in - -{ - - ###### interface - - options = { - - custom.misc.work = { - enable = mkEnableOption "work related config"; - - directory = mkOption { - type = types.nullOr types.string; - default = null; - description = '' - Directory in ~/projects where git projects are saved. - ''; - }; - - mailAddress = mkOption { - type = types.nullOr types.string; - default = null; - description = '' - Work related mail address (used for git config). - ''; - }; - }; - - }; - - - ###### implementation - - config = { - - assertions = [ - { - assertion = cfg.enable -> cfg.directory != null && cfg.mailAddress != null; - message = "You need to set directory and mailAddress when work module is enabled."; - } - ]; - - custom.misc.work.enable = mkIf (cfg.directory != null || cfg.mailAddress != null) true; - - }; - -} diff --git a/home/programs/alacritty.nix b/home/programs/alacritty.nix deleted file mode 100644 index 48cc5c8c..00000000 --- a/home/programs/alacritty.nix +++ /dev/null @@ -1,74 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - ; - - cfg = config.custom.programs.alacritty; -in - -{ - - ###### interface - - options = { - - custom.programs.alacritty.enable = mkEnableOption "alacritty config"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - programs.alacritty = { - enable = true; - - settings = { - env.TERM = "screen-256color"; - - font = { - normal.family = "UbuntuMono Nerd Font"; - bold.family = "UbuntuMono Nerd Font"; - italic.family = "UbuntuMono Nerd Font"; - bold_italic.family = "UbuntuMono Nerd Font"; - size = 9; - }; - - colors = { - primary = { - background = "#000000"; - foreground = "#ffffff"; - }; - - normal = { - black = "#000000"; - red = "#cd0000"; - green = "#00cd00"; - yellow = "#cdcd00"; - blue = "#6d68ff"; - magenta = "#cd00cd"; - cyan = "#00cdcd"; - white = "#e5e5e5"; - }; - - bright = { - black = "#7f7f7f"; - red = "#ff0000"; - green = "#00ff00"; - yellow = "#ffff00"; - blue = "#8d88ff"; - magenta = "#ff00ff"; - cyan = "#00ffff"; - white = "#ffffff"; - }; - }; - }; - }; - - }; - -} 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/git/age-textconv.sh b/home/programs/git/age-textconv.sh deleted file mode 100644 index 9aed046a..00000000 --- a/home/programs/git/age-textconv.sh +++ /dev/null @@ -1,3 +0,0 @@ -FILE="${1:-}" - -age --identity "${HOME}/.age/key.txt" --decrypt "${FILE}" 2> /dev/null || echo "encrypted content (something random: ${RANDOM})" diff --git a/home/programs/git/default.nix b/home/programs/git/default.nix deleted file mode 100644 index e1b4f5d2..00000000 --- a/home/programs/git/default.nix +++ /dev/null @@ -1,392 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (builtins) - readDir - ; - inherit (lib) - attrNames - concatStringsSep - filesystem - mkEnableOption - mkIf - optionals - readFile - removeSuffix - ; - - cfg = config.custom.programs.git; - - externGitAlias = alias: "!${alias}"; - - ignoreList = map - readFile - (filesystem.listFilesRecursive ./gitignores); - - commitMsgTemplate = prefix: '' - ${prefix} - # (If applied, this commit will...) (Max 50 char) - # |<---- Using a Maximum Of 50 Characters ---->| - - - # Explain why this change is being made - # |<---- Try To Limit Each Line to a Maximum Of 72 Characters ---->| - - - # Provide links or keys to any relevant tickets, articles or other resources - # Example: Github issue #23 - - ''; - - extractName = path: removeSuffix ".sh" (baseNameOf path); - hooksPathPackages = with pkgs; [ - findutils - git - gnugrep - gnused - nix - openssh - ]; - - hooksIncludes = map - (filename: - let file = ./includes + "/${filename}"; in - config.lib.custom.mkScriptPlain - "hooks-include-${extractName file}" - file - hooksPathPackages - { hooksLib = ./lib.hooks.sh; } - ) - (attrNames (readDir ./includes)); - - hooksPath = pkgs.linkFarm "git-hooks" ( - map - (file: - let name = extractName file; in - { - inherit name; - path = config.lib.custom.mkScriptPlain - "hooks-${name}" - file - hooksPathPackages - { hooksLib = ./lib.hooks.sh; includes = hooksIncludes; }; - }) - ([ - ./post-checkout.sh - ./post-commit.sh - ./post-merge.sh - ./post-rewrite.sh - ./pre-commit.sh - ./pre-push.sh - ] ++ optionals config.custom.misc.work.enable [ - ./prepare-commit-msg.sh - ]) - ); - - writeFile = name: content: toString (pkgs.writeText name content); -in - -{ - - ###### interface - - options = { - - custom.programs.git.enable = mkEnableOption "git config"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - home.packages = [ - pkgs.git-absorb - pkgs.tig - ( - config.lib.custom.mkScript - "git-initial-commit" - ./git-initial-commit.sh - [ pkgs.coreutils pkgs.git ] - { } - ) - ]; - - programs.git = { - enable = true; - - userName = "Tobias Happ"; - userEmail = "tobias.happ@gmx.de"; - - ignores = ignoreList; - - aliases = { - ad = "add --all --ignore-errors --"; - ba = "branch -a --verbose"; - bc = "switch --create"; - bd = "branch --verbose --delete"; - bdd = "branch --verbose -D"; - ca = "commit -q --branch --status --verbose --amend"; - cl = externGitAlias "git clone --recursive --progress"; - cm = "commit --branch --status --verbose"; - cn = externGitAlias ''git reflog expire --all && git fsck --unreachable --full && git prune && \ - git gc --aggressive --quiet && git repack -Adq && git prune-packed --quiet''; - df = "diff"; - di = "diff --ignore-all-space"; - ds = "diff --staged"; - dsi = "diff --staged --ignore-all-space"; - fe = "fetch --progress"; - fm = externGitAlias "git fe --all && git fe --all --tags"; - lg = "log --stat"; - lp = "log -10 --patch-with-stat"; - ma = "merge --abort"; - me = "merge --stat --summary"; - mm = externGitAlias "git me origin/$(git branch-name)"; - pd = "push --no-verify --delete --progress origin"; - pf = externGitAlias "git ph --force-with-lease origin $(git branch-name)"; - pnf = externGitAlias "git pf --no-verify"; - ph = "push --progress --tags --set-upstream"; - pu = externGitAlias "for i in $(git remote); do git ph $i $(git branch-name); done"; - pn = externGitAlias "for i in $(git remote); do git ph --no-verify $i $(git branch-name); done"; - ra = "rebase --abort"; - rc = "rebase --continue"; - re = "reset"; - rh = "reset --hard"; - ri = "rebase --interactive"; - rp = "rebase --skip"; - rs = "reset --soft"; - rt = "restore"; - rv = "remote --verbose"; - sa = "stash push"; - sau = "stash push --include-untracked"; - sc = "stash clear"; - sl = "stash list"; - so = "stash pop"; - sp = "stash show --patch"; - st = "status"; - sw = "switch"; - sd = "switch --detach"; - tl = "tag --list -n"; - - mma = "merge origin/master"; - rde = "rebase origin/develop"; - rma = "rebase origin/master"; - rup = "rebase upstream/master"; - sde = externGitAlias "git switch develop && git rebase origin/develop"; - sma = externGitAlias "git switch master && git rebase origin/master"; - - aliases = ''config --get-regexp "^alias"''; - - bclean = externGitAlias ''git for-each-ref --format "%(refname:short)" refs/heads | - ${pkgs.gnugrep}/bin/grep -Ev "master|$(git branch-name)" | ${pkgs.findutils}/bin/xargs git bd''; - - branch-name = externGitAlias ''git for-each-ref --format="%(refname:short)" $(git symbolic-ref HEAD)''; - total-clean = externGitAlias "git co -f && git clean -dfx && git clean -dfX"; - - disable-upstream-push = "remote set-url upstream --push DISABLED"; - set-upstream = externGitAlias "git branch --set-upstream-to=origin/$(git branch-name) $(git branch-name)"; - }; - - extraConfig = { - add.ignore-errors = true; - - advice = { - detachedHead = false; - pushNonFastForward = false; - statusHints = false; - }; - - apply = { - ignorewhitespace = "change"; - whitespace = "nowarn"; - }; - - branch = { - autoSetupMerge = "always"; - autoSetupRebase = "always"; - }; - - clean.requireForce = true; - - color = { - branch = { - current = "green normal bold"; - local = "yellow normal bold"; - plain = "white normal bold"; - remote = "red normal bold"; - }; - - diff = "auto"; - grep = "auto"; - interactive = "auto"; - showbranch = "auto"; - - status = { - added = "green normal bold"; - updated = "green normal bold"; - changed = "yellow normal bold"; - nobranch = "red white blink"; - untracked = "red normal bold"; - }; - }; - - commit = { - status = true; - template = writeFile "commit.msg" (commitMsgTemplate ""); - }; - - core = { - compression = 9; - eol = "lf"; - editor = "${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 - preloadindex = true; - }; - - credential.helper = "cache"; - - diff = { - mnemonicprefix = true; - renames = "copies"; - tool = "nvim"; - - age.textconv = toString ( - config.lib.custom.mkScriptPlain - "age-textconv" - ./age-textconv.sh - [ pkgs.age ] - { HOME = config.home.homeDirectory; } - ); - - gpg.textconv = "${pkgs.gnupg}/bin/gpg --use-agent -q --batch --decrypt"; - }; - - difftool = { - prompt = true; - - nvim.cmd = "${config.custom.programs.neovim.finalPackage}/bin/nvim -d \"$LOCAL\" \"$REMOTE\""; - }; - - fetch = { - prune = true; - recurseSubmodules = true; - }; - - grep.lineNumber = true; - - help = { - autocorrect = 0; - format = "man"; - }; - - i18n.logOutputEncoding = "utf8"; - - init.defaultBranch = "master"; - - interactive.singlekey = false; - - log.date = "iso"; - - merge = { - log = true; - tool = "nvim"; - verbosity = 5; - }; - - mergetool = { - keepBackup = false; - prompt = true; - writeToTemp = true; - - nvim.cmd = "${config.custom.programs.neovim.finalPackage}/bin/nvim -d \"$LOCAL\" \"$REMOTE\" \"$MERGED\" -c 'wincmd w' -c 'wincmd J'"; - }; - - pack.compression = 9; - - pretty.graph = "format:%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset"; - - pull.ff = "only"; - - rebase = { - autoSquash = true; - autoStash = true; - stat = true; - updateRefs = true; - }; - - rerere.enabled = 1; - - status = { - relativePaths = false; - showUntrackedFiles = "all"; - }; - - tag.sort = "version:refname"; # sort alpha-numerically - - tig = { - commit-order = "topo"; - horizontal-scroll = "95%"; - ignore-case = "yes"; - line-graphics = "utf-8"; - mouse = "yes"; - mouse-scroll = 5; - refresh-interval = 300; - refresh-mode = "periodic"; - split-view-height = "75%"; - tab-size = 4; - vertical-split = false; - - # View settings - main-view = "line-number:yes,interval=5 id:no date:default author:full,width=15 commit-title:yes,graph=yes,refs=yes,overflow=no"; - blame-view = "line-number:yes,interval=5 date:default author:full,width=15 file-name:auto id:yes,color text"; - - # Pager based views - blob-view = "line-number:yes,interval=5 text"; - diff-view = "line-number:yes,interval=5 text:yes,commit-title-overflow=no"; - log-view = "line-number:yes,interval=5 text"; - pager-view = "line-number:yes,interval=5 text"; - stage-view = "line-number:yes,interval=5 text"; - - color = { - default = "default default normal"; - cursor = "white blue bold"; - title-blur = "blue default"; - title-focus = "blue default bold"; - }; - }; - }; - - includes = mkIf config.custom.misc.work.enable [ - { - condition = "gitdir:~/projects/${config.custom.misc.work.directory}/"; - - contents = { - alias.bcf = externGitAlias ( - config.lib.custom.mkScriptPlain - "git-alias-bcf" - ./git-alias-bcf.sh - [ pkgs.git ] - { } - ); - - commit.template = writeFile "commit.msg" (commitMsgTemplate "PREFIX"); - - core.excludesfile = - let - ignoreListWork = ignoreList ++ [ ".envrc" "shell.nix" ]; - content = concatStringsSep "\n" ignoreListWork + "\n"; - in - writeFile "gitignore" content; - - user.email = config.custom.misc.work.mailAddress; - }; - } - ]; - }; - - }; - -} diff --git a/home/programs/git/git-alias-bcf.sh b/home/programs/git/git-alias-bcf.sh deleted file mode 100644 index bc0f1c3a..00000000 --- a/home/programs/git/git-alias-bcf.sh +++ /dev/null @@ -1,8 +0,0 @@ -if [[ $# -lt 1 ]]; then - >&2 echo "USAGE: $0 []?" - exit 2 -fi - -ARGS="${*}" - -git bc "feature/TRAP-${ARGS// /-}" diff --git a/home/programs/git/git-initial-commit.sh b/home/programs/git/git-initial-commit.sh deleted file mode 100644 index a951226a..00000000 --- a/home/programs/git/git-initial-commit.sh +++ /dev/null @@ -1,4 +0,0 @@ -git init -touch .gitignore -git add .gitignore -git commit -m 'Initial commit' diff --git a/home/programs/git/gitignores/intellij.gitignore b/home/programs/git/gitignores/intellij.gitignore deleted file mode 100644 index 613e7060..00000000 --- a/home/programs/git/gitignores/intellij.gitignore +++ /dev/null @@ -1,93 +0,0 @@ -# Created by https://www.toptal.com/developers/gitignore/api/intellij+all -# Edit at https://www.toptal.com/developers/gitignore?templates=intellij+all - -### Intellij+all ### -# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider -# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 - -# User-specific stuff -.idea/**/workspace.xml -.idea/**/tasks.xml -.idea/**/usage.statistics.xml -.idea/**/dictionaries -.idea/**/shelf - -# Generated files -.idea/**/contentModel.xml - -# Sensitive or high-churn files -.idea/**/dataSources/ -.idea/**/dataSources.ids -.idea/**/dataSources.local.xml -.idea/**/sqlDataSources.xml -.idea/**/dynamic.xml -.idea/**/uiDesigner.xml -.idea/**/dbnavigator.xml - -# Gradle -.idea/**/gradle.xml -.idea/**/libraries - -# Gradle and Maven with auto-import -# When using Gradle or Maven with auto-import, you should exclude module files, -# since they will be recreated, and may cause churn. Uncomment if using -# auto-import. -# .idea/artifacts -# .idea/compiler.xml -# .idea/jarRepositories.xml -# .idea/modules.xml -# .idea/*.iml -# .idea/modules -# *.iml -# *.ipr - -# CMake -cmake-build-*/ - -# Mongo Explorer plugin -.idea/**/mongoSettings.xml - -# File-based project format -*.iws - -# IntelliJ -out/ - -# mpeltonen/sbt-idea plugin -.idea_modules/ - -# JIRA plugin -atlassian-ide-plugin.xml - -# Cursive Clojure plugin -.idea/replstate.xml - -# Crashlytics plugin (for Android Studio and IntelliJ) -com_crashlytics_export_strings.xml -crashlytics.properties -crashlytics-build.properties -fabric.properties - -# Editor-based Rest Client -.idea/httpRequests - -# Android studio 3.1+ serialized cache file -.idea/caches/build_file_checksums.ser - -### Intellij+all Patch ### -# Ignores the whole .idea folder and all .iml files -# See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360 - -.idea/ - -# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023 - -*.iml -modules.xml -.idea/misc.xml -*.ipr - -# Sonarlint plugin -.idea/sonarlint - -# End of https://www.toptal.com/developers/gitignore/api/intellij+all diff --git a/home/programs/git/gitignores/linux.gitignore b/home/programs/git/gitignores/linux.gitignore deleted file mode 100644 index 8e0ad474..00000000 --- a/home/programs/git/gitignores/linux.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -# Created by https://www.toptal.com/developers/gitignore/api/linux -# Edit at https://www.toptal.com/developers/gitignore?templates=linux - -### Linux ### -*~ - -# temporary files which can be created if a process still has a handle open of a deleted file -.fuse_hidden* - -# KDE directory preferences -.directory - -# Linux trash folder which might appear on any partition or disk -.Trash-* - -# .nfs files are created when an open file is removed but is still being accessed -.nfs* - -# End of https://www.toptal.com/developers/gitignore/api/linux diff --git a/home/programs/git/includes/file.sh b/home/programs/git/includes/file.sh deleted file mode 100644 index 920a60a1..00000000 --- a/home/programs/git/includes/file.sh +++ /dev/null @@ -1,18 +0,0 @@ -source @hooksLib@ - -check() { - if git rev-parse --verify HEAD >/dev/null 2>&1; then - against=HEAD - else - against=4b825dc642cb6eb9a060e54bf8d69288fbee4904 - fi - - # test for trailing whitespaces - git diff-index --check --cached "${against}" --; track_result -} - -if [[ "${HOOK_TYPE}" = "pre-commit" ]]; then - check -fi - -exit "${RESULT}" diff --git a/home/programs/git/lib.hooks.sh b/home/programs/git/lib.hooks.sh deleted file mode 100644 index 93cc92d5..00000000 --- a/home/programs/git/lib.hooks.sh +++ /dev/null @@ -1,47 +0,0 @@ -HOOK_TYPE="${1:-}" -RESULT=0 - -# credits to -# - https://github.com/greg0ire/git_template/blob/master/template/hooks/change_detector.sh -# - https://github.com/renatius-de/git/blob/master/template/hooks/base/change_detector.sh -has_changed() { - local monitored_paths=("$@") - local against=4b825dc642cb6eb9a060e54bf8d69288fbee4904 - local changed=0 - - case "${HOOK_TYPE}" in - post-commit) - git rev-parse --verify HEAD^ > /dev/null 2>&1 && against=HEAD^ - changed="$(git diff-tree "${against}" 'HEAD' --stat -- "${monitored_paths[*]}" | wc -l)" - ;; - post-checkout | post-merge ) - if [[ "$(git reflog | wc -l)" == 1 ]]; then - changed=1 - else - changed="$(git diff 'HEAD@{1}' --stat -- "${monitored_paths[*]}" | wc -l)" - fi - ;; - pre-commit) - git rev-parse --verify HEAD >/dev/null 2>&1 && against=HEAD - changed="$(git diff-index --name-status "${against}" -- "${monitored_paths[*]}" | wc -l)" - ;; - *) - ;; - esac - - [[ ${changed} != 0 ]] -} - -run_scripts() { - for script in "${INCLUDES[@]:-}"; do - "${script}" "$@"; track_result - done - - return "${RESULT}" -} - -track_result() { - local last_result="$?" - - RESULT=$((RESULT + last_result)) -} diff --git a/home/programs/git/post-checkout.sh b/home/programs/git/post-checkout.sh deleted file mode 100644 index 69b05b77..00000000 --- a/home/programs/git/post-checkout.sh +++ /dev/null @@ -1,8 +0,0 @@ -INCLUDES=(@includes@) - -source @hooksLib@ - -# has new commits and is branch checkout -if [[ "${1}" != "${2}" && "${3}" == 1 ]]; then - run_scripts post-checkout "$@" -fi diff --git a/home/programs/git/post-commit.sh b/home/programs/git/post-commit.sh deleted file mode 100644 index 49e90a5d..00000000 --- a/home/programs/git/post-commit.sh +++ /dev/null @@ -1,5 +0,0 @@ -INCLUDES=(@includes@) - -source @hooksLib@ - -run_scripts post-commit "$@" diff --git a/home/programs/git/post-merge.sh b/home/programs/git/post-merge.sh deleted file mode 100644 index 538db8c4..00000000 --- a/home/programs/git/post-merge.sh +++ /dev/null @@ -1,5 +0,0 @@ -INCLUDES=(@includes@) - -source @hooksLib@ - -run_scripts post-merge "$@" diff --git a/home/programs/git/post-rewrite.sh b/home/programs/git/post-rewrite.sh deleted file mode 100644 index ffd85df0..00000000 --- a/home/programs/git/post-rewrite.sh +++ /dev/null @@ -1,7 +0,0 @@ -INCLUDES=(@includes@) - -source @hooksLib@ - -if [[ "${1}" = "rebase" ]]; then - run_scripts post-merge "$@" -fi diff --git a/home/programs/git/pre-commit.sh b/home/programs/git/pre-commit.sh deleted file mode 100644 index aaa7a55c..00000000 --- a/home/programs/git/pre-commit.sh +++ /dev/null @@ -1,5 +0,0 @@ -INCLUDES=(@includes@) - -source @hooksLib@ - -run_scripts pre-commit "$@" diff --git a/home/programs/git/pre-push.sh b/home/programs/git/pre-push.sh deleted file mode 100644 index 0fad1e50..00000000 --- a/home/programs/git/pre-push.sh +++ /dev/null @@ -1,5 +0,0 @@ -INCLUDES=(@includes@) - -source @hooksLib@ - -run_scripts pre-push "$@" diff --git a/home/programs/git/prepare-commit-msg.sh b/home/programs/git/prepare-commit-msg.sh deleted file mode 100644 index e81e1459..00000000 --- a/home/programs/git/prepare-commit-msg.sh +++ /dev/null @@ -1,8 +0,0 @@ -FILE="${1}" - -REPLACE= -if [[ "$(git branch-name)" =~ ^feature/(TRAP-[0-9]*).*$ ]]; then - REPLACE="${BASH_REMATCH[1]}: " -fi - -sed -i -e "s#PREFIX#${REPLACE}#" "${FILE}" 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/gpg.nix b/home/programs/gpg.nix deleted file mode 100644 index c2bbc24f..00000000 --- a/home/programs/gpg.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - ; - - cfg = config.custom.programs.gpg; -in - -{ - - ###### interface - - options = { - - custom.programs.gpg = { - enable = mkEnableOption "gpg config"; - - curses = mkEnableOption "pinentry curses"; - }; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom.programs.shell.loginExtra = '' - # remove existing keys - if [[ $SHLVL -eq 1 ]]; then - systemctl --user restart gpg-agent.socket - fi - ''; - - programs.gpg.enable = true; - - services.gpg-agent = { - enable = true; - defaultCacheTtl = 300; - - pinentryFlavor = mkIf cfg.curses "curses"; - }; - - }; - -} 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 deleted file mode 100644 index 1a028c97..00000000 --- a/home/programs/neovim.nix +++ /dev/null @@ -1,224 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - mkOption - types - ; - - 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 - vimtex - ]; -in - -{ - - ###### interface - - options = { - - custom.programs.neovim = { - - enable = mkEnableOption "neovim config"; - - finalPackage = mkOption { - type = types.nullOr types.package; - default = null; - internal = true; - description = '' - Package of final neovim. - ''; - }; - - }; - - }; - - - ###### 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; - }; - - }; - -} diff --git a/home/programs/pass.nix b/home/programs/pass.nix deleted file mode 100644 index c68e844b..00000000 --- a/home/programs/pass.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - ; - - 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 - ''; - }); -in - -{ - - ###### interface - - options = { - - custom.programs.pass = { - enable = mkEnableOption "pass config"; - - browserpass = mkEnableOption "browserpass"; - }; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom.programs.gpg.enable = true; - - programs = { - browserpass = { - enable = cfg.browserpass; - browsers = [ "chrome" ]; - }; - - password-store = { - inherit package; - enable = true; - settings.PASSWORD_STORE_DIR = "${config.home.homeDirectory}/.password-store"; - }; - }; - - }; - -} 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/rsync.nix b/home/programs/rsync.nix deleted file mode 100644 index 8c1be8a7..00000000 --- a/home/programs/rsync.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - concatStringsSep - mkEnableOption - mkIf - ; - - cfg = config.custom.programs.rsync; -in - -{ - - ###### interface - - options = { - - custom.programs.rsync.enable = mkEnableOption "rsync config"; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom.programs.shell.shellAliases = - let - options = [ - "--recursive" - "--links" - "--perms" - "--times" - "--owner" - "--group" - "--devices" - "--specials" - "--hard-links" - "--whole-file" - "--delete" - "--cvs-exclude" - "--prune-empty-dirs" - "--compress" - "--stats" - "--human-readable" - "--progress" - ]; - - optionsFat = [ - "--chmod='u=rwX,go='" - "--chown=$(id -u):$(id -g)" - "--size-only" - ]; - - mkOptions = concatStringsSep " "; - in - { - rsync = "rsync ${mkOptions options}"; - rsync-fat = "rsync ${mkOptions optionsFat}"; - }; - - home.packages = [ pkgs.rsync ]; - - }; - -} diff --git a/home/programs/shell.nix b/home/programs/shell.nix index 52811749..a4d21a24 100644 --- a/home/programs/shell.nix +++ b/home/programs/shell.nix @@ -254,11 +254,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 deleted file mode 100644 index d9de7818..00000000 --- a/home/programs/ssh/default.nix +++ /dev/null @@ -1,141 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - mkOption - types - ; - - cfg = config.custom.programs.ssh; - - keysDirectory = "${config.home.homeDirectory}/.ssh/keys"; -in - -{ - - ###### interface - - options = { - - custom.programs.ssh = { - - enable = mkEnableOption "ssh config"; - - cleanKeysOnShellStartup = mkOption { - type = types.bool; - default = true; - description = '' - Whether to clean all keys in keychain on top level shell startup. - ''; - }; - - controlMaster = mkOption { - type = types.enum [ "yes" "no" "ask" "auto" "autoask" ]; - default = "auto"; - description = '' - Configure sharing of multiple sessions over a single network connection. - ''; - }; - - modules = mkOption { - type = types.listOf (types.enum [ "private" "sedo" "vcs" ]); - default = [ ]; - description = "SSH modules to enable."; - }; - - }; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom = { - misc.homeage.secrets = map (value: "ssh-${value}") cfg.modules; - - programs.shell = { - initExtra = '' - keygen() { - if [[ -z "$1" ]]; then - echo "Enter path as argument!" - else - ssh-keygen -t rsa -b 4096 -f "$1" - fi - } - - kadd() { - local key="${keysDirectory}/id_rsa.$1" - - if [[ ! -r "$key" ]]; then - echo "ssh key not found: $key" - else - keychain "$key" - fi - - if [[ $# > 1 ]]; then - kadd "''${@:2}" - fi - } - ''; - - loginExtra = mkIf cfg.cleanKeysOnShellStartup '' - # remove existing keys - if [[ $SHLVL == 1 ]]; then - keychain --clear --quiet - fi - ''; - }; - }; - - home.packages = [ - pkgs.openssh - - (config.lib.custom.mkZshCompletion - "kadd" - ./kadd-completion.zsh - { inherit keysDirectory; } - ) - ]; - - programs = { - keychain = { - enable = true; - agents = [ "ssh" ]; - keys = [ ]; - }; - - ssh = { - inherit (cfg) controlMaster; - - enable = true; - - compression = true; - serverAliveInterval = 30; - hashKnownHosts = true; - controlPath = "~/.ssh/socket-%r@%h-%p"; - controlPersist = "10m"; - - includes = [ "~/.ssh/config.d/*" ]; - extraConfig = '' - CheckHostIP yes - ConnectTimeout 60 - EnableSSHKeysign yes - ExitOnForwardFailure yes - ForwardX11Trusted yes - IdentitiesOnly yes - NoHostAuthenticationForLocalhost yes - Protocol 2 - PubKeyAuthentication yes - SendEnv LANG LC_* - ServerAliveCountMax 30 - ''; - }; - }; - - }; - -} 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/tmux/default.nix b/home/programs/tmux/default.nix deleted file mode 100644 index 438b4103..00000000 --- a/home/programs/tmux/default.nix +++ /dev/null @@ -1,240 +0,0 @@ -{ config, lib, pkgs, rootPath, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - optionals - ; - - cfg = config.custom.programs.tmux; - - extraConfig = '' - set-option -g allow-rename off - set-option -g renumber-windows on - - set-option -g set-titles on - set-option -g set-titles-string "#{pane_title}" - - # Set the height of the other panes (not the main pane) in the main-horizontal - # layout. If this option is set to 0 (the default), it will have no effect. If - # both the main-pane-height and other-pane-height options are set, the main pane - # will grow taller to make the other panes the specified height, but will never - # shrink to do so. - set-window-option -g other-pane-height 10 - set-window-option -g other-pane-width 100 - - # Bind key to command. By default (without -t) the primary key bindings are - # modified (those normally activated with the prefix key); in this case, if -n - # is specified, it is not necessary to use the prefix key, command is bound to - # key alone. The -r flag indicates this key may repeat, see the repeat-time - # option. - # If -t is present, key is bound in key-table: the binding for command mode with - # -c or for normal mode without. To view the default bindings and possible - # commands, see the list-keys command - unbind Up - unbind Down - unbind Left - unbind Right - - unbind C-Up - unbind C-Down - unbind C-Left - unbind C-Right - - bind-key Escape copy-mode - - bind-key A last-pane - - bind-key \; select-layout main-horizontal - bind-key _ select-layout even-vertical - bind-key M select-layout main-vertical - bind-key N select-layout even-horizontal - bind-key B select-layout tiled - - bind-key o select-pane -t :.+ - bind-key O select-pane -t :.- - bind-key / display-panes \; select-pane -t :. - - bind-key 0 select-window -t :10 - bind-key F1 select-window -t :11 - bind-key F2 select-window -t :12 - bind-key F3 select-window -t :13 - bind-key F4 select-window -t :14 - bind-key F5 select-window -t :15 - bind-key F6 select-window -t :16 - bind-key F7 select-window -t :17 - bind-key F8 select-window -t :18 - bind-key F9 select-window -t :19 - bind-key F10 select-window -t :20 - bind-key F11 select-window -t :21 - bind-key F12 select-window -t :22 - - bind-key : command-prompt - - bind -r C-h select-window -t :- - bind -r C-l select-window -t :+ - - bind e send-keys -t :.- up C-m - bind E send-keys -t :.- C-c C-m up C-m - bind C-E send-keys -t :.- X C-m up C-m - - bind Left swap-window -t :- - bind Right swap-window -t :+ - - # open new pane in same directory - bind-key '"' split-window -c "#{pane_current_path}" - bind-key % split-window -h -c "#{pane_current_path}" - bind-key c new-window -c "#{pane_current_path}" - - - ###################### - ### DESIGN CHANGES ### - ###################### - - # panes - set -g pane-border-style fg=black - set -g pane-active-border-style fg=brightred - - ## Status bar design - # status line - set -g status-justify left - set -g status-bg default - set -g status-fg colour12 - set -g status-interval 2 - - # messaging - set -g message-style fg=black,bg=yellow - set -g message-command-style fg=blue,bg=black - - # window mode - setw -g mode-style bg=colour6,fg=colour0 - - # window status - setw -g window-status-format " #F#I:#W#F " - setw -g window-status-current-format " #F#I:#W#F " - setw -g window-status-format "#[fg=magenta]#[bg=black] #I #[bg=cyan]#[fg=colour8] #W " - setw -g window-status-current-format "#[bg=brightmagenta]#[fg=colour8] #I #[fg=colour8]#[bg=colour14] #W " - setw -g window-status-current-style bg=colour0,fg=colour11,dim - setw -g window-status-style bg=green,fg=black,reverse - - # loud or quiet? - set-option -g visual-activity off - set-option -g visual-bell off - set-option -g visual-silence off - set-window-option -g monitor-activity off - set-option -g bell-action none - - # The modes - setw -g clock-mode-colour colour135 - setw -g mode-style bg=colour238,fg=colour196,bold - - # The panes - set -g pane-border-style bg=colour235,fg=colour238 - set -g pane-active-border-style bg=colour236,fg=colour51 - - # The statusbar - set -g status-position bottom - set -g status-bg colour234 - set -g status-fg colour137 - set -g status-style dim - set -g status-left '#[fg=colour249,bg=colour236] #(whoami)@#[fg=colour231,bold]#H #[fg=colour137,bg=colour234] ' - set -g status-right '#[fg=colour233,bg=colour245] %d.%m.%Y #[fg=colour233,bg=colour250] %H:%M ' - set -g status-right-length 50 - set -g status-left-length 20 - - setw -g window-status-current-style bg=colour238,fg=colour81,bold - setw -g window-status-current-format ' #I#[fg=colour250]:#[fg=colour255]#W#[fg=colour50]#F ' - - setw -g window-status-style bg=colour235,fg=colour138,none - setw -g window-status-format ' #I#[fg=colour237]:#[fg=colour250]#W#[fg=colour244]#F ' - - setw -g window-status-bell-style bg=colour1,fg=colour255,bold - - # The messages - set -g message-style bg=colour166,fg=colour232,bold - ''; - - tmuxProfiles = "${rootPath}/files/tmux/profiles"; -in - -{ - - ###### interface - - options = { - - custom.programs.tmux = { - enable = mkEnableOption "tmux config"; - - urlview = mkEnableOption "urlview plugin"; - }; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom.programs.shell.shellAliases.tmux = "tmux -2"; - - home = { - file.".urlview" = mkIf cfg.urlview { - text = '' - COMMAND ${pkgs.google-chrome}/bin/google-chrome-stable %s > /dev/null 2>&1 - ''; - }; - - packages = [ - (config.lib.custom.mkScript - "tprofile" - ./tprofile.sh - [ pkgs.tmux ] - { - inherit tmuxProfiles; - workDirectory = config.custom.misc.work.directory; - } - ) - - (config.lib.custom.mkZshCompletion - "tprofile" - ./tprofile-completion.zsh - { - inherit tmuxProfiles; - workDirectory = config.custom.misc.work.directory; - } - ) - ]; - }; - - programs.tmux = { - inherit extraConfig; - - enable = true; - - terminal = "screen-256color"; - baseIndex = 1; - keyMode = "vi"; - customPaneNavigationAndResize = true; - shortcut = "a"; - clock24 = true; - secureSocket = false; - escapeTime = 100; - - plugins = with pkgs.tmuxPlugins; ( - [ - { - plugin = fingers; - extraConfig = '' - set -g @fingers-compact-hints 0 - set -g @fingers-ctrl-action '${pkgs.findutils}/bin/xargs ${pkgs.xdg-utils}/bin/xdg-open > /dev/null 2>&1' - ''; - } - ] ++ optionals cfg.urlview [ urlview ] - ); - }; - - }; - -} diff --git a/home/programs/tmux/tprofile-completion.zsh b/home/programs/tmux/tprofile-completion.zsh deleted file mode 100644 index 19b58151..00000000 --- a/home/programs/tmux/tprofile-completion.zsh +++ /dev/null @@ -1,31 +0,0 @@ -source @completionLib@ - -_directory_writable() { - unset ROOT - # shellcheck disable=SC1090 - source "${1}" - [[ -z "${ROOT}" || -w "${ROOT}" ]] -} - -prefix="@tmuxProfiles@/" -suffix=".sh" - -for file in "${prefix}"*"${suffix}"; do - if _directory_writable "${file}"; then - _clean_path_and_append "${prefix}" "${suffix}" "${file}" - fi -done - -project_directories=("${HOME}/projects/"*) -# shellcheck disable=SC2157 -if [[ -n "@workDirectory@" ]]; then - project_directories+=("${HOME}/projects/@workDirectory@/"*) -fi - -for dir in "${project_directories[@]}"; do - list+=("$(basename "${dir}")") -done - -_arguments \ - "1:profiles:(${list[*]})" \ - "2:options:(--only-fetch)" diff --git a/home/programs/tmux/tprofile.sh b/home/programs/tmux/tprofile.sh deleted file mode 100644 index ed554029..00000000 --- a/home/programs/tmux/tprofile.sh +++ /dev/null @@ -1,92 +0,0 @@ -CONF_NAME="${1}" -CONF="@tmuxProfiles@/${CONF_NAME}.sh" -ONLY_FETCH= - -[[ "${2:-}" = "--only-fetch" ]] && ONLY_FETCH=1 - -_check_requirements() { - [[ -z "${TMUX}" || -z "${TMUX_PANE}" ]] && echo "command needs to be executed in tmux session" && exit 1 - - # shellcheck disable=SC2157 - if [[ -r "${CONF}" ]]; then - # shellcheck disable=SC1090 - source "${CONF}" - elif [[ -d "${HOME}/projects/${CONF_NAME}" ]]; then - ROOT="${HOME}/projects/${CONF_NAME}" - PRESET="git-single" - elif [[ -n "@workDirectory@" && -d "${HOME}/projects/@workDirectory@/${CONF_NAME}" ]]; then - ROOT="${HOME}/projects/@workDirectory@/${CONF_NAME}" - PRESET="git-single" - else - echo "neither ${CONF} nor projects named ${CONF_NAME} do not exist" - exit 2 - fi -} - -_process_profile() { - ROOT="${ROOT:-${HOME}}" - - [[ ! -r "${ROOT}" ]] && echo "directory is not readable" && exit 1 - - CMD_PRIMARY="${CMD_PRIMARY:-}" - SIDE_CMDS=("${SIDE_CMDS[@]}") - - if [[ -n "${ONLY_FETCH}" ]]; then - PRESET="git-single" - fi - - if [[ "${PRESET}" = "git-single" ]]; then - CMD_PRIMARY="git fm" - CMD_SECONDARY="" - SIDE_CMDS=() - fi - - if [[ -f "${ROOT}/.envrc" ]]; then - NIX_CMD="alias refresh-shell > /dev/null && refresh-shell" - fi -} - -_send_commands() { - local index="${1}" - local commands="${2}" - - tmux send-keys -t ":.${index}" "cd ${ROOT}" C-m "${NIX_CMD:-}" C-m "clear" C-m - - if [[ -n "${commands}" ]]; then - local IFS=":" - for cmd in ${commands}; do - tmux send-keys -t ":.${index}" "${cmd}" C-m - done - fi -} - -_arrange_panes() { - local list_panes_file - list_panes_file="$(mktemp)" - tmux list-panes > "${list_panes_file}" - [[ $(wc -l "${list_panes_file}") != 1 ]] && tmux kill-pane -a -t "${TMUX_PANE}" - rm -f "${list_panes_file}" - - local index=1 - _send_commands "${index}" "${CMD_PRIMARY}" - for cmds in "${SIDE_CMDS[@]}"; do - index=$((index + 1)) - tmux split-window - _send_commands "${index}" "${cmds}" - done - - tmux select-layout main-horizontal - - if [[ -n "${CMD_SECONDARY}" ]]; then - tmux select-pane -t :.1 - tmux split-window -h - _send_commands 2 "${CMD_SECONDARY}" - fi - - tmux select-pane -t :.1 - tmux rename-window "${CONF_NAME}" -} - -_check_requirements -_process_profile -_arrange_panes 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 deleted file mode 100644 index 22a8aaab..00000000 --- a/home/wm/general/default.nix +++ /dev/null @@ -1,132 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - mkOption - types - ; - - cfg = config.custom.wm.general; - - lockScreenPackage = - config.lib.custom.mkScript - "lock-screen" - ./lock-screen.sh - [ pkgs.xorg.xset ] - { - _doNotClearPath = cfg.useSlock; - - lockCommand = - if cfg.useSlock - then "slock" - else "${pkgs.i3lock-fancy}/bin/i3lock-fancy --nofork --text '' -- ${pkgs.scrot}/bin/scrot --silent --overwrite"; - }; -in - -{ - - ###### interface - - options = { - - custom.wm.general = { - enable = mkEnableOption "common config for window-managers"; - - # FIXME: i3lock throws error on ubuntu: "i3lock-color: Cannot grab pointer/keyboard" - useSlock = mkEnableOption "slock as screen locker"; - - useSudoForHibernate = mkEnableOption "to use sudo for hibernate command"; - - lockScreenPackage = mkOption { - type = types.package; - readOnly = true; - description = "Package with lock-screen executable."; - }; - }; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - custom = { - programs.alacritty.enable = true; - - wm.general = { inherit lockScreenPackage; }; - }; - - home.packages = [ - lockScreenPackage - pkgs.pavucontrol - pkgs.xdg-utils - - (config.lib.custom.mkScript - "inhibit-suspend" - ./inhibit-suspend.sh - [ lockScreenPackage pkgs.systemd ] - { } - ) - ] ++ ( - map - (item: - let useSudo = item ? sudo && item.sudo; in - config.lib.custom.mkScript - (item.name or item.command) - ./wm-script.sh - [ pkgs.gnome.zenity ] - { - inherit (item) command message; - - _doNotClearPath = useSudo; - - systemctlCommand = - if useSudo - then "sudo systemctl" - else "${pkgs.systemd}/bin/systemctl"; - } - ) - [ - { command = "poweroff"; name = "halt"; message = "halt the system"; } - { command = "hibernate"; message = "suspend to disk"; sudo = cfg.useSudoForHibernate; } - { command = "hybrid-sleep"; message = "suspend to disk and ram"; } - { command = "reboot"; message = "reboot"; } - { command = "suspend"; name = "sys-suspend"; message = "suspend to ram"; } - ] - ); - - services = { - network-manager-applet.enable = config.custom.base.desktop.laptop; - - unclutter = { - enable = true; - timeout = 3; - }; - }; - - xdg.mimeApps = { - enable = true; - - defaultApplications = { - "application/pdf" = "qpdfview.desktop"; - - "image/jpeg" = "org.nomacs.ImageLounge.desktop"; - "image/png" = "org.nomacs.ImageLounge.desktop"; - - "message/rfc822" = "thunderbird.desktop"; - "x-scheme-handler/mailto" = "thunderbird.desktop"; - - "text/html" = "google-chrome.desktop"; - "x-scheme-handler/http" = "google-chrome.desktop"; - "x-scheme-handler/https" = "google-chrome.desktop"; - "x-scheme-handler/about" = "google-chrome.desktop"; - "x-scheme-handler/unknown" = "google-chrome.desktop"; - }; - }; - - }; - -} diff --git a/home/wm/general/inhibit-suspend.sh b/home/wm/general/inhibit-suspend.sh deleted file mode 100644 index 1d085ec2..00000000 --- a/home/wm/general/inhibit-suspend.sh +++ /dev/null @@ -1,2 +0,0 @@ -# Disable suspend on lid close until screen gets unlocked -systemd-inhibit --what=handle-lid-switch lock-screen diff --git a/home/wm/general/lock-screen.sh b/home/wm/general/lock-screen.sh deleted file mode 100644 index 51e5b95f..00000000 --- a/home/wm/general/lock-screen.sh +++ /dev/null @@ -1,12 +0,0 @@ -revert() { - xset s off - xset -dpms -} - -trap revert HUP INT TERM -xset s 5 -xset +dpms - -@lockCommand@ - -revert diff --git a/home/wm/general/wm-script.sh b/home/wm/general/wm-script.sh deleted file mode 100644 index 11a5ac7c..00000000 --- a/home/wm/general/wm-script.sh +++ /dev/null @@ -1,3 +0,0 @@ -if zenity --question --text="Are you sure you want to @message@?" 2> /dev/null; then - @systemctlCommand@ @command@ -fi 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..971092d3 --- /dev/null +++ b/hosts/DANIELKNB1/configuration.nix @@ -0,0 +1,17 @@ +{ config, lib, pkgs, rootPath, ... }: + +{ + boot.binfmt.emulatedSystems = [ "aarch64-linux" ]; + custom = { + base.nixoswsl.enable = true; + }; + + services.syncthing.enable = true; + + systemd.tmpfiles.rules = [ + '' + f /tmp/test/.nixd.json - - - - {"eval":{"depth":10,"target":{"args":["--expr","with import { }; callPackage /tmp/test/default.nix { }"],"installable":""}}} + '' + ]; + +} 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-dkahlenberg.nix b/hosts/DANIELKNB1/home-dkahlenberg.nix new file mode 100644 index 00000000..42b23d91 --- /dev/null +++ b/hosts/DANIELKNB1/home-dkahlenberg.nix @@ -0,0 +1,126 @@ +{ config, lib, pkgs, rootPath, ... }: { + custom = { programs = { shell.shellAliases = { vimdiff = "nvim -d"; }; }; }; + + home.packages = with pkgs; [ + alejandra + shellharden + shfmt + rnix-lsp + deadnix + statix + nixfmt + lua-language-server + texlab + nodePackages.bash-language-server + nodePackages.vim-language-server + nodePackages.typescript + nodePackages.typescript-language-server + deno + stylua + sqlite + nodePackages.vscode-json-languageserver-bin + xsel + nodejs_latest + yarn + shellcheck + chafa + gist + cachix + nil + w3m + fff + ripgrep + my-neovim + manix + lolcat + fd + epr + nodePackages.yaml-language-server + ltex-ls + my-emacs + ripgrep-all + pandoc + rustenv + yt-dlp + micro + jdt-language-server + ranger + devenv + pup + nix-index + ouch + git-absorb + difftastic + bashdb + desed + gradle-vscode-extension.vscode-gradle + nixd + nushell + sd + ]; + + home.file = { + ".emacs.d/early-init.el".text = '' + (setq package-enable-at-startup nil) + (provide 'early-init) + ''; + }; + + programs.bash = with pkgs.lib; { + enable = true; + historySize = 10000000; + historyFileSize = 10000000; + historyControl = [ "erasedups" "ignoredups" "ignorespace" ]; + historyIgnore = [ "ls" "cd" "exit" ]; + + shellAliases = { + vimdiff = "nvim -d"; + mv = "mv -i"; + cp = "cp -i"; + ln = "ln -i"; + }; + }; + + programs.git = { + enable = true; + package = pkgs.gitMinimal; + userName = "Daniel Kahlenberg"; + userEmail = "573@users.noreply.github.com"; + + extraConfig = { + credential.helper = "cache"; + + merge = { + tool = "vimdiff"; + conflictstyle = "diff3"; + }; + + mergetool = { + prompt = true; + writeToTemp = true; + }; + }; + }; + + 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/argon/home-root.nix b/hosts/DANIELKNB1/home-root.nix similarity index 100% rename from hosts/argon/home-root.nix rename to hosts/DANIELKNB1/home-root.nix 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-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..262ad85d --- /dev/null +++ b/hosts/maiziedemacchiato/home-dani.nix @@ -0,0 +1,147 @@ +{ config, lib, pkgs, ... }: + +{ + 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 + ''; + }; + }; + + services.syncthing.enable = true; + + home = { + homeDirectory = "/home/dani"; + username = "dani"; + + packages = with pkgs; [ + my-neovim + ranger + photoprism + alejandra + shellharden + shfmt + rnix-lsp + deadnix + statix + nixfmt + lua-language-server + texlab + stylua + shellcheck + gist + cachix + nil + ripgrep + ltex-ls + yt-dlp + micro + ranger + nix-index + masterpdfeditor + ouch + abcde + cups-filters + talon + scrcpy + autorandr + mons + xorg.libxcvt + xorg.xrandr + maim + xdotool + xclip + keepassxc + swappy + arandr + xterm + signal-desktop + nixd + tailscale + my-emacs + openssh + ]; + + 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"; + }; + }; + + programs.bash = with pkgs.lib; { + enable = true; + historySize = 10000000; + historyFileSize = 10000000; + historyControl = [ "erasedups" "ignoredups" "ignorespace" ]; + historyIgnore = [ "ls" "cd" "exit" ]; + + shellAliases = { + vimdiff = "nvim -d"; + mv = "mv -i"; + cp = "cp -i"; + ln = "ln -i"; + }; + }; + + programs.git = { + enable = true; + package = pkgs.gitMinimal; + userName = "Daniel Kahlenberg"; + userEmail = "573@users.noreply.github.com"; + + extraConfig = { + credential.helper = "cache"; + + merge = { + tool = "vimdiff"; + conflictstyle = "diff3"; + }; + + mergetool = { + prompt = true; + writeToTemp = true; + }; + }; + }; + + 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/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/sams9/home-nix-on-droid.nix b/hosts/sams9/home-nix-on-droid.nix new file mode 100644 index 00000000..e59a2fe3 --- /dev/null +++ b/hosts/sams9/home-nix-on-droid.nix @@ -0,0 +1,189 @@ +{ config, lib, pkgs, rootPath, ... }: { + custom = { + base = { + general.lightWeight = true; + + non-nixos = { + enable = true; + installNix = false; + #builders = [ + # "ssh://private.maiziedemacchiato aarch64-linux - 4" + #]; + }; + }; + + development.nix.nix-on-droid.enable = true; + + programs = { shell.shellAliases = { vimdiff = "nvim -d"; }; }; + }; + + home = { + packages = with pkgs; [ + #broot + vale + #zk + (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 "$@" + } + '') + (texlive.combine { inherit (texlive) scheme-minimal latexindent; }) + alejandra + shellharden + shfmt + rnix-lsp + deadnix + statix + nixfmt + lua-language-server + texlab + nodePackages.bash-language-server + nodePackages.vim-language-server + nodePackages.typescript + nodePackages.typescript-language-server + deno + stylua + sqlite + nodePackages.vscode-json-languageserver-bin + xsel + nodejs_latest + yarn + shellcheck + chafa + gist + cachix + nil + w3m + fff + ripgrep + my-neovim + manix + lolcat + fd + epr + nodePackages.yaml-language-server + #ghcWithHoogle + ltex-ls + #my-emacs + #tree-grepper # broken curr. - https://github.com/573/nix-config-1/actions/runs/3950774557/jobs/6763762288#step:5:10931 + rust-bin.stable.latest.default + rust-bin.stable.latest.rust-analyzer + yt-dlp + ranger + jdt-language-server + devenv + nix-index + ouch + bashdb + difftastic + hydra-check + hledger + hledger-web + nixd + bpython + #julia_19 + nushell + sd + ]; + + sessionVariables = + #let + # # TODO see https://github.com/Gerschtli/nix-config/commit/e96975f6c86e4f96ca919488ed1a396177b0ae2a + # # - "/nix/var/nix/profiles/per-user/${config.home.username}/home-manager" + # # + "/home/${config.home.username}/.local/state/nix/profiles/home-manager" + # profiles = [ "/nix/var/nix/profiles/default" "$HOME/.nix-profile" ]; + # dataDirs = + # lib.concatStringsSep ":" (map (profile: "${profile}/share") profiles); + #in + { + #XDG_DATA_DIRS = "${dataDirs}\${XDG_DATA_DIRS:+:}$XDG_DATA_DIRS"; + MANPAGER = "less -FirSwX"; + }; + + + 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 + ''; + }; + }; + + programs.bash = with pkgs.lib; { + enable = true; + historySize = 10000000; + historyFileSize = 10000000; + historyControl = [ "erasedups" "ignoredups" "ignorespace" ]; + historyIgnore = [ "ls" "cd" "exit" ]; + + logoutExtra = '' + ${pkgs.procps}/bin/pkill -KILL -u $USER tailscaled + ''; + shellAliases = { + vimdiff = "nvim -d"; + mv = "mv -i"; + cp = "cp -i"; + ln = "ln -i"; + ghlimits = "curl -i https://api.github.com/users/573 | grep x-ratelimit-reset"; + dateviaepoch = "date --date @$(echo $EPOCHSECONDS)"; + nvimscaffold = "echo import os | nvim +\":set autochdir\" - +'file main.py' # https://neovim.io/doc/user/starting.html"; + }; + }; + + programs.git = { + enable = true; + package = pkgs.gitMinimal; + userName = "Daniel Kahlenberg"; + userEmail = "573@users.noreply.github.com"; + + extraConfig = { + credential.helper = "cache"; + + merge = { + tool = "vimdiff"; + conflictstyle = "diff3"; + }; + + mergetool = { + prompt = true; + writeToTemp = true; + }; + }; + }; + + 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/sams9/nix-on-droid.nix b/hosts/sams9/nix-on-droid.nix new file mode 100644 index 00000000..b1dc0085 --- /dev/null +++ b/hosts/sams9/nix-on-droid.nix @@ -0,0 +1,82 @@ +{ config, lib, pkgs, homeModules, inputs, rootPath, ... }@configArgs: + +let + inherit (lib) + concatStringsSep + ; + + commonConfig = config.lib.custom.commonConfig configArgs; + +in +{ + environment = { + etcBackupExtension = ".nod-bak"; + motd = null; + packages = with pkgs; [ + diffutils + findutils + gawk + gnugrep + gnused + gnutar + hostname + man + ncurses + procps + psmisc + gzip + which + micro + ]; + }; + + home-manager = { + inherit (commonConfig.homeManager.baseConfig) + backupFileExtension + extraSpecialArgs + sharedModules + useGlobalPkgs + useUserPackages + ; + + config = commonConfig.homeManager.userConfig "sams9" "nix-on-droid"; + }; + + nix = + let + inherit (commonConfig.nix.settings) + substituters + trusted-public-keys + experimental-features + log-lines + ; + in + { + inherit (commonConfig.nix) package; + # https://github.com/573/nix-config-1/commit/8ee0a73a17f56e56f79c90c4d7af439ee48dbfeb# + extraOptions = '' + keep-derivations = true + keep-outputs = true + experimental-features = ${concatStringsSep " " experimental-features} + flake-registry = + log-lines = ${toString log-lines} + substituters = ${concatStringsSep " " substituters} + trusted-public-keys = ${concatStringsSep " " (trusted-public-keys.content)} + ''; + }; + + # FIXME: update when released + system.stateVersion = "22.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..4b536259 100644 --- a/lib/common-config.nix +++ b/lib/common-config.nix @@ -21,18 +21,44 @@ _: "https://cache.nixos.org" "https://gerschtli.cachix.org" "https://nix-on-droid.cachix.org" + "https://cache.iog.io" + # "https://srid.cachix.org" + "https://cachix.cachix.org" + "https://nix-community.cachix.org" + "https://niv.cachix.org" + "https://573-bc.cachix.org" + "https://tweag-jupyter.cachix.org" + "https://tree-grepper.cachix.org" + "https://coq.cachix.org" + "https://ai.cachix.org" + "https://nixpkgs-ruby.cachix.org" + #"https://anmonteiro.nix-cache.workers.dev" + "https://nixpkgs-wayland.cachix.org" ]; trusted-public-keys = lib.mkForce [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "gerschtli.cachix.org-1:dWJ/WiIA3W2tTornS/2agax+OI0yQF8ZA2SFjU56vZ0=" "nix-on-droid.cachix.org-1:56snoMJTXmDRC1Ei24CmKoUqvHJ9XCp+nidK7qkMQrU=" + "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" + # "srid.cachix.org-1:3clnql5gjbJNEvhA/WQp7nrZlBptwpXnUk6JAv8aB2M=" + "cachix.cachix.org-1:eWNHQldwUO7G2VkjpnjDbWwy4KQ/HNxht7H4SSoMckM=" + "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + "niv.cachix.org-1:X32PCg2e/zAm3/uD1ScqW2z/K0LtDyNV7RdaxIuLgQM=" + "573-bc.cachix.org-1:2XtNmCSdhLggQe4UTa4i3FSDIbYWx/m1gsBOxS6heJs=" + "tweag-jupyter.cachix.org-1:UtNH4Zs6hVUFpFBTLaA4ejYavPo5EFFqgd7G7FxGW9g=" + "tree-grepper.cachix.org-1:Tm/owXM+dl3GnT8gZg+GTI3AW+yX1XFVYXspZa7ejHg=" + "coq.cachix.org-1:5QW/wwEnD+l2jvN6QRbRRsa4hBHG3QiQQ26cxu1F5tI=" + "ai.cachix.org-1:N9dzRK+alWwoKXQlnn0H6aUx0lU/mspIoz8hMvGvbbc=" + "nixpkgs-ruby.cachix.org-1:vrcdi50fTolOxWCZZkw0jakOnUI1T19oYJ+PRYdK4SM=" + #"ocaml.nix-cache.com-1:/xI2h2+56rwFfKyyFVbkJSeGqSIYMC/Je+7XXqGKDIY=" + "nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA=" ]; experimental-features = [ "nix-command" "flakes" ]; log-lines = 30; flake-registry = null; }; - package = pkgs.nixVersions.nix_2_13; + package = pkgs.nixVersions.unstable; registry = { nixpkgs.flake = inputs.nixpkgs; nix-config.flake = inputs.self; 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..cce519d1 100644 --- a/nixos/base/general.nix +++ b/nixos/base/general.nix @@ -17,7 +17,11 @@ in { - imports = [ inputs.home-manager.nixosModules.home-manager ]; + imports = [ + inputs.home-manager.nixosModules.home-manager + # Is in 23.05 +# "${inputs.latest}/nixos/modules/services/web-apps/photoprism.nix" + ]; ###### interface @@ -28,7 +32,7 @@ in enable = mkEnableOption "basic config" // { default = true; }; hostname = mkOption { - type = types.enum [ "argon" "krypton" "neon" "xenon" ]; + type = types.enum [ "DANIELKNB1" ]; description = "Host name."; }; }; @@ -45,11 +49,11 @@ in console.keyMap = "de"; custom = { - cachix-agent.enable = true; - system.firewall.enable = true; }; + documentation.nixos.enable = false; + environment = { defaultPackages = [ ]; shellAliases = mkForce { }; @@ -64,7 +68,7 @@ in useUserPackages ; - users = genAttrs [ "root" "tobias" ] (commonConfig.homeManager.userConfig cfg.hostname); + users = genAttrs [ "root" "dkahlenberg" ] (commonConfig.homeManager.userConfig cfg.hostname); }; i18n.supportedLocales = [ @@ -88,7 +92,7 @@ in trusted-public-keys ; - trusted-users = [ "root" "tobias" ]; + trusted-users = [ "root" "dkahlenberg" ]; }; inherit (commonConfig.nix) @@ -98,27 +102,18 @@ in ; }; - programs.zsh = { - enable = true; - enableGlobalCompInit = false; - promptInit = ""; - }; - system = { configurationRevision = inputs.self.rev or "dirty"; - stateVersion = "22.11"; + stateVersion = "23.05"; }; time.timeZone = "Europe/Berlin"; users.users = { - root.shell = pkgs.zsh; - - tobias = { - uid = config.custom.ids.uids.tobias; - extraGroups = [ "wheel" ]; + dkahlenberg = { + uid = config.custom.ids.uids.dkahlenberg; + extraGroups = [ "wheel" "syncthing" ]; isNormalUser = true; - shell = pkgs.zsh; }; }; diff --git a/nixos/base/nixoswsl.nix b/nixos/base/nixoswsl.nix new file mode 100644 index 00000000..08fd330d --- /dev/null +++ b/nixos/base/nixoswsl.nix @@ -0,0 +1,41 @@ +{ config, lib, pkgs, inputs, ... }: + +let + inherit (lib) + mkEnableOption + mkIf + mkMerge + ; + + cfg = config.custom.base.nixoswsl; +in +{ + imports = [ inputs.nixos-wsl.nixosModules.wsl ]; + + ###### interface + + options = { + custom.base.nixoswsl = { enable = mkEnableOption "config for NixOS-WSL"; }; + }; + + ###### implementation + + config = mkIf cfg.enable (mkMerge [{ + wsl = { + enable = true; + defaultUser = "dkahlenberg"; + interop = { + register = true; + preserveArgvZero = true; + }; + # 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 + nativeSystemd = true; + docker-native = { + enable = true; + }; + }; + + # https://github.com/nix-community/NixOS-WSL/discussions/71 + security.sudo.wheelNeedsPassword = true; + }]); +} 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..e24ddbc8 100644 --- a/nixos/misc/ids.nix +++ b/nixos/misc/ids.nix @@ -48,23 +48,15 @@ in custom.ids = { uids = mapIds { - backup = 500; - storage = 501; - # ip-watcher = 502; - teamspeak-update-notifier = 503; - - tobias = 1000; - steini = 1001; + # 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 + dkahlenberg = 1000; }; - gids = mapIds { - backup = 500; - storage = 501; - # ip-watcher = 502; - teamspeak-update-notifier = 503; - - # secret-files = 600; - }; + gids = mapIds { }; }; }; 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 deleted file mode 100644 index c236bcae..00000000 --- a/nixos/services/applications/openssh.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ config, lib, pkgs, rootPath, ... }: - -let - inherit (lib) - mkEnableOption - mkIf - ; - - cfg = config.custom.services.openssh; -in - -{ - - ###### interface - - options = { - - custom.services.openssh = { - enable = mkEnableOption "openssh"; - - rootLogin = mkEnableOption "root login via pubkey"; - - forwardX11 = mkEnableOption "x11 forwarding"; - }; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - services.openssh = { - inherit (cfg) forwardX11; - enable = true; - openFirewall = true; - permitRootLogin = mkIf (!cfg.rootLogin) "no"; - passwordAuthentication = false; - extraConfig = "MaxAuthTries 3"; - }; - - users.users = { - root.openssh.authorizedKeys.keyFiles = mkIf cfg.rootLogin [ - "${rootPath}/files/keys/id_rsa.tobias.pub" - ]; - - tobias.openssh.authorizedKeys.keyFiles = [ - "${rootPath}/files/keys/id_rsa.tobias.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 deleted file mode 100644 index 6aaaae03..00000000 --- a/nixos/system/boot.nix +++ /dev/null @@ -1,96 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkIf - mkMerge - mkOption - types - ; - - cfg = config.custom.system.boot; -in - -{ - - ###### interface - - options = { - - custom.system.boot = { - mode = mkOption { - type = types.enum [ "efi" "grub" "raspberry" ]; - description = '' - Sets mode for boot options. - ''; - }; - - device = mkOption { - type = types.nullOr types.str; - default = null; - description = '' - Device for GRUB boot loader. - ''; - }; - }; - - }; - - - ###### implementation - - config = mkMerge [ - { - assertions = [ - { - assertion = cfg.mode == "grub" -> cfg.device != null; - message = "custom.system.boot.device needs to be set for grub mode."; - } - ]; - } - - (mkIf (cfg.mode == "efi") - { - boot.loader = { - efi.canTouchEfiVariables = true; - - systemd-boot = { - enable = true; - editor = false; - }; - }; - } - ) - - (mkIf (cfg.mode == "grub") - { - boot.loader.grub = { - inherit (cfg) device; - - enable = true; - }; - } - ) - - (mkIf (cfg.mode == "raspberry") - { - boot = { - loader = { - generic-extlinux-compatible.enable = true; - - grub.enable = false; - }; - - kernel.sysctl = { - "vm.dirty_background_ratio" = 5; - "vm.dirty_ratio" = 80; - }; - - kernelParams = [ "cma=32M" ]; - }; - } - ) - - ]; - -} diff --git a/nixos/system/nvidia-optimus/default.nix b/nixos/system/nvidia-optimus/default.nix deleted file mode 100644 index 539993f1..00000000 --- a/nixos/system/nvidia-optimus/default.nix +++ /dev/null @@ -1,82 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (lib) - mkEnableOption - mkForce - mkIf - mkOption - types - ; - - cfg = config.custom.system.nvidia-optimus; -in - -{ - - ###### interface - - options = { - - custom.system.nvidia-optimus = { - - enable = mkEnableOption "nvidia optimus"; - - amdgpuBusId = mkOption { - type = types.nullOr types.str; - default = null; - description = '' - Bus ID of the AMD GPU. - ''; - }; - - nvidiaBusId = mkOption { - type = types.nullOr types.str; - default = null; - description = '' - Bus ID of the NVIDIA GPU. - ''; - }; - - }; - - }; - - - ###### implementation - - config = mkIf cfg.enable { - - assertions = [ - { - assertion = cfg.enable -> cfg.amdgpuBusId != null && cfg.nvidiaBusId != null; - message = "You need to configure bus ID options if you enable the module."; - } - ]; - - environment.systemPackages = [ - (config.lib.custom.mkScript - "nvidia-offload" - ./nvidia-offload.sh - [ ] - { _doNotClearPath = true; } - ) - ]; - - hardware.nvidia.prime = { - inherit (cfg) amdgpuBusId nvidiaBusId; - - offload.enable = true; - }; - - services.xserver.videoDrivers = [ "nvidia" ]; - - specialisation.external-display.configuration = { - hardware.nvidia.prime.offload.enable = mkForce false; - - system.nixos.tags = [ "external-display" ]; - }; - - }; - -} diff --git a/nixos/system/nvidia-optimus/nvidia-offload.sh b/nixos/system/nvidia-optimus/nvidia-offload.sh deleted file mode 100644 index 547a65d6..00000000 --- a/nixos/system/nvidia-optimus/nvidia-offload.sh +++ /dev/null @@ -1,6 +0,0 @@ -export __NV_PRIME_RENDER_OFFLOAD=1 -export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0 -export __GLX_VENDOR_LIBRARY_NAME=nvidia -export __VK_LAYER_NV_optimus=NVIDIA_only - -exec -a "$0" "$@" 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 -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 -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 -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 -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 -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 -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 -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 ------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 -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 -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 -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 ------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 -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 -/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-----