442 Commits

Author SHA1 Message Date
1105bc8fed add microcode service for amd 2024-11-11 18:18:20 -07: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
252 changed files with 9715 additions and 6047 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 }}"

View File

@ -11,10 +11,10 @@ jobs:
- name: Checkout Repository - name: Checkout Repository
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Install Nix - name: Install Nix
uses: DeterminateSystems/nix-installer-action@v4 uses: DeterminateSystems/nix-installer-action@v11
- name: Check Nixpkgs Inputs - name: Check Nixpkgs Inputs
uses: DeterminateSystems/flake-checker-action@v5 uses: DeterminateSystems/flake-checker-action@v7
- name: Add Nix Cache - name: Add Nix Cache
uses: DeterminateSystems/magic-nix-cache-action@v2 uses: DeterminateSystems/magic-nix-cache-action@v6
- name: Check the Flake - name: Check the Flake
run: nix flake check run: nix flake check

View File

@ -3,11 +3,12 @@ name: Update Flake
on: on:
workflow_dispatch: # allows manual triggering workflow_dispatch: # allows manual triggering
schedule: schedule:
- cron: '33 3 * * 0' # runs weekly on Sunday at 03:33 - cron: '33 3 * * 6' # runs weekly on Saturday at 03:33
permissions: permissions:
contents: write contents: write
pull-requests: write pull-requests: write
checks: write
jobs: jobs:
lockfile: lockfile:
@ -17,22 +18,54 @@ jobs:
- name: Checkout Repository - name: Checkout Repository
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Install Nix - name: Install Nix
uses: DeterminateSystems/nix-installer-action@v4 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 - name: Check Nixpkgs Inputs
uses: DeterminateSystems/flake-checker-action@v5 uses: DeterminateSystems/flake-checker-action@v7
- name: Add Nix Cache - name: Add Nix Cache
uses: DeterminateSystems/magic-nix-cache-action@v2 uses: DeterminateSystems/magic-nix-cache-action@v6
- name: Update flake.lock - name: Update flake.lock
uses: DeterminateSystems/update-flake-lock@v19 uses: DeterminateSystems/update-flake-lock@v23
id: update id: update
with: with:
pr-title: "Update flake.lock" # Title of PR to be created pr-title: "Update flake.lock" # Title of PR to be created
pr-labels: | # Labels to be set on the PR pr-labels: | # Labels to be set on the PR
dependencies dependencies
automated 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 - name: Check the Flake
id: check
run: nix flake 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 - name: Enable Pull Request Automerge
run: gh pr merge --rebase --auto ${{ steps.update.outputs.pull-request-number }} 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: env:
GH_TOKEN: ${{ github.token }} GH_TOKEN: ${{ github.token }}

1
.gitignore vendored
View File

@ -1,6 +1,7 @@
.DS_Store .DS_Store
*.bak *.bak
*.db *.db
*.qcow2
**/.direnv/** **/.direnv/**
result result
private/** private/**

View File

@ -9,7 +9,7 @@ configuration may be difficult to translate to a non-Nix system.
## System Features ## System Features
| Feature | Program | Configuration | | Feature | Program | Configuration |
| --- | --- | --- | |----------------|-----------------------------------------------------|-----------------------------------------------|
| OS | [NixOS](https://nixos.org) | [Link](./modules/nixos) | | OS | [NixOS](https://nixos.org) | [Link](./modules/nixos) |
| Display Server | [X11](https://www.x.org/wiki/) | [Link](./modules/nixos/graphical/xorg.nix) | | Display Server | [X11](https://www.x.org/wiki/) | [Link](./modules/nixos/graphical/xorg.nix) |
| Compositor | [Picom](https://github.com/yshui/picom) | [Link](./modules/nixos/graphical/picom.nix) | | Compositor | [Picom](https://github.com/yshui/picom) | [Link](./modules/nixos/graphical/picom.nix) |
@ -21,11 +21,11 @@ configuration may be difficult to translate to a non-Nix system.
## User Features ## User Features
| Feature | Program | Configuration | | Feature | Program | Configuration |
| --- | --- | --- | |--------------|----------------------------------------------------------------------------------|----------------------------------------------------|
| Dotfiles | [Home-Manager](https://github.com/nix-community/home-manager) | [Link](./modules/common) | | 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) | | Terminal | [Kitty](https://sw.kovidgoyal.net/kitty/) | [Link](./modules/common/applications/kitty.nix) |
| Shell | [Fish](https://fishshell.com/) | [Link](./modules/common/shell/fish) | | Shell | [Fish](https://fishshell.com/) | [Link](./modules/common/shell/fish) |
| Shell Prompt | [Starship](https://starship.rs/) | [Link](./modules/common/shell/starhip.nix) | | Shell Prompt | [Starship](https://starship.rs/) | [Link](./modules/common/shell/starship.nix) |
| Colorscheme | [Gruvbox](https://github.com/morhetz/gruvbox) | [Link](./colorscheme/gruvbox/default.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) | | 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) | | Text Editor | [Neovim](https://neovim.io/) | [Link](./modules/common/neovim/config) |
@ -38,9 +38,29 @@ configuration may be difficult to translate to a non-Nix system.
## macOS Features ## macOS Features
| Feature | Program | Configuration | | Feature | Program | Configuration |
| --- | --- | --- | |----------|---------------------------------------------|--------------------------------------|
| Keybinds | [Hammerspoon](https://www.hammerspoon.org/) | [Link](./modules/darwin/hammerspoon) | | 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 # Installation

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 ../misc/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 tempest" \ "Example: installer -- nvme0n1 tempest" \
"Flake example: nix run github:nmasur/dotfiles#installer -- nvme0n1 tempest" "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,12 +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 = (import ../colorscheme/nord).dark; colors = (import ../colorscheme/nord).dark;
}) })
}/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"}
sudo darwin-rebuild switch --flake ${builtins.toString ../.} if [ "$SYSTEM" == "darwin" ]; then
else sudo darwin-rebuild switch --flake ${builtins.toString ../.}
doas nixos-rebuild switch --flake ${builtins.toString ../.} 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 ../misc/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." ''
''); );
} }

View File

@ -16,9 +16,7 @@
base0B = "#dbbc7f"; # Strings, Inherited Class, Markup Code, Diff Inserted base0B = "#dbbc7f"; # Strings, Inherited Class, Markup Code, Diff Inserted
base0C = "#e69875"; # Support, Regular Expressions, Escape Characters, ... base0C = "#e69875"; # Support, Regular Expressions, Escape Characters, ...
base0D = "#a7c080"; # Functions, Methods, Attribute IDs, Headings base0D = "#a7c080"; # Functions, Methods, Attribute IDs, Headings
base0E = base0E = "#e67e80"; # Keywords, Storage, Selector, Markup Italic, Diff Changed
"#e67e80"; # Keywords, Storage, Selector, Markup Italic, Diff Changed base0F = "#d699b6"; # Deprecated, Opening/Closing Embedded Language Tags, ...
base0F =
"#d699b6"; # Deprecated, Opening/Closing Embedded Language Tags, ...
}; };
} }

View File

@ -2,8 +2,7 @@
{ {
name = "gruvbox-dark"; # Dark, Medium name = "gruvbox-dark"; # Dark, Medium
author = author = "Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox), ElRastaOk (https://www.reddit.com/user/ElRastaOk)";
"Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox), ElRastaOk (https://www.reddit.com/user/ElRastaOk)";
dark = { dark = {
base00 = "#1D2122"; # ---- This is the change from normal gruvbox base00 = "#1D2122"; # ---- This is the change from normal gruvbox
base01 = "#3c3836"; # --- base01 = "#3c3836"; # ---

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"; # ---

View File

@ -1,41 +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 {
name = "ESP"; size = "512MiB";
start = "0"; type = "EF00";
end = "512MiB"; label = "boot";
fs-type = "fat32"; device = "/dev/disk/by-label/${label}";
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 {
name = "root"; size = "100%";
start = "512MiB"; label = "nixos";
end = "100%"; device = "/dev/disk/by-label/${label}";
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;
}]; };
}
];
}; };
}; };
}); });

View File

@ -49,19 +49,25 @@ move the `windows/alacritty.yml` file to
To get started on a bare macOS installation, first install Nix: To get started on a bare macOS installation, first install Nix:
```bash ```bash
sh -c "$(curl -L https://nixos.org/nix/install)" curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install
``` ```
Then use Nix to build nix-darwin: Launch a new shell. Then use Nix to switch to the macOS configuration:
```bash ```bash
nix-build https://github.com/LnL7/nix-darwin/archive/master.tar.gz -A installer sudo rm /etc/bashrc
./result/bin/darwin-installer 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
``` ```
Then switch to the macOS configuration: Once installed, you can continue to update the macOS configuration:
```bash ```bash
darwin-rebuild switch --flake github:nmasur/dotfiles#lookingglass darwin-rebuild switch --flake ~/dev/personal/dotfiles
``` ```

View File

@ -63,3 +63,20 @@ Use this mysqldump command:
sudo -u nextcloud mysqldump -S /run/mysqld/mysqld.sock --default-character-set=utf8mb4 nextcloud > backup.sql 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
```

620
flake.lock generated

File diff suppressed because it is too large Load Diff

380
flake.nix
View File

@ -7,22 +7,33 @@
# 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 and dotfiles # 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 for their inputs
}; };
# Used for AMD CPU microcode
ucodenix.url = "github:e-tho/ucodenix";
# Community packages; used for Firefox extensions # Community packages; used for Firefox extensions
nur.url = "github:nix-community/nur"; nur.url = "github:nix-community/nur";
@ -32,6 +43,12 @@
inputs.nixpkgs.follows = "nixpkgs"; 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 = {
url = "github:nix-community/disko"; url = "github:nix-community/disko";
@ -56,39 +73,33 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
# Nix language server
nil = {
url = "github:oxalica/nil/2023-04-03";
inputs.nixpkgs.follows = "nixpkgs";
};
# 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/v0.1.6"; # 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 = {
url = "github:jose-elias-alvarez/null-ls.nvim";
flake = false;
};
baleia-nvim-src = { baleia-nvim-src = {
# https://github.com/m00qek/baleia.nvim/tags
url = "github:m00qek/baleia.nvim"; url = "github:m00qek/baleia.nvim";
flake = false; flake = false;
}; };
Comment-nvim-src = {
url = "github:numToStr/Comment.nvim/v0.8.0";
flake = false;
};
nvim-treesitter-src = { nvim-treesitter-src = {
url = "github:nvim-treesitter/nvim-treesitter/v0.9.0"; # 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/0.1.2"; # 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 = {
@ -96,39 +107,52 @@
flake = false; flake = false;
}; };
toggleterm-nvim-src = { toggleterm-nvim-src = {
url = "github:akinsho/toggleterm.nvim/v2.7.0"; # 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/v4.2.0"; # 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;
}; };
vscode-terraform-snippets = {
url = "github:run-at-scale/vscode-terraform-doc-snippets";
flake = false;
};
hmts-nvim-src = { hmts-nvim-src = {
url = "github:calops/hmts.nvim"; url = "github:calops/hmts.nvim";
flake = false; 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 Grammars
tree-sitter-bash = { tree-sitter-bash = {
# Fix: bash highlighting doesn't work as of this commit: url = "github:tree-sitter/tree-sitter-bash/master";
# https://github.com/NixOS/nixpkgs/commit/49cce41b7c5f6b88570a482355d9655ca19c1029
url =
"github:tree-sitter/tree-sitter-bash/493646764e7ad61ce63ce3b8c59ebeb37f71b841";
flake = false; flake = false;
}; };
tree-sitter-python = { tree-sitter-python = {
# Fix: invalid node in position. Broken as of this commit (replaced with newer): url = "github:tree-sitter/tree-sitter-python/master";
# https://github.com/NixOS/nixpkgs/commit/8ec3627796ecc899e6f47f5bf3c3220856ead9c5 flake = false;
url = };
"github:tree-sitter/tree-sitter-python/5af00f64af6bbf822f208243cce5cf75396fb6f5"; tree-sitter-lua = {
url = "github:MunifTanjim/tree-sitter-lua/main";
flake = false; flake = false;
}; };
tree-sitter-ini = { tree-sitter-ini = {
@ -143,6 +167,10 @@
url = "github:Fymyte/tree-sitter-rasi"; url = "github:Fymyte/tree-sitter-rasi";
flake = false; flake = false;
}; };
tree-sitter-vimdoc = {
url = "github:neovim/tree-sitter-vimdoc";
flake = false;
};
# MPV Scripts # MPV Scripts
zenyd-mpv-scripts = { zenyd-mpv-scripts = {
@ -150,78 +178,118 @@
flake = false; flake = false;
}; };
# 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;
};
# Nextcloud Apps # Nextcloud Apps
nextcloud-news = { nextcloud-news = {
url = # https://github.com/nextcloud/news/releases
"https://github.com/nextcloud/news/releases/download/22.0.0/news.tar.gz"; url = "https://github.com/nextcloud/news/releases/download/25.0.0-alpha12/news.tar.gz";
flake = false; flake = false;
}; };
nextcloud-external = { nextcloud-external = {
url = # https://github.com/nextcloud-releases/external/releases
"https://github.com/nextcloud-releases/external/releases/download/v5.2.0/external-v5.2.0.tar.gz"; url = "https://github.com/nextcloud-releases/external/releases/download/v5.5.2/external-v5.5.2.tar.gz";
flake = false; flake = false;
}; };
nextcloud-cookbook = { nextcloud-cookbook = {
url = # https://github.com/christianlupus-nextcloud/cookbook-releases/releases/
"https://github.com/nextcloud/cookbook/releases/download/v0.10.2/Cookbook-0.10.2.tar.gz"; 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; flake = false;
}; };
}; };
outputs = { nixpkgs, ... }@inputs: outputs =
{ nixpkgs, ... }@inputs:
let let
# Global configuration for my systems # Global configuration for my systems
globals = let baseName = "masu.rs"; globals =
in rec { let
user = "noah"; baseName = "masu.rs";
fullName = "Noah Masur"; in
gitName = fullName; rec {
gitEmail = "7386960+nmasur@users.noreply.github.com"; user = "noah";
mail.server = "noahmasur.com"; fullName = "Noah Masur";
mail.imapHost = "imap.purelymail.com"; gitName = fullName;
mail.smtpHost = "smtp.purelymail.com"; gitEmail = "7386960+nmasur@users.noreply.github.com";
dotfilesRepo = "https://github.com/nmasur/dotfiles"; mail.server = "noahmasur.com";
hostnames = { mail.imapHost = "imap.purelymail.com";
git = "git.${baseName}"; mail.smtpHost = "smtp.purelymail.com";
metrics = "metrics.${baseName}"; dotfilesRepo = "https://github.com/nmasur/dotfiles";
prometheus = "prom.${baseName}"; hostnames = {
secrets = "vault.${baseName}"; audiobooks = "read.${baseName}";
stream = "stream.${baseName}"; files = "files.${baseName}";
content = "cloud.${baseName}"; git = "git.${baseName}";
books = "books.${baseName}"; influxdb = "influxdb.${baseName}";
download = "download.${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
(import ./overlays/neovim-plugins.nix inputs) (import ./overlays/neovim-plugins.nix inputs)
(import ./overlays/calibre-web.nix)
(import ./overlays/disko.nix inputs) (import ./overlays/disko.nix inputs)
(import ./overlays/tree-sitter.nix inputs) (import ./overlays/tree-sitter.nix inputs)
(import ./overlays/caddy.nix inputs)
(import ./overlays/mpv-scripts.nix inputs) (import ./overlays/mpv-scripts.nix inputs)
(import ./overlays/nextcloud-apps.nix inputs) (import ./overlays/nextcloud-apps.nix inputs)
(import ./overlays/betterlockscreen.nix) (import ./overlays/betterlockscreen.nix)
(import ./overlays/gh-collaborators.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
in rec { rec {
# Contains my full system builds, including home-manager # Contains my full system builds, including home-manager
# nixos-rebuild switch --flake .#tempest # 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; };
@ -231,78 +299,143 @@
# Contains my full Mac system builds, including home-manager # Contains my full Mac system builds, including home-manager
# darwin-rebuild switch --flake .#lookingglass # 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 home-manager 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, only used once # Disk formatting, only used once
diskoConfigurations = { root = import ./disks/root.nix; }; diskoConfigurations = {
root = import ./disks/root.nix;
packages = let
aws = system:
import ./hosts/aws { inherit inputs globals overlays system; };
staff = system:
import ./hosts/staff { inherit 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.aws = aws "x86_64-linux";
x86_64-linux.staff = staff "x86_64-linux";
# Package Neovim config into standalone package
x86_64-linux.neovim = neovim "x86_64-linux";
x86_64-darwin.neovim = neovim "x86_64-darwin";
aarch64-linux.neovim = neovim "aarch64-linux";
aarch64-darwin.neovim = neovim "aarch64-darwin";
}; };
packages =
let
staff =
system:
import ./hosts/staff {
inherit
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" ];
}
)
];
};
# Package Neovim config into standalone package
x86_64-linux.neovim = neovim "x86_64-linux";
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 # Programs that can be run by calling this flake
apps = forAllSystems (system: apps = forAllSystems (
let pkgs = import nixpkgs { inherit system overlays; }; system:
in import ./apps { inherit pkgs; }); let
pkgs = import nixpkgs { inherit system overlays; };
in
import ./apps { inherit pkgs; }
);
# Development environments # Development environments
devShells = forAllSystems (system: devShells = forAllSystems (
let pkgs = import nixpkgs { inherit system overlays; }; system:
in { 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 ]; buildInputs = with pkgs; [
git
stylua
nixfmt-rfc-style
shfmt
shellcheck
];
}; };
}
);
}); 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"
checks = forAllSystems (system: # Check for errors inside the health log
let pkgs = import nixpkgs { inherit system overlays; }; if $(grep "ERROR" $out/health.log); then
in { cat $out/health.log
neovim = pkgs.runCommand "neovim-check-health" { exit 1
buildInputs = [ inputs.self.packages.${system}.neovim ]; fi
} '' '';
mkdir -p $out }
export HOME=$TMPDIR );
nvim -c "checkhealth" -c "write $out/health.log" -c "quitall"
# Check for errors inside the health log formatter = forAllSystems (
if $(grep "ERROR" $out/health.log); then system:
cat $out/health.log let
exit 1 pkgs = import nixpkgs { inherit system overlays; };
fi in
''; pkgs.nixfmt-rfc-style
}); );
# Templates for starting other projects quickly # Templates for starting other projects quickly
templates = rec { templates = rec {
@ -323,7 +456,10 @@
path = ./templates/haskell; path = ./templates/haskell;
description = "Haskell template"; description = "Haskell template";
}; };
rust = {
path = ./templates/rust;
description = "Rust template";
};
}; };
}; };
} }

View File

@ -12,3 +12,15 @@ These are the individual machines managed by this flake.
| [swan](./swan/default.nix) | Home server | | [swan](./swan/default.nix) | Home server |
| [tempest](./tempest/default.nix) | Linux desktop | | [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,27 +0,0 @@
{ inputs, system, globals, overlays, ... }:
inputs.nixos-generators.nixosGenerate {
inherit system;
format = "amazon";
modules = [
globals
inputs.home-manager.nixosModules.home-manager
{
nixpkgs.overlays = overlays;
networking.hostName = "sheep";
gui.enable = false;
theme.colors = (import ../../colorscheme/gruvbox).dark;
passwordHash = null;
publicKey =
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB+AbmjGEwITk5CK9y7+Rg27Fokgj9QEjgc9wST6MA3s";
# AWS settings require this
permitRootLogin = "prohibit-password";
}
../../modules/common
../../modules/nixos
../../modules/nixos/services/sshd.nix
] ++ [
# Required to fix diskSize errors during build
({ ... }: { amazonImage.sizeMB = 16 * 1024; })
];
}

View File

@ -1,280 +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@v3
# Enable access to KVM, required to build an image
- name: Enable KVM group perms
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@v1.6.1
with:
role-to-assume: ${{ env.AWS_ROLE_ARN }}
aws-region: ${{ env.AWS_REGION }}
# Install Nix
- name: Install Nix
uses: cachix/install-nix-action@v17
with:
extra_nix_config: |
substituters = s3://insert-cache-bucket https://cache.nixos.org/
trusted-public-keys = insert-cache-bucket:M6PsZjHXcLvbQyPUBLICKEYGVoNwI84g1FBQzouRU= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
# Build the image
- name: Build Image
run: nix build .#aws
# Copy the image to S3
- name: Upload Image to Cache
env:
NIX_CACHE_PRIVATE_KEY: ${{ secrets.NIX_CACHE_PRIVATE_KEY }}
run: |
echo "$NIX_CACHE_PRIVATE_KEY" > cache.key
nix store sign --key-file cache.key $(readlink result)
nix copy --to s3://t2-aws-nixos-test $(readlink result)
rm cache.key
# 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,15 +1,25 @@
# 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. # These days, probably use nixos-anywhere instead.
{ inputs, globals, overlays, ... }: {
inputs,
globals,
overlays,
...
}:
inputs.nixpkgs.lib.nixosSystem { inputs.nixpkgs.lib.nixosSystem rec {
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 = [
globals globals
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
@ -24,7 +34,11 @@ inputs.nixpkgs.lib.nixosSystem {
# Not sure what's necessary but too afraid to remove anything # Not sure what's necessary but too afraid to remove anything
imports = [ (inputs.nixpkgs + "/nixos/modules/profiles/qemu-guest.nix") ]; imports = [ (inputs.nixpkgs + "/nixos/modules/profiles/qemu-guest.nix") ];
boot.initrd.availableKernelModules = [ "xhci_pci" "virtio_pci" "usbhid" ]; boot.initrd.availableKernelModules = [
"xhci_pci"
"virtio_pci"
"usbhid"
];
# File systems must be declared in order to boot # File systems must be declared in order to boot
@ -47,28 +61,36 @@ inputs.nixpkgs.lib.nixosSystem {
gui.enable = false; gui.enable = false;
# Still require colors for programs like Neovim, K9S # Still require colors for programs like Neovim, K9S
theme = { colors = (import ../../colorscheme/gruvbox).dark; }; theme = {
colors = (import ../../colorscheme/gruvbox).dark;
};
# Programs and services # Programs and services
atuin.enable = true;
cloudflare.enable = true; # Proxy traffic with Cloudflare cloudflare.enable = true; # Proxy traffic with Cloudflare
dotfiles.enable = true; # Clone dotfiles dotfiles.enable = true; # Clone dotfiles
neovim.enable = true; neovim.enable = true;
giteaRunner.enable = true; giteaRunner.enable = true;
services.caddy.enable = true; services.caddy.enable = true;
services.grafana.enable = true; services.grafana.enable = true;
services.thelounge.enable = true;
services.openssh.enable = true; services.openssh.enable = true;
services.victoriametrics.enable = true; services.victoriametrics.enable = true;
services.influxdb2.enable = true;
services.gitea.enable = true; services.gitea.enable = true;
services.vaultwarden.enable = true; services.vaultwarden.enable = true;
services.minecraft-server.enable = true; # Setup Minecraft server services.minecraft-server.enable = true; # Setup Minecraft server
services.n8n.enable = true;
services.ntfy-sh.enable = true;
services.uptime-kuma.enable = true;
system.autoUpgrade.enable = true;
# Allows private remote access over the internet # Allows private remote access over the internet
cloudflareTunnel = { cloudflareTunnel = {
enable = true; enable = true;
id = "bd250ee1-ed2e-42d2-b627-039f1eb5a4d2"; id = "bd250ee1-ed2e-42d2-b627-039f1eb5a4d2";
credentialsFile = ../../private/cloudflared-flame.age; credentialsFile = ../../private/cloudflared-flame.age;
ca = ca = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBK/6oyVqjFGX3Uvrc3VS8J9sphxzAnRzKC85xgkHfYgR3TK6qBGXzHrknEj21xeZrr3G2y1UsGzphWJd9ZfIcdA= open-ssh-ca@cloudflareaccess.org";
"ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBK/6oyVqjFGX3Uvrc3VS8J9sphxzAnRzKC85xgkHfYgR3TK6qBGXzHrknEj21xeZrr3G2y1UsGzphWJd9ZfIcdA= open-ssh-ca@cloudflareaccess.org";
}; };
# Nextcloud backup config # Nextcloud backup config
@ -79,8 +101,9 @@ inputs.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"
];
# # Wireguard config for Transmission # # Wireguard config for Transmission
# wireguard.enable = true; # wireguard.enable = true;
@ -110,7 +133,6 @@ inputs.nixpkgs.lib.nixosSystem {
# # VPN port forwarding # # VPN port forwarding
# services.transmission.settings.peer-port = 57599; # services.transmission.settings.peer-port = 57599;
} }
]; ];
} }

View File

@ -1,7 +1,14 @@
# 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.
{
inputs,
globals,
overlays,
...
}:
inputs.nixpkgs.lib.nixosSystem { inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
@ -30,8 +37,7 @@ inputs.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;
@ -39,7 +45,6 @@ inputs.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,20 +1,29 @@
# The Looking Glass # The Looking Glass
# System configuration for my work Macbook # System configuration for my work Macbook
{ inputs, globals, overlays, ... }: {
inputs,
globals,
overlays,
...
}:
inputs.darwin.lib.darwinSystem { inputs.darwin.lib.darwinSystem {
system = "x86_64-darwin"; system = "aarch64-darwin";
specialArgs = { }; specialArgs = { };
modules = [ modules = [
../../modules/common ../../modules/common
../../modules/darwin ../../modules/darwin
(globals // rec { (
user = "Noah.Masur"; globals
gitName = "Noah-Masur_1701"; // rec {
gitEmail = "${user}@take2games.com"; user = "Noah.Masur";
}) gitName = "Noah-Masur_1701";
gitEmail = "${user}@take2games.com";
}
)
inputs.home-manager.darwinModules.home-manager inputs.home-manager.darwinModules.home-manager
inputs.mac-app-util.darwinModules.default
{ {
nixpkgs.overlays = [ inputs.firefox-darwin.overlay ] ++ overlays; nixpkgs.overlays = [ inputs.firefox-darwin.overlay ] ++ overlays;
networking.hostName = "lookingglass"; networking.hostName = "lookingglass";
@ -25,6 +34,7 @@ inputs.darwin.lib.darwinSystem {
dark = true; dark = true;
}; };
mail.user = globals.user; mail.user = globals.user;
atuin.enable = true;
charm.enable = true; charm.enable = true;
neovim.enable = true; neovim.enable = true;
mail.enable = true; mail.enable = true;
@ -34,13 +44,16 @@ inputs.darwin.lib.darwinSystem {
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;
} }
]; ];
} }

View File

@ -1,43 +1,53 @@
# The Staff # The Staff
# ISO configuration for my USB drive # ISO configuration for my USB drive
{ inputs, system, overlays, ... }: {
inputs,
system,
overlays,
...
}:
inputs.nixos-generators.nixosGenerate { inputs.nixos-generators.nixosGenerate {
inherit system; inherit system;
format = "install-iso"; format = "install-iso";
modules = [{ modules = [
nixpkgs.overlays = overlays; {
networking.hostName = "staff"; nixpkgs.overlays = overlays;
users.extraUsers.root.openssh.authorizedKeys.keys = [ networking.hostName = "staff";
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB+AbmjGEwITk5CK9y7+Rg27Fokgj9QEjgc9wST6MA3s" 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 = '' services.openssh = {
experimental-features = nix-command flakes enable = true;
warn-dirty = false 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,11 +1,19 @@
# The Swan # The Swan
# System configuration for my home NAS server # System configuration for my home NAS server
{ inputs, globals, overlays, ... }: {
inputs,
globals,
overlays,
...
}:
inputs.nixpkgs.lib.nixosSystem { inputs.nixpkgs.lib.nixosSystem rec {
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 = [
globals globals
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
@ -21,8 +29,13 @@ inputs.nixpkgs.lib.nixosSystem {
networking.hostName = "swan"; networking.hostName = "swan";
# Not sure what's necessary but too afraid to remove anything # Not sure what's necessary but too afraid to remove anything
boot.initrd.availableKernelModules = boot.initrd.availableKernelModules = [
[ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" ]; "xhci_pci"
"ahci"
"nvme"
"usb_storage"
"sd_mod"
];
# Required for transcoding # Required for transcoding
boot.initrd.kernelModules = [ "amdgpu" ]; boot.initrd.kernelModules = [ "amdgpu" ];
@ -54,8 +67,27 @@ inputs.nixpkgs.lib.nixosSystem {
devices = (import ../../disks/root.nix { disk = "/dev/nvme0n1"; }); devices = (import ../../disks/root.nix { disk = "/dev/nvme0n1"; });
}; };
# Automatically load the ZFS pool on boot zramSwap.enable = true;
boot.zfs.extraPools = [ "tank" ]; 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 # Theming
@ -63,13 +95,18 @@ inputs.nixpkgs.lib.nixosSystem {
gui.enable = false; gui.enable = false;
# Still require colors for programs like Neovim, K9S # Still require colors for programs like Neovim, K9S
theme = { colors = (import ../../colorscheme/gruvbox).dark; }; theme = {
colors = (import ../../colorscheme/gruvbox-dark).dark;
};
# Programs and services # Programs and services
atuin.enable = true;
neovim.enable = true; neovim.enable = true;
cloudflare.enable = true; cloudflare.enable = true;
dotfiles.enable = true; dotfiles.enable = true;
arrs.enable = true; arrs.enable = true;
filebrowser.enable = true;
services.audiobookshelf.enable = true;
services.bind.enable = true; services.bind.enable = true;
services.caddy.enable = true; services.caddy.enable = true;
services.jellyfin.enable = true; services.jellyfin.enable = true;
@ -79,14 +116,16 @@ inputs.nixpkgs.lib.nixosSystem {
services.prometheus.enable = false; services.prometheus.enable = false;
services.vmagent.enable = true; services.vmagent.enable = true;
services.samba.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 # Allows private remote access over the internet
cloudflareTunnel = { cloudflareTunnel = {
enable = true; enable = true;
id = "646754ac-2149-4a58-b51a-e1d0a1f3ade2"; id = "646754ac-2149-4a58-b51a-e1d0a1f3ade2";
credentialsFile = ../../private/cloudflared-swan.age; credentialsFile = ../../private/cloudflared-swan.age;
ca = ca = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCHF/UMtJqPFrf6f6GRY0ZFnkCW7b6sYgUTjTtNfRj1RdmNic1NoJZql7y6BrqQinZvy7nsr1UFDNWoHn6ah3tg= open-ssh-ca@cloudflareaccess.org";
"ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCHF/UMtJqPFrf6f6GRY0ZFnkCW7b6sYgUTjTtNfRj1RdmNic1NoJZql7y6BrqQinZvy7nsr1UFDNWoHn6ah3tg= open-ssh-ca@cloudflareaccess.org";
}; };
# Send regular backups and litestream for DBs to an S3-like bucket # Send regular backups and litestream for DBs to an S3-like bucket
@ -97,8 +136,9 @@ inputs.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"
];
} }
]; ];
} }

View File

@ -1,13 +1,23 @@
# The Tempest # The Tempest
# System configuration for my desktop # System configuration for my desktop
{ inputs, globals, overlays, ... }: {
inputs,
globals,
overlays,
...
}:
inputs.nixpkgs.lib.nixosSystem { inputs.nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = {
pkgs-stable = import inputs.nixpkgs-stable { inherit system; };
pkgs-caddy = import inputs.nixpkgs-caddy { inherit system; };
};
modules = [ modules = [
globals globals
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
inputs.ucodenix.nixosModules.default
../../modules/common ../../modules/common
../../modules/nixos ../../modules/nixos
{ {
@ -18,8 +28,14 @@ inputs.nixpkgs.lib.nixosSystem {
networking.hostName = "tempest"; networking.hostName = "tempest";
# Not sure what's necessary but too afraid to remove anything # Not sure what's necessary but too afraid to remove anything
boot.initrd.availableKernelModules = boot.initrd.availableKernelModules = [
[ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; "nvme"
"xhci_pci"
"ahci"
"usb_storage"
"usbhid"
"sd_mod"
];
# Graphics and VMs # Graphics and VMs
boot.initrd.kernelModules = [ "amdgpu" ]; boot.initrd.kernelModules = [ "amdgpu" ];
@ -34,6 +50,7 @@ inputs.nixpkgs.lib.nixosSystem {
# Allow firmware updates # Allow firmware updates
hardware.cpu.amd.updateMicrocode = true; hardware.cpu.amd.updateMicrocode = true;
services.ucodenix.enable = true;
# Helps reduce GPU fan noise under idle loads # Helps reduce GPU fan noise under idle loads
hardware.fancontrol.enable = true; hardware.fancontrol.enable = true;
@ -83,6 +100,7 @@ inputs.nixpkgs.lib.nixosSystem {
gtk.theme.name = inputs.nixpkgs.lib.mkDefault "Adwaita-dark"; gtk.theme.name = inputs.nixpkgs.lib.mkDefault "Adwaita-dark";
# Programs and services # Programs and services
atuin.enable = true;
charm.enable = true; charm.enable = true;
neovim.enable = true; neovim.enable = true;
media.enable = true; media.enable = true;
@ -98,35 +116,34 @@ inputs.nixpkgs.lib.nixosSystem {
mail.himalaya.enable = true; mail.himalaya.enable = true;
keybase.enable = true; keybase.enable = true;
mullvad.enable = false; mullvad.enable = false;
nixlang.enable = true; rust.enable = true;
terraform.enable = true;
wezterm.enable = true;
yt-dlp.enable = true; yt-dlp.enable = true;
gaming = { gaming = {
dwarf-fortress.enable = true; 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; ryujinx.enable = true;
}; };
services.vmagent.enable = true; # Enables Prometheus metrics services.vmagent.enable = true; # Enables Prometheus metrics
services.openssh.enable = services.openssh.enable = true; # Required for Cloudflare tunnel and identity file
true; # Required for Cloudflare tunnel and identity file
# Allows private remote access over the internet # Allows private remote access over the internet
cloudflareTunnel = { cloudflareTunnel = {
enable = true; enable = true;
id = "ac133a82-31fb-480c-942a-cdbcd4c58173"; id = "ac133a82-31fb-480c-942a-cdbcd4c58173";
credentialsFile = ../../private/cloudflared-tempest.age; credentialsFile = ../../private/cloudflared-tempest.age;
ca = ca = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPY6C0HmdFCaxYtJxFr3qV4/1X4Q8KrYQ1hlme3u1hJXK+xW+lc9Y9glWHrhiTKilB7carYTB80US0O47gI5yU4= open-ssh-ca@cloudflareaccess.org";
"ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPY6C0HmdFCaxYtJxFr3qV4/1X4Q8KrYQ1hlme3u1hJXK+xW+lc9Y9glWHrhiTKilB7carYTB80US0O47gI5yU4= open-ssh-ca@cloudflareaccess.org";
}; };
# Allows requests to force machine to wake up # Allows requests to force machine to wake up
# This network interface might change, needs to be set specifically for each machine. # This network interface might change, needs to be set specifically for each machine.
# Or set usePredictableInterfaceNames = false # Or set usePredictableInterfaceNames = false
networking.interfaces.enp5s0.wakeOnLan.enable = true; networking.interfaces.enp5s0.wakeOnLan.enable = true;
} }
]; ];
} }

View File

@ -4,3 +4,4 @@ ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB+AbmjGEwITk5CK9y7+Rg27Fokgj9QEjgc9wST6MA3s
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHVknmPi7sG6ES0G0jcsvebzKGWWaMfJTYgvOue6EULI flame ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHVknmPi7sG6ES0G0jcsvebzKGWWaMfJTYgvOue6EULI flame
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ9mwXlZnIALt9SnH3FOZvdgHLM5ZqwYUERXBbM7Rwh6 swan ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ9mwXlZnIALt9SnH3FOZvdgHLM5ZqwYUERXBbM7Rwh6 swan
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC3yHivgEXr2ecwe58h9bkhwTYivf3GwL8xenQKMeiUb tempest ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC3yHivgEXr2ecwe58h9bkhwTYivf3GwL8xenQKMeiUb tempest
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICmGHIWBZzRx35/yFgnPJSHN2+35WJ30G9c5tDhPsCrl arrow

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 = [ "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
@ -10,7 +11,7 @@
./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 = {
@ -11,8 +17,8 @@
config = lib.mkIf (config.gui.enable && config.discord.enable) { config = lib.mkIf (config.gui.enable && config.discord.enable) {
unfreePackages = [ "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,
...
}:
{ {
@ -22,58 +27,52 @@
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
(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
"media.ffmpeg.vaapi.enabled" =
true; # Enable hardware video acceleration
"cookiebanners.ui.desktop.enabled" = true; # Reject cookie popups "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 "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 {
@ -114,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;
@ -158,28 +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 = xsession.windowManager.i3.config.keybindings = lib.mkIf pkgs.stdenv.isLinux {
lib.mkIf pkgs.stdenv.isLinux { "${
"${ config.home-manager.users.${config.user}.xsession.windowManager.i3.config.modifier
config.home-manager.users.${config.user}.xsession.windowManager.i3.config.modifier }+Shift+b" = "exec ${
}+Shift+b" = "exec ${ # Don't name the script `firefox` or it will affect grep
# Don't name the script `firefox` or it will affect grep builtins.toString (
builtins.toString (pkgs.writeShellScript "focus-ff.sh" '' pkgs.writeShellScript "focus-ff.sh" ''
count=$(ps aux | grep -c firefox) count=$(ps aux | grep -c firefox)
if [ "$count" -eq 1 ]; then if [ "$count" -eq 1 ]; then
i3-msg "exec --no-startup-id firefox" i3-msg "exec --no-startup-id firefox"
sleep 0.5 sleep 0.5
fi fi
i3-msg "[class=firefox] focus" i3-msg "[class=firefox] focus"
'') ''
}"; )
}; }";
};
}; };
}; };
} }

View File

@ -1,4 +1,10 @@
{ config, pkgs, lib, ... }: { {
config,
pkgs,
lib,
...
}:
{
options = { options = {
kitty = { kitty = {
@ -13,26 +19,28 @@
# Set the Rofi-Systemd terminal for viewing logs # Set the Rofi-Systemd terminal for viewing logs
# Using optionalAttrs because only available in NixOS # Using optionalAttrs because only available in NixOS
environment = { } // lib.attrsets.optionalAttrs environment =
(builtins.hasAttr "sessionVariables" config.environment) { { }
sessionVariables.ROFI_SYSTEMD_TERM = "${pkgs.kitty}/bin/kitty"; // 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} = {
# Set the i3 terminal # Set the i3 terminal
xsession.windowManager.i3.config.terminal = xsession.windowManager.i3.config.terminal = lib.mkIf pkgs.stdenv.isLinux "kitty";
lib.mkIf pkgs.stdenv.isLinux "kitty";
# Set the Rofi terminal for running programs # Set the Rofi terminal for running programs
programs.rofi.terminal = programs.rofi.terminal = lib.mkIf pkgs.stdenv.isLinux (lib.mkDefault "${pkgs.kitty}/bin/kitty");
lib.mkIf pkgs.stdenv.isLinux "${pkgs.kitty}/bin/kitty";
# Display images in the terminal # Display images in the terminal
programs.fish.shellAliases = { programs.fish.interactiveShellInit = # fish
icat = "kitty +kitten icat"; ''
ssh = "kitty +kitten ssh"; if test "$TERM" = "xterm-kitty"
}; alias icat="kitty +kitten icat"
alias ssh="kitty +kitten ssh"
end
'';
programs.kitty = { programs.kitty = {
enable = true; enable = true;
@ -92,8 +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
# Window # Window
window_padding_width = 6; window_padding_width = 6;

View File

@ -1,4 +1,10 @@
{ config, pkgs, lib, ... }: { {
config,
pkgs,
lib,
...
}:
{
options = { options = {
media = { media = {
@ -40,20 +46,22 @@
associations.added = { associations.added = {
"application/pdf" = [ "pwmt.zathura-cb.desktop" ]; "application/pdf" = [ "pwmt.zathura-cb.desktop" ];
"image/jpeg" = [ "nsxiv.desktop" ]; "image/jpeg" = [ "nsxiv.desktop" ];
"image/png" = [ "nsxiv.desktop" ];
"image/*" = [ "nsxiv.desktop" ]; "image/*" = [ "nsxiv.desktop" ];
}; };
associations.removed = { associations.removed = {
"application/pdf" = [ "mupdf.desktop" "wine-extension-pdf.desktop" ]; "application/pdf" = [
"mupdf.desktop"
"wine-extension-pdf.desktop"
];
}; };
defaultApplications = { defaultApplications = {
"application/pdf" = [ "pwmt.zathura-cb.desktop" ]; "application/pdf" = [ "pwmt.zathura-cb.desktop" ];
"image/jpeg" = [ "nsxiv.desktop" ]; "image/jpeg" = [ "nsxiv.desktop" ];
"image/png" = [ "nsxiv.desktop" ];
"image/*" = [ "nsxiv.desktop" ]; "image/*" = [ "nsxiv.desktop" ];
}; };
}; };
}; };
}; };
} }

View File

@ -1,4 +1,10 @@
{ config, pkgs, lib, ... }: { {
config,
pkgs,
lib,
...
}:
{
options = { options = {
obsidian = { obsidian = {
@ -15,9 +21,8 @@
home.packages = with pkgs; [ obsidian ]; home.packages = with pkgs; [ obsidian ];
}; };
# Broken on 2023-04-16 # Broken on 2023-12-11
nixpkgs.config.permittedInsecurePackages = [ "electron-21.4.0" ]; # 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 = {
@ -15,5 +21,4 @@
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 {
@ -47,10 +58,9 @@
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;
@ -67,6 +77,14 @@
default = [ ]; default = [ ];
}; };
hostnames = { hostnames = {
audiobooks = lib.mkOption {
type = lib.types.str;
description = "Hostname for audiobook server (Audiobookshelf).";
};
files = lib.mkOption {
type = lib.types.str;
description = "Hostname for files server (Filebrowser).";
};
git = lib.mkOption { git = lib.mkOption {
type = lib.types.str; type = lib.types.str;
description = "Hostname for git server (Gitea)."; description = "Hostname for git server (Gitea).";
@ -75,10 +93,22 @@
type = lib.types.str; type = lib.types.str;
description = "Hostname for metrics server."; description = "Hostname for metrics server.";
}; };
minecraft = lib.mkOption {
type = lib.types.str;
description = "Hostname for Minecraft server.";
};
paperless = lib.mkOption {
type = lib.types.str;
description = "Hostname for document server (paperless-ngx).";
};
prometheus = lib.mkOption { prometheus = lib.mkOption {
type = lib.types.str; type = lib.types.str;
description = "Hostname for Prometheus server."; description = "Hostname for Prometheus server.";
}; };
influxdb = lib.mkOption {
type = lib.types.str;
description = "Hostname for InfluxDB2 server.";
};
secrets = lib.mkOption { secrets = lib.mkOption {
type = lib.types.str; type = lib.types.str;
description = "Hostname for passwords and secrets (Vaultwarden)."; description = "Hostname for passwords and secrets (Vaultwarden).";
@ -99,63 +129,56 @@
type = lib.types.str; type = lib.types.str;
description = "Hostname for download services."; 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).";
};
}; };
}; };
config = let stateVersion = "23.05"; config =
in { let
stateVersion = "23.05";
in
{
nix = { # Basic common system packages for all devices
environment.systemPackages = with pkgs; [
git
vim
wget
curl
];
# Enable features in Nix commands # Use the system-level nixpkgs instead of Home Manager's
extraOptions = '' home-manager.useGlobalPkgs = true;
experimental-features = nix-command flakes
warn-dirty = false
'';
gc = { # Install packages to /etc/profiles instead of ~/.nix-profile, useful when
automatic = true; # using multiple profiles for one user
options = "--delete-older-than 7d"; home-manager.useUserPackages = true;
};
settings = { # Allow specified unfree packages (identified elsewhere)
# Retrieves package object based on string name
# Add community Cachix to binary cache nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) config.unfreePackages;
# Don't use with macOS because blocked by corporate firewall
builders-use-substitutes = true;
substituters = lib.mkIf (!pkgs.stdenv.isDarwin)
[ "https://nix-community.cachix.org" ];
trusted-public-keys = lib.mkIf (!pkgs.stdenv.isDarwin) [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
# Scans and hard links identical files in the store
# Not working with macOS: https://github.com/NixOS/nix/issues/7273
auto-optimise-store = lib.mkIf (!pkgs.stdenv.isDarwin) true;
};
# Pin a state version to prevent warnings
home-manager.users.${config.user}.home.stateVersion = stateVersion;
home-manager.users.root.home.stateVersion = stateVersion;
}; };
# 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,21 +156,23 @@
"<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" = "${pkgs.aerc}/libexec/aerc/filters/colorize"; "text/plain" = "${pkgs.aerc}/libexec/aerc/filters/colorize";
"text/calendar" = "text/calendar" = "${pkgs.gawk}/bin/awk -f ${pkgs.aerc}/libexec/aerc/filters/calendar";
"${pkgs.gawk}/bin/awk -f ${pkgs.aerc}/libexec/aerc/filters/calendar"; "text/html" = "${pkgs.aerc}/libexec/aerc/filters/html | ${pkgs.aerc}/libexec/aerc/filters/colorize"; # Requires w3m, dante
"text/html" =
"${pkgs.aerc}/libexec/aerc/filters/html | ${pkgs.aerc}/libexec/aerc/filters/colorize"; # Requires w3m, dante
# "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.aerc}/libexec/aerc/filters/colorize";
"message/rfc822" = "${pkgs.aerc}/libexec/aerc/filters/colorize"; "message/rfc822" = "${pkgs.aerc}/libexec/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 -";
@ -176,6 +186,7 @@
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";
}; };
}; };
@ -183,26 +194,27 @@
name = "aerc"; name = "aerc";
exec = "kitty aerc %u"; exec = "kitty aerc %u";
}; };
xsession.windowManager.i3.config.keybindings = xsession.windowManager.i3.config.keybindings = lib.mkIf pkgs.stdenv.isLinux {
lib.mkIf pkgs.stdenv.isLinux { "${
"${ config.home-manager.users.${config.user}.xsession.windowManager.i3.config.modifier
config.home-manager.users.${config.user}.xsession.windowManager.i3.config.modifier }+Shift+e" = "exec ${
}+Shift+e" = "exec ${ # Don't name the script `aerc` or it will affect grep
# Don't name the script `aerc` or it will affect grep builtins.toString (
builtins.toString (pkgs.writeShellScript "focus-mail.sh" '' pkgs.writeShellScript "focus-mail.sh" ''
count=$(ps aux | grep -c aerc) count=$(ps aux | grep -c aerc)
if [ "$count" -eq 1 ]; then if [ "$count" -eq 1 ]; then
i3-msg "exec --no-startup-id kitty --class aerc aerc" i3-msg "exec --no-startup-id kitty --class aerc aerc"
sleep 0.25 sleep 0.25
fi fi
i3-msg "[class=aerc] focus" i3-msg "[class=aerc] focus"
'') ''
}"; )
}; }";
};
programs.fish.shellAbbrs = { ae = "aerc"; };
programs.fish.shellAbbrs = {
ae = "aerc";
};
}; };
}; };
} }

View File

@ -1,6 +1,16 @@
{ config, pkgs, lib, ... }: { {
config,
pkgs,
lib,
...
}:
{
imports = [ ./himalaya.nix ./aerc.nix ./system.nix ]; imports = [
./himalaya.nix
./aerc.nix
./system.nix
];
options = { options = {
mail.enable = lib.mkEnableOption "Mail service."; mail.enable = lib.mkEnableOption "Mail service.";
@ -26,7 +36,9 @@
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 # Automatically check for mail and keep files synced locally
services.mbsync = lib.mkIf pkgs.stdenv.isLinux { services.mbsync = lib.mkIf pkgs.stdenv.isLinux {
@ -44,8 +56,11 @@
# Better local mail search # Better local mail search
programs.notmuch = { programs.notmuch = {
enable = true; enable = true;
new.ignore = new.ignore = [
[ ".mbsyncstate.lock" ".mbsyncstate.journal" ".mbsyncstate.new" ]; ".mbsyncstate.lock"
".mbsyncstate.journal"
".mbsyncstate.new"
];
}; };
accounts.email = { accounts.email = {
@ -54,72 +69,71 @@
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"
"hey"
"admin"
];
# Options for contact completion # Options for contact completion
alot = { }; alot = { };
imap = { imap = {
host = config.mail.imapHost; host = config.mail.imapHost;
port = 993; port = 993;
tls.enable = true; tls.enable = true;
}; };
# Watch for mail and run notifications or sync # Watch for mail and run notifications or sync
imapnotify = { imapnotify = {
enable = true; enable = true;
boxes = [ "Inbox" ]; boxes = [ "Inbox" ];
onNotify = "${pkgs.isync}/bin/mbsync -a"; onNotify = "${pkgs.isync}/bin/mbsync -a";
onNotifyPost = lib.mkIf onNotifyPost =
config.home-manager.users.${config.user}.services.dunst.enable lib.mkIf config.home-manager.users.${config.user}.services.dunst.enable
"${pkgs.libnotify}/bin/notify-send 'New mail arrived'"; "${pkgs.libnotify}/bin/notify-send 'New mail arrived'";
}; };
# Name of the directory in maildir for this account # Name of the directory in maildir for this account
maildir = { path = "main"; }; maildir = {
path = "main";
};
# Bi-directional syncing options for local files # Bi-directional syncing options for local files
mbsync = { mbsync = {
enable = true; enable = true;
create = "both"; create = "both";
expunge = "both"; expunge = "both";
remove = "both"; remove = "both";
patterns = [ "*" ]; patterns = [ "*" ];
extraConfig.channel = { extraConfig.channel = {
CopyArrivalDate = "yes"; # Sync time of original message 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;
}; };
}; };
# 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;
};
};
}; };
}; };
}; };
}; };
} }

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

@ -1,4 +1,10 @@
{ config, pkgs, lib, ... }: { {
config,
pkgs,
lib,
...
}:
{
config = lib.mkIf (config.mail.enable || config.server) { config = lib.mkIf (config.mail.enable || config.server) {
@ -8,17 +14,15 @@
# The system user for sending automatic notifications # The system user for sending automatic notifications
accounts.email.accounts.system = accounts.email.accounts.system =
let address = "system@${config.mail.server}"; let
in { address = "system@${config.mail.server}";
in
{
userName = address; userName = address;
realName = "NixOS System"; realName = "NixOS System";
primary = !config.mail.enable; # Only primary if mail not enabled primary = !config.mail.enable; # Only primary if mail not enabled
inherit address; inherit address;
passwordCommand = passwordCommand = "${pkgs.age}/bin/age --decrypt --identity ${config.identityFile} ${pkgs.writeText "mailpass-system.age" (builtins.readFile ../../../private/mailpass-system.age)}";
"${pkgs.age}/bin/age --decrypt --identity ${config.identityFile} ${
pkgs.writeText "mailpass-system.age"
(builtins.readFile ../../../private/mailpass-system.age)
}";
msmtp.enable = true; msmtp.enable = true;
smtp = { smtp = {
host = config.mail.smtpHost; host = config.mail.smtpHost;
@ -26,9 +30,6 @@
tls.enable = true; tls.enable = true;
}; };
}; };
}; };
}; };
} }

View File

@ -1,4 +1,5 @@
{ pkgs, ... }: { { pkgs, ... }:
{
# Plugin for aligning text programmatically # Plugin for aligning text programmatically

View File

@ -1,19 +1,22 @@
{ pkgs, ... }: { { pkgs, ... }:
{
# Shows buffers in a VSCode-style tab layout # 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 })
@ -21,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

@ -1,4 +1,10 @@
{ pkgs, lib, config, ... }: { {
pkgs,
lib,
config,
...
}:
{
# Sets Neovim colors based on Nix colorscheme # Sets Neovim colors based on Nix colorscheme
@ -8,7 +14,7 @@
}; };
config = { config = {
plugins = [ pkgs.vimPlugins.nvim-base16 ]; plugins = [ pkgs.vimPlugins.base16-nvim ];
setup.base16-colorscheme = config.colors; setup.base16-colorscheme = config.colors;
# Telescope isn't working, shut off for now # Telescope isn't working, shut off for now
@ -18,5 +24,4 @@
} }
''; '';
}; };
} }

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,30 +24,17 @@
end end
''; '';
# Enable Luasnip snippet completion
snippet.expand = dsl.rawLua ''
function(args)
require("luasnip").lsp_expand(args.body)
end
'';
# Basic completion keybinds # Basic completion keybinds
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({
@ -57,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()
@ -70,7 +57,6 @@
sources = [ sources = [
{ name = "nvim_lua"; } # Fills in common Neovim lua functions { name = "nvim_lua"; } # Fills in common Neovim lua functions
{ name = "nvim_lsp"; } # LSP results { name = "nvim_lsp"; } # LSP results
{ name = "luasnip"; } # Snippets
{ name = "path"; } # Shell completion from current PATH { name = "path"; } # Shell completion from current PATH
{ {
name = "buffer"; # Grep for text from the current text buffer name = "buffer"; # Grep for text from the current text buffer
@ -81,13 +67,19 @@
name = "rg"; # Grep for text from the current directory 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 # 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 = {
@ -119,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]",
@ -135,26 +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 = ''
-- Load snippets
-- Check status: :lua require("luasnip").log.open()
require("luasnip.loaders.from_vscode").lazy_load()
require("luasnip.loaders.from_vscode").lazy_load({ paths = { "${
builtins.toString pkgs.vscode-terraform-snippets
}" } })
-- 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" },
}, { }, {
@ -162,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,76 +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}
-- Prevent infinite log size (change this when debugging)
vim.lsp.set_log_level("off")
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.ruff.with({ command = "${pkgs.ruff}/bin/ruff" }),
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
-- Auto-format on save
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,
})
-- Use internal formatting for bindings like gq.
vim.api.nvim_create_autocmd("LspAttach", {
callback = function(args)
vim.bo[args.buf].formatexpr = nil
end,
})
end
end,
})
'';
} }

View File

@ -1,19 +1,28 @@
{ 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.glow-nvim # Markdown preview popup pkgs.vimPlugins.markview-nvim # Markdown preview
pkgs.vimPlugins.nvim-colorizer-lua # Hex color previews pkgs.vimPlugins.nvim-colorizer-lua # Hex color previews
pkgs.vimPlugins.which-key-nvim # Keybind helper pkgs.vimPlugins.which-key-nvim # Keybind helper
]; ];
# Initialize some plugins # Initialize some plugins
setup.Comment = { }; setup.colorizer = {
setup.colorizer = { }; user_default_options = {
setup.glow = { }; names = false;
};
};
setup.markview = { };
setup.which-key = { }; setup.which-key = { };
vim.o = { vim.o = {
@ -32,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
@ -50,14 +58,17 @@
# 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 = vim.o.backupdir = dsl.rawLua ''vim.fn.expand("~/.local/state/nvim/backup//")'';
dsl.rawLua ''vim.fn.expand("~/.local/state/nvim/backup//")'';
vim.o.undodir = dsl.rawLua ''vim.fn.expand("~/.local/state/nvim/undo//")''; 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 ''
vim.loader.enable() vim.loader.enable()
@ -69,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,4 +1,5 @@
{ pkgs, ... }: { { pkgs, ... }:
{
plugins = [ pkgs.vimPlugins.lualine-nvim ]; plugins = [ pkgs.vimPlugins.lualine-nvim ];
setup.lualine = { setup.lualine = {
options = { options = {

View File

@ -1,9 +1,11 @@
{ pkgs, lib, ... }: { { 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-bash tree-sitter-bash
tree-sitter-c
tree-sitter-fish tree-sitter-fish
tree-sitter-hcl tree-sitter-hcl
tree-sitter-ini tree-sitter-ini
@ -16,15 +18,16 @@
tree-sitter-python tree-sitter-python
tree-sitter-rasi tree-sitter-rasi
tree-sitter-toml tree-sitter-toml
tree-sitter-vimdoc
tree-sitter-yaml 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.playground # Tree-sitter experimenting
pkgs.vimPlugins.nginx-vim pkgs.vimPlugins.nginx-vim
pkgs.vimPlugins.vim-helm pkgs.vimPlugins.vim-helm
pkgs.baleia-nvim # Clean ANSI from kitty scrollback # pkgs.vimPlugins.hmts-nvim # Tree-sitter injections for home-manager
# pkgs.hmts-nvim # Tree-sitter injections for home-manager (pkgs.vimUtils.buildVimPlugin {
(pkgs.vimUtils.buildVimPluginFrom2Nix {
pname = "nmasur"; pname = "nmasur";
version = "0.1"; version = "0.1";
src = ../plugin; src = ../plugin;
@ -32,9 +35,15 @@
]; ];
setup."nvim-treesitter.configs" = { setup."nvim-treesitter.configs" = {
highlight = { enable = true; }; highlight = {
indent = { enable = true; }; enable = true;
matchup = { enable = true; }; # Uses vim-matchup };
indent = {
enable = true;
};
matchup = {
enable = true;
}; # Uses vim-matchup
textobjects = { textobjects = {
select = { select = {
@ -68,5 +77,4 @@
-- Use HCL parser with .tf files -- Use HCL parser with .tf files
vim.treesitter.language.register('hcl', 'terraform') vim.treesitter.language.register('hcl', 'terraform')
''; '';
} }

View File

@ -1,4 +1,5 @@
{ pkgs, dsl, ... }: { { pkgs, dsl, ... }:
{
# Telescope is a fuzzy finder that can work with different sub-plugins # Telescope is a fuzzy finder that can work with different sub-plugins
@ -20,9 +21,15 @@
}; };
}; };
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 = { };
@ -33,5 +40,4 @@
setup.project_nvim = { }; setup.project_nvim = { };
lua = builtins.readFile ./telescope.lua; lua = builtins.readFile ./telescope.lua;
} }

View File

@ -21,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,10 @@
{ pkgs, dsl, ... }: { {
pkgs,
dsl,
config,
...
}:
{
# Toggleterm provides a floating terminal inside the editor for quick access # Toggleterm provides a floating terminal inside the editor for quick access
@ -10,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,8 +1,12 @@
{ pkgs, dsl, ... }: { { pkgs, dsl, ... }:
{
# This plugin creates a side drawer for navigating the current project # This plugin creates a side drawer for navigating the current project
plugins = [ pkgs.vimPlugins.nvim-tree-lua pkgs.vimPlugins.nvim-web-devicons ]; 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
@ -16,12 +20,14 @@
hijack_netrw = true; # Works as the file manager hijack_netrw = true; # Works as the file manager
sync_root_with_cwd = true; # Change project whenever currend dir changes sync_root_with_cwd = true; # Change project whenever currend dir changes
respect_buf_cwd = true; # Change to exact location of focused buffer respect_buf_cwd = true; # Change to exact location of focused buffer
update_focused_file = { # Change project based on the focused buffer update_focused_file = {
# Change project based on the focused buffer
enable = true; enable = true;
update_root = true; update_root = true;
ignore_list = { }; ignore_list = { };
}; };
diagnostics = { # Enable LSP and linter integration diagnostics = {
# Enable LSP and linter integration
enable = true; enable = true;
icons = { icons = {
hint = ""; hint = "";
@ -30,7 +36,8 @@
error = ""; error = "";
}; };
}; };
renderer = { # Show files with changes vs. current commit renderer = {
# Show files with changes vs. current commit
icons = { icons = {
glyphs = { glyphs = {
git = { git = {
@ -61,9 +68,9 @@
vim.keymap.set('n', 'v', api.node.open.vertical, opts('Open: Vertical Split')) vim.keymap.set('n', 'v', api.node.open.vertical, opts('Open: Vertical Split'))
end end
''; '';
view = { # Set look and feel view = {
# Set look and feel
width = 30; width = 30;
hide_root_folder = false;
side = "left"; side = "left";
number = false; number = false;
relativenumber = false; relativenumber = false;
@ -74,5 +81,4 @@
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 = config.theme.colors; 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.";
@ -30,7 +38,9 @@ in {
# Create quick aliases for launching Neovim # 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'";
@ -38,27 +48,20 @@ in {
}; };
}; };
# Set Neovim as the kitty terminal "scrollback" (vi mode) option.
# Requires removing some of the ANSI escape codes that are sent to the
# scrollback using sed and baleia, as well as removing several
# unnecessary features.
programs.kitty.settings.scrollback_pager = ''
$SHELL -c 'sed -r "s/[[:cntrl:]]\]133;[AC]..//g" | ${neovim}/bin/nvim -c "setlocal nonumber norelativenumber nolist laststatus=0" -c "lua baleia = require(\"baleia\").setup({}); baleia.once(0)" -c "map <silent> q :qa!<CR>" -c "autocmd VimEnter * normal G"' '';
# Create a desktop option for launching Neovim from a file manager # Create a desktop option for launching Neovim from a file manager
# (Requires launching the terminal and then executing Neovim) # (Requires launching the terminal and then executing Neovim)
xdg.desktopEntries.nvim = lib.mkIf pkgs.stdenv.isLinux { 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" ]; mimeType = [
"text/plain"
"text/markdown"
];
}; };
xdg.mimeApps.defaultApplications = lib.mkIf pkgs.stdenv.isLinux { xdg.mimeApps.defaultApplications = lib.mkIf pkgs.stdenv.isLinux {
"text/plain" = [ "nvim.desktop" ]; "text/plain" = [ "nvim.desktop" ];
"text/markdown" = [ "nvim.desktop" ]; "text/markdown" = [ "nvim.desktop" ];
}; };
}; };
}; };
} }

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 browse %<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>")
@ -65,9 +64,15 @@ 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
key("v", "<C-r>", "y<Esc>:%s/<C-r>+//gc<left><left><left>") --- Substitute selected key("v", "<C-r>", "y<Esc>:%s/<C-r>+//gc<left><left><left>") --- Substitute selected
key("v", "D", "y'>gp") --- Duplicate selected key("v", "D", "y'>gp") --- Duplicate selected
key("x", "<Leader>p", '"_dP') --- Paste but keep register key("x", "<Leader>p", '"_dP') --- Paste but keep register

View File

@ -11,8 +11,20 @@ vim.filetype.add({
}) })
vim.api.nvim_create_autocmd("FileType", { vim.api.nvim_create_autocmd("FileType", {
pattern = "*.eml", pattern = "mail",
callback = function() callback = function()
vim.o.wrapmargin = 79 -- Wrap text automatically vim.o.wrapmargin = 79 -- Wrap text automatically
end, end,
}) })
vim.api.nvim_create_autocmd("FileType", {
pattern = "markdown",
command = "TableModeEnable",
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "terraform",
callback = function()
vim.bo.commentstring = "# %s"
end,
})

View File

@ -26,13 +26,25 @@
# ] ++ extraConfig; # ] ++ extraConfig;
# } # }
{ pkgs, colors, ... }: {
pkgs,
colors,
terraform ? false,
github ? false,
kubernetes ? false,
...
}:
# Comes from nix2vim overlay: # Comes from nix2vim overlay:
# https://github.com/gytis-ivaskevicius/nix2vim/blob/master/lib/neovim-builder.nix # https://github.com/gytis-ivaskevicius/nix2vim/blob/master/lib/neovim-builder.nix
pkgs.neovimBuilder { pkgs.neovimBuilder {
package = pkgs.neovim-unwrapped; package = pkgs.neovim-unwrapped;
inherit colors; inherit
colors
terraform
github
kubernetes
;
imports = [ imports = [
../config/align.nix ../config/align.nix
../config/bufferline.nix ../config/bufferline.nix

View File

@ -1,12 +1,12 @@
{ ... }: { { ... }:
{
imports = [ imports = [
./haskell.nix ./haskell.nix
./kubernetes.nix ./kubernetes.nix
./lua.nix ./lua.nix
./nix.nix
./python.nix ./python.nix
./rust.nix
./terraform.nix ./terraform.nix
]; ];
} }

View File

@ -1,14 +1,12 @@
{ config, lib, ... }: { { config, lib, ... }:
{
options.haskell.enable = lib.mkEnableOption "Haskell programming language."; options.haskell.enable = lib.mkEnableOption "Haskell programming language.";
config = lib.mkIf config.haskell.enable { config = lib.mkIf config.haskell.enable {
# Binary Cache for Haskell.nix # Binary Cache for Haskell.nix
nix.settings.trusted-public-keys = nix.settings.trusted-public-keys = [ "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" ];
[ "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" ];
nix.settings.substituters = [ "https://cache.iog.io" ]; nix.settings.substituters = [ "https://cache.iog.io" ];
}; };
} }

View File

@ -1,4 +1,10 @@
{ config, pkgs, lib, ... }: { {
config,
pkgs,
lib,
...
}:
{
options.kubernetes.enable = lib.mkEnableOption "Kubernetes tools."; options.kubernetes.enable = lib.mkEnableOption "Kubernetes tools.";
@ -24,122 +30,135 @@
# Terminal Kubernetes UI # Terminal Kubernetes UI
programs.k9s = { programs.k9s = {
enable = true; enable = true;
# settings = { k9s = { headless = true; }; }; settings = {
skin = {
k9s = { k9s = {
body = { ui = {
fgColor = config.theme.colors.base06; enableMouse = true;
bgColor = config.theme.colors.base00; headless = true;
logoColor = config.theme.colors.base02; # *blue ? logoless = true;
crumbsless = false;
skin = "main";
}; };
# Search bar };
prompt = { };
fgColor = config.theme.colors.base06; skins = {
bgColor = config.theme.colors.base00; main = {
suggestColor = config.theme.colors.base03; k9s = {
}; body = {
# Header left side
info = {
fgColor = config.theme.colors.base04;
sectionColor = config.theme.colors.base05;
};
dialog = {
fgColor = config.theme.colors.base06;
bgColor = config.theme.colors.base00;
buttonFgColor = config.theme.colors.base06;
buttonBgColor = config.theme.colors.base0E;
buttonFocusFgColor = config.theme.colors.base07;
buttonFocusBgColor = config.theme.colors.base02; # *cyan
labelFgColor = config.theme.colors.base09;
fieldFgColor = config.theme.colors.base06;
};
frame = {
border = {
fgColor = config.theme.colors.base01;
focusColor = config.theme.colors.base06;
};
menu = {
fgColor = config.theme.colors.base06; fgColor = config.theme.colors.base06;
keyColor = config.theme.colors.base0E; # *magenta bgColor = "default";
numKeyColor = config.theme.colors.base0E; # *magenta logoColor = config.theme.colors.base02; # *blue ?
}; };
crumbs = { # Search bar
prompt = {
fgColor = config.theme.colors.base06; fgColor = config.theme.colors.base06;
bgColor = config.theme.colors.base01; bgColor = "default";
activeColor = config.theme.colors.base03; suggestColor = config.theme.colors.base03;
}; };
status = { # Header left side
newColor = config.theme.colors.base04; # *cyan info = {
modifyColor = config.theme.colors.base0D; # *blue fgColor = config.theme.colors.base04;
addColor = config.theme.colors.base0B; # *green sectionColor = config.theme.colors.base05;
errorColor = config.theme.colors.base08; # *red
highlightColor = config.theme.colors.base09; # *orange
killColor = config.theme.colors.base03; # *comment
completedColor = config.theme.colors.base03; # *comment
}; };
title = { dialog = {
fgColor = config.theme.colors.base06; fgColor = config.theme.colors.base06;
bgColor = config.theme.colors.base00; bgColor = "default";
highlightColor = config.theme.colors.base09; # *orange buttonFgColor = config.theme.colors.base06;
counterColor = config.theme.colors.base0D; # *blue buttonBgColor = config.theme.colors.base0E;
filterColor = config.theme.colors.base0E; # *magenta buttonFocusFgColor = config.theme.colors.base07;
buttonFocusBgColor = config.theme.colors.base02; # *cyan
labelFgColor = config.theme.colors.base09;
fieldFgColor = config.theme.colors.base06;
}; };
}; frame = {
views = { border = {
charts = { fgColor = config.theme.colors.base01;
bgColor = config.theme.colors.base00; focusColor = config.theme.colors.base06;
defaultDialColors = };
[ config.theme.colors.base0D config.theme.colors.base08 ]; menu = {
# - *blue fgColor = config.theme.colors.base06;
# - *red keyColor = config.theme.colors.base0E; # *magenta
defaultChartColors = numKeyColor = config.theme.colors.base0E; # *magenta
[ config.theme.colors.base0D config.theme.colors.base08 ]; };
# - *blue crumbs = {
# - *red fgColor = config.theme.colors.base06;
}; bgColor = config.theme.colors.base01;
table = { activeColor = config.theme.colors.base03;
# List of resources };
fgColor = config.theme.colors.base06; status = {
bgColor = config.theme.colors.base00; newColor = config.theme.colors.base04; # *cyan
modifyColor = config.theme.colors.base0D; # *blue
# Row selection addColor = config.theme.colors.base0B; # *green
cursorFgColor = config.theme.colors.base07; errorColor = config.theme.colors.base08; # *red
cursorBgColor = config.theme.colors.base01; highlightColor = config.theme.colors.base09; # *orange
killColor = config.theme.colors.base03; # *comment
# Header row completedColor = config.theme.colors.base03; # *comment
header = { };
fgColor = config.theme.colors.base0D; title = {
bgColor = config.theme.colors.base00; fgColor = config.theme.colors.base06;
sorterColor = config.theme.colors.base0A; # *selection bgColor = "default";
highlightColor = config.theme.colors.base09; # *orange
counterColor = config.theme.colors.base0D; # *blue
filterColor = config.theme.colors.base0E; # *magenta
}; };
}; };
xray = { views = {
fgColor = config.theme.colors.base06; charts = {
bgColor = config.theme.colors.base00; bgColor = "default";
cursorColor = config.theme.colors.base06; defaultDialColors = [
graphicColor = config.theme.colors.base0D; config.theme.colors.base0D
showIcons = false; config.theme.colors.base08
}; ];
yaml = { # - *blue
keyColor = config.theme.colors.base0D; # - *red
colonColor = config.theme.colors.base04; defaultChartColors = [
fgColor = config.theme.colors.base03; config.theme.colors.base0D
}; config.theme.colors.base08
logs = { ];
fgColor = config.theme.colors.base06; # - *blue
bgColor = config.theme.colors.base00; # - *red
indicator = { };
table = {
# List of resources
fgColor = config.theme.colors.base06; fgColor = config.theme.colors.base06;
bgColor = config.theme.colors.base00; bgColor = "default";
# Row selection
cursorFgColor = config.theme.colors.base07;
cursorBgColor = config.theme.colors.base01;
# Header row
header = {
fgColor = config.theme.colors.base0D;
bgColor = "default";
sorterColor = config.theme.colors.base0A; # *selection
};
};
xray = {
fgColor = config.theme.colors.base06;
bgColor = "default";
cursorColor = config.theme.colors.base06;
graphicColor = config.theme.colors.base0D;
showIcons = false;
};
yaml = {
keyColor = config.theme.colors.base0D;
colonColor = config.theme.colors.base04;
fgColor = config.theme.colors.base03;
};
logs = {
fgColor = config.theme.colors.base06;
bgColor = "default";
indicator = {
fgColor = config.theme.colors.base06;
bgColor = "default";
};
}; };
}; };
}; };
}; };
}; };
}; };
}; };
}; };
} }

View File

@ -1,4 +1,10 @@
{ config, pkgs, lib, ... }: { {
config,
pkgs,
lib,
...
}:
{
options.lua.enable = lib.mkEnableOption "Lua programming language."; options.lua.enable = lib.mkEnableOption "Lua programming language.";
@ -8,5 +14,4 @@
sumneko-lua-language-server # Lua LSP sumneko-lua-language-server # Lua LSP
]; ];
}; };
} }

View File

@ -1,18 +0,0 @@
{ config, pkgs, lib, ... }: {
options.nixlang.enable = lib.mkEnableOption "Nix programming language.";
config = lib.mkIf config.nixlang.enable {
home-manager.users.${config.user} = {
home.packages = with pkgs; [
nixfmt # Nix file formatter
nil # Nix language server
];
};
};
}

View File

@ -1,4 +1,10 @@
{ config, pkgs, lib, ... }: { {
config,
pkgs,
lib,
...
}:
{
options.python.enable = lib.mkEnableOption "Python programming language."; options.python.enable = lib.mkEnableOption "Python programming language.";
@ -8,15 +14,14 @@
home.packages = with pkgs; [ home.packages = with pkgs; [
# python310 # Standard Python interpreter # python310 # Standard Python interpreter
nodePackages.pyright # Python language server pyright # Python language server
black # Python formatter black # Python formatter
python310Packages.flake8 # Python linter python310Packages.flake8 # Python linter
]; ];
programs.fish.shellAbbrs = { py = "python3"; }; programs.fish.shellAbbrs = {
py = "python3";
};
}; };
}; };
} }

View File

@ -0,0 +1,27 @@
{
config,
pkgs,
lib,
...
}:
{
options.rust.enable = lib.mkEnableOption "Rust programming language.";
config = lib.mkIf config.rust.enable {
home-manager.users.${config.user} = {
programs.fish.shellAbbrs = {
ca = "cargo";
};
home.packages = with pkgs; [
cargo
rustc
clippy
gcc
];
};
};
}

View File

@ -1,8 +1,15 @@
{ config, pkgs, lib, ... }: { {
config,
pkgs,
lib,
...
}:
{
options.terraform.enable = lib.mkEnableOption "Terraform tools."; options.terraform.enable = lib.mkEnableOption "Terraform tools.";
config = lib.mkIf config.terraform.enable { config = lib.mkIf config.terraform.enable {
unfreePackages = [ "terraform" ];
home-manager.users.${config.user} = { home-manager.users.${config.user} = {
programs.fish.shellAbbrs = { programs.fish.shellAbbrs = {
@ -14,9 +21,6 @@
terraform-ls # Language server terraform-ls # Language server
tflint # Linter tflint # Linter
]; ];
}; };
}; };
} }

View File

@ -1,5 +1,8 @@
{ ... }: { { ... }:
{
imports = [ ./dotfiles.nix ./notes.nix ];
imports = [
./dotfiles.nix
./notes.nix
];
} }

View File

@ -1,4 +1,10 @@
{ config, pkgs, lib, ... }: { {
config,
pkgs,
lib,
...
}:
{
# Allows me to make sure I can work on my dotfiles locally # Allows me to make sure I can work on my dotfiles locally
@ -11,23 +17,17 @@
home.activation = { home.activation = {
# Always clone dotfiles repository if it doesn't exist # Always clone dotfiles repository if it doesn't exist
cloneDotfiles = cloneDotfiles = config.home-manager.users.${config.user}.lib.dag.entryAfter [ "writeBoundary" ] ''
config.home-manager.users.${config.user}.lib.dag.entryAfter if [ ! -d "${config.dotfilesPath}" ]; then
[ "writeBoundary" ] '' $DRY_RUN_CMD mkdir --parents $VERBOSE_ARG $(dirname "${config.dotfilesPath}")
if [ ! -d "${config.dotfilesPath}" ]; then $DRY_RUN_CMD ${pkgs.git}/bin/git \
$DRY_RUN_CMD mkdir --parents $VERBOSE_ARG $(dirname "${config.dotfilesPath}") clone ${config.dotfilesRepo} "${config.dotfilesPath}"
$DRY_RUN_CMD ${pkgs.git}/bin/git \ fi
clone ${config.dotfilesRepo} "${config.dotfilesPath}" '';
fi
'';
}; };
# Set a variable for dotfiles repo, not necessary but convenient # Set a variable for dotfiles repo, not necessary but convenient
home.sessionVariables.DOTS = config.dotfilesPath; home.sessionVariables.DOTS = config.dotfilesPath;
}; };
}; };
} }

View File

@ -1,4 +1,10 @@
{ config, ... }: { {
config,
pkgs,
lib,
...
}:
{
# This is just a placeholder as I expect to interact with my notes in a # This is just a placeholder as I expect to interact with my notes in a
# certain location # certain location
@ -9,6 +15,22 @@
NOTES_PATH = "${config.homePath}/dev/personal/notes/content"; NOTES_PATH = "${config.homePath}/dev/personal/notes/content";
}; };
# Sync notes for Nextcloud automatically
systemd.user.timers.refresh-notes = lib.mkIf config.services.nextcloud.enable {
Timer = {
OnCalendar = "*-*-* *:0/10:50"; # Every 10 minutes
Unit = "refresh-notes.service";
};
};
systemd.user.services.refresh-notes = {
Unit.Description = "Get latest notes.";
Service = {
Type = "oneshot";
ExecStartPre = "${pkgs.git}/bin/git -C /data/git/notes reset --hard master";
ExecStart = "${pkgs.git}/bin/git -C /data/git/notes pull";
WorkingDirectory = config.homePath;
Environment = "PATH=${pkgs.openssh}/bin";
};
};
}; };
} }

View File

@ -0,0 +1,39 @@
{ config, lib, ... }:
{
# Shell history sync
options.atuin.enable = lib.mkEnableOption "Atuin";
config = {
home-manager.users.${config.user} = lib.mkIf config.atuin.enable {
programs.atuin = {
enable = true;
flags = [
"--disable-up-arrow"
"--disable-ctrl-r"
];
settings = {
auto_sync = true;
update_check = false;
sync_address = "https://api.atuin.sh";
search_mode = "fuzzy";
filter_mode = "host"; # global, host, session, directory
search_mode_shell_up_key_binding = "fuzzy";
filter_mode_shell_up_key_binding = "session";
style = "compact"; # or auto,full
show_help = true;
history_filter = [ ];
secrets_filter = true;
enter_accept = false;
keymap_mode = "vim-normal";
};
};
};
# Give root user the same setup
home-manager.users.root.programs.atuin = config.home-manager.users.${config.user}.programs.atuin;
};
}

View File

@ -1,12 +1,17 @@
{ config, pkgs, lib, ... }: { {
config,
pkgs,
lib,
...
}:
{
config = { config = {
home-manager.users.${config.user} = { home-manager.users.${config.user} = {
programs.bash = { programs.bash = {
enable = true; enable = true;
shellAliases = shellAliases = config.home-manager.users.${config.user}.programs.fish.shellAliases;
config.home-manager.users.${config.user}.programs.fish.shellAliases;
initExtra = ""; initExtra = "";
profileExtra = ""; profileExtra = "";
}; };
@ -14,7 +19,6 @@
programs.starship.enableBashIntegration = false; programs.starship.enableBashIntegration = false;
programs.zoxide.enableBashIntegration = true; programs.zoxide.enableBashIntegration = true;
programs.fzf.enableBashIntegration = true; programs.fzf.enableBashIntegration = true;
}; };
}; };
} }

View File

@ -0,0 +1,22 @@
#!/usr/bin/env bash
# Retrieve list of AWS instances
# Use enter to jump into their sessions with SSM
# Specify AWS_PROFILE and AWS_REGION before running this script
aws ec2 describe-instances \
--filters "Name=instance-state-name,Values=running" |
jq -r \
'.Reservations[]
| .Instances[]
| .InstanceId + " - " +
(.PrivateIpAddress // "n/a") + " - " +
(.PublicIpAddress // "n/a") + " - " +
(.Tags // [] | from_entries | .Name // "n/a")' |
fzf \
--height 100% \
--layout reverse \
--header $'Press Enter to start SSM session\nInstance ID - Private IP - Public IP - Name' \
--preview "aws ec2 describe-instances --instance-ids \"\$(echo {} | cut -d' ' -f1)\" | jq -r '.Reservations[].Instances[0]'" \
--bind "enter:become(aws ssm start-session --target \$(echo {} | cut -d' ' -f1))"

View File

@ -31,6 +31,10 @@ STATUS=$?
# because tesseract adds .txt to the given file path anyways. So if we were to # because tesseract adds .txt to the given file path anyways. So if we were to
# specify /tmp/ocr.txt as the file path, tesseract would out the text to # specify /tmp/ocr.txt as the file path, tesseract would out the text to
# /tmp/ocr.txt.txt # /tmp/ocr.txt.txt
cd /tmp || {
echo "Failed to jump to directory."
exit 1
}
tesseract "$IMAGE_FILE" "${TEXT_FILE//\.txt/}" tesseract "$IMAGE_FILE" "${TEXT_FILE//\.txt/}"
# Check if the text was detected by checking number # Check if the text was detected by checking number

View File

@ -0,0 +1,55 @@
#!/usr/bin/env bash
export AWS_PROFILE="gs"
BUCKET_NAME_PART_1="t2"
BUCKET_NAME_PART_2="global"
BUCKET_NAME_PART_3="terraformstate"
PROJECT_ROOT=$(git rev-parse --show-toplevel)
WORKFLOW_FILE="${PROJECT_ROOT}/.github/workflows/terraform.yml"
if [ ! -f "$WORKFLOW_FILE" ]; then
WORKFLOW_FILE="${PROJECT_ROOT}/.github/workflows/apply.yml"
fi
AWS_ACCOUNT_NUMBER=$(
awk '/aws_account_number: .*/ {print $2}' "$WORKFLOW_FILE" | # Grab account number
echo "$(
read -r s
s=${s//\'/}
echo "$s"
)" # Remove single quote if it exists
)
if [ -z "${AWS_ACCOUNT_NUMBER}" ]; then
AWS_ACCOUNT_NUMBER=$(
awk '/AWS_ACCOUNT_NUMBER: .*/ {print $2}' "$WORKFLOW_FILE" | # Grab account number
echo "$(
read -r s
s=${s//\'/}
echo "$s"
)" # Remove single quote if it exists
)
fi
REPOSITORY=$(
git remote get-url origin |
awk -F'/' -v OFS='/' '{print $(NF-1),$NF }' |
echo "$(
read -r s
s=${s%.git}
echo "$s"
)" # Remove .git suffix if it exists
)
BRANCH=$(git branch --show-current)
terraform init \
-backend-config="region=us-east-1" \
-backend-config="bucket=${BUCKET_NAME_PART_1}${BUCKET_NAME_PART_2}${BUCKET_NAME_PART_3}" \
-backend-config="workspace_key_prefix=accounts/${AWS_ACCOUNT_NUMBER}/${REPOSITORY}" \
-backend-config="key=state.tfstate" \
-backend-config="dynamodb_table=global-tf-state-lock" \
-upgrade
terraform workspace select "$BRANCH"

View File

@ -1,4 +1,10 @@
{ config, pkgs, lib, ... }: { {
config,
pkgs,
lib,
...
}:
{
# Convenience utilities from charm.sh # Convenience utilities from charm.sh
@ -10,8 +16,7 @@
glow # Markdown previews glow # Markdown previews
skate # Key-value store skate # Key-value store
charm # Manage account and filesystem charm # Manage account and filesystem
pop # Send emails from a TUI
]; ];
}; };
} }

View File

@ -1,5 +1,7 @@
{ ... }: { { ... }:
{
imports = [ imports = [
./atuin.nix
./bash ./bash
./charm.nix ./charm.nix
./direnv.nix ./direnv.nix
@ -11,5 +13,6 @@
./nixpkgs.nix ./nixpkgs.nix
./starship.nix ./starship.nix
./utilities.nix ./utilities.nix
./work.nix
]; ];
} }

View File

@ -1,16 +1,36 @@
{ config, ... }: { { config, ... }:
{
# Enables quickly entering Nix shells when changing directories # Enables quickly entering Nix shells when changing directories
home-manager.users.${config.user}.programs.direnv = { home-manager.users.${config.user}.programs.direnv = {
enable = true; enable = true;
nix-direnv.enable = true; nix-direnv.enable = true;
config = { whitelist = { prefix = [ config.dotfilesPath ]; }; }; config = {
whitelist = {
prefix = [ config.dotfilesPath ];
};
};
}; };
# programs.direnv.direnvrcExtra = ''
# layout_postgres() {
# export PGDATA="$(direnv_layout_dir)/postgres"
# export PGHOST="$PGDATA"
#
# if [[ ! -d "PGDATA" ]]; then
# initdb
# cat >> "$PGDATA/postgres.conf" <<- EOF
# listen_addresses = '''
# unix_socket_directories = '$PGHOST'
# EOF
# echo "CREATE DATABASE $USER;" | postgres --single -E postgres
# fi
# }
# '';
# Prevent garbage collection # Prevent garbage collection
nix.extraOptions = '' nix.extraOptions = ''
keep-outputs = true keep-outputs = true
keep-derivations = true keep-derivations = true
''; '';
} }

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