45 Commits

Author SHA1 Message Date
f85a008741 set checks on individual languages 2024-02-07 23:04:08 -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
51 changed files with 652 additions and 419 deletions

View File

@ -31,6 +31,12 @@ jobs:
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 id: check
run: nix flake check run: nix flake check

View File

@ -53,17 +53,17 @@ configuration may be difficult to translate to a non-Nix system.
# Unique Configurations # Unique Configurations
This repo contains a few atypical choices for configuration. This repo contains a few more elaborate elements of configuration.
- [Neovim config](./modules/common/neovim/default.nix) generated with Nix2Vim - [Neovim config](./modules/common/neovim/default.nix) generated with Nix2Vim
and source-controlled plugins, differing from host to host. and source-controlled plugins, differing based on installed LSPs, for example.
- [Caddy JSON](./modules/nixos/services/caddy.nix) file (routes, etc.) based on - [Caddy JSON](./modules/nixos/services/caddy.nix) file (routes, etc.) based
dynamic service metadata. dynamically on enabled services rendered with Nix.
- [Grafana config](./modules/nixos/services/grafana.nix) based on dynamic - [Grafana config](./modules/nixos/services/grafana.nix) rendered with Nix.
service metadata.
- Custom [secrets deployment](./modules/nixos/services/secrets.nix) similar to - Custom [secrets deployment](./modules/nixos/services/secrets.nix) similar to
agenix. agenix.
- Base16 [colorschemes](./colorscheme/) applied to multiple applications. - Base16 [colorschemes](./colorscheme/) applied to multiple applications,
including Firefox userChrome.
--- ---

View File

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

View File

@ -49,19 +49,24 @@ 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
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
``` ```

318
flake.lock generated
View File

@ -17,23 +17,6 @@
"type": "github" "type": "github"
} }
}, },
"age": {
"flake": false,
"locked": {
"lastModified": 1672087018,
"narHash": "sha256-LRxxJQLQkzoCNYGS/XBixVmYXoZ1mPHKvFicPGXYLcw=",
"owner": "FiloSottile",
"repo": "age",
"rev": "c6dcfa1efcaa27879762a934d5bea0d1b83a894c",
"type": "github"
},
"original": {
"owner": "FiloSottile",
"ref": "v1.1.1",
"repo": "age",
"type": "github"
}
},
"baleia-nvim-src": { "baleia-nvim-src": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -53,16 +36,16 @@
"bufferline-nvim-src": { "bufferline-nvim-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1695205521, "lastModified": 1706180994,
"narHash": "sha256-MQMpXMgUpZA0E9TunzjXeOQxDWSCTogXbvi9VJnv4Kw=", "narHash": "sha256-/iGzUDJaodkUyWpwim8UtwaRuarfu/Nk6wxVApk+QxY=",
"owner": "akinsho", "owner": "akinsho",
"repo": "bufferline.nvim", "repo": "bufferline.nvim",
"rev": "6ecd37e0fa8b156099daedd2191130e083fb1490", "rev": "d6cb9b7cac52887bcac65f8698e67479553c0748",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "akinsho", "owner": "akinsho",
"ref": "v4.4.0", "ref": "v4.5.0",
"repo": "bufferline.nvim", "repo": "bufferline.nvim",
"type": "github" "type": "github"
} }
@ -70,11 +53,11 @@
"bypass-paywalls-clean": { "bypass-paywalls-clean": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1704880831, "lastModified": 1706880406,
"narHash": "sha256-KXYpzI/xzn9mUc7FoCewssvBUkHBv2pQ7m/4krqHFHg=", "narHash": "sha256-8z2Gc3ITluXXbDij4Ltahpkxs7zdnMITvIAjotab/QU=",
"owner": "magnolia1234", "owner": "magnolia1234",
"repo": "bpc-uploads", "repo": "bpc-uploads",
"rev": "fc34b6b8e2d79af62ef9cf8222daeb0eb4b785a4", "rev": "c91cfd510390ab5a138f412ad2890b2cb2a2eafd",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@ -106,11 +89,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1704277720, "lastModified": 1706833576,
"narHash": "sha256-meAKNgmh3goankLGWqqpw73pm9IvXjEENJloF0coskE=", "narHash": "sha256-w7BL0EWRts+nD1lbLECIuz6fRzmmV+z8oWwoY7womR0=",
"owner": "lnl7", "owner": "lnl7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "0dd382b70c351f528561f71a0a7df82c9d2be9a4", "rev": "bdbae6ecff8fcc322bf6b9053c0b984912378af7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -127,11 +110,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1705075138, "lastModified": 1706491084,
"narHash": "sha256-0slYsXoR1Sd5FwTfFZLYxAsI015+J4lvgvo55u4Gw1A=", "narHash": "sha256-eaEv+orTmr2arXpoE4aFZQMVPOYXCBEbLgK22kOtkhs=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "f78b6498f69e04514cb84393e5daba669198c1c1", "rev": "f67ba6552845ea5d7f596a24d57c33a8a9dc8de9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -143,16 +126,16 @@
"fidget-nvim-src": { "fidget-nvim-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1702031048, "lastModified": 1704696337,
"narHash": "sha256-wbjQuOFd/2339TIrUA97PYsV8N3PZsS+xbyMsyZmki8=", "narHash": "sha256-uAX/RGfOmsUIUaDepNwUpK8MBaTMBJ4rLZ69y0MwpNE=",
"owner": "j-hui", "owner": "j-hui",
"repo": "fidget.nvim", "repo": "fidget.nvim",
"rev": "300018af4abd00610a345e382ca1f4b7ba420f77", "rev": "3a93300c076109d86c7ce35ec67a8034ae6ba9db",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "j-hui", "owner": "j-hui",
"ref": "v1.1.0", "ref": "v1.2.0",
"repo": "fidget.nvim", "repo": "fidget.nvim",
"type": "github" "type": "github"
} }
@ -164,11 +147,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1705193299, "lastModified": 1707007453,
"narHash": "sha256-Hapo/l2byyBlCviP+/DNO6xS7/79oqfPb6K9DL/ddD8=", "narHash": "sha256-vs7uACn2/8GOApZJv52gAVsLfpjQWFgkHN2QJ7aVkl8=",
"owner": "bandithedoge", "owner": "bandithedoge",
"repo": "nixpkgs-firefox-darwin", "repo": "nixpkgs-firefox-darwin",
"rev": "0d1ff8fb805bfaecfd9a05f788fcd08ca8af38e8", "rev": "d839feb516758ad28bc1cef43008d55e749c1d6a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -198,11 +181,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1687709756, "lastModified": 1705309234,
"narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -216,29 +199,11 @@
"systems": "systems_2" "systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1685518550, "lastModified": 1705309234,
"narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_3": {
"inputs": {
"systems": "systems_3"
},
"locked": {
"lastModified": 1701680307,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -250,11 +215,11 @@
"hmts-nvim-src": { "hmts-nvim-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1693226725, "lastModified": 1706900289,
"narHash": "sha256-jUuztOqNBltC3axa7s3CPJz9Cmukfwkf846+Z/gAxCU=", "narHash": "sha256-kw3YJ21nhs/x9Jp7kvnL+9FuiSgLB1hO/ON3QeeZx9g=",
"owner": "calops", "owner": "calops",
"repo": "hmts.nvim", "repo": "hmts.nvim",
"rev": "14fd941d7ec2bb98314a1aacaa2573d97f1629ab", "rev": "ba1239972a1f56b94252d4f85a43e777ac419662",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -270,11 +235,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1705169127, "lastModified": 1706985585,
"narHash": "sha256-j9OEtNxOIPWZWjbECVMkI1TO17SzlpHMm0LnVWKOR/g=", "narHash": "sha256-ptshv4qXiC6V0GCfpABz88UGGPNwqs5tAxaRUKbk1Qo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "f2942f3385f1b35cc8a1abb03a45e29c9cb4d3c8", "rev": "1ca210648a6ca9b957efde5da957f3de6b1f0c45",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -284,6 +249,22 @@
"type": "github" "type": "github"
} }
}, },
"kitty-scrollback-nvim-src": {
"flake": false,
"locked": {
"lastModified": 1706891759,
"narHash": "sha256-p7RPqLHO6D5CCTDQzUrEqTu9+jg+V7wtYfGbY4qjE9A=",
"owner": "mikesmithgh",
"repo": "kitty-scrollback.nvim",
"rev": "12f7687ac049d46a987c39b2b4f657fdf540fa4e",
"type": "github"
},
"original": {
"owner": "mikesmithgh",
"repo": "kitty-scrollback.nvim",
"type": "github"
}
},
"nextcloud-cookbook": { "nextcloud-cookbook": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -323,42 +304,32 @@
"url": "https://github.com/nextcloud/news/releases/download/25.0.0-alpha3/news.tar.gz" "url": "https://github.com/nextcloud/news/releases/download/25.0.0-alpha3/news.tar.gz"
} }
}, },
"nil": { "nextcloud-snappymail": {
"inputs": { "flake": false,
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay"
},
"locked": { "locked": {
"lastModified": 1691372739, "lastModified": 1707018069,
"narHash": "sha256-fZ8KfBMcIFO/R7xaWtB85SFeuUjb9SCH8fxYBnY8068=", "narHash": "sha256-UeZXoZFEPJj7zEVNTXJ3IYNt/wI7VFq3Pjh1ubMHCBo=",
"owner": "oxalica", "type": "tarball",
"repo": "nil", "url": "https://snappymail.eu/repository/nextcloud/snappymail-2.32.0-nextcloud.tar.gz"
"rev": "97abe7d3d48721d4e0fcc1876eea83bb4247825b",
"type": "github"
}, },
"original": { "original": {
"owner": "oxalica", "type": "tarball",
"ref": "2023-08-09", "url": "https://snappymail.eu/repository/nextcloud/snappymail-2.32.0-nextcloud.tar.gz"
"repo": "nil",
"type": "github"
} }
}, },
"nix2vim": { "nix2vim": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_2", "flake-utils": "flake-utils",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1685980282, "lastModified": 1706886721,
"narHash": "sha256-uQyVaoqkiocA8bXKMfrgizuKmz0hUzHye5owFoUd2AQ=", "narHash": "sha256-iDYxsE5xYoK8Ww2TYZDmgRQNIZl+QHJfChOxWh45g0k=",
"owner": "gytis-ivaskevicius", "owner": "gytis-ivaskevicius",
"repo": "nix2vim", "repo": "nix2vim",
"rev": "3836a348503ae27340c7f83f0bc7bcb907f3781d", "rev": "29253dcf0f645a44847006d436b096369ef42fd8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -390,11 +361,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1701689616, "lastModified": 1706085261,
"narHash": "sha256-ewnfgvRy73HoP5KnYmy1Rcr4m4yShvsb6TCCaKoW8pc=", "narHash": "sha256-7PgpHRHyShINcqgevPP1fJ6N8kM5ZSOJnk3QZBrOCQ0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixos-generators", "repo": "nixos-generators",
"rev": "246219bc21b943c6f6812bb7744218ba0df08600", "rev": "896f6589db5b25023b812bbb6c1f5d3a499b1132",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -405,11 +376,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1704722960, "lastModified": 1706732774,
"narHash": "sha256-mKGJ3sPsT6//s+Knglai5YflJUF2DGj7Ai6Ynopz0kI=", "narHash": "sha256-hqJlyJk4MRpcItGYMF+3uHe8HvxNETWvlGtLuVpqLU0=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "317484b1ead87b9c1b8ac5261a8d2dd748a0492d", "rev": "b8b232ae7b8b144397fdb12d20f592e5e7c1a64d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -437,11 +408,11 @@
}, },
"nur": { "nur": {
"locked": { "locked": {
"lastModified": 1705197850, "lastModified": 1707013032,
"narHash": "sha256-WtgOcadsR2/4ArDfYLEezIo99JrvZ0uVpxNwH66dXmM=", "narHash": "sha256-9kEY/D0Q6sF+p6vJRefVXDK4QQdwK4Q0lSQdsYICad0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nur", "repo": "nur",
"rev": "7a24ce86be38634afc3c82caccefc2059bdf935b", "rev": "ab432acea15134873882610c0e936a882319bc8a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -453,16 +424,16 @@
"nvim-lspconfig-src": { "nvim-lspconfig-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1675639052, "lastModified": 1701687137,
"narHash": "sha256-B8IgpypxzCACZ5VcqM6KiWyClaN+KrmemtkwMznmj5Y=", "narHash": "sha256-qFjFofA2LoD4yRfx4KGfSCpR3mDkpFaagcm+TVNPqco=",
"owner": "neovim", "owner": "neovim",
"repo": "nvim-lspconfig", "repo": "nvim-lspconfig",
"rev": "255e07ce2a05627d482d2de77308bba51b90470c", "rev": "cf3dd4a290084a868fac0e2e876039321d57111c",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "neovim", "owner": "neovim",
"ref": "v0.1.6", "ref": "v0.1.7",
"repo": "nvim-lspconfig", "repo": "nvim-lspconfig",
"type": "github" "type": "github"
} }
@ -470,11 +441,11 @@
"nvim-tree-lua-src": { "nvim-tree-lua-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1705190895, "lastModified": 1706571452,
"narHash": "sha256-BfB4q4nRBotjopq/35rI2jXrNub2uriZIPznMPGq2lc=", "narHash": "sha256-b0LIqLC8cCRX1NyJx4eH5c4v5Fqqw5mMleAnQ2VRctM=",
"owner": "kyazdani42", "owner": "kyazdani42",
"repo": "nvim-tree.lua", "repo": "nvim-tree.lua",
"rev": "f24afa2cef551122b8bd53bb2e4a7df42343ce2e", "rev": "f39f7b6fcd3865ac2146de4cb4045286308f2935",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -486,11 +457,11 @@
"nvim-treesitter-src": { "nvim-treesitter-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1704630521, "lastModified": 1706952848,
"narHash": "sha256-Xc5XqHy3Yk82BFZjeLRSoaN4U4v46FAclFcjoRHZ9no=", "narHash": "sha256-pNjEODR+QJPDL58O4NM7SjzZEN8D3bXDHbKLNOS3fL8=",
"owner": "nvim-treesitter", "owner": "nvim-treesitter",
"repo": "nvim-treesitter", "repo": "nvim-treesitter",
"rev": "8cd2b230174efbf7b5d9f49fe2f90bda6b5eb16e", "rev": "4fbf150a1621d52f17b099506e1a32f107079210",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -513,10 +484,41 @@
"url": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton8-25/GE-Proton8-25.tar.gz" "url": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton8-25/GE-Proton8-25.tar.gz"
} }
}, },
"ren": {
"flake": false,
"locked": {
"lastModified": 1704996573,
"narHash": "sha256-zVIt6Xp+Mvym6gySvHIZJt1QgzKVP/wbTGTubWk6kzI=",
"owner": "robenkleene",
"repo": "ren-find",
"rev": "50c40172e354caffee48932266edd7c7a76a20fd",
"type": "github"
},
"original": {
"owner": "robenkleene",
"repo": "ren-find",
"type": "github"
}
},
"rep": {
"flake": false,
"locked": {
"lastModified": 1705833236,
"narHash": "sha256-hm+v+b97z1HnY/7QHZxc0GygCq9W0mJauyjnz48ddaM=",
"owner": "robenkleene",
"repo": "rep-grep",
"rev": "365acc5d599934e94dc066eb85b7ddd684ba508b",
"type": "github"
},
"original": {
"owner": "robenkleene",
"repo": "rep-grep",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"Comment-nvim-src": "Comment-nvim-src", "Comment-nvim-src": "Comment-nvim-src",
"age": "age",
"baleia-nvim-src": "baleia-nvim-src", "baleia-nvim-src": "baleia-nvim-src",
"bufferline-nvim-src": "bufferline-nvim-src", "bufferline-nvim-src": "bufferline-nvim-src",
"bypass-paywalls-clean": "bypass-paywalls-clean", "bypass-paywalls-clean": "bypass-paywalls-clean",
@ -527,10 +529,11 @@
"firefox-darwin": "firefox-darwin", "firefox-darwin": "firefox-darwin",
"hmts-nvim-src": "hmts-nvim-src", "hmts-nvim-src": "hmts-nvim-src",
"home-manager": "home-manager", "home-manager": "home-manager",
"kitty-scrollback-nvim-src": "kitty-scrollback-nvim-src",
"nextcloud-cookbook": "nextcloud-cookbook", "nextcloud-cookbook": "nextcloud-cookbook",
"nextcloud-external": "nextcloud-external", "nextcloud-external": "nextcloud-external",
"nextcloud-news": "nextcloud-news", "nextcloud-news": "nextcloud-news",
"nil": "nil", "nextcloud-snappymail": "nextcloud-snappymail",
"nix2vim": "nix2vim", "nix2vim": "nix2vim",
"nixos-generators": "nixos-generators", "nixos-generators": "nixos-generators",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
@ -540,6 +543,8 @@
"nvim-tree-lua-src": "nvim-tree-lua-src", "nvim-tree-lua-src": "nvim-tree-lua-src",
"nvim-treesitter-src": "nvim-treesitter-src", "nvim-treesitter-src": "nvim-treesitter-src",
"proton-ge": "proton-ge", "proton-ge": "proton-ge",
"ren": "ren",
"rep": "rep",
"telescope-nvim-src": "telescope-nvim-src", "telescope-nvim-src": "telescope-nvim-src",
"telescope-project-nvim-src": "telescope-project-nvim-src", "telescope-project-nvim-src": "telescope-project-nvim-src",
"toggleterm-nvim-src": "toggleterm-nvim-src", "toggleterm-nvim-src": "toggleterm-nvim-src",
@ -549,36 +554,12 @@
"tree-sitter-puppet": "tree-sitter-puppet", "tree-sitter-puppet": "tree-sitter-puppet",
"tree-sitter-python": "tree-sitter-python", "tree-sitter-python": "tree-sitter-python",
"tree-sitter-rasi": "tree-sitter-rasi", "tree-sitter-rasi": "tree-sitter-rasi",
"tree-sitter-vimdoc": "tree-sitter-vimdoc",
"wallpapers": "wallpapers", "wallpapers": "wallpapers",
"wsl": "wsl", "wsl": "wsl",
"zenyd-mpv-scripts": "zenyd-mpv-scripts" "zenyd-mpv-scripts": "zenyd-mpv-scripts"
} }
}, },
"rust-overlay": {
"inputs": {
"flake-utils": [
"nil",
"flake-utils"
],
"nixpkgs": [
"nil",
"nixpkgs"
]
},
"locked": {
"lastModified": 1688783586,
"narHash": "sha256-HHaM2hk2azslv1kH8zmQxXo2e7i5cKgzNIuK4yftzB0=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "7a29283cc242c2486fc67f60b431ef708046d176",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"systems": { "systems": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
@ -609,34 +590,19 @@
"type": "github" "type": "github"
} }
}, },
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"telescope-nvim-src": { "telescope-nvim-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1697004956, "lastModified": 1701167040,
"narHash": "sha256-7SqYFnfCjotOBhuX6Wx1IOhgMKoxaoI1a4SKz1d5RVM=", "narHash": "sha256-H5RpyWMluE+Yxg7xFX43AZTVW+Yg70DF3FmEGXBUSNg=",
"owner": "nvim-telescope", "owner": "nvim-telescope",
"repo": "telescope.nvim", "repo": "telescope.nvim",
"rev": "7011eaae0ac1afe036e30c95cf80200b8dc3f21a", "rev": "d90956833d7c27e73c621a61f20b29fdb7122709",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nvim-telescope", "owner": "nvim-telescope",
"ref": "0.1.4", "ref": "0.1.5",
"repo": "telescope.nvim", "repo": "telescope.nvim",
"type": "github" "type": "github"
} }
@ -660,16 +626,16 @@
"toggleterm-nvim-src": { "toggleterm-nvim-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1695636777, "lastModified": 1701858874,
"narHash": "sha256-o8xzoo7OuYrPnKlfrupQ24Ja9hZy1qQVnvwO0FO+4zM=", "narHash": "sha256-vJApw7XY2wOX9InfWcah+hkNxBfS1+kQUWr4ITxRmgA=",
"owner": "akinsho", "owner": "akinsho",
"repo": "toggleterm.nvim", "repo": "toggleterm.nvim",
"rev": "faee9d60428afc7857e0927fdc18daa6c409fa64", "rev": "cbd041d91b90cd3c02df03fe6133208888f8e008",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "akinsho", "owner": "akinsho",
"ref": "v2.8.0", "ref": "v2.9.0",
"repo": "toggleterm.nvim", "repo": "toggleterm.nvim",
"type": "github" "type": "github"
} }
@ -677,11 +643,11 @@
"tree-sitter-bash": { "tree-sitter-bash": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696959291, "lastModified": 1705686017,
"narHash": "sha256-VP7rJfE/k8KV1XN1w5f0YKjCnDMYU1go/up0zj1mabM=", "narHash": "sha256-+Mpks0FyQLl26TX63J6WhaAl/QDUR1k9wSUY5SFwL+w=",
"owner": "tree-sitter", "owner": "tree-sitter",
"repo": "tree-sitter-bash", "repo": "tree-sitter-bash",
"rev": "7331995b19b8f8aba2d5e26deb51d2195c18bc94", "rev": "f7239f638d3dc16762563a9027faeee518ce1bd9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -773,6 +739,22 @@
"type": "github" "type": "github"
} }
}, },
"tree-sitter-vimdoc": {
"flake": false,
"locked": {
"lastModified": 1705491128,
"narHash": "sha256-q5Ln8WPFrtKBfZnaAAlMh3Q/eczEt6wCMZAtx+ISCKg=",
"owner": "neovim",
"repo": "tree-sitter-vimdoc",
"rev": "ed8695ad8de39c3f073da130156f00b1148e2891",
"type": "github"
},
"original": {
"owner": "neovim",
"repo": "tree-sitter-vimdoc",
"type": "github"
}
},
"wallpapers": { "wallpapers": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -792,17 +774,17 @@
"wsl": { "wsl": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
"flake-utils": "flake-utils_3", "flake-utils": "flake-utils_2",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1705003621, "lastModified": 1706867893,
"narHash": "sha256-bnQKeNbNYyKfmJN2/KD+t8gDKA0uU8Ak4/sV4gvlA2E=", "narHash": "sha256-c5bADvtL35S3vsJaXR5YWTXe08W0gSwOrTOXfpJB4Ac=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NixOS-WSL", "repo": "NixOS-WSL",
"rev": "0fa9268bf9a903498cb567e6d4d01eb945f36f6e", "rev": "bcae8dc73b931b7f0fc65f1f1ef93dc379dfd66b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -814,11 +796,11 @@
"zenyd-mpv-scripts": { "zenyd-mpv-scripts": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1650625438, "lastModified": 1706283438,
"narHash": "sha256-OBCuzCtgfSwj0i/rBNranuu4LRc47jObwQIJgQQoerg=", "narHash": "sha256-hpLZDtt5q18aZ8d9LHfT852wtBosKUTJ7Bx+cbjBLcg=",
"owner": "zenyd", "owner": "zenyd",
"repo": "mpv-scripts", "repo": "mpv-scripts",
"rev": "19ea069abcb794d1bf8fac2f59b50d71ab992130", "rev": "7100d19d18d111ce77fc9e6e8947c0d542a86397",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -59,16 +59,10 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
# Nix language server
nil = {
url = "github:oxalica/nil/2023-08-09";
inputs.nixpkgs.follows = "nixpkgs";
};
# Neovim plugins # Neovim plugins
nvim-lspconfig-src = { nvim-lspconfig-src = {
# https://github.com/neovim/nvim-lspconfig/tags # https://github.com/neovim/nvim-lspconfig/tags
url = "github:neovim/nvim-lspconfig/v0.1.6"; url = "github:neovim/nvim-lspconfig/v0.1.7";
flake = false; flake = false;
}; };
cmp-nvim-lsp-src = { cmp-nvim-lsp-src = {
@ -85,6 +79,7 @@
flake = false; flake = false;
}; };
Comment-nvim-src = { Comment-nvim-src = {
# https://github.com/numToStr/Comment.nvim/releases
url = "github:numToStr/Comment.nvim/v0.8.0"; url = "github:numToStr/Comment.nvim/v0.8.0";
flake = false; flake = false;
}; };
@ -94,7 +89,8 @@
flake = false; flake = false;
}; };
telescope-nvim-src = { telescope-nvim-src = {
url = "github:nvim-telescope/telescope.nvim/0.1.4"; # https://github.com/nvim-telescope/telescope.nvim/releases
url = "github:nvim-telescope/telescope.nvim/0.1.5";
flake = false; flake = false;
}; };
telescope-project-nvim-src = { telescope-project-nvim-src = {
@ -102,11 +98,13 @@
flake = false; flake = false;
}; };
toggleterm-nvim-src = { toggleterm-nvim-src = {
url = "github:akinsho/toggleterm.nvim/v2.8.0"; # https://github.com/akinsho/toggleterm.nvim/tags
url = "github:akinsho/toggleterm.nvim/v2.9.0";
flake = false; flake = false;
}; };
bufferline-nvim-src = { bufferline-nvim-src = {
url = "github:akinsho/bufferline.nvim/v4.4.0"; # https://github.com/akinsho/bufferline.nvim/releases
url = "github:akinsho/bufferline.nvim/v4.5.0";
flake = false; flake = false;
}; };
nvim-tree-lua-src = { nvim-tree-lua-src = {
@ -119,7 +117,11 @@
}; };
fidget-nvim-src = { fidget-nvim-src = {
# https://github.com/j-hui/fidget.nvim/tags # https://github.com/j-hui/fidget.nvim/tags
url = "github:j-hui/fidget.nvim/v1.1.0"; url = "github:j-hui/fidget.nvim/v1.2.0";
flake = false;
};
kitty-scrollback-nvim-src = {
url = "github:mikesmithgh/kitty-scrollback.nvim";
flake = false; flake = false;
}; };
@ -148,6 +150,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 = {
@ -155,9 +161,13 @@
flake = false; flake = false;
}; };
# Age encryption (pin because of failed builds) # Ren and rep - CLI find and replace
age = { rep = {
url = "github:FiloSottile/age/v1.1.1"; url = "github:robenkleene/rep-grep";
flake = false;
};
ren = {
url = "github:robenkleene/ren-find";
flake = false; flake = false;
}; };
@ -196,6 +206,12 @@
"https://github.com/christianlupus-nextcloud/cookbook-releases/releases/download/v0.11.0/cookbook-0.11.0.tar.gz"; "https://github.com/christianlupus-nextcloud/cookbook-releases/releases/download/v0.11.0/cookbook-0.11.0.tar.gz";
flake = false; flake = false;
}; };
nextcloud-snappymail = {
# https://github.com/the-djmaze/snappymail/releases
url =
"https://snappymail.eu/repository/nextcloud/snappymail-2.32.0-nextcloud.tar.gz";
flake = false;
};
}; };
@ -240,11 +256,10 @@
(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/age.nix inputs)
(import ./overlays/proton-ge.nix inputs) (import ./overlays/proton-ge.nix inputs)
(import ./overlays/gh-collaborators.nix) (import ./overlays/gh-collaborators.nix)
(import ./overlays/bypass-paywalls-clean.nix inputs) (import ./overlays/bypass-paywalls-clean.nix inputs)
(import ./overlays/terraform.nix) (import ./overlays/ren-rep.nix inputs)
]; ];
# System types to support. # System types to support.

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.

View File

@ -1,6 +1,8 @@
# 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.
@ -50,6 +52,7 @@ inputs.nixpkgs.lib.nixosSystem {
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;

View File

@ -1,6 +1,8 @@
# The Hydra # The Hydra
# System configuration for WSL # System configuration for WSL
# See [readme](../README.md) to explain how this file works.
{ inputs, globals, overlays, ... }: { inputs, globals, overlays, ... }:
inputs.nixpkgs.lib.nixosSystem { inputs.nixpkgs.lib.nixosSystem {

View File

@ -4,7 +4,7 @@
{ 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
@ -25,6 +25,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;
@ -39,6 +40,7 @@ inputs.darwin.lib.darwinSystem {
python.enable = true; python.enable = true;
rust.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;

View File

@ -1,6 +1,8 @@
# The Swan # The Swan
# System configuration for my home NAS server # System configuration for my home NAS server
# See [readme](../README.md) to explain how this file works.
{ inputs, globals, overlays, ... }: { inputs, globals, overlays, ... }:
inputs.nixpkgs.lib.nixosSystem { inputs.nixpkgs.lib.nixosSystem {
@ -66,6 +68,7 @@ inputs.nixpkgs.lib.nixosSystem {
theme = { colors = (import ../../colorscheme/gruvbox).dark; }; theme = { colors = (import ../../colorscheme/gruvbox).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;
@ -80,6 +83,7 @@ inputs.nixpkgs.lib.nixosSystem {
services.vmagent.enable = true; services.vmagent.enable = true;
services.samba.enable = true; services.samba.enable = true;
services.paperless.enable = true; services.paperless.enable = true;
services.postgresql.enable = true;
# Allows private remote access over the internet # Allows private remote access over the internet
cloudflareTunnel = { cloudflareTunnel = {

View File

@ -1,6 +1,8 @@
# The Tempest # The Tempest
# System configuration for my desktop # System configuration for my desktop
# See [readme](../README.md) to explain how this file works.
{ inputs, globals, overlays, ... }: { inputs, globals, overlays, ... }:
inputs.nixpkgs.lib.nixosSystem { inputs.nixpkgs.lib.nixosSystem {
@ -83,6 +85,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;

View File

@ -9,12 +9,22 @@
}; };
}; };
config = lib.mkIf config = lib.mkIf (config.gui.enable && config._1password.enable) {
(config.gui.enable && config._1password.enable && pkgs.stdenv.isLinux) { unfreePackages = [ "1password" "_1password-gui" "1password-cli" ];
unfreePackages = [ "1password" "_1password-gui" ]; home-manager.users.${config.user} = {
home-manager.users.${config.user} = { home.packages = with pkgs; [ _1password-gui _1password ];
home.packages = with pkgs; [ _1password-gui ];
};
}; };
# 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

@ -11,8 +11,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

@ -29,6 +29,7 @@
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; [
(lib.mkIf config._1password.enable onepassword-password-manager) (lib.mkIf config._1password.enable onepassword-password-manager)
pkgs.bypass-paywalls-clean pkgs.bypass-paywalls-clean

View File

@ -45,9 +45,20 @@
# Easy fullscreen toggle (for macOS) # Easy fullscreen toggle (for macOS)
"super+f" = "toggle_fullscreen"; "super+f" = "toggle_fullscreen";
# Kitty scrollback nvim
"kitty_mod+h" = "kitty_scrollback_nvim";
"kitty_mod+g" =
"kitty_scrollback_nvim --config ksb_builtin_last_cmd_output";
}; };
settings = { settings = {
# Required for kitty-scrollback.nvim
allow_remote_control = "socket-only";
listen_on = "unix:/tmp/kitty";
action_alias =
"kitty_scrollback_nvim kitten ${pkgs.kitty-scrollback-nvim}/python/kitty_scrollback_nvim.py";
# Colors (adapted from: https://github.com/kdrag0n/base16-kitty/blob/master/templates/default-256.mustache) # Colors (adapted from: https://github.com/kdrag0n/base16-kitty/blob/master/templates/default-256.mustache)
background = config.theme.colors.base00; background = config.theme.colors.base00;
foreground = config.theme.colors.base05; foreground = config.theme.colors.base05;

View File

@ -40,6 +40,7 @@
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 = {
@ -48,6 +49,7 @@
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

@ -68,7 +68,7 @@
"!" = ":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>";

View File

@ -1,10 +1,11 @@
{ pkgs, lib, config, dsl, ... }: { { pkgs, lib, config, dsl, ... }: {
# Terraform optional because non-free # Terraform optional because non-free
options.terraform = lib.mkEnableOption "Whether to enable Terraform LSP";
options.github = lib.mkEnableOption "Whether to enable GitHub features"; options.github = lib.mkEnableOption "Whether to enable GitHub features";
options.kubernetes = options.kubernetes =
lib.mkEnableOption "Whether to enable Kubernetes features"; lib.mkEnableOption "Whether to enable Kubernetes features";
options.python = lib.mkEnableOption "Whether to enable Python LSP";
options.terraform = lib.mkEnableOption "Whether to enable Terraform LSP";
config = config =
@ -18,6 +19,12 @@
'' else '' else
""; "";
pythonFormat = if config.python then ''
require("null-ls").builtins.formatting.black.with({ command = "${pkgs.black}/bin/black" }),
require("null-ls").builtins.diagnostics.ruff.with({ command = "${pkgs.ruff}/bin/ruff" }),
'' else
"";
in { in {
plugins = [ plugins = [
pkgs.vimPlugins.nvim-lspconfig pkgs.vimPlugins.nvim-lspconfig
@ -41,7 +48,11 @@
}; };
use.lspconfig.pyright.setup = dsl.callWith { use.lspconfig.pyright.setup = dsl.callWith {
cmd = [ "${pkgs.pyright}/bin/pyright-langserver" "--stdio" ]; cmd = if config.python then [
"${pkgs.pyright}/bin/pyright-langserver"
"--stdio"
] else
[ "echo" ];
}; };
use.lspconfig.terraformls.setup = dsl.callWith { use.lspconfig.terraformls.setup = dsl.callWith {
@ -70,8 +81,6 @@
require("null-ls").setup({ require("null-ls").setup({
sources = { sources = {
require("null-ls").builtins.formatting.stylua.with({ command = "${pkgs.stylua}/bin/stylua" }), 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.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.nixfmt.with({ command = "${pkgs.nixfmt}/bin/nixfmt" }),
require("null-ls").builtins.formatting.rustfmt.with({ command = "${pkgs.rustfmt}/bin/rustfmt" }), require("null-ls").builtins.formatting.rustfmt.with({ command = "${pkgs.rustfmt}/bin/rustfmt" }),
@ -80,6 +89,7 @@
command = "${pkgs.shfmt}/bin/shfmt", command = "${pkgs.shfmt}/bin/shfmt",
extra_args = { "-i", "4", "-ci" }, extra_args = { "-i", "4", "-ci" },
}), }),
${pythonFormat}
${terraformFormat} ${terraformFormat}
}, },

View File

@ -8,6 +8,7 @@
pkgs.vimPlugins.glow-nvim # Markdown preview popup pkgs.vimPlugins.glow-nvim # Markdown preview popup
pkgs.vimPlugins.nvim-colorizer-lua # Hex color previews pkgs.vimPlugins.nvim-colorizer-lua # Hex color previews
pkgs.vimPlugins.which-key-nvim # Keybind helper pkgs.vimPlugins.which-key-nvim # Keybind helper
pkgs.kitty-scrollback-nvim # Scrollback pager for kitty
]; ];
# Initialize some plugins # Initialize some plugins
@ -15,6 +16,7 @@
setup.colorizer = { user_default_options = { names = false; }; }; setup.colorizer = { user_default_options = { names = false; }; };
setup.glow = { }; setup.glow = { };
setup.which-key = { }; setup.which-key = { };
setup.kitty-scrollback = { };
vim.o = { vim.o = {
termguicolors = true; # Set to truecolor termguicolors = true; # Set to truecolor

View File

@ -1,12 +1,12 @@
{ pkgs, lib, ... }: { { pkgs, lib, config, ... }: {
plugins = [ plugins = [
(pkgs.vimPlugins.nvim-treesitter.withPlugins (_plugins: (pkgs.vimPlugins.nvim-treesitter.withPlugins (_plugins:
with pkgs.tree-sitter-grammars; [ with pkgs.tree-sitter-grammars;
[
tree-sitter-bash tree-sitter-bash
# tree-sitter-c tree-sitter-c
tree-sitter-fish tree-sitter-fish
tree-sitter-hcl
tree-sitter-ini tree-sitter-ini
tree-sitter-json tree-sitter-json
tree-sitter-lua tree-sitter-lua
@ -14,15 +14,15 @@
tree-sitter-markdown-inline tree-sitter-markdown-inline
tree-sitter-nix tree-sitter-nix
tree-sitter-puppet tree-sitter-puppet
tree-sitter-python
tree-sitter-rasi tree-sitter-rasi
tree-sitter-toml tree-sitter-toml
tree-sitter-vimdoc
tree-sitter-yaml tree-sitter-yaml
])) ] ++ (if config.python.enable then [ tree-sitter-python ] else [ ])
++ (if config.terraform.enable then [ tree-sitter-hcl ] else [ ])))
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.baleia-nvim # Clean ANSI from kitty scrollback pkgs.baleia-nvim # Clean ANSI from kitty scrollback
# pkgs.hmts-nvim # Tree-sitter injections for home-manager # pkgs.hmts-nvim # Tree-sitter injections for home-manager
(pkgs.vimUtils.buildVimPlugin { (pkgs.vimUtils.buildVimPlugin {
@ -30,7 +30,7 @@
version = "0.1"; version = "0.1";
src = ../plugin; src = ../plugin;
}) })
]; ] ++ (if config.kubernetes.enable then [ pkgs.vimPlugins.vim-helm ] else [ ]);
setup."nvim-treesitter.configs" = { setup."nvim-treesitter.configs" = {
highlight = { enable = true; }; highlight = { enable = true; };

View File

@ -5,9 +5,11 @@ let
neovim = import ./package { neovim = import ./package {
inherit pkgs; inherit pkgs;
colors = config.theme.colors; colors = config.theme.colors;
terraform = config.terraform.enable; c = config.c.enable;
github = true; github = true;
kubernetes = config.kubernetes.enable; kubernetes = config.kubernetes.enable;
python = config.python.enable;
terraform = config.terraform.enable;
}; };
in { in {
@ -45,8 +47,8 @@ in {
# Requires removing some of the ANSI escape codes that are sent to the # Requires removing some of the ANSI escape codes that are sent to the
# scrollback using sed and baleia, as well as removing several # scrollback using sed and baleia, as well as removing several
# unnecessary features. # unnecessary features.
programs.kitty.settings.scrollback_pager = '' 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"' ''; "${neovim}/bin/nvim --headless +'KittyScrollbackGenerateKittens' +'set nonumber' +'set norelativenumber' +'%print' +'quit!' 2>&1";
# 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)

View File

@ -0,0 +1 @@
{ lib, ... }: { options.c.enable = lib.mkEnableOption "C language tools."; }

View File

@ -24,113 +24,125 @@
# 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 config.theme.colors.base08 ];
showIcons = false; # - *blue
}; # - *red
yaml = { defaultChartColors =
keyColor = config.theme.colors.base0D; [ config.theme.colors.base0D config.theme.colors.base08 ];
colonColor = config.theme.colors.base04; # - *blue
fgColor = config.theme.colors.base03; # - *red
}; };
logs = { table = {
fgColor = config.theme.colors.base06; # List of resources
bgColor = config.theme.colors.base00;
indicator = {
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

@ -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,5 +1,6 @@
{ ... }: { { ... }: {
imports = [ imports = [
./atuin.nix
./bash ./bash
./charm.nix ./charm.nix
./direnv.nix ./direnv.nix

View File

@ -18,3 +18,5 @@ bind -M insert \cn 'commandline -r "nix shell nixpkgs#"'
bind -M default \cn 'commandline -r "nix shell nixpkgs#"' bind -M default \cn 'commandline -r "nix shell nixpkgs#"'
bind -M insert \x11F nix-fzf bind -M insert \x11F nix-fzf
bind -M default \x11F nix-fzf bind -M default \x11F nix-fzf
bind -M insert \ch _atuin_search --filter-mode global
bind -M default \ch _atuin_search --filter-mode global

View File

@ -16,7 +16,7 @@
--search-path $HOME/dev \ --search-path $HOME/dev \
--type directory \ --type directory \
--exact-depth 2 \ --exact-depth 2 \
| ${pkgs.proximity-sort}/bin/proximity-sort . \ | ${pkgs.proximity-sort}/bin/proximity-sort $PWD \
| sed 's/\\/$//' \ | sed 's/\\/$//' \
| fzf --tiebreak=index \ | fzf --tiebreak=index \
) )

View File

@ -35,8 +35,20 @@ in {
init = { defaultBranch = "master"; }; init = { defaultBranch = "master"; };
}; };
ignores = [ ".direnv/**" "result" ]; ignores = [ ".direnv/**" "result" ];
includes = [{
path = "~/.config/git/personal";
condition = "gitdir:~/dev/personal/";
}];
}; };
# Personal git config
# TODO: fix with variables
xdg.configFile."git/personal".text = ''
[user]
name = "Noah Masur"
email = "7386960+nmasur@users.noreply.github.com"
'';
programs.fish.shellAbbrs = { programs.fish.shellAbbrs = {
g = "git"; g = "git";
gs = "git status"; gs = "git status";

View File

@ -57,6 +57,7 @@
| fzf \ | fzf \
--header-lines=1 \ --header-lines=1 \
--layout=reverse \ --layout=reverse \
--height=100% \
--bind "ctrl-o:execute:gh repo view -w ''${organization}/{1}" \ --bind "ctrl-o:execute:gh repo view -w ''${organization}/{1}" \
--bind "shift-up:preview-half-page-up" \ --bind "shift-up:preview-half-page-up" \
--bind "shift-down:preview-half-page-down" \ --bind "shift-down:preview-half-page-down" \

View File

@ -1,4 +1,4 @@
{ config, pkgs, ... }: { { config, pkgs, lib, ... }: {
home-manager.users.${config.user} = { home-manager.users.${config.user} = {
programs.fish = { programs.fish = {
@ -60,6 +60,18 @@
enableFishIntegration = true; enableFishIntegration = true;
}; };
# Create nix-index if doesn't exist
home.activation.createNixIndex =
let cacheDir = "${config.homePath}/.cache/nix-index";
in lib.mkIf
config.home-manager.users.${config.user}.programs.nix-index.enable
(config.home-manager.users.${config.user}.lib.dag.entryAfter
[ "writeBoundary" ] ''
if [ ! -d ${cacheDir} ]; then
$DRY_RUN_CMD ${pkgs.nix-index}/bin/nix-index -f ${pkgs.path}
fi
'');
}; };
nix = { nix = {

View File

@ -31,6 +31,8 @@ in {
lf # File viewer lf # File viewer
qrencode # Generate qr codes qrencode # Generate qr codes
rsync # Copy folders rsync # Copy folders
ren # Rename files
# rep # Replace text in files
ripgrep # grep ripgrep # grep
sd # sed sd # sed
tealdeer # Cheatsheets tealdeer # Cheatsheets

View File

@ -24,9 +24,9 @@
home.activation.reloadHammerspoon = home.activation.reloadHammerspoon =
config.home-manager.users.${config.user}.lib.dag.entryAfter config.home-manager.users.${config.user}.lib.dag.entryAfter
[ "writeBoundary" ] '' [ "writeBoundary" ] ''
$DRY_RUN_CMD /usr/local/bin/hs -c "hs.reload()" $DRY_RUN_CMD /Applications/Hammerspoon.app/Contents/Frameworks/hs/hs -c "hs.reload()"
$DRY_RUN_CMD sleep 1 $DRY_RUN_CMD sleep 1
$DRY_RUN_CMD /usr/local/bin/hs -c "hs.console.clearConsole()" $DRY_RUN_CMD /Applications/Hammerspoon.app/Contents/Frameworks/hs/hs -c "hs.console.clearConsole()"
''; '';
}; };

View File

@ -9,7 +9,7 @@ obj.version = "0.1"
obj.license = "MIT - https://opensource.org/licenses/MIT" obj.license = "MIT - https://opensource.org/licenses/MIT"
function obj:init() function obj:init()
hs.window.animationDuration = 0 hs.window.animationDuration = 0.1
dofile(hs.spoons.resourcePath("worklayout.lua"))() dofile(hs.spoons.resourcePath("worklayout.lua"))()
-- bind hotkey -- bind hotkey
hs.hotkey.bind({ "alt", "ctrl", "cmd" }, "n", function() hs.hotkey.bind({ "alt", "ctrl", "cmd" }, "n", function()

View File

@ -1,5 +1,5 @@
hs.ipc.cliInstall() -- Install Hammerspoon CLI program
hs.loadSpoon("ControlEscape"):start() -- Load Hammerspoon bits from https://github.com/jasonrudolph/ControlEscape.spoon hs.loadSpoon("ControlEscape"):start() -- Load Hammerspoon bits from https://github.com/jasonrudolph/ControlEscape.spoon
hs.loadSpoon("Launcher"):init() hs.loadSpoon("Launcher"):init()
hs.loadSpoon("DismissAlerts"):init() hs.loadSpoon("DismissAlerts"):init()
hs.loadSpoon("MoveWindow"):init() hs.loadSpoon("MoveWindow"):init()
hs.ipc.cliInstall() -- Install Hammerspoon CLI program

View File

@ -8,11 +8,15 @@
if ! xcode-select --version 2>/dev/null; then if ! xcode-select --version 2>/dev/null; then
$DRY_RUN_CMD xcode-select --install $DRY_RUN_CMD xcode-select --install
fi fi
if ! /usr/local/bin/brew --version 2>/dev/null; then if ! /opt/homebrew/bin/brew --version 2>/dev/null; then
$DRY_RUN_CMD /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" $DRY_RUN_CMD /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
fi fi
''; '';
# Add homebrew paths to CLI path
home-manager.users.${config.user}.home.sessionPath =
[ "/opt/homebrew/bin/" ];
homebrew = { homebrew = {
enable = true; enable = true;
onActivation = { onActivation = {
@ -24,25 +28,19 @@
brewfile = true; # Run brew bundle from anywhere brewfile = true; # Run brew bundle from anywhere
lockfiles = false; # Don't save lockfile (since running from anywhere) lockfiles = false; # Don't save lockfile (since running from anywhere)
}; };
taps = [
"homebrew/cask" # Required for casks
"homebrew/cask-drivers" # Used for Logitech G-Hub
];
brews = [ brews = [
"trash" # Delete files and folders to trash instead of rm "trash" # Delete files and folders to trash instead of rm
"openjdk" # Required by Apache Directory Studio
]; ];
casks = [ casks = [
"1password" # 1Password packaging on Nix is broken for macOS "1password" # 1Password will not launch from Nix on macOS
"apache-directory-studio" # Packaging on Nix is not available for macOS # "gitify" # Git notifications in menu bar (downgrade manually from 4.6.1)
"gitify" # Git notifications in menu bar
"keybase" # GUI on Nix not available for macOS "keybase" # GUI on Nix not available for macOS
"logitech-g-hub" # Mouse and keyboard management # "logitech-g-hub" # Mouse and keyboard management
"logitune" # Logitech webcam firmware
"meetingbar" # Show meetings in menu bar "meetingbar" # Show meetings in menu bar
"obsidian" # Obsidian packaging on Nix is not available for macOS
"scroll-reverser" # Different scroll style for mouse vs. trackpad "scroll-reverser" # Different scroll style for mouse vs. trackpad
"steam" # Not packaged for Nix # "steam" # Not packaged for Nix
"epic-games" # Not packaged for Nix # "epic-games" # Not packaged for Nix
]; ];
}; };

View File

@ -2,7 +2,7 @@
config = lib.mkIf pkgs.stdenv.isDarwin { config = lib.mkIf pkgs.stdenv.isDarwin {
networking = { networking = {
computerName = "${config.fullName}'\\''s Mac"; computerName = config.networking.hostName;
# Adjust if necessary # Adjust if necessary
# hostName = ""; # hostName = "";
}; };

View File

@ -1,4 +1,4 @@
{ pkgs, lib, ... }: { { config, pkgs, lib, ... }: {
config = lib.mkIf pkgs.stdenv.isDarwin { config = lib.mkIf pkgs.stdenv.isDarwin {
@ -34,8 +34,8 @@
# Enable full keyboard access for all controls (e.g. enable Tab in modal dialogs) # Enable full keyboard access for all controls (e.g. enable Tab in modal dialogs)
AppleKeyboardUIMode = 3; AppleKeyboardUIMode = 3;
# Automatically show and hide the menu bar # Only hide menu bar in fullscreen
_HIHideMenuBar = true; _HIHideMenuBar = false;
# Expand save panel by default # Expand save panel by default
NSNavPanelExpandedStateForSaveMode = true; NSNavPanelExpandedStateForSaveMode = true;
@ -112,77 +112,95 @@
# Disable trackpad tap to click # Disable trackpad tap to click
trackpad.Clicking = false; trackpad.Clicking = false;
# universalaccess = {
# # Zoom in with Control + Scroll Wheel
# closeViewScrollWheelToggle = true;
# closeViewZoomFollowsFocus = true;
# };
# Where to save screenshots # Where to save screenshots
screencapture.location = "~/Downloads"; screencapture.location = "~/Downloads";
CustomUserPreferences = {
# Disable disk image verification
"com.apple.frameworks.diskimages" = {
skip-verify = true;
skip-verify-locked = true;
skip-verify-remote = true;
};
# Avoid creating .DS_Store files on network or USB volumes
"com.apple.desktopservices" = {
DSDontWriteNetworkStores = true;
DSDontWriteUSBStores = true;
};
"com.apple.dock" = {
magnification = true;
largesize = 48;
persistent-apps = let
dockText = app:
"<dict><key>tile-data</key><dict><key>file-data</key><dict><key>_CFURLString</key><string>${app}</string><key>_CFURLStringType</key><integer>0</integer></dict></dict></dict>";
in map dockText [
"/Applications/1Password.app"
"${pkgs.slack}/Applications/Slack.app"
"/System/Applications/Calendar.app"
"${pkgs.firefox-bin}/Applications/Firefox.app"
"/System/Applications/Messages.app"
"/System/Applications/Mail.app"
"/Applications/zoom.us.app"
"${pkgs.discord}/Applications/Discord.app"
"${pkgs.obsidian}/Applications/Obsidian.app"
"${pkgs.kitty}/Applications/kitty.app"
"/System/Applications/System Settings.app"
];
};
# Require password immediately after screen saver begins
"com.apple.screensaver" = {
askForPassword = 1;
askForPasswordDelay = 0;
};
"com.apple.finder" = {
# Disable the warning before emptying the Trash
WarnOnEmptyTrash = false;
# Finder search in current folder by default
FXDefaultSearchScope = "SCcf";
# Default Finder window set to column view
FXPreferredViewStyle = "clmv";
};
"leits.MeetingBar" = {
eventTimeFormat = ''"show"'';
eventTitleFormat = ''"none"'';
eventTitleIconFormat = ''"iconCalendar"'';
slackBrowser =
''{"deletable":true,"arguments":"","name":"Slack","path":""}'';
zoomBrowser =
''{"deletable":true,"arguments":"","name":"Zoom","path":""}'';
KeyboardShortcuts_joinEventShortcut =
''{"carbonModifiers":6400,"carbonKeyCode":38}'';
timeFormat = ''"12-hour"'';
};
};
CustomSystemPreferences = {
};
}; };
# Settings that don't have an option in nix-darwin # Settings that don't have an option in nix-darwin
activationScripts.postActivation.text = '' activationScripts.postActivation.text = ''
echo "Disable disk image verification"
defaults write com.apple.frameworks.diskimages skip-verify -bool true
defaults write com.apple.frameworks.diskimages skip-verify-locked -bool true
defaults write com.apple.frameworks.diskimages skip-verify-remote -bool true
echo "Avoid creating .DS_Store files on network volumes"
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
echo "Disable the warning before emptying the Trash"
defaults write com.apple.finder WarnOnEmptyTrash -bool false
echo "Require password immediately after sleep or screen saver begins"
defaults write com.apple.screensaver askForPassword -int 1
defaults write com.apple.screensaver askForPasswordDelay -int 0
echo "Allow apps from anywhere" echo "Allow apps from anywhere"
SPCTL=$(spctl --status) SPCTL=$(spctl --status)
if ! [ "$SPCTL" = "assessments disabled" ]; then if ! [ "$SPCTL" = "assessments disabled" ]; then
sudo spctl --master-disable sudo spctl --master-disable
fi fi
''; '';
# User-level settings # User-level settings
activationScripts.postUserActivation.text = '' activationScripts.postUserActivation.text = let
persistentApps = lib.concatMapStrings (x: ''"'' + x + ''" '')
config.system.defaults.CustomUserPreferences."com.apple.dock".persistent-apps;
in ''
echo "Show the ~/Library folder" echo "Show the ~/Library folder"
chflags nohidden ~/Library chflags nohidden ~/Library
echo "Enable dock magnification"
defaults write com.apple.dock magnification -bool true
echo "Set dock magnification size"
defaults write com.apple.dock largesize -int 48
echo "Define dock icon function"
__dock_item() {
printf "%s%s%s%s%s" \
"<dict><key>tile-data</key><dict><key>file-data</key><dict>" \
"<key>_CFURLString</key><string>" \
"$1" \
"</string><key>_CFURLStringType</key><integer>0</integer>" \
"</dict></dict></dict>"
}
echo "Choose and order dock icons" echo "Choose and order dock icons"
defaults write com.apple.dock persistent-apps -array \ defaults write com.apple.dock persistent-apps -array ${persistentApps}
"$(__dock_item /Applications/1Password.app)" \
"$(__dock_item ${pkgs.slack}/Applications/Slack.app)" \
"$(__dock_item /System/Applications/Calendar.app)" \
"$(__dock_item ${pkgs.firefox-bin}/Applications/Firefox.app)" \
"$(__dock_item /System/Applications/Messages.app)" \
"$(__dock_item /System/Applications/Mail.app)" \
"$(__dock_item /Applications/zoom.us.app)" \
"$(__dock_item ${pkgs.discord}/Applications/Discord.app)" \
"$(__dock_item /Applications/Obsidian.app)" \
"$(__dock_item ${pkgs.kitty}/Applications/kitty.app)" \
"$(__dock_item /System/Applications/System\ Settings.app)"
''; '';
}; };

View File

@ -9,8 +9,18 @@
}; };
# Used for aerc home-manager.users.${config.user} = {
home-manager.users.${config.user}.xdg.enable = true;
# Default shell setting doesn't work
home.sessionVariables = { SHELL = "${pkgs.fish}/bin/fish"; };
# Used for aerc
xdg.enable = true;
};
# Fix for: 'Error: HOME is set to "/var/root" but we expect "/var/empty"'
home-manager.users.root.home.homeDirectory = lib.mkForce "/var/root";
}; };

View File

@ -14,10 +14,10 @@
pandoc # Convert text documents pandoc # Convert text documents
mpd # TUI slideshows mpd # TUI slideshows
mpv # Video player mpv # Video player
gnupg # Encryption
awscli2 awscli2
awslogs awslogs
google-cloud-sdk google-cloud-sdk
ansible
vault-bin vault-bin
consul consul
noti # Create notifications programmatically noti # Create notifications programmatically

View File

@ -4,7 +4,7 @@
services.xserver = { services.xserver = {
layout = "us"; xkb.layout = "us";
# Keyboard responsiveness # Keyboard responsiveness
autoRepeatDelay = 250; autoRepeatDelay = 250;

View File

@ -24,6 +24,7 @@
./netdata.nix ./netdata.nix
./nextcloud.nix ./nextcloud.nix
./paperless.nix ./paperless.nix
./postgresql.nix
./prometheus.nix ./prometheus.nix
./samba.nix ./samba.nix
./secrets.nix ./secrets.nix

View File

@ -27,6 +27,7 @@
news = pkgs.nextcloudApps.news; news = pkgs.nextcloudApps.news;
external = pkgs.nextcloudApps.external; external = pkgs.nextcloudApps.external;
cookbook = pkgs.nextcloudApps.cookbook; cookbook = pkgs.nextcloudApps.cookbook;
snappymail = pkgs.nextcloudApps.snappymail;
}; };
phpOptions = { phpOptions = {
"opcache.interned_strings_buffer" = "16"; "opcache.interned_strings_buffer" = "16";

View File

@ -7,7 +7,7 @@
services.paperless = { services.paperless = {
mediaDir = "/data/generic/paperless"; mediaDir = "/data/generic/paperless";
passwordFile = config.secrets.paperless.dest; passwordFile = config.secrets.paperless.dest;
extraConfig = { settings = {
PAPERLESS_OCR_USER_ARGS = PAPERLESS_OCR_USER_ARGS =
builtins.toJSON { invalidate_digital_signatures = true; }; builtins.toJSON { invalidate_digital_signatures = true; };
@ -17,7 +17,10 @@
}; };
}; };
users.users.paperless.extraGroups = [ "generic" ]; # Allow Nextcloud and user to see files
users.users.nextcloud.extraGroups =
lib.mkIf config.services.nextcloud.enable [ "paperless" ];
users.users.${config.user}.extraGroups = [ "paperless" ];
caddy.routes = [{ caddy.routes = [{
match = [{ match = [{
@ -45,6 +48,24 @@
before = [ "paperless.service" ]; before = [ "paperless.service" ];
}; };
# Fix permissions on a regular schedule
systemd.timers.paperless-permissions = {
timerConfig = {
OnCalendar = "*-*-* *:0/5"; # Every 5 minutes
Unit = "paperless-permissions.service";
};
wantedBy = [ "timers.target" ];
};
# Fix paperless shared permissions
systemd.services.paperless-permissions = {
description = "Allow group access to paperless files";
serviceConfig = { Type = "oneshot"; };
script = ''
find ${config.services.paperless.mediaDir} -type f -exec chmod 640 -- {} +
'';
};
}; };
} }

View File

@ -0,0 +1,22 @@
{ config, pkgs, lib, ... }: {
services.postgresql = {
package = pkgs.postgresql_15;
settings = { };
identMap = "";
ensureUsers = [{
name = config.user;
ensureClauses = {
createdb = true;
createrole = true;
login = true;
};
}];
};
home-manager.users.${config.user}.home.packages =
lib.mkIf config.services.postgresql.enable [
pkgs.pgcli # Postgres client with autocomplete
];
}

View File

@ -1,9 +0,0 @@
# Pin age because it is failing to build
# https://github.com/NixOS/nixpkgs/pull/265753
inputs: _final: prev: {
age = prev.age.overrideAttrs (old: {
src = inputs.age;
doCheck = false; # https://github.com/FiloSottile/age/issues/517
});
}

View File

@ -16,7 +16,6 @@ let
in { in {
nil = inputs.nil.packages.${prev.system}.nil;
nvim-lspconfig = withSrc prev.vimPlugins.nvim-lspconfig inputs.nvim-lspconfig; nvim-lspconfig = withSrc prev.vimPlugins.nvim-lspconfig inputs.nvim-lspconfig;
cmp-nvim-lsp = withSrc prev.vimPlugins.cmp-nvim-lsp inputs.cmp-nvim-lsp; cmp-nvim-lsp = withSrc prev.vimPlugins.cmp-nvim-lsp inputs.cmp-nvim-lsp;
null-ls-nvim = withSrc prev.vimPlugins.null-ls-nvim inputs.null-ls-nvim; null-ls-nvim = withSrc prev.vimPlugins.null-ls-nvim inputs.null-ls-nvim;
@ -36,5 +35,7 @@ in {
# Packaging plugins entirely with Nix # Packaging plugins entirely with Nix
baleia-nvim = plugin "baleia-nvim" inputs.baleia-nvim-src; baleia-nvim = plugin "baleia-nvim" inputs.baleia-nvim-src;
hmts-nvim = plugin "hmts-nvim" inputs.hmts-nvim-src; hmts-nvim = plugin "hmts-nvim" inputs.hmts-nvim-src;
kitty-scrollback-nvim =
plugin "kitty-scrollback-nvim" inputs.kitty-scrollback-nvim-src;
} }

View File

@ -16,6 +16,11 @@ inputs: _final: prev: {
sha256 = inputs.nextcloud-cookbook.narHash; sha256 = inputs.nextcloud-cookbook.narHash;
license = "agpl3Plus"; license = "agpl3Plus";
}; };
snappymail = prev.fetchNextcloudApp {
url = inputs.nextcloud-snappymail.outPath;
sha256 = inputs.nextcloud-snappymail.narHash;
license = "agpl3Plus";
};
}; };
} }

17
overlays/ren-rep.nix Normal file
View File

@ -0,0 +1,17 @@
inputs: _final: prev: {
ren = prev.rustPlatform.buildRustPackage {
pname = "ren-find";
version = "0.0.7";
src = inputs.ren;
cargoHash = "sha256-3bI3j2xvNHp4kyLEq/DZvRJBF2rn6pE4n8oXh67edDI=";
};
# rep = prev.rustPlatform.buildRustPackage {
# pname = "rep-grep";
# version = "0.0.7";
# src = inputs.rep;
# cargoHash = "sha256-GEr3VvQ0VTKHUbW/GFEgwLpQWP2ZhS/4KYjDvfFLgxo=";
# };
}

View File

@ -1,12 +0,0 @@
# Fix for Terraform and Consul on Darwin:
# https://github.com/NixOS/nixpkgs/pull/275534/files
_final: prev: {
girara = prev.girara.overrideAttrs (old: {
mesonFlags = [
"-Ddocs=disabled"
(prev.lib.mesonEnable "tests"
((prev.stdenv.buildPlatform.canExecute prev.stdenv.hostPlatform)
&& (!prev.stdenv.isDarwin)))
];
});
}

View File

@ -32,6 +32,11 @@ inputs: _final: prev: {
version = "0.1.1"; version = "0.1.1";
src = inputs.tree-sitter-rasi; src = inputs.tree-sitter-rasi;
}; };
tree-sitter-vimdoc = prev.tree-sitter.buildGrammar {
language = "vimdoc";
version = "2.1.0";
src = inputs.tree-sitter-vimdoc;
};
}; };
} }