688 Commits

Author SHA1 Message Date
7128cd8d0d clean up jqr 2024-11-16 22:59:00 -07:00
7007577176 jqr for jq preview repl
based on: https://gist.github.com/reegnz/b9e40993d410b75c2d866441add2cb55
2024-11-16 22:25:39 -07:00
ca1c7cc23f add osc for copy paste over ssh 2024-11-16 23:47:26 +00:00
ae43d24f62 enable postgres for flame 2024-11-16 23:47:08 +00:00
c6de176b0b fix: jujutsu tests fail on new version 2024-11-16 23:46:43 +00:00
a36df414c1 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/2fbf4a8417c28cf45bae6e6e97248cbbd9b78632' (2024-11-08)
  → 'github:lnl7/nix-darwin/f86f158efd4bab8dce3e207e4621f1df3a760b7a' (2024-11-15)
• Updated input 'disko':
    'github:nix-community/disko/5e40e02978e3bd63c2a6a9fa6fa8ba0e310e747f' (2024-11-08)
  → 'github:nix-community/disko/5fd852c4155a689098095406500d0ae3d04654a8' (2024-11-14)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/22a53e2cae4d37fb24e9326c6f72a54cb4f269d5' (2024-11-09)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/16b0320abb172e6636b4e8dce059023197c7f186' (2024-11-16)
• Updated input 'home-manager':
    'github:nix-community/home-manager/2f607e07f3ac7e53541120536708e824acccfaa8' (2024-11-05)
  → 'github:nix-community/home-manager/1d0862ee2d7c6f6cd720d6f32213fa425004be10' (2024-11-14)
• Updated input 'mac-app-util':
    'github:hraban/mac-app-util/9c6bbe2a6a7ec647d03f64f0fadb874284f59eac' (2024-09-27)
  → 'github:hraban/mac-app-util/9ef4d1c14dab18a95691602bf541cd091fdcc2e3' (2024-11-12)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.38.2-nextcloud.tar.gz?narHash=sha256-oCw6Brs85rINBHvz3UJXheyLVqvA3RgPXG03b30Fx7E%3D' (2024-11-09)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.38.2-nextcloud.tar.gz?narHash=sha256-oCw6Brs85rINBHvz3UJXheyLVqvA3RgPXG03b30Fx7E%3D' (2024-11-16)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/7c60ba4bc8d6aa2ba3e5b0f6ceb9fc07bc261565' (2024-10-21)
  → 'github:nix-community/nixos-generators/06ffce1a8d95e95c06a4bcfa117dd960b14a7101' (2024-11-14)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/cce4521b6df014e79a7b7afc58c703ed683c916e' (2024-10-20)
  → 'github:nix-community/nixpkgs.lib/e04234d263750db01c78a412690363dc2226e68a' (2024-11-10)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/4aa36568d413aca0ea84a1684d2d46f55dbabad7' (2024-11-05)
  → 'github:nixos/nixpkgs/dc460ec76cbff0e66e269457d7b728432263166c' (2024-11-11)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/dba414932936fde69f0606b4f1d87c5bc0003ede' (2024-11-06)
  → 'github:nixos/nixpkgs/c21b77913ea840f8bcf9adf4c41cecc2abffd38d' (2024-11-15)
• Updated input 'nur':
    'github:nix-community/nur/b29499982ee565c8dab5ca5c7be8d2ebfc267d87' (2024-11-09)
  → 'github:nix-community/nur/be2664b26e2c661b5053239f9f4d8a9b458e5dca' (2024-11-16)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/3fc8de198c15ec4e5395f57b70579b3959976960' (2024-11-09)
  → 'github:kyazdani42/nvim-tree.lua/28eac2801b201f301449e976d7a9e8cfde053ba3' (2024-11-10)
• Updated input 'snipe-nvim-src':
    'github:leath-dub/snipe.nvim/64b3763c1b388ac5a3d5a2da615a3d0824af4a45' (2024-11-01)
  → 'github:leath-dub/snipe.nvim/e6787c30998b549e75b77b2432bcb7e7c595c30c' (2024-11-10)
• Updated input 'tree-sitter-bash':
    'github:tree-sitter/tree-sitter-bash/597a5ed6ed4d932fd44697feec988f977081ae59' (2024-10-15)
  → 'github:tree-sitter/tree-sitter-bash/49c31006d8307dcb12bc5770f35b6d5b9e2be68e' (2024-11-11)
• Updated input 'tree-sitter-python':
    'github:tree-sitter/tree-sitter-python/7f4b9c2d8039701b0579b7c060a918f8548aa7cd' (2024-10-15)
  → 'github:tree-sitter/tree-sitter-python/6d14e44ea217bc5bb1c1804180e9818d7d1b8d91' (2024-11-11)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/adb6bc4b661a43328752b4575be4968a4990c033' (2024-11-01)
  → 'github:nix-community/NixOS-WSL/a6b9cf0b7805e2c50829020a73e7bde683fd36dd' (2024-11-15)
2024-11-16 03:52:17 +00:00
1022a3998f fix: don't use ~ in activation script 2024-11-11 14:00:41 -07:00
67727954ec fix: nix repl '<nixpkgs>' no longer works 2024-11-11 10:59:59 -07:00
cf8fc2ac56 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/683d0c4cd1102dcccfa3f835565378c7f3cbe05e' (2024-11-01)
  → 'github:lnl7/nix-darwin/2fbf4a8417c28cf45bae6e6e97248cbbd9b78632' (2024-11-08)
• Updated input 'disko':
    'github:nix-community/disko/3979285062d6781525cded0f6c4ff92e71376b55' (2024-10-29)
  → 'github:nix-community/disko/5e40e02978e3bd63c2a6a9fa6fa8ba0e310e747f' (2024-11-08)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/b77ccb5ebd1bfd6e48ffe14f32f275ea30dd4fd6' (2024-11-02)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/22a53e2cae4d37fb24e9326c6f72a54cb4f269d5' (2024-11-09)
• Updated input 'home-manager':
    'github:nix-community/home-manager/1743615b61c7285976f85b303a36cdf88a556503' (2024-11-01)
  → 'github:nix-community/home-manager/2f607e07f3ac7e53541120536708e824acccfaa8' (2024-11-05)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.38.2-nextcloud.tar.gz?narHash=sha256-oCw6Brs85rINBHvz3UJXheyLVqvA3RgPXG03b30Fx7E%3D' (2024-11-02)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.38.2-nextcloud.tar.gz?narHash=sha256-oCw6Brs85rINBHvz3UJXheyLVqvA3RgPXG03b30Fx7E%3D' (2024-11-09)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/807e9154dcb16384b1b765ebe9cd2bba2ac287fd' (2024-10-29)
  → 'github:nixos/nixpkgs/4aa36568d413aca0ea84a1684d2d46f55dbabad7' (2024-11-05)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/080166c15633801df010977d9d7474b4a6c549d7' (2024-10-30)
  → 'github:nixos/nixpkgs/dba414932936fde69f0606b4f1d87c5bc0003ede' (2024-11-06)
• Updated input 'nur':
    'github:nix-community/nur/41c8b0a22b37fb114413b504c74ae64065d2fb83' (2024-11-02)
  → 'github:nix-community/nur/b29499982ee565c8dab5ca5c7be8d2ebfc267d87' (2024-11-09)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/82ab19ebf79c1839d7351f2fed213d1af13a598e' (2024-11-02)
  → 'github:kyazdani42/nvim-tree.lua/3fc8de198c15ec4e5395f57b70579b3959976960' (2024-11-09)
• Updated input 'tiny-inline-diagnostic-nvim-src':
    'github:rachartier/tiny-inline-diagnostic.nvim/25293d87b57ecd901ecc4ffa5dc8868e464f6b54' (2024-10-31)
  → 'github:rachartier/tiny-inline-diagnostic.nvim/86050f39a62de48734f1a2876d70d179b75deb7c' (2024-11-08)
2024-11-09 03:46:56 +00:00
4c38ae86a9 fix ldap search command 2024-11-05 15:31:04 -05:00
4b3bc8a216 fix: 1password renamed to 1password-cli 2024-11-05 10:20:48 -05:00
e9a2ce6df3 fix: move audiobookshelf hostname to common 2024-11-05 10:20:21 -05:00
875054aa2c flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/7840909b00fbd5a183008a6eb251ea307fe4a76e' (2024-10-25)
  → 'github:lnl7/nix-darwin/683d0c4cd1102dcccfa3f835565378c7f3cbe05e' (2024-11-01)
• Updated input 'disko':
    'github:nix-community/disko/09a776702b004fdf9c41a024e1299d575ee18a7d' (2024-10-23)
  → 'github:nix-community/disko/3979285062d6781525cded0f6c4ff92e71376b55' (2024-10-29)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/adf52e031127c5c22abf16d9c2ffcd9c2ad27cc2' (2024-10-26)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/b77ccb5ebd1bfd6e48ffe14f32f275ea30dd4fd6' (2024-11-02)
• Updated input 'home-manager':
    'github:nix-community/home-manager/93435d27d250fa986bfec6b2ff263161ff8288cb' (2024-10-25)
  → 'github:nix-community/home-manager/1743615b61c7285976f85b303a36cdf88a556503' (2024-11-01)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.38.2-nextcloud.tar.gz?narHash=sha256-oCw6Brs85rINBHvz3UJXheyLVqvA3RgPXG03b30Fx7E%3D' (2024-10-12)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.38.2-nextcloud.tar.gz?narHash=sha256-oCw6Brs85rINBHvz3UJXheyLVqvA3RgPXG03b30Fx7E%3D' (2024-11-02)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/2768c7d042a37de65bb1b5b3268fc987e534c49d' (2024-10-23)
  → 'github:nixos/nixpkgs/807e9154dcb16384b1b765ebe9cd2bba2ac287fd' (2024-10-29)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/32e940c7c420600ef0d1ef396dc63b04ee9cad37' (2024-10-23)
  → 'github:nixos/nixpkgs/080166c15633801df010977d9d7474b4a6c549d7' (2024-10-30)
• Updated input 'nur':
    'github:nix-community/nur/bdb41713712fcd619a678cde0dba1ae89d15392e' (2024-10-26)
  → 'github:nix-community/nur/41c8b0a22b37fb114413b504c74ae64065d2fb83' (2024-11-02)
• Updated input 'nvim-lint-src':
    'github:mfussenegger/nvim-lint/16b21a7d04d06661f92f273a0744fd81fb19e09e' (2024-10-17)
  → 'github:mfussenegger/nvim-lint/36da8dd0ddc4f88e0beae234c20e75397326f143' (2024-10-31)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/8760d76c1d316aa46f141f3f2b80b853a2acc41e' (2024-10-25)
  → 'github:kyazdani42/nvim-tree.lua/82ab19ebf79c1839d7351f2fed213d1af13a598e' (2024-11-02)
• Updated input 'snipe-nvim-src':
    'github:leath-dub/snipe.nvim/4e162869cf0a777180c38afdf18f6364dadf877c' (2024-10-20)
  → 'github:leath-dub/snipe.nvim/64b3763c1b388ac5a3d5a2da615a3d0824af4a45' (2024-11-01)
• Updated input 'tiny-inline-diagnostic-nvim-src':
    'github:rachartier/tiny-inline-diagnostic.nvim/ccb67504f93b20f36775d3aad620f9dc9ed98bd9' (2024-10-19)
  → 'github:rachartier/tiny-inline-diagnostic.nvim/25293d87b57ecd901ecc4ffa5dc8868e464f6b54' (2024-10-31)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/5a965cb108fb1f30b29a26dbc29b473f49e80b41' (2024-10-23)
  → 'github:nix-community/NixOS-WSL/adb6bc4b661a43328752b4575be4968a4990c033' (2024-11-01)
2024-11-02 03:47:37 +00:00
4b9eea276b upgrade to nextcloud 30 2024-10-26 18:36:28 +00:00
fc5ed5e892 fix: steam-unwrapped requires unfree exception 2024-10-26 14:22:19 -04:00
1d01ddbbbc flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/48b50b3b137be5cfb9f4d006835ce7c3fe558ccc' (2024-10-08)
  → 'github:lnl7/nix-darwin/7840909b00fbd5a183008a6eb251ea307fe4a76e' (2024-10-25)
• Updated input 'disko':
    'github:nix-community/disko/bdbdb725d632863bdedb80baabf21327614dd237' (2024-10-11)
  → 'github:nix-community/disko/09a776702b004fdf9c41a024e1299d575ee18a7d' (2024-10-23)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/8a3143c1ce147481db4463e71bc3b7002e6ebc56' (2024-10-12)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/adf52e031127c5c22abf16d9c2ffcd9c2ad27cc2' (2024-10-26)
• Updated input 'hmts-nvim-src':
    'github:calops/hmts.nvim/1ecb68b9f89abdb23d2754f9d69f90eab2d33eaa' (2024-09-26)
  → 'github:calops/hmts.nvim/c7ff4c3ad96cd05664b18fb5bbbe2abbd7682dd2' (2024-10-24)
• Updated input 'home-manager':
    'github:nix-community/home-manager/2b13611eaed8326789f76f70d21d06fbb14e3e47' (2024-10-11)
  → 'github:nix-community/home-manager/93435d27d250fa986bfec6b2ff263161ff8288cb' (2024-10-25)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.37.2-nextcloud.tar.gz?narHash=sha256-WwCRAZzxYWUpOy6iVTDpVIr/DrkJkQGjgIdVWNfCH3Q%3D' (2024-10-12)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.37.2-nextcloud.tar.gz?narHash=sha256-WwCRAZzxYWUpOy6iVTDpVIr/DrkJkQGjgIdVWNfCH3Q%3D' (2024-10-26)
• Updated input 'nix2vim':
    'github:gytis-ivaskevicius/nix2vim/da26caae6c7776eedbc6514a0f57f1ccd6a759ed' (2024-10-02)
  → 'github:gytis-ivaskevicius/nix2vim/b3900e6d79233573f318006505d9ad3fb7170b92' (2024-10-16)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/40c8d30c490414910fc63626ad1b67af7db40cd3' (2024-10-10)
  → 'github:nix-community/nixos-generators/7c60ba4bc8d6aa2ba3e5b0f6ceb9fc07bc261565' (2024-10-21)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/b61309c3c1b6013d36299bc8285612865b3b9e4c' (2024-10-06)
  → 'github:nix-community/nixpkgs.lib/cce4521b6df014e79a7b7afc58c703ed683c916e' (2024-10-20)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/5633bcff0c6162b9e4b5f1264264611e950c8ec7' (2024-10-09)
  → 'github:nixos/nixpkgs/2768c7d042a37de65bb1b5b3268fc987e534c49d' (2024-10-23)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/c505ebf777526041d792a49d5f6dd4095ea391a7' (2024-10-11)
  → 'github:nixos/nixpkgs/32e940c7c420600ef0d1ef396dc63b04ee9cad37' (2024-10-23)
• Updated input 'nur':
    'github:nix-community/nur/1d143f52b0a046924ee7fe74bce0bd2e10e07c3d' (2024-10-12)
  → 'github:nix-community/nur/bdb41713712fcd619a678cde0dba1ae89d15392e' (2024-10-26)
• Updated input 'nvim-lint-src':
    'github:mfussenegger/nvim-lint/f707b3ae50417067fa63fdfe179b0bff6b380da1' (2024-10-10)
  → 'github:mfussenegger/nvim-lint/16b21a7d04d06661f92f273a0744fd81fb19e09e' (2024-10-17)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/5ad87620ec9d1190d15c88171a3f0122bc16b0fe' (2024-10-11)
  → 'github:kyazdani42/nvim-tree.lua/8760d76c1d316aa46f141f3f2b80b853a2acc41e' (2024-10-25)
• Updated input 'snipe-nvim-src':
    'github:leath-dub/snipe.nvim/f1abd4aaaef6398b45dcddc9f1a40dd982f732b0' (2024-08-23)
  → 'github:leath-dub/snipe.nvim/4e162869cf0a777180c38afdf18f6364dadf877c' (2024-10-20)
• Updated input 'tiny-inline-diagnostic-nvim-src':
    'github:rachartier/tiny-inline-diagnostic.nvim/1a83e7ce5c9d0ae4d89fc5c812b55ff8ed1d39e7' (2024-09-17)
  → 'github:rachartier/tiny-inline-diagnostic.nvim/ccb67504f93b20f36775d3aad620f9dc9ed98bd9' (2024-10-19)
• Updated input 'tree-sitter-bash':
    'github:tree-sitter/tree-sitter-bash/c8713e50f0bd77d080832fc61ad128bc8f2934e9' (2024-09-03)
  → 'github:tree-sitter/tree-sitter-bash/597a5ed6ed4d932fd44697feec988f977081ae59' (2024-10-15)
• Updated input 'tree-sitter-lua':
    'github:MunifTanjim/tree-sitter-lua/99fc677e6971c425e8d407f59c77ab897e585c92' (2024-09-09)
  → 'github:MunifTanjim/tree-sitter-lua/34e60e7f45fc313463c68090d88d742a55d1bd7a' (2024-10-21)
• Updated input 'tree-sitter-python':
    'github:tree-sitter/tree-sitter-python/8c65e256f971812276ff2a69a2f515c218ed7f82' (2024-09-03)
  → 'github:tree-sitter/tree-sitter-python/7f4b9c2d8039701b0579b7c060a918f8548aa7cd' (2024-10-15)
• Updated input 'tree-sitter-vimdoc':
    'github:neovim/tree-sitter-vimdoc/2249c44ecd3f5cf22da3dcccfb74f816ddb29245' (2024-06-08)
  → 'github:neovim/tree-sitter-vimdoc/d2e4b5c172a109966c2ce0378f73df6cede39400' (2024-10-23)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/0fc8d9bb51cc46b31d950513df6d088905c8fe55' (2024-10-10)
  → 'github:nix-community/NixOS-WSL/5a965cb108fb1f30b29a26dbc29b473f49e80b41' (2024-10-23)
2024-10-26 03:47:10 +00:00
8cba026f10 temp: not sure if this is even required 2024-10-25 08:53:04 -04:00
a6e4b3130d fix: tabs should be spaces 2024-10-19 09:01:26 -04:00
33868c1add fix: only setup desktop entry for gui 2024-10-19 08:45:26 -04:00
d806bd7f56 use dynamic terminal for neovim based on rofi in linux 2024-10-12 11:57:38 -04:00
120b97f970 audiobookshelf 2024-10-12 15:18:58 +00:00
5f71437e57 fix: samba setting renamed 2024-10-12 15:18:15 +00:00
e8e65ba4d1 fix: zfs deprecated latest compatible linux 2024-10-12 15:17:51 +00:00
c594a0b161 use flake input for gh-collaborators 2024-10-12 10:52:04 -04:00
57c3719600 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/8c8388ade72e58efdeae71b4cbb79e872c23a56b' (2024-10-03)
  → 'github:lnl7/nix-darwin/48b50b3b137be5cfb9f4d006835ce7c3fe558ccc' (2024-10-08)
• Updated input 'disko':
    'github:nix-community/disko/48ebb577855fb2398653f033b3b2208a9249203d' (2024-10-05)
  → 'github:nix-community/disko/bdbdb725d632863bdedb80baabf21327614dd237' (2024-10-11)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/1cab93c0c087555cb21dd9ceb383b0d15deade32' (2024-10-06)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/8a3143c1ce147481db4463e71bc3b7002e6ebc56' (2024-10-12)
• Updated input 'home-manager':
    'github:nix-community/home-manager/509dbf8d45606b618e9ec3bbe4e936b7c5bc6c1e' (2024-10-04)
  → 'github:nix-community/home-manager/2b13611eaed8326789f76f70d21d06fbb14e3e47' (2024-10-11)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.37.2-nextcloud.tar.gz?narHash=sha256-WwCRAZzxYWUpOy6iVTDpVIr/DrkJkQGjgIdVWNfCH3Q%3D' (2024-10-06)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.37.2-nextcloud.tar.gz?narHash=sha256-WwCRAZzxYWUpOy6iVTDpVIr/DrkJkQGjgIdVWNfCH3Q%3D' (2024-10-12)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/9ae128172f823956e54947fe471bc6dfa670ecb4' (2024-10-03)
  → 'github:nix-community/nixos-generators/40c8d30c490414910fc63626ad1b67af7db40cd3' (2024-10-10)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/bb58a3bf239e03fca9d51062e2fe028a4ea5a3d1' (2024-09-29)
  → 'github:nix-community/nixpkgs.lib/b61309c3c1b6013d36299bc8285612865b3b9e4c' (2024-10-06)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/bc947f541ae55e999ffdb4013441347d83b00feb' (2024-10-04)
  → 'github:nixos/nixpkgs/5633bcff0c6162b9e4b5f1264264611e950c8ec7' (2024-10-09)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/6e6b3dd395c3b1eb9be9f2d096383a8d05add030' (2024-10-04)
  → 'github:nixos/nixpkgs/c505ebf777526041d792a49d5f6dd4095ea391a7' (2024-10-11)
• Updated input 'nur':
    'github:nix-community/nur/1841d27c08fb58b1bb3e7944711938e719dd532e' (2024-10-06)
  → 'github:nix-community/nur/1d143f52b0a046924ee7fe74bce0bd2e10e07c3d' (2024-10-12)
• Updated input 'nvim-lint-src':
    'github:mfussenegger/nvim-lint/27f44d1cc3d733a38a736acb902f94879d99c76c' (2024-10-03)
  → 'github:mfussenegger/nvim-lint/f707b3ae50417067fa63fdfe179b0bff6b380da1' (2024-10-10)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/c9104a5d079db5a158c9562c54689df27d52dccc' (2024-09-30)
  → 'github:kyazdani42/nvim-tree.lua/5ad87620ec9d1190d15c88171a3f0122bc16b0fe' (2024-10-11)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/31a18ceaeac81e75d10b05ab0dfb4fcc79d4ed1a' (2024-10-05)
  → 'github:nix-community/NixOS-WSL/0fc8d9bb51cc46b31d950513df6d088905c8fe55' (2024-10-10)
2024-10-12 03:46:46 +00:00
98c9c85e95 change update to saturday 2024-10-07 21:00:45 -04:00
3ef36c4873 remove magic prefix from ldap script 2024-10-07 19:23:35 -04:00
1d1d5014a0 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/c03f85fa42d68d1056ca1740f3113b04f3addff2' (2024-09-19)
  → 'github:lnl7/nix-darwin/8c8388ade72e58efdeae71b4cbb79e872c23a56b' (2024-10-03)
• Updated input 'disko':
    'github:nix-community/disko/51994df8ba24d5db5459ccf17b6494643301ad28' (2024-09-20)
  → 'github:nix-community/disko/48ebb577855fb2398653f033b3b2208a9249203d' (2024-10-05)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/947d22726be0ef737ebbe6ffa6f7ff9908576011' (2024-09-22)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/1cab93c0c087555cb21dd9ceb383b0d15deade32' (2024-10-06)
• Updated input 'hmts-nvim-src':
    'github:calops/hmts.nvim/19a91816c123173a4551a6a04f2882338f20db1d' (2024-05-07)
  → 'github:calops/hmts.nvim/1ecb68b9f89abdb23d2754f9d69f90eab2d33eaa' (2024-09-26)
• Updated input 'home-manager':
    'github:nix-community/home-manager/14929f7089268481d86b83ed31ffd88713dcd415' (2024-09-21)
  → 'github:nix-community/home-manager/509dbf8d45606b618e9ec3bbe4e936b7c5bc6c1e' (2024-10-04)
• Updated input 'mac-app-util':
    'github:hraban/mac-app-util/63f269f737cafb2219ba38780c1ecb1dc24bc4a2' (2024-07-02)
  → 'github:hraban/mac-app-util/9c6bbe2a6a7ec647d03f64f0fadb874284f59eac' (2024-09-27)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.37.2-nextcloud.tar.gz?narHash=sha256-WwCRAZzxYWUpOy6iVTDpVIr/DrkJkQGjgIdVWNfCH3Q%3D' (2024-09-22)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.37.2-nextcloud.tar.gz?narHash=sha256-WwCRAZzxYWUpOy6iVTDpVIr/DrkJkQGjgIdVWNfCH3Q%3D' (2024-10-06)
• Updated input 'nix2vim':
    'github:gytis-ivaskevicius/nix2vim/1db11dbf8a4d124e02244fa5c4ff219b672a8e5b' (2024-06-17)
  → 'github:gytis-ivaskevicius/nix2vim/da26caae6c7776eedbc6514a0f57f1ccd6a759ed' (2024-10-02)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/bfa25c9065f4cb5d884a0ad70f6e82f55ae90448' (2024-09-20)
  → 'github:nix-community/nixos-generators/9ae128172f823956e54947fe471bc6dfa670ecb4' (2024-10-03)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/9db4db09d82e4b2207bfa7f1e747a4f49d214555' (2024-09-15)
  → 'github:nix-community/nixpkgs.lib/bb58a3bf239e03fca9d51062e2fe028a4ea5a3d1' (2024-09-29)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/c04d5652cfa9742b1d519688f65d1bbccea9eb7e' (2024-09-19)
  → 'github:nixos/nixpkgs/bc947f541ae55e999ffdb4013441347d83b00feb' (2024-10-04)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/944b2aea7f0a2d7c79f72468106bc5510cbf5101' (2024-09-20)
  → 'github:nixos/nixpkgs/6e6b3dd395c3b1eb9be9f2d096383a8d05add030' (2024-10-04)
• Updated input 'nur':
    'github:nix-community/nur/9552e6f691915e173c3dac2e7d96bd2d9d2c2416' (2024-09-22)
  → 'github:nix-community/nur/1841d27c08fb58b1bb3e7944711938e719dd532e' (2024-10-06)
• Updated input 'nvim-lint-src':
    'github:mfussenegger/nvim-lint/c823e2d0621b5c15aa6b46be4d69b1379bcb8fa6' (2024-09-20)
  → 'github:mfussenegger/nvim-lint/27f44d1cc3d733a38a736acb902f94879d99c76c' (2024-10-03)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/e7cdecc6363acef8232f2f099fe21096ffdc071f' (2024-09-21)
  → 'github:kyazdani42/nvim-tree.lua/c9104a5d079db5a158c9562c54689df27d52dccc' (2024-09-30)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/cc84991d069d1948bb7c2c24a9874c0a835621e6' (2024-09-20)
  → 'github:nix-community/NixOS-WSL/31a18ceaeac81e75d10b05ab0dfb4fcc79d4ed1a' (2024-10-05)
• Updated input 'wsl/flake-utils':
    'github:numtide/flake-utils/b1d9ab70662946ef0850d488da1c9019f3a9752a' (2024-03-11)
  → 'github:numtide/flake-utils/c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a' (2024-09-17)
2024-10-06 03:51:27 +00:00
1f64ed0bb8 fix: dwarf fortress phoebus-theme now unfree
e40e703411
2024-09-30 20:30:29 -04:00
2bfb8ea8b5 disable tab previews in firefox 2024-09-27 14:28:44 -04:00
e91d6665fb add git abbreviation for deleting branches 2024-09-27 14:28:13 -04:00
7e3ab279af update neovim plugins 2024-09-25 16:59:40 -04:00
cdb9da9c50 add gdd to delete git local and remote branch 2024-09-25 16:58:42 -04:00
46bbd2c967 add darwin stateversion (required by nix-darwin) 2024-09-25 16:58:03 -04:00
51bee71faf move hostname to common because services aren't in darwin 2024-09-25 16:57:44 -04:00
a7adc18463 add = to convert program to full path 2024-09-25 16:43:48 -04:00
25a959f404 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/21fe31f26473c180390cfa81e3ea81aca0204c80' (2024-09-13)
  → 'github:lnl7/nix-darwin/c03f85fa42d68d1056ca1740f3113b04f3addff2' (2024-09-19)
• Updated input 'disko':
    'github:nix-community/disko/3632080c41d7a657995807689a08ef6c4bcb2c72' (2024-09-14)
  → 'github:nix-community/disko/51994df8ba24d5db5459ccf17b6494643301ad28' (2024-09-20)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/449fef46920108ca18c6031a2c96611b67dc4941' (2024-09-15)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/947d22726be0ef737ebbe6ffa6f7ff9908576011' (2024-09-22)
• Updated input 'home-manager':
    'github:nix-community/home-manager/e524c57b1fa55d6ca9d8354c6ce1e538d2a1f47f' (2024-09-14)
  → 'github:nix-community/home-manager/14929f7089268481d86b83ed31ffd88713dcd415' (2024-09-21)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.37.2-nextcloud.tar.gz?narHash=sha256-WwCRAZzxYWUpOy6iVTDpVIr/DrkJkQGjgIdVWNfCH3Q%3D' (2024-09-15)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.37.2-nextcloud.tar.gz?narHash=sha256-WwCRAZzxYWUpOy6iVTDpVIr/DrkJkQGjgIdVWNfCH3Q%3D' (2024-09-22)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/5ae384b83b91080f0fead6bc1add1cff8277cb3f' (2024-09-12)
  → 'github:nix-community/nixos-generators/bfa25c9065f4cb5d884a0ad70f6e82f55ae90448' (2024-09-20)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/68584f89dd0eb16fea5d80ae127f3f681f6a5df7' (2024-09-08)
  → 'github:nix-community/nixpkgs.lib/9db4db09d82e4b2207bfa7f1e747a4f49d214555' (2024-09-15)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/4f807e8940284ad7925ebd0a0993d2a1791acb2f' (2024-09-11)
  → 'github:nixos/nixpkgs/c04d5652cfa9742b1d519688f65d1bbccea9eb7e' (2024-09-19)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/e65aa8301ba4f0ab8cb98f944c14aa9da07394f8' (2024-09-11)
  → 'github:nixos/nixpkgs/944b2aea7f0a2d7c79f72468106bc5510cbf5101' (2024-09-20)
• Updated input 'nur':
    'github:nix-community/nur/91d349ff0b378cfc65aef0d0c38a1a08f24efe2d' (2024-09-15)
  → 'github:nix-community/nur/9552e6f691915e173c3dac2e7d96bd2d9d2c2416' (2024-09-22)
• Updated input 'nvim-lint-src':
    'github:mfussenegger/nvim-lint/99cab0b885aaa2f59736c047d23e9a7835d4f9a9' (2024-09-14)
  → 'github:mfussenegger/nvim-lint/c823e2d0621b5c15aa6b46be4d69b1379bcb8fa6' (2024-09-20)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/45a93d99794fff3064141d5b3a50db98ce352697' (2024-09-15)
  → 'github:kyazdani42/nvim-tree.lua/e7cdecc6363acef8232f2f099fe21096ffdc071f' (2024-09-21)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/399062d072355be7cd3441a7931cb05378a6c6a2' (2024-09-14)
  → 'github:nvim-treesitter/nvim-treesitter/929ca9c76ee20bb27cffbde4ee90583b6c54d616' (2024-09-21)
• Updated input 'tiny-inline-diagnostic-nvim-src':
    'github:rachartier/tiny-inline-diagnostic.nvim/b2adb63ffd952c72eadd036a262e6e6c60de19f3' (2024-09-13)
  → 'github:rachartier/tiny-inline-diagnostic.nvim/1a83e7ce5c9d0ae4d89fc5c812b55ff8ed1d39e7' (2024-09-17)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/34b95b3962f5b3436d4bae5091d1b2ff7c1eb180' (2024-09-09)
  → 'github:nix-community/NixOS-WSL/cc84991d069d1948bb7c2c24a9874c0a835621e6' (2024-09-20)
2024-09-22 03:49:30 +00:00
9f31d775c7 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/76559183801030451e200c90a1627c1d82bb4910' (2024-09-06)
  → 'github:lnl7/nix-darwin/21fe31f26473c180390cfa81e3ea81aca0204c80' (2024-09-13)
• Updated input 'disko':
    'github:nix-community/disko/e55f9a8678adc02024a4877c2a403e3f6daf24fe' (2024-09-03)
  → 'github:nix-community/disko/3632080c41d7a657995807689a08ef6c4bcb2c72' (2024-09-14)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/1770fbd40babfb807f258b70b7992eaf6d09a712' (2024-09-09)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/449fef46920108ca18c6031a2c96611b67dc4941' (2024-09-15)
• Updated input 'home-manager':
    'github:nix-community/home-manager/aaebdea769a5c10f1c6e50ebdf5924c1a13f0cda' (2024-09-07)
  → 'github:nix-community/home-manager/e524c57b1fa55d6ca9d8354c6ce1e538d2a1f47f' (2024-09-14)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.37.2-nextcloud.tar.gz?narHash=sha256-WwCRAZzxYWUpOy6iVTDpVIr/DrkJkQGjgIdVWNfCH3Q%3D' (2024-09-08)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.37.2-nextcloud.tar.gz?narHash=sha256-WwCRAZzxYWUpOy6iVTDpVIr/DrkJkQGjgIdVWNfCH3Q%3D' (2024-09-15)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/15a07ebf4a041bf232026263f1f96f2af390f3bc' (2024-09-05)
  → 'github:nix-community/nixos-generators/5ae384b83b91080f0fead6bc1add1cff8277cb3f' (2024-09-12)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/7f0b9e4fbd91826cb9ce6babbc11c87903191051' (2024-09-01)
  → 'github:nix-community/nixpkgs.lib/68584f89dd0eb16fea5d80ae127f3f681f6a5df7' (2024-09-08)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/574d1eac1c200690e27b8eb4e24887f8df7ac27c' (2024-09-06)
  → 'github:nixos/nixpkgs/4f807e8940284ad7925ebd0a0993d2a1791acb2f' (2024-09-11)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/6f6c45b5134a8ee2e465164811e451dcb5ad86e3' (2024-09-03)
  → 'github:nixos/nixpkgs/e65aa8301ba4f0ab8cb98f944c14aa9da07394f8' (2024-09-11)
• Updated input 'nur':
    'github:nix-community/nur/98eaa05e5fe457f8606c82d3aded375f4ada2a00' (2024-09-08)
  → 'github:nix-community/nur/91d349ff0b378cfc65aef0d0c38a1a08f24efe2d' (2024-09-15)
• Updated input 'nvim-lint-src':
    'github:mfussenegger/nvim-lint/a7ce9c78a7c710c28bee56dfab10a5c0c80b7fb5' (2024-09-03)
  → 'github:mfussenegger/nvim-lint/99cab0b885aaa2f59736c047d23e9a7835d4f9a9' (2024-09-14)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/ea55ef12036897fdc4476b115a395d2a34965c82' (2024-09-01)
  → 'github:kyazdani42/nvim-tree.lua/45a93d99794fff3064141d5b3a50db98ce352697' (2024-09-15)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/58030e6d6f1d6609b43dcb765d54539dcc6a1a76' (2024-09-07)
  → 'github:nvim-treesitter/nvim-treesitter/399062d072355be7cd3441a7931cb05378a6c6a2' (2024-09-14)
• Updated input 'telescope-project-nvim-src':
    'github:nvim-telescope/telescope-project.nvim/1aaf16580a614601a7f7077d9639aeb457dc5559' (2023-12-01)
  → 'github:nvim-telescope/telescope-project.nvim/796200876bb0fe8157b8eb1ce03d927d3827a052' (2024-09-09)
• Updated input 'tiny-inline-diagnostic-nvim-src':
    'github:rachartier/tiny-inline-diagnostic.nvim/c0543b2980251a7a2024e936ef724dcdfb07bb87' (2024-09-05)
  → 'github:rachartier/tiny-inline-diagnostic.nvim/b2adb63ffd952c72eadd036a262e6e6c60de19f3' (2024-09-13)
• Updated input 'tree-sitter-lua':
    'github:MunifTanjim/tree-sitter-lua/a24dab177e58c9c6832f96b9a73102a0cfbced4a' (2024-03-11)
  → 'github:MunifTanjim/tree-sitter-lua/99fc677e6971c425e8d407f59c77ab897e585c92' (2024-09-09)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/8a89995f745b1a9029d654c391a0f62ca03f7fe7' (2024-09-03)
  → 'github:nix-community/NixOS-WSL/34b95b3962f5b3436d4bae5091d1b2ff7c1eb180' (2024-09-09)
2024-09-15 03:49:10 +00:00
5306070bc5 add uptime-kuma status page 2024-09-14 22:13:13 +00:00
b729eff679 temp: allow litestream though insecure 2024-09-14 21:57:35 +00:00
4883532c65 vim-abolish to replace with caps in neovim 2024-09-09 17:10:39 -04:00
982d3ce2d8 fix 1password-gui on macos (not available) 2024-09-09 17:09:11 -04:00
64311e6e1c remove stu and markview from overlays 2024-09-09 17:08:39 -04:00
83c9393837 fix: wexterm renders blocks of color instead of text
https://github.com/wez/wezterm/issues/5990
2024-09-09 16:41:10 -04:00
e72d4eb548 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/ea319a737939094b48fda9063fa3201ef2479aac' (2024-08-24)
  → 'github:lnl7/nix-darwin/76559183801030451e200c90a1627c1d82bb4910' (2024-09-06)
• Updated input 'disko':
    'github:nix-community/disko/435737144be0259559ca3b43f7d72252b1fdcc1b' (2024-08-22)
  → 'github:nix-community/disko/e55f9a8678adc02024a4877c2a403e3f6daf24fe' (2024-09-03)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/75c57b274d5c01b1625e52b42de9f6cc8f250348' (2024-08-25)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/863c7532c468f208ce8cb651e44f63408d548c3f' (2024-09-08)
• Updated input 'home-manager':
    'github:nix-community/home-manager/c2cd2a52e02f1dfa1c88f95abeb89298d46023be' (2024-08-23)
  → 'github:nix-community/home-manager/aaebdea769a5c10f1c6e50ebdf5924c1a13f0cda' (2024-09-07)
• Updated input 'markview-nvim-src':
    'github:OXY2DEV/markview.nvim/1e79753588bf4fc4554ab4a25d45b8dbfd10f69d' (2024-08-24)
  → 'github:OXY2DEV/markview.nvim/e4b4b9d03b90350236ce88f5be723aa5a8610931' (2024-09-05)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.37.2-nextcloud.tar.gz?narHash=sha256-WwCRAZzxYWUpOy6iVTDpVIr/DrkJkQGjgIdVWNfCH3Q%3D' (2024-08-25)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.37.2-nextcloud.tar.gz?narHash=sha256-WwCRAZzxYWUpOy6iVTDpVIr/DrkJkQGjgIdVWNfCH3Q%3D' (2024-09-08)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/0552f784af9f211481c5dda6df9b918733492826' (2024-08-22)
  → 'github:nix-community/nixos-generators/15a07ebf4a041bf232026263f1f96f2af390f3bc' (2024-09-05)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/531a2e8416a6d8200a53eddfbdb8f2c8dc4a1251' (2024-08-18)
  → 'github:nix-community/nixpkgs.lib/7f0b9e4fbd91826cb9ce6babbc11c87903191051' (2024-09-01)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/c374d94f1536013ca8e92341b540eba4c22f9c62' (2024-08-21)
  → 'github:nixos/nixpkgs/574d1eac1c200690e27b8eb4e24887f8df7ac27c' (2024-09-06)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/797f7dc49e0bc7fab4b57c021cdf68f595e47841' (2024-08-22)
  → 'github:nixos/nixpkgs/6f6c45b5134a8ee2e465164811e451dcb5ad86e3' (2024-09-03)
• Updated input 'nur':
    'github:nix-community/nur/7b9ec8855b97a2b9e5a8408c1bec00d5944799c0' (2024-08-25)
  → 'github:nix-community/nur/98eaa05e5fe457f8606c82d3aded375f4ada2a00' (2024-09-08)
• Updated input 'nvim-lint-src':
    'github:mfussenegger/nvim-lint/debabca63c0905b59ce596a55a8e33eafdf66342' (2024-08-16)
  → 'github:mfussenegger/nvim-lint/a7ce9c78a7c710c28bee56dfab10a5c0c80b7fb5' (2024-09-03)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/d43ab67d0eb4317961c5e9d15fffe908519debe0' (2024-08-25)
  → 'github:kyazdani42/nvim-tree.lua/ea55ef12036897fdc4476b115a395d2a34965c82' (2024-09-01)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/e085c614fcd716eedb8e2e55bae2ccad4becd40d' (2024-08-24)
  → 'github:nvim-treesitter/nvim-treesitter/58030e6d6f1d6609b43dcb765d54539dcc6a1a76' (2024-09-07)
• Updated input 'stu':
    'github:lusingander/stu/aefd555fb3e128d40f8bd80d37aa5c6e5d8bc011' (2024-07-22)
  → 'github:lusingander/stu/6899c43edc34aeea99b632ae18c793f040160a99' (2024-09-07)
• Updated input 'tiny-inline-diagnostic-nvim-src':
    'github:rachartier/tiny-inline-diagnostic.nvim/c0b058439d3a592c04967e475fc83cf41d6aad0e' (2024-08-23)
  → 'github:rachartier/tiny-inline-diagnostic.nvim/c0543b2980251a7a2024e936ef724dcdfb07bb87' (2024-09-05)
• Updated input 'tree-sitter-bash':
    'github:tree-sitter/tree-sitter-bash/2fbd860f802802ca76a6661ce025b3a3bca2d3ed' (2024-05-06)
  → 'github:tree-sitter/tree-sitter-bash/c8713e50f0bd77d080832fc61ad128bc8f2934e9' (2024-09-03)
• Updated input 'tree-sitter-ini':
    'github:justinmk/tree-sitter-ini/87176e524f0a98f5be75fa44f4f0ff5c6eac069c' (2024-05-28)
  → 'github:justinmk/tree-sitter-ini/962568c9efa71d25720ab42c5d36e222626ef3a6' (2024-09-01)
• Updated input 'tree-sitter-python':
    'github:tree-sitter/tree-sitter-python/55a9b8a4fbfbaf0d10cdd47dd4a9d02606c4c218' (2024-08-18)
  → 'github:tree-sitter/tree-sitter-python/8c65e256f971812276ff2a69a2f515c218ed7f82' (2024-09-03)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/0bec2bfb8a2d4dd16e5b012982ca95e57d50e6a2' (2024-08-19)
  → 'github:nix-community/NixOS-WSL/8a89995f745b1a9029d654c391a0f62ca03f7fe7' (2024-09-03)
2024-09-08 03:46:41 +00:00
b51df2f3a3 Revert "flake.lock: Update"
This reverts commit 48b1d41aff.
2024-09-06 21:03:43 +00:00
f47f397e1f fix: n8n urls for auth redirects 2024-09-06 20:10:03 +00:00
48b1d41aff flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/ea319a737939094b48fda9063fa3201ef2479aac' (2024-08-24)
  → 'github:lnl7/nix-darwin/c8d3157d1f768e382de5526bb38e74d2245cad04' (2024-08-30)
• Updated input 'disko':
    'github:nix-community/disko/435737144be0259559ca3b43f7d72252b1fdcc1b' (2024-08-22)
  → 'github:nix-community/disko/511388d837178979de66d14ca4a2ebd5f7991cd3' (2024-08-29)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/75c57b274d5c01b1625e52b42de9f6cc8f250348' (2024-08-25)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/d6fb0bcaf97c356862baf1c90724314f36eebb72' (2024-09-01)
• Updated input 'markview-nvim-src':
    'github:OXY2DEV/markview.nvim/1e79753588bf4fc4554ab4a25d45b8dbfd10f69d' (2024-08-24)
  → 'github:OXY2DEV/markview.nvim/ea71a5bc6e0a0b28af62e2f21d264ddcc466bd51' (2024-08-31)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.37.2-nextcloud.tar.gz?narHash=sha256-WwCRAZzxYWUpOy6iVTDpVIr/DrkJkQGjgIdVWNfCH3Q%3D' (2024-08-25)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.37.2-nextcloud.tar.gz?narHash=sha256-WwCRAZzxYWUpOy6iVTDpVIr/DrkJkQGjgIdVWNfCH3Q%3D' (2024-09-01)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/0552f784af9f211481c5dda6df9b918733492826' (2024-08-22)
  → 'github:nix-community/nixos-generators/0dd0205bc3f6d602ddb62aaece5f62a8715a9e85' (2024-08-29)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/531a2e8416a6d8200a53eddfbdb8f2c8dc4a1251' (2024-08-18)
  → 'github:nix-community/nixpkgs.lib/b741d900fecd2f0c32d90f853b24be9f5f098b7d' (2024-08-25)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/c374d94f1536013ca8e92341b540eba4c22f9c62' (2024-08-21)
  → 'github:nixos/nixpkgs/71e91c409d1e654808b2621f28a327acfdad8dc2' (2024-08-28)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/797f7dc49e0bc7fab4b57c021cdf68f595e47841' (2024-08-22)
  → 'github:nixos/nixpkgs/6e99f2a27d600612004fbd2c3282d614bfee6421' (2024-08-30)
• Updated input 'nur':
    'github:nix-community/nur/7b9ec8855b97a2b9e5a8408c1bec00d5944799c0' (2024-08-25)
  → 'github:nix-community/nur/45a53f457546d3c0bf3c4f4673cb53bb78279a07' (2024-09-01)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/e085c614fcd716eedb8e2e55bae2ccad4becd40d' (2024-08-24)
  → 'github:nvim-treesitter/nvim-treesitter/749df308870381979dc098063973f6ace9968ef6' (2024-08-31)
• Updated input 'tiny-inline-diagnostic-nvim-src':
    'github:rachartier/tiny-inline-diagnostic.nvim/c0b058439d3a592c04967e475fc83cf41d6aad0e' (2024-08-23)
  → 'github:rachartier/tiny-inline-diagnostic.nvim/8387094305d51c55100528c6a45254c011f8ba13' (2024-08-30)
• Updated input 'tree-sitter-ini':
    'github:justinmk/tree-sitter-ini/87176e524f0a98f5be75fa44f4f0ff5c6eac069c' (2024-05-28)
  → 'github:justinmk/tree-sitter-ini/fc37e95b8d9651c60d81cccbcbbc55867dbb0afd' (2024-08-29)
• Updated input 'tree-sitter-python':
    'github:tree-sitter/tree-sitter-python/55a9b8a4fbfbaf0d10cdd47dd4a9d02606c4c218' (2024-08-18)
  → 'github:tree-sitter/tree-sitter-python/346fa42dc2990d2a2736cc60891369d0d3d8e65c' (2024-08-26)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/0bec2bfb8a2d4dd16e5b012982ca95e57d50e6a2' (2024-08-19)
  → 'github:nix-community/NixOS-WSL/345dfa06658a37873ca18aa205f409e4aaf1caa6' (2024-08-26)
2024-09-01 03:49:32 +00:00
25c4e79ccc add filebrowser app as nextcloud alternative 2024-08-25 21:56:28 +00:00
3b86a666fd add ntfy push notifications 2024-08-25 21:04:16 +00:00
264ad53f67 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/91010a5613ffd7ee23ee9263213157a1c422b705' (2024-08-06)
  → 'github:lnl7/nix-darwin/ea319a737939094b48fda9063fa3201ef2479aac' (2024-08-24)
• Updated input 'disko':
    'github:nix-community/disko/ffc1f95f6c28e1c6d1e587b51a2147027a3e45ed' (2024-08-08)
  → 'github:nix-community/disko/435737144be0259559ca3b43f7d72252b1fdcc1b' (2024-08-22)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/6ffec5acd449b5f2ab4b22c271ad1670a790a1e1' (2024-08-11)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/75c57b274d5c01b1625e52b42de9f6cc8f250348' (2024-08-25)
• Updated input 'home-manager':
    'github:nix-community/home-manager/b3d5ea65d88d67d4ec578ed11d4d2d51e3de525e' (2024-08-07)
  → 'github:nix-community/home-manager/c2cd2a52e02f1dfa1c88f95abeb89298d46023be' (2024-08-23)
• Updated input 'markview-nvim-src':
    'github:OXY2DEV/markview.nvim/c9fa1065098663c3bfe7e07656937c3d2f3dabea' (2024-08-11)
  → 'github:OXY2DEV/markview.nvim/1e79753588bf4fc4554ab4a25d45b8dbfd10f69d' (2024-08-24)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.37.2-nextcloud.tar.gz?narHash=sha256-WwCRAZzxYWUpOy6iVTDpVIr/DrkJkQGjgIdVWNfCH3Q%3D' (2024-08-18)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.37.2-nextcloud.tar.gz?narHash=sha256-WwCRAZzxYWUpOy6iVTDpVIr/DrkJkQGjgIdVWNfCH3Q%3D' (2024-08-25)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/d6c5d29f58acc10ea82afff1de2b28f038f572bd' (2024-08-08)
  → 'github:nix-community/nixos-generators/0552f784af9f211481c5dda6df9b918733492826' (2024-08-22)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/8bebd4c74f368aacb047f0141db09ec6b339733c' (2024-08-04)
  → 'github:nix-community/nixpkgs.lib/531a2e8416a6d8200a53eddfbdb8f2c8dc4a1251' (2024-08-18)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/5e0ca22929f3342b19569b21b2f3462f053e497b' (2024-08-09)
  → 'github:nixos/nixpkgs/c374d94f1536013ca8e92341b540eba4c22f9c62' (2024-08-21)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/c3d4ac725177c030b1e289015989da2ad9d56af0' (2024-08-15)
  → 'github:nixos/nixpkgs/797f7dc49e0bc7fab4b57c021cdf68f595e47841' (2024-08-22)
• Updated input 'nur':
    'github:nix-community/nur/638e850bd503b43214c8e39a838c625f011d9b10' (2024-08-11)
  → 'github:nix-community/nur/7b9ec8855b97a2b9e5a8408c1bec00d5944799c0' (2024-08-25)
• Updated input 'nvim-lint-src':
    'github:mfussenegger/nvim-lint/ad0fe35e80f5cd31a0f19176d7b30e5c3011119d' (2024-08-10)
  → 'github:mfussenegger/nvim-lint/debabca63c0905b59ce596a55a8e33eafdf66342' (2024-08-16)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/ad0b95dee55955817af635fa121f6e2486b10583' (2024-08-10)
  → 'github:kyazdani42/nvim-tree.lua/d43ab67d0eb4317961c5e9d15fffe908519debe0' (2024-08-25)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/8a966f32c973511f9697264b3533e9846d29fd09' (2024-08-10)
  → 'github:nvim-treesitter/nvim-treesitter/e085c614fcd716eedb8e2e55bae2ccad4becd40d' (2024-08-24)
• Updated input 'snipe-nvim-src':
    'github:leath-dub/snipe.nvim/854a47c970413405361487c13e2b1e9aa9a3696e' (2024-08-04)
  → 'github:leath-dub/snipe.nvim/f1abd4aaaef6398b45dcddc9f1a40dd982f732b0' (2024-08-23)
• Updated input 'tiny-inline-diagnostic-nvim-src':
    'github:rachartier/tiny-inline-diagnostic.nvim/7b212b214aed37d8ae1a26ac6ca9593223a23ddb' (2024-08-10)
  → 'github:rachartier/tiny-inline-diagnostic.nvim/c0b058439d3a592c04967e475fc83cf41d6aad0e' (2024-08-23)
• Updated input 'tree-sitter-python':
    'github:tree-sitter/tree-sitter-python/0dee05ef958ba2eae88d1e65f24b33cad70d4367' (2024-07-14)
  → 'github:tree-sitter/tree-sitter-python/55a9b8a4fbfbaf0d10cdd47dd4a9d02606c4c218' (2024-08-18)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/be1a6b2e4ddc34b9b6a297e7df2f2a2ecee24690' (2024-08-08)
  → 'github:nix-community/NixOS-WSL/0bec2bfb8a2d4dd16e5b012982ca95e57d50e6a2' (2024-08-19)
2024-08-25 03:46:15 +00:00
1cb5d3138c more caddy log tweaks 2024-08-21 01:23:08 +00:00
9c4438bed2 enable n8n on flame 2024-08-19 20:32:57 +00:00
642d3c183f try changing grafana zfs from increase to delta 2024-08-19 00:04:43 +00:00
5798406977 add denylist to top of caddy routes 2024-08-19 00:04:33 +00:00
81cb603bb7 fix: vmagent scrape size exceeded 2024-08-18 19:36:29 -04:00
1e7c69b3ea add missing paperless service in grafana 2024-08-18 19:35:44 -04:00
45deba10af add shortcut for systemctl cat 2024-08-18 19:35:30 -04:00
d1721efc6c fix: vmagent 102 doesn't work, resort to nixpkgs-stable 2024-08-18 22:23:13 +00:00
96caba63c4 fix: nextcloud apps must be unpacked
compressed sources are no longer unpacked by default
2024-08-18 22:09:56 +00:00
01cd6151c1 calibre-web patch no longer needed for session 2024-08-18 22:09:28 +00:00
e6644ab7b9 add unused calendar application placeholder 2024-08-18 16:42:39 -04:00
e43f6cf000 use alt-t for new wezterm tab on linux 2024-08-18 16:41:31 -04:00
a9cdf6ac38 remove keyboard section from polybar
no longer needed after switching from keyd to kanata
2024-08-18 16:37:33 -04:00
9fb7f68b07 split caddy logging by host and error
also add debug, admin, and other log
2024-08-18 15:42:30 +00:00
845fc000b6 Revert "flake.lock: Update"
This reverts commit 0b0556f057.
2024-08-18 15:15:05 +00:00
0b0556f057 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/91010a5613ffd7ee23ee9263213157a1c422b705' (2024-08-06)
  → 'github:lnl7/nix-darwin/076b9a905af8a52b866c8db068d6da475839d97b' (2024-08-17)
• Updated input 'disko':
    'github:nix-community/disko/ffc1f95f6c28e1c6d1e587b51a2147027a3e45ed' (2024-08-08)
  → 'github:nix-community/disko/276a0d055a720691912c6a34abb724e395c8e38a' (2024-08-15)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/6ffec5acd449b5f2ab4b22c271ad1670a790a1e1' (2024-08-11)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/4a17fec79e6c600f3c2e57984197cb7834a616b0' (2024-08-18)
• Updated input 'home-manager':
    'github:nix-community/home-manager/b3d5ea65d88d67d4ec578ed11d4d2d51e3de525e' (2024-08-07)
  → 'github:nix-community/home-manager/086f619dd991a4d355c07837448244029fc2d9ab' (2024-08-11)
• Updated input 'markview-nvim-src':
    'github:OXY2DEV/markview.nvim/c9fa1065098663c3bfe7e07656937c3d2f3dabea' (2024-08-11)
  → 'github:OXY2DEV/markview.nvim/738ddc0390449c0652f34b99a6cbe0699b2fcf58' (2024-08-17)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.36.4-nextcloud.tar.gz?narHash=sha256-HlqO7xlMSRGgBtwi0t5oz5v7iw0zTSHysc9wGVRwGZI%3D' (2024-08-11)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.36.4-nextcloud.tar.gz?narHash=sha256-HlqO7xlMSRGgBtwi0t5oz5v7iw0zTSHysc9wGVRwGZI%3D' (2024-08-18)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/d6c5d29f58acc10ea82afff1de2b28f038f572bd' (2024-08-08)
  → 'github:nix-community/nixos-generators/32e9d82bada67fc5155e8d4d99b6fc3a1765bfdc' (2024-08-17)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/8bebd4c74f368aacb047f0141db09ec6b339733c' (2024-08-04)
  → 'github:nix-community/nixpkgs.lib/ace7856d327b618d3777e31b1f224b3ab57ed71a' (2024-08-11)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/5e0ca22929f3342b19569b21b2f3462f053e497b' (2024-08-09)
  → 'github:nixos/nixpkgs/c3aa7b8938b17aebd2deecf7be0636000d62a2b9' (2024-08-14)
• Updated input 'nur':
    'github:nix-community/nur/638e850bd503b43214c8e39a838c625f011d9b10' (2024-08-11)
  → 'github:nix-community/nur/eefd7f643ffeb25543019d48952e66ddae3da583' (2024-08-18)
• Updated input 'nvim-lint-src':
    'github:mfussenegger/nvim-lint/ad0fe35e80f5cd31a0f19176d7b30e5c3011119d' (2024-08-10)
  → 'github:mfussenegger/nvim-lint/debabca63c0905b59ce596a55a8e33eafdf66342' (2024-08-16)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/8a966f32c973511f9697264b3533e9846d29fd09' (2024-08-10)
  → 'github:nvim-treesitter/nvim-treesitter/6d74da7f0a29c35ee7636e157e72dd221e8d6197' (2024-08-17)
• Updated input 'tiny-inline-diagnostic-nvim-src':
    'github:rachartier/tiny-inline-diagnostic.nvim/7b212b214aed37d8ae1a26ac6ca9593223a23ddb' (2024-08-10)
  → 'github:rachartier/tiny-inline-diagnostic.nvim/957e1a4710f2cbad66b747c579ab8b450bda9dd6' (2024-08-16)
• Updated input 'tree-sitter-python':
    'github:tree-sitter/tree-sitter-python/0dee05ef958ba2eae88d1e65f24b33cad70d4367' (2024-07-14)
  → 'github:tree-sitter/tree-sitter-python/55a9b8a4fbfbaf0d10cdd47dd4a9d02606c4c218' (2024-08-18)
2024-08-18 03:44:46 +00:00
771cac63a3 save letsencrypt key for acme 2024-08-17 08:55:03 -04:00
f7c5d3510f add acme email to caddy tls 2024-08-14 09:41:12 -04:00
6866ca5fee add snipe.nvim for jumping buffers on gb 2024-08-11 21:55:14 -04:00
883dc15b3d flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/f7142b8024d6b70c66fd646e1d099d3aa5bfec49' (2024-08-02)
  → 'github:lnl7/nix-darwin/91010a5613ffd7ee23ee9263213157a1c422b705' (2024-08-06)
• Updated input 'disko':
    'github:nix-community/disko/7e1b215a0a96efb306ad6440bf706d2b307dc267' (2024-08-01)
  → 'github:nix-community/disko/ffc1f95f6c28e1c6d1e587b51a2147027a3e45ed' (2024-08-08)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/1e21b72d579f06362e01f594b713fa1d51622c21' (2024-08-04)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/6ffec5acd449b5f2ab4b22c271ad1670a790a1e1' (2024-08-11)
• Updated input 'home-manager':
    'github:nix-community/home-manager/afc892db74d65042031a093adb6010c4c3378422' (2024-08-02)
  → 'github:nix-community/home-manager/b3d5ea65d88d67d4ec578ed11d4d2d51e3de525e' (2024-08-07)
• Updated input 'markview-nvim-src':
    'github:OXY2DEV/markview.nvim/d0ccc97b5c988fb28e5033abdf7b832b9dfaf897' (2024-07-31)
  → 'github:OXY2DEV/markview.nvim/c9fa1065098663c3bfe7e07656937c3d2f3dabea' (2024-08-11)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.36.4-nextcloud.tar.gz?narHash=sha256-HlqO7xlMSRGgBtwi0t5oz5v7iw0zTSHysc9wGVRwGZI%3D' (2024-08-04)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.36.4-nextcloud.tar.gz?narHash=sha256-HlqO7xlMSRGgBtwi0t5oz5v7iw0zTSHysc9wGVRwGZI%3D' (2024-08-11)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/75cbb2a5e19c18840d105a72d036c6c92fc46c5d' (2024-07-29)
  → 'github:nix-community/nixos-generators/d6c5d29f58acc10ea82afff1de2b28f038f572bd' (2024-08-08)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/d15f6f6021693898fcd2c6a9bb13707383da9bbc' (2024-07-28)
  → 'github:nix-community/nixpkgs.lib/8bebd4c74f368aacb047f0141db09ec6b339733c' (2024-08-04)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/9f918d616c5321ad374ae6cb5ea89c9e04bf3e58' (2024-07-31)
  → 'github:nixos/nixpkgs/5e0ca22929f3342b19569b21b2f3462f053e497b' (2024-08-09)
• Updated input 'nur':
    'github:nix-community/nur/d95fbf93429f5c9f4e41249212d2386a995f0cc3' (2024-08-04)
  → 'github:nix-community/nur/638e850bd503b43214c8e39a838c625f011d9b10' (2024-08-11)
• Updated input 'nvim-lint-src':
    'github:mfussenegger/nvim-lint/efc6fc83f0772283e064c53a8f9fb5645bde0bc0' (2024-06-26)
  → 'github:mfussenegger/nvim-lint/ad0fe35e80f5cd31a0f19176d7b30e5c3011119d' (2024-08-10)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/48d0e82f9434691cc50d970898142a8c084a49d6' (2024-07-28)
  → 'github:kyazdani42/nvim-tree.lua/ad0b95dee55955817af635fa121f6e2486b10583' (2024-08-10)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/a7a3b9c10e8a5fe0da05ebb65db3ed1d164e612d' (2024-08-03)
  → 'github:nvim-treesitter/nvim-treesitter/8a966f32c973511f9697264b3533e9846d29fd09' (2024-08-10)
• Updated input 'tiny-inline-diagnostic-nvim-src':
    'github:rachartier/tiny-inline-diagnostic.nvim/ca50af9dc3cd88647077330b4728f4d0a7e754c4' (2024-07-28)
  → 'github:rachartier/tiny-inline-diagnostic.nvim/7b212b214aed37d8ae1a26ac6ca9593223a23ddb' (2024-08-10)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/f373ad59ae5866f0f98216bd5c71526b373450d2' (2024-07-29)
  → 'github:nix-community/NixOS-WSL/be1a6b2e4ddc34b9b6a297e7df2f2a2ecee24690' (2024-08-08)
2024-08-11 03:45:54 +00:00
842f373101 switch from keyd to kanata
more reliable, doesn't break on update. also allows the escape key to
timeout and turn into lctrl after 1 second, which might be nicer
behavior
2024-08-07 23:24:28 -04:00
65aa25b213 add moonlight for game streaming 2024-08-07 22:58:58 -04:00
5b2fef7e01 comment on choosing not to switch to ddclient 2024-08-07 22:57:31 -04:00
2a812c1bdb add tiny-inline-diagnostic.nvim plugin for errors 2024-08-07 22:18:52 -04:00
16a372ce64 gnome packages are now top-level 2024-08-04 21:03:38 -04:00
fb45ccdd5c flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/0413754b3cdb879ba14f6e96915e5fdf06c6aab6' (2024-07-27)
  → 'github:lnl7/nix-darwin/f7142b8024d6b70c66fd646e1d099d3aa5bfec49' (2024-08-02)
• Updated input 'disko':
    'github:nix-community/disko/5b01cea8b5753de9c2febd27203c530be14745ff' (2024-07-26)
  → 'github:nix-community/disko/7e1b215a0a96efb306ad6440bf706d2b307dc267' (2024-08-01)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/269d84cf5630803441099787d85ec8792ccccdc7' (2024-07-28)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/1e21b72d579f06362e01f594b713fa1d51622c21' (2024-08-04)
• Updated input 'home-manager':
    'github:nix-community/home-manager/d0240a064db3987eb4d5204cf2400bc4452d9922' (2024-07-27)
  → 'github:nix-community/home-manager/afc892db74d65042031a093adb6010c4c3378422' (2024-08-02)
• Updated input 'markview-nvim-src':
    'github:OXY2DEV/markview.nvim/316cafc79490f8b79c288bbe6638838d6d68e227' (2024-07-17)
  → 'github:OXY2DEV/markview.nvim/d0ccc97b5c988fb28e5033abdf7b832b9dfaf897' (2024-07-31)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.36.4-nextcloud.tar.gz?narHash=sha256-HlqO7xlMSRGgBtwi0t5oz5v7iw0zTSHysc9wGVRwGZI%3D' (2024-07-28)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.36.4-nextcloud.tar.gz?narHash=sha256-HlqO7xlMSRGgBtwi0t5oz5v7iw0zTSHysc9wGVRwGZI%3D' (2024-08-04)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/c12f9a969c8cdf14618774515c7c6c96aef753c7' (2024-07-25)
  → 'github:nix-community/nixos-generators/75cbb2a5e19c18840d105a72d036c6c92fc46c5d' (2024-07-29)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/31a99025ce3784c20dd11dafa5260e80e314f59e' (2024-07-21)
  → 'github:nix-community/nixpkgs.lib/d15f6f6021693898fcd2c6a9bb13707383da9bbc' (2024-07-28)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/b73c2221a46c13557b1b3be9c2070cc42cf01eb3' (2024-07-27)
  → 'github:nixos/nixpkgs/9f918d616c5321ad374ae6cb5ea89c9e04bf3e58' (2024-07-31)
• Updated input 'nur':
    'github:nix-community/nur/ad7056b477de1bf3e1fa5ed2c3da1340d6820277' (2024-07-28)
  → 'github:nix-community/nur/d95fbf93429f5c9f4e41249212d2386a995f0cc3' (2024-08-04)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/f97e0de0053df1cb3b9f74b9b1239acced1b7d9a' (2024-07-27)
  → 'github:nvim-treesitter/nvim-treesitter/a7a3b9c10e8a5fe0da05ebb65db3ed1d164e612d' (2024-08-03)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/ac026940beb42f74c5666f6ed3989aca41eddeea' (2024-07-26)
  → 'github:nix-community/NixOS-WSL/f373ad59ae5866f0f98216bd5c71526b373450d2' (2024-07-29)
2024-08-04 03:45:44 +00:00
74e6d740af allow rust-analyzer to check optional feature code 2024-08-01 22:42:48 -04:00
2ad5411b90 add possible option for darwin shell commented out 2024-08-01 22:41:35 -04:00
3b494bed5b adwaita-icon-theme now a top-level pkg 2024-08-01 22:41:15 -04:00
de4c8c32ef flake.lock: Update
Flake lock file updates:

• Updated input 'baleia-nvim-src':
    'github:m00qek/baleia.nvim/4d3b27dbec65a44ceecd9306f605a980bcf4e9b1' (2024-05-31)
  → 'github:m00qek/baleia.nvim/1b25eac3ac03659c3d3af75c7455e179e5f197f7' (2024-07-24)
• Updated input 'darwin':
    'github:lnl7/nix-darwin/33bf7df5bbfcbbb49e6559b0c96c9e3b26d14e58' (2024-07-21)
  → 'github:lnl7/nix-darwin/0413754b3cdb879ba14f6e96915e5fdf06c6aab6' (2024-07-27)
• Updated input 'disko':
    'github:nix-community/disko/bec6e3cde912b8acb915fecdc509eda7c973fb42' (2024-07-19)
  → 'github:nix-community/disko/5b01cea8b5753de9c2febd27203c530be14745ff' (2024-07-26)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/5d4711f0568cd99b73b0bc1524ebe22e5ab2caf7' (2024-07-21)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/269d84cf5630803441099787d85ec8792ccccdc7' (2024-07-28)
• Updated input 'home-manager':
    'github:nix-community/home-manager/635563f245309ef5320f80c7ebcb89b2398d2949' (2024-07-21)
  → 'github:nix-community/home-manager/d0240a064db3987eb4d5204cf2400bc4452d9922' (2024-07-27)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.36.4-nextcloud.tar.gz?narHash=sha256-HlqO7xlMSRGgBtwi0t5oz5v7iw0zTSHysc9wGVRwGZI%3D' (2024-07-21)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.36.4-nextcloud.tar.gz?narHash=sha256-HlqO7xlMSRGgBtwi0t5oz5v7iw0zTSHysc9wGVRwGZI%3D' (2024-07-28)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/076ea5b672bb1ea535ee84cfdabd0c2f0b7f20c7' (2024-07-13)
  → 'github:nix-community/nixos-generators/c12f9a969c8cdf14618774515c7c6c96aef753c7' (2024-07-25)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/1bba8a624b3b9d4f68db94fb63aaeb46039ce9e6' (2024-06-30)
  → 'github:nix-community/nixpkgs.lib/31a99025ce3784c20dd11dafa5260e80e314f59e' (2024-07-21)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/1d9c2c9b3e71b9ee663d11c5d298727dace8d374' (2024-07-19)
  → 'github:nixos/nixpkgs/b73c2221a46c13557b1b3be9c2070cc42cf01eb3' (2024-07-27)
• Updated input 'nur':
    'github:nix-community/nur/47677f66e7c51e83505718528a8b3dc2ddcb1e9c' (2024-07-21)
  → 'github:nix-community/nur/ad7056b477de1bf3e1fa5ed2c3da1340d6820277' (2024-07-28)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/4e396b26244444c911b73e9f2f40ae0115351fd1' (2024-07-21)
  → 'github:kyazdani42/nvim-tree.lua/48d0e82f9434691cc50d970898142a8c084a49d6' (2024-07-28)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/733fa85db27079ec2757183c5c840ba15a303e1f' (2024-07-21)
  → 'github:nvim-treesitter/nvim-treesitter/f97e0de0053df1cb3b9f74b9b1239acced1b7d9a' (2024-07-27)
• Updated input 'stu':
    'github:lusingander/stu/cc6f75ca0b97c41b6d1564aa96f175c513eda01b' (2024-07-18)
  → 'github:lusingander/stu/aefd555fb3e128d40f8bd80d37aa5c6e5d8bc011' (2024-07-22)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/8ebede998342477736e0d0acdcc13ddb166a335f' (2024-07-17)
  → 'github:nix-community/NixOS-WSL/ac026940beb42f74c5666f6ed3989aca41eddeea' (2024-07-26)
2024-07-28 03:45:20 +00:00
a7be0ed5cc fix: init tf in subdirectory 2024-07-27 12:25:31 -04:00
e7f8d706b2 remove settings from dock on macos 2024-07-21 10:48:56 -04:00
39fda67d6e replace youtube-dl with yt-dlp on macos 2024-07-21 10:48:56 -04:00
4eb0327a1b fix: sound is now deprecated 2024-07-21 10:11:50 -04:00
029119ce93 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/ec12b88104d6c117871fad55e931addac4626756' (2024-07-01)
  → 'github:lnl7/nix-darwin/33bf7df5bbfcbbb49e6559b0c96c9e3b26d14e58' (2024-07-21)
• Updated input 'disko':
    'github:nix-community/disko/544a80a69d6e2da04e4df7ec8210a858de8c7533' (2024-07-01)
  → 'github:nix-community/disko/bec6e3cde912b8acb915fecdc509eda7c973fb42' (2024-07-19)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/407f201936424ec061d33aa687e7978ae7873b5c' (2024-07-02)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/5d4711f0568cd99b73b0bc1524ebe22e5ab2caf7' (2024-07-21)
• Updated input 'home-manager':
    'github:nix-community/home-manager/59ce796b2563e19821361abbe2067c3bb4143a7d' (2024-07-01)
  → 'github:nix-community/home-manager/635563f245309ef5320f80c7ebcb89b2398d2949' (2024-07-21)
• Updated input 'mac-app-util':
    'github:hraban/mac-app-util/1857b26aceaf64c2b6a357eb83cf34139b6365cc' (2024-06-20)
  → 'github:hraban/mac-app-util/63f269f737cafb2219ba38780c1ecb1dc24bc4a2' (2024-07-02)
• Updated input 'markview-nvim-src':
    'github:OXY2DEV/markview.nvim/f60219dce7283192d549f21847fcf8537bf6d260' (2024-06-28)
  → 'github:OXY2DEV/markview.nvim/316cafc79490f8b79c288bbe6638838d6d68e227' (2024-07-17)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.36.4-nextcloud.tar.gz?narHash=sha256-HlqO7xlMSRGgBtwi0t5oz5v7iw0zTSHysc9wGVRwGZI%3D' (2024-07-07)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.36.4-nextcloud.tar.gz?narHash=sha256-HlqO7xlMSRGgBtwi0t5oz5v7iw0zTSHysc9wGVRwGZI%3D' (2024-07-21)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/140dcc2b9a0eb87ba5e9011076a1a7af19179ab1' (2024-07-01)
  → 'github:nix-community/nixos-generators/076ea5b672bb1ea535ee84cfdabd0c2f0b7f20c7' (2024-07-13)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/00d80d13810dbfea8ab4ed1009b09100cca86ba8' (2024-07-01)
  → 'github:nixos/nixpkgs/1d9c2c9b3e71b9ee663d11c5d298727dace8d374' (2024-07-19)
• Updated input 'nur':
    'github:nix-community/nur/574405811547dcec59e912c5e82bfd224648bd5e' (2024-07-02)
  → 'github:nix-community/nur/47677f66e7c51e83505718528a8b3dc2ddcb1e9c' (2024-07-21)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/8b2c5c678be4b49dff6a2df794877000113fd77b' (2024-06-23)
  → 'github:kyazdani42/nvim-tree.lua/4e396b26244444c911b73e9f2f40ae0115351fd1' (2024-07-21)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/e0d6c7643dc953acc2e817d0cebfc2f1f8c008e1' (2024-07-02)
  → 'github:nvim-treesitter/nvim-treesitter/733fa85db27079ec2757183c5c840ba15a303e1f' (2024-07-21)
• Updated input 'stu':
    'github:lusingander/stu/279edc8d63c04b42773434bf8c6f2744a66d71a8' (2024-07-08)
  → 'github:lusingander/stu/cc6f75ca0b97c41b6d1564aa96f175c513eda01b' (2024-07-18)
• Updated input 'tree-sitter-python':
    'github:tree-sitter/tree-sitter-python/71778c2a472ed00a64abf4219544edbf8e4b86d7' (2024-05-01)
  → 'github:tree-sitter/tree-sitter-python/0dee05ef958ba2eae88d1e65f24b33cad70d4367' (2024-07-14)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/269411cfed6aab694e46f719277c972de96177bb' (2024-06-24)
  → 'github:nix-community/NixOS-WSL/8ebede998342477736e0d0acdcc13ddb166a335f' (2024-07-17)
2024-07-21 13:49:04 +00:00
b15fd34e30 try pinning nix version in lockfile update 2024-07-21 09:43:42 -04:00
a47bcf8949 fix: error in nix version when updating flake
see: https://github.com/DeterminateSystems/update-flake-lock/issues/120
2024-07-21 08:10:22 -04:00
6c024107ee add stu s3 tui browser 2024-07-10 15:47:42 -04:00
4ca25aa194 just keep updating snappymail until we figure this out 2024-07-07 10:09:24 -04:00
20fcca6bda add cursor to fix firefox not rendering links
however, the cursor is too big and i can't seem to make it smaller
2024-07-07 10:06:10 -04:00
0bbbabd6e8 try to fix log rotation issues 2024-07-02 13:42:50 +00:00
ff05b99fe1 update lockfile (fix regresshion vuln) 2024-07-02 13:42:06 +00:00
abdf4b64be add cloudflared client to macos machine 2024-07-02 09:35:13 -04:00
6d0d36165e use opt instead of bo for undofile
i saw this in an example and it seems like it
might be more appropriate
2024-07-02 09:33:04 -04:00
b4470727e5 back to hosting snappymail myself
i'm still not sure if this will work
2024-06-30 21:57:48 -04:00
126baae735 add more services to grafana caddy list 2024-06-29 18:37:03 -04:00
892dfbbee4 fix: grafana alert label template 2024-06-29 13:51:54 +00:00
0198469b83 oops forgot to get rid of experimental line 2024-06-29 13:43:08 +00:00
c89ca7ea94 upgrade to nextcloud 29 successfully 2024-06-29 13:41:30 +00:00
0a98b72784 only set kitty aliases in kitty terminal 2024-06-29 08:01:23 -04:00
c7de16b14c add prom scraping to victoriametrics
allows us to not run vmagent when running victoriametrics
2024-06-29 01:22:59 +00:00
1d405e1828 format comments on lua file 2024-06-28 20:36:31 -04:00
97f99a149e revert toggleterm float opts
they stuck to the height of the terminal window at initial open, which
looked bad whenever it changed, especially if it increased.
2024-06-28 20:36:08 -04:00
bc794f89bc play with markview-nvim
neovim markdown plugin
2024-06-28 20:34:35 -04:00
63b90102f2 remove tempest from cloudflare tunnel alerts 2024-06-27 11:36:05 -04:00
c86188d734 fix: replace kitty with wezterm in macos tiling layout 2024-06-24 09:53:09 -04:00
f1cdd4ae98 fix: renamed and deprecated graphics options (2) 2024-06-23 17:43:36 -04:00
332921edd3 fix: open html emails in browser 2024-06-23 11:42:43 -04:00
cc69cbaa6c tweak wezterm padding to match kitty 2024-06-23 09:08:36 -04:00
d165428a37 more wezterm aesthetic tweaks 2024-06-23 09:06:36 -04:00
3e7955533e fix: vmagent updates
no longer require systemd manual attributes. the dynamicuser now uses
loadcredential to retrieve secrets
2024-06-23 08:55:41 -04:00
0b9886f93e fix: renamed and deprecated graphics options 2024-06-23 08:54:51 -04:00
2f39eb2ceb replace kitty with wezterm on linux (tempest) 2024-06-23 08:54:30 -04:00
cf19085158 update lockfile and i guess rebuild everything on macos 2024-06-21 17:08:38 -06:00
a387950c9a different new tab actions for wezterm 2024-06-21 17:08:25 -06:00
dec46bcc97 fix: pyright is now an independent package 2024-06-20 17:25:51 -06:00
0d6230b3dc fix markdown tables format in github 2024-06-19 11:02:18 -06:00
517ae65cf1 upgrade to nextcloud 29 2024-06-19 10:59:26 -06:00
6f4ee32e8e fix warning in nix with expression 2024-06-19 10:59:17 -06:00
2c2f366c47 disable autoupgrade for swan, make explicit 2024-06-19 10:58:47 -06:00
e509943103 add nixpkgs-caddy into swan 2024-06-19 10:51:16 -06:00
8937d214f1 update lockfile 2024-06-19 10:44:13 -06:00
af4161c4f4 make mac apps available in spotlight 2024-06-18 18:22:05 -06:00
0a225d6599 set neovim completion to work in cmdline (command) mode 2024-06-18 18:08:49 -06:00
b78bbf2003 fix: wezterm fullscreen keybind 2024-06-18 12:50:04 -06:00
97cfaf0708 wezterm fuzzy jump to project 2024-06-17 15:34:46 -06:00
dceb0c5c65 fix: atuin keybind for wezterm 2024-06-17 09:49:07 -06:00
a309e96754 remove kitty-scrollback-nvim feature 2024-06-17 09:37:25 -06:00
83e95b306d add tf init to darwin 2024-06-16 19:00:28 -06:00
6742103195 add wezterm to lookingglass 2024-06-16 18:59:43 -06:00
57ce387402 wezterm completion for fish autosuggestions 2024-06-16 18:58:57 -06:00
265144d957 update style of wezterm tab bar 2024-06-16 18:31:52 -06:00
f0b9bfc0a7 add wezterm potential kitty replacement 2024-06-16 18:02:10 -06:00
a4c9813341 tfinit shortcut script 2024-06-13 15:59:10 +01:00
b051885b52 reduce toggleterm float margin 2024-06-12 12:07:47 +01:00
985e69b4b8 fix: kitty scrollback nvim behavior 2024-06-07 14:05:24 -04:00
8e9d556cfe markdown fix with vim-table-mode 2024-06-06 17:08:40 -04:00
99581ae1ea fix: fallback for ec2 script and only show running instances 2024-06-05 17:58:22 -04:00
96d410e1b2 fix: hcl formatting and markdown errors 2024-06-05 16:49:19 -04:00
8e88d70a52 add ec2 list and ssm session fzf script
also fix lint issues on home packages
2024-06-05 15:14:36 -04:00
8b1032ebda gh watch keybind for neovim toggleterm 2024-06-05 13:54:13 -04:00
e55ee05c5c use separate keybinds for neovim completion features 2024-06-05 13:54:13 -04:00
0cdae3569e remove flake-utils from poetry template 2024-06-05 13:54:13 -04:00
0f1cbe2e06 update detsys actions 2024-06-02 14:04:28 -04:00
7a22e798fc autohotkey v2 for windows 2024-06-02 08:08:05 -04:00
196d2e53e0 Create caps-lock-ctrl.reg for windows 2024-06-02 07:43:15 -04:00
204621a0ba add gh-dash for checking prs 2024-05-28 16:32:46 -04:00
ab050582c1 fix: filetype patterns and add comment syntax for nvim 0.10 2024-05-28 11:08:22 -04:00
6cf4c4979d add notunes package to prevent apple music from opening randomly 2024-05-28 10:27:54 -04:00
ad0bb2d804 update neovim and others 2024-05-28 07:50:14 -04:00
5117b14388 add caddy pkg for flame 2024-05-14 20:23:59 +00:00
e6bde77984 add teams on macos 2024-05-14 16:01:21 -04:00
b546d5b43a update records for destroy 2024-05-09 16:58:14 -04:00
5aa0a935ad remove comments from tf 2024-05-09 16:55:48 -04:00
4555797667 fix: letsencrypt dupe cert limit 2024-05-09 15:07:51 -04:00
5edd1a50d3 move vmvariant to nixos only 2024-05-09 14:41:58 -04:00
a16e3ae3cb add values for destroy 2024-05-08 22:17:23 -04:00
edff6fc768 add teams on macos 2024-05-08 17:23:56 -04:00
45ec4e5a3f try switching from checksum to etag 2024-05-08 00:09:47 -04:00
48fbb2e2d9 fixes to n8n config 2024-05-07 23:46:03 -04:00
7ce9ed564e enforce that instance is running 2024-05-07 23:28:46 -04:00
8074276643 use terraform_data to fix data-based replacement 2024-05-07 23:23:28 -04:00
6edc828ece pass pkgs-caddy to arrow 2024-05-07 20:09:51 -04:00
4b22c774e2 try enabling checksum mode on s3 to get checksum values 2024-05-07 20:08:33 -04:00
b7e81e009c make sure to replace ami if s3 object changes 2024-05-07 20:04:04 -04:00
3d90674522 add ssm agent to wheel 2024-05-07 17:52:48 -04:00
0582b4a147 fix: dupe resource 2024-05-07 16:25:53 -04:00
c06cb27bcc register instance profile for ssm and allow ping 2024-05-07 16:24:12 -04:00
de106298d6 Revert "debug: terraform cycle"
This reverts commit b34997257c.
2024-05-07 15:37:28 -04:00
b34997257c debug: terraform cycle 2024-05-07 15:35:27 -04:00
ddfaf0064c fix: reference to removed var in tf 2024-05-07 15:29:08 -04:00
e561d5984b switch to uploading image to s3 without tf 2024-05-07 15:12:21 -04:00
de766b6893 add aws ssm agent for ami 2024-05-06 16:18:28 -04:00
654009ba74 free disk space to build 2024-05-06 15:08:37 -04:00
a7006af5ad allow n8n as unfree 2024-05-06 14:38:03 -04:00
452afd70c1 enable n8n on arrow 2024-05-06 14:26:24 -04:00
0c399fc269 fix: forgot to add host_ip to aws tf 2024-05-06 14:00:56 -04:00
e59c565e2f add enhanced networking required for some aws instances 2024-05-06 11:45:24 -04:00
d0e613f093 try using larger volume for snapshot 2024-05-06 11:19:46 -04:00
14538d83f5 fix: lost line from workflow 2024-05-06 10:39:00 -04:00
2d31f5726f setup s3 cache for aws 2024-05-06 10:38:09 -04:00
f4ed3f0ec6 try to add root device name for ami 2024-05-05 23:07:54 -04:00
d07abccbce fix: no default tags exist 2024-05-05 22:53:07 -04:00
0feb11b017 fix: point to actual location of vhd for arrow-aws 2024-05-05 20:57:08 -04:00
da559f808a add images bucket tf var 2024-05-05 18:14:07 -04:00
9ebdfa1071 fix: tf backend can't be a variable 2024-05-05 16:36:34 -04:00
5bd81813cb switch to my own fork of gh-collaborators to fix go 2024-05-05 16:17:06 -04:00
69b2332700 fix: xserver libinput renamed without xserver 2024-05-05 15:54:12 -04:00
d4708cd5f6 revert to earliest go module for gh-collaborator compatibility
even though should be built with buildGo120Module
2024-05-05 15:48:49 -04:00
962515c10e replace caddy-cloudflare overlay with nixpkgs pr plugin override 2024-05-05 15:18:43 -04:00
ee97213b9f replace snappymail repo with my own for stability 2024-05-05 15:17:27 -04:00
97ccf1c170 flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/285e26465a0bae510897ca04da26ce6307c652b4?narHash=sha256-kcBiIrmqzt3bNTr2GMBfAyA%2Bon8BEKO1iKzzDFQZkjI%3D' (2024-04-26)
  → 'github:nix-community/disko/d57058eb09dd5ec00c746df34fe0a603ea744370?narHash=sha256-W7%2BrtMzRmdovzndN2NYUv5xzkbMudtQ3jbyFuGk0O1E%3D' (2024-05-02)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/7e82af679667cf9d56075dfa375b32c317aa708d?narHash=sha256-Ep8jPm%2BQ832byS7VtlkdXEEWGFhk5BMX0CjkVtC1G4E%3D' (2024-04-24)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/7e9014891eebabffa68351e3360da3fbc59b8066?narHash=sha256-kTAMHZ1DDGauq3f5IzPw%2BEtVOgWdctLPUMJiqciqOx0%3D' (2024-05-05)
• Updated input 'home-manager':
    'github:nix-community/home-manager/c1609d584a6b5e9e6a02010f51bd368cb4782f8e?narHash=sha256-eT7DENhYy7EPLOqHI9zkIMD9RvMCXcqh6gGqOK5BWYQ%3D' (2024-04-27)
  → 'github:nix-community/home-manager/e0825ea2112d09d9f0680833cd716f6aee3b973f?narHash=sha256-02r2Qzh4fGYBPB/3Lj8vwPMtE6H/UchZnN7A/dQMHIA%3D' (2024-05-04)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.36.1-nextcloud.tar.gz?narHash=sha256-CsAUnbA/9XiVuk96pOK%2BE%2B%2Blp8BlJITtfExWcb9rqPk%3D' (2024-04-26)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.36.1-nextcloud.tar.gz?narHash=sha256-6mel49dSTujJnpdUt1aOJ87duXU/DBqpuqgZOKP1YII%3D' (2024-04-24)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/7bb2ccd8cdc44c91edba16c48d2c8f331fb3d856?narHash=sha256-Drmja/f5MRHZCskS6mvzFqxEaZMeciScCTFxWVLqWEY%3D' (2024-04-25)
  → 'github:nixos/nixpkgs/63c3a29ca82437c87573e4c6919b09a24ea61b0f?narHash=sha256-4cPymbty65RvF1DWQfc%2BBc8B233A1BWxJnNULJKQ1EY%3D' (2024-05-02)
• Updated input 'nur':
    'github:nix-community/nur/1348a217ce75f5171b65873c5146b47e0d26bc83?narHash=sha256-SZTU/TQFzihktp/SPzY3yzMnrYi7EuaCIA/g4jNA8KU%3D' (2024-04-28)
  → 'github:nix-community/nur/49f72c695fb2f46c8aeb1549704246b9558b2011?narHash=sha256-G/dc755qMdAMvXuZsi1OFCzD49OWszdMSnp12%2B1eFcM%3D' (2024-05-05)
• Updated input 'nvim-lint-src':
    'github:mfussenegger/nvim-lint/f098232d70cebe90e27404928c9bc19ca7a5a7b5?narHash=sha256-QyS%2BxSIOVbJdf/vLU0o8fdZrQ%2BMssolTyg75ZSnP0fY%3D' (2024-04-16)
  → 'github:mfussenegger/nvim-lint/861a04313501563bb1b11f125ae9b7237a517b9b?narHash=sha256-aM4oWSZrZb660wEpLQnFyoBkH%2BMSi0WgfBIztk98Qtk%3D' (2024-04-30)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/5a18b9827491aa1aea710bc9b85c6b63ed0dad14?narHash=sha256-VMyVrgcgqx52QIy/q0oAuJNuxMNPAgPX3bi1LP27Iho%3D' (2024-04-25)
  → 'github:kyazdani42/nvim-tree.lua/64f61e4c913047a045ff90bd188dd3b54ee443cf?narHash=sha256-rY4FbuqBM4zOUkaA3QBc%2BUrpfTha8uGtp%2BlIzrYK%2Bcg%3D' (2024-05-04)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/0883ff05655117a3fc79ab295a640c4984cfd415?narHash=sha256-4VmW8xfayxIo4k6WA4423yTyLvzBTwidU7d8OuGH1vY%3D' (2024-04-27)
  → 'github:nvim-treesitter/nvim-treesitter/4e21361e15b1d4147830c5fe571556eb1b14e6f9?narHash=sha256-3Ae3ieCqckVAElTufJxgBRNXdWg81%2B%2BoI0qesKevcb4%3D' (2024-05-04)
• Updated input 'tree-sitter-python':
    'github:tree-sitter/tree-sitter-python/a22761025cdac6c314b7e3aa48fb44fa9e594d6a?narHash=sha256-L6iEej6bPqfaZdH5GNoJyNxZWdnIyn7%2BCut%2BzYnMI88%3D' (2024-04-05)
  → 'github:tree-sitter/tree-sitter-python/71778c2a472ed00a64abf4219544edbf8e4b86d7?narHash=sha256-hHQ5gK4dTRSdp0fLKarytU9vFhsBeQp7Ka61vFoIr7Y%3D' (2024-05-01)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/4fb773cffed9bf1efdabcc01b25637eaeb4e8e9c?narHash=sha256-jgTn20s3qzar/IqhjQcEO%2BdIQbT4hBFIloVntiCURkA%3D' (2024-04-26)
  → 'github:nix-community/NixOS-WSL/acb893461a4bee4e77b1a27b1410d4995b52174c?narHash=sha256-rtv%2BnJJ12V7w68j8vIcGacfS1yuK1/dBgglSKWzYMTM%3D' (2024-04-29)
2024-05-05 03:44:32 +00:00
37e66f32c5 switch from go122 to go module 2024-05-04 23:21:01 -04:00
572459ba88 use full arn for aws oidc role 2024-05-04 23:15:45 -04:00
b47ca4c785 forgot to add permissions to run aws workflow 2024-05-04 23:11:49 -04:00
8f0f7911b0 test out arrow on aws 2024-05-04 23:05:55 -04:00
c0356cab62 add gamescope and mangohud 2024-05-04 23:05:40 -04:00
b98ced2939 fix bad hashes 2024-05-03 17:26:56 -04:00
aea3359236 flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/a816daa384dd754b7586f51157fc2e1a44e76073?narHash=sha256-PJbmbf%2B5z924b/wq7jzEFCUtrOc7s1J%2B8qRZu3fVAQc%3D' (2024-04-25)
  → 'github:nix-community/disko/285e26465a0bae510897ca04da26ce6307c652b4?narHash=sha256-kcBiIrmqzt3bNTr2GMBfAyA%2Bon8BEKO1iKzzDFQZkjI%3D' (2024-04-26)
• Updated input 'home-manager':
    'github:nix-community/home-manager/0c5704eceefcb7bb238a958f532a86e3b59d76db?narHash=sha256-4AItZA3EQIiSNAxliuYEJumw/LaVfrMv84gYyrs0r3U%3D' (2024-04-25)
  → 'github:nix-community/home-manager/c1609d584a6b5e9e6a02010f51bd368cb4782f8e?narHash=sha256-eT7DENhYy7EPLOqHI9zkIMD9RvMCXcqh6gGqOK5BWYQ%3D' (2024-04-27)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.36.1-nextcloud.tar.gz?narHash=sha256-CsAUnbA/9XiVuk96pOK%2BE%2B%2Blp8BlJITtfExWcb9rqPk%3D' (2024-04-25)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.36.1-nextcloud.tar.gz?narHash=sha256-6mel49dSTujJnpdUt1aOJ87duXU/DBqpuqgZOKP1YII%3D' (2024-04-24)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/572af610f6151fd41c212f897c71f7056e3fb518?narHash=sha256-cfh1hi%2B6muQMbi9acOlju3V1gl8BEaZBXBR9jQfQi4U%3D' (2024-04-23)
  → 'github:nixos/nixpkgs/7bb2ccd8cdc44c91edba16c48d2c8f331fb3d856?narHash=sha256-Drmja/f5MRHZCskS6mvzFqxEaZMeciScCTFxWVLqWEY%3D' (2024-04-25)
• Updated input 'nur':
    'github:nix-community/nur/23ec6b3cf4882a7b39685837368af00744d8cb6e?narHash=sha256-I7oJlmcyCo0EuqGiIgJYY/OtqzyJz7pdq71sLD5mnyQ%3D' (2024-04-25)
  → 'github:nix-community/nur/1348a217ce75f5171b65873c5146b47e0d26bc83?narHash=sha256-SZTU/TQFzihktp/SPzY3yzMnrYi7EuaCIA/g4jNA8KU%3D' (2024-04-28)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/19c6b0c4c9b35962e45b782e2b85a3214d2ac4d5?narHash=sha256-1K%2Bvg99QjM7UiMLMN7m4trZYFR33BwyHZlsPOe6UOqE%3D' (2024-04-25)
  → 'github:nvim-treesitter/nvim-treesitter/0883ff05655117a3fc79ab295a640c4984cfd415?narHash=sha256-4VmW8xfayxIo4k6WA4423yTyLvzBTwidU7d8OuGH1vY%3D' (2024-04-27)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/f41f95c2c187a49a4ef98b5d00fdf1a68c5f88ba?narHash=sha256-q3zu2D5HVphfAMZ070o/K9IPxw5DLsLkvwr7H1b5fpE%3D' (2024-04-24)
  → 'github:nix-community/NixOS-WSL/4fb773cffed9bf1efdabcc01b25637eaeb4e8e9c?narHash=sha256-jgTn20s3qzar/IqhjQcEO%2BdIQbT4hBFIloVntiCURkA%3D' (2024-04-26)
2024-04-28 03:44:30 +00:00
760a016842 replace nil ls with nixd language server
remove nixlang dedicated module
2024-04-25 13:25:25 -04:00
f59c228803 fix: snappymail requires update 2024-04-25 16:57:30 +00:00
951570c88c flake.lock: Update
Flake lock file updates:

• Updated input 'base16-nvim-src':
    'github:RRethy/base16-nvim/b3e9ec6a82c05b562cd71f40fe8964438a9ba64a?narHash=sha256-l0BO2boIy6mwK8ISWS3D68f8egqHYwsGSAnzjbB5aOE%3D' (2024-02-17)
  → 'github:RRethy/base16-nvim/eec6882101dd189117f79c5d18d389d20cfc0415?narHash=sha256-p3HWYasmi0gVUM5l9jLWL4Iy37Uxnvbj3SO/cMCpDBg%3D' (2024-04-18)
• Updated input 'darwin':
    'github:lnl7/nix-darwin/36524adc31566655f2f4d55ad6b875fb5c1a4083?narHash=sha256-sXcesZWKXFlEQ8oyGHnfk4xc9f2Ip0X/%2BYZOq3sKviI%3D' (2024-03-30)
  → 'github:lnl7/nix-darwin/230a197063de9287128e2c68a7a4b0cd7d0b50a7?narHash=sha256-lc75rgRQLdp4Dzogv5cfqOg6qYc5Rp83oedF2t0kDp8%3D' (2024-04-24)
• Updated input 'disko':
    'github:nix-community/disko/8d4ae698eaac8bd717e23507da2ca8b345bec4b5?narHash=sha256-T0eT2lMbcK7RLelkx0qx4SiFpOS/0dt0aSfLB%2BWsGV8%3D' (2024-04-12)
  → 'github:nix-community/disko/a816daa384dd754b7586f51157fc2e1a44e76073?narHash=sha256-PJbmbf%2B5z924b/wq7jzEFCUtrOc7s1J%2B8qRZu3fVAQc%3D' (2024-04-25)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/10e4a50241d6bbae62754efda7bc4b48dd4aa2c1?narHash=sha256-LlFkVfdF9GfB02gFNHjnLOV0AQYFY7gWATlniTALeaM%3D' (2024-04-14)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/7e82af679667cf9d56075dfa375b32c317aa708d?narHash=sha256-Ep8jPm%2BQ832byS7VtlkdXEEWGFhk5BMX0CjkVtC1G4E%3D' (2024-04-24)
• Updated input 'home-manager':
    'github:nix-community/home-manager/630a0992b3627c64e34f179fab68e3d48c6991c0?narHash=sha256-Noot8H0EZEAFRQWyGxh9ryvhK96xpIqKbh78X447JWs%3D' (2024-04-14)
  → 'github:nix-community/home-manager/0c5704eceefcb7bb238a958f532a86e3b59d76db?narHash=sha256-4AItZA3EQIiSNAxliuYEJumw/LaVfrMv84gYyrs0r3U%3D' (2024-04-25)
• Updated input 'kitty-scrollback-nvim-src':
    'github:mikesmithgh/kitty-scrollback.nvim/2d4c6970e9b6155b857755a5499cdce313d923b3?narHash=sha256-wDNYvNa9UEHg6lRKaonN%2B6vg4XJ4umUaVriziEJejKE%3D' (2024-04-05)
  → 'github:mikesmithgh/kitty-scrollback.nvim/22f524f1fa9c7660804a1800ed0fe981c5d392c8?narHash=sha256-LICARktpc04vaHpFuAFDrZsYKy2HJme6LMtoXMi7jJ8%3D' (2024-04-25)
• Updated input 'nextcloud-external':
    'https://github.com/nextcloud-releases/external/releases/download/v5.3.1/external-v5.3.1.tar.gz?narHash=sha256-RCL2RP5twRDLxI/KfAX6QLYQOzqZmSWsfrC5ZQIwTD4%3D' (2023-11-10)
  → 'https://github.com/nextcloud-releases/external/releases/download/v5.3.1/external-v5.3.1.tar.gz?narHash=sha256-RCL2RP5twRDLxI/KfAX6QLYQOzqZmSWsfrC5ZQIwTD4%3D' (2023-11-10)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.32.0-nextcloud.tar.gz?narHash=sha256-UeZXoZFEPJj7zEVNTXJ3IYNt/wI7VFq3Pjh1ubMHCBo%3D' (2024-04-14)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.32.0-nextcloud.tar.gz?narHash=sha256-o4UghtYKc3Bh9IoKnOwjHCIKHt6tZ5vPdLjHFpIPmE0%3D' (2023-12-26)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/d942db8df8ee860556a38754f15b8d03bf7e6933?narHash=sha256-yYlxv1sg/TNl6hghjAe0ct%2B/p5PwXiT1mpuaExjhR88%3D' (2024-04-08)
  → 'github:nix-community/nixos-generators/722b512eb7e6915882f39fff0e4c9dd44f42b77e?narHash=sha256-3yh0nqI1avYUmmtqqTW3EVfwaLE%2B9ytRWxsA5aWtmyI%3D' (2024-04-22)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/1042fd8b148a9105f3c0aca3a6177fd1d9360ba5?narHash=sha256-3sbWO1mbpWsLepZGbWaMovSO7ndZeFqDSdX0hZ9nVyw%3D' (2024-04-10)
  → 'github:nixos/nixpkgs/572af610f6151fd41c212f897c71f7056e3fb518?narHash=sha256-cfh1hi%2B6muQMbi9acOlju3V1gl8BEaZBXBR9jQfQi4U%3D' (2024-04-23)
• Updated input 'nur':
    'github:nix-community/nur/1e6e9f41f0fbdcba7ca505a7d54128bc2f1053d6?narHash=sha256-zON2LEPO98NiUtOItgu%2BVz1uWkrUbt5zJbzf5XCm71Y%3D' (2024-04-14)
  → 'github:nix-community/nur/23ec6b3cf4882a7b39685837368af00744d8cb6e?narHash=sha256-I7oJlmcyCo0EuqGiIgJYY/OtqzyJz7pdq71sLD5mnyQ%3D' (2024-04-25)
• Updated input 'nvim-lint-src':
    'github:mfussenegger/nvim-lint/4055dc856d5ac8f6b85748006fd8fa6457e086e8?narHash=sha256-FgHWOiF%2BoMXVISP/k2rt7epEEjFS/sYLnEpe85B5Ox0%3D' (2024-04-09)
  → 'github:mfussenegger/nvim-lint/f098232d70cebe90e27404928c9bc19ca7a5a7b5?narHash=sha256-QyS%2BxSIOVbJdf/vLU0o8fdZrQ%2BMssolTyg75ZSnP0fY%3D' (2024-04-16)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/81eb8d519233c105f30dc0a278607e62b20502fd?narHash=sha256-6pbOeklf%2BotsJIjt9IUyUfuTAedShnwERYq1IfhyrJs%3D' (2024-04-06)
  → 'github:kyazdani42/nvim-tree.lua/5a18b9827491aa1aea710bc9b85c6b63ed0dad14?narHash=sha256-VMyVrgcgqx52QIy/q0oAuJNuxMNPAgPX3bi1LP27Iho%3D' (2024-04-25)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/d2f4c7830377d6d036e9621ae696dbd28f089897?narHash=sha256-rtE1H24sKekGwTIMh7VXkwKVCbJtn8ms4ioK9gF%2BKxY%3D' (2024-04-14)
  → 'github:nvim-treesitter/nvim-treesitter/19c6b0c4c9b35962e45b782e2b85a3214d2ac4d5?narHash=sha256-1K%2Bvg99QjM7UiMLMN7m4trZYFR33BwyHZlsPOe6UOqE%3D' (2024-04-25)
• Updated input 'tree-sitter-puppet':
    'github:amaanq/tree-sitter-puppet/5849f9694197a6e822872945b415429c285fdd54?narHash=sha256-Lwfiby7amjTIOz8QRoC4RdZyFPfFikmQ2sqta4akyH8%3D' (2024-03-03)
  → 'github:amaanq/tree-sitter-puppet/584522f32495d648b18a53ccb52d988e60de127d?narHash=sha256-%2BzMgzyuGerJ8l%2Bi5ZtWnmGr3i4fFiSLD5FssyKESsmI%3D' (2024-04-20)
• Updated input 'tree-sitter-vimdoc':
    'github:neovim/tree-sitter-vimdoc/a75a932449675bbd260213a95f4cd8b3193286f0?narHash=sha256-spj8h1ZDY%2B6sWi%2BFCALapBsG%2Big9H1u3bjkI2%2BUP0ds%3D' (2024-03-23)
  → 'github:neovim/tree-sitter-vimdoc/b711df784dd43d0a8ed8ddbfca0ddcc3239d94b4?narHash=sha256-%2BQbLL5EC3oNiwd7h7MW/mutHhGPUHhbYTQcu6x6atcI%3D' (2024-04-22)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/0479d4c1ebeb314c5281b4aa7109def821a1b27b?narHash=sha256-VgCqYB%2BymQuZmno8B82L8piyENo5xTNuqubnACYoBRk%3D' (2024-04-13)
  → 'github:nix-community/NixOS-WSL/f41f95c2c187a49a4ef98b5d00fdf1a68c5f88ba?narHash=sha256-q3zu2D5HVphfAMZ070o/K9IPxw5DLsLkvwr7H1b5fpE%3D' (2024-04-24)
2024-04-25 16:30:29 +00:00
c066d27909 switch from proton-ge overlay to nixpkgs proton-ge-bin 2024-04-25 12:21:34 -04:00
e43fc0f8db move all files to new nixfmt rfc 2024-04-20 09:42:06 -04:00
b23efc4d77 bpc repo moved to github 2024-04-17 21:03:41 -04:00
2258e68bc2 reformat and remove unnecessary edition from rustfmt 2024-04-14 21:46:15 -04:00
bb23e9fdbe flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/79eab0e82cb126bf4ac170f44af82479f0895ab5' (2024-04-08)
  → 'github:nix-community/disko/8d4ae698eaac8bd717e23507da2ca8b345bec4b5' (2024-04-12)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/49b3ee7dbb9fdbb6388bd5d47895a9a9992b771e' (2024-04-09)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/10e4a50241d6bbae62754efda7bc4b48dd4aa2c1' (2024-04-14)
• Updated input 'home-manager':
    'github:nix-community/home-manager/b00d0e4fe9cba0047f54e77418ddda5f17e6ef2c' (2024-04-09)
  → 'github:nix-community/home-manager/630a0992b3627c64e34f179fab68e3d48c6991c0' (2024-04-14)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.32.0-nextcloud.tar.gz?narHash=sha256-UeZXoZFEPJj7zEVNTXJ3IYNt/wI7VFq3Pjh1ubMHCBo%3D' (2024-04-09)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.32.0-nextcloud.tar.gz?narHash=sha256-UeZXoZFEPJj7zEVNTXJ3IYNt/wI7VFq3Pjh1ubMHCBo%3D' (2024-04-14)
• Updated input 'nur':
    'github:nix-community/nur/ee4ce451f46a08778d1a9f9837eff0750714b08b' (2024-04-09)
  → 'github:nix-community/nur/1e6e9f41f0fbdcba7ca505a7d54128bc2f1053d6' (2024-04-14)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/c16f66cca0c38b4e21371d8330b7f2ad6404f6dc' (2024-04-09)
  → 'github:nvim-treesitter/nvim-treesitter/d2f4c7830377d6d036e9621ae696dbd28f089897' (2024-04-14)
• Updated input 'tree-sitter-bash':
    'github:tree-sitter/tree-sitter-bash/f3f26f47a126797c011c311cec9d449d855c3eab' (2024-03-13)
  → 'github:tree-sitter/tree-sitter-bash/f8fb3274f72a30896075585b32b0c54cad65c086' (2024-04-11)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/aef95bdb6800a3a2af7aa7083d6df03067da6592' (2024-03-15)
  → 'github:nix-community/NixOS-WSL/0479d4c1ebeb314c5281b4aa7109def821a1b27b' (2024-04-13)
• Updated input 'wsl/flake-utils':
    'github:numtide/flake-utils/1ef2e671c3b0c19053962c07dbda38332dcebf26' (2024-01-15)
  → 'github:numtide/flake-utils/b1d9ab70662946ef0850d488da1c9019f3a9752a' (2024-03-11)
2024-04-14 12:32:23 +00:00
358206f6fb arrow image package derivation 2024-04-14 08:28:39 -04:00
402d168304 remove aws and clean up arrow 2024-04-14 08:08:57 -04:00
1865f6985e automatically fetch notes 2024-04-14 04:21:59 +00:00
c338ff5579 color update and decrypt git zfs dataset 2024-04-14 04:07:04 +00:00
bf58cf62d3 fix dns issues with ipv6 and local bind 2024-04-14 03:43:58 +00:00
520f0587c8 increase aerc check-mail timeout
due to purelymail backend (issue 213)
2024-04-13 09:49:56 -04:00
81f2c6372e required update to nixpkgs bc electron doesn't work 2024-04-13 09:49:41 -04:00
b4b2a7f511 temp: don't have latest.xpi for bpc 2024-04-13 09:49:41 -04:00
bc2d0a347d replace white background diagram with transparent 2024-04-13 09:09:54 -04:00
07137fdd91 apply new nix fmt specification 2024-04-13 09:03:44 -04:00
e8e0c97e59 temp: replace bpc-uploads with my own version
because it was removed from gitlab
2024-04-13 09:02:41 -04:00
83496bcad1 no reason to have 122 in firewall 2024-04-13 09:01:56 -04:00
7d82e18c4d update flake and fix nixfmt after update 2024-04-09 17:54:22 -04:00
3c2a971fc4 fix: arrow as host must include filesystems 2024-04-09 17:06:13 -04:00
742fba29f9 include SSL CA in docs 2024-04-02 07:59:04 -07:00
56da4afb5b update gh collaborators to latest go builder 2024-04-02 07:58:30 -07:00
2088d82252 add cleanup step for dns record after tf destroy 2024-03-30 19:47:43 +00:00
566a654f5b don't enable dyndns for services not running 2024-03-30 14:48:56 -04:00
1462214a8e remove league of legends option 2024-03-30 14:47:49 -04:00
efc7daf5fc fix: don't enable thelounge dyndns everywhere 2024-03-30 14:40:24 -04:00
fa582fcc34 fix: chained ternary operator in workflow 2024-03-30 14:32:30 -04:00
c66cedf146 use variable for vultr plan 2024-03-30 14:30:02 -04:00
8dde578676 try multiple ternary option for arrow workflow 2024-03-30 14:07:36 -04:00
5e1534451d don't enable cloudflare-dyndns unless domain list is non-empty 2024-03-30 18:03:52 +00:00
c4a1c7564c remove league of legends as anticheat no longer supports linux 2024-03-30 13:48:26 -04:00
0de2c429f2 fix path for transmission if not in download 2024-03-30 13:48:10 -04:00
eb6b72a25c try updating workflow name 2024-03-30 13:07:06 -04:00
0618fc3962 try binding to wait for identity service to complete
and see if remainafterexit fixes one of the issues
2024-03-30 13:01:34 -04:00
1b7e4687e4 fix: add default value for noproxy dns 2024-03-30 12:34:37 -04:00
9f33371daf update arrow images bucket to use single subdomain 2024-03-30 11:59:18 -04:00
bbc529287d fix: add second no-proxy dyndns for minecraft and others 2024-03-30 15:56:58 +00:00
f757e4a894 add cloudflare-dyndns domains for flame 2024-03-30 15:41:18 +00:00
5cb7b87e74 fix: can't restart systemd from post while also a requirement
oneshot requirements wait for programs to exit anyway
2024-03-30 15:41:07 +00:00
a853352a57 don't sign commits globally, only for personal 2024-03-27 15:02:20 -04:00
a15c05491e git ssh signing 2024-03-26 13:07:26 -04:00
82f7da5858 add temp comment for ldap host option 2024-03-26 12:23:41 -04:00
5d34ed5a68 reset launcher location on every launch 2024-03-26 12:23:27 -04:00
f73c52e2b7 fix: mac dock persistent-apps correction 2024-03-26 12:23:01 -04:00
fecd66465d remove wappalyzer completely 2024-03-26 12:01:32 -04:00
9b0d363909 fix: mac dock persistent-apps now supported directly 2024-03-26 12:01:13 -04:00
400d45df39 add ssm session manager for aws 2024-03-26 11:21:32 -04:00
634805d36d fix: ocr file not found errors 2024-03-26 11:17:54 -04:00
db051a737e switch restart script to multiline script 2024-03-24 21:52:34 -04:00
cbf0d2680c fix: multiline execstartpost 2024-03-24 19:23:41 -04:00
316439dc9a fix: chmod for ssh keys 2024-03-24 18:51:35 -04:00
edaf95cc1c fix: forgot to add auth to ssh 2024-03-24 18:50:23 -04:00
5f867fa2dd fix: typo 2024-03-24 18:31:28 -04:00
bdaf63da20 try to restart services after waiting for identity file 2024-03-24 18:25:26 -04:00
c12d54314e fix: home-manager won't start with low mem
issue caused by nix-index memory usage
2024-03-24 18:25:18 -04:00
f50bbeba94 increase grub boot delay for switching os 2024-03-24 18:04:43 -04:00
848c8aac5f Host key verification 2024-03-24 17:39:38 -04:00
488b5d61fd switch ssh wait with a script 2024-03-24 15:34:12 -04:00
6b5892eb1d make identity wait a finite amount 2024-03-24 15:15:07 -04:00
c3be92dcaf fix: s3 cp failing in github actions 2024-03-24 15:06:50 -04:00
64bee30b17 fixes to cloudflare dyndns and ssh 2024-03-24 15:04:40 -04:00
568fdc7491 temp: skip wait for identity 2024-03-24 14:55:17 -04:00
8585574100 more aws config changes 2024-03-24 14:39:18 -04:00
6b37ba13c9 tf init with definition in main 2024-03-24 14:36:23 -04:00
efac745bdd add skip account id to the backend init 2024-03-24 14:31:22 -04:00
7e0a0bbbd2 try mixing up secrets 2024-03-24 14:29:51 -04:00
16e228b7b0 fix: formatting for just the specific folder 2024-03-24 14:24:09 -04:00
277c400248 forgot to add access key vars to s3 cmd 2024-03-24 14:22:57 -04:00
2b03dd5198 try updated caddy vendorhash 2024-03-24 14:04:28 -04:00
bdd922d318 fix: boolean input in gh action 2024-03-24 14:00:38 -04:00
6b2dfb4aa9 fix: tf formatting 2024-03-24 13:59:36 -04:00
67ab65fa16 introduce arrow host and deployment 2024-03-24 13:16:20 -04:00
b06ebc7185 update proton-ge 2024-03-23 09:36:03 -04:00
a30b189207 remove unnecessary firefox addons 2024-03-18 22:48:27 -04:00
eb3c1f7a4c Revert "kvm replaces hdmi monitor w displayport"
This reverts commit bbdfeb645e.
2024-03-18 22:48:12 -04:00
c697cd4e38 flake.lock: Update
Flake lock file updates:

• Updated input 'bypass-paywalls-clean':
    'gitlab:magnolia1234/bpc-uploads/6e9521ff11ed960d865268078dff00d81e859fbf' (2024-02-26)
  → 'gitlab:magnolia1234/bpc-uploads/0ca7c6a857e4e6c3e508228168e8de70e21cee3a' (2024-03-04)
• Updated input 'darwin':
    'github:lnl7/nix-darwin/17c2ca3c7537a2512224242b84e1ea3c08e79b92' (2024-03-03)
  → 'github:lnl7/nix-darwin/550340062c16d7ef8c2cc20a3d2b97bcd3c6b6f6' (2024-03-07)
• Updated input 'disko':
    'github:nix-community/disko/bde7dd352c07d43bd5b8245e6c39074a391fdd46' (2024-03-01)
  → 'github:nix-community/disko/72818e54ec29427f8d9f9cfa6fc859d01ca6dc66' (2024-03-09)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/144a94dc71410d9655e4e73ac4579e9b7405572b' (2024-03-03)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/e9883b75736b2d33787c9326d27d719a644b1c35' (2024-03-10)
• Updated input 'home-manager':
    'github:nix-community/home-manager/2f3367769a93b226c467551315e9e270c3f78b15' (2024-02-29)
  → 'github:nix-community/home-manager/b0b0c3d94345050a7f86d1ebc6c56eea4389d030' (2024-03-09)
• Updated input 'kitty-scrollback-nvim-src':
    'github:mikesmithgh/kitty-scrollback.nvim/93b4286c4e2c9d4a73ccbefb3adbc688d3ed5fe4' (2024-02-21)
  → 'github:mikesmithgh/kitty-scrollback.nvim/c3014974e4cd498a534ff814761ef794ebb85d01' (2024-03-10)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.32.0-nextcloud.tar.gz?narHash=sha256-UeZXoZFEPJj7zEVNTXJ3IYNt/wI7VFq3Pjh1ubMHCBo%3D' (2024-03-03)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.32.0-nextcloud.tar.gz?narHash=sha256-UeZXoZFEPJj7zEVNTXJ3IYNt/wI7VFq3Pjh1ubMHCBo%3D' (2024-03-10)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/2c9562e7624fa1b50983fc18d504bf86202bef49' (2024-02-29)
  → 'github:nix-community/nixos-generators/bef32a05496d9480b02be586fa7827748b9e597b' (2024-03-08)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/479831ed8b3c9c7b80533999f880c7d0bf6a491b' (2024-02-25)
  → 'github:nix-community/nixpkgs.lib/7873d84a89ae6e4841528ff7f5697ddcb5bdfe6c' (2024-03-03)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/1536926ef5621b09bba54035ae2bb6d806d72ac8' (2024-02-29)
  → 'github:nixos/nixpkgs/9df3e30ce24fd28c7b3e2de0d986769db5d6225d' (2024-03-06)
• Updated input 'nur':
    'github:nix-community/nur/7cf254f2153f2d0cde346c6ea3ff158acf6a6609' (2024-03-03)
  → 'github:nix-community/nur/ff870a7e359c3f34fc1144c6c35f76003d6c17e7' (2024-03-10)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/efafd73efa9bc8c26282aed563ba0f01c7465b06' (2024-03-03)
  → 'github:kyazdani42/nvim-tree.lua/041dbd18f440207ad161503a384e7c82d575db66' (2024-03-09)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/e3e5ff4ebddcbfa8f5798253ebd1f9b449e8ee69' (2024-03-02)
  → 'github:nvim-treesitter/nvim-treesitter/7ff51f53b0efb6228df2e8539b51bb2e737b77f3' (2024-03-09)
• Updated input 'tree-sitter-puppet':
    'github:amaanq/tree-sitter-puppet/3641b9e854ac9c84c7576e71c4c9a357bcfd9550' (2024-02-18)
  → 'github:amaanq/tree-sitter-puppet/5849f9694197a6e822872945b415429c285fdd54' (2024-03-03)
• Updated input 'tree-sitter-python':
    'github:tree-sitter/tree-sitter-python/22d3f87bdafac2782e907330babe4af574f5d0b4' (2024-02-27)
  → 'github:tree-sitter/tree-sitter-python/03e88c170cb23142559a406b6e7621c4af3128f5' (2024-03-06)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/3257ad7f173b0314c8a42fec450fa6556495b97c' (2024-02-29)
  → 'github:nix-community/NixOS-WSL/e0b9e6c8ff35c7a28cb6baa02d85a9737a2ee4e9' (2024-03-09)
2024-03-10 03:44:43 +00:00
661ef8dcbf significantly improved ldapsearch with jq
improve ldapsearch secondary queries
2024-03-08 09:27:33 -05:00
ec09db42e6 use built-in git diff highlight by default 2024-03-06 11:47:57 -05:00
3403924105 add difftastic for more fancy diffs 2024-03-06 11:22:35 -05:00
3d234072f6 add delta for fancy diffs 2024-03-06 11:19:37 -05:00
b39cda6b84 fix: zfs noauto encrypted pool still requesting passphrase on reboot 2024-03-04 13:01:07 +00:00
47be4291a3 flake.lock: Update
Flake lock file updates:

• Updated input 'bypass-paywalls-clean':
    'gitlab:magnolia1234/bpc-uploads/47c602fb1253ff05b3654da4a6d375978f6a43fd' (2024-02-12)
  → 'gitlab:magnolia1234/bpc-uploads/6e9521ff11ed960d865268078dff00d81e859fbf' (2024-02-26)
• Updated input 'darwin':
    'github:lnl7/nix-darwin/0e6857fa1d632637488666c08e7b02c08e3178f8' (2024-02-18)
  → 'github:lnl7/nix-darwin/17c2ca3c7537a2512224242b84e1ea3c08e79b92' (2024-03-03)
• Updated input 'disko':
    'github:nix-community/disko/d8a4377cd8eec23668ea3fae07efee9d5782cb91' (2024-02-18)
  → 'github:nix-community/disko/bde7dd352c07d43bd5b8245e6c39074a391fdd46' (2024-03-01)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/2ab9b39e98497584ba952cacb8dfadf8492fd28d' (2024-02-18)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/144a94dc71410d9655e4e73ac4579e9b7405572b' (2024-03-03)
• Updated input 'home-manager':
    'github:nix-community/home-manager/3d6791b3897b526c82920a2ab5f61d71985b3cf8' (2024-02-15)
  → 'github:nix-community/home-manager/2f3367769a93b226c467551315e9e270c3f78b15' (2024-02-29)
• Updated input 'kitty-scrollback-nvim-src':
    'github:mikesmithgh/kitty-scrollback.nvim/78dd609368aa20bd6fbd801cce73ea30787ebe21' (2024-02-13)
  → 'github:mikesmithgh/kitty-scrollback.nvim/93b4286c4e2c9d4a73ccbefb3adbc688d3ed5fe4' (2024-02-21)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.32.0-nextcloud.tar.gz?narHash=sha256-UeZXoZFEPJj7zEVNTXJ3IYNt/wI7VFq3Pjh1ubMHCBo%3D' (2024-01-21)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.32.0-nextcloud.tar.gz?narHash=sha256-UeZXoZFEPJj7zEVNTXJ3IYNt/wI7VFq3Pjh1ubMHCBo%3D' (2024-03-03)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/0aa24e93f75370454f0e03747b6836ac2a2c9fca' (2024-02-14)
  → 'github:nix-community/nixos-generators/2c9562e7624fa1b50983fc18d504bf86202bef49' (2024-02-29)
• Updated input 'nixos-generators/nixlib':
    'github:nix-community/nixpkgs.lib/f5af57d3ef9947a70ac86e42695231ac1ad00c25' (2023-09-03)
  → 'github:nix-community/nixpkgs.lib/479831ed8b3c9c7b80533999f880c7d0bf6a491b' (2024-02-25)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/5863c27340ba4de8f83e7e3c023b9599c3cb3c80' (2024-02-16)
  → 'github:nixos/nixpkgs/1536926ef5621b09bba54035ae2bb6d806d72ac8' (2024-02-29)
• Updated input 'nur':
    'github:nix-community/nur/c4296c55625e5394c142d5c07c00cddb76d5241b' (2024-02-18)
  → 'github:nix-community/nur/7cf254f2153f2d0cde346c6ea3ff158acf6a6609' (2024-03-03)
• Updated input 'nvim-lint-src':
    'github:mfussenegger/nvim-lint/31be66c27214174a28fc092ffcf4bb3e8f6cfd43' (2024-02-16)
  → 'github:mfussenegger/nvim-lint/e824adb9bc01647f71e55457353a68f0f37f9931' (2024-02-29)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/d35a8d5ec6358ada4b058431b367b32360737466' (2024-02-18)
  → 'github:kyazdani42/nvim-tree.lua/efafd73efa9bc8c26282aed563ba0f01c7465b06' (2024-03-03)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/5e4b657181516e4aaf03ccbb4b21eca3b62b07dc' (2024-02-18)
  → 'github:nvim-treesitter/nvim-treesitter/e3e5ff4ebddcbfa8f5798253ebd1f9b449e8ee69' (2024-03-02)
• Updated input 'tree-sitter-lua':
    'github:MunifTanjim/tree-sitter-lua/9668709211b2e683f27f414454a8b51bf0a6bda1' (2023-09-07)
  → 'github:MunifTanjim/tree-sitter-lua/04c9579dcb917255b2e5f8199df4ae7f587d472f' (2024-02-21)
• Updated input 'tree-sitter-puppet':
    'github:amaanq/tree-sitter-puppet/9ce9a5f7d64528572aaa8d59459ba869e634086b' (2023-07-24)
  → 'github:amaanq/tree-sitter-puppet/3641b9e854ac9c84c7576e71c4c9a357bcfd9550' (2024-02-18)
• Updated input 'tree-sitter-python':
    'github:tree-sitter/tree-sitter-python/deba2badc88afd18e6cbd4341ee3c18c3a9bb4ed' (2024-02-14)
  → 'github:tree-sitter/tree-sitter-python/22d3f87bdafac2782e907330babe4af574f5d0b4' (2024-02-27)
• Updated input 'tree-sitter-vimdoc':
    'github:neovim/tree-sitter-vimdoc/ed8695ad8de39c3f073da130156f00b1148e2891' (2024-01-17)
  → 'github:neovim/tree-sitter-vimdoc/016ad75faa854e4e13bc40c517015183b795eed9' (2024-03-02)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/c8ddba82ca6b791be1acaae4b336ff8e857ec70b' (2024-02-12)
  → 'github:nix-community/NixOS-WSL/3257ad7f173b0314c8a42fec450fa6556495b97c' (2024-02-29)
2024-03-03 03:44:57 +00:00
67f7506636 update size for git repos and kitty scrollback 2024-02-28 16:11:03 -05:00
bbdfeb645e kvm replaces hdmi monitor w displayport 2024-02-28 07:55:18 -05:00
7f60d88f30 automatically use autosquash for rebase 2024-02-28 07:55:03 -05:00
8babcf342b convert nextcloud db from mysql to postgres 2024-02-25 22:31:02 +00:00
a5ec39cd2a map users to generic postgres roles 2024-02-25 21:14:04 +00:00
63434c8309 docs: add new users to thelounge 2024-02-25 19:03:58 +00:00
1a5fe54d06 jujutsu shell integration setting deprecated 2024-02-25 19:01:59 +00:00
b2cfdc1fdf add thelounge irc client 2024-02-25 18:50:00 +00:00
3a4568bc69 add gc for home-manager
move gc options into nixpkgs file
2024-02-19 09:45:00 -05:00
203bb6a13a increase generation cleanup limit
just in case it fails from one upgrade week to the next
2024-02-19 14:28:50 +00:00
4bfd65acb3 fix: new disko format of disks wouldn't boot 2024-02-19 14:28:13 +00:00
d636de890c try to add firefox as mime html reader 2024-02-18 10:35:01 -05:00
1e9401eef2 update disko config to new format 2024-02-18 09:41:48 -05:00
ea67467cbf fix: alias nvim-base16 is still in vim-plugins
not sure what it means so i had to package it myself
2024-02-18 09:26:23 -05:00
fc6bdeb1ad temp: himalaya notmuch broken but config still works 2024-02-18 09:06:15 -05:00
2758637953 fix typo in readme 2024-02-16 22:47:32 -05:00
f747c80c2a update proton-ge and improve install to steam 2024-02-16 22:26:17 -05:00
013f67c0a8 partially fill out vars for git 2024-02-16 20:56:28 -05:00
fb145e5772 monochrome polybar icons 2024-02-16 20:56:03 -05:00
408b329684 temp: disable jj fish integration 2024-02-13 09:49:32 -05:00
ad70457600 fix: compress menu bar icons 2024-02-13 09:49:22 -05:00
f54f7b6e2e fix: launching obsidian built by nix on macos 2024-02-13 09:48:56 -05:00
2700efa6e4 increase format timeout in neovim 2024-02-11 22:28:05 -05:00
e44adf4568 rust-analyzer: ignore direnv folder 2024-02-11 16:20:23 -05:00
471b258ff7 update flake.lock 2024-02-11 16:20:06 -05:00
ac6329baf6 patch kitty-scrollback-nvim because health check depends on git 2024-02-10 21:41:19 -05:00
a61ac456a9 fix: neovim refactor adjusted reference for kitty-scrollback 2024-02-10 21:15:28 -05:00
cf77adb366 neovim lsp refactor
remove null-ls (archived, deprecated)
replace formatting with conform.nvim
replace diagnostics with nvim-lint
fixed issue where overlay neovim plugins weren't being applied
2024-02-10 21:04:37 -05:00
2217568a59 clean up commented xdg mime associations 2024-02-10 09:18:37 -05:00
05deb5b979 fix paperless permissions with umask
instead of running a systemd service timer
2024-02-10 01:40:04 +00:00
8621e2375d fix: nextcloud extraOptions renamed 2024-02-10 01:37:21 +00:00
25975da0c1 reenable visidata on mac 2024-02-09 10:33:17 -05:00
a79719c21a fix: atuin search keybind 2024-02-09 09:51:29 -05:00
5aea58df79 clean up hammerspoon on m3 w display
for some reason, i need to multiply x to line up half-max frames
2024-02-08 15:28:46 -05:00
1833bfddfb prefer kitty to not start fullscreen on m3 macbook pro 2024-02-07 23:14:06 -05:00
6c2fc0289b drop apache-directory-studio in favor of ldapsearch
apache directory studio can't figure out how to make it work on m3
2024-02-07 22:08:22 -05:00
5034ada458 add time format to meetingbar and remove scroll zoom
scroll wheel zoom updates don't work for whatever reason
2024-02-07 21:23:01 -05:00
e635cf6225 fix: deprecated option 2024-02-06 23:41:28 -05:00
b901eef822 use nsixv for png images 2024-02-06 22:12:14 -05:00
e7cdfc1453 include non-zero animation in macos window movement 2024-02-06 17:43:44 -05:00
7503335701 add 1password cli everywhere 2024-02-06 17:43:27 -05:00
0b571e4565 partially move macos dock apps to declarative list 2024-02-04 21:09:25 -07:00
f91c9bcfc2 move macos preferences from imperative to declarative 2024-02-04 13:56:16 -07:00
b27b9136f9 remove ansible (no longer used) 2024-02-04 10:03:29 -07:00
865dad0f4f Revert "remove ansible (no longer used)"
This reverts commit 3178a1dea9.
2024-02-04 10:02:50 -07:00
3178a1dea9 remove ansible (no longer used) 2024-02-04 10:02:39 -07:00
af1b6c8b35 add rep and ren (without rep) 2024-02-04 08:33:42 -07:00
89e8463b98 remove unneeded temp fix for terraform on darwin 2024-02-04 08:33:42 -07:00
01eccb6655 flake.lock: Update
Flake lock file updates:

• Updated input 'bypass-paywalls-clean':
    'gitlab:magnolia1234/bpc-uploads/245899e6b06e30ce36f26b37b8045b6c5b0ac8de' (2024-01-23)
  → 'gitlab:magnolia1234/bpc-uploads/c91cfd510390ab5a138f412ad2890b2cb2a2eafd' (2024-02-02)
• Updated input 'darwin':
    'github:lnl7/nix-darwin/0108864c15bb68ad57d17fb2e7d3a3e025751d79' (2024-01-28)
  → 'github:lnl7/nix-darwin/bdbae6ecff8fcc322bf6b9053c0b984912378af7' (2024-02-02)
• Updated input 'disko':
    'github:nix-community/disko/f7424625dc1f2e4eceac3009cbd1203d566feebc' (2024-01-26)
  → 'github:nix-community/disko/f67ba6552845ea5d7f596a24d57c33a8a9dc8de9' (2024-01-29)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/912228b33c72703badb20a309518e1e09af302c3' (2024-01-28)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/d839feb516758ad28bc1cef43008d55e749c1d6a' (2024-02-04)
• Updated input 'hmts-nvim-src':
    'github:calops/hmts.nvim/14fd941d7ec2bb98314a1aacaa2573d97f1629ab' (2023-08-28)
  → 'github:calops/hmts.nvim/ba1239972a1f56b94252d4f85a43e777ac419662' (2024-02-02)
• Updated input 'home-manager':
    'github:nix-community/home-manager/b2f56952074cb46e93902ecaabfb04dd93733434' (2024-01-26)
  → 'github:nix-community/home-manager/1ca210648a6ca9b957efde5da957f3de6b1f0c45' (2024-02-03)
• Updated input 'kitty-scrollback-nvim-src':
    'github:mikesmithgh/kitty-scrollback.nvim/bb5332b8ec0763b9e611f8cabf4165ed8c3893f5' (2024-01-29)
  → 'github:mikesmithgh/kitty-scrollback.nvim/12f7687ac049d46a987c39b2b4f657fdf540fa4e' (2024-02-02)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.32.0-nextcloud.tar.gz?narHash=sha256-UeZXoZFEPJj7zEVNTXJ3IYNt/wI7VFq3Pjh1ubMHCBo%3D' (2024-01-28)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.32.0-nextcloud.tar.gz?narHash=sha256-UeZXoZFEPJj7zEVNTXJ3IYNt/wI7VFq3Pjh1ubMHCBo%3D' (2024-02-04)
• Updated input 'nix2vim':
    'github:gytis-ivaskevicius/nix2vim/84584da274869fb8177e8ef2d0b9d975bbb82489' (2024-01-28)
  → 'github:gytis-ivaskevicius/nix2vim/29253dcf0f645a44847006d436b096369ef42fd8' (2024-02-02)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/ae5c332cbb5827f6b1f02572496b141021de335f' (2024-01-25)
  → 'github:nixos/nixpkgs/b8b232ae7b8b144397fdb12d20f592e5e7c1a64d' (2024-01-31)
• Updated input 'nur':
    'github:nix-community/nur/ab8cf147ee2254ef91e87ff7272524975fcbba3f' (2024-01-28)
  → 'github:nix-community/nur/ab432acea15134873882610c0e936a882319bc8a' (2024-02-04)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/7bdb220d0fe604a77361e92cdbc7af1b8a412126' (2024-01-21)
  → 'github:kyazdani42/nvim-tree.lua/f39f7b6fcd3865ac2146de4cb4045286308f2935' (2024-01-29)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/458ce4d16c1771fc601ec10a87820acae9981f6d' (2024-01-27)
  → 'github:nvim-treesitter/nvim-treesitter/4fbf150a1621d52f17b099506e1a32f107079210' (2024-02-03)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/31346e340e828f79be23d9c83ec1674b152f17bc' (2024-01-24)
  → 'github:nix-community/NixOS-WSL/bcae8dc73b931b7f0fc65f1f1ef93dc379dfd66b' (2024-02-02)
2024-02-04 03:44:18 +00:00
e7f8a75df3 fix k9s to work with new config workflow 2024-01-30 10:37:05 -07:00
fa03e51d37 add meetingbar cmd opt ctrl j shortcut 2024-01-30 10:22:08 -07:00
fe1a4c2c29 switch to kitty-scrollback.nvim
still has problems with ergonomics
2024-01-30 09:57:38 -07:00
26afa49879 bump neovim plugins and remove unnecessary overlays
clean checkhealth but some possible bugs in bufferline
2024-01-27 21:46:40 -07:00
94bc6662ed fix pr body template for flake updates 2024-01-27 21:20:01 -07:00
06c1f5c372 flake.lock: Update
Flake lock file updates:

• Updated input 'bypass-paywalls-clean':
    'gitlab:magnolia1234/bpc-uploads/55af5ff1f6a7f8ea7fc57253029c07de8f481c62' (2024-01-18)
  → 'gitlab:magnolia1234/bpc-uploads/245899e6b06e30ce36f26b37b8045b6c5b0ac8de' (2024-01-23)
• Updated input 'darwin':
    'github:lnl7/nix-darwin/3ac7acd32db4f7111015e8d5349ff6067df01bf6' (2024-01-21)
  → 'github:lnl7/nix-darwin/0108864c15bb68ad57d17fb2e7d3a3e025751d79' (2024-01-28)
• Updated input 'disko':
    'github:nix-community/disko/0033adc6e3f1ed076f3ed1c637ef1dfe6bef6733' (2024-01-18)
  → 'github:nix-community/disko/f7424625dc1f2e4eceac3009cbd1203d566feebc' (2024-01-26)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/51cc53fd6e6a1625a00565f110edc09f9ea7cfd9' (2024-01-21)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/912228b33c72703badb20a309518e1e09af302c3' (2024-01-28)
• Updated input 'home-manager':
    'github:nix-community/home-manager/9b378afae72cb07471e19aefc30e8e05ef2d7a61' (2024-01-20)
  → 'github:nix-community/home-manager/b2f56952074cb46e93902ecaabfb04dd93733434' (2024-01-26)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.32.0-nextcloud.tar.gz?narHash=sha256-UeZXoZFEPJj7zEVNTXJ3IYNt/wI7VFq3Pjh1ubMHCBo%3D' (2024-01-21)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.32.0-nextcloud.tar.gz?narHash=sha256-UeZXoZFEPJj7zEVNTXJ3IYNt/wI7VFq3Pjh1ubMHCBo%3D' (2024-01-28)
• Updated input 'nix2vim':
    'github:gytis-ivaskevicius/nix2vim/3836a348503ae27340c7f83f0bc7bcb907f3781d' (2023-06-05)
  → 'github:gytis-ivaskevicius/nix2vim/84584da274869fb8177e8ef2d0b9d975bbb82489' (2024-01-28)
• Updated input 'nix2vim/flake-utils':
    'github:numtide/flake-utils/a1720a10a6cfe8234c0e93907ffe81be440f4cef' (2023-05-31)
  → 'github:numtide/flake-utils/1ef2e671c3b0c19053962c07dbda38332dcebf26' (2024-01-15)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/521fb4cdd8a2e1a00d1adf0fea7135d1faf04234' (2024-01-16)
  → 'github:nix-community/nixos-generators/896f6589db5b25023b812bbb6c1f5d3a499b1132' (2024-01-24)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/bbe7d8f876fbbe7c959c90ba2ae2852220573261' (2024-01-19)
  → 'github:nixos/nixpkgs/ae5c332cbb5827f6b1f02572496b141021de335f' (2024-01-25)
• Updated input 'nur':
    'github:nix-community/nur/ff6497ef576a1d88ef7ecb7e40e3a7cd9a410b2b' (2024-01-21)
  → 'github:nix-community/nur/ab8cf147ee2254ef91e87ff7272524975fcbba3f' (2024-01-28)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/74525ac04760bf0d9fec2bf51474d2b05f36048e' (2024-01-20)
  → 'github:kyazdani42/nvim-tree.lua/7bdb220d0fe604a77361e92cdbc7af1b8a412126' (2024-01-21)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/5cc562748729b6dc9563ea5a3d676ff102ab38b1' (2024-01-20)
  → 'github:nvim-treesitter/nvim-treesitter/458ce4d16c1771fc601ec10a87820acae9981f6d' (2024-01-27)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/bb3eeeb96ce059ae29309138874ccf58e796f4b1' (2024-01-15)
  → 'github:nix-community/NixOS-WSL/31346e340e828f79be23d9c83ec1674b152f17bc' (2024-01-24)
• Updated input 'wsl/flake-utils':
    'github:numtide/flake-utils/4022d587cbbfd70fe950c1e2083a02621806a725' (2023-12-04)
  → 'github:numtide/flake-utils/1ef2e671c3b0c19053962c07dbda38332dcebf26' (2024-01-15)
• Updated input 'zenyd-mpv-scripts':
    'github:zenyd/mpv-scripts/3ad7502fe2d6575b395db5568afdf830872c85d0' (2024-01-19)
  → 'github:zenyd/mpv-scripts/7100d19d18d111ce77fc9e6e8947c0d542a86397' (2024-01-26)
2024-01-28 04:16:16 +00:00
4dd94ee59d switch nixpath back to strings because of nixos
only works as list of attrsets in darwin
2024-01-27 21:06:23 -07:00
69dd348c92 fix: repos function fzf window too small 2024-01-25 14:57:29 -05:00
d823b2a49e fix: homebrew programs not in path 2024-01-25 14:57:18 -05:00
756177826c add code for macos meetingbar settings 2024-01-25 08:35:19 -05:00
c60632a37f tweaks for new mac 2024-01-25 07:55:31 -05:00
324956c091 fixes for onboarding aarch64-darwin 2024-01-24 21:52:33 -05:00
68c5816d4d fixes for testing on brand new darwin system 2024-01-24 14:41:24 -05:00
643b722eb4 get system ready for m3 macbook 2024-01-24 11:02:06 -05:00
db0b2b147c comment for firefox-addon repository 2024-01-23 07:44:18 -05:00
b382bc9fbb add gpg for darwin machine
just for specific usecases where it's been annoying to pull every time
2024-01-22 16:34:37 -05:00
454accd742 fix proximity sort by using full path 2024-01-22 13:03:46 -05:00
088de57cab add atuin to darwin 2024-01-21 14:28:13 -05:00
5a992d6d5a setup atuin synced shell history for user and root 2024-01-21 09:42:46 -05:00
f44cf65c43 flake.lock: Update
Flake lock file updates:

• Updated input 'bypass-paywalls-clean':
    'gitlab:magnolia1234/bpc-uploads/fc34b6b8e2d79af62ef9cf8222daeb0eb4b785a4' (2024-01-10)
  → 'gitlab:magnolia1234/bpc-uploads/55af5ff1f6a7f8ea7fc57253029c07de8f481c62' (2024-01-18)
• Updated input 'darwin':
    'github:lnl7/nix-darwin/0dd382b70c351f528561f71a0a7df82c9d2be9a4' (2024-01-03)
  → 'github:lnl7/nix-darwin/3ac7acd32db4f7111015e8d5349ff6067df01bf6' (2024-01-21)
• Updated input 'disko':
    'github:nix-community/disko/f78b6498f69e04514cb84393e5daba669198c1c1' (2024-01-12)
  → 'github:nix-community/disko/0033adc6e3f1ed076f3ed1c637ef1dfe6bef6733' (2024-01-18)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/0d1ff8fb805bfaecfd9a05f788fcd08ca8af38e8' (2024-01-14)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/51cc53fd6e6a1625a00565f110edc09f9ea7cfd9' (2024-01-21)
• Updated input 'home-manager':
    'github:nix-community/home-manager/f2942f3385f1b35cc8a1abb03a45e29c9cb4d3c8' (2024-01-13)
  → 'github:nix-community/home-manager/9b378afae72cb07471e19aefc30e8e05ef2d7a61' (2024-01-20)
• Updated input 'nextcloud-snappymail':
    'https://snappymail.eu/repository/nextcloud/snappymail-2.32.0-nextcloud.tar.gz?narHash=sha256-UeZXoZFEPJj7zEVNTXJ3IYNt/wI7VFq3Pjh1ubMHCBo%3D' (2024-01-21)
  → 'https://snappymail.eu/repository/nextcloud/snappymail-2.32.0-nextcloud.tar.gz?narHash=sha256-UeZXoZFEPJj7zEVNTXJ3IYNt/wI7VFq3Pjh1ubMHCBo%3D' (2024-01-21)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/246219bc21b943c6f6812bb7744218ba0df08600' (2023-12-04)
  → 'github:nix-community/nixos-generators/521fb4cdd8a2e1a00d1adf0fea7135d1faf04234' (2024-01-16)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/317484b1ead87b9c1b8ac5261a8d2dd748a0492d' (2024-01-08)
  → 'github:nixos/nixpkgs/bbe7d8f876fbbe7c959c90ba2ae2852220573261' (2024-01-19)
• Updated input 'nur':
    'github:nix-community/nur/7a24ce86be38634afc3c82caccefc2059bdf935b' (2024-01-14)
  → 'github:nix-community/nur/ff6497ef576a1d88ef7ecb7e40e3a7cd9a410b2b' (2024-01-21)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/f24afa2cef551122b8bd53bb2e4a7df42343ce2e' (2024-01-14)
  → 'github:kyazdani42/nvim-tree.lua/74525ac04760bf0d9fec2bf51474d2b05f36048e' (2024-01-20)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/8cd2b230174efbf7b5d9f49fe2f90bda6b5eb16e' (2024-01-07)
  → 'github:nvim-treesitter/nvim-treesitter/5cc562748729b6dc9563ea5a3d676ff102ab38b1' (2024-01-20)
• Updated input 'tree-sitter-bash':
    'github:tree-sitter/tree-sitter-bash/7331995b19b8f8aba2d5e26deb51d2195c18bc94' (2023-10-10)
  → 'github:tree-sitter/tree-sitter-bash/f7239f638d3dc16762563a9027faeee518ce1bd9' (2024-01-19)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/0fa9268bf9a903498cb567e6d4d01eb945f36f6e' (2024-01-11)
  → 'github:nix-community/NixOS-WSL/bb3eeeb96ce059ae29309138874ccf58e796f4b1' (2024-01-15)
• Updated input 'zenyd-mpv-scripts':
    'github:zenyd/mpv-scripts/19ea069abcb794d1bf8fac2f59b50d71ab992130' (2022-04-22)
  → 'github:zenyd/mpv-scripts/3ad7502fe2d6575b395db5568afdf830872c85d0' (2024-01-19)
2024-01-21 03:49:33 +00:00
46f3a459b6 enable paperless permissions cleanup for nextcloud
and other systems
2024-01-21 03:19:19 +00:00
161c1f46b0 update paperless group permissions 2024-01-21 02:13:13 +00:00
fc2484227a add snappymail to nextcloud 2024-01-21 02:13:13 +00:00
e7bbf68dde add logitune for macos even though it doesn't seem to install 2024-01-19 15:11:15 -05:00
10f7b97b64 add pgcli for better interactivity and set pg version 2024-01-19 03:43:10 +00:00
c8a8b7a897 add postgres to swan 2024-01-17 00:58:05 +00:00
6560d2f9a2 update documentation for nixos hosts 2024-01-16 16:30:41 -05:00
3be397429a fix: module renamed extraConfig to settings 2024-01-15 17:49:31 +00:00
8b17fd035b improve aerc search to use all fields by default 2024-01-15 10:28:08 -05:00
8da8fe7efb tweak readme 2024-01-14 23:05:06 -05:00
59111f5da6 remove snippets from neovim
i never used them anyway
2024-01-14 22:33:50 -05:00
95e8d5c268 switch to proximity fzf project switcher
also sadly must remove the shortcut names because sorting requires full paths
2024-01-14 22:33:29 -05:00
56d2c95c64 flake.lock: Update
Flake lock file updates:

• Updated input 'bypass-paywalls-clean':
    'gitlab:magnolia1234/bpc-uploads/dcd11128c6b7c6246fc6d199ce10d5ec796d4716' (2024-01-03)
  → 'gitlab:magnolia1234/bpc-uploads/fc34b6b8e2d79af62ef9cf8222daeb0eb4b785a4' (2024-01-10)
• Updated input 'disko':
    'github:nix-community/disko/aef9a509db64a081186af2dc185654d78dc8e344' (2024-01-03)
  → 'github:nix-community/disko/f78b6498f69e04514cb84393e5daba669198c1c1' (2024-01-12)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/89d4e4ae6eb41838020dbe0a13cc72506402e0e3' (2024-01-07)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/0d1ff8fb805bfaecfd9a05f788fcd08ca8af38e8' (2024-01-14)
• Updated input 'home-manager':
    'github:nix-community/home-manager/51e44a13acea71b36245e8bd8c7db53e0a3e61ee' (2024-01-05)
  → 'github:nix-community/home-manager/f2942f3385f1b35cc8a1abb03a45e29c9cb4d3c8' (2024-01-13)
• Updated input 'nil/flake-utils':
    'github:numtide/flake-utils/4022d587cbbfd70fe950c1e2083a02621806a725' (2023-12-04)
  → 'github:numtide/flake-utils/dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7' (2023-06-25)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/bd645e8668ec6612439a9ee7e71f7eac4099d4f6' (2024-01-02)
  → 'github:nixos/nixpkgs/317484b1ead87b9c1b8ac5261a8d2dd748a0492d' (2024-01-08)
• Updated input 'nur':
    'github:nix-community/nur/3a216c262c910b70e23ee01a4479dcc40c58599b' (2024-01-07)
  → 'github:nix-community/nur/7a24ce86be38634afc3c82caccefc2059bdf935b' (2024-01-14)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/78a5836092617205a999aefc75be1d842c299cbc' (2024-01-06)
  → 'github:kyazdani42/nvim-tree.lua/f24afa2cef551122b8bd53bb2e4a7df42343ce2e' (2024-01-14)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/5032f9952ad2a3a7f7792ac438c4f9e2bd53e0b9' (2024-01-06)
  → 'github:nvim-treesitter/nvim-treesitter/8cd2b230174efbf7b5d9f49fe2f90bda6b5eb16e' (2024-01-07)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/d2fd320bab0aa486383bbf5f13d5d8120700f911' (2024-01-05)
  → 'github:nix-community/NixOS-WSL/0fa9268bf9a903498cb567e6d4d01eb945f36f6e' (2024-01-11)
2024-01-14 03:44:12 +00:00
602d411bad fix: python flake template 2024-01-13 22:07:27 -05:00
4cd9572993 fix: nextcloud status check says no output buffering 2024-01-13 13:35:50 +00:00
84d7fc9892 fix: aerc on darwin
switch to using xdg so config is saved in home dir
instead of ~/Library/Preferences/aerc/
2024-01-12 12:34:04 -05:00
dab40e081a add more services documentation 2024-01-09 23:11:11 -05:00
984a47d3b1 add links for readme diagram 2024-01-07 19:07:16 -05:00
48cd96858a add diagram to readme 2024-01-07 19:05:13 -05:00
2cce4c572f reenable legendary and heroic games 2024-01-07 18:48:40 -05:00
2f783f2ba3 fix: confirm prompt should return not exit 2024-01-07 17:46:11 -05:00
1ee22e3a9a reduce duplicate flake inputs 2024-01-07 08:51:21 -05:00
450b211e7e flake.lock: Update
Flake lock file updates:

• Updated input 'baleia-nvim-src':
    'github:m00qek/baleia.nvim/00bb4af31c8c3865b735d40ebefa6c3f07b2dd16' (2023-04-18)
  → 'github:m00qek/baleia.nvim/6d9cbdaca3a428bc7296f838fdfce3ad01ee7495' (2024-01-06)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/ca04361b1c2e6cbe5cbf7e118a28fe67ddf51f4c' (2024-01-05)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/89d4e4ae6eb41838020dbe0a13cc72506402e0e3' (2024-01-07)
• Updated input 'home-manager':
    'github:nix-community/home-manager/26b8adb300e50efceb51fff6859a1a6ba1ade4f7' (2024-01-04)
  → 'github:nix-community/home-manager/51e44a13acea71b36245e8bd8c7db53e0a3e61ee' (2024-01-05)
• Updated input 'nur':
    'github:nix-community/nur/9c4f6b66f05fc6f6285df25e89f825b441ec9705' (2024-01-05)
  → 'github:nix-community/nur/3a216c262c910b70e23ee01a4479dcc40c58599b' (2024-01-07)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/f1b3e6a7eb92da492bd693257367d9256839ed3d' (2024-01-01)
  → 'github:kyazdani42/nvim-tree.lua/78a5836092617205a999aefc75be1d842c299cbc' (2024-01-06)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/49f1b9a7efc794be143f7ddcd60ce18e8164a7f8' (2024-01-05)
  → 'github:nvim-treesitter/nvim-treesitter/5032f9952ad2a3a7f7792ac438c4f9e2bd53e0b9' (2024-01-06)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/c81bc3f9baa0571d03d1297faddf3a08737fe49e' (2024-01-03)
  → 'github:nix-community/NixOS-WSL/d2fd320bab0aa486383bbf5f13d5d8120700f911' (2024-01-05)
2024-01-07 03:50:00 +00:00
19f3147f25 inline rofi power prompt
hope to fix issue where confirmation doesn't run when linked to another file
2024-01-06 20:51:18 -05:00
5d6d6fc68e fix: second monitor brightness not working
https://github.com/rockowitz/ddcutil/issues/323
2024-01-06 20:21:43 -05:00
ec55658fd1 update to latest proton-ge 2024-01-05 23:36:58 -05:00
d25b189952 switch keybase to home-manager
fixing issues with keybase running in the background and keybase gui
2024-01-05 23:31:53 -05:00
a8b07cc365 update lockfile 2024-01-05 17:01:50 -05:00
70a30ac056 add more common json utilities 2024-01-05 09:09:31 -05:00
cfe1f1d1e2 fix: nextcloud apps routing 404s
due to: bae5e65162
2024-01-05 04:35:04 +00:00
3396918793 try to update nextcloud
issue with extensions not working persists
2024-01-04 03:49:36 +00:00
3ef842f359 fix issue with jellyfin dir permissions 2024-01-04 03:49:09 +00:00
e87cb5981c update caddy dependency hash 2024-01-04 03:48:51 +00:00
6e9419ed92 fix: .fdignore file not working 2024-01-03 14:28:50 -05:00
ab4e516ba8 fix: build terraform on darwin w broken tests 2024-01-02 16:35:09 -05:00
5d2d26b3d9 update firefox addons, add back bpc 2024-01-01 20:50:48 -05:00
50e16f9413 update readme with unique configs 2024-01-01 20:01:17 -05:00
4653037f1e nssmdns option migrated to nssmdns4 2024-01-01 19:48:52 -05:00
f192e53e7a remove latex shortcuts
replace with typst perhaps?
2024-01-01 19:48:36 -05:00
b5a9da8011 fix: obsidian still using broken electron 2024-01-01 19:48:08 -05:00
cbbfb8724b update lockfile 2024-01-01 19:47:54 -05:00
0bbfe0b6b5 add mpv to darwin 2023-12-26 17:26:40 -07:00
cc714dd898 replace vault (OSL) with vault-bin (BSL) for newest updates 2023-12-17 10:13:52 -07:00
4964e56298 shortcut for globalprotection connection 2023-12-17 09:36:16 -07:00
fafd56612e create influxdb service 2023-12-17 02:02:17 +00:00
3042a0ac19 add gh-collaborators extension 2023-12-16 17:32:44 -07:00
9d2a423011 add shortcut to delete remote branches 2023-12-16 17:32:14 -07:00
276c2024b4 remove i-dont-care-about-cookies from firefox 2023-12-10 09:43:14 -06:00
81cffd471d flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/3cb78c93e6a02f494aaf6aeb37481c27a2e2ee22' (2023-11-25)
  → 'github:nix-community/disko/1144887c6f4d2dcbb2316a24364ef53e25b0fcfe' (2023-12-06)
• Updated input 'fidget-nvim-src':
    'github:j-hui/fidget.nvim/785efc604f6ffe3c3fdd2ea86262804d48863ee1' (2023-11-28)
  → 'github:j-hui/fidget.nvim/7dc62b9ce32ac0f21cfb510f243644ce28a39299' (2023-12-09)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/ef0f4f0c89d92cf092dfd650fc92d5ad29f03afc' (2023-12-02)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/800c0105a5f408d8d0c616ea8af36906f8c49f3e' (2023-12-09)
• Updated input 'home-manager':
    'github:nix-community/home-manager/4a8545f5e737a6338814a4676dc8e18c7f43fc57' (2023-12-01)
  → 'github:nix-community/home-manager/e6b7303bd149723c57ca23f5a9428482d6b07306' (2023-12-09)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/150f38bd1e09e20987feacb1b0d5991357532fb5' (2023-09-30)
  → 'github:nix-community/nixos-generators/246219bc21b943c6f6812bb7744218ba0df08600' (2023-12-04)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/e92039b55bcd58469325ded85d4f58dd5a4eaf58' (2023-11-29)
  → 'github:nixos/nixpkgs/2c7f3c0fb7c08a0814627611d9d7d45ab6d75335' (2023-12-04)
• Updated input 'nur':
    'github:nix-community/nur/3c73e262aafcf393976124557a26731dd1038a27' (2023-12-03)
  → 'github:nix-community/nur/be7ffe627e0a74da807928cc3e7ce9f594a16c9e' (2023-12-10)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/05f55c1fd6470b31627655c528245794e3cd4b2c' (2023-11-28)
  → 'github:kyazdani42/nvim-tree.lua/0a7c24b675ab75dab8c36f2a326d274ad66b7166' (2023-12-09)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/80a16deb5146a3eb4648effccda1ab9f45e43e76' (2023-12-01)
  → 'github:nvim-treesitter/nvim-treesitter/7958ff9ec7a2baea2842323d0e7ac67a509da4d2' (2023-12-09)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/1a50ab3fe98934d8f109f05528874c9ab324707b' (2023-11-30)
  → 'github:nix-community/NixOS-WSL/5ee4fa3515de7b5609e6d161b800d91328a7a143' (2023-12-04)
• Updated input 'wsl/nixpkgs':
    'github:NixOS/nixpkgs/50aa30a13c4ab5e7ba282da460a3e3d44e9d0eb3' (2023-11-29)
  → 'github:NixOS/nixpkgs/933d7dc155096e7575d207be6fb7792bc9f34f6d' (2023-12-02)
2023-12-10 03:50:10 +00:00
61a808bad4 flake.lock: Update
Flake lock file updates:

• Updated input 'fidget-nvim-src':
    'github:j-hui/fidget.nvim/a1493d94ecb3464ab3ae4d5855765310566dace4' (2023-11-20)
  → 'github:j-hui/fidget.nvim/785efc604f6ffe3c3fdd2ea86262804d48863ee1' (2023-11-28)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/0071aa8b6c3f20455852a901f833ec94ece1f0bd' (2023-11-25)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/ef0f4f0c89d92cf092dfd650fc92d5ad29f03afc' (2023-12-02)
• Updated input 'home-manager':
    'github:nix-community/home-manager/a462e7315deaa8194b0821f726709bb7e51a850c' (2023-11-25)
  → 'github:nix-community/home-manager/4a8545f5e737a6338814a4676dc8e18c7f43fc57' (2023-12-01)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/5a09cb4b393d58f9ed0d9ca1555016a8543c2ac8' (2023-11-24)
  → 'github:nixos/nixpkgs/e92039b55bcd58469325ded85d4f58dd5a4eaf58' (2023-11-29)
• Updated input 'nur':
    'github:nix-community/nur/41baba347708b140c1dde7dc387ae1b16a396448' (2023-11-26)
  → 'github:nix-community/nur/3c73e262aafcf393976124557a26731dd1038a27' (2023-12-03)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/5e4475d8bf7a3646164e01d9b65ef68369b17e3c' (2023-11-25)
  → 'github:kyazdani42/nvim-tree.lua/05f55c1fd6470b31627655c528245794e3cd4b2c' (2023-11-28)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/d8a71826a20dfc9ed3d8a43e28a00611a302b456' (2023-11-25)
  → 'github:nvim-treesitter/nvim-treesitter/80a16deb5146a3eb4648effccda1ab9f45e43e76' (2023-12-01)
• Updated input 'telescope-project-nvim-src':
    'github:nvim-telescope/telescope-project.nvim/5460c6c60d48618c5c746e5b1cad4c3e8262fdae' (2023-11-06)
  → 'github:nvim-telescope/telescope-project.nvim/1aaf16580a614601a7f7077d9639aeb457dc5559' (2023-12-01)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/a9287f7191467138d6203ea44b3a0b9c745cb145' (2023-11-22)
  → 'github:nix-community/NixOS-WSL/1a50ab3fe98934d8f109f05528874c9ab324707b' (2023-11-30)
• Updated input 'wsl/nixpkgs':
    'github:NixOS/nixpkgs/5550a85a087c04ddcace7f892b0bdc9d8bb080c8' (2023-10-21)
  → 'github:NixOS/nixpkgs/50aa30a13c4ab5e7ba282da460a3e3d44e9d0eb3' (2023-11-29)
2023-12-03 03:49:57 +00:00
48045c0fee flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/0f1ad801387445fdda01d080db8ecf169be8e793' (2023-11-11)
  → 'github:lnl7/nix-darwin/4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d' (2023-11-24)
• Updated input 'disko':
    'github:nix-community/disko/89fd5b51f0725f9775ca9999d53a0a3e5d936490' (2023-11-11)
  → 'github:nix-community/disko/3cb78c93e6a02f494aaf6aeb37481c27a2e2ee22' (2023-11-25)
• Updated input 'fidget-nvim-src':
    'github:j-hui/fidget.nvim/36916518b16d80c48f4b3d88765734bf0842493c' (2023-11-13)
  → 'github:j-hui/fidget.nvim/a1493d94ecb3464ab3ae4d5855765310566dace4' (2023-11-20)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/63df8ec2d300da9912ae5b56b74e7aa574b6de0c' (2023-11-11)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/0071aa8b6c3f20455852a901f833ec94ece1f0bd' (2023-11-25)
• Updated input 'home-manager':
    'github:nix-community/home-manager/50e582b9f91e409ffd2e134017445d376659b32e' (2023-11-12)
  → 'github:nix-community/home-manager/a462e7315deaa8194b0821f726709bb7e51a850c' (2023-11-25)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/85f1ba3e51676fa8cc604a3d863d729026a6b8eb' (2023-11-04)
  → 'github:nixos/nixpkgs/5a09cb4b393d58f9ed0d9ca1555016a8543c2ac8' (2023-11-24)
• Updated input 'nur':
    'github:nix-community/nur/ff495b6b6763bcb879b97c105eedc1db23260bab' (2023-11-12)
  → 'github:nix-community/nur/41baba347708b140c1dde7dc387ae1b16a396448' (2023-11-26)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/874ae6e9445a5eb5ba430e5fd10212450a261ad7' (2023-11-12)
  → 'github:kyazdani42/nvim-tree.lua/5e4475d8bf7a3646164e01d9b65ef68369b17e3c' (2023-11-25)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/075a64addc33390028ea124a1046a43497f05cd1' (2023-11-11)
  → 'github:nvim-treesitter/nvim-treesitter/d8a71826a20dfc9ed3d8a43e28a00611a302b456' (2023-11-25)
• Updated input 'tree-sitter-ini':
    'github:justinmk/tree-sitter-ini/7f11a02fb8891482068e0fe419965d7bade81a68' (2023-07-31)
  → 'github:justinmk/tree-sitter-ini/bcb84a2d4bcd6f55b911c42deade75c8f90cb0c5' (2023-11-13)
• Updated input 'tree-sitter-python':
    'github:tree-sitter/tree-sitter-python/82f5c9937fe4300b4bec3ee0e788d642c77aab2c' (2023-10-11)
  → 'github:tree-sitter/tree-sitter-python/4bfdd9033a2225cc95032ce77066b7aeca9e2efc' (2023-11-17)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/0e4c17efebff955471f169fffbb7e8cd62ada498' (2023-11-09)
  → 'github:nix-community/NixOS-WSL/a9287f7191467138d6203ea44b3a0b9c745cb145' (2023-11-22)
2023-11-26 03:50:51 +00:00
ef6964f3b4 introduced and commented out pg and c stuff
mostly just dev experiments for later
2023-11-18 18:27:32 -05:00
7b7f426624 update fidget nvim, improve rust pkgs, updates for nextcloud apps 2023-11-16 21:19:45 -05:00
d1c0472b77 add fidget for neovim lsp status indicator 2023-11-12 17:51:03 -05:00
e6fd6128f4 fix: turn off highlight named colors in neovim 2023-11-12 17:50:50 -05:00
e72be000b0 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/afe83cbc2e673b1f08d32dd0f70df599678ff1e7' (2023-10-27)
  → 'github:lnl7/nix-darwin/0f1ad801387445fdda01d080db8ecf169be8e793' (2023-11-11)
• Updated input 'disko':
    'github:nix-community/disko/548962c50b8afad7b8c820c1d6e21dc8394d6e65' (2023-11-04)
  → 'github:nix-community/disko/89fd5b51f0725f9775ca9999d53a0a3e5d936490' (2023-11-11)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/9edd9209798cb115ebadfb5424d49b79b257ebea' (2023-11-04)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/63df8ec2d300da9912ae5b56b74e7aa574b6de0c' (2023-11-11)
• Updated input 'home-manager':
    'github:nix-community/home-manager/8765d4e38aa0be53cdeee26f7386173e6c65618d' (2023-11-03)
  → 'github:nix-community/home-manager/50e582b9f91e409ffd2e134017445d376659b32e' (2023-11-12)
• Updated input 'nextcloud-cookbook':
    'https://github.com/nextcloud/cookbook/releases/download/v0.10.2/Cookbook-0.10.2.tar.gz?narHash=sha256-XgBwUr26qW6wvqhrnhhhhcN4wkI%2BeXDHnNSm1HDbP6M%3D'
  → 'https://github.com/nextcloud/cookbook/releases/download/v0.10.2/Cookbook-0.10.2.tar.gz?narHash=sha256-XgBwUr26qW6wvqhrnhhhhcN4wkI%2BeXDHnNSm1HDbP6M%3D' (2023-03-24)
• Updated input 'nextcloud-external':
    'https://github.com/nextcloud-releases/external/releases/download/v5.2.1/external-v5.2.1.tar.gz?narHash=sha256-X7eC8T8wSZGVwCQp6U/WxjMC7aIj39osgHotaUoRNSQ%3D'
  → 'https://github.com/nextcloud-releases/external/releases/download/v5.2.1/external-v5.2.1.tar.gz?narHash=sha256-X7eC8T8wSZGVwCQp6U/WxjMC7aIj39osgHotaUoRNSQ%3D' (2023-09-04)
• Updated input 'nextcloud-news':
    'https://github.com/nextcloud/news/releases/download/24.0.0/news.tar.gz?narHash=sha256-cfJkKRNSz15L4E3w1tnEb%2Bt4MrVwVzb8lb6vCOA4cK4%3D'
  → 'https://github.com/nextcloud/news/releases/download/24.0.0/news.tar.gz?narHash=sha256-cfJkKRNSz15L4E3w1tnEb%2Bt4MrVwVzb8lb6vCOA4cK4%3D' (2023-09-28)
• Updated input 'nur':
    'github:nix-community/nur/8d9f20f147c17d62d16025e9769adbd76245591e' (2023-11-05)
  → 'github:nix-community/nur/ff495b6b6763bcb879b97c105eedc1db23260bab' (2023-11-12)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/7e3c0bee7b246ca835d5f7453db6fa19de359bab' (2023-10-30)
  → 'github:kyazdani42/nvim-tree.lua/874ae6e9445a5eb5ba430e5fd10212450a261ad7' (2023-11-12)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/bef2c24e23d0da62a8542b1f08b1ac87ec43e93f' (2023-11-04)
  → 'github:nvim-treesitter/nvim-treesitter/075a64addc33390028ea124a1046a43497f05cd1' (2023-11-11)
• Updated input 'proton-ge':
    'https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton8-16/GE-Proton8-16.tar.gz?narHash=sha256-75A0VCVdYkiMQ1duE9r2%2BDLBJzV02vUozoVLeo/TIWQ%3D'
  → 'https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton8-16/GE-Proton8-16.tar.gz?narHash=sha256-75A0VCVdYkiMQ1duE9r2%2BDLBJzV02vUozoVLeo/TIWQ%3D' (2023-09-24)
• Updated input 'telescope-project-nvim-src':
    'github:nvim-telescope/telescope-project.nvim/7c64b181dd4e72deddcf6f319e3bf1e95b2a2f30' (2023-04-27)
  → 'github:nvim-telescope/telescope-project.nvim/5460c6c60d48618c5c746e5b1cad4c3e8262fdae' (2023-11-06)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/a058cff4b09b3a398d8caa379b4dc96cfedd98c9' (2023-10-25)
  → 'github:nix-community/NixOS-WSL/0e4c17efebff955471f169fffbb7e8cd62ada498' (2023-11-09)
2023-11-12 04:40:44 +00:00
f50ddd48c8 fix: auto check now requires check permission 2023-11-11 23:33:23 -05:00
3a2d5e2da6 fix: auto check now requires check permission 2023-11-11 23:32:54 -05:00
c929bc6440 add rust to mac and remove cargo shortcut from common 2023-11-10 15:21:10 -05:00
09563de935 enable paperless-ngx document management 2023-11-10 03:37:34 +00:00
a5615da7dc fix: firefox selected tab css has changed 2023-11-08 15:32:35 -05:00
6babfae211 fix: age build on x86-64_darwin fails 2023-11-07 09:22:24 -05:00
b471d0fa7a create more optional neovim settings 2023-11-05 20:40:18 -05:00
cf7d1b50f8 add some polybar restart utils with mouse
for when keyd dies or power scripts are failing
2023-11-05 16:52:27 -05:00
ddb5dc39aa calibre-web patch requires update 2023-11-05 21:50:36 +00:00
3fd95643b0 fix: cargo clippy for rust 2023-11-05 08:12:07 -05:00
d128511a21 update lockfile and adjust PR check
disable legendary because of electron issues
2023-11-05 07:52:56 -05:00
5709afd835 improve rust programming with rust-analyzer lsp and gcc 2023-11-04 13:49:23 -04:00
f828c1c200 add rust programming tooling 2023-11-01 22:13:49 -04:00
77708aebd9 fix: sudo alias overridden by kitty shell integration 2023-10-27 19:43:55 -04:00
f9ac9b1063 Revert "flake.lock: Update"
This reverts commit bdd6c603c4.

The last update introduced instability for BIND when resolving,
apparently some broken trust chains in DNSSEC?
2023-10-27 17:52:01 -04:00
bdd6c603c4 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/8b6ea26d5d2e8359d06278364f41fbc4b903b28a' (2023-10-03)
  → 'github:lnl7/nix-darwin/19f75c2b45fbfc307ecfeb9dadc41a4c1e4fb980' (2023-10-19)
• Updated input 'disko':
    'github:nix-community/disko/325e1f7f2e0eea44c27e5e8a3946c2461ec095f2' (2023-10-16)
  → 'github:nix-community/disko/c24c3a902935321e1dfa1ca587e66f47edf79faf' (2023-10-19)
• Updated input 'home-manager':
    'github:nix-community/home-manager/c5c1ea85181d2bb44e46e8a944a8a3f56ad88f19' (2023-10-19)
  → 'github:nix-community/home-manager/81ab14626273ca38cba947d9a989c9d72b5e7593' (2023-10-21)
• Updated input 'nextcloud-cookbook':
    'https://github.com/nextcloud/cookbook/releases/download/v0.10.2/Cookbook-0.10.2.tar.gz?narHash=sha256-XgBwUr26qW6wvqhrnhhhhcN4wkI%2BeXDHnNSm1HDbP6M%3D'
  → 'https://github.com/nextcloud/cookbook/releases/download/v0.10.2/Cookbook-0.10.2.tar.gz?narHash=sha256-XgBwUr26qW6wvqhrnhhhhcN4wkI%2BeXDHnNSm1HDbP6M%3D' (2023-03-24)
• Updated input 'nextcloud-external':
    'https://github.com/nextcloud-releases/external/releases/download/v5.2.1/external-v5.2.1.tar.gz?narHash=sha256-X7eC8T8wSZGVwCQp6U/WxjMC7aIj39osgHotaUoRNSQ%3D'
  → 'https://github.com/nextcloud-releases/external/releases/download/v5.2.1/external-v5.2.1.tar.gz?narHash=sha256-X7eC8T8wSZGVwCQp6U/WxjMC7aIj39osgHotaUoRNSQ%3D' (2023-09-04)
• Updated input 'nextcloud-news':
    'https://github.com/nextcloud/news/releases/download/24.0.0/news.tar.gz?narHash=sha256-cfJkKRNSz15L4E3w1tnEb%2Bt4MrVwVzb8lb6vCOA4cK4%3D'
  → 'https://github.com/nextcloud/news/releases/download/24.0.0/news.tar.gz?narHash=sha256-cfJkKRNSz15L4E3w1tnEb%2Bt4MrVwVzb8lb6vCOA4cK4%3D' (2023-09-28)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/ca012a02bf8327be9e488546faecae5e05d7d749' (2023-10-16)
  → 'github:nixos/nixpkgs/7c9cc5a6e5d38010801741ac830a3f8fd667a7a0' (2023-10-19)
• Updated input 'nur':
    'github:nix-community/nur/9e80a4be10bd21688163db9b3d2c710e185a654e' (2023-10-19)
  → 'github:nix-community/nur/2efab27e9fbc59973a67a22e16b8f0b7d453c6ad' (2023-10-22)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/40b9b887d090d5da89a84689b4ca0304a9649f62' (2023-10-16)
  → 'github:kyazdani42/nvim-tree.lua/83b699533b279af6d207d6c3860d4301556d65b4' (2023-10-21)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/eb3faef3a44641e5875581e901b0a8df8da2bde4' (2023-10-19)
  → 'github:nvim-treesitter/nvim-treesitter/2f15204510000c144b841b775c5db91e39b4f38e' (2023-10-22)
• Updated input 'proton-ge':
    'https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton8-16/GE-Proton8-16.tar.gz?narHash=sha256-75A0VCVdYkiMQ1duE9r2%2BDLBJzV02vUozoVLeo/TIWQ%3D'
  → 'https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton8-16/GE-Proton8-16.tar.gz?narHash=sha256-75A0VCVdYkiMQ1duE9r2%2BDLBJzV02vUozoVLeo/TIWQ%3D' (2023-09-24)
2023-10-22 03:56:00 +00:00
31e607d0ad update lockfile, add fullpage firefox screenshot 2023-10-19 12:14:24 -04:00
b2337d3c39 update lockfile 2023-10-18 00:04:33 +00:00
6428d4fa62 Revert "flake.lock: Update"
This reverts commit db315b31b4.
2023-10-17 23:58:05 +00:00
db315b31b4 flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/cde886a1c97ef2399b4f91409db045785020291f' (2023-10-05)
  → 'github:nix-community/disko/6ad5c9c17cbd5514ce0cc2692dd82dd6d8e5d879' (2023-10-13)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/6c9812285de872caff762633928370fe9f30365d' (2023-10-07)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/972388ef1f081def3398135dea9edbbede8a6435' (2023-10-14)
• Updated input 'home-manager':
    'github:nix-community/home-manager/3c1d8758ac3f55ab96dcaf4d271c39da4b6e836d' (2023-10-08)
  → 'github:nix-community/home-manager/d4a5076ea8c2c063c45e0165f9f75f69ef583e20' (2023-10-14)
• Updated input 'nextcloud-cookbook':
    'https://github.com/nextcloud/cookbook/releases/download/v0.10.2/Cookbook-0.10.2.tar.gz?narHash=sha256-XgBwUr26qW6wvqhrnhhhhcN4wkI%2BeXDHnNSm1HDbP6M%3D'
  → 'https://github.com/nextcloud/cookbook/releases/download/v0.10.2/Cookbook-0.10.2.tar.gz?narHash=sha256-XgBwUr26qW6wvqhrnhhhhcN4wkI%2BeXDHnNSm1HDbP6M%3D' (2023-03-24)
• Updated input 'nextcloud-external':
    'https://github.com/nextcloud-releases/external/releases/download/v5.2.1/external-v5.2.1.tar.gz?narHash=sha256-X7eC8T8wSZGVwCQp6U/WxjMC7aIj39osgHotaUoRNSQ%3D'
  → 'https://github.com/nextcloud-releases/external/releases/download/v5.2.1/external-v5.2.1.tar.gz?narHash=sha256-X7eC8T8wSZGVwCQp6U/WxjMC7aIj39osgHotaUoRNSQ%3D' (2023-09-04)
• Updated input 'nextcloud-news':
    'https://github.com/nextcloud/news/releases/download/24.0.0/news.tar.gz?narHash=sha256-cfJkKRNSz15L4E3w1tnEb%2Bt4MrVwVzb8lb6vCOA4cK4%3D'
  → 'https://github.com/nextcloud/news/releases/download/24.0.0/news.tar.gz?narHash=sha256-cfJkKRNSz15L4E3w1tnEb%2Bt4MrVwVzb8lb6vCOA4cK4%3D' (2023-09-28)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/87828a0e03d1418e848d3dd3f3014a632e4a4f64' (2023-10-06)
  → 'github:nixos/nixpkgs/5e4c2ada4fcd54b99d56d7bd62f384511a7e2593' (2023-10-11)
• Updated input 'nur':
    'github:nix-community/nur/09a721cf6869671ec2258da3c377436e3498eead' (2023-10-08)
  → 'github:nix-community/nur/a7f7dc7099baec26335cb9335e0adfc3d838e098' (2023-10-15)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/53b0bcaadaffb505acff230578b56a86ec1ab38a' (2023-10-08)
  → 'github:kyazdani42/nvim-tree.lua/aaee4cd896b74f85a81bed7eef2db7869960c4d0' (2023-10-15)
• Updated input 'nvim-treesitter-src':
    'github:nvim-treesitter/nvim-treesitter/a102053352bd958d84a3e1be3de0203d2af92984' (2023-10-08)
  → 'github:nvim-treesitter/nvim-treesitter/ad02fbcdfc391017cad462e04e4740d2887cfa2e' (2023-10-14)
• Updated input 'proton-ge':
    'https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton8-16/GE-Proton8-16.tar.gz?narHash=sha256-75A0VCVdYkiMQ1duE9r2%2BDLBJzV02vUozoVLeo/TIWQ%3D'
  → 'https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton8-16/GE-Proton8-16.tar.gz?narHash=sha256-75A0VCVdYkiMQ1duE9r2%2BDLBJzV02vUozoVLeo/TIWQ%3D' (2023-09-24)
• Updated input 'tree-sitter-bash':
    'github:tree-sitter/tree-sitter-bash/1479a4030f1a399c253aee02097576d4af46f23a' (2023-10-03)
  → 'github:tree-sitter/tree-sitter-bash/7331995b19b8f8aba2d5e26deb51d2195c18bc94' (2023-10-10)
• Updated input 'tree-sitter-python':
    'github:tree-sitter/tree-sitter-python/a901729099257aac932d79c60adb5e8a53fa7e6c' (2023-09-21)
  → 'github:tree-sitter/tree-sitter-python/82f5c9937fe4300b4bec3ee0e788d642c77aab2c' (2023-10-11)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/337edef90c8abe35b42e95aecf510a063dad02dd' (2023-10-02)
  → 'github:nix-community/NixOS-WSL/5da7c4fd0ab9693d83cae50de7d9430696f92568' (2023-10-09)
• Updated input 'wsl/flake-compat':
    'github:edolstra/flake-compat/35bb57c0c8d8b62bbfd284272c928ceb64ddbde9' (2023-01-17)
  → 'github:edolstra/flake-compat/0f9255e01c2351cc7d116c072cb317785dd33b33' (2023-10-04)
• Updated input 'wsl/nixpkgs':
    'github:NixOS/nixpkgs/32dcb45f66c0487e92db8303a798ebc548cadedc' (2023-09-30)
  → 'github:NixOS/nixpkgs/5a237aecb57296f67276ac9ab296a41c23981f56' (2023-10-07)
2023-10-15 03:54:49 +00:00
340a64b87a fix: buildVimPluginFrom2Nix deprecated 2023-10-08 11:17:55 -04:00
89b5183f22 update lockfile and fix terraform unfree issues
exclude terraform from nvim package by default
2023-10-08 11:14:50 -04:00
b4c08adea4 temp: disable terminfo on flame due to broken contour in nixpkgs 2023-10-02 03:38:22 +00:00
13972b1d66 update lockfile and fix tree-sitter issues 2023-09-30 10:20:58 -04:00
352f515798 fix: keyd doesn't restart properly on rebuild 2023-09-30 10:20:45 -04:00
d84be966fc auto close pr if check fails 2023-09-30 09:35:37 -04:00
c9aa20c703 initial attempt for declarative proton-ge 2023-09-16 11:15:41 -04:00
771d41254f partial fix to bash and tree-sitter
still not working in opening bash files but works for other files
2023-09-16 10:08:38 -04:00
90092c48ec update lockfile and reclassify steam in i3 2023-09-16 09:31:56 -04:00
159a6efe09 update lockfile, pin age with overlay 2023-09-15 08:46:28 -04:00
0008de7434 update lockfile and replace exa with eza 2023-09-11 23:18:22 -04:00
9826178c0e fix: rofi-calc live results 2023-09-10 17:34:46 -04:00
d2b1d95281 fix: caddy cloudflare build requires newer golang 2023-09-09 23:20:38 +00:00
4c71797818 fix: nextcloudapps now require specifying licenses 2023-09-09 21:27:15 +00:00
dba975fe86 update lockfile and fix nil build 2023-09-09 10:46:00 -04:00
1a9ab975d1 update darwin firefox and add small convenience tweaks 2023-09-06 15:21:59 -04:00
67251a6d8d add epic games store to macos 2023-08-19 10:49:54 -06:00
967175df70 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/829041cf10c4f6751a53c0a11ca2fd22ff0918d6' (2023-08-05)
  → 'github:lnl7/nix-darwin/426d38710b656b0a31f8eaae6e0002206a3b96d7' (2023-08-10)
• Updated input 'disko':
    'github:nix-community/disko/4015740375676402a2ee6adebc3c30ea625b9a94' (2023-07-30)
  → 'github:nix-community/disko/241c878d4b542fea7c61ed4421e9224af054ff56' (2023-08-11)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/6081c33185dba05da784d9f2a392861af025bf1a' (2023-08-05)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/4011a1903422d241c0619f7c631a15d27643fa30' (2023-08-12)
• Updated input 'hmts-nvim-src':
    'github:calops/hmts.nvim/1d40963804925754672940d07ddb250d19efec2e' (2023-08-05)
  → 'github:calops/hmts.nvim/594dd17c870afb7f6517723c8963f6eb144e3c0d' (2023-08-08)
• Updated input 'home-manager':
    'github:nix-community/home-manager/0a014a729cdd54d9919ff36b714d047909d7a4c8' (2023-08-05)
  → 'github:nix-community/home-manager/406d34d919e9e8b831b531782cf5ef6995188566' (2023-08-12)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/18036c0be90f4e308ae3ebcab0e14aae0336fe42' (2023-08-04)
  → 'github:nixos/nixpkgs/ce5e4a6ef2e59d89a971bc434ca8ca222b9c7f5e' (2023-08-10)
• Updated input 'null-ls-nvim-src':
    'github:jose-elias-alvarez/null-ls.nvim/db09b6c691def0038c456551e4e2772186449f35' (2023-07-06)
  → 'github:jose-elias-alvarez/null-ls.nvim/0010ea927ab7c09ef0ce9bf28c2b573fc302f5a7' (2023-08-12)
• Updated input 'nur':
    'github:nix-community/nur/cf2f5d8ad452795e5aca290c95eedc829d3da7ec' (2023-08-06)
  → 'github:nix-community/nur/fe48fefbf13a75562599c1ab43871eb5c4274e1a' (2023-08-13)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/904f95cd9db31d1800998fa428e78e418a50181d' (2023-08-06)
  → 'github:kyazdani42/nvim-tree.lua/0a54dcb76b02f3a4e2da370c7a3f6f2b7b43ef01' (2023-08-13)
2023-08-13 03:52:18 +00:00
5561c85b43 add networkmanager to fix steam startup times 2023-08-08 22:13:24 -04:00
05a8f4a49b revert to basic adwaita gtk theme 2023-08-08 22:13:02 -04:00
a1f651010b successfully build custom gtk with latest materia-theme
too bad it looks terrible, especially for nautilus
2023-08-08 20:08:34 -04:00
3cecb8810c playing with custom gtk theme
still pretty ugly unfortunately
2023-08-06 18:07:47 -04:00
af753153f1 fix: clicking mouse in rofi power menu 2023-08-06 18:06:50 -04:00
d2afdd56ae gitcredentialhelper option renamed 2023-08-06 18:06:23 -04:00
18fec1d058 add another mbsync ignorefile for polybar 2023-08-06 18:06:11 -04:00
6a0e70568a remove litestream docs from nextcloud
now that i've migrated from sqlite to mariadb
2023-08-06 16:38:24 -04:00
9b44d8f171 add jujutsu vcs 2023-08-06 16:37:53 -04:00
1cf3405103 add readme for each directory 2023-08-06 08:01:21 -04:00
7439d4bf39 fix: lightdm not showing username 2023-08-06 07:30:40 -04:00
316c33e66c flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/16c07487ac9bc59f58b121d13160c67befa3342e' (2023-07-27)
  → 'github:lnl7/nix-darwin/829041cf10c4f6751a53c0a11ca2fd22ff0918d6' (2023-08-05)
• Updated input 'disko':
    'github:nix-community/disko/43f17a8b31c49f6696b8b258d317161afdc7e36b' (2023-07-28)
  → 'github:nix-community/disko/4015740375676402a2ee6adebc3c30ea625b9a94' (2023-07-30)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/69010f2ef9fbcef70d12541910ccc6db7a9997db' (2023-07-28)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/6081c33185dba05da784d9f2a392861af025bf1a' (2023-08-05)
• Updated input 'hmts-nvim-src':
    'github:calops/hmts.nvim/725300f46d702529a739d2e6ef84758b6003d135' (2023-08-03)
  → 'github:calops/hmts.nvim/1d40963804925754672940d07ddb250d19efec2e' (2023-08-05)
• Updated input 'home-manager':
    'github:nix-community/home-manager/f58889c07efa8e1328fdf93dc1796ec2a5c47f38' (2023-07-29)
  → 'github:nix-community/home-manager/0a014a729cdd54d9919ff36b714d047909d7a4c8' (2023-08-05)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/2a9d660ff0f7ffde9d73be328ee6e6f10ef66b28' (2023-07-28)
  → 'github:nixos/nixpkgs/18036c0be90f4e308ae3ebcab0e14aae0336fe42' (2023-08-04)
• Updated input 'nur':
    'github:nix-community/nur/1c4ba84e2cbfd43976a0fd3f848b536611735a79' (2023-07-30)
  → 'github:nix-community/nur/cf2f5d8ad452795e5aca290c95eedc829d3da7ec' (2023-08-06)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/4bd30f0137e44dcf3e74cc1164efb568f78f2b02' (2023-07-29)
  → 'github:kyazdani42/nvim-tree.lua/904f95cd9db31d1800998fa428e78e418a50181d' (2023-08-06)
2023-08-06 03:47:21 +00:00
c845ae2fd4 use ssh host key as identityfile on tempest
reencrypt secrets and use personal key for mail
2023-08-05 20:06:03 -04:00
5bc10bef87 improve hosts documentation 2023-08-05 17:14:26 -04:00
f0e1fc740f save ratbag profile to text
move misc data files to misc directory
2023-08-05 16:55:37 -04:00
5826877ad2 more zfs docs 2023-08-05 14:59:09 -04:00
d3b0f21313 initial zfs documentation 2023-08-05 14:44:24 -04:00
b7d1921c4d provision grafana alerts and smtp 2023-08-05 14:21:49 +00:00
de1337bf58 fix: failure to provision 2023-08-05 13:03:17 +00:00
3cff7e090c fix: port is an integer 2023-08-05 01:20:38 +00:00
21794891e7 grafana provisioning
convert grafana dashboard to nix native

remove grafana yml file
2023-08-04 21:15:38 -04:00
20e5d7fef5 disable hmts because it's buggy 2023-08-04 05:14:05 +00:00
b6a6c761e9 fix warnings in nextcloud 2023-08-04 05:13:43 +00:00
fc4bd9e4a8 hmts: tree-sitter injections for home-manager 2023-08-03 16:06:47 -04:00
25e3de5058 fix: output hash for nextcloud apps 2023-08-03 02:30:11 +00:00
9694467ba0 try making nextcloud apps as flake inputs 2023-08-02 22:27:28 -04:00
71e6780439 fix: wrong order of args 2023-08-02 21:50:26 -04:00
e6d0852be0 try refactoring overlays into flake inputs 2023-08-02 11:51:11 -04:00
00564c0c40 switch nextcloud to nix-based apps 2023-08-02 12:26:45 +00:00
57b38a417e switch nextcloud from sqlite to mysql 2023-08-02 11:32:54 +00:00
7f9ce5925e add undodir to hopefully fix short undo history
seems like undo history was being lost after committing to git
2023-08-01 11:05:41 -04:00
5ce9a26441 fix: exa ls not showing group names 2023-08-01 08:14:06 -04:00
73680961a0 bring back docker-cleanup file
just for safekeeping
2023-08-01 08:13:17 -04:00
c59e914430 attempt to fix rofi power confirm issues 2023-07-31 23:00:30 -04:00
e194003f8d fix: mach-nix not working with latest updates 2023-07-31 13:50:44 -04:00
3d6f57c324 clean up and improve docs 2023-07-30 20:26:23 -04:00
ef2ee7b871 fix: tree-sitter-python errors 2023-07-30 12:43:44 -04:00
fc867d60cd add description for caddy overlay 2023-07-30 12:43:27 -04:00
d395347a29 chore: fonts.fonts renamed to fonts.packages 2023-07-30 12:42:45 -04:00
080f7395e0 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/efd35d99ce412335c478dff9da9a4256bbd39757' (2023-07-25)
  → 'github:lnl7/nix-darwin/16c07487ac9bc59f58b121d13160c67befa3342e' (2023-07-27)
• Updated input 'disko':
    'github:nix-community/disko/713eb78002e69bd77f5a69595756fd2e564233f3' (2023-07-23)
  → 'github:nix-community/disko/43f17a8b31c49f6696b8b258d317161afdc7e36b' (2023-07-28)
• Updated input 'firefox-darwin':
    'github:bandithedoge/nixpkgs-firefox-darwin/9f5f2b9396724b807818f889abfa7ccf61e20afa' (2023-07-22)
  → 'github:bandithedoge/nixpkgs-firefox-darwin/69010f2ef9fbcef70d12541910ccc6db7a9997db' (2023-07-28)
• Updated input 'home-manager':
    'github:nix-community/home-manager/d309a62ee81faec56dd31a263a0184b0e3227e36' (2023-07-24)
  → 'github:nix-community/home-manager/f58889c07efa8e1328fdf93dc1796ec2a5c47f38' (2023-07-29)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/b12803b6d90e2e583429bb79b859ca53c348b39a' (2023-07-24)
  → 'github:nixos/nixpkgs/2a9d660ff0f7ffde9d73be328ee6e6f10ef66b28' (2023-07-28)
• Updated input 'nur':
    'github:nix-community/nur/ed0946320360d3a08404d93077c0847c176d4da0' (2023-07-25)
  → 'github:nix-community/nur/1c4ba84e2cbfd43976a0fd3f848b536611735a79' (2023-07-30)
• Updated input 'nvim-tree-lua-src':
    'github:kyazdani42/nvim-tree.lua/273c1700eb68c27dce4e518efafc8144fd7ce4ab' (2023-07-23)
  → 'github:kyazdani42/nvim-tree.lua/4bd30f0137e44dcf3e74cc1164efb568f78f2b02' (2023-07-29)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/01112baf546b5577038e2a422a5215eedd9bc84b' (2023-07-24)
  → 'github:nix-community/NixOS-WSL/f7a95a37306c46b42e9ce751977c44c752fd5eca' (2023-07-28)
• Updated input 'wsl/nixpkgs':
    'github:NixOS/nixpkgs/53657afe29748b3e462f1f892287b7e254c26d77' (2023-07-17)
  → 'github:NixOS/nixpkgs/9462344318b376e157c94fa60c20a25b913b2381' (2023-07-27)
2023-07-30 14:23:23 +00:00
1475172bdb switch to rebase merge
uses fast-forward commit style
2023-07-30 10:17:52 -04:00
5d6dab3cab auth automerge and run status check in same action 2023-07-30 09:49:53 -04:00
3e6232cbee fix: update to latest version of updater 2023-07-30 09:38:53 -04:00
8d72216f13 fix: flake update permissions 2023-07-30 09:37:52 -04:00
dd36a3bd82 fix: typo 2023-07-30 09:23:29 -04:00
0ed3633404 add more comments and utilities 2023-07-29 23:56:44 -04:00
95e04de763 reduce unnecessary caddy matches 2023-07-30 03:56:17 +00:00
b1ebca57d2 replace nginx with caddy for nextcloud 2023-07-30 03:51:01 +00:00
939d17ada1 delay gitea runner until gitea is running 2023-07-29 19:49:47 +00:00
dfd52e2cd5 enable gitea metrics 2023-07-29 19:33:13 +00:00
b589ba5d8a enable auto PRs and checks 2023-07-29 15:20:14 -04:00
200f790ea1 lock down nix daemon 2023-07-29 08:24:03 -04:00
9f561c822c add comments for notifications 2023-07-29 08:23:17 -04:00
1f0b04b89b add which-key keybind helper 2023-07-29 08:18:49 -04:00
38892b1135 auto-upgrades and notify using email 2023-07-28 23:28:08 -04:00
9c2e004c8b add killall to utilities 2023-07-28 18:49:48 -04:00
bbb210ec4f enable msmtp and ignore mbsyncstate files 2023-07-28 18:49:24 -04:00
984fca2021 switch dotfiles repo to https
not used anywhere else, so no need to use ssh
2023-07-28 18:46:59 -04:00
b284b333c5 auto reload hammerspoon on rebuild 2023-07-26 11:55:58 -04:00
3aef23b746 lockfile: fix lua langserver build 2023-07-26 11:16:00 -04:00
5f36508d2b update lockfile 2023-07-25 03:16:48 +00:00
3387bea109 enable exportarr 2023-07-25 02:55:30 +00:00
6f59ea9f22 fix bad polybar icons and mail messages 2023-07-23 15:46:41 -04:00
8d09544663 fix: betterlockscreen failing on suspend 2023-07-20 22:14:59 -04:00
cb15cc209b create wakeonlan convenience function 2023-07-21 01:07:09 +00:00
b390fff749 enable wakeonlan for tempest 2023-07-20 21:06:44 -04:00
20456b444b fix: localhost as default not in caddy allowlist 2023-07-20 00:18:28 +00:00
cce6f6573f upgrade firefox to 115.0.2 2023-07-19 12:27:04 -04:00
52b86efbb1 kitty tweaks, fix scrollback character issues 2023-07-18 23:36:09 -04:00
f41774f641 neovim keybind to open specific file in gh web 2023-07-18 13:11:42 -04:00
22cba9acac use bind for local dns 2023-07-18 03:52:37 +00:00
9e8bac6834 setup bind 2023-07-17 22:37:26 -04:00
b07a8f5e20 auto empty trash on login 2023-07-17 22:24:41 -04:00
8eb7ef0be7 fix avahi and dhcp, mark swan as physical 2023-07-18 02:00:38 +00:00
22ab2acf66 fix: swan not using avahi because not set as physical 2023-07-17 11:38:08 -04:00
d85e4b1593 fix: caddy denylist and jellyfin prometheus 2023-07-16 21:04:07 +00:00
6ea99eca5d enable caddy prometheus metrics 2023-07-16 20:13:41 +00:00
60e779085e add victoriametrics to tempest 2023-07-16 10:43:55 -04:00
6abcdfa3bd switch flame to victoriametrics 2023-07-16 14:43:14 +00:00
0f0a64b5c4 add victoriametrics 2023-07-16 13:50:58 +00:00
edb4ec77ca set caddy prometheus port dynamically 2023-07-16 03:34:03 +00:00
3cc264a857 fix: register gitea runner 2023-07-16 03:33:35 +00:00
76a7480a1d working prometheus setup with processes 2023-07-16 01:04:52 +00:00
9d4bf082c7 fix: prometheus remote write 2023-07-14 02:52:23 +00:00
e86b2f184f fix: cloudflare tunnel on tempest
requires openssh, but removing public key
2023-07-12 23:33:35 -04:00
d14054ab17 update to nextcloud 27 2023-07-13 03:22:45 +00:00
9b3d2e39c9 change nix run shortcut to nix shell 2023-07-10 16:01:01 -06:00
5a1a843ecd enable gitea actions and runner 2023-07-10 16:00:48 -06:00
2ddd980436 clean up colorschemes 2023-07-09 23:06:36 -06:00
febf1071af remove flake locks from templates 2023-07-09 22:26:14 -06:00
05adc8a221 add custom treesitter grammars 2023-07-09 17:22:41 -06:00
a463212023 clarify neovimBuilder 2023-07-09 14:51:41 -06:00
2457ade6eb enable installed glow markdown plugin 2023-07-09 14:51:23 -06:00
88d52614a9 prevent infinite neovim lsp log files 2023-07-09 14:51:02 -06:00
2c663347ee inject bash highlighting in nix shell scripts 2023-07-09 14:50:41 -06:00
02fc29c482 update to firefox 115 2023-07-07 12:45:02 -06:00
21cbe29bd8 create universal options for hostnames 2023-07-07 10:16:07 -06:00
c0da8391ef replace vscode tf snippets with larger one 2023-07-06 13:01:35 -06:00
d4e203a04c add vscode tf snippets, fix tf tree-sitter 2023-07-06 12:07:29 -06:00
38480e0c0c remove extraneous nixpkgs inputs 2023-07-05 14:23:19 -06:00
ee58f7a4ee abstract grafana in prometheus config 2023-07-05 14:19:54 -06:00
4c4e250fa1 add cloudflare tunnel to tempest 2023-07-05 14:18:59 -06:00
ffe867e6a8 have gitea actually backup full repos 2023-07-04 18:01:11 -06:00
b599162090 fix: paren required on function 2023-07-04 17:21:53 -06:00
4b0d68089a fix: grafana settings schema 2023-07-04 17:15:04 -06:00
b304e529b4 fix: nextcloud infinite recursion 2023-07-04 17:12:22 -06:00
2b0f03ba1f fix: mc server infinite recursion 2023-07-04 17:10:37 -06:00
2c4f215b6e define grafana settings explicitly 2023-07-04 17:05:56 -06:00
066ea8e440 remote prometheus and reconfig server modules 2023-07-04 16:20:43 -06:00
cd0c93c6d9 cloudflare tunnel for flame 2023-07-03 09:49:21 -06:00
78e9c817d0 move generators into hosts directory 2023-07-01 21:00:17 -06:00
53a8cc83ea remove extraLib, replace mkScript with writeShellApplication 2023-07-01 20:40:48 -06:00
1cf5f46adf clean up flake and reset neovim plugin versions 2023-07-01 20:22:03 -06:00
5348cbdf61 cleanup comments and unneeded code 2023-07-01 15:33:24 -06:00
140b410ea0 neovim keybind for telescope resume 2023-06-28 22:53:52 -06:00
b282e76be4 fix: gq with null-ls 2023-06-24 15:15:50 -06:00
a26f5dc2b5 tweak readme links 2023-06-24 15:15:39 -06:00
b0fcee6707 don't auto exit bat pager 2023-06-24 15:15:20 -06:00
46e633c8b9 fixup updates to ami workflow 2023-06-24 12:36:57 -06:00
7a74f0a504 update lockfile, remove gh cli overlay
gh cli overlay no longer needed thanks to latest release which fixes
logs on composite actions
2023-06-24 12:33:06 -06:00
bacf1ab1fa fix: garbage collection deleting mailpass 2023-06-22 22:26:07 -04:00
ddf48998db pass cloudflare tunnel info to module 2023-06-19 08:30:30 -04:00
23f72c3c2e fix: cloudflare tunnel failed to match ssh mac 2023-06-18 18:46:34 +00:00
77d81742a9 possible fix for amdgpu driver with kernel params 2023-06-18 14:28:02 +00:00
13c7859a78 fix: including disabled wireguard settings 2023-06-18 03:24:35 +00:00
0f4914db95 gh-cli overlay for log view on composite actions
can be removed with the next release of gh-cli
2023-06-16 08:00:42 -04:00
25e56b7421 git-push-upstream no longer needed 2023-06-16 08:00:07 -04:00
a6ec04db7e fixes to build on darwin 2023-06-16 07:59:06 -04:00
2a56c04e17 update lockfile
fix empty steam window
2023-06-12 22:07:21 -04:00
894a22cb2d update lockfile 2023-06-08 13:14:55 -04:00
eefed57929 enable firefox builtin cookie blocker 2023-06-08 13:14:50 -04:00
494cf355e9 try to enable hw accel for mpv and firefox 2023-06-05 23:50:32 -04:00
c88718b649 add protonup-qt for downloading proton versions 2023-06-05 23:50:17 -04:00
790cb4a9d0 use keyd instead of xkb for key remap 2023-06-05 23:50:01 -04:00
e3d4b36613 decouple wireguard and transmission 2023-06-05 23:49:41 -04:00
18154b6579 possible fixes to hardware acceleration 2023-06-06 03:13:17 +00:00
fb44473d22 shared group for media services 2023-06-06 00:56:52 +00:00
c1e89fb20e setup journald retention and rotation 2023-06-05 03:09:38 +00:00
04e8b8834e fix: headless hardware acceleration
requires kernel module and firmware
2023-06-04 16:14:11 +00:00
472a2b965c attempt to enable hardware acceleration 2023-06-04 14:22:04 +00:00
79eba7f333 fix jellyfin permissions with sab 2023-06-04 14:19:56 +00:00
28418c4e37 enable jellyseerr 2023-06-04 01:10:23 +00:00
fa797c81f8 add sabnzbd 2023-06-03 23:00:18 +00:00
d243d68c72 merge swan hardware file into host config 2023-06-03 11:12:04 -04:00
f4f5f19183 Merge branch 'cloudflare-acme-dns' 2023-06-03 00:31:10 +00:00
3a40bb7485 update lockfile 2023-06-02 20:30:14 -04:00
e8456e131b switch nautilus sushi to service 2023-06-02 20:10:45 -04:00
8d8dd8ad62 use css highlighting for rasi files 2023-06-01 22:55:05 -04:00
bad49cb2c3 fix bash interactive from fish 2023-06-01 22:54:25 -04:00
c052813f6d only toggle sleep mobo fix if needed 2023-06-01 22:54:08 -04:00
ed19eaafd1 auto wake and sleep for garbage collection
only sleep again for non-servers
2023-06-01 22:42:06 -04:00
09de243bd3 enable ryujinx 2023-06-01 22:39:05 -04:00
82a1954c26 fix: new aerc has different directory for filters 2023-06-01 20:58:46 -04:00
6815af21dc clean up custom caddy build 2023-06-01 12:18:38 +00:00
3269d5e247 update calibre-web patch for new login changes 2023-06-01 12:11:53 +00:00
d337ffff51 fix: compiling cloudflare caddy module
actually compile locally since xcaddy is impure
2023-06-01 03:46:17 +00:00
df5fba19f8 cloudflare caddy module for dns validation 2023-05-31 21:03:08 -04:00
8cc158221d fix: replace removed rofi nerdfont icons 2023-05-31 08:01:32 -04:00
f391433584 update lockfile, remove mimestream 2023-05-25 08:51:22 -04:00
241b2deb49 update lockfile, cleanup readme 2023-05-14 17:17:56 -04:00
605824c1a4 update flame, cleanup host config file 2023-04-30 21:51:35 +00:00
e8f4ee52c3 update lockfile, linux 6.3
also pin nil version
maybe it fixed sleep issues as well?
2023-04-29 18:25:30 -04:00
6518db291f enable cloudflare tunnel for ssh 2023-04-29 16:00:31 +00:00
a6551ce043 update flake lock
jellyfin security update
also view.mappings.list nvim-tree deprecated
also partition type removed from disko
2023-04-26 23:28:15 -04:00
b089ec4668 disable discord and music macos shortcuts 2023-04-25 13:54:45 -04:00
5970555572 use dwarf therapist and dfhack for dwarf fortress 2023-04-23 15:27:25 -04:00
1083ee4ff8 enable classic dwarf fortress 2023-04-19 19:50:10 -04:00
a2bbcf7f55 try reenabling avahi
used public instead of publish accidentally
2023-04-19 16:50:19 -04:00
f388aee56c replace flake8 with ruff 2023-04-19 16:50:05 -04:00
958ab8a96b update lockfile 2023-04-19 16:49:55 -04:00
3059241c1c fix: builtins.storePath issue on mac 2023-04-19 16:49:40 -04:00
fe938ec713 update lockfile
include neovim 0.9.0 and new lazy load

also obsidian requires broken electron
2023-04-17 08:13:36 -04:00
05f705d794 remove dunst requirements when disabled 2023-04-16 19:05:09 -04:00
f67a44fa87 fix: won't boot on amdgpu
must be required linux firmware blobs
2023-04-16 19:04:57 -04:00
713b835f70 enable cloudflare IP filtering
forgot to turn this on before
2023-04-16 20:59:52 +00:00
480d515302 upgrade to nextcloud 26 2023-04-16 20:59:37 +00:00
2337db0bda fix flake check errors
also break out packages into individual systems
2023-04-16 16:33:16 -04:00
1510c8c31f split wsl, consolidate hardware 2023-04-15 20:55:56 -04:00
8f8012e435 refactor neovim colors
using base16 color plugin instead of homemade
2023-04-15 18:38:03 -04:00
8d389013ad disable dunst
not really needed currently
2023-04-15 18:37:36 -04:00
d013f980a7 clean up host settings
and start removing if statements
2023-04-15 12:58:37 -04:00
3c51dd0db6 option for chiaki ps remote play 2023-04-15 10:11:44 -04:00
7f0600580f more attempts to fix sleep 2023-04-15 10:11:30 -04:00
05d5fcb8f9 try avahi, not working
doesn't seem to be discovering other devices
2023-04-15 10:10:10 -04:00
ca7a4ed408 only show new mail if in inbox 2023-04-15 10:08:45 -04:00
cf73ce8136 remove unnecessary mail options 2023-04-15 10:08:19 -04:00
82344372dd add auto garbage collection 2023-04-15 10:07:59 -04:00
34cf2a4483 rofi calculator (rest of it) 2023-04-10 23:10:49 -04:00
efb3933f5a hide polybar mail notification when no messages 2023-04-10 23:09:17 -04:00
cd067cce69 add rofi calculator 2023-04-10 23:08:59 -04:00
0d9df06bce switch from telescope-project.nvim to project.nvim 2023-04-10 15:35:06 -04:00
b4e5852f48 again remove legacy packer files 2023-04-10 15:34:02 -04:00
1a60c5e9db Revert "remove old neovim lua config"
This reverts commit 2d8a84c286.
2023-04-10 15:25:46 -04:00
2d8a84c286 remove old neovim lua config 2023-04-10 14:49:17 -04:00
319106364a add keybase back as homebrew package 2023-04-08 12:26:14 -04:00
fd5d6ab141 update lockfile, neovim tf filetype working again 2023-04-07 13:00:35 -04:00
4df1132eb7 switch to babelfish to improve fish macos startup 2023-04-05 14:11:44 -04:00
f4d9897f21 reset lookinglass hostname and email 2023-04-05 14:10:54 -04:00
634baf0a7e fix: keep polybar mail updated 2023-04-04 08:32:01 -04:00
600fd06974 fix nautilus and xdg mimetypes
discovered sushi is not working, however
2023-04-03 21:54:53 -04:00
c9ab46696d reenable mbsync timer with notmuch
fixes polybar mail indicator
2023-04-03 20:36:05 -04:00
b5790a2795 disable long running command notifications 2023-04-03 20:35:30 -04:00
61f26315d5 setup ultrawide curved monitor 2023-04-03 11:51:04 -04:00
4fefe54435 add email notifications
not required to run aerc, uses imapnotify and notmuch/polybar

closes #10
2023-04-02 23:16:44 -04:00
0833a0009c enable dunst notifications
also rebuilds with shortcuts
2023-04-02 19:19:40 -04:00
e349ac35b8 fix: flake app for rebuilds 2023-04-02 18:47:06 -04:00
49c2c013a2 update polybar spacing 2023-04-02 18:46:22 -04:00
985b8bf13b polybar audio and power buttons
also switched from systemd because it breaks rofi
2023-04-02 16:53:01 -04:00
8283480fd1 rofi brightness menu 2023-04-02 15:52:45 -04:00
d6611ca7a2 rofi power menu 2023-04-02 12:25:33 -04:00
a13083a264 now really fix sleep 2023-04-02 08:22:28 -04:00
ff4db1463e finally fix sleep on tempest 2023-04-01 20:21:26 -04:00
afedfcf187 i3 focus or run browser and mail 2023-04-01 09:41:45 -04:00
2e3c376d73 add prs shortcut 2023-03-31 12:39:10 -04:00
59824adb3a much improved speed in fzf project switcher 2023-03-30 10:24:19 -04:00
8e32c16fd3 try to fix timezone failure 2023-03-27 13:45:23 -04:00
76c80dd31d fix: samba don't use force group 2023-03-26 20:52:28 +00:00
57de089baf add mpv delete file script 2023-03-25 10:51:20 -04:00
f9c09deb2a compile all grammars for nvim-treesitter 2023-03-24 16:20:47 -04:00
b06b6490f4 start working on readme table
fill out readme table

more readme links and move installation

clean up

add more flake comments

hosts and modules readmes

fix: macos readme link

switch links to relative file
2023-03-22 21:38:39 -04:00
514244476d adjust rofi themes 2023-03-22 21:33:06 -04:00
47590abc3a lazy evaluated let for rofi 2023-03-22 21:17:15 -04:00
f69d233c39 switch audio with rofi and add extraLib 2023-03-22 21:15:41 -04:00
9b97c9ac84 update lockfile, fix darwin 2023-03-22 16:20:38 -04:00
bda59eeb4a enable num lock on login 2023-03-21 18:37:22 -04:00
e7468ecc46 fix: swan globals not included 2023-03-20 03:36:15 +00:00
1b798f5af0 grant permissions to service directories 2023-03-20 03:35:54 +00:00
4406116203 adjust fan curve 2023-03-19 23:35:06 -04:00
c53f1470ee allow rofi-systemd to use kitty terminal 2023-03-19 12:49:41 -04:00
da89732001 switch to nsxiv and set media for aerc 2023-03-19 10:45:52 -04:00
2176a53c4a setup amd gpu fancontrol curve 2023-03-18 09:29:20 -04:00
28576c1b8f update lockfile 2023-03-16 14:52:20 -04:00
64590c539b reorder utilities alphabetically
also add bc
2023-03-12 20:09:56 -04:00
78b364afd7 launch aerc with super+E 2023-03-12 20:09:41 -04:00
f219ce45c8 enable actual bash support 2023-03-12 19:00:59 -04:00
5002c881f7 fix: mail not syncing read and deleted 2023-03-12 17:08:21 -04:00
5859377802 fix: arr options when not used 2023-03-12 17:08:21 -04:00
e6dbed2e17 enable caddy logfile 2023-03-12 13:24:25 +00:00
86076f0844 add arr services 2023-03-12 13:24:16 +00:00
2aea76c0e3 switch mpv to managed settings 2023-03-11 14:14:45 -05:00
42a5ad40de add heroic game launcher 2023-03-11 14:14:25 -05:00
300 changed files with 12533 additions and 5000 deletions

166
.github/workflows/arrow-aws.yml vendored Normal file
View File

@ -0,0 +1,166 @@
name: Arrow (AWS)
run-name: Arrow (AWS) - ${{ inputs.rebuild && 'Rebuild and ' || '' }}${{ inputs.action == 'create' && 'Create' || ( inputs.action == 'destroy' && 'Destroy' || 'No Action' ) }}
env:
TERRAFORM_DIRECTORY: hosts/arrow/aws
DEPLOY_IDENTITY_BASE64: ${{ secrets.DEPLOY_IDENTITY_BASE64 }}
ARROW_IDENTITY_BASE64: ${{ secrets.ARROW_IDENTITY_BASE64 }}
ZONE_NAME: masu.rs
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ZONE_ID: ${{ secrets.CLOUDFLARE_ZONE_ID }}
on:
workflow_dispatch:
inputs:
rebuild:
type: boolean
default: false
action:
type: choice
required: true
default: create
options:
- create
- destroy
- nothing
size:
type: choice
required: false
options:
- t3a.small # 2 GB RAM / $10
permissions:
id-token: write
contents: write
jobs:
build-deploy:
name: Build and Deploy
runs-on: ubuntu-latest
steps:
- name: Checkout Repo Code
uses: actions/checkout@v4
- name: Free Disk Space (Ubuntu)
if: inputs.rebuild && inputs.action != 'destroy'
uses: jlumbroso/free-disk-space@main
with:
tool-cache: true
# Enable access to KVM, required to build an image
- name: Enable KVM group perms
if: inputs.rebuild && inputs.action != 'destroy'
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
# Login to AWS
- name: AWS Assume Role
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::286370965832:role/github_actions_admin
aws-region: us-east-1
# Install Nix
- name: Install Nix
if: inputs.rebuild && inputs.action != 'destroy'
uses: cachix/install-nix-action@v20
# Build the image
- name: Build Image
if: inputs.rebuild && inputs.action != 'destroy'
run: nix build .#arrow-aws
- name: Upload Image to S3
if: inputs.rebuild && inputs.action != 'destroy'
run: |
aws s3 cp \
result/nixos-amazon-image-*.vhd \
s3://${{ secrets.IMAGES_BUCKET }}/arrow.vhd \
# Installs the Terraform binary and some other accessory functions.
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
# Checks whether Terraform is formatted properly. If this fails, you
# should install the pre-commit hook.
- name: Check Formatting
working-directory: ${{ env.TERRAFORM_DIRECTORY }}
run: |
terraform fmt -no-color -check -diff -recursive
# Connects to remote state backend and download providers.
- name: Terraform Init
working-directory: ${{ env.TERRAFORM_DIRECTORY }}
run: |
terraform init \
-backend-config="bucket=${{ secrets.TERRAFORM_STATE_BUCKET }}" \
-backend-config="key=arrow.tfstate"
# Deploys infrastructure or changes to infrastructure.
- name: Terraform Apply
if: inputs.action == 'create'
working-directory: ${{ env.TERRAFORM_DIRECTORY }}
env:
TF_VAR_ec2_size: ${{ inputs.size }}
TF_VAR_images_bucket: ${{ secrets.IMAGES_BUCKET }}
run: |
terraform apply \
-auto-approve \
-input=false
# Removes infrastructure.
- name: Terraform Destroy
if: inputs.action == 'destroy'
working-directory: ${{ env.TERRAFORM_DIRECTORY }}
env:
TF_VAR_ec2_size: ${{ inputs.size }}
TF_VAR_images_bucket: ${{ secrets.IMAGES_BUCKET }}
run: |
terraform destroy \
-auto-approve \
-input=false
- name: Get Host IP
if: inputs.action == 'create'
id: host
working-directory: ${{ env.TERRAFORM_DIRECTORY }}
run: terraform output -raw host_ip
- name: Wait on SSH
if: inputs.action == 'create'
run: |
for i in $(seq 1 15); do
if $(nc -z -w 3 ${{ steps.host.outputs.stdout }} 22); then
exit 0
fi
sleep 10
done
- name: Write Identity Keys to Files
if: inputs.action == 'create'
run: |
echo "${{ env.DEPLOY_IDENTITY_BASE64 }}" | base64 -d > deploy_ed25519
chmod 0600 deploy_ed25519
echo "${{ env.ARROW_IDENTITY_BASE64 }}" | base64 -d > arrow_ed25519
chmod 0600 arrow_ed25519
- name: Copy Identity File to Host
if: inputs.action == 'create'
run: |
ssh -i deploy_ed25519 -o StrictHostKeyChecking=accept-new noah@${{ steps.host.outputs.stdout }} 'mkdir -pv .ssh'
scp -i deploy_ed25519 arrow_ed25519 noah@${{ steps.host.outputs.stdout }}:~/.ssh/id_ed25519
- name: Wipe Records
if: ${{ inputs.action == 'destroy' }}
run: |
RECORD_ID=$(curl --request GET \
--url https://api.cloudflare.com/client/v4/zones/${{ env.CLOUDFLARE_ZONE_ID }}/dns_records \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer ${{ env.CLOUDFLARE_API_TOKEN }}" | jq -r '.result[] | select(.name == "n8n2.${{ env.ZONE_NAME }}") | .id')
curl --request DELETE \
--url https://api.cloudflare.com/client/v4/zones/${{ env.CLOUDFLARE_ZONE_ID }}/dns_records/${RECORD_ID} \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer ${{ env.CLOUDFLARE_API_TOKEN }}"

154
.github/workflows/arrow.yml vendored Normal file
View File

@ -0,0 +1,154 @@
name: Arrow
run-name: Arrow - ${{ inputs.rebuild && 'Rebuild and ' || '' }}${{ inputs.action == 'create' && 'Create' || ( inputs.action == 'destroy' && 'Destroy' || 'No Action' ) }}
env:
TERRAFORM_DIRECTORY: hosts/arrow/vultr
DEPLOY_IDENTITY_BASE64: ${{ secrets.DEPLOY_IDENTITY_BASE64 }}
ARROW_IDENTITY_BASE64: ${{ secrets.ARROW_IDENTITY_BASE64 }}
CLOUDFLARE_R2_ENDPOINT: "${{ secrets.CLOUDFLARE_ACCOUNT_ID }}.r2.cloudflarestorage.com"
AWS_ACCESS_KEY_ID: ${{ secrets.CLOUDFLARE_R2_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CLOUDFLARE_R2_SECRET_KEY }}
AWS_DEFAULT_REGION: auto
AWS_ENDPOINT_URL_S3: "https://${{ secrets.CLOUDFLARE_ACCOUNT_ID }}.r2.cloudflarestorage.com"
TF_VAR_vultr_api_key: ${{ secrets.VULTR_API_KEY }}
ZONE_NAME: masu.rs
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ZONE_ID: ${{ secrets.CLOUDFLARE_ZONE_ID }}
on:
workflow_dispatch:
inputs:
rebuild:
type: boolean
default: false
action:
type: choice
required: true
default: create
options:
- create
- destroy
- nothing
plan:
type: choice
required: false
options:
- vc2-1c-1gb # 25 GB / $5
- vc2-1c-2gb # 55 GB / $10 (default)
- vc2-2c-2gb # 65 GB / $15
- vc2-2c-4gb # 80 GB / $20
- vc2-4c-8gb # 160 GB / $40
- vc2-6c-16gb # 320 GB / $80
jobs:
build-deploy:
name: Build and Deploy
runs-on: ubuntu-latest
steps:
- name: Checkout Repo Code
uses: actions/checkout@v4
# Enable access to KVM, required to build an image
- name: Enable KVM group perms
if: inputs.rebuild && inputs.action != 'destroy'
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
# Install Nix
- name: Install Nix
if: inputs.rebuild && inputs.action != 'destroy'
uses: cachix/install-nix-action@v17
# Build the image
- name: Build Image
if: inputs.rebuild && inputs.action != 'destroy'
run: nix build .#arrow
- name: Upload Image to S3
if: inputs.rebuild && inputs.action != 'destroy'
run: |
aws s3 cp \
result/iso/nixos.iso \
s3://noahmasur-arrow-images/arrow.iso \
--endpoint-url "https://${{ env.CLOUDFLARE_R2_ENDPOINT }}"
# Installs the Terraform binary and some other accessory functions.
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
# Checks whether Terraform is formatted properly. If this fails, you
# should install the pre-commit hook.
- name: Check Formatting
working-directory: ${{ env.TERRAFORM_DIRECTORY }}
run: |
terraform fmt -no-color -check -diff -recursive
# Connects to remote state backend and download providers.
- name: Terraform Init
working-directory: ${{ env.TERRAFORM_DIRECTORY }}
run: terraform init
# Deploys infrastructure or changes to infrastructure.
- name: Terraform Apply
if: inputs.action == 'create'
working-directory: ${{ env.TERRAFORM_DIRECTORY }}
env:
TF_VAR_vultr_plan: ${{ inputs.plan }}
run: |
terraform apply \
-auto-approve \
-input=false
# Removes infrastructure.
- name: Terraform Destroy
if: inputs.action == 'destroy'
working-directory: ${{ env.TERRAFORM_DIRECTORY }}
run: |
terraform destroy \
-auto-approve \
-input=false
- name: Get Host IP
if: inputs.action == 'create'
id: host
working-directory: ${{ env.TERRAFORM_DIRECTORY }}
run: terraform output -raw host_ip
- name: Wait on SSH
if: inputs.action == 'create'
run: |
for i in $(seq 1 15); do
if $(nc -z -w 3 ${{ steps.host.outputs.stdout }} 22); then
exit 0
fi
sleep 10
done
- name: Write Identity Keys to Files
if: inputs.action == 'create'
run: |
echo "${{ env.DEPLOY_IDENTITY_BASE64 }}" | base64 -d > deploy_ed25519
chmod 0600 deploy_ed25519
echo "${{ env.ARROW_IDENTITY_BASE64 }}" | base64 -d > arrow_ed25519
chmod 0600 arrow_ed25519
- name: Copy Identity File to Host
if: inputs.action == 'create'
run: |
ssh -i deploy_ed25519 -o StrictHostKeyChecking=accept-new noah@${{ steps.host.outputs.stdout }} 'mkdir -pv .ssh'
scp -i deploy_ed25519 arrow_ed25519 noah@${{ steps.host.outputs.stdout }}:~/.ssh/id_ed25519
- name: Wipe Records
if: ${{ inputs.action == 'destroy' }}
run: |
RECORD_ID=$(curl --request GET \
--url https://api.cloudflare.com/client/v4/zones/${{ env.CLOUDFLARE_ZONE_ID }}/dns_records \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer ${{ env.CLOUDFLARE_API_TOKEN }}" | jq -r '.result[] | select(.name == "n8n2.${{ env.ZONE_NAME }}") | .id')
curl --request DELETE \
--url https://api.cloudflare.com/client/v4/zones/${{ env.CLOUDFLARE_ZONE_ID }}/dns_records/${RECORD_ID} \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer ${{ env.CLOUDFLARE_API_TOKEN }}"

20
.github/workflows/check.yml vendored Normal file
View File

@ -0,0 +1,20 @@
name: Check Build
on:
workflow_dispatch: # allows manual triggering
jobs:
check:
name: Check
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@v11
- name: Check Nixpkgs Inputs
uses: DeterminateSystems/flake-checker-action@v7
- name: Add Nix Cache
uses: DeterminateSystems/magic-nix-cache-action@v6
- name: Check the Flake
run: nix flake check

71
.github/workflows/update.yml vendored Normal file
View File

@ -0,0 +1,71 @@
name: Update Flake
on:
workflow_dispatch: # allows manual triggering
schedule:
- cron: '33 3 * * 6' # runs weekly on Saturday at 03:33
permissions:
contents: write
pull-requests: write
checks: write
jobs:
lockfile:
name: Lockfile
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@v11
with:
nix-package-url: https://releases.nixos.org/nix/nix-2.18.4/nix-2.18.4-x86_64-linux.tar.xz
- name: Check Nixpkgs Inputs
uses: DeterminateSystems/flake-checker-action@v7
- name: Add Nix Cache
uses: DeterminateSystems/magic-nix-cache-action@v6
- name: Update flake.lock
uses: DeterminateSystems/update-flake-lock@v23
id: update
with:
pr-title: "Update flake.lock" # Title of PR to be created
pr-labels: | # Labels to be set on the PR
dependencies
automated
pr-body: |
Automated changes by the [update-flake-lock](https://github.com/DeterminateSystems/update-flake-lock) GitHub Action.
```
{{ env.GIT_COMMIT_MESSAGE }}
```
- name: Check the Flake
id: check
run: nix flake check
- name: Update Check Status
uses: LouisBrunner/checks-action@v1.6.1
if: always()
with:
token: ${{ secrets.GITHUB_TOKEN }}
name: Update Flake
conclusion: ${{ job.status }}
output: |
{"summary":"${{ steps.check.outputs.stdout }}"}
- name: Enable Pull Request Automerge
if: success()
run: |
gh pr merge \
--rebase \
--auto \
${{ steps.update.outputs.pull-request-number }}
env:
GH_TOKEN: ${{ github.token }}
- name: Close Pull Request If Failed
if: failure()
run: |
gh pr close \
--comment "Auto-closing pull request" \
--delete-branch \
${{ steps.update.outputs.pull-request-number }}
env:
GH_TOKEN: ${{ github.token }}

4
.gitignore vendored
View File

@ -1,9 +1,9 @@
.DS_Store .DS_Store
*.bak *.bak
*.db *.db
*.qcow2
**/.direnv/** **/.direnv/**
result result
.luarc.json
private/** private/**
templates/**/flake.lock
!private/**.age !private/**.age
!private/**.sha512

138
README.md
View File

@ -6,21 +6,76 @@ hosts.
They are organized and managed by [Nix](https://nixos.org), so some of the They are organized and managed by [Nix](https://nixos.org), so some of the
configuration may be difficult to translate to a non-Nix system. configuration may be difficult to translate to a non-Nix system.
However, some of the configurations are easier to lift directly: ## System Features
- [Neovim](https://github.com/nmasur/dotfiles/tree/master/modules/common/neovim/config) | Feature | Program | Configuration |
- [Fish functions](https://github.com/nmasur/dotfiles/tree/master/modules/common/shell/fish/functions) |----------------|-----------------------------------------------------|-----------------------------------------------|
- [More fish aliases](https://github.com/nmasur/dotfiles/blob/master/modules/common/shell/fish/default.nix) | OS | [NixOS](https://nixos.org) | [Link](./modules/nixos) |
- [Git aliases](https://github.com/nmasur/dotfiles/blob/master/modules/common/shell/git.nix) | Display Server | [X11](https://www.x.org/wiki/) | [Link](./modules/nixos/graphical/xorg.nix) |
- [Hammerspoon](https://github.com/nmasur/dotfiles/tree/master/modules/darwin/hammerspoon) | Compositor | [Picom](https://github.com/yshui/picom) | [Link](./modules/nixos/graphical/picom.nix) |
| Window Manager | [i3](https://i3wm.org/) | [Link](./modules/nixos/graphical/i3.nix) |
| Panel | [Polybar](https://polybar.github.io/) | [Link](./modules/nixos/graphical/polybar.nix) |
| Font | [Victor Mono](https://rubjo.github.io/victor-mono/) | [Link](./modules/nixos/graphical/fonts.nix) |
| Launcher | [Rofi](https://github.com/davatorium/rofi) | [Link](./modules/nixos/graphical/rofi.nix) |
Try out my Neovim config (requires [nix](https://nixos.org/download.html)): ## User Features
| Feature | Program | Configuration |
|--------------|----------------------------------------------------------------------------------|----------------------------------------------------|
| Dotfiles | [Home-Manager](https://github.com/nix-community/home-manager) | [Link](./modules/common) |
| Terminal | [Kitty](https://sw.kovidgoyal.net/kitty/) | [Link](./modules/common/applications/kitty.nix) |
| Shell | [Fish](https://fishshell.com/) | [Link](./modules/common/shell/fish) |
| Shell Prompt | [Starship](https://starship.rs/) | [Link](./modules/common/shell/starship.nix) |
| Colorscheme | [Gruvbox](https://github.com/morhetz/gruvbox) | [Link](./colorscheme/gruvbox/default.nix) |
| Wallpaper | [Road](https://gitlab.com/exorcist365/wallpapers/-/blob/master/gruvbox/road.jpg) | [Link](./hosts/tempest/default.nix) |
| Text Editor | [Neovim](https://neovim.io/) | [Link](./modules/common/neovim/config) |
| Browser | [Firefox](https://www.mozilla.org/en-US/firefox/new/) | [Link](./modules/common/applications/firefox.nix) |
| E-Mail | [Aerc](https://aerc-mail.org/) | [Link](./modules/common/mail/aerc.nix) |
| File Manager | [Nautilus](https://wiki.gnome.org/action/show/Apps/Files) | [Link](./modules/common/applications/nautilus.nix) |
| PDF Reader | [Zathura](https://pwmt.org/projects/zathura/) | [Link](./modules/common/applications/media.nix) |
| Video Player | [mpv](https://mpv.io/) | [Link](./modules/common/applications/media.nix) |
## macOS Features
| Feature | Program | Configuration |
|----------|---------------------------------------------|--------------------------------------|
| Keybinds | [Hammerspoon](https://www.hammerspoon.org/) | [Link](./modules/darwin/hammerspoon) |
# Diagram
![Diagram](https://github.com/nmasur/dotfiles/assets/7386960/4cc22285-cea1-4831-b387-a82241184381)
---
# Unique Configurations
This repo contains a few more elaborate elements of configuration.
- [Neovim config](./modules/common/neovim/default.nix) generated with Nix2Vim
and source-controlled plugins, differing based on installed LSPs, for example.
- [Caddy JSON](./modules/nixos/services/caddy.nix) file (routes, etc.) based
dynamically on enabled services rendered with Nix.
- [Grafana config](./modules/nixos/services/grafana.nix) rendered with Nix.
- Custom [secrets deployment](./modules/nixos/services/secrets.nix) similar to
agenix.
- Base16 [colorschemes](./colorscheme/) applied to multiple applications,
including Firefox userChrome.
---
# Installation
Click [here](./docs/installation.md) for detailed installation instructions.
# Neovim
Try out my Neovim config with nix:
```bash ```bash
nix run github:nmasur/dotfiles#neovim nix run github:nmasur/dotfiles#neovim
``` ```
Or build it as a package (requires [nix](https://nixos.org/download.html)): Or build it as a package:
```bash ```bash
nix build github:nmasur/dotfiles#neovim nix build github:nmasur/dotfiles#neovim
@ -30,73 +85,6 @@ If you already have a Neovim configuration, you may need to move it out of
`~/.config/nvim` or set `XDG_CONFIG_HOME` to another value; otherwise both `~/.config/nvim` or set `XDG_CONFIG_HOME` to another value; otherwise both
configs might conflict with each other. configs might conflict with each other.
---
# Full Installation
## NixOS - From Live Disk
Format drives and build system from any NixOS host, including the live
installer disk:
**This will erase your drives; use at your own risk!**
```bash
lsblk # Choose the disk you want to wipe
nix-shell -p nixVersions.stable
nix run github:nmasur/dotfiles#installer -- nvme0n1 tempest
```
## NixOS - From Existing System
If you're already running NixOS, you can switch to this configuration with the
following command:
```bash
nix-shell -p nixVersions.stable
sudo nixos-rebuild switch --flake github:nmasur/dotfiles#tempest
```
## Windows - From NixOS WSL
After [installing NixOS on
WSL](https://xeiaso.net/blog/nix-flakes-4-wsl-2022-05-01), you can switch to
the WSL configuration:
```
nix-shell -p nixVersions.stable
sudo nixos-rebuild switch --flake github:nmasur/dotfiles#hydra
```
You should also download the
[FiraCode](https://github.com/ryanoasis/nerd-fonts/releases/download/v2.2.2/FiraCode.zip)
font and install it on Windows. Install [Alacritty](https://alacritty.org/) and
move the `windows/alacritty.yml` file to
`C:\Users\<user>\AppData\Roaming\alacritty`.
## macOS
To get started on a bare macOS installation, first install Nix:
```bash
sh -c "$(curl -L https://nixos.org/nix/install)"
```
Then use Nix to build nix-darwin:
```bash
nix-build https://github.com/LnL7/nix-darwin/archive/master.tar.gz -A installer
./result/bin/darwin-installer
```
Then switch to the macOS configuration:
```bash
darwin-rebuild switch --flake github:nmasur/dotfiles#lookingglass
```
---
# Flake Templates # Flake Templates
You can also use the [templates](./templates/) as flakes for starting new You can also use the [templates](./templates/) as flakes for starting new

9
apps/README.md Normal file
View File

@ -0,0 +1,9 @@
# Apps
These are all my miscellaneous utilies and scripts to accompany this project.
They can be run with:
```
nix run github:nmasur/dotfiles#appname
```

View File

@ -1,4 +1,5 @@
{ pkgs, ... }: rec { { pkgs, ... }:
rec {
# Show quick helper # Show quick helper
default = import ./help.nix { inherit pkgs; }; default = import ./help.nix { inherit pkgs; };
@ -30,5 +31,4 @@
# Run neovim as an app # Run neovim as an app
neovim = import ./neovim.nix { inherit pkgs; }; neovim = import ./neovim.nix { inherit pkgs; };
nvim = neovim; nvim = neovim;
} }

View File

@ -1,19 +1,19 @@
{ pkgs, ... }: { { pkgs, ... }:
{
# nix run github:nmasur/dotfiles#encrypt-secret > private/mysecret.age # nix run github:nmasur/dotfiles#encrypt-secret > private/mysecret.age
type = "app"; type = "app";
program = builtins.toString (pkgs.writeShellScript "encrypt-secret" '' program = builtins.toString (
printf "\nEnter the secret data to encrypt for all hosts...\n\n" 1>&2 pkgs.writeShellScript "encrypt-secret" ''
read -p "Secret: " secret printf "\nEnter the secret data to encrypt for all hosts...\n\n" 1>&2
printf "\nEncrypting...\n\n" 1>&2 read -p "Secret: " secret
tmpfile=$(mktemp) printf "\nEncrypting...\n\n" 1>&2
echo "''${secret}" > ''${tmpfile} tmpfile=$(mktemp)
${pkgs.age}/bin/age --encrypt --armor --recipients-file ${ echo "''${secret}" > ''${tmpfile}
builtins.toString ../public-keys ${pkgs.age}/bin/age --encrypt --armor --recipients-file ${builtins.toString ../misc/public-keys} $tmpfile
} $tmpfile rm $tmpfile
rm $tmpfile ''
''); );
} }

View File

@ -1,39 +1,41 @@
{ pkgs, ... }: { { pkgs, ... }:
{
# This script will partition and format drives; use at your own risk! # This script will partition and format drives; use at your own risk!
type = "app"; type = "app";
program = builtins.toString (pkgs.writeShellScript "format-root" '' program = builtins.toString (
set -e pkgs.writeShellScript "format-root" ''
set -e
DISK=$1 DISK=$1
if [ -z "''${DISK}" ]; then if [ -z "''${DISK}" ]; then
${pkgs.gum}/bin/gum style --width 50 --margin "1 2" --padding "2 4" \ ${pkgs.gum}/bin/gum style --width 50 --margin "1 2" --padding "2 4" \
--foreground "#fb4934" \ --foreground "#fb4934" \
"Missing required parameter." \ "Missing required parameter." \
"Usage: format-root -- <disk>" \ "Usage: format-root -- <disk>" \
"Flake example: nix run github:nmasur/dotfiles#format-root -- nvme0n1" "Flake example: nix run github:nmasur/dotfiles#format-root -- nvme0n1"
echo "(exiting)" echo "(exiting)"
exit 1 exit 1
fi fi
${pkgs.disko-packaged}/bin/disko \ ${pkgs.disko-packaged}/bin/disko \
--mode create \ --mode create \
--dry-run \ --dry-run \
--flake "path:$(pwd)#root" \ --flake "path:$(pwd)#root" \
--arg disk \""/dev/''${DISK}"\" --arg disk \""/dev/''${DISK}"\"
${pkgs.gum}/bin/gum confirm \ ${pkgs.gum}/bin/gum confirm \
"This will ERASE ALL DATA on the disk /dev/''${DISK}. Are you sure you want to continue?" \ "This will ERASE ALL DATA on the disk /dev/''${DISK}. Are you sure you want to continue?" \
--default=false --default=false
${pkgs.disko-packaged}/bin/disko \ ${pkgs.disko-packaged}/bin/disko \
--mode create \ --mode create \
--flake "path:$(pwd)#root" \ --flake "path:$(pwd)#root" \
--arg disk "/dev/''${DISK}" --arg disk "/dev/''${DISK}"
'');
''
);
} }

View File

@ -1,23 +1,25 @@
{ pkgs, ... }: { { pkgs, ... }:
{
type = "app"; type = "app";
program = builtins.toString (pkgs.writeShellScript "default" '' program = builtins.toString (
${pkgs.gum}/bin/gum style --margin "1 2" --padding "0 2" --foreground "15" --background "55" "Options" pkgs.writeShellScript "default" ''
${pkgs.gum}/bin/gum format --type=template -- ' {{ Italic "Run with" }} {{ Color "15" "69" " nix run github:nmasur/dotfiles#" }}{{ Color "15" "62" "someoption" }}{{ Color "15" "69" " " }}.' ${pkgs.gum}/bin/gum style --margin "1 2" --padding "0 2" --foreground "15" --background "55" "Options"
echo "" ${pkgs.gum}/bin/gum format --type=template -- ' {{ Italic "Run with" }} {{ Color "15" "69" " nix run github:nmasur/dotfiles#" }}{{ Color "15" "62" "someoption" }}{{ Color "15" "69" " " }}.'
echo "" echo ""
${pkgs.gum}/bin/gum format --type=template -- \ echo ""
' {{ Color "15" "57" " readme " }} {{ Italic "Documentation for this repository." }}' \ ${pkgs.gum}/bin/gum format --type=template -- \
' {{ Color "15" "57" " rebuild " }} {{ Italic "Switch to this configuration." }}' \ ' {{ Color "15" "57" " readme " }} {{ Italic "Documentation for this repository." }}' \
' {{ Color "15" "57" " installer " }} {{ Italic "Format and install from nothing." }}' \ ' {{ Color "15" "57" " rebuild " }} {{ Italic "Switch to this configuration." }}' \
' {{ Color "15" "57" " neovim " }} {{ Italic "Test out the Neovim package." }}' \ ' {{ Color "15" "57" " installer " }} {{ Italic "Format and install from nothing." }}' \
' {{ Color "15" "57" " loadkey " }} {{ Italic "Load an ssh key for this machine using melt." }}' \ ' {{ Color "15" "57" " neovim " }} {{ Italic "Test out the Neovim package." }}' \
' {{ Color "15" "57" " encrypt-secret " }} {{ Italic "Encrypt a secret for all machines." }}' \ ' {{ Color "15" "57" " loadkey " }} {{ Italic "Load an ssh key for this machine using melt." }}' \
' {{ Color "15" "57" " reencrypt-secrets " }} {{ Italic "Reencrypt all secrets when new machine is added." }}' \ ' {{ Color "15" "57" " encrypt-secret " }} {{ Italic "Encrypt a secret for all machines." }}' \
' {{ Color "15" "57" " netdata " }} {{ Italic "Connect a machine to Netdata cloud." }}' ' {{ Color "15" "57" " reencrypt-secrets " }} {{ Italic "Reencrypt all secrets when new machine is added." }}' \
echo "" ' {{ Color "15" "57" " netdata " }} {{ Italic "Connect a machine to Netdata cloud." }}'
echo "" echo ""
''); echo ""
''
);
} }

View File

@ -1,48 +1,50 @@
{ pkgs, ... }: { { pkgs, ... }:
{
# Inspired by https://github.com/cleverca22/nix-tests/blob/master/kexec/justdoit.nix # Inspired by https://github.com/cleverca22/nix-tests/blob/master/kexec/justdoit.nix
# This script will partition and format drives; use at your own risk! # This script will partition and format drives; use at your own risk!
type = "app"; type = "app";
program = builtins.toString (pkgs.writeShellScript "installer" '' program = builtins.toString (
set -e pkgs.writeShellScript "installer" ''
set -e
DISK=$1 DISK=$1
FLAKE=$2 FLAKE=$2
PARTITION_PREFIX="" PARTITION_PREFIX=""
if [ -z "$DISK" ] || [ -z "$FLAKE" ]; then if [ -z "$DISK" ] || [ -z "$FLAKE" ]; then
${pkgs.gum}/bin/gum style --width 50 --margin "1 2" --padding "2 4" \ ${pkgs.gum}/bin/gum style --width 50 --margin "1 2" --padding "2 4" \
--foreground "#fb4934" \ --foreground "#fb4934" \
"Missing required parameter." \ "Missing required parameter." \
"Usage: installer -- <disk> <host>" \ "Usage: installer -- <disk> <host>" \
"Example: installer -- nvme0n1 desktop" \ "Example: installer -- nvme0n1 tempest" \
"Flake example: nix run github:nmasur/dotfiles#installer -- nvme0n1 desktop" "Flake example: nix run github:nmasur/dotfiles#installer -- nvme0n1 tempest"
echo "(exiting)" echo "(exiting)"
exit 1 exit 1
fi fi
case "$DISK" in nvme*) case "$DISK" in nvme*)
PARTITION_PREFIX="p" PARTITION_PREFIX="p"
esac esac
${pkgs.gum}/bin/gum confirm \ ${pkgs.gum}/bin/gum confirm \
"This will ERASE ALL DATA on the disk /dev/''${DISK}. Are you sure you want to continue?" \ "This will ERASE ALL DATA on the disk /dev/''${DISK}. Are you sure you want to continue?" \
--default=false --default=false
${pkgs.parted}/bin/parted /dev/''${DISK} -- mklabel gpt ${pkgs.parted}/bin/parted /dev/''${DISK} -- mklabel gpt
${pkgs.parted}/bin/parted /dev/''${DISK} -- mkpart primary 512MiB 100% ${pkgs.parted}/bin/parted /dev/''${DISK} -- mkpart primary 512MiB 100%
${pkgs.parted}/bin/parted /dev/''${DISK} -- mkpart ESP fat32 1MiB 512MiB ${pkgs.parted}/bin/parted /dev/''${DISK} -- mkpart ESP fat32 1MiB 512MiB
${pkgs.parted}/bin/parted /dev/''${DISK} -- set 3 esp on ${pkgs.parted}/bin/parted /dev/''${DISK} -- set 3 esp on
mkfs.ext4 -L nixos /dev/''${DISK}''${PARTITION_PREFIX}1 mkfs.ext4 -L nixos /dev/''${DISK}''${PARTITION_PREFIX}1
mkfs.fat -F 32 -n boot /dev/''${DISK}''${PARTITION_PREFIX}2 mkfs.fat -F 32 -n boot /dev/''${DISK}''${PARTITION_PREFIX}2
mount /dev/disk/by-label/nixos /mnt mount /dev/disk/by-label/nixos /mnt
mkdir --parents /mnt/boot mkdir --parents /mnt/boot
mount /dev/disk/by-label/boot /mnt/boot mount /dev/disk/by-label/boot /mnt/boot
${pkgs.nixos-install-tools}/bin/nixos-install --flake github:nmasur/dotfiles#''${FLAKE}
'');
${pkgs.nixos-install-tools}/bin/nixos-install --flake github:nmasur/dotfiles#''${FLAKE}
''
);
} }

View File

@ -1,12 +1,15 @@
{ pkgs, ... }: { { pkgs, ... }:
{
type = "app"; type = "app";
program = builtins.toString (pkgs.writeShellScript "loadkey" '' program = builtins.toString (
printf "\nEnter the seed phrase for your SSH key...\n" pkgs.writeShellScript "loadkey" ''
printf "\nThen press ^D when complete.\n\n" printf "\nEnter the seed phrase for your SSH key...\n"
${pkgs.melt}/bin/melt restore ~/.ssh/id_ed25519 printf "\nThen press ^D when complete.\n\n"
printf "\n\nContinuing activation.\n\n" mkdir -p ~/.ssh/
''); ${pkgs.melt}/bin/melt restore ~/.ssh/id_ed25519
printf "\n\nContinuing activation.\n\n"
''
);
} }

View File

@ -1,13 +1,12 @@
{ pkgs, ... }: { { pkgs, ... }:
{
type = "app"; type = "app";
program = "${ program = "${
(import ../modules/common/neovim/package { (import ../modules/common/neovim/package {
inherit pkgs; inherit pkgs;
colors = colors = (import ../colorscheme/nord).dark;
import ../colorscheme/gruvbox/neovim-gruvbox.nix { inherit pkgs; }; })
}) }/bin/nvim";
}/bin/nvim";
} }

View File

@ -1,19 +1,21 @@
{ pkgs, ... }: { { pkgs, ... }:
{
type = "app"; type = "app";
program = builtins.toString (pkgs.writeShellScript "netdata-cloud" '' program = builtins.toString (
if [ "$EUID" -ne 0 ]; then pkgs.writeShellScript "netdata-cloud" ''
echo "Please run as root" if [ "$EUID" -ne 0 ]; then
exit 1 echo "Please run as root"
fi exit 1
mkdir --parents --mode 0750 /var/lib/netdata/cloud.d fi
printf "\nEnter the claim token for netdata cloud...\n\n" mkdir --parents --mode 0750 /var/lib/netdata/cloud.d
read -p "Token: " token printf "\nEnter the claim token for netdata cloud...\n\n"
echo "''${token}" > /var/lib/netdata/cloud.d/token read -p "Token: " token
chown -R netdata:netdata /var/lib/netdata echo "''${token}" > /var/lib/netdata/cloud.d/token
${pkgs.netdata}/bin/netdata-claim.sh -id=$(uuidgen) chown -R netdata:netdata /var/lib/netdata
printf "\n\nNow restart netdata service.\n\n" ${pkgs.netdata}/bin/netdata-claim.sh -id=$(uuidgen)
''); printf "\n\nNow restart netdata service.\n\n"
''
);
} }

View File

@ -1,9 +1,11 @@
{ pkgs, ... }: { { pkgs, ... }:
{
type = "app"; type = "app";
program = builtins.toString (pkgs.writeShellScript "readme" '' program = builtins.toString (
${pkgs.glow}/bin/glow --pager ${builtins.toString ../README.md} pkgs.writeShellScript "readme" ''
''); ${pkgs.glow}/bin/glow --pager ${builtins.toString ../README.md}
''
);
} }

View File

@ -1,15 +1,17 @@
{ pkgs, ... }: { { pkgs, ... }:
{
type = "app"; type = "app";
program = builtins.toString (pkgs.writeShellScript "rebuild" '' program = builtins.toString (
echo ${pkgs.system} pkgs.writeShellScript "rebuild" ''
SYSTEM=${if pkgs.stdenv.isDarwin then "darwin" else "linux"} echo ${pkgs.system}
if [ "$SYSTEM" == "darwin" ]; then SYSTEM=${if pkgs.stdenv.isDarwin then "darwin" else "linux"}
darwin-rebuild switch --flake github:nmasur/dotfiles#lookingglass if [ "$SYSTEM" == "darwin" ]; then
else sudo darwin-rebuild switch --flake ${builtins.toString ../.}
nixos-rebuild switch --flake github:nmasur/dotfiles else
fi doas nixos-rebuild switch --flake ${builtins.toString ../.}
''); fi
''
);
} }

View File

@ -1,27 +1,27 @@
{ pkgs, ... }: { { pkgs, ... }:
{
# nix run github:nmasur/dotfiles#reencrypt-secrets ./private # nix run github:nmasur/dotfiles#reencrypt-secrets ./private
type = "app"; type = "app";
program = builtins.toString (pkgs.writeShellScript "reencrypt-secrets" '' program = builtins.toString (
if [ $# -eq 0 ]; then pkgs.writeShellScript "reencrypt-secrets" ''
echo "Must provide directory to reencrypt." if [ $# -eq 0 ]; then
exit 1 echo "Must provide directory to reencrypt."
fi exit 1
encrypted=$1 fi
for encryptedfile in ''${1}/*; do encrypted=$1
tmpfile=$(mktemp) for encryptedfile in ''${1}/*; do
echo "Decrypting ''${encryptedfile}..." tmpfile=$(mktemp)
${pkgs.age}/bin/age --decrypt \ echo "Decrypting ''${encryptedfile}..."
--identity ~/.ssh/id_ed25519 $encryptedfile > $tmpfile ${pkgs.age}/bin/age --decrypt \
echo "Encrypting ''${encryptedfile}..." --identity ~/.ssh/id_ed25519 $encryptedfile > $tmpfile
${pkgs.age}/bin/age --encrypt --armor --recipients-file ${ echo "Encrypting ''${encryptedfile}..."
builtins.toString ../public-keys ${pkgs.age}/bin/age --encrypt --armor --recipients-file ${builtins.toString ../misc/public-keys} $tmpfile > $encryptedfile
} $tmpfile > $encryptedfile rm $tmpfile
rm $tmpfile done
done echo "Finished."
echo "Finished." ''
''); );
} }

5
colorscheme/README.md Normal file
View File

@ -0,0 +1,5 @@
# Colorschemes
Color information for different themes is found here. The colors are sourced
and used with [base16](https://github.com/chriskempson/base16) format
consistently across the system.

View File

@ -1,20 +1,22 @@
{ {
name = "everforest"; # dark, hard name = "everforest"; # dark, hard
author = "Sainnhe Park"; author = "Sainnhe Park";
base00 = "#2b3339"; # Default Background dark = {
base01 = "#323c41"; # Lighter Background base00 = "#2b3339"; # Default Background
base02 = "#503946"; # Selection Background base01 = "#323c41"; # Lighter Background
base03 = "#868d80"; # Comments, Invisibles, Line Highlighting base02 = "#503946"; # Selection Background
base04 = "#d3c6aa"; # Dark Foreground (Used for status bars) base03 = "#868d80"; # Comments, Invisibles, Line Highlighting
base05 = "#d3c6aa"; # Default Foreground, Caret, Delimiters, Operators base04 = "#d3c6aa"; # Dark Foreground (Used for status bars)
base06 = "#e9e8d2"; # Light Foreground (Not often used) base05 = "#d3c6aa"; # Default Foreground, Caret, Delimiters, Operators
base07 = "#fff9e8"; # Light Background (Not often used) base06 = "#e9e8d2"; # Light Foreground (Not often used)
base08 = "#7fbbb3"; # Variables, XML Tags, Markup Link Text, ... base07 = "#fff9e8"; # Light Background (Not often used)
base09 = "#d699b6"; # Integers, Boolean, Constants, ... base08 = "#7fbbb3"; # Variables, XML Tags, Markup Link Text, ...
base0A = "#83c092"; # Classes, Markup Bold, Search Text Background base09 = "#d699b6"; # Integers, Boolean, Constants, ...
base0B = "#dbbc7f"; # Strings, Inherited Class, Markup Code, Diff Inserted base0A = "#83c092"; # Classes, Markup Bold, Search Text Background
base0C = "#e69875"; # Support, Regular Expressions, Escape Characters, ... base0B = "#dbbc7f"; # Strings, Inherited Class, Markup Code, Diff Inserted
base0D = "#a7c080"; # Functions, Methods, Attribute IDs, Headings base0C = "#e69875"; # Support, Regular Expressions, Escape Characters, ...
base0E = "#e67e80"; # Keywords, Storage, Selector, Markup Italic, Diff Changed base0D = "#a7c080"; # Functions, Methods, Attribute IDs, Headings
base0F = "#d699b6"; # Deprecated, Opening/Closing Embedded Language Tags, ... base0E = "#e67e80"; # Keywords, Storage, Selector, Markup Italic, Diff Changed
base0F = "#d699b6"; # Deprecated, Opening/Closing Embedded Language Tags, ...
};
} }

View File

@ -0,0 +1,44 @@
# Gruvbox with a darker background for greater contrast
{
name = "gruvbox-dark"; # Dark, Medium
author = "Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox), ElRastaOk (https://www.reddit.com/user/ElRastaOk)";
dark = {
base00 = "#1D2122"; # ---- This is the change from normal gruvbox
base01 = "#3c3836"; # ---
base02 = "#504945"; # --
base03 = "#665c54"; # -
base04 = "#bdae93"; # +
base05 = "#d5c4a1"; # ++
base06 = "#ebdbb2"; # +++
base07 = "#fbf1c7"; # ++++
base08 = "#fb4934"; # red
base09 = "#fe8019"; # orange
base0A = "#fabd2f"; # yellow
base0B = "#b8bb26"; # green
base0C = "#8ec07c"; # aqua/cyan
base0D = "#83a598"; # blue
base0E = "#d3869b"; # purple
base0F = "#d65d0e"; # brown
batTheme = "gruvbox-dark";
};
light = {
base00 = "#fbf1c7"; # ----
base01 = "#ebdbb2"; # ---
base02 = "#d5c4a1"; # --
base03 = "#bdae93"; # -
base04 = "#665c54"; # +
base05 = "#504945"; # ++
base06 = "#3c3836"; # +++
base07 = "#1D2122"; # ++++ Adjusted darker here
base08 = "#9d0006"; # red
base09 = "#af3a03"; # orange
base0A = "#b57614"; # yellow
base0B = "#79740e"; # green
base0C = "#427b58"; # aqua/cyan
base0D = "#076678"; # blue
base0E = "#8f3f71"; # purple
base0F = "#d65d0e"; # brown
batTheme = "gruvbox-light";
};
}

View File

@ -1,7 +1,6 @@
{ {
name = "gruvbox"; # Dark, Medium name = "gruvbox"; # Dark, Medium
author = author = "Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox)";
"Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox)";
dark = { dark = {
base00 = "#282828"; # ---- base00 = "#282828"; # ----
base01 = "#3c3836"; # --- base01 = "#3c3836"; # ---
@ -19,7 +18,6 @@
base0D = "#83a598"; # blue base0D = "#83a598"; # blue
base0E = "#d3869b"; # purple base0E = "#d3869b"; # purple
base0F = "#d65d0e"; # brown base0F = "#d65d0e"; # brown
neovimConfig = ./neovim-gruvbox.nix;
batTheme = "gruvbox-dark"; batTheme = "gruvbox-dark";
}; };
light = { light = {
@ -39,7 +37,6 @@
base0D = "#076678"; # blue base0D = "#076678"; # blue
base0E = "#8f3f71"; # purple base0E = "#8f3f71"; # purple
base0F = "#d65d0e"; # brown base0F = "#d65d0e"; # brown
neovimConfig = ./neovim-gruvbox.nix;
batTheme = "gruvbox-light"; batTheme = "gruvbox-light";
}; };
} }

View File

@ -1,12 +0,0 @@
{ pkgs, ... }: {
plugins = [ pkgs.vimPlugins.vim-gruvbox8 ];
vim.g.gruvbox_italicize_strings = 0;
vim.o.background = "dark";
vimscript = ''
let g:gruvbox_italicize_strings = 0
colorscheme gruvbox8
'';
}

View File

@ -1,21 +1,23 @@
{ {
name = "nord"; name = "nord";
author = "arcticicestudio"; author = "arcticicestudio";
base00 = "#2E3440"; dark = {
base01 = "#3B4252"; base00 = "#2E3440";
base02 = "#434C5E"; base01 = "#3B4252";
base03 = "#4C566A"; base02 = "#434C5E";
base04 = "#D8DEE9"; base03 = "#4C566A";
base05 = "#E5E9F0"; base04 = "#D8DEE9";
base06 = "#ECEFF4"; base05 = "#E5E9F0";
base07 = "#8FBCBB"; base06 = "#ECEFF4";
base08 = "#88C0D0"; base07 = "#8FBCBB";
base09 = "#81A1C1"; base08 = "#88C0D0";
base0A = "#5E81AC"; base09 = "#81A1C1";
base0B = "#BF616A"; base0A = "#5E81AC";
base0C = "#D08770"; base0B = "#BF616A";
base0D = "#EBCB8B"; base0C = "#D08770";
base0E = "#A3BE8C"; base0D = "#EBCB8B";
base0F = "#B48EAD"; base0E = "#A3BE8C";
neovimConfig = ./neovim.lua; base0F = "#B48EAD";
batTheme = "nord";
};
} }

View File

@ -1,13 +0,0 @@
local M = {}
M.packer = function(use)
use({
"shaunsingh/nord.nvim",
config = function()
vim.g.nord_italic = true
vim.cmd("colorscheme nord")
end,
})
end
return M

5
disks/README.md Normal file
View File

@ -0,0 +1,5 @@
# Disks
These are my [disko](https://github.com/nix-community/disko) configurations,
which allow me to save desired disk formatting layouts as a declarative file so
I don't have to remember how to format my disks later on.

View File

@ -1,43 +1,38 @@
{ disk, ... }: { { disk, ... }:
{
disk = { disk = {
boot = { boot = {
type = "disk"; type = "disk";
device = disk; device = disk;
content = { content = {
type = "table"; type = "gpt";
format = "gpt"; partitions = {
partitions = [
# Boot partition # Boot partition
{ ESP = rec {
type = "partition"; size = "512MiB";
name = "ESP"; type = "EF00";
start = "0"; label = "boot";
end = "512MiB"; device = "/dev/disk/by-label/${label}";
fs-type = "fat32";
bootable = true;
content = { content = {
type = "filesystem"; type = "filesystem";
format = "vfat"; format = "vfat";
mountpoint = "/boot"; mountpoint = "/boot";
extraArgs = [ "-n boot" ]; extraArgs = [ "-n ${label}" ];
}; };
} };
# Root partition ext4 # Root partition ext4
{ root = rec {
type = "partition"; size = "100%";
name = "root"; label = "nixos";
start = "512MiB"; device = "/dev/disk/by-label/${label}";
end = "100%";
part-type = "primary";
bootable = true;
content = { content = {
type = "filesystem"; type = "filesystem";
format = "ext4"; format = "ext4";
mountpoint = "/"; mountpoint = "/";
extraArgs = [ "-L nixos" ]; extraArgs = [ "-L ${label}" ];
}; };
} };
]; };
}; };
}; };
}; };

View File

@ -1,4 +1,5 @@
{ pool, disks, ... }: { { pool, disks, ... }:
{
disk = lib.genAttrs disks (disk: { disk = lib.genAttrs disks (disk: {
"${disk}" = { "${disk}" = {
type = "disk"; type = "disk";
@ -6,16 +7,18 @@
content = { content = {
type = "table"; type = "table";
format = "gpt"; format = "gpt";
partitions = [{ partitions = [
type = "partition"; {
name = "zfs"; type = "partition";
start = "128MiB"; name = "zfs";
end = "100%"; start = "128MiB";
content = { end = "100%";
type = "zfs"; content = {
pool = pool; type = "zfs";
}; pool = pool;
}]; };
}
];
}; };
}; };
}); });

4
docs/README.md Normal file
View File

@ -0,0 +1,4 @@
# Documentation
Reference documents for some of the more complicated services and maintenance
tasks.

73
docs/installation.md Normal file
View File

@ -0,0 +1,73 @@
[Back to README](../README.md)
---
# Installation
## NixOS - From Live Disk
Format drives and build system from any NixOS host, including the live
installer disk:
**This will erase your drives; use at your own risk!**
```bash
lsblk # Choose the disk you want to wipe
nix-shell -p nixVersions.stable
nix run github:nmasur/dotfiles#installer -- nvme0n1 tempest
```
## NixOS - From Existing System
If you're already running NixOS, you can switch to this configuration with the
following command:
```bash
nix-shell -p nixVersions.stable
sudo nixos-rebuild switch --flake github:nmasur/dotfiles#tempest
```
## Windows - From NixOS WSL
After [installing NixOS on
WSL](https://xeiaso.net/blog/nix-flakes-4-wsl-2022-05-01), you can switch to
the WSL configuration:
```
nix-shell -p nixVersions.stable
sudo nixos-rebuild switch --flake github:nmasur/dotfiles#hydra
```
You should also download the
[FiraCode](https://github.com/ryanoasis/nerd-fonts/releases/download/v2.2.2/FiraCode.zip)
font and install it on Windows. Install [Alacritty](https://alacritty.org/) and
move the `windows/alacritty.yml` file to
`C:\Users\<user>\AppData\Roaming\alacritty`.
## macOS
To get started on a bare macOS installation, first install Nix:
```bash
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install
```
Launch a new shell. Then use Nix to switch to the macOS configuration:
```bash
sudo rm /etc/bashrc
sudo rm /etc/nix/nix.conf
export NIX_SSL_CERT_FILE="$HOME/Documents/t2-ca-bundle.pem"
nix \
--extra-experimental-features flakes \
--extra-experimental-features nix-command \
run nix-darwin -- switch \
--flake github:nmasur/dotfiles#lookingglass
```
Once installed, you can continue to update the macOS configuration:
```bash
darwin-rebuild switch --flake ~/dev/personal/dotfiles
```

82
docs/repair-nextcloud.md Normal file
View File

@ -0,0 +1,82 @@
# Repairing Nextcloud
You can run the maintenance commands like this:
```
sudo -u nextcloud nextcloud-occ maintenance:mode --on
sudo -u nextcloud nextcloud-occ maintenance:repair
sudo -u nextcloud nextcloud-occ maintenance:mode --off
```
## Rescan Files
```
sudo -u nextcloud nextcloud-occ files:scan --all
```
## Converting from SQLite to MySQL (mariadb)
First: keep Nextcloud set to SQLite as its dbtype, and separately launch MySQL
as a service by copying the configuration found
[here](https://github.com/NixOS/nixpkgs/blob/nixos-unstable/nixos/modules/services/web-apps/nextcloud.nix).
No password is necessary, since the user-based auth works with UNIX sockets.
You can connect to the MySQL instance like this:
```
sudo -u nextcloud mysql -S /run/mysqld/mysqld.sock
```
Create a blank database for Nextcloud:
```sql
create database nextcloud;
```
Now setup the [conversion](https://docs.nextcloud.com/server/17/admin_manual/configuration_database/db_conversion.html):
```
sudo -u nextcloud nextcloud-occ db:convert-type mysql nextcloud localhost nextcloud
```
Ignore the password prompt. Proceed with the conversion.
Now `config.php` will be updated but the override config from NixOS will not
be. Now update your NixOS configuration:
- Remove the `mysql` service you created.
- Set `dbtype` to `mysql`.
- Set `database.createLocally` to `true`.
Rebuild your configuration.
Now, make sure to enable [4-byte
support](https://docs.nextcloud.com/server/latest/admin_manual/configuration_database/mysql_4byte_support.html)
in the database.
## Backing Up MySQL Database
Use this mysqldump command:
```
sudo -u nextcloud mysqldump -S /run/mysqld/mysqld.sock --default-character-set=utf8mb4 nextcloud > backup.sql
```
## Converting to Postgres
Same as MySQL, but run this command instead:
```
sudo -u nextcloud nextcloud-occ db:convert-type pgsql nextcloud /run/postgresql/ nextcloud
```
Then set the `dbtype` to `pgsql`.
## Backing Up Postgres Database
Use this pg_dump command:
```
sudo -u nextcloud pg_dump nextcloud > backup.sql
```

View File

@ -1,43 +0,0 @@
# Restoring Nextcloud From Backup
Install the `litestream` package.
```
nix-shell --run fish -p litestream
```
Set the S3 credentials:
```
set -x AWS_ACCESS_KEY_ID (read)
set -x AWS_SECRET_ACCESS_KEY (read)
```
Restore from S3:
```
litestream restore -o nextcloud.db s3://noahmasur-backup.s3.us-west-002.backblazeb2.com/nextcloud
```
Install Nextcloud. Then copy DB:
```
sudo rm /data/nextcloud/data/nextcloud.db*
sudo mv nextcloud.db /data/nextcloud/data/
sudo chown nextcloud:nextcloud /data/nextcloud/data/nextcloud.db
sudo chmod 770 /data/nextcloud/data/nextcloud.db
```
Restart Nextcloud:
```
sudo systemctl restart phpfpm-nextcloud.service
```
Adjust Permissions and Directories:
```
sudo mkdir /data/nextcloud/data/noah/files
sudo chown nextcloud:nextcloud /data/nextcloud/data/noah/files
```

45
docs/zfs.md Normal file
View File

@ -0,0 +1,45 @@
# ZFS
Swan runs its root on ext4. The ZFS drives are managed imperatively (this
[disko configuration](../disks/zfs.nix) is an unused work-in-progress).
The basic ZFS settings are managed [here](../modules/nixos/hardware/zfs.nix).
## Creating a New Dataset
```
sudo zfs create tank/mydataset
sudo zfs set compression=zstd tank/myzstddataset
sudo zfs set mountpoint=/data/mydataset tank/mydataset
```
## Maintenance
### Get Status
```
sudo zpool status
```
### Replace Disk
```
sudo zdb
sudo zpool status -g # Show by GUID
sudo zpool offline tank <GUID>
sudo zpool status
# Remove old disk, insert new disk
sudo zdb
sudo zpool replace tank <OLD GUID> /dev/disk/by-id/<NEW PATH>
sudo zpool status
```
## Initial Setup
```
sudo zpool create tank raidz1 sda sdb sdc
sudo zpool set ashift=12 tank
sudo zpool set autoexpand=on tank
sudo zpool set compression=on tank
```

788
flake.lock generated

File diff suppressed because it is too large Load Diff

422
flake.nix
View File

@ -7,27 +7,44 @@
# Used for system packages # Used for system packages
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
# Used for specific stable packages
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05";
# Used for caddy plugins
nixpkgs-caddy.url = "github:jpds/nixpkgs/caddy-external-plugins";
# Used for MacOS system config # Used for MacOS system config
darwin = { darwin = {
url = "github:/lnl7/nix-darwin/master"; url = "github:lnl7/nix-darwin/master";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
# Used for Windows Subsystem for Linux compatibility # Used for Windows Subsystem for Linux compatibility
wsl.url = "github:nix-community/NixOS-WSL"; wsl = {
url = "github:nix-community/NixOS-WSL";
inputs.nixpkgs.follows = "nixpkgs";
};
# Used for user packages # Used for user packages and dotfiles
home-manager = { home-manager = {
url = "github:nix-community/home-manager/master"; url = "github:nix-community/home-manager/master";
inputs.nixpkgs.follows = inputs.nixpkgs.follows = "nixpkgs"; # Use system packages list for their inputs
"nixpkgs"; # Use system packages list where available
}; };
# Community packages; used for Firefox extensions # Community packages; used for Firefox extensions
nur.url = "github:nix-community/nur"; nur.url = "github:nix-community/nur";
# Use official Firefox binary for macOS # Use official Firefox binary for macOS
firefox-darwin.url = "github:bandithedoge/nixpkgs-firefox-darwin"; firefox-darwin = {
url = "github:bandithedoge/nixpkgs-firefox-darwin";
inputs.nixpkgs.follows = "nixpkgs";
};
# Better App install management in macOS
mac-app-util = {
url = "github:hraban/mac-app-util";
inputs.nixpkgs.follows = "nixpkgs"; # Use system packages list for their inputs
};
# Manage disk format and partitioning # Manage disk format and partitioning
disko = { disko = {
@ -53,32 +70,33 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
# Nix language server
nil.url = "github:oxalica/nil";
# Neovim plugins # Neovim plugins
base16-nvim-src = {
url = "github:RRethy/base16-nvim";
flake = false;
};
nvim-lspconfig-src = { nvim-lspconfig-src = {
url = "github:neovim/nvim-lspconfig"; # https://github.com/neovim/nvim-lspconfig/tags
url = "github:neovim/nvim-lspconfig/v0.1.8";
flake = false; flake = false;
}; };
cmp-nvim-lsp-src = { cmp-nvim-lsp-src = {
url = "github:hrsh7th/cmp-nvim-lsp"; url = "github:hrsh7th/cmp-nvim-lsp";
flake = false; flake = false;
}; };
null-ls-nvim-src = { baleia-nvim-src = {
url = "github:jose-elias-alvarez/null-ls.nvim"; # https://github.com/m00qek/baleia.nvim/tags
flake = false; url = "github:m00qek/baleia.nvim";
};
Comment-nvim-src = {
url = "github:numToStr/Comment.nvim";
flake = false; flake = false;
}; };
nvim-treesitter-src = { nvim-treesitter-src = {
url = "github:nvim-treesitter/nvim-treesitter"; # https://github.com/nvim-treesitter/nvim-treesitter/tags
url = "github:nvim-treesitter/nvim-treesitter/v0.9.2";
flake = false; flake = false;
}; };
telescope-nvim-src = { telescope-nvim-src = {
url = "github:nvim-telescope/telescope.nvim"; # https://github.com/nvim-telescope/telescope.nvim/releases
url = "github:nvim-telescope/telescope.nvim/0.1.8";
flake = false; flake = false;
}; };
telescope-project-nvim-src = { telescope-project-nvim-src = {
@ -86,137 +104,350 @@
flake = false; flake = false;
}; };
toggleterm-nvim-src = { toggleterm-nvim-src = {
url = "github:akinsho/toggleterm.nvim"; # https://github.com/akinsho/toggleterm.nvim/tags
url = "github:akinsho/toggleterm.nvim/v2.12.0";
flake = false; flake = false;
}; };
bufferline-nvim-src = { bufferline-nvim-src = {
url = "github:akinsho/bufferline.nvim"; # https://github.com/akinsho/bufferline.nvim/releases
url = "github:akinsho/bufferline.nvim/v4.6.1";
flake = false; flake = false;
}; };
nvim-tree-lua-src = { nvim-tree-lua-src = {
url = "github:kyazdani42/nvim-tree.lua"; url = "github:kyazdani42/nvim-tree.lua";
flake = false; flake = false;
}; };
hmts-nvim-src = {
url = "github:calops/hmts.nvim";
flake = false;
};
fidget-nvim-src = {
# https://github.com/j-hui/fidget.nvim/tags
url = "github:j-hui/fidget.nvim/v1.4.5";
flake = false;
};
nvim-lint-src = {
url = "github:mfussenegger/nvim-lint";
flake = false;
};
tiny-inline-diagnostic-nvim-src = {
url = "github:rachartier/tiny-inline-diagnostic.nvim";
flake = false;
};
snipe-nvim-src = {
url = "github:leath-dub/snipe.nvim";
flake = false;
};
# Tree-Sitter Grammars
tree-sitter-bash = {
url = "github:tree-sitter/tree-sitter-bash/master";
flake = false;
};
tree-sitter-python = {
url = "github:tree-sitter/tree-sitter-python/master";
flake = false;
};
tree-sitter-lua = {
url = "github:MunifTanjim/tree-sitter-lua/main";
flake = false;
};
tree-sitter-ini = {
url = "github:justinmk/tree-sitter-ini";
flake = false;
};
tree-sitter-puppet = {
url = "github:amaanq/tree-sitter-puppet";
flake = false;
};
tree-sitter-rasi = {
url = "github:Fymyte/tree-sitter-rasi";
flake = false;
};
tree-sitter-vimdoc = {
url = "github:neovim/tree-sitter-vimdoc";
flake = false;
};
# MPV Scripts
zenyd-mpv-scripts = {
url = "github:zenyd/mpv-scripts";
flake = false;
};
# Git alternative
# Fixes: https://github.com/martinvonz/jj/issues/4784
jujutsu = {
url = "github:martinvonz/jj";
inputs.nixpkgs.follows = "nixpkgs";
};
# Ren and rep - CLI find and replace
rep = {
url = "github:robenkleene/rep-grep";
flake = false;
};
ren = {
url = "github:robenkleene/ren-find";
flake = false;
};
gh-collaborators = {
url = "github:katiem0/gh-collaborators";
flake = false;
};
# Clipboard over SSH
osc = {
url = "github:theimpostor/osc";
flake = false;
};
# Nextcloud Apps
nextcloud-news = {
# https://github.com/nextcloud/news/releases
url = "https://github.com/nextcloud/news/releases/download/25.0.0-alpha12/news.tar.gz";
flake = false;
};
nextcloud-external = {
# https://github.com/nextcloud-releases/external/releases
url = "https://github.com/nextcloud-releases/external/releases/download/v5.5.2/external-v5.5.2.tar.gz";
flake = false;
};
nextcloud-cookbook = {
# https://github.com/christianlupus-nextcloud/cookbook-releases/releases/
url = "https://github.com/christianlupus-nextcloud/cookbook-releases/releases/download/v0.11.2/cookbook-0.11.2.tar.gz";
flake = false;
};
nextcloud-snappymail = {
# https://github.com/the-djmaze/snappymail/releases
# https://snappymail.eu/repository/nextcloud
url = "https://snappymail.eu/repository/nextcloud/snappymail-2.38.2-nextcloud.tar.gz";
# url = "https://github.com/nmasur/snappymail-nextcloud/releases/download/v2.36.3/snappymail-2.36.3-nextcloud.tar.gz";
flake = false;
};
}; };
outputs = { nixpkgs, ... }@inputs: outputs =
{ nixpkgs, ... }@inputs:
let let
# Global configuration for my systems # Global configuration for my systems
globals = rec { globals =
user = "noah"; let
fullName = "Noah Masur"; baseName = "masu.rs";
gitName = fullName; in
gitEmail = "7386960+nmasur@users.noreply.github.com"; rec {
mail.server = "noahmasur.com"; user = "noah";
dotfilesRepo = "git@github.com:nmasur/dotfiles"; fullName = "Noah Masur";
}; gitName = fullName;
gitEmail = "7386960+nmasur@users.noreply.github.com";
mail.server = "noahmasur.com";
mail.imapHost = "imap.purelymail.com";
mail.smtpHost = "smtp.purelymail.com";
dotfilesRepo = "https://github.com/nmasur/dotfiles";
hostnames = {
audiobooks = "read.${baseName}";
files = "files.${baseName}";
git = "git.${baseName}";
influxdb = "influxdb.${baseName}";
irc = "irc.${baseName}";
metrics = "metrics.${baseName}";
minecraft = "minecraft.${baseName}";
n8n = "n8n.${baseName}";
notifications = "ntfy.${baseName}";
prometheus = "prom.${baseName}";
paperless = "paper.${baseName}";
secrets = "vault.${baseName}";
stream = "stream.${baseName}";
content = "cloud.${baseName}";
books = "books.${baseName}";
download = "download.${baseName}";
status = "status.${baseName}";
transmission = "transmission.${baseName}";
};
};
# Common overlays to always use # Common overlays to always use
overlays = [ overlays = [
inputs.nur.overlay inputs.nur.overlay
inputs.nix2vim.overlay inputs.nix2vim.overlay
inputs.jujutsu.overlays.default # Fix: https://github.com/martinvonz/jj/issues/4784
(import ./overlays/neovim-plugins.nix inputs) (import ./overlays/neovim-plugins.nix inputs)
(import ./overlays/calibre-web.nix) (import ./overlays/disko.nix inputs)
(import ./overlays/tree-sitter.nix inputs)
(import ./overlays/mpv-scripts.nix inputs)
(import ./overlays/nextcloud-apps.nix inputs)
(import ./overlays/betterlockscreen.nix)
(import ./overlays/gh-collaborators.nix inputs)
(import ./overlays/osc.nix inputs)
(import ./overlays/ren-rep.nix inputs)
]; ];
# System types to support. # System types to support.
supportedSystems = supportedSystems = [
[ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; "x86_64-linux"
"x86_64-darwin"
"aarch64-linux"
"aarch64-darwin"
];
# Helper function to generate an attrset '{ x86_64-linux = f "x86_64-linux"; ... }'. # Helper function to generate an attrset '{ x86_64-linux = f "x86_64-linux"; ... }'.
forAllSystems = nixpkgs.lib.genAttrs supportedSystems; forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
in
rec {
in rec { # Contains my full system builds, including home-manager
# nixos-rebuild switch --flake .#tempest
nixosConfigurations = { nixosConfigurations = {
arrow = import ./hosts/arrow { inherit inputs globals overlays; };
tempest = import ./hosts/tempest { inherit inputs globals overlays; }; tempest = import ./hosts/tempest { inherit inputs globals overlays; };
hydra = import ./hosts/hydra { inherit inputs globals overlays; }; hydra = import ./hosts/hydra { inherit inputs globals overlays; };
flame = import ./hosts/flame { inherit inputs globals overlays; }; flame = import ./hosts/flame { inherit inputs globals overlays; };
swan = import ./hosts/swan { inherit inputs globals overlays; }; swan = import ./hosts/swan { inherit inputs globals overlays; };
}; };
# Contains my full Mac system builds, including home-manager
# darwin-rebuild switch --flake .#lookingglass
darwinConfigurations = { darwinConfigurations = {
lookingglass = lookingglass = import ./hosts/lookingglass { inherit inputs globals overlays; };
import ./hosts/lookingglass { inherit inputs globals overlays; };
}; };
# For quickly applying local settings with: # For quickly applying home-manager settings with:
# home-manager switch --flake .#tempest # home-manager switch --flake .#tempest
homeConfigurations = { homeConfigurations = {
tempest = tempest = nixosConfigurations.tempest.config.home-manager.users.${globals.user}.home;
nixosConfigurations.tempest.config.home-manager.users.${globals.user}.home; lookingglass = darwinConfigurations.lookingglass.config.home-manager.users."Noah.Masur".home;
lookingglass =
darwinConfigurations.lookingglass.config.home-manager.users."Noah.Masur".home;
}; };
# Disk formatting # Disk formatting, only used once
diskoConfigurations = { root = import ./disks/root.nix; }; diskoConfigurations = {
root = import ./disks/root.nix;
};
# Package servers into images with a generator packages =
packages = forAllSystems (system: {
aws = {
"${system}" =
import ./generators/aws { inherit inputs globals system overlays; };
};
staff = {
"${system}" = import ./generators/staff {
inherit inputs globals system overlays;
};
};
neovim = let pkgs = import nixpkgs { inherit system overlays; };
in import ./modules/common/neovim/package {
inherit pkgs;
colors =
import ./colorscheme/gruvbox/neovim-gruvbox.nix { inherit pkgs; };
};
});
apps = forAllSystems (system:
let let
pkgs = import nixpkgs { staff =
inherit system; system:
overlays = overlays ++ [ import ./hosts/staff {
(final: prev: { inherit
disko-packaged = inputs.disko.packages.${system}.disko; inputs
}) globals
overlays
system
;
};
neovim =
system:
let
pkgs = import nixpkgs { inherit system overlays; };
in
import ./modules/common/neovim/package {
inherit pkgs;
colors = (import ./colorscheme/gruvbox-dark).dark;
};
in
{
x86_64-linux.staff = staff "x86_64-linux";
x86_64-linux.arrow = inputs.nixos-generators.nixosGenerate rec {
system = "x86_64-linux";
format = "iso";
specialArgs = {
pkgs-stable = import inputs.nixpkgs-stable { inherit system; };
pkgs-caddy = import inputs.nixpkgs-caddy { inherit system; };
};
modules = import ./hosts/arrow/modules.nix { inherit inputs globals overlays; };
};
x86_64-linux.arrow-aws = inputs.nixos-generators.nixosGenerate rec {
system = "x86_64-linux";
format = "amazon";
specialArgs = {
pkgs-stable = import inputs.nixpkgs-stable { inherit system; };
pkgs-caddy = import inputs.nixpkgs-caddy { inherit system; };
};
modules = import ./hosts/arrow/modules.nix { inherit inputs globals overlays; } ++ [
(
{ ... }:
{
boot.kernelPackages = inputs.nixpkgs.legacyPackages.x86_64-linux.linuxKernel.packages.linux_6_6;
amazonImage.sizeMB = 16 * 1024;
permitRootLogin = "prohibit-password";
boot.loader.systemd-boot.enable = inputs.nixpkgs.lib.mkForce false;
boot.loader.efi.canTouchEfiVariables = inputs.nixpkgs.lib.mkForce false;
services.amazon-ssm-agent.enable = true;
users.users.ssm-user.extraGroups = [ "wheel" ];
}
)
]; ];
}; };
in import ./apps { inherit pkgs; });
devShells = forAllSystems (system: # Package Neovim config into standalone package
let pkgs = import nixpkgs { inherit system overlays; }; x86_64-linux.neovim = neovim "x86_64-linux";
in { x86_64-darwin.neovim = neovim "x86_64-darwin";
aarch64-linux.neovim = neovim "aarch64-linux";
aarch64-darwin.neovim = neovim "aarch64-darwin";
};
# Programs that can be run by calling this flake
apps = forAllSystems (
system:
let
pkgs = import nixpkgs { inherit system overlays; };
in
import ./apps { inherit pkgs; }
);
# Development environments
devShells = forAllSystems (
system:
let
pkgs = import nixpkgs { inherit system overlays; };
in
{
# Used to run commands and edit files in this repo # Used to run commands and edit files in this repo
default = pkgs.mkShell { default = pkgs.mkShell {
buildInputs = with pkgs; [ git stylua nixfmt shfmt shellcheck ];
};
# Used for cloud and systems development and administration
devops = pkgs.mkShell {
buildInputs = with pkgs; [ buildInputs = with pkgs; [
git git
terraform stylua
consul nixfmt-rfc-style
vault shfmt
awscli2 shellcheck
google-cloud-sdk
ansible
kubectl
kubernetes-helm
kustomize
fluxcd
]; ];
}; };
}
);
}); checks = forAllSystems (
system:
let
pkgs = import nixpkgs { inherit system overlays; };
in
{
neovim =
pkgs.runCommand "neovim-check-health" { buildInputs = [ inputs.self.packages.${system}.neovim ]; }
''
mkdir -p $out
export HOME=$TMPDIR
nvim -c "checkhealth" -c "write $out/health.log" -c "quitall"
# Check for errors inside the health log
if $(grep "ERROR" $out/health.log); then
cat $out/health.log
exit 1
fi
'';
}
);
formatter = forAllSystems (
system:
let
pkgs = import nixpkgs { inherit system overlays; };
in
pkgs.nixfmt-rfc-style
);
# Templates for starting other projects quickly # Templates for starting other projects quickly
templates = rec { templates = rec {
@ -237,7 +468,10 @@
path = ./templates/haskell; path = ./templates/haskell;
description = "Haskell template"; description = "Haskell template";
}; };
rust = {
path = ./templates/rust;
description = "Rust template";
};
}; };
}; };
} }

View File

@ -1,32 +0,0 @@
{ inputs, globals, ... }:
with inputs;
nixos-generators.nixosGenerate {
inherit system;
format = "amazon";
modules = [
home-manager.nixosModules.home-manager
{
user = globals.user;
fullName = globals.fullName;
dotfilesRepo = globals.dotfilesRepo;
gitName = globals.gitName;
gitEmail = globals.gitEmail;
networking.hostName = "sheep";
gui.enable = false;
colorscheme = (import ../colorscheme/gruvbox);
passwordHash = null;
publicKey =
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB+AbmjGEwITk5CK9y7+Rg27Fokgj9QEjgc9wST6MA3s";
# AWS settings require this
permitRootLogin = "prohibit-password";
}
../../modules/common
../../modules/nixos
../../modules/common/services/sshd.nix
] ++ [
# Required to fix diskSize errors during build
({ ... }: { amazonImage.sizeMB = 16 * 1024; })
];
}

View File

@ -1,260 +0,0 @@
name: 'Terraform'
env:
AWS_ACCOUNT_NUMBER: ''
AWS_PLAN_ROLE_NAME: github_actions_plan
AWS_APPLY_ROLE_NAME: github_actions_admin
# Always required. Used for authenticating to AWS, but can also act as your
# default region if you don't want to specify in the provider configuration.
AWS_REGION: us-east-1
# You must change these to fit your project.
TF_VAR_project: change-me
TF_VAR_label: change-me
TF_VAR_owner: Your Name Here
# If storing Terraform in a subdirectory, specify it here.
TERRAFORM_DIRECTORY: .
# Pinned versions of tools to use.
# Check for new releases:
# - https://github.com/hashicorp/terraform/releases
# - https://github.com/fugue/regula/releases
# - https://github.com/terraform-linters/tflint/releases
TERRAFORM_VERSION: 1.2.6
REGULA_VERSION: 2.9.0
TFLINT_VERSION: 0.39.1
# Terraform configuration options
TERRAFORM_PARALLELISM: 10
# These variables are passed to Terraform based on GitHub information.
TF_VAR_repo: ${{ github.repository }}
# This workflow is triggered in the following ways.
on:
# Any push or merge to these branches.
push:
branches:
- dev
- prod
# Any pull request targeting these branches (plan only).
pull_request:
branches:
- dev
- prod
# Any manual trigger on these branches.
workflow_dispatch:
branches:
- dev
- prod
# -------------------------------------------------------------------
# The rest of this workflow can operate without adjustments. Edit the
# below content at your own risk!
# -------------------------------------------------------------------
# Used to connect to AWS IAM
permissions:
id-token: write
contents: read
pull-requests: write
# Only run one workflow at a time for each Terraform state. This prevents
# lockfile conflicts, especially during PR vs push.
concurrency: terraform-${{ github.base_ref || github.ref }}
jobs:
terraform:
name: 'Terraform'
# Change this if you need to run your deployment on-prem.
runs-on: ubuntu-latest
steps:
# Downloads the current repo code to the runner.
- name: Checkout Repo Code
uses: actions/checkout@v2
# Install Nix
- name: Install Nix
uses: cachix/install-nix-action@v17
# Build the image
- name: Build Image
run: nix build .#aws
# Login to AWS
- name: AWS Assume Role
uses: aws-actions/configure-aws-credentials@v1.6.1
with:
role-to-assume: ${{ env.AWS_ROLE_ARN }}
aws-region: ${{ env.AWS_REGION }}
# Exports all GitHub Secrets as environment variables prefixed by
# "TF_VAR_", which exposes them to Terraform. The name of each GitHub
# Secret must match its Terraform variable name exactly.
- name: Export Secrets to Terraform Variables
env:
ALL_SECRETS: ${{ toJson(secrets) }}
run: |
echo "$ALL_SECRETS" \
| jq "to_entries | .[] | \"TF_VAR_\" + ( .key | ascii_downcase ) + \"=\" + .value" \
| tr -d \" >> $GITHUB_ENV
# Installs the Terraform binary and some other accessory functions.
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
with:
terraform_version: ${{ env.TERRAFORM_VERSION }}
# Checks whether Terraform is formatted properly. If this fails, you
# should install the pre-commit hook.
- name: Check Formatting
run: |
terraform fmt -no-color -check -diff -recursive
# Downloads a Terraform code lint test.
- uses: terraform-linters/setup-tflint@v1
name: Setup TFLint
with:
tflint_version: v${{ env.TFLINT_VERSION }}
# Sets up linting with this codebase.
- name: Init TFLint
working-directory: ${{ env.TERRAFORM_DIRECTORY }}
run: tflint --init
# Lints the current code.
- name: Run TFLint
working-directory: ${{ env.TERRAFORM_DIRECTORY }}
run: |
tflint -f compact
find ./modules/* -type d -maxdepth 0 | xargs -I __ tflint -f compact --disable-rule=terraform_required_providers --disable-rule=terraform_required_version __
# Connects to remote state backend and download providers.
- name: Terraform Init
working-directory: ${{ env.TERRAFORM_DIRECTORY }}
run: |
terraform init \
-backend-config="role_arn=${{ env.AWS_STATE_ROLE_ARN }}" \
-backend-config="region=us-east-1" \
-backend-config="workspace_key_prefix=accounts/${{ env.AWS_ACCOUNT_NUMBER }}/${{ github.repository }}" \
-backend-config="key=state.tfstate" \
-backend-config="dynamodb_table=global-tf-state-lock"
# Set the Terraform Workspace to the current branch name.
- name: Set Terraform Workspace
working-directory: ${{ env.TERRAFORM_DIRECTORY }}
shell: bash
run: |
export WORKSPACE=${{ github.base_ref || github.ref_name }}
terraform workspace select ${WORKSPACE} || terraform workspace new $WORKSPACE
echo "TF_WORKSPACE=$(echo ${WORKSPACE} | sed 's/\//_/g')" >> $GITHUB_ENV
# Checks differences between current code and infrastructure state.
- name: Terraform Plan
id: plan
working-directory: ${{ env.TERRAFORM_DIRECTORY }}
run: |
terraform plan \
-input=false \
-no-color \
-out=tfplan \
-parallelism=${TERRAFORM_PARALLELISM} \
-var-file=variables-${TF_WORKSPACE}.tfvars
# Gets the results of the plan for pull requests.
- name: Terraform Show Plan
id: show
working-directory: ${{ env.TERRAFORM_DIRECTORY }}
run: terraform show -no-color tfplan
# Adds the results of the plan to the pull request.
- name: Comment Plan
uses: actions/github-script@v6
if: github.event_name == 'pull_request'
env:
STDOUT: "```terraform\n${{ steps.show.outputs.stdout }}```"
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
// 1. Retrieve existing bot comments for the PR
const { data: comments } = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
})
const botComment = comments.find(comment => {
return comment.user.type === 'Bot' && comment.body.includes('Terraform Format and Style')
})
// 2. Prepare format of the comment
const output = `#### Terraform Format and Style 🖌\`${{ steps.fmt.outcome }}\`
#### Terraform Initialization ⚙️\`${{ steps.init.outcome }}\`
#### Terraform Validation 🤖\`${{ steps.validate.outcome }}\`
<details><summary>Validation Output</summary>
\`\`\`\n
${{ steps.validate.outputs.stdout }}
\`\`\`
</details>
#### Terraform Plan 📖\`${{ steps.plan.outcome }}\`
<details><summary>Show Plan</summary>
\`\`\`\n
${process.env.PLAN}
\`\`\`
</details>
*Pusher: @${{ github.actor }}, Action: \`${{ github.event_name }}\`, Working Directory: \`${{ env.tf_actions_working_dir }}\`, Workflow: \`${{ github.workflow }}\`*`;
// 3. If we have a comment, update it, otherwise create a new one
if (botComment) {
github.rest.issues.updateComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: botComment.id,
body: output
})
} else {
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: output
})
}
# Downloads Regula and checks whether the plan meets compliance requirements.
- name: Regula Compliance Check
shell: bash
working-directory: ${{ env.TERRAFORM_DIRECTORY }}
run: |
REGULA_URL="https://github.com/fugue/regula/releases/download/v${REGULA_VERSION}/regula_${REGULA_VERSION}_Linux_x86_64.tar.gz"
curl -sL "$REGULA_URL" -o regula.tar.gz
tar xzf regula.tar.gz
terraform show -json tfplan | ./regula run
# Deploys infrastructure or changes to infrastructure.
- name: Terraform Apply
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
working-directory: ${{ env.TERRAFORM_DIRECTORY }}
run: |
terraform apply \
-auto-approve \
-input=false \
-parallelism=${TERRAFORM_PARALLELISM} \
tfplan

View File

@ -1,47 +0,0 @@
# The Staff
# ISO configuration for my USB drive
{ inputs, system, overlays, ... }:
with inputs;
nixos-generators.nixosGenerate {
inherit system;
format = "install-iso";
modules = [{
nixpkgs.overlays = overlays;
networking.hostName = "staff";
users.extraUsers.root.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB+AbmjGEwITk5CK9y7+Rg27Fokgj9QEjgc9wST6MA3s"
];
services.openssh = {
enable = true;
ports = [ 22 ];
allowSFTP = true;
settings = {
GatewayPorts = "no";
X11Forwarding = false;
PasswordAuthentication = false;
PermitRootLogin = "yes";
};
};
environment.systemPackages =
let pkgs = import inputs.nixpkgs { inherit system overlays; };
in with pkgs; [
git
vim
wget
curl
(import ../../modules/common/neovim/package {
inherit pkgs;
# colors = import ../../colorscheme/gruvbox.dark.neovimConfig {
# inherit pkgs;
# };
})
];
nix.extraOptions = ''
experimental-features = nix-command flakes
warn-dirty = false
'';
}];
}

26
hosts/README.md Normal file
View File

@ -0,0 +1,26 @@
# Hosts
These are the individual machines managed by this flake.
| Host | Purpose |
| --- | --- |
| [aws](./aws/default.nix) | AWS AMI |
| [staff](./staff/default.nix) | Live USB stick |
| [flame](./flame/default.nix) | Oracle cloud server |
| [hydra](./hydra/default.nix) | WSL config |
| [lookingglass](./lookingglass/default.nix) | Work MacBook |
| [swan](./swan/default.nix) | Home server |
| [tempest](./tempest/default.nix) | Linux desktop |
## NixOS Workflow
Each hosts file is imported into [nixosConfigurations](../flake.nix) and passed
the arguments from the flake (inputs, globals, overlays). The `nixosSystem`
function in that hosts file will be called by the NixOS module system during a
nixos-rebuild.
Each module in the each host's `modules` list is either a function or an
attrset. The attrsets will simply apply values to options that have been
declared in the config by other modules. Meanwhile, the functions will be
passed various arguments, several of which you will see listed at the top of
each of their files.

98
hosts/arrow/aws/ec2.tf Normal file
View File

@ -0,0 +1,98 @@
resource "aws_instance" "instance" {
ami = aws_ami.image.id
iam_instance_profile = aws_iam_instance_profile.instance.name
instance_type = var.ec2_size
vpc_security_group_ids = [aws_security_group.instance.id]
tags = {
Name = "aws-nixos"
}
lifecycle {
create_before_destroy = true
}
}
resource "aws_ec2_instance_state" "instance" {
instance_id = aws_instance.instance.id
state = "running"
}
data "aws_vpc" "vpc" {
default = true
}
resource "aws_security_group" "instance" {
name = "aws-nixos"
description = "Allow SSH and HTTPS"
vpc_id = data.aws_vpc.vpc.id
ingress {
description = "Ping"
from_port = -1
to_port = -1
protocol = "icmp"
cidr_blocks = ["0.0.0.0/0"]
}
ingress {
description = "SSH"
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
ingress {
description = "HTTPS"
from_port = 443
to_port = 443
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
ipv6_cidr_blocks = ["::/0"]
}
}
# Setup IAM for the instance to use SSM
data "aws_iam_policy_document" "ec2_assume_role" {
statement {
actions = ["sts:AssumeRole"]
principals {
type = "Service"
identifiers = ["ec2.amazonaws.com"]
}
}
}
data "aws_iam_policy_document" "instance_profile" {
statement {
actions = [
"s3:ListAllMyBuckets",
]
resources = ["*"]
}
}
resource "aws_iam_role" "instance_profile" {
name = "nixos"
assume_role_policy = data.aws_iam_policy_document.ec2_assume_role.json
inline_policy {
name = "instance-profile"
policy = data.aws_iam_policy_document.instance_profile.json
}
}
resource "aws_iam_role_policy_attachment" "instance_ssm" {
role = aws_iam_role.instance_profile.name
policy_arn = "arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore"
}
resource "aws_iam_instance_profile" "instance" {
name = "nixos"
role = aws_iam_role.instance_profile.name
}

View File

@ -1,13 +1,23 @@
locals { # locals {
image_file = one(fileset(path.root, "result/nixos-amazon-image-*.vhd")) # image_file = one(fileset(path.root, "../../../result/nixos-amazon-image-*.vhd"))
# }
#
# # Upload image to S3
# resource "aws_s3_object" "image" {
# bucket = var.images_bucket
# key = basename(local.image_file)
# source = local.image_file
# etag = filemd5(local.image_file)
# }
# Use existing image in S3
data "aws_s3_object" "image" {
bucket = var.images_bucket
key = "arrow.vhd"
} }
# Upload to S3 resource "terraform_data" "image_replacement" {
resource "aws_s3_object" "image" { input = data.aws_s3_object.image.etag
bucket = "your_bucket_name"
key = basename(local.image_file)
source = local.image_file
etag = filemd5(local.image_file)
} }
# Setup IAM access for the VM Importer # Setup IAM access for the VM Importer
@ -29,8 +39,8 @@ data "aws_iam_policy_document" "vmimport" {
"s3:ListBucket", "s3:ListBucket",
] ]
resources = [ resources = [
"arn:aws:s3:::${aws_s3_object.image.bucket}", "arn:aws:s3:::${data.aws_s3_object.image.bucket}",
"arn:aws:s3:::${aws_s3_object.image.bucket}/*", "arn:aws:s3:::${data.aws_s3_object.image.bucket}/*",
] ]
} }
statement { statement {
@ -58,23 +68,28 @@ resource "aws_ebs_snapshot_import" "image" {
disk_container { disk_container {
format = "VHD" format = "VHD"
user_bucket { user_bucket {
s3_bucket = aws_s3_object.image.bucket s3_bucket = data.aws_s3_object.image.bucket
s3_key = aws_s3_object.image.key s3_key = data.aws_s3_object.image.key
} }
} }
role_name = aws_iam_role.vmimport.name role_name = aws_iam_role.vmimport.name
lifecycle {
replace_triggered_by = [terraform_data.image_replacement]
}
} }
# Convert to AMI # Convert to AMI
resource "aws_ami" "image" { resource "aws_ami" "image" {
description = "Created with NixOS." description = "Created with NixOS."
name = replace(basename(local.image_file), "/\\.vhd$/", "") name = replace(basename(data.aws_s3_object.image.key), "/\\.vhd$/", "")
virtualization_type = "hvm" virtualization_type = "hvm"
root_device_name = "/dev/xvda"
ena_support = true
ebs_block_device { ebs_block_device {
device_name = "/dev/xvda" device_name = "/dev/xvda"
snapshot_id = aws_ebs_snapshot_import.image.id snapshot_id = aws_ebs_snapshot_import.image.id
volume_size = 8 volume_size = 17
} }
} }

13
hosts/arrow/aws/main.tf Normal file
View File

@ -0,0 +1,13 @@
terraform {
backend "s3" {
region = "us-east-1"
dynamodb_table = "terraform-state-lock"
}
required_version = ">= 1.0.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "5.42.0"
}
}
}

View File

@ -0,0 +1,3 @@
output "host_ip" {
value = aws_instance.instance.public_ip
}

View File

@ -0,0 +1,10 @@
variable "ec2_size" {
type = string
description = "Size of instance to launch"
default = "t3a.small" # 2 GB RAM ($14/mo)
}
variable "images_bucket" {
description = "Name of the bucket in which to store the NixOS VM images."
type = string
}

41
hosts/arrow/default.nix Normal file
View File

@ -0,0 +1,41 @@
# The Arrow
# System configuration for temporary VM
{
inputs,
globals,
overlays,
...
}:
inputs.nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
specialArgs = {
pkgs-caddy = import inputs.nixpkgs-caddy { inherit system; };
};
modules = import ./modules.nix { inherit inputs globals overlays; } ++ [
{
# This is the root filesystem containing NixOS
fileSystems."/" = {
device = "/dev/disk/by-label/nixos";
fsType = "ext4";
};
# This is the boot filesystem for Grub
fileSystems."/boot" = {
device = "/dev/disk/by-label/boot";
fsType = "vfat";
};
virtualisation.vmVariant = {
virtualisation.forwardPorts = [
{
from = "host";
host.port = 2222;
guest.port = 22;
}
];
};
}
];
}

32
hosts/arrow/modules.nix Normal file
View File

@ -0,0 +1,32 @@
{
inputs,
globals,
overlays,
}:
[
globals
inputs.home-manager.nixosModules.home-manager
{
nixpkgs.overlays = overlays;
networking.hostName = "arrow";
physical = false;
server = true;
gui.enable = false;
theme.colors = (import ../../colorscheme/gruvbox).dark;
publicKeys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB+AbmjGEwITk5CK9y7+Rg27Fokgj9QEjgc9wST6MA3s personal"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKpPU2G9rSF8Q6waH62IJexDCQ6lY+8ZyVufGE3xMDGw deploy"
];
identityFile = "/home/${globals.user}/.ssh/id_ed25519";
cloudflare.enable = true;
services.openssh.enable = true;
services.caddy.enable = true;
services.n8n.enable = true;
# nix-index seems to eat up too much memory for Vultr
home-manager.users.${globals.user}.programs.nix-index.enable = inputs.nixpkgs.lib.mkForce false;
}
../../modules/common
../../modules/nixos
]

78
hosts/arrow/vultr/main.tf Normal file
View File

@ -0,0 +1,78 @@
terraform {
backend "s3" {
bucket = "noahmasur-terraform"
key = "arrow.tfstate"
region = "auto"
skip_credentials_validation = true
skip_metadata_api_check = true
skip_region_validation = true
skip_requesting_account_id = true
skip_s3_checksum = true
use_path_style = true
/*
ENVIRONMENT VARIABLES
---------------------
AWS_ACCESS_KEY_ID - R2 token
AWS_SECRET_ACCESS_KEY - R2 secret
AWS_ENDPOINT_URL_S3 - R2 location: https://ACCOUNT_ID.r2.cloudflarestorage.com
*/
}
required_version = ">= 1.0.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "5.42.0"
}
vultr = {
source = "vultr/vultr"
version = "2.19.0"
}
}
}
variable "vultr_api_key" {
type = string
description = "API key for Vultr management"
sensitive = true
}
# https://api.vultr.com/v2/plans
variable "vultr_plan" {
type = string
description = "Size of instance to launch"
default = "vc2-1c-2gb" # 55 GB SSD ($10/mo)
}
provider "aws" {
region = "auto"
skip_credentials_validation = true
skip_metadata_api_check = true
skip_region_validation = true
skip_requesting_account_id = true
}
provider "vultr" {
api_key = var.vultr_api_key
}
resource "vultr_iso_private" "image" {
# url = "https://${var.cloudflare_account_id}.r2.cloudflarestorage.com/${data.aws_s3_bucket.images.id}/${aws_s3_object.image.key}"
url = "https://arrow-images.masu.rs/arrow.iso"
}
resource "vultr_instance" "arrow" {
plan = var.vultr_plan
region = "ewr"
iso_id = vultr_iso_private.image.id
label = "arrow"
tags = ["arrow"]
enable_ipv6 = false
disable_public_ipv4 = false
backups = "disabled"
ddos_protection = false
activation_email = false
}
output "host_ip" {
value = vultr_instance.arrow.main_ip
}

View File

@ -1,44 +1,98 @@
# The Flame # The Flame
# System configuration for an Oracle free server # System configuration for an Oracle free server
# See [readme](../README.md) to explain how this file works.
# How to install: # How to install:
# https://blog.korfuri.fr/posts/2022/08/nixos-on-an-oracle-free-tier-ampere-machine/ # https://blog.korfuri.fr/posts/2022/08/nixos-on-an-oracle-free-tier-ampere-machine/
# These days, probably use nixos-anywhere instead.
{ inputs, globals, overlays, ... }: {
inputs,
globals,
overlays,
...
}:
with inputs; inputs.nixpkgs.lib.nixosSystem rec {
nixpkgs.lib.nixosSystem {
system = "aarch64-linux"; system = "aarch64-linux";
specialArgs = { }; specialArgs = {
pkgs-stable = import inputs.nixpkgs-stable { inherit system; };
pkgs-caddy = import inputs.nixpkgs-caddy { inherit system; };
};
modules = [ modules = [
./hardware-configuration.nix globals
inputs.home-manager.nixosModules.home-manager
../../modules/common ../../modules/common
../../modules/nixos ../../modules/nixos
(removeAttrs globals [ "mail.server" ])
wsl.nixosModules.wsl
home-manager.nixosModules.home-manager
{ {
server = true;
gui.enable = false;
theme = { colors = (import ../../colorscheme/gruvbox).dark; };
nixpkgs.overlays = overlays; nixpkgs.overlays = overlays;
wsl.enable = false;
caddy.enable = true;
# FQDNs for various services # Hardware
server = true;
networking.hostName = "flame"; networking.hostName = "flame";
bookServer = "books.masu.rs";
# streamServer = "stream.masu.rs";
nextcloudServer = "cloud.masu.rs";
transmissionServer = "download.masu.rs";
metricsServer = "metrics.masu.rs";
vaultwardenServer = "vault.masu.rs";
giteaServer = "git.masu.rs";
# Disable passwords, only use SSH key # Not sure what's necessary but too afraid to remove anything
publicKey = imports = [ (inputs.nixpkgs + "/nixos/modules/profiles/qemu-guest.nix") ];
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB+AbmjGEwITk5CK9y7+Rg27Fokgj9QEjgc9wST6MA3s"; boot.initrd.availableKernelModules = [
"xhci_pci"
"virtio_pci"
"usbhid"
];
# File systems must be declared in order to boot
# This is the root filesystem containing NixOS
# I forgot to set a clean label for it
fileSystems."/" = {
device = "/dev/disk/by-uuid/e1b6bd50-306d-429a-9f45-78f57bc597c3";
fsType = "ext4";
};
# This is the boot filesystem for systemd-boot
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/D5CA-237A";
fsType = "vfat";
};
# Theming
# Server doesn't require GUI
gui.enable = false;
# Still require colors for programs like Neovim, K9S
theme = {
colors = (import ../../colorscheme/gruvbox).dark;
};
# Programs and services
atuin.enable = true;
cloudflare.enable = true; # Proxy traffic with Cloudflare
dotfiles.enable = true; # Clone dotfiles
neovim.enable = true;
giteaRunner.enable = true;
services.caddy.enable = true;
services.grafana.enable = true;
services.thelounge.enable = true;
services.openssh.enable = true;
services.victoriametrics.enable = true;
services.influxdb2.enable = true;
services.gitea.enable = true;
services.vaultwarden.enable = true;
services.minecraft-server.enable = true; # Setup Minecraft server
services.n8n.enable = true;
services.ntfy-sh.enable = true;
services.postgresql.enable = true;
services.uptime-kuma.enable = true;
system.autoUpgrade.enable = true;
# Allows private remote access over the internet
cloudflareTunnel = {
enable = true;
id = "bd250ee1-ed2e-42d2-b627-039f1eb5a4d2";
credentialsFile = ../../private/cloudflared-flame.age;
ca = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBK/6oyVqjFGX3Uvrc3VS8J9sphxzAnRzKC85xgkHfYgR3TK6qBGXzHrknEj21xeZrr3G2y1UsGzphWJd9ZfIcdA= open-ssh-ca@cloudflareaccess.org";
};
# Nextcloud backup config # Nextcloud backup config
backup.s3 = { backup.s3 = {
@ -47,52 +101,39 @@ nixpkgs.lib.nixosSystem {
accessKeyId = "0026b0e73b2e2c80000000005"; accessKeyId = "0026b0e73b2e2c80000000005";
}; };
# Grant access to Jellyfin directories from Nextcloud # Disable passwords, only use SSH key
users.users.nextcloud.extraGroups = [ "jellyfin" ]; publicKeys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB+AbmjGEwITk5CK9y7+Rg27Fokgj9QEjgc9wST6MA3s personal"
];
# Wireguard config for Transmission # # Wireguard config for Transmission
wireguard.enable = true; # wireguard.enable = true;
networking.wireguard.interfaces.wg0 = { # networking.wireguard.interfaces.wg0 = {
#
# The local IPs for this machine within the Wireguard network # # The local IPs for this machine within the Wireguard network
# Any inbound traffic bound for these IPs should be kept on localhost # # Any inbound traffic bound for these IPs should be kept on localhost
ips = [ "10.66.13.200/32" "fc00:bbbb:bbbb:bb01::3:dc7/128" ]; # ips = [ "10.66.13.200/32" "fc00:bbbb:bbbb:bb01::3:dc7/128" ];
#
peers = [{ # peers = [{
#
# Identity of Wireguard target peer (VPN) # # Identity of Wireguard target peer (VPN)
publicKey = "bOOP5lIjqCdDx5t+mP/kEcSbHS4cZqE0rMlBI178lyY="; # publicKey = "bOOP5lIjqCdDx5t+mP/kEcSbHS4cZqE0rMlBI178lyY=";
#
# The public internet address of the target peer # # The public internet address of the target peer
endpoint = "86.106.143.132:51820"; # endpoint = "86.106.143.132:51820";
#
# Which outgoing IP ranges should be sent through Wireguard # # Which outgoing IP ranges should be sent through Wireguard
allowedIPs = [ "0.0.0.0/0" "::0/0" ]; # allowedIPs = [ "0.0.0.0/0" "::0/0" ];
#
# Send heartbeat signal within the network # # Send heartbeat signal within the network
persistentKeepalive = 25; # persistentKeepalive = 25;
#
}]; # }];
#
}; # };
# VPN port forwarding
services.transmission.settings.peer-port = 57599;
# Grant access to Transmission directories from Jellyfin
users.users.jellyfin.extraGroups = [ "transmission" ];
# Proxy traffic with Cloudflare
cloudflare.enable = true;
# Setup Minecraft server
gaming.minecraft-server.enable = true;
# Clone dotfiles
dotfiles.enable = true;
neovim.enable = true;
# # VPN port forwarding
# services.transmission.settings.peer-port = 57599;
} }
]; ];
} }

View File

@ -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.
{ lib, 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/e1b6bd50-306d-429a-9f45-78f57bc597c3";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/D5CA-237A";
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.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.eth0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
}

View File

@ -1,31 +1,35 @@
# The Hydra # The Hydra
# System configuration for WSL # System configuration for WSL
{ inputs, globals, overlays, ... }: # See [readme](../README.md) to explain how this file works.
with inputs; {
inputs,
globals,
overlays,
...
}:
nixpkgs.lib.nixosSystem { inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { }; specialArgs = { };
modules = [ modules = [
../../modules/common ../../modules/common
../../modules/nixos ../../modules/nixos
../../modules/wsl
globals globals
wsl.nixosModules.wsl inputs.wsl.nixosModules.wsl
home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
{ {
networking.hostName = "hydra"; networking.hostName = "hydra";
nixpkgs.overlays = overlays; nixpkgs.overlays = overlays;
# Set registry to flake packages, used for nix X commands
nix.registry.nixpkgs.flake = nixpkgs;
identityFile = "/home/${globals.user}/.ssh/id_ed25519"; identityFile = "/home/${globals.user}/.ssh/id_ed25519";
gui.enable = false; gui.enable = false;
theme = { theme = {
colors = (import ../../colorscheme/gruvbox).dark; colors = (import ../../colorscheme/gruvbox).dark;
dark = true; dark = true;
}; };
passwordHash = nixpkgs.lib.fileContents ../../password.sha512; passwordHash = inputs.nixpkgs.lib.fileContents ../../misc/password.sha512;
wsl = { wsl = {
enable = true; enable = true;
wslConf.automount.root = "/mnt"; wslConf.automount.root = "/mnt";
@ -33,8 +37,7 @@ nixpkgs.lib.nixosSystem {
startMenuLaunchers = true; startMenuLaunchers = true;
nativeSystemd = true; nativeSystemd = true;
wslConf.network.generateResolvConf = true; # Turn off if it breaks VPN wslConf.network.generateResolvConf = true; # Turn off if it breaks VPN
interop.includePath = interop.includePath = false; # Including Windows PATH will slow down Neovim command mode
false; # Including Windows PATH will slow down Neovim command mode
}; };
neovim.enable = true; neovim.enable = true;
@ -42,7 +45,6 @@ nixpkgs.lib.nixosSystem {
mail.aerc.enable = true; mail.aerc.enable = true;
mail.himalaya.enable = true; mail.himalaya.enable = true;
dotfiles.enable = true; dotfiles.enable = true;
nixlang.enable = true;
lua.enable = true; lua.enable = true;
} }
]; ];

View File

@ -1,50 +1,59 @@
# The Looking Glass # The Looking Glass
# System configuration for my work Macbook # System configuration for my work Macbook
{ inputs, globals, overlays, ... }: {
inputs,
globals,
overlays,
...
}:
with inputs; inputs.darwin.lib.darwinSystem {
system = "aarch64-darwin";
darwin.lib.darwinSystem {
system = "x86_64-darwin";
specialArgs = { }; specialArgs = { };
modules = [ modules = [
../../modules/common ../../modules/common
../../modules/darwin ../../modules/darwin
(globals // { (
user = "Noah.Masur"; globals
gitName = "Noah-Masur_1701"; // rec {
gitEmail = "Noah.Masur@take2games.com"; user = "Noah.Masur";
}) gitName = "Noah-Masur_1701";
home-manager.darwinModules.home-manager gitEmail = "${user}@take2games.com";
}
)
inputs.home-manager.darwinModules.home-manager
inputs.mac-app-util.darwinModules.default
{ {
networking.hostName = "noah-masur-mac"; nixpkgs.overlays = [ inputs.firefox-darwin.overlay ] ++ overlays;
networking.hostName = "lookingglass";
identityFile = "/Users/Noah.Masur/.ssh/id_ed25519"; identityFile = "/Users/Noah.Masur/.ssh/id_ed25519";
gui.enable = true; gui.enable = true;
theme = { theme = {
colors = (import ../../colorscheme/gruvbox).dark; colors = (import ../../colorscheme/gruvbox-dark).dark;
dark = true; dark = true;
}; };
mail.user = globals.user; mail.user = globals.user;
nixpkgs.overlays = [ firefox-darwin.overlay ] ++ overlays; atuin.enable = true;
# Set registry to flake packages, used for nix X commands
nix.registry.nixpkgs.flake = nixpkgs;
charm.enable = true; charm.enable = true;
neovim.enable = true; neovim.enable = true;
mail.enable = true; mail.enable = true;
mail.aerc.enable = true; mail.aerc.enable = true;
mail.himalaya.enable = true; mail.himalaya.enable = false;
kitty.enable = true; kitty.enable = true;
discord.enable = true; discord.enable = true;
firefox.enable = true; firefox.enable = true;
dotfiles.enable = true; dotfiles.enable = true;
nixlang.enable = true;
terraform.enable = true; terraform.enable = true;
python.enable = true; python.enable = true;
rust.enable = true;
lua.enable = true; lua.enable = true;
obsidian.enable = true;
kubernetes.enable = true; kubernetes.enable = true;
_1password.enable = true; _1password.enable = true;
slack.enable = true; slack.enable = true;
wezterm.enable = true;
yt-dlp.enable = true;
} }
]; ];
} }

53
hosts/staff/default.nix Normal file
View File

@ -0,0 +1,53 @@
# The Staff
# ISO configuration for my USB drive
{
inputs,
system,
overlays,
...
}:
inputs.nixos-generators.nixosGenerate {
inherit system;
format = "install-iso";
modules = [
{
nixpkgs.overlays = overlays;
networking.hostName = "staff";
users.extraUsers.root.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB+AbmjGEwITk5CK9y7+Rg27Fokgj9QEjgc9wST6MA3s"
];
services.openssh = {
enable = true;
ports = [ 22 ];
allowSFTP = true;
settings = {
GatewayPorts = "no";
X11Forwarding = false;
PasswordAuthentication = false;
PermitRootLogin = "yes";
};
};
environment.systemPackages =
let
pkgs = import inputs.nixpkgs { inherit system overlays; };
in
with pkgs;
[
git
vim
wget
curl
(import ../../modules/common/neovim/package {
inherit pkgs;
colors = (import ../../colorscheme/gruvbox).dark;
})
];
nix.extraOptions = ''
experimental-features = nix-command flakes
warn-dirty = false
'';
}
];
}

View File

@ -1,49 +1,134 @@
# The Swan # The Swan
# System configuration for my home NAS server # System configuration for my home NAS server
{ inputs, globals, overlays, ... }: {
inputs,
globals,
overlays,
...
}:
with inputs; inputs.nixpkgs.lib.nixosSystem rec {
nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { }; specialArgs = {
pkgs-stable = import inputs.nixpkgs-stable { inherit system; };
pkgs-caddy = import inputs.nixpkgs-caddy { inherit system; };
};
modules = [ modules = [
./hardware-configuration.nix globals
inputs.home-manager.nixosModules.home-manager
inputs.disko.nixosModules.disko
../../modules/common ../../modules/common
../../modules/nixos ../../modules/nixos
(removeAttrs globals [ "mail.server" ])
wsl.nixosModules.wsl
home-manager.nixosModules.home-manager
disko.nixosModules.disko
{ {
nixpkgs.overlays = overlays;
# Hardware
server = true; server = true;
physical = true;
networking.hostName = "swan"; networking.hostName = "swan";
# head -c 8 /etc/machine-id # Not sure what's necessary but too afraid to remove anything
boot.initrd.availableKernelModules = [
"xhci_pci"
"ahci"
"nvme"
"usb_storage"
"sd_mod"
];
# Required for transcoding
boot.initrd.kernelModules = [ "amdgpu" ];
boot.kernelParams = [
"radeon.si_support=0"
"amdgpu.si_support=1"
"radeon.cik_support=0"
"amdgpu.cik_support=1"
"amdgpu.dc=1"
];
# Required binary blobs to boot on this machine
hardware.enableRedistributableFirmware = true;
# Prioritize efficiency over performance
powerManagement.cpuFreqGovernor = "powersave";
# Allow firmware updates
hardware.cpu.intel.updateMicrocode = true;
# ZFS
zfs.enable = true;
# Generated with: head -c 8 /etc/machine-id
networking.hostId = "600279f4"; # Random ID required for ZFS networking.hostId = "600279f4"; # Random ID required for ZFS
zfs.enable = true; # Sets root ext4 filesystem instead of declaring it manually
disko = { disko = {
enableConfig = true; enableConfig = true;
devices = (import ../../disks/root.nix { disk = "/dev/nvme0n1"; }); devices = (import ../../disks/root.nix { disk = "/dev/nvme0n1"; });
# // (import ../../disks/zfs.nix {
# pool = "tank";
# disks = [ "/dev/sda" "/dev/sdb" "/dev/sdc" ];
# });
}; };
boot.zfs.extraPools = [ "tank" ];
zramSwap.enable = true;
swapDevices = [
{
device = "/swapfile";
size = 4 * 1024; # 4 GB
}
];
boot.zfs = {
# Automatically load the ZFS pool on boot
extraPools = [ "tank" ];
# Only try to decrypt datasets with keyfiles
requestEncryptionCredentials = [
"tank/archive"
"tank/generic"
"tank/nextcloud"
"tank/generic/git"
];
# If password is requested and fails, continue to boot eventually
passwordTimeout = 300;
};
# Theming
# Server doesn't require GUI
gui.enable = false; gui.enable = false;
theme = { colors = (import ../../colorscheme/gruvbox).dark; };
nixpkgs.overlays = overlays;
neovim.enable = true;
caddy.enable = true;
streamServer = "stream.masu.rs";
nextcloudServer = "cloud.masu.rs";
bookServer = "books.masu.rs";
samba.enable = true;
# Still require colors for programs like Neovim, K9S
theme = {
colors = (import ../../colorscheme/gruvbox-dark).dark;
};
# Programs and services
atuin.enable = true;
neovim.enable = true;
cloudflare.enable = true;
dotfiles.enable = true;
arrs.enable = true;
filebrowser.enable = true;
services.audiobookshelf.enable = true;
services.bind.enable = true;
services.caddy.enable = true;
services.jellyfin.enable = true;
services.nextcloud.enable = true;
services.calibre-web.enable = true;
services.openssh.enable = true;
services.prometheus.enable = false;
services.vmagent.enable = true;
services.samba.enable = true;
services.paperless.enable = true;
services.postgresql.enable = true;
system.autoUpgrade.enable = false;
# Allows private remote access over the internet
cloudflareTunnel = {
enable = true;
id = "646754ac-2149-4a58-b51a-e1d0a1f3ade2";
credentialsFile = ../../private/cloudflared-swan.age;
ca = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCHF/UMtJqPFrf6f6GRY0ZFnkCW7b6sYgUTjTtNfRj1RdmNic1NoJZql7y6BrqQinZvy7nsr1UFDNWoHn6ah3tg= open-ssh-ca@cloudflareaccess.org";
};
# Send regular backups and litestream for DBs to an S3-like bucket
backup.s3 = { backup.s3 = {
endpoint = "s3.us-west-002.backblazeb2.com"; endpoint = "s3.us-west-002.backblazeb2.com";
bucket = "noahmasur-backup"; bucket = "noahmasur-backup";
@ -51,14 +136,9 @@ nixpkgs.lib.nixosSystem {
}; };
# Disable passwords, only use SSH key # Disable passwords, only use SSH key
publicKey = publicKeys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB+AbmjGEwITk5CK9y7+Rg27Fokgj9QEjgc9wST6MA3s"; "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB+AbmjGEwITk5CK9y7+Rg27Fokgj9QEjgc9wST6MA3s personal"
];
# Clone dotfiles
dotfiles.enable = true;
# services.nfs.server.enable = true;
} }
]; ];
} }

View File

@ -1,39 +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 =
[ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
# fileSystems."/" = {
# device = "/dev/disk/by-label/nixos";
# fsType = "ext4";
# };
#
# fileSystems."/boot" = {
# device = "/dev/disk/by-label/boot";
# 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.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
hardware.cpu.intel.updateMicrocode =
lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@ -1,41 +1,108 @@
# The Tempest # The Tempest
# System configuration for my desktop # System configuration for my desktop
{ inputs, globals, overlays, ... }: {
inputs,
globals,
overlays,
...
}:
with inputs; inputs.nixpkgs.lib.nixosSystem rec {
nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { }; specialArgs = {
pkgs-stable = import inputs.nixpkgs-stable { inherit system; };
pkgs-caddy = import inputs.nixpkgs-caddy { inherit system; };
};
modules = [ modules = [
./hardware-configuration.nix globals
inputs.home-manager.nixosModules.home-manager
../../modules/common ../../modules/common
../../modules/nixos ../../modules/nixos
globals
wsl.nixosModules.wsl
home-manager.nixosModules.home-manager
{ {
nixpkgs.overlays = overlays;
# Hardware
physical = true; physical = true;
networking.hostName = "tempest"; networking.hostName = "tempest";
nixpkgs.overlays = [ nur.overlay ] ++ overlays;
# Set registry to flake packages, used for nix X commands # Not sure what's necessary but too afraid to remove anything
nix.registry.nixpkgs.flake = nixpkgs; boot.initrd.availableKernelModules = [
identityFile = "/home/${globals.user}/.ssh/id_ed25519"; "nvme"
"xhci_pci"
"ahci"
"usb_storage"
"usbhid"
"sd_mod"
];
# Graphics and VMs
boot.initrd.kernelModules = [ "amdgpu" ];
boot.kernelModules = [ "kvm-amd" ];
services.xserver.videoDrivers = [ "amdgpu" ];
# Required binary blobs to boot on this machine
hardware.enableRedistributableFirmware = true;
# Prioritize performance over efficiency
powerManagement.cpuFreqGovernor = "performance";
# Allow firmware updates
hardware.cpu.amd.updateMicrocode = true;
# Helps reduce GPU fan noise under idle loads
hardware.fancontrol.enable = true;
hardware.fancontrol.config = ''
# Configuration file generated by pwmconfig, changes will be lost
INTERVAL=10
DEVPATH=hwmon0=devices/pci0000:00/0000:00:03.1/0000:06:00.0/0000:07:00.0/0000:08:00.0
DEVNAME=hwmon0=amdgpu
FCTEMPS=hwmon0/pwm1=hwmon0/temp1_input
FCFANS= hwmon0/pwm1=hwmon0/fan1_input
MINTEMP=hwmon0/pwm1=50
MAXTEMP=hwmon0/pwm1=70
MINSTART=hwmon0/pwm1=100
MINSTOP=hwmon0/pwm1=10
MINPWM=hwmon0/pwm1=10
MAXPWM=hwmon0/pwm1=240
'';
# File systems must be declared in order to boot
# This is the root filesystem containing NixOS
fileSystems."/" = {
device = "/dev/disk/by-label/nixos";
fsType = "ext4";
};
# This is the boot filesystem for Grub
fileSystems."/boot" = {
device = "/dev/disk/by-label/boot";
fsType = "vfat";
};
# Secrets must be prepared ahead before deploying
passwordHash = inputs.nixpkgs.lib.fileContents ../../misc/password.sha512;
# Theming
# Turn on all features related to desktop and graphical applications
gui.enable = true; gui.enable = true;
# Set the system-wide theme, also used for non-graphical programs
theme = { theme = {
colors = (import ../../colorscheme/gruvbox).dark; colors = (import ../../colorscheme/gruvbox-dark).dark;
dark = true; dark = true;
}; };
wallpaper = "${wallpapers}/gruvbox/road.jpg"; wallpaper = "${inputs.wallpapers}/gruvbox/road.jpg";
gtk.theme.name = nixpkgs.lib.mkDefault "Adwaita-dark"; gtk.theme.name = inputs.nixpkgs.lib.mkDefault "Adwaita-dark";
passwordHash = nixpkgs.lib.fileContents ../../password.sha512;
wsl.enable = false;
publicKey = null;
# Programs and services
atuin.enable = true;
charm.enable = true; charm.enable = true;
neovim.enable = true; neovim.enable = true;
media.enable = true; media.enable = true;
dotfiles.enable = true;
firefox.enable = true; firefox.enable = true;
kitty.enable = true; kitty.enable = true;
_1password.enable = true; _1password.enable = true;
@ -46,19 +113,35 @@ nixpkgs.lib.nixosSystem {
mail.aerc.enable = true; mail.aerc.enable = true;
mail.himalaya.enable = true; mail.himalaya.enable = true;
keybase.enable = true; keybase.enable = true;
# mullvad.enable = true; mullvad.enable = false;
nixlang.enable = true; rust.enable = true;
dotfiles.enable = true; terraform.enable = true;
wezterm.enable = true;
yt-dlp.enable = true; yt-dlp.enable = true;
gaming = { gaming = {
dwarf-fortress.enable = true;
enable = true; enable = true;
steam.enable = true; steam.enable = true;
moonlight.enable = true;
legendary.enable = true; legendary.enable = true;
lutris.enable = true; lutris.enable = true;
leagueoflegends.enable = true; ryujinx.enable = true;
};
services.vmagent.enable = true; # Enables Prometheus metrics
services.openssh.enable = true; # Required for Cloudflare tunnel and identity file
# Allows private remote access over the internet
cloudflareTunnel = {
enable = true;
id = "ac133a82-31fb-480c-942a-cdbcd4c58173";
credentialsFile = ../../private/cloudflared-tempest.age;
ca = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPY6C0HmdFCaxYtJxFr3qV4/1X4Q8KrYQ1hlme3u1hJXK+xW+lc9Y9glWHrhiTKilB7carYTB80US0O47gI5yU4= open-ssh-ca@cloudflareaccess.org";
}; };
# Allows requests to force machine to wake up
# This network interface might change, needs to be set specifically for each machine.
# Or set usePredictableInterfaceNames = false
networking.interfaces.enp5s0.wakeOnLan.enable = true;
} }
]; ];
} }

View File

@ -1,40 +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, modulesPath, ... }:
{
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot.initrd.availableKernelModules =
[ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ "amdgpu" ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
services.xserver.videoDrivers = [ "amdgpu" ];
fileSystems."/" = {
device = "/dev/disk/by-label/nixos";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-label/boot";
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.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp5s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true;
powerManagement.cpuFreqGovernor = lib.mkDefault "performance";
hardware.cpu.amd.updateMicrocode =
lib.mkDefault config.hardware.enableRedistributableFirmware;
}

21
misc/README.md Normal file
View File

@ -0,0 +1,21 @@
# Miscellaneous
These files contain important data sourced by the configuration, or simply
information to store for safekeeping later.
---
Creating hashed password for [password.sha512](./password.sha512):
```
mkpasswd -m sha-512
```
---
Getting key for [public-keys](./public-keys):
```
ssh-keyscan -t ed25519 <hostname>
```

23
misc/libratbag-profile Normal file
View File

@ -0,0 +1,23 @@
Profile 1: (active)
Name: n/a
Report Rate: 1000Hz
Resolutions:
0: 400dpi (active) (default)
1: 800dpi
2: 1600dpi
3: 2400dpi
4: 0dpi
Button: 0 is mapped to 'button 1'
Button: 1 is mapped to 'button 2'
Button: 2 is mapped to 'button 3'
Button: 3 is mapped to 'button 4'
Button: 4 is mapped to 'button 5'
Button: 5 is mapped to macro '↕F11'
Button: 6 is mapped to macro '↕VOLUMEDOWN'
Button: 7 is mapped to macro '↕VOLUMEUP'
Button: 8 is mapped to 'unknown'
Button: 9 is mapped to 'wheel-right'
Button: 10 is mapped to 'wheel-left'
LED: 0, depth: monochrome, mode: on, color: 000000
LED: 1, depth: monochrome, mode: on, color: 000000
LED: 2, depth: monochrome, mode: on, color: 000000

View File

@ -1,5 +1,7 @@
# Scan hosts: ssh-keyscan -t ed25519 <hostnames> # Scan hosts: ssh-keyscan -t ed25519 <hostnames>
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB+AbmjGEwITk5CK9y7+Rg27Fokgj9QEjgc9wST6MA3s tempest ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB+AbmjGEwITk5CK9y7+Rg27Fokgj9QEjgc9wST6MA3s personal
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHVknmPi7sG6ES0G0jcsvebzKGWWaMfJTYgvOue6EULI flame ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHVknmPi7sG6ES0G0jcsvebzKGWWaMfJTYgvOue6EULI flame
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ9mwXlZnIALt9SnH3FOZvdgHLM5ZqwYUERXBbM7Rwh6 swan ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ9mwXlZnIALt9SnH3FOZvdgHLM5ZqwYUERXBbM7Rwh6 swan
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC3yHivgEXr2ecwe58h9bkhwTYivf3GwL8xenQKMeiUb tempest
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICmGHIWBZzRx35/yFgnPJSHN2+35WJ30G9c5tDhPsCrl arrow

9
modules/README.md Normal file
View File

@ -0,0 +1,9 @@
# Modules
| Module | Purpose |
| --- | --- |
| [common](./common/default.nix) | User programs and OS-agnostic configuration |
| [darwin](./darwin/default.nix) | macOS-specific configuration |
| [nixos](./nixos/default.nix) | NixOS-specific configuration |
| [wsl](./wsl/default.nix) | WSL-specific configuration |

9
modules/aws/default.nix Normal file
View File

@ -0,0 +1,9 @@
{ ... }:
{
# AWS settings require this
permitRootLogin = "prohibit-password";
# Make sure disk size is large enough
# https://github.com/nix-community/nixos-generators/issues/150
amazonImage.sizeMB = 16 * 1024;
}

View File

@ -1,4 +1,10 @@
{ config, pkgs, lib, ... }: { {
config,
pkgs,
lib,
...
}:
{
options = { options = {
_1password = { _1password = {
@ -9,12 +15,27 @@
}; };
}; };
config = lib.mkIf config = lib.mkIf (config.gui.enable && config._1password.enable) {
(config.gui.enable && config._1password.enable && pkgs.stdenv.isLinux) { unfreePackages = [
unfreePackages = with pkgs; [ _1password _1password-gui ]; "1password"
home-manager.users.${config.user} = { "_1password-gui"
home.packages = with pkgs; [ _1password-gui ]; "1password-cli"
}; ];
home-manager.users.${config.user} = {
home.packages = [
pkgs._1password-cli
] ++ (if pkgs.stdenv.isLinux then [ pkgs._1password-gui ] else [ ]);
}; };
# https://1password.community/discussion/135462/firefox-extension-does-not-connect-to-linux-app
# On Mac, does not apply: https://1password.community/discussion/142794/app-and-browser-integration
# However, the button doesn't work either:
# https://1password.community/discussion/140735/extending-support-for-trusted-web-browsers
environment.etc."1password/custom_allowed_browsers".text = ''
${
config.home-manager.users.${config.user}.programs.firefox.package
}/Applications/Firefox.app/Contents/MacOS/firefox
firefox
'';
};
} }

View File

@ -1,4 +1,10 @@
{ config, pkgs, lib, ... }: { {
config,
pkgs,
lib,
...
}:
{
options = { options = {
alacritty = { alacritty = {
@ -28,7 +34,9 @@
opacity = 1.0; opacity = 1.0;
}; };
scrolling.history = 10000; scrolling.history = 10000;
font = { size = 14.0; }; font = {
size = 14.0;
};
key_bindings = [ key_bindings = [
# Used for word completion in fish_user_key_bindings # Used for word completion in fish_user_key_bindings
{ {

View File

@ -1,4 +1,5 @@
{ ... }: { { ... }:
{
imports = [ imports = [
./1password.nix ./1password.nix
@ -7,11 +8,10 @@
./firefox.nix ./firefox.nix
./kitty.nix ./kitty.nix
./media.nix ./media.nix
./nautilus.nix
./obsidian.nix ./obsidian.nix
./qbittorrent.nix ./qbittorrent.nix
./slack.nix ./slack.nix
./wezterm.nix
./yt-dlp.nix ./yt-dlp.nix
]; ];
} }

View File

@ -1,4 +1,10 @@
{ config, pkgs, lib, ... }: { {
config,
pkgs,
lib,
...
}:
{
options = { options = {
discord = { discord = {
@ -10,9 +16,9 @@
}; };
config = lib.mkIf (config.gui.enable && config.discord.enable) { config = lib.mkIf (config.gui.enable && config.discord.enable) {
unfreePackages = [ pkgs.discord ]; unfreePackages = [ "discord" ];
environment.systemPackages = [ pkgs.discord ];
home-manager.users.${config.user} = { home-manager.users.${config.user} = {
home.packages = with pkgs; [ discord ];
xdg.configFile."discord/settings.json".text = '' xdg.configFile."discord/settings.json".text = ''
{ {
"BACKGROUND_COLOR": "#202225", "BACKGROUND_COLOR": "#202225",

View File

@ -1,4 +1,9 @@
{ config, pkgs, lib, ... }: {
config,
pkgs,
lib,
...
}:
{ {
@ -13,64 +18,61 @@
config = lib.mkIf (config.gui.enable && config.firefox.enable) { config = lib.mkIf (config.gui.enable && config.firefox.enable) {
unfreePackages = with pkgs.nur.repos.rycee.firefox-addons; [ unfreePackages = [
(lib.mkIf config._1password.enable onepassword-password-manager) (lib.mkIf config._1password.enable "onepassword-password-manager")
okta-browser-plugin "okta-browser-plugin"
]; ];
home-manager.users.${config.user} = { home-manager.users.${config.user} = {
programs.firefox = { programs.firefox = {
enable = true; enable = true;
package = package = if pkgs.stdenv.isDarwin then pkgs.firefox-bin else pkgs.firefox;
if pkgs.stdenv.isDarwin then pkgs.firefox-bin else pkgs.firefox;
profiles.default = { profiles.default = {
id = 0; id = 0;
name = "default"; name = "default";
isDefault = true; isDefault = true;
# https://nur.nix-community.org/repos/rycee/
extensions = with pkgs.nur.repos.rycee.firefox-addons; [ extensions = with pkgs.nur.repos.rycee.firefox-addons; [
ublock-origin
vimium
multi-account-containers
facebook-container
temporary-containers
(lib.mkIf config._1password.enable onepassword-password-manager) (lib.mkIf config._1password.enable onepassword-password-manager)
darkreader
don-t-fuck-with-paste
facebook-container
markdownload
multi-account-containers
okta-browser-plugin okta-browser-plugin
sponsorblock
reddit-enhancement-suite reddit-enhancement-suite
return-youtube-dislikes return-youtube-dislikes
markdownload sponsorblock
darkreader ublock-origin
snowflake ublacklist
don-t-fuck-with-paste vimium
i-dont-care-about-cookies
wappalyzer
]; ];
settings = { settings = {
"app.update.auto" = false; "app.update.auto" = false;
"browser.aboutConfig.showWarning" = false; "browser.aboutConfig.showWarning" = false;
"browser.warnOnQuit" = false; "browser.warnOnQuit" = false;
"browser.quitShortcut.disabled" = "browser.quitShortcut.disabled" = if pkgs.stdenv.isLinux then true else false;
if pkgs.stdenv.isLinux then true else false;
"browser.theme.dark-private-windows" = true; "browser.theme.dark-private-windows" = true;
"browser.toolbars.bookmarks.visibility" = false; "browser.toolbars.bookmarks.visibility" = false;
"browser.startup.page" = 3; # Restore previous session "browser.startup.page" = 3; # Restore previous session
"browser.newtabpage.enabled" = false; # Make new tabs blank "browser.newtabpage.enabled" = false; # Make new tabs blank
"trailhead.firstrun.didSeeAboutWelcome" = "trailhead.firstrun.didSeeAboutWelcome" = true; # Disable welcome splash
true; # Disable welcome splash
"dom.forms.autocomplete.formautofill" = false; # Disable autofill "dom.forms.autocomplete.formautofill" = false; # Disable autofill
"extensions.formautofill.creditCards.enabled" = "extensions.formautofill.creditCards.enabled" = false; # Disable credit cards
false; # Disable credit cards
"dom.payments.defaults.saveAddress" = false; # Disable address save "dom.payments.defaults.saveAddress" = false; # Disable address save
"general.autoScroll" = true; # Drag middle-mouse to scroll "general.autoScroll" = true; # Drag middle-mouse to scroll
"services.sync.prefs.sync.general.autoScroll" = "services.sync.prefs.sync.general.autoScroll" = false; # Prevent disabling autoscroll
false; # Prevent disabling autoscroll
"extensions.pocket.enabled" = false; "extensions.pocket.enabled" = false;
"toolkit.legacyUserProfileCustomizations.stylesheets" = "toolkit.legacyUserProfileCustomizations.stylesheets" = true; # Allow userChrome.css
true; # Allow userChrome.css
"layout.css.color-mix.enabled" = true; "layout.css.color-mix.enabled" = true;
"ui.systemUsesDarkTheme" = "ui.systemUsesDarkTheme" = if config.theme.dark == true then 1 else 0;
if config.theme.dark == true then 1 else 0; "media.ffmpeg.vaapi.enabled" = true; # Enable hardware video acceleration
"cookiebanners.ui.desktop.enabled" = true; # Reject cookie popups
"devtools.command-button-screenshot.enabled" = true; # Scrolling screenshot of entire page
"svg.context-properties.content.enabled" = true; # Sidebery styling
"browser.tabs.hoverPreview.enabled" = false; # Disable tab previews
"browser.tabs.hoverPreview.showThumbnails" = false; # Disable tab previews
}; };
userChrome = '' userChrome = ''
:root { :root {
@ -111,7 +113,7 @@
background-color: ${config.theme.colors.base00}; background-color: ${config.theme.colors.base00};
color: ${config.theme.colors.base06} !important; color: ${config.theme.colors.base06} !important;
} }
.tab-content[selected=true] { .tab-content[selected] {
border-bottom: 2px solid color-mix(in srgb, var(--identity-tab-color) 25%, transparent); border-bottom: 2px solid color-mix(in srgb, var(--identity-tab-color) 25%, transparent);
background-color: ${config.theme.colors.base01} !important; background-color: ${config.theme.colors.base01} !important;
color: ${config.theme.colors.base07} !important; color: ${config.theme.colors.base07} !important;
@ -155,10 +157,47 @@
extraConfig = ""; extraConfig = "";
}; };
};
# Mimic nixpkgs package environment for read-only profiles.ini management
# From: https://github.com/booxter/home-manager/commit/dd1602e306fec366280f5953c5e1b553e3d9672a
home.sessionVariables = {
MOZ_LEGACY_PROFILES = 1;
MOZ_ALLOW_DOWNGRADE = 1;
};
# launchd.user.envVariables = config.home-manager.users.${config.user}.home.sessionVariables;
xdg.mimeApps = {
associations.added = {
"text/html" = [ "firefox.desktop" ];
};
defaultApplications = {
"text/html" = [ "firefox.desktop" ];
};
associations.removed = {
"text/html" = [ "wine-extension-htm.desktop" ];
};
}; };
xsession.windowManager.i3.config.keybindings = lib.mkIf pkgs.stdenv.isLinux {
"${
config.home-manager.users.${config.user}.xsession.windowManager.i3.config.modifier
}+Shift+b" = "exec ${
# Don't name the script `firefox` or it will affect grep
builtins.toString (
pkgs.writeShellScript "focus-ff.sh" ''
count=$(ps aux | grep -c firefox)
if [ "$count" -eq 1 ]; then
i3-msg "exec --no-startup-id firefox"
sleep 0.5
fi
i3-msg "[class=firefox] focus"
''
)
}";
};
}; };
}; };
} }

View File

@ -1,4 +1,10 @@
{ config, pkgs, lib, ... }: { {
config,
pkgs,
lib,
...
}:
{
options = { options = {
kitty = { kitty = {
@ -10,16 +16,42 @@
}; };
config = lib.mkIf (config.gui.enable && config.kitty.enable) { config = lib.mkIf (config.gui.enable && config.kitty.enable) {
# Set the Rofi-Systemd terminal for viewing logs
# Using optionalAttrs because only available in NixOS
environment =
{ }
// lib.attrsets.optionalAttrs (builtins.hasAttr "sessionVariables" config.environment) {
sessionVariables.ROFI_SYSTEMD_TERM = lib.mkDefault "${pkgs.kitty}/bin/kitty";
};
home-manager.users.${config.user} = { home-manager.users.${config.user} = {
# xsession.windowManager.i3.config.terminal = "kitty";
# programs.rofi.terminal = "${pkgs.kitty}/bin/kitty"; # Set the i3 terminal
xsession.windowManager.i3.config.terminal = lib.mkIf pkgs.stdenv.isLinux "kitty";
# Set the Rofi terminal for running programs
programs.rofi.terminal = lib.mkIf pkgs.stdenv.isLinux (lib.mkDefault "${pkgs.kitty}/bin/kitty");
# Display images in the terminal
programs.fish.interactiveShellInit = # fish
''
if test "$TERM" = "xterm-kitty"
alias icat="kitty +kitten icat"
alias ssh="kitty +kitten ssh"
end
'';
programs.kitty = { programs.kitty = {
enable = true; enable = true;
environment = { }; environment = { };
extraConfig = ""; extraConfig = "";
font.size = 14; font.size = 14;
keybindings = { keybindings = {
# Use shift+enter to complete text suggestions in fish
"shift+enter" = "send_text all \\x1F"; "shift+enter" = "send_text all \\x1F";
# Easy fullscreen toggle (for macOS)
"super+f" = "toggle_fullscreen"; "super+f" = "toggle_fullscreen";
}; };
settings = { settings = {
@ -68,10 +100,8 @@
color21 = config.theme.colors.base06; color21 = config.theme.colors.base06;
# Scrollback # Scrollback
scrolling_lines = 10000; scrollback_lines = 10000;
scrollback_pager_history_size = 10; # MB scrollback_pager_history_size = 300; # MB
scrollback_pager = ''
${pkgs.neovim}/bin/nvim -c 'setlocal nonumber nolist showtabline=0 foldcolumn=0|Man!' -c "autocmd VimEnter * normal G" -'';
# Window # Window
window_padding_width = 6; window_padding_width = 6;
@ -79,7 +109,7 @@
tab_bar_edge = "top"; tab_bar_edge = "top";
tab_bar_style = "slant"; tab_bar_style = "slant";
# Audio # Disable audio
enable_audio_bell = false; enable_audio_bell = false;
}; };
}; };

View File

@ -1,4 +1,10 @@
{ config, pkgs, lib, ... }: { {
config,
pkgs,
lib,
...
}:
{
options = { options = {
media = { media = {
@ -12,27 +18,50 @@
config = lib.mkIf (config.gui.enable && config.media.enable) { config = lib.mkIf (config.gui.enable && config.media.enable) {
home-manager.users.${config.user} = { home-manager.users.${config.user} = {
home.packages = with pkgs; [ home.packages = with pkgs; [
mpv # Video viewer nsxiv # Image viewer
sxiv # Image viewer
mupdf # PDF viewer mupdf # PDF viewer
zathura # PDF viewer zathura # PDF viewer
]; ];
# Set default for opening PDFs # Video player
programs.mpv = {
enable = true;
bindings = { };
config = {
image-display-duration = 2; # For cycling through images
hwdec = "auto-safe"; # Attempt to use GPU decoding for video
};
scripts = [
# Automatically load playlist entries before and after current file
pkgs.mpvScripts.autoload
# Delete current file after quitting
pkgs.mpvScripts.mpv-delete-file
];
};
# Set default programs for opening PDFs and other media
xdg.mimeApps = { xdg.mimeApps = {
associations.added = { associations.added = {
"application/pdf" = [ "pwmt.zathura-cb.desktop" ]; "application/pdf" = [ "pwmt.zathura-cb.desktop" ];
"image/*" = [ "sxiv.desktop" ]; "image/jpeg" = [ "nsxiv.desktop" ];
"image/png" = [ "nsxiv.desktop" ];
"image/*" = [ "nsxiv.desktop" ];
};
associations.removed = {
"application/pdf" = [
"mupdf.desktop"
"wine-extension-pdf.desktop"
];
}; };
associations.removed = { "application/pdf" = [ "mupdf.desktop" ]; };
defaultApplications = { defaultApplications = {
"application/pdf" = [ "pwmt.zathura-cb.desktop" ]; "application/pdf" = [ "pwmt.zathura-cb.desktop" ];
"image/*" = [ "sxiv.desktop" ]; "image/jpeg" = [ "nsxiv.desktop" ];
"image/png" = [ "nsxiv.desktop" ];
"image/*" = [ "nsxiv.desktop" ];
}; };
}; };
}; };
}; };
} }

View File

@ -1,34 +0,0 @@
{ config, pkgs, lib, ... }: {
options = {
nautilus = {
enable = lib.mkEnableOption {
description = "Enable Nautilus file manager.";
default = false;
};
};
};
# Install Nautilus file manager
config = lib.mkIf (config.gui.enable && config.nautilus.enable) {
home-manager.users.${config.user} = {
home.packages = with pkgs; [
gnome.nautilus
gnome.sushi # Quick preview with spacebar
];
# Set default for opening directories
xdg.mimeApps.defaultApplications."inode/directory" =
[ "nautilus.desktop" ];
programs.fish.functions = {
qr = {
body =
"${pkgs.qrencode}/bin/qrencode $argv[1] -o /tmp/qr.png | ${pkgs.gnome.sushi}/bin/sushi /tmp/qr.png";
};
};
};
};
}

View File

@ -1,4 +1,10 @@
{ config, pkgs, lib, ... }: { {
config,
pkgs,
lib,
...
}:
{
options = { options = {
obsidian = { obsidian = {
@ -10,10 +16,13 @@
}; };
config = lib.mkIf (config.gui.enable && config.obsidian.enable) { config = lib.mkIf (config.gui.enable && config.obsidian.enable) {
unfreePackages = [ pkgs.obsidian ]; unfreePackages = [ "obsidian" ];
home-manager.users.${config.user} = { home-manager.users.${config.user} = {
home.packages = with pkgs; [ obsidian ]; home.packages = with pkgs; [ obsidian ];
}; };
};
# Broken on 2023-12-11
# https://forum.obsidian.md/t/electron-25-is-now-eol-please-upgrade-to-a-newer-version/72878/8
nixpkgs.config.permittedInsecurePackages = [ "electron-25.9.0" ];
};
} }

View File

@ -1,4 +1,10 @@
{ config, pkgs, lib, ... }: { {
config,
pkgs,
lib,
...
}:
{
options = { options = {
qbittorrent = { qbittorrent = {
@ -14,8 +20,6 @@
home-manager.users.${config.user} = { home-manager.users.${config.user} = {
home.packages = with pkgs; [ qbittorrent ]; home.packages = with pkgs; [ qbittorrent ];
}; };
}; };
} }

View File

@ -1,4 +1,10 @@
{ config, pkgs, lib, ... }: { {
config,
pkgs,
lib,
...
}:
{
options = { options = {
slack = { slack = {
@ -10,10 +16,9 @@
}; };
config = lib.mkIf (config.gui.enable && config.slack.enable) { config = lib.mkIf (config.gui.enable && config.slack.enable) {
unfreePackages = [ pkgs.slack ]; unfreePackages = [ "slack" ];
home-manager.users.${config.user} = { home-manager.users.${config.user} = {
home.packages = with pkgs; [ slack ]; home.packages = with pkgs; [ slack ];
}; };
}; };
} }

View File

@ -0,0 +1,238 @@
{
config,
pkgs,
lib,
...
}:
{
options = {
wezterm = {
enable = lib.mkEnableOption {
description = "Enable WezTerm terminal.";
default = false;
};
};
};
config =
let
font = config.home-manager.users.${config.user}.programs.kitty.font.name;
in
lib.mkIf (config.gui.enable && config.wezterm.enable) {
# Set the Rofi-Systemd terminal for viewing logs
# Using optionalAttrs because only available in NixOS
environment =
{ }
// lib.attrsets.optionalAttrs (builtins.hasAttr "sessionVariables" config.environment) {
sessionVariables.ROFI_SYSTEMD_TERM = "${pkgs.wezterm}/bin/wezterm";
};
home-manager.users.${config.user} = {
# Set the i3 terminal
xsession.windowManager.i3.config.terminal = lib.mkIf pkgs.stdenv.isLinux "wezterm";
# Set the Rofi terminal for running programs
programs.rofi.terminal = lib.mkIf pkgs.stdenv.isLinux "${pkgs.wezterm}/bin/wezterm";
# Display images in the terminal
programs.fish.shellAliases = {
icat = lib.mkForce "wezterm imgcat";
};
programs.wezterm = {
enable = true;
colorSchemes = {
myTheme = {
background = config.theme.colors.base00;
foreground = config.theme.colors.base05;
cursor_bg = config.theme.colors.base05;
cursor_fg = config.theme.colors.base00;
cursor_border = config.theme.colors.base05;
selection_bg = config.theme.colors.base05;
selection_fg = config.theme.colors.base00;
scrollbar_thumb = config.theme.colors.base03;
ansi = [
config.theme.colors.base01 # black
config.theme.colors.base0F # maroon
config.theme.colors.base0B # green
config.theme.colors.base0A # olive
config.theme.colors.base0D # navy
config.theme.colors.base0E # purple
config.theme.colors.base0C # teal
config.theme.colors.base06 # silver
];
brights = [
config.theme.colors.base03 # grey
config.theme.colors.base08 # red
config.theme.colors.base0B # lime
config.theme.colors.base0A # yellow
config.theme.colors.base0D # blue
config.theme.colors.base0E # fuchsia
config.theme.colors.base0C # aqua
config.theme.colors.base07 # white
];
compose_cursor = config.theme.colors.base09; # orange
copy_mode_active_highlight_bg = {
Color = config.theme.colors.base03;
};
copy_mode_active_highlight_fg = {
Color = config.theme.colors.base07;
};
copy_mode_inactive_highlight_bg = {
Color = config.theme.colors.base02;
};
copy_mode_inactive_highlight_fg = {
Color = config.theme.colors.base06;
};
quick_select_label_bg = {
Color = config.theme.colors.base02;
};
quick_select_label_fg = {
Color = config.theme.colors.base06;
};
quick_select_match_bg = {
Color = config.theme.colors.base03;
};
quick_select_match_fg = {
Color = config.theme.colors.base07;
};
};
};
extraConfig = ''
return {
color_scheme = "myTheme",
-- Scrollback
scrollback_lines = 10000,
-- Window
window_padding = {
left = 10,
right = 10,
top = 10,
bottom = 10,
},
font = wezterm.font('${font}', { weight = 'Bold'}),
font_size = ${if pkgs.stdenv.isLinux then "14.0" else "18.0"},
-- Fix color blocks instead of text
front_end = "WebGpu",
-- Tab Bar
hide_tab_bar_if_only_one_tab = true,
window_frame = {
font = wezterm.font('${font}', { weight = 'Bold'}),
font_size = ${if pkgs.stdenv.isLinux then "12.0" else "16.0"},
},
colors = {
tab_bar = {
active_tab = {
bg_color = '${config.theme.colors.base00}',
fg_color = '${config.theme.colors.base04}',
},
},
},
-- Disable audio
audible_bell = "Disabled",
initial_rows = 80,
initial_cols = 200,
keys = {
-- sends completion string for fish autosuggestions
{
key = 'Enter',
mods = 'SHIFT',
action = wezterm.action.SendString '\x1F'
},
-- ctrl-shift-h was "hide"
{
key = 'H',
mods = 'SHIFT|CTRL',
action = wezterm.action.DisableDefaultAssignment
},
-- alt-enter was "fullscreen"
{
key = 'Enter',
mods = 'ALT',
action = wezterm.action.DisableDefaultAssignment
},
-- make super-f "fullscreen"
{
key = 'f',
mods = 'SUPER',
action = wezterm.action.ToggleFullScreen
},
-- super-t open new tab in new dir
{
key = 't',
mods = ${if pkgs.stdenv.isDarwin then "'SUPER'" else "'ALT'"},
action = wezterm.action.SpawnCommandInNewTab {
cwd = wezterm.home_dir,
},
},
-- shift-super-t open new tab in same dir
{
key = 't',
mods = 'SUPER|SHIFT',
action = wezterm.action.SpawnTab 'CurrentPaneDomain'
},
-- project switcher
{
key = 'P',
mods = 'SUPER',
action = wezterm.action_callback(function(window, pane)
local choices = {}
wezterm.log_info "working?"
function scandir(directory)
local i, t, popen = 0, {}, io.popen
local pfile = popen('${pkgs.fd}/bin/fd --search-path "'..directory..'" --type directory --exact-depth 2 | ${pkgs.proximity-sort}/bin/proximity-sort "'..os.getenv("HOME").."/dev/work"..'"')
for filename in pfile:lines() do
i = i + 1
t[i] = filename
end
pfile:close()
return t
end
for _, v in pairs(scandir(os.getenv("HOME").."/dev")) do
table.insert(choices, { label = v })
end
window:perform_action(
wezterm.action.InputSelector {
action = wezterm.action_callback(function(window, pane, id, label)
if not id and not label then
wezterm.log_info "cancelled"
else
window:perform_action(
wezterm.action.SpawnCommandInNewTab {
cwd = label,
},
pane
)
end
end),
fuzzy = true,
title = "Select Project",
choices = choices,
},
pane
)
end),
},
},
}
'';
};
};
};
}

View File

@ -1,4 +1,10 @@
{ config, pkgs, lib, ... }: { {
config,
pkgs,
lib,
...
}:
{
options = { options = {
yt-dlp = { yt-dlp = {
@ -27,9 +33,6 @@
}; };
programs.fish.shellAbbrs.yt = "yt-dlp"; programs.fish.shellAbbrs.yt = "yt-dlp";
}; };
}; };
} }

View File

@ -1,7 +1,19 @@
{ config, lib, pkgs, ... }: { {
config,
lib,
pkgs,
...
}:
{
imports = imports = [
[ ./applications ./mail ./neovim ./programming ./repositories ./shell ]; ./applications
./mail
./neovim
./programming
./repositories
./shell
];
options = { options = {
user = lib.mkOption { user = lib.mkOption {
@ -17,8 +29,7 @@
download = lib.mkOption { download = lib.mkOption {
type = lib.types.str; type = lib.types.str;
description = "XDG directory for downloads"; description = "XDG directory for downloads";
default = default = if pkgs.stdenv.isDarwin then "$HOME/Downloads" else "$HOME/downloads";
if pkgs.stdenv.isDarwin then "$HOME/Downloads" else "$HOME/downloads";
}; };
}; };
identityFile = lib.mkOption { identityFile = lib.mkOption {
@ -44,20 +55,13 @@
default = true; default = true;
}; };
}; };
# colorscheme = lib.mkOption {
# type = types.attrs;
# description = "Base16 color scheme";
# };
homePath = lib.mkOption { homePath = lib.mkOption {
type = lib.types.path; type = lib.types.path;
description = "Path of user's home directory."; description = "Path of user's home directory.";
default = builtins.toPath (if pkgs.stdenv.isDarwin then default = builtins.toPath (
"/Users/${config.user}" if pkgs.stdenv.isDarwin then "/Users/${config.user}" else "/home/${config.user}"
else );
"/home/${config.user}");
}; };
dotfilesPath = lib.mkOption { dotfilesPath = lib.mkOption {
type = lib.types.path; type = lib.types.path;
description = "Path of dotfiles repository."; description = "Path of dotfiles repository.";
@ -65,63 +69,116 @@
}; };
dotfilesRepo = lib.mkOption { dotfilesRepo = lib.mkOption {
type = lib.types.str; type = lib.types.str;
description = "Link to dotfiles repository."; description = "Link to dotfiles repository HTTPS URL.";
}; };
unfreePackages = lib.mkOption { unfreePackages = lib.mkOption {
type = lib.types.listOf lib.types.package; type = lib.types.listOf lib.types.str;
description = "List of unfree packages to allow."; description = "List of unfree packages to allow.";
default = [ ]; default = [ ];
}; };
}; hostnames = {
audiobooks = lib.mkOption {
config = let stateVersion = "23.05"; type = lib.types.str;
in { description = "Hostname for audiobook server (Audiobookshelf).";
};
nix = { files = lib.mkOption {
type = lib.types.str;
# Enable features in Nix commands description = "Hostname for files server (Filebrowser).";
extraOptions = '' };
experimental-features = nix-command flakes git = lib.mkOption {
warn-dirty = false type = lib.types.str;
''; description = "Hostname for git server (Gitea).";
};
settings = { metrics = lib.mkOption {
type = lib.types.str;
# Add community Cachix to binary cache description = "Hostname for metrics server.";
substituters = lib.mkIf (!pkgs.stdenv.isDarwin) };
[ "https://nix-community.cachix.org" ]; minecraft = lib.mkOption {
trusted-public-keys = lib.mkIf (!pkgs.stdenv.isDarwin) [ type = lib.types.str;
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" description = "Hostname for Minecraft server.";
]; };
paperless = lib.mkOption {
# Scans and hard links identical files in the store type = lib.types.str;
auto-optimise-store = true; description = "Hostname for document server (paperless-ngx).";
};
prometheus = lib.mkOption {
type = lib.types.str;
description = "Hostname for Prometheus server.";
};
influxdb = lib.mkOption {
type = lib.types.str;
description = "Hostname for InfluxDB2 server.";
};
secrets = lib.mkOption {
type = lib.types.str;
description = "Hostname for passwords and secrets (Vaultwarden).";
};
stream = lib.mkOption {
type = lib.types.str;
description = "Hostname for video/media library (Jellyfin).";
};
content = lib.mkOption {
type = lib.types.str;
description = "Hostname for personal content system (Nextcloud).";
};
books = lib.mkOption {
type = lib.types.str;
description = "Hostname for books library (Calibre-Web).";
};
download = lib.mkOption {
type = lib.types.str;
description = "Hostname for download services.";
};
irc = lib.mkOption {
type = lib.types.str;
description = "Hostname for IRC services.";
};
n8n = lib.mkOption {
type = lib.types.str;
description = "Hostname for n8n automation.";
};
notifications = lib.mkOption {
type = lib.types.str;
description = "Hostname for push notification services (ntfy).";
};
status = lib.mkOption {
type = lib.types.str;
description = "Hostname for status page (Uptime-Kuma).";
};
transmission = lib.mkOption {
type = lib.types.str;
description = "Hostname for peer2peer downloads (Transmission).";
}; };
}; };
# Basic common system packages for all devices
environment.systemPackages = with pkgs; [ git vim wget curl ];
# Use the system-level nixpkgs instead of Home Manager's
home-manager.useGlobalPkgs = true;
# Install packages to /etc/profiles instead of ~/.nix-profile, useful when
# using multiple profiles for one user
home-manager.useUserPackages = true;
# Allow specified unfree packages (identified elsewhere)
# Retrieves package object based on string name
# Idea: https://discourse.nixos.org/t/how-to-use-packages-directly-in-allowunfreepredicate/22455/6
nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (pkg.name or (builtins.parseDrvName pkg.pname).name)
(map lib.getName config.unfreePackages);
# Pin a state version to prevent warnings
home-manager.users.${config.user}.home.stateVersion = stateVersion;
home-manager.users.root.home.stateVersion = stateVersion;
}; };
config =
let
stateVersion = "23.05";
in
{
# Basic common system packages for all devices
environment.systemPackages = with pkgs; [
git
vim
wget
curl
];
# Use the system-level nixpkgs instead of Home Manager's
home-manager.useGlobalPkgs = true;
# Install packages to /etc/profiles instead of ~/.nix-profile, useful when
# using multiple profiles for one user
home-manager.useUserPackages = true;
# Allow specified unfree packages (identified elsewhere)
# Retrieves package object based on string name
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) config.unfreePackages;
# Pin a state version to prevent warnings
home-manager.users.${config.user}.home.stateVersion = stateVersion;
home-manager.users.root.home.stateVersion = stateVersion;
};
} }

View File

@ -1,4 +1,10 @@
{ config, pkgs, lib, ... }: { {
config,
pkgs,
lib,
...
}:
{
options.mail.aerc.enable = lib.mkEnableOption "Aerc email."; options.mail.aerc.enable = lib.mkEnableOption "Aerc email.";
@ -68,14 +74,16 @@
"!" = ":term<space>"; "!" = ":term<space>";
"|" = ":pipe<space>"; "|" = ":pipe<space>";
"/" = ":search<space>"; "/" = ":search<space>-a<space>";
"\\" = ":filter <space>"; "\\" = ":filter <space>";
n = ":next-result<Enter>"; n = ":next-result<Enter>";
N = ":prev-result<Enter>"; N = ":prev-result<Enter>";
"<Esc>" = ":clear<Enter>"; "<Esc>" = ":clear<Enter>";
}; };
"messages:folder=Drafts" = { "<Enter>" = ":recall<Enter>"; }; "messages:folder=Drafts" = {
"<Enter>" = ":recall<Enter>";
};
view = { view = {
"/" = ":toggle-key-passthrough <Enter> /"; "/" = ":toggle-key-passthrough <Enter> /";
@ -148,28 +156,28 @@
"<C-p>" = ":prev-tab<Enter>"; "<C-p>" = ":prev-tab<Enter>";
"<C-n>" = ":next-tab<Enter>"; "<C-n>" = ":next-tab<Enter>";
}; };
}; };
extraConfig = { extraConfig = {
general.unsafe-accounts-conf = true; general = {
viewer = { pager = "${pkgs.less}/bin/less -R"; }; unsafe-accounts-conf = true;
# log-file = "~/.cache/aerc.log";
# log-level = "debug";
};
viewer = {
pager = "${pkgs.less}/bin/less -R";
};
filters = { filters = {
"text/plain" = "text/plain" = "${pkgs.aerc}/libexec/aerc/filters/colorize";
"${pkgs.gawk}/bin/awk -f ${pkgs.aerc}/share/aerc/filters/colorize"; "text/calendar" = "${pkgs.gawk}/bin/awk -f ${pkgs.aerc}/libexec/aerc/filters/calendar";
"text/calendar" = "text/html" = "${pkgs.aerc}/libexec/aerc/filters/html | ${pkgs.aerc}/libexec/aerc/filters/colorize"; # Requires w3m, dante
"${pkgs.gawk}/bin/awk -f ${pkgs.aerc}/share/aerc/filters/calendar";
"text/html" =
"${pkgs.aerc}/share/aerc/filters/html"; # Requires w3m, dante
# "text/html" =
# "${pkgs.aerc}/share/aerc/filters/html | ${pkgs.aerc}/share/aerc/filters/colorize";
# "text/*" = # "text/*" =
# ''${pkgs.bat}/bin/bat -fP --file-name="$AERC_FILENAME "''; # ''${pkgs.bat}/bin/bat -fP --file-name="$AERC_FILENAME "'';
"message/delivery-status" = "message/delivery-status" = "${pkgs.aerc}/libexec/aerc/filters/colorize";
"${pkgs.gawk}/bin/awk -f ${pkgs.aerc}/share/aerc/filters/colorize"; "message/rfc822" = "${pkgs.aerc}/libexec/aerc/filters/colorize";
"message/rfc822" =
"${pkgs.gawk}/bin/awk -f ${pkgs.aerc}/share/aerc/filters/colorize";
"application/x-sh" = "${pkgs.bat}/bin/bat -fP -l sh"; "application/x-sh" = "${pkgs.bat}/bin/bat -fP -l sh";
"application/pdf" = "${pkgs.zathura}/bin/zathura -"; "application/pdf" = "${pkgs.zathura}/bin/zathura -";
"audio/*" = "${pkgs.mpv}/bin/mpv -";
"image/*" = "${pkgs.feh}/bin/feh -";
}; };
}; };
}; };
@ -178,12 +186,35 @@
extraAccounts = { extraAccounts = {
check-mail = "5m"; check-mail = "5m";
check-mail-cmd = "${pkgs.isync}/bin/mbsync -a"; check-mail-cmd = "${pkgs.isync}/bin/mbsync -a";
check-mail-timeout = "15s";
}; };
}; };
programs.fish.shellAbbrs = { ae = "aerc"; }; xdg.desktopEntries.aerc = lib.mkIf pkgs.stdenv.isLinux {
name = "aerc";
exec = "kitty aerc %u";
};
xsession.windowManager.i3.config.keybindings = lib.mkIf pkgs.stdenv.isLinux {
"${
config.home-manager.users.${config.user}.xsession.windowManager.i3.config.modifier
}+Shift+e" = "exec ${
# Don't name the script `aerc` or it will affect grep
builtins.toString (
pkgs.writeShellScript "focus-mail.sh" ''
count=$(ps aux | grep -c aerc)
if [ "$count" -eq 1 ]; then
i3-msg "exec --no-startup-id kitty --class aerc aerc"
sleep 0.25
fi
i3-msg "[class=aerc] focus"
''
)
}";
};
programs.fish.shellAbbrs = {
ae = "aerc";
};
}; };
}; };
} }

View File

@ -1,6 +1,16 @@
{ config, pkgs, lib, ... }: { {
config,
pkgs,
lib,
...
}:
{
imports = [ ./himalaya.nix ./aerc.nix ]; imports = [
./himalaya.nix
./aerc.nix
./system.nix
];
options = { options = {
mail.enable = lib.mkEnableOption "Mail service."; mail.enable = lib.mkEnableOption "Mail service.";
@ -10,75 +20,120 @@
default = config.user; default = config.user;
}; };
mail.server = lib.mkOption { mail.server = lib.mkOption {
type = lib.types.str; type = lib.types.nullOr lib.types.str;
description = "Server name for the email address."; description = "Server name for the email address.";
}; };
mail.imapHost = lib.mkOption {
type = lib.types.nullOr lib.types.str;
description = "Server host for IMAP (reading mail).";
};
mail.smtpHost = lib.mkOption {
type = lib.types.nullOr lib.types.str;
description = "Server host for SMTP (sending mail).";
};
}; };
config = lib.mkIf config.mail.enable { config = lib.mkIf config.mail.enable {
home-manager.users.${config.user} = { home-manager.users.${config.user} = {
programs.mbsync = { enable = true; }; programs.mbsync = {
enable = true;
};
# Automatically check for mail and keep files synced locally
services.mbsync = lib.mkIf pkgs.stdenv.isLinux { services.mbsync = lib.mkIf pkgs.stdenv.isLinux {
enable = true; enable = true;
frequency = "*:0/5"; frequency = "*:0/5";
postExec = "${pkgs.notmuch}/bin/notmuch new";
}; };
# Used to watch for new mail and trigger sync
services.imapnotify.enable = pkgs.stdenv.isLinux;
# Allows sending email from CLI/sendmail
programs.msmtp.enable = true;
# Better local mail search
programs.notmuch = {
enable = true;
new.ignore = [
".mbsyncstate.lock"
".mbsyncstate.journal"
".mbsyncstate.new"
];
};
accounts.email = { accounts.email = {
# Where email files are stored
maildirBasePath = "${config.homePath}/mail"; maildirBasePath = "${config.homePath}/mail";
accounts = { accounts = {
home = let address = "${config.mail.user}@${config.mail.server}"; home =
in { let
userName = address; address = "${config.mail.user}@${config.mail.server}";
realName = config.fullName; in
primary = true; {
inherit address; userName = address;
aliases = map (user: "${user}@${config.mail.server}") [ realName = config.fullName;
"me" primary = true;
"hey" inherit address;
"admin" aliases = map (user: "${user}@${config.mail.server}") [
]; "me"
alot = { }; "hey"
flavor = "plain"; "admin"
folders = { }; ];
getmail = { };
imap = { # Options for contact completion
host = "imap.purelymail.com"; alot = { };
port = 993;
tls.enable = true; imap = {
}; host = config.mail.imapHost;
imapnotify = { port = 993;
enable = false; tls.enable = true;
boxes = [ ]; };
onNotify = "";
onNotifyPost = ""; # Watch for mail and run notifications or sync
}; imapnotify = {
maildir = { path = "main"; }; enable = true;
mbsync = { boxes = [ "Inbox" ];
enable = true; onNotify = "${pkgs.isync}/bin/mbsync -a";
create = "maildir"; onNotifyPost =
expunge = "none"; lib.mkIf config.home-manager.users.${config.user}.services.dunst.enable
remove = "none"; "${pkgs.libnotify}/bin/notify-send 'New mail arrived'";
patterns = [ "*" ]; };
extraConfig.channel = {
CopyArrivalDate = "yes"; # Sync time of original message # Name of the directory in maildir for this account
maildir = {
path = "main";
};
# Bi-directional syncing options for local files
mbsync = {
enable = true;
create = "both";
expunge = "both";
remove = "both";
patterns = [ "*" ];
extraConfig.channel = {
CopyArrivalDate = "yes"; # Sync time of original message
};
};
# Enable indexing
notmuch.enable = true;
# Used to login and send and receive emails
passwordCommand = "${pkgs.age}/bin/age --decrypt --identity ~/.ssh/id_ed25519 ${pkgs.writeText "mailpass.age" (builtins.readFile ../../../private/mailpass.age)}";
smtp = {
host = config.mail.smtpHost;
port = 465;
tls.enable = true;
}; };
}; };
mu.enable = false;
notmuch.enable = false;
passwordCommand =
"${pkgs.age}/bin/age --decrypt --identity ${config.identityFile} ${
builtins.toString ../../../private/mailpass.age
}";
smtp = {
host = "smtp.purelymail.com";
port = 465;
tls.enable = true;
};
};
}; };
}; };
}; };
}; };
} }

View File

@ -1,4 +1,5 @@
{ config, lib, ... }: { { config, lib, ... }:
{
options.mail.himalaya.enable = lib.mkEnableOption "Himalaya email."; options.mail.himalaya.enable = lib.mkEnableOption "Himalaya email.";
@ -6,20 +7,20 @@
home-manager.users.${config.user} = { home-manager.users.${config.user} = {
programs.himalaya = { enable = true; }; programs.himalaya = {
enable = true;
};
accounts.email.accounts.home.himalaya = { accounts.email.accounts.home.himalaya = {
enable = true; enable = true;
backend = "imap";
sender = "smtp";
settings = { settings = {
downloads-dir = config.userDirs.download; downloads-dir = config.userDirs.download;
smtp-insecure = true; smtp-insecure = true;
}; };
}; };
programs.fish.shellAbbrs = { hi = "himalaya"; }; programs.fish.shellAbbrs = {
hi = "himalaya";
};
}; };
}; };
} }

View File

@ -0,0 +1,35 @@
{
config,
pkgs,
lib,
...
}:
{
config = lib.mkIf (config.mail.enable || config.server) {
home-manager.users.${config.user} = {
programs.msmtp.enable = true;
# The system user for sending automatic notifications
accounts.email.accounts.system =
let
address = "system@${config.mail.server}";
in
{
userName = address;
realName = "NixOS System";
primary = !config.mail.enable; # Only primary if mail not enabled
inherit address;
passwordCommand = "${pkgs.age}/bin/age --decrypt --identity ${config.identityFile} ${pkgs.writeText "mailpass-system.age" (builtins.readFile ../../../private/mailpass-system.age)}";
msmtp.enable = true;
smtp = {
host = config.mail.smtpHost;
port = 465;
tls.enable = true;
};
};
};
};
}

View File

@ -1,4 +1,8 @@
{ pkgs, ... }: { { pkgs, ... }:
{
# Plugin for aligning text programmatically
plugins = [ pkgs.vimPlugins.tabular ]; plugins = [ pkgs.vimPlugins.tabular ];
lua = '' lua = ''
-- Align -- Align

View File

@ -1,16 +1,22 @@
{ pkgs, ... }: { { pkgs, ... }:
{
# Shows buffers in a VSCode-style tab layout
plugins = [ plugins = [
pkgs.vimPlugins.bufferline-nvim pkgs.vimPlugins.bufferline-nvim
pkgs.vimPlugins.vim-bbye # Better closing of buffers pkgs.vimPlugins.vim-bbye # Better closing of buffers
pkgs.vimPlugins.snipe-nvim # Jump between open buffers
]; ];
setup.bufferline = { setup.bufferline = {
options = { options = {
diagnostics = "nvim_lsp"; diagnostics = "nvim_lsp";
always_show_bufferline = false; always_show_bufferline = false;
separator_style = "slant"; separator_style = "slant";
offsets = [{ filetype = "NvimTree"; }]; offsets = [ { filetype = "NvimTree"; } ];
}; };
}; };
setup.snipe = { };
lua = '' lua = ''
-- Move buffers -- Move buffers
vim.keymap.set("n", "L", ":BufferLineCycleNext<CR>", { silent = true }) vim.keymap.set("n", "L", ":BufferLineCycleNext<CR>", { silent = true })
@ -18,5 +24,7 @@
-- Kill buffer -- Kill buffer
vim.keymap.set("n", "<Leader>x", " :Bdelete<CR>", { silent = true }) vim.keymap.set("n", "<Leader>x", " :Bdelete<CR>", { silent = true })
'';
-- Jump to buffer
vim.keymap.set("n", "gb", require("snipe").open_buffer_menu, { silent = true }) '';
} }

View File

@ -0,0 +1,27 @@
{
pkgs,
lib,
config,
...
}:
{
# Sets Neovim colors based on Nix colorscheme
options.colors = lib.mkOption {
type = lib.types.attrsOf lib.types.str;
description = "Attrset of base16 colorscheme key value pairs.";
};
config = {
plugins = [ pkgs.vimPlugins.base16-nvim ];
setup.base16-colorscheme = config.colors;
# Telescope isn't working, shut off for now
lua = ''
require('base16-colorscheme').with_config {
telescope = false,
}
'';
};
}

View File

@ -1,4 +1,5 @@
{ pkgs, dsl, ... }: { { pkgs, dsl, ... }:
{
plugins = [ plugins = [
pkgs.vimPlugins.cmp-nvim-lsp pkgs.vimPlugins.cmp-nvim-lsp
@ -9,7 +10,6 @@
pkgs.vimPlugins.luasnip pkgs.vimPlugins.luasnip
pkgs.vimPlugins.cmp_luasnip pkgs.vimPlugins.cmp_luasnip
pkgs.vimPlugins.cmp-rg pkgs.vimPlugins.cmp-rg
pkgs.vimPlugins.friendly-snippets
]; ];
use.cmp.setup = dsl.callWith { use.cmp.setup = dsl.callWith {
@ -24,28 +24,17 @@
end end
''; '';
snippet.expand = dsl.rawLua '' # Basic completion keybinds
function(args)
require("luasnip").lsp_expand(args.body)
end
'';
mapping = { mapping = {
"['<C-n>']" = dsl.rawLua "['<C-n>']" = dsl.rawLua "require('cmp').mapping.select_next_item({ behavior = require('cmp').SelectBehavior.Insert }, { 'i', 'c' })";
"require('cmp').mapping.select_next_item({ behavior = require('cmp').SelectBehavior.Insert })"; "['<C-p>']" = dsl.rawLua "require('cmp').mapping.select_prev_item({ behavior = require('cmp').SelectBehavior.Insert }, { 'i', 'c' })";
"['<C-p>']" = dsl.rawLua "['<Down>']" = dsl.rawLua "require('cmp').mapping.select_next_item({ behavior = require('cmp').SelectBehavior.Select }, { 'i', 'c' })";
"require('cmp').mapping.select_prev_item({ behavior = require('cmp').SelectBehavior.Insert })"; "['<Up>']" = dsl.rawLua "require('cmp').mapping.select_prev_item({ behavior = require('cmp').SelectBehavior.Select }, { 'i', 'c' })";
"['<Down>']" = dsl.rawLua
"require('cmp').mapping.select_next_item({ behavior = require('cmp').SelectBehavior.Select })";
"['<Up>']" = dsl.rawLua
"require('cmp').mapping.select_prev_item({ behavior = require('cmp').SelectBehavior.Select })";
"['<C-d>']" = dsl.rawLua "require('cmp').mapping.scroll_docs(-4)"; "['<C-d>']" = dsl.rawLua "require('cmp').mapping.scroll_docs(-4)";
"['<C-f>']" = dsl.rawLua "require('cmp').mapping.scroll_docs(4)"; "['<C-f>']" = dsl.rawLua "require('cmp').mapping.scroll_docs(4)";
"['<C-e>']" = dsl.rawLua "require('cmp').mapping.abort()"; "['<C-e>']" = dsl.rawLua "require('cmp').mapping.abort()";
"['<CR>']" = dsl.rawLua "['<C-y>']" = dsl.rawLua "require('cmp').mapping.confirm({ behavior = require('cmp').ConfirmBehavior.Insert, select = true, }, { 'i', 'c' })";
"require('cmp').mapping.confirm({ behavior = require('cmp').ConfirmBehavior.Replace, select = true, })"; "['<C-r>']" = dsl.rawLua "require('cmp').mapping.confirm({ behavior = require('cmp').ConfirmBehavior.Replace, select = true, }, { 'i', 'c' })";
"['<C-r>']" = dsl.rawLua
"require('cmp').mapping.confirm({ behavior = require('cmp').ConfirmBehavior.Replace, select = true, })";
"['<Esc>']" = dsl.rawLua '' "['<Esc>']" = dsl.rawLua ''
function(_) function(_)
cmp.mapping({ cmp.mapping({
@ -55,7 +44,7 @@
vim.cmd("stopinsert") --- Abort and leave insert mode vim.cmd("stopinsert") --- Abort and leave insert mode
end end
''; '';
"['<C-l>']" = dsl.rawLua '' "['<C-k>']" = dsl.rawLua ''
cmp.mapping(function(_) cmp.mapping(function(_)
if require("luasnip").expand_or_jumpable() then if require("luasnip").expand_or_jumpable() then
require("luasnip").expand_or_jump() require("luasnip").expand_or_jump()
@ -64,26 +53,33 @@
''; '';
}; };
# These are where the completion engine gets its suggestions
sources = [ sources = [
{ name = "nvim_lua"; } { name = "nvim_lua"; } # Fills in common Neovim lua functions
{ name = "nvim_lsp"; } { name = "nvim_lsp"; } # LSP results
{ name = "luasnip"; } { name = "path"; } # Shell completion from current PATH
{ name = "path"; }
{ {
name = "buffer"; name = "buffer"; # Grep for text from the current text buffer
keyword_length = 3; keyword_length = 3;
max_item_count = 10; max_item_count = 10;
} }
{ {
name = "rg"; name = "rg"; # Grep for text from the current directory
keyword_length = 6; keyword_length = 6;
max_item_count = 10; max_item_count = 10;
option = { additional_arguments = "--ignore-case"; }; option = {
additional_arguments = "--ignore-case";
};
} }
]; ];
# Styling of the completion menu
formatting = { formatting = {
fields = [ "kind" "abbr" "menu" ]; fields = [
"kind"
"abbr"
"menu"
];
format = dsl.rawLua '' format = dsl.rawLua ''
function(entry, vim_item) function(entry, vim_item)
local kind_icons = { local kind_icons = {
@ -115,7 +111,6 @@
} }
vim_item.kind = string.format("%s", kind_icons[vim_item.kind]) vim_item.kind = string.format("%s", kind_icons[vim_item.kind])
vim_item.menu = ({ vim_item.menu = ({
luasnip = "[Snippet]",
buffer = "[Buffer]", buffer = "[Buffer]",
path = "[Path]", path = "[Path]",
rg = "[Grep]", rg = "[Grep]",
@ -131,19 +126,46 @@
native_menu = false; # Use cmp menu instead of Vim menu native_menu = false; # Use cmp menu instead of Vim menu
ghost_text = true; # Show preview auto-completion ghost_text = true; # Show preview auto-completion
}; };
}; };
lua = '' lua = ''
-- Use buffer source for `/` -- Use buffer source for `/`
require('cmp').setup.cmdline("/", { require('cmp').setup.cmdline("/", {
sources = { mapping = {
{ name = "buffer", keyword_length = 5 }, ['<C-n>'] = {
c = require('cmp').mapping.select_next_item({ behavior = require('cmp').SelectBehavior.Insert }, { 'i', 'c' })
},
['<C-p>'] = {
c = require('cmp').mapping.select_prev_item({ behavior = require('cmp').SelectBehavior.Insert }, { 'i', 'c' })
},
['<C-y>'] = {
c = require('cmp').mapping.confirm({ behavior = require('cmp').ConfirmBehavior.Insert, select = true, }, { 'i', 'c' })
},
['<C-r>'] = {
c = require('cmp').mapping.confirm({ behavior = require('cmp').ConfirmBehavior.Replace, select = true, }, { 'i', 'c' })
},
}, },
sources = require('cmp').config.sources({
{ name = "buffer", keyword_length = 5 },
}),
}) })
-- Use cmdline & path source for ':' -- Use cmdline & path source for ':'
require('cmp').setup.cmdline(":", { require('cmp').setup.cmdline(":", {
mapping = {
['<C-n>'] = {
c = require('cmp').mapping.select_next_item({ behavior = require('cmp').SelectBehavior.Insert }, { 'i', 'c' })
},
['<C-p>'] = {
c = require('cmp').mapping.select_prev_item({ behavior = require('cmp').SelectBehavior.Insert }, { 'i', 'c' })
},
['<C-y>'] = {
c = require('cmp').mapping.confirm({ behavior = require('cmp').ConfirmBehavior.Insert, select = true, }, { 'i', 'c' })
},
['<C-r>'] = {
c = require('cmp').mapping.confirm({ behavior = require('cmp').ConfirmBehavior.Replace, select = true, }, { 'i', 'c' })
},
},
sources = require('cmp').config.sources({ sources = require('cmp').config.sources({
{ name = "path" }, { name = "path" },
}, { }, {
@ -151,5 +173,4 @@
}), }),
}) })
''; '';
} }

View File

@ -0,0 +1,17 @@
-- Keymap to open file in GitHub web
vim.keymap.set("n", "<Leader>gr", ":!gh browse %<CR><CR>", { silent = true })
-- Pop a terminal to watch the current run
local gitwatch = require("toggleterm.terminal").Terminal:new({
cmd = "fish --interactive --init-command 'gh run watch'",
hidden = true,
direction = "float",
})
-- Set a toggle for this terminal
function GITWATCH_TOGGLE()
gitwatch:toggle()
end
-- Keymap to toggle the run
vim.keymap.set("n", "<Leader>W", GITWATCH_TOGGLE)

View File

@ -1,4 +1,5 @@
{ pkgs, ... }: { { pkgs, ... }:
{
plugins = [ pkgs.vimPlugins.gitsigns-nvim ]; plugins = [ pkgs.vimPlugins.gitsigns-nvim ];
setup.gitsigns = { }; setup.gitsigns = { };
lua = builtins.readFile ./gitsigns.lua; lua = builtins.readFile ./gitsigns.lua;

View File

@ -0,0 +1,6 @@
local k9s = require("toggleterm.terminal").Terminal:new({ cmd = "k9s" })
function K9S_TOGGLE()
k9s:toggle()
end
vim.keymap.set("n", "<Leader>9", K9S_TOGGLE)

View File

@ -1,66 +1,146 @@
{ pkgs, dsl, ... }: { {
pkgs,
lib,
config,
dsl,
...
}:
{
plugins = [ # Terraform optional because non-free
pkgs.vimPlugins.nvim-lspconfig options.terraform = lib.mkEnableOption "Whether to enable Terraform LSP";
pkgs.vimPlugins.lsp-colors-nvim options.github = lib.mkEnableOption "Whether to enable GitHub features";
pkgs.vimPlugins.null-ls-nvim options.kubernetes = lib.mkEnableOption "Whether to enable Kubernetes features";
];
use.lspconfig.lua_ls.setup = dsl.callWith { config = {
settings = { Lua = { diagnostics = { globals = [ "vim" "hs" ]; }; }; }; plugins = [
capabilities = dsl.rawLua "require('cmp_nvim_lsp').default_capabilities()"; pkgs.vimPlugins.nvim-lspconfig
cmd = [ "${pkgs.lua-language-server}/bin/lua-language-server" ]; pkgs.vimPlugins.conform-nvim
pkgs.vimPlugins.fidget-nvim
pkgs.vimPlugins.nvim-lint
pkgs.vimPlugins.vim-table-mode
pkgs.vimPlugins.tiny-inline-diagnostic-nvim
];
setup.fidget = { };
setup.tiny-inline-diagnostic = { };
use.lspconfig.lua_ls.setup = dsl.callWith {
settings = {
Lua = {
diagnostics = {
globals = [
"vim"
"hs"
];
};
};
};
capabilities = dsl.rawLua "require('cmp_nvim_lsp').default_capabilities()";
cmd = [ "${pkgs.lua-language-server}/bin/lua-language-server" ];
};
use.lspconfig.nixd.setup = dsl.callWith {
cmd = [ "${pkgs.nixd}/bin/nixd" ];
capabilities = dsl.rawLua "require('cmp_nvim_lsp').default_capabilities()";
};
use.lspconfig.pyright.setup = dsl.callWith {
cmd = [
"${pkgs.pyright}/bin/pyright-langserver"
"--stdio"
];
};
use.lspconfig.terraformls.setup = dsl.callWith {
cmd =
if config.terraform then
[
"${pkgs.terraform-ls}/bin/terraform-ls"
"serve"
]
else
[ "echo" ];
};
use.lspconfig.rust_analyzer.setup = dsl.callWith {
cmd = [ "${pkgs.rust-analyzer}/bin/rust-analyzer" ];
settings = {
"['rust-analyzer']" = {
check = {
command = "clippy";
};
files = {
excludeDirs = [ ".direnv" ];
};
cargo = {
features = "all";
};
};
};
};
setup.conform = {
format_on_save = {
# These options will be passed to conform.format()
timeout_ms = 1500;
lsp_fallback = true;
};
formatters_by_ft = {
lua = [ "stylua" ];
python = [ "black" ];
fish = [ "fish_indent" ];
nix = [ "nixfmt" ];
rust = [ "rustfmt" ];
sh = [ "shfmt" ];
terraform = if config.terraform then [ "terraform_fmt" ] else [ ];
hcl = [ "hcl" ];
};
formatters = {
lua.command = "${pkgs.stylua}/bin/stylua";
black.command = "${pkgs.black}/bin/black";
fish_indent.command = "${pkgs.fish}/bin/fish_indent";
nixfmt.command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt";
rustfmt.command = "${pkgs.rustfmt}/bin/rustfmt";
shfmt = {
command = "${pkgs.shfmt}/bin/shfmt";
prepend_args = [
"-i"
"4"
"-ci"
];
};
terraform_fmt.command = if config.terraform then "${pkgs.terraform}/bin/terraform" else "";
hcl.command = "${pkgs.hclfmt}/bin/hclfmt";
};
};
use.lint = {
linters_by_ft = dsl.toTable {
python = [ "ruff" ];
sh = [ "shellcheck" ];
};
};
vim.api.nvim_create_autocmd = dsl.callWith [
(dsl.toTable [
"BufEnter"
"BufWritePost"
])
(dsl.rawLua "{ callback = function() require('lint').try_lint() end }")
];
lua = ''
${builtins.readFile ./lsp.lua}
local ruff = require('lint').linters.ruff; ruff.cmd = "${pkgs.ruff}/bin/ruff"
local shellcheck = require('lint').linters.shellcheck; shellcheck.cmd = "${pkgs.shellcheck}/bin/shellcheck"
-- Prevent infinite log size (change this when debugging)
vim.lsp.set_log_level("off")
-- Hide buffer diagnostics (use tiny-inline-diagnostic.nvim instead)
vim.diagnostic.config({ virtual_text = false })
'';
}; };
use.lspconfig.nil_ls.setup = dsl.callWith {
cmd = [ "${pkgs.nil}/bin/nil" ];
capabilities = dsl.rawLua "require('cmp_nvim_lsp').default_capabilities()";
};
use.lspconfig.pyright.setup = dsl.callWith {
cmd = [ "${pkgs.pyright}/bin/pyright-langserver" "--stdio" ];
};
use.lspconfig.terraformls.setup =
dsl.callWith { cmd = [ "${pkgs.terraform-ls}/bin/terraform-ls" "serve" ]; };
vim.api.nvim_create_augroup = dsl.callWith [ "LspFormatting" { } ];
lua = ''
${builtins.readFile ./lsp.lua}
require("null-ls").setup({
sources = {
require("null-ls").builtins.formatting.stylua.with({ command = "${pkgs.stylua}/bin/stylua" }),
require("null-ls").builtins.formatting.black.with({ command = "${pkgs.black}/bin/black" }),
require("null-ls").builtins.diagnostics.flake8.with({ command = "${pkgs.python310Packages.flake8}/bin/flake8" }),
require("null-ls").builtins.formatting.fish_indent.with({ command = "${pkgs.fish}/bin/fish_indent" }),
require("null-ls").builtins.formatting.nixfmt.with({ command = "${pkgs.nixfmt}/bin/nixfmt" }),
require("null-ls").builtins.formatting.rustfmt.with({ command = "${pkgs.rustfmt}/bin/rustfmt" }),
require("null-ls").builtins.diagnostics.shellcheck.with({ command = "${pkgs.shellcheck}/bin/shellcheck" }),
require("null-ls").builtins.formatting.shfmt.with({
command = "${pkgs.shfmt}/bin/shfmt",
extra_args = { "-i", "4", "-ci" },
}),
require("null-ls").builtins.formatting.terraform_fmt.with({
command = "${pkgs.terraform}/bin/terraform",
extra_filetypes = { "hcl" },
}),
},
on_attach = function(client, bufnr)
if client.supports_method("textDocument/formatting") then
vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr })
vim.api.nvim_create_autocmd("BufWritePre", {
group = augroup,
buffer = bufnr,
callback = function()
vim.lsp.buf.format({ bufnr = bufnr })
end,
})
end
end,
})
'';
} }

View File

@ -1,17 +1,29 @@
{ pkgs, dsl, lib, ... }: { {
pkgs,
dsl,
lib,
...
}:
{
plugins = [ plugins = [
pkgs.vimPlugins.vim-surround # Keybinds for surround characters pkgs.vimPlugins.vim-surround # Keybinds for surround characters
pkgs.vimPlugins.vim-eunuch # File manipulation commands pkgs.vimPlugins.vim-eunuch # File manipulation commands
pkgs.vimPlugins.vim-fugitive # Git commands pkgs.vimPlugins.vim-fugitive # Git commands
pkgs.vimPlugins.vim-repeat # Better repeat using . pkgs.vimPlugins.vim-repeat # Better repeat using .
pkgs.vimPlugins.comment-nvim # Smart comment commands pkgs.vimPlugins.vim-abolish # Keep capitalization in substitute (Subvert)
pkgs.vimPlugins.impatient-nvim # Faster load times pkgs.vimPlugins.markview-nvim # Markdown preview
pkgs.vimPlugins.glow-nvim # Markdown preview popup
pkgs.vimPlugins.nvim-colorizer-lua # Hex color previews pkgs.vimPlugins.nvim-colorizer-lua # Hex color previews
pkgs.vimPlugins.which-key-nvim # Keybind helper
]; ];
setup.Comment = { }; # Initialize some plugins
setup.colorizer = { }; setup.colorizer = {
user_default_options = {
names = false;
};
};
setup.markview = { };
setup.which-key = { };
vim.o = { vim.o = {
termguicolors = true; # Set to truecolor termguicolors = true; # Set to truecolor
@ -29,7 +41,6 @@
scrolloff = 3; # Margin of lines to see while scrolling scrolloff = 3; # Margin of lines to see while scrolling
splitright = true; # Vertical splits on the right side splitright = true; # Vertical splits on the right side
splitbelow = true; # Horizontal splits on the bottom side splitbelow = true; # Horizontal splits on the bottom side
pastetoggle = "<F3>"; # Use F3 to enter raw paste mode
clipboard = "unnamedplus"; # Uses system clipboard for yanking clipboard = "unnamedplus"; # Uses system clipboard for yanking
updatetime = 300; # Faster diagnostics updatetime = 300; # Faster diagnostics
mouse = "nv"; # Mouse interaction / scrolling mouse = "nv"; # Mouse interaction / scrolling
@ -41,17 +52,26 @@
relativenumber = true; # Relative numbers instead of absolute relativenumber = true; # Relative numbers instead of absolute
}; };
# For which-key-nvim
vim.o.timeout = true;
vim.o.timeoutlen = 300;
# Better backup, swap and undo storage # Better backup, swap and undo storage
vim.o.backup = true; # Easier to recover and more secure vim.o.backup = true; # Easier to recover and more secure
vim.bo.swapfile = false; # Instead of swaps, create backups vim.opt.undofile = true; # Keeps undos after quit
vim.bo.undofile = true; # Keeps undos after quit vim.opt.swapfile = false; # Instead of swaps, create backups
vim.o.backupdir = dsl.rawLua ''vim.fn.stdpath("cache") .. "/backup"''; vim.o.backupdir = dsl.rawLua ''vim.fn.expand("~/.local/state/nvim/backup//")'';
vim.o.undodir = dsl.rawLua ''vim.fn.expand("~/.local/state/nvim/undo//")'';
# Required for nvim-cmp completion # Required for nvim-cmp completion
vim.opt.completeopt = [ "menu" "menuone" "noselect" ]; vim.opt.completeopt = [
"menu"
"menuone"
"noselect"
];
lua = lib.mkBefore '' lua = lib.mkBefore ''
require("impatient") vim.loader.enable()
${builtins.readFile ../lua/keybinds.lua}; ${builtins.readFile ../lua/keybinds.lua};
${builtins.readFile ../lua/settings.lua}; ${builtins.readFile ../lua/settings.lua};
''; '';
@ -60,10 +80,6 @@
" Remember last position when reopening file " Remember last position when reopening file
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal! g`\"" | endif au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal! g`\"" | endif
" LaTeX options
au FileType tex inoremap ;bf \textbf{}<Esc>i
au BufWritePost *.tex silent! execute "!pdflatex -output-directory=%:p:h % >/dev/null 2>&1" | redraw!
" Flash highlight when yanking " Flash highlight when yanking
au TextYankPost * silent! lua vim.highlight.on_yank { timeout = 250 } au TextYankPost * silent! lua vim.highlight.on_yank { timeout = 250 }
''; '';

View File

@ -1,8 +1,9 @@
{ pkgs, ... }: { { pkgs, ... }:
{
plugins = [ pkgs.vimPlugins.lualine-nvim ]; plugins = [ pkgs.vimPlugins.lualine-nvim ];
setup.lualine = { setup.lualine = {
options = { options = {
theme = "gruvbox"; theme = "base16";
icons_enabled = true; icons_enabled = true;
}; };
}; };

View File

@ -1,26 +1,49 @@
{ pkgs, ... }: { { pkgs, lib, ... }:
{
plugins = [ plugins = [
(pkgs.vimPlugins.nvim-treesitter.withPlugins (_plugins: (pkgs.vimPlugins.nvim-treesitter.withPlugins (
with pkgs.tree-sitter-grammars; [ _plugins: with pkgs.tree-sitter-grammars; [
tree-sitter-hcl tree-sitter-bash
tree-sitter-python tree-sitter-c
tree-sitter-lua
tree-sitter-nix
tree-sitter-fish tree-sitter-fish
tree-sitter-toml tree-sitter-hcl
tree-sitter-yaml tree-sitter-ini
tree-sitter-json tree-sitter-json
])) tree-sitter-lua
tree-sitter-markdown
tree-sitter-markdown-inline
tree-sitter-nix
tree-sitter-puppet
tree-sitter-python
tree-sitter-rasi
tree-sitter-toml
tree-sitter-vimdoc
tree-sitter-yaml
]
))
pkgs.vimPlugins.vim-matchup # Better % jumping in languages pkgs.vimPlugins.vim-matchup # Better % jumping in languages
pkgs.vimPlugins.playground # Tree-sitter experimenting
pkgs.vimPlugins.nginx-vim pkgs.vimPlugins.nginx-vim
pkgs.vimPlugins.vim-helm pkgs.vimPlugins.vim-helm
pkgs.vimPlugins.vim-puppet # pkgs.vimPlugins.hmts-nvim # Tree-sitter injections for home-manager
(pkgs.vimUtils.buildVimPlugin {
pname = "nmasur";
version = "0.1";
src = ../plugin;
})
]; ];
setup."nvim-treesitter.configs" = { setup."nvim-treesitter.configs" = {
highlight = { enable = true; }; highlight = {
indent = { enable = true; }; enable = true;
};
indent = {
enable = true;
};
matchup = {
enable = true;
}; # Uses vim-matchup
textobjects = { textobjects = {
select = { select = {
@ -49,4 +72,9 @@
}; };
}; };
# Use mkAfter to ensure tree-sitter is already loaded
lua = lib.mkAfter ''
-- Use HCL parser with .tf files
vim.treesitter.language.register('hcl', 'terraform')
'';
} }

View File

@ -13,6 +13,7 @@ vim.keymap.set("n", "<Leader>gf", telescope.git_bcommits)
vim.keymap.set("n", "<Leader>gb", telescope.git_branches) vim.keymap.set("n", "<Leader>gb", telescope.git_branches)
vim.keymap.set("n", "<Leader>gs", telescope.git_status) vim.keymap.set("n", "<Leader>gs", telescope.git_status)
vim.keymap.set("n", "<Leader>s", telescope.current_buffer_fuzzy_find) vim.keymap.set("n", "<Leader>s", telescope.current_buffer_fuzzy_find)
vim.keymap.set("n", "<Leader>rr", telescope.resume)
vim.keymap.set("n", "<Leader>N", function() vim.keymap.set("n", "<Leader>N", function()
local opts = { local opts = {
@ -45,7 +46,7 @@ end)
vim.keymap.set("n", "<Leader>fz", require("telescope").extensions.zoxide.list) vim.keymap.set("n", "<Leader>fz", require("telescope").extensions.zoxide.list)
-- Project -- Project
require("telescope").load_extension("project") require("telescope").load_extension("projects")
vim.keymap.set("n", "<C-p>", function() vim.keymap.set("n", "<C-p>", function()
local opts = require("telescope.themes").get_ivy({ local opts = require("telescope.themes").get_ivy({
layout_config = { layout_config = {
@ -54,7 +55,7 @@ vim.keymap.set("n", "<C-p>", function()
}, },
}, },
}) })
require("telescope").extensions.project.project(opts) require("telescope").extensions.projects.projects(opts)
end) end)
-- File browser -- File browser

View File

@ -1,8 +1,11 @@
{ pkgs, dsl, ... }: { { pkgs, dsl, ... }:
{
# Telescope is a fuzzy finder that can work with different sub-plugins
plugins = [ plugins = [
pkgs.vimPlugins.telescope-nvim pkgs.vimPlugins.telescope-nvim
pkgs.vimPlugins.telescope-project-nvim pkgs.vimPlugins.project-nvim
pkgs.vimPlugins.telescope-fzy-native-nvim pkgs.vimPlugins.telescope-fzy-native-nvim
pkgs.vimPlugins.telescope-file-browser-nvim pkgs.vimPlugins.telescope-file-browser-nvim
pkgs.vimPlugins.telescope-zoxide pkgs.vimPlugins.telescope-zoxide
@ -18,17 +21,23 @@
}; };
}; };
pickers = { pickers = {
find_files = { theme = "ivy"; }; find_files = {
oldfiles = { theme = "ivy"; }; theme = "ivy";
buffers = { theme = "dropdown"; }; };
oldfiles = {
theme = "ivy";
};
buffers = {
theme = "dropdown";
};
}; };
extensions = { extensions = {
fzy_native = { }; fzy_native = { };
zoxide = { }; zoxide = { };
project = { base_dirs = [ "~/dev" ]; };
}; };
}; };
lua = builtins.readFile ./telescope.lua; setup.project_nvim = { };
lua = builtins.readFile ./telescope.lua;
} }

View File

@ -12,6 +12,8 @@ vim.api.nvim_create_autocmd("TermOpen", {
end, end,
}) })
-- These are all the different types of terminals we can trigger
local terminal = require("toggleterm.terminal").Terminal local terminal = require("toggleterm.terminal").Terminal
local basicterminal = terminal:new() local basicterminal = terminal:new()
@ -19,22 +21,10 @@ function TERM_TOGGLE()
basicterminal:toggle() basicterminal:toggle()
end end
local nixpkgs = terminal:new({ cmd = "nix repl '<nixpkgs>'" }) local nixpkgs = terminal:new({ cmd = "nix repl --expr 'import <nixpkgs>{}'" })
function NIXPKGS_TOGGLE() function NIXPKGS_TOGGLE()
nixpkgs:toggle() nixpkgs:toggle()
end end
local gitwatch = terminal:new({ cmd = "fish --interactive --init-command 'gh run watch'" })
function GITWATCH_TOGGLE()
gitwatch:toggle()
end
local k9s = terminal:new({ cmd = "k9s" })
function K9S_TOGGLE()
k9s:toggle()
end
vim.keymap.set("n", "<Leader>t", TERM_TOGGLE) vim.keymap.set("n", "<Leader>t", TERM_TOGGLE)
vim.keymap.set("n", "<Leader>P", NIXPKGS_TOGGLE) vim.keymap.set("n", "<Leader>P", NIXPKGS_TOGGLE)
vim.keymap.set("n", "<Leader>gw", GITWATCH_TOGGLE)
vim.keymap.set("n", "<Leader>9", K9S_TOGGLE)

View File

@ -1,4 +1,12 @@
{ pkgs, dsl, ... }: { {
pkgs,
dsl,
config,
...
}:
{
# Toggleterm provides a floating terminal inside the editor for quick access
plugins = [ pkgs.vimPlugins.toggleterm-nvim ]; plugins = [ pkgs.vimPlugins.toggleterm-nvim ];
@ -8,6 +16,9 @@
direction = "float"; direction = "float";
}; };
lua = builtins.readFile ./toggleterm.lua; lua = ''
${builtins.readFile ./toggleterm.lua}
${if config.github then (builtins.readFile ./github.lua) else ""}
${if config.kubernetes then (builtins.readFile ./kubernetes.lua) else ""}
'';
} }

View File

@ -1,6 +1,12 @@
{ pkgs, dsl, ... }: { { pkgs, dsl, ... }:
{
plugins = [ pkgs.vimPlugins.nvim-tree-lua pkgs.vimPlugins.nvim-web-devicons ]; # This plugin creates a side drawer for navigating the current project
plugins = [
pkgs.vimPlugins.nvim-tree-lua
pkgs.vimPlugins.nvim-web-devicons
];
# Disable netrw eagerly # Disable netrw eagerly
# https://github.com/kyazdani42/nvim-tree.lua/commit/fb8735e96cecf004fbefb086ce85371d003c5129 # https://github.com/kyazdani42/nvim-tree.lua/commit/fb8735e96cecf004fbefb086ce85371d003c5129
@ -10,14 +16,18 @@
}; };
setup.nvim-tree = { setup.nvim-tree = {
disable_netrw = true; disable_netrw = true; # Disable the built-in file manager
hijack_netrw = true; hijack_netrw = true; # Works as the file manager
sync_root_with_cwd = true; # Change project whenever currend dir changes
respect_buf_cwd = true; # Change to exact location of focused buffer
update_focused_file = { update_focused_file = {
# Change project based on the focused buffer
enable = true; enable = true;
update_cwd = true; update_root = true;
ignore_list = { }; ignore_list = { };
}; };
diagnostics = { diagnostics = {
# Enable LSP and linter integration
enable = true; enable = true;
icons = { icons = {
hint = ""; hint = "";
@ -27,6 +37,7 @@
}; };
}; };
renderer = { renderer = {
# Show files with changes vs. current commit
icons = { icons = {
glyphs = { glyphs = {
git = { git = {
@ -41,37 +52,33 @@
}; };
}; };
}; };
# Set keybinds and initialize program
on_attach = dsl.rawLua ''
function (bufnr)
local api = require('nvim-tree.api')
local function opts(desc)
return { desc = 'nvim-tree: ' .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true }
end
api.config.mappings.default_on_attach(bufnr)
vim.keymap.set('n', 'l', api.node.open.edit, opts('Open'))
vim.keymap.set('n', '<CR>', api.node.open.edit, opts('Open'))
vim.keymap.set('n', 'o', api.node.open.edit, opts('Open'))
vim.keymap.set('n', 'h', api.node.navigate.parent_close, opts('Close Directory'))
vim.keymap.set('n', 'v', api.node.open.vertical, opts('Open: Vertical Split'))
end
'';
view = { view = {
# Set look and feel
width = 30; width = 30;
hide_root_folder = false;
side = "left"; side = "left";
mappings = {
custom_only = false;
list = [
{
key = [ "l" "<CR>" "o" ];
cb = dsl.rawLua
"require('nvim-tree.config').nvim_tree_callback('edit')";
}
{
key = "h";
cb = dsl.rawLua
"require('nvim-tree.config').nvim_tree_callback('close_node')";
}
{
key = "v";
cb = dsl.rawLua
"require('nvim-tree.config').nvim_tree_callback('vsplit')";
}
];
};
number = false; number = false;
relativenumber = false; relativenumber = false;
}; };
}; };
# Toggle the sidebar
lua = '' lua = ''
vim.keymap.set("n", "<Leader>e", ":NvimTreeFindFileToggle<CR>", { silent = true }) vim.keymap.set("n", "<Leader>e", ":NvimTreeFindFileToggle<CR>", { silent = true })
''; '';
} }

View File

@ -1,13 +1,21 @@
{ config, pkgs, lib, ... }: {
config,
pkgs,
lib,
...
}:
let let
neovim = import ./package { neovim = import ./package {
inherit pkgs; inherit pkgs;
colors = import config.theme.colors.neovimConfig { inherit pkgs; }; colors = config.theme.colors;
terraform = config.terraform.enable;
github = true;
kubernetes = config.kubernetes.enable;
}; };
in
in { {
options.neovim.enable = lib.mkEnableOption "Neovim."; options.neovim.enable = lib.mkEnableOption "Neovim.";
@ -18,35 +26,42 @@ in {
home.packages = [ neovim ]; home.packages = [ neovim ];
# Use Neovim as the editor for git commit messages
programs.git.extraConfig.core.editor = "nvim"; programs.git.extraConfig.core.editor = "nvim";
programs.jujutsu.settings.ui.editor = "nvim";
# Set Neovim as the default app for text editing and manual pages
home.sessionVariables = { home.sessionVariables = {
EDITOR = "nvim"; EDITOR = "nvim";
MANPAGER = "nvim +Man!"; MANPAGER = "nvim +Man!";
}; };
# Create quick aliases for launching Neovim
programs.fish = { programs.fish = {
shellAliases = { vim = "nvim"; }; shellAliases = {
vim = "nvim";
};
shellAbbrs = { shellAbbrs = {
v = lib.mkForce "nvim"; v = lib.mkForce "nvim";
vl = lib.mkForce "nvim -c 'normal! `0' -c 'bdelete 1'"; vl = lib.mkForce "nvim -c 'normal! `0' -c 'bdelete 1'";
vll = "nvim -c 'Telescope oldfiles'"; vll = "nvim -c 'Telescope oldfiles'";
}; };
}; };
programs.kitty.settings.scrollback_pager = lib.mkForce ''
${neovim}/bin/nvim -c 'setlocal nonumber nolist showtabline=0 foldcolumn=0|Man!' -c "autocmd VimEnter * normal G" -'';
xdg.desktopEntries.nvim = lib.mkIf pkgs.stdenv.isLinux { # Create a desktop option for launching Neovim from a file manager
# (Requires launching the terminal and then executing Neovim)
xdg.desktopEntries.nvim = lib.mkIf (pkgs.stdenv.isLinux && config.gui.enable) {
name = "Neovim wrapper"; name = "Neovim wrapper";
exec = "kitty nvim %F"; exec = "${config.home-manager.users.${config.user}.programs.rofi.terminal} nvim %F";
mimeType = [
"text/plain"
"text/markdown"
];
}; };
xdg.mimeApps = lib.mkIf pkgs.stdenv.isLinux { xdg.mimeApps.defaultApplications = lib.mkIf pkgs.stdenv.isLinux {
defaultApplications."text/markdown" = [ "nvim.desktop" ]; "text/plain" = [ "nvim.desktop" ];
"text/markdown" = [ "nvim.desktop" ];
}; };
}; };
# # Used for icons in Vim
# fonts.fonts = with pkgs; [ nerdfonts ];
}; };
} }

View File

@ -1,4 +0,0 @@
require("packer_init")
require("settings")
require("keybinds")
require("background")

View File

@ -39,7 +39,6 @@ key("n", "<Leader>fs", ":write<CR>")
key("n", "<Leader>fd", ":lcd %:p:h<CR>", { silent = true }) key("n", "<Leader>fd", ":lcd %:p:h<CR>", { silent = true })
key("n", "<Leader>fu", ":lcd ..<CR>", { silent = true }) key("n", "<Leader>fu", ":lcd ..<CR>", { silent = true })
key("n", "<Leader><Tab>", ":b#<CR>", { silent = true }) key("n", "<Leader><Tab>", ":b#<CR>", { silent = true })
key("n", "<Leader>gr", ":!gh repo view -w<CR><CR>", { silent = true })
key("n", "<Leader>tt", [[<Cmd>exe 'edit $NOTES_PATH/journal/'.strftime("%Y-%m-%d_%a").'.md'<CR>]]) key("n", "<Leader>tt", [[<Cmd>exe 'edit $NOTES_PATH/journal/'.strftime("%Y-%m-%d_%a").'.md'<CR>]])
key("n", "<Leader>jj", ":!journal<CR>:e<CR>") key("n", "<Leader>jj", ":!journal<CR>:e<CR>")
@ -48,11 +47,6 @@ key("n", "<Leader>wv", ":vsplit<CR>")
key("n", "<Leader>wh", ":split<CR>") key("n", "<Leader>wh", ":split<CR>")
key("n", "<Leader>wm", ":only<CR>") key("n", "<Leader>wm", ":only<CR>")
-- Vimrc editing
key("n", "<Leader>rr", ":luafile $HOME/.config/nvim/init.lua<CR>")
key("n", "<Leader>rp", ":luafile $HOME/.config/nvim/init.lua<CR>:PackerInstall<CR>:")
key("n", "<Leader>rc", ":luafile $HOME/.config/nvim/init.lua<CR>:PackerCompile<CR>")
-- Keep cursor in place -- Keep cursor in place
key("n", "n", "nzz") key("n", "n", "nzz")
key("n", "N", "Nzz") key("n", "N", "Nzz")
@ -70,6 +64,12 @@ key("n", "<C-Down>", ":resize -2<CR>", { silent = true })
key("n", "<C-Left>", ":vertical resize -2<CR>", { silent = true }) key("n", "<C-Left>", ":vertical resize -2<CR>", { silent = true })
key("n", "<C-Right>", ":vertical resize +2<CR>", { silent = true }) key("n", "<C-Right>", ":vertical resize +2<CR>", { silent = true })
-- Quickfix
key("n", "]q", ":cnext<CR>")
key("n", "[q", ":cprevious<CR>")
key("n", "co", ":copen<CR>")
key("n", "cq", ":cclose<CR>")
-- Other -- Other
key("n", "<A-CR>", ":noh<CR>", { silent = true }) --- Clear search in VimWiki key("n", "<A-CR>", ":noh<CR>", { silent = true }) --- Clear search in VimWiki
key("n", "Y", "y$") --- Copy to end of line key("n", "Y", "y$") --- Copy to end of line

View File

@ -1,164 +0,0 @@
-- =======================================================================
-- Completion System
-- =======================================================================
local M = {}
M.packer = function(use)
-- Completion sources
use("hrsh7th/cmp-nvim-lsp") --- Language server completion plugin
use("hrsh7th/cmp-buffer") --- Generic text completion
use("hrsh7th/cmp-path") --- Local file completion
use("hrsh7th/cmp-cmdline") --- Command line completion
use("hrsh7th/cmp-nvim-lua") --- Nvim lua api completion
use("saadparwaiz1/cmp_luasnip") --- Luasnip completion
use("lukas-reineke/cmp-rg") --- Ripgrep completion
use("rafamadriz/friendly-snippets") -- Lots of pre-generated snippets
-- Completion engine
use({
"hrsh7th/nvim-cmp",
requires = { "L3MON4D3/LuaSnip" },
config = function()
local cmp = require("cmp")
local kind_icons = {
Text = "",
Method = "m",
Function = "",
Constructor = "",
Field = "",
Variable = "",
Class = "",
Interface = "",
Module = "",
Property = "",
Unit = "",
Value = "",
Enum = "",
Keyword = "",
Snippet = "",
Color = "",
File = "",
Reference = "",
Folder = "",
EnumMember = "",
Constant = "",
Struct = "",
Event = "",
Operator = "",
TypeParameter = "",
}
cmp.setup({
-- Only enable on non-prompt buffers
-- So don't use in telescope
enabled = function()
if vim.bo.buftype == "prompt" then
return false
end
return true
end,
-- Setup snippet completion
snippet = {
expand = function(args)
require("luasnip").lsp_expand(args.body)
end,
},
-- Setup completion keybinds
mapping = {
["<C-n>"] = cmp.mapping(cmp.mapping.select_next_item(), { "i", "c" }),
["<C-p>"] = cmp.mapping(cmp.mapping.select_prev_item(), { "i", "c" }),
["<C-d>"] = cmp.mapping(cmp.mapping.scroll_docs(-4), { "i", "c" }),
["<C-f>"] = cmp.mapping(cmp.mapping.scroll_docs(4), { "i", "c" }),
["<C-e>"] = cmp.mapping(cmp.mapping.abort(), { "i", "c" }),
["<Esc>"] = function(_)
cmp.mapping({
i = cmp.mapping.abort(),
c = cmp.mapping.close(),
})
vim.cmd("stopinsert") --- Abort and leave insert mode
end,
["<CR>"] = cmp.mapping.confirm({
behavior = cmp.ConfirmBehavior.Insert,
select = true,
}),
["<C-r>"] = cmp.mapping.confirm({
behavior = cmp.ConfirmBehavior.Replace,
select = true,
}),
["<C-l>"] = cmp.mapping(function(_)
if require("luasnip").expand_or_jumpable() then
require("luasnip").expand_or_jump()
end
end, { "i", "s" }),
},
-- Setup completion engines
sources = {
{ name = "nvim_lua" },
{ name = "nvim_lsp" },
{ name = "luasnip" },
{ name = "path" },
{ name = "buffer", keyword_length = 3, max_item_count = 10 },
{
name = "rg",
keyword_length = 6,
max_item_count = 10,
option = { additional_arguments = "--ignore-case" },
},
},
-- Visual presentation
formatting = {
fields = { "kind", "abbr", "menu" },
format = function(entry, vim_item)
vim_item.kind = string.format("%s", kind_icons[vim_item.kind])
vim_item.menu = ({
luasnip = "[Snippet]",
buffer = "[Buffer]",
path = "[Path]",
rg = "[Grep]",
nvim_lsp = "[LSP]",
nvim_lua = "[Lua]",
})[entry.source.name]
return vim_item
end,
},
-- Docs
-- window = {
-- completion = cmp.config.window.bordered(),
-- documentation = cmp.config.window.bordered(),
-- },
-- Extra features
experimental = {
native_menu = false, --- Use cmp menu instead of Vim menu
ghost_text = true, --- Show preview auto-completion
},
})
-- Use buffer source for `/`
cmp.setup.cmdline("/", {
sources = {
{ name = "buffer", keyword_length = 5 },
},
})
-- Use cmdline & path source for ':'
cmp.setup.cmdline(":", {
sources = cmp.config.sources({
{ name = "path" },
}, {
{ name = "cmdline" },
}),
})
end,
})
end
return M

Some files were not shown because too many files have changed in this diff Show More