Compare commits

...

282 commits

Author SHA1 Message Date
matt1432 cc57e70de5 chore: bump firefox-gx
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-11 07:26:52 -04:00
matt1432 d230f9fabe chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
Flake inputs:
• Updated input 'discord-overlay':
    'github:matt1432/discord-nightly-overlay/012ca035ff0e7eb8d8663674645e00f8cea5757e?narHash=sha256-A1gms/3YZLz%2B6E2RQoR/aCRApz6imSy9KOlct8QY1hs%3D' (2024-07-09)
  → 'github:matt1432/discord-nightly-overlay/94cb9dac116b1038d65f7733c8a88d9139a6f773?narHash=sha256-mnFt2qx1hgYEV5Brimp/swrbyl8zlm0NO55Q%2BUqBGtk%3D' (2024-07-11)

• Updated input 'discord-overlay/Vencord-src':
    'github:Vendicated/vencord/02092a985c2f95f2f265387a849db8cec95742a8?narHash=sha256-i7UqEjdV6%2BkeocA8jkZsLYKEYew8luJqYn7CS5cgF7w%3D' (2024-07-06)
  → 'github:Vendicated/vencord/9f8c7494216b3d5aadb8d3fec14fa5ac7d8f448a?narHash=sha256-uZQkPqIYcy7ESnCADR7lpjNQL3C1tcqZcgpwioDbb5o%3D' (2024-07-10)

• Updated input 'home-manager':
    'github:nix-community/home-manager/2fb5c1e0a17bc6059fa09dc411a43d75f35bb192?narHash=sha256-7ftA4Bv5KfH4QdTRxqe8/Hz2YTKo%2B7IQ9n7vbNWgv28%3D' (2024-07-08)
  → 'github:nix-community/home-manager/c085b984ff2808bf322f375b10fea5a415a9c43d?narHash=sha256-BivO5yIQukDlJL%2B1875Sqf3GuOPxZDdA48dYDi3PkL8%3D' (2024-07-10)

• Updated input 'jovian':
    'github:Jovian-Experiments/Jovian-NixOS/5d1928b925da7390eae3e369e6808d64cf916ed7?narHash=sha256-rw8s4EsRSVtlAGNd5ttO4Ynb/eq0rMJsqG9zyREK3sk%3D' (2024-07-08)
  → 'github:Jovian-Experiments/Jovian-NixOS/6f9390004b18e8b9be7863ab6506a038129e4f06?narHash=sha256-DPP3lWzpRxEETzlYbfvQVmIse/ZKWqLkDAFkvu4XRl4%3D' (2024-07-10)

• Updated input 'neovim-nightly':
    'github:nix-community/neovim-nightly-overlay/b6b51915180e6d2eac488d6f882e4ba36bad380d?narHash=sha256-IG/g4l/W0R2M/jxEyu/Sl3BmR/OK5D1jiahpc0wlpvE%3D' (2024-07-09)
  → 'github:nix-community/neovim-nightly-overlay/ec4631892b2515261158b1b12900758a9eb5a660?narHash=sha256-x%2Bg48Jl5De2oOfFazKbEP8IabXaeAKmF3JLcQyADYvE%3D' (2024-07-10)

• Updated input 'neovim-nightly/git-hooks':
    'github:cachix/git-hooks.nix/2b6bd3c87d3a66fb0b8f2f06c985995e04b4fb96?narHash=sha256-1in42htN3g3MnE3/AO5Qgs6pMWUzmtPQ7s675brO8uw%3D' (2024-07-08)
  → 'github:cachix/git-hooks.nix/8d6a17d0cdf411c55f12602624df6368ad86fac1?narHash=sha256-ni/87oHPZm6Gv0ECYxr1f6uxB0UKBWJ6HvS7lwLU6oY%3D' (2024-07-09)

• Updated input 'neovim-nightly/neovim-src':
    'github:neovim/neovim/fb6c059dc55c8d594102937be4dd70f5ff51614a?narHash=sha256-66u%2Byzjk6NrFr2jj2svD3jwNX8P2B8/DNH9A51V4kh8%3D' (2024-07-08)
  → 'github:neovim/neovim/f3c7fb9db176f32606e83eb47cc7549300191d2f?narHash=sha256-1rWj8M6J/pd4NtNJlnucdteZ%2BYzSIA5YJVdk/T2ssfo%3D' (2024-07-09)

• Updated input 'nix-on-droid':
    'github:nix-community/nix-on-droid/f3d3b8294039f2f9a8fb7ea82c320f29c6b0fe25?narHash=sha256-UFzk/hZWO1VkciIO5UPaSpJN8s765wsngUSvtJM6d5Q%3D' (2024-07-07)
  → 'github:nix-community/nix-on-droid/8bcadcef69dcb5ca177bfb6ea3dc6b092cda2b06?narHash=sha256-WbjV0gmnh6jG1B292K4KIJwtBacn2sTWhiw1ZMeti9s%3D' (2024-07-10)

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/655a58a72a6601292512670343087c2d75d859c1?narHash=sha256-cPJoFPXU44GlhWg4pUk9oUPqurPlCFZ11ZQPk21GTPU%3D' (2024-07-08)
  → 'github:NixOS/nixpkgs/feb2849fdeb70028c70d73b848214b00d324a497?narHash=sha256-ZgnNHuKV6h2%2BfQ5LuqnUaqZey1Lqqt5dTUAiAnqH0QQ%3D' (2024-07-09)

• Updated input 'nixpkgs-wayland':
    'github:nix-community/nixpkgs-wayland/813f608e25bc14b16053c005b05ebf8b18d25503?narHash=sha256-05wIPweI6ts1BtVaMYbdL5KEelMfM4g5f/Z/xQzXRQI%3D' (2024-07-08)
  → 'github:nix-community/nixpkgs-wayland/8f132445454c6b9f0b21952953885007b961310a?narHash=sha256-r0a7rtlx5GzJ57izpq58B30sAzSIH2V/ctwIsMV51rY%3D' (2024-07-11)

• Updated input 'pcsd':
    'github:matt1432/nixos-pcsd/f9a452d33a0c02d6aecb15d330c9bb91b3f3b11e?narHash=sha256-b1IcFAJpwQNb/761B2Ohq02tTlNtDhKihX1wpQY8Qic%3D' (2024-07-07)
  → 'github:matt1432/nixos-pcsd/797d947767101781497a1e1b869f27d449e2a7c2?narHash=sha256-MFbEMQu%2BvlWYzRPYrEANm02PWkRSgkJkaHuSVIyIEzM%3D' (2024-07-11)

Docker Images:
• vegardit/gitea-act-runner dind-latest:
   sha256:01f8359d5e1bbb7aa614acffebf81bea6ffce4f9fb9e57872466df381103a4bd
 → sha256:a6d70b4df97eab6b52ee7094c80109b28c0c2e8d9066c60b71b3222e88726444

• ghcr.io/immich-app/immich-server v1.108.0:
   sha256:75746006b35a7bc61408cd4d124dc73344f0a087c2d9769c4715ca84a1d87591
 → sha256:248a6da7dadeb57f90eacd5635ecc65e63d4c3646a6c94a362bb57cba1b314fa

• ghcr.io/immich-app/immich-machine-learning v1.108.0:
   sha256:f22d949f5f3e16d1c3dcf0aa3ca5f7a73f053b51d2883ac864f9742d3053576b
 → sha256:4dc544396bf08cd92066f83a270155201d80512add127ca9fac2d3e56694d2a4

• ghcr.io/linuxserver/calibre latest:
   sha256:ab3c6fb537e1b3085963c7407a4971e7e535812341eb65b10b42691389697292
 → sha256:4e886252cad4a7796289a737afb4b47e9b547b7e2d2b9e35fd3153c8f97eefca

• ghcr.io/linuxserver/sabnzbd latest:
   sha256:db76abdcd65ba2c06a630d17d7e71e75245f8c7ace734d4cadd6402e2776ad5c
 → sha256:cd0e0de27454b040a0d55d1a06885dc78366435ce6794b82a6e4194b795e213a
2024-07-11 07:02:50 -04:00
matt1432 1bc2b60d6a feat(bbsteamie): add steam-rom-manager
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-10 21:58:10 -04:00
matt1432 640c3aec06 fix(plymouth): set timeout to 0
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-10 21:27:29 -04:00
matt1432 b05864573d feat: add plymouth to bbsteamie
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-10 20:38:03 -04:00
matt1432 dc1b120c50 feat(desktop): visually cleanup boot sequence
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-10 20:12:46 -04:00
matt1432 fdea25896e fix(desktop: make sure tailscale works at hyprland launch
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-10 17:33:09 -04:00
matt1432 13abafb1b2 refactor(dm): use home-manager for greeter hyprland config
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-10 16:56:19 -04:00
matt1432 f793e546f6 refactor(ags clipboard): make a clipboard service
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-10 15:14:44 -04:00
matt1432 9c91d8634f feat(ags): add setup_list func for sorted list
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-10 14:15:48 -04:00
matt1432 7600d2f4cf perf(ags): don't sort multiple times
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-10 13:55:45 -04:00
matt1432 b28f07d9db chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
Flake inputs:
• Updated input 'Hyprspace':
    'github:KZDKM/Hyprspace/2f3edb68f47a8f5d99d10b322e9a85a285f53cc7?narHash=sha256-iyj4D6c77uROAH9QdZjPd9SKnS/DuACMESqaEKnBgI8%3D' (2024-06-17)
  → 'github:KZDKM/Hyprspace/e8662093ae5b6e13a3cf1145d21d4804a3e84aeb?narHash=sha256-9aM4MCBJn4UstcsSdukOFTxg79keUMTw9Kmqr7Wsfmw%3D' (2024-07-09)

• Updated input 'discord-overlay':
    'github:matt1432/discord-nightly-overlay/d01718cae1920c0304dba16c8a579d7e309dd91e?narHash=sha256-7BmikJsEItlCGd3ppAB6sn8EXNB08U4pRXttoSQGN0Q%3D' (2024-07-07)
  → 'github:matt1432/discord-nightly-overlay/012ca035ff0e7eb8d8663674645e00f8cea5757e?narHash=sha256-A1gms/3YZLz%2B6E2RQoR/aCRApz6imSy9KOlct8QY1hs%3D' (2024-07-09)

• Updated input 'home-manager':
    'github:nix-community/home-manager/6b7ce96f34b324e4e104abc30d06955d216bac71?narHash=sha256-kAsg3Lg4YKKpGw%2Bf1W2s5hzjP8B0y/juowvjK8utIag%3D' (2024-07-07)
  → 'github:nix-community/home-manager/2fb5c1e0a17bc6059fa09dc411a43d75f35bb192?narHash=sha256-7ftA4Bv5KfH4QdTRxqe8/Hz2YTKo%2B7IQ9n7vbNWgv28%3D' (2024-07-08)

• Updated input 'hyprland':
    'git+https://github.com/hyprwm/Hyprland?ref=refs/heads/main&rev=22138ac259b2f4253be29311f6b60fbd675074b4&submodules=1' (2024-07-07)
  → 'git+https://github.com/hyprwm/Hyprland?ref=refs/heads/main&rev=b03f41efec14273cf25c42d4cef326acc36cb319&submodules=1' (2024-07-08)

• Updated input 'hyprland/hyprcursor':
    'github:hyprwm/hyprcursor/66d5b46ff94efbfa6fa3d1d1b66735f1779c34a6?narHash=sha256-jpsns6buS4bK%2B1sF8sL8AaixAiCRjA%2BnldTKvcwmvUs%3D' (2024-06-15)
  → 'github:hyprwm/hyprcursor/a5c0d57325c5f0814c39110a70ca19c070ae9486?narHash=sha256-AxRkTJlbB8r7aG6gvc7IaLhc2T9TO4/8uqanKRxukBQ%3D' (2024-07-04)

• Updated input 'hyprland/hyprlang':
    'github:hyprwm/hyprlang/ec6938c66253429192274d612912649a0cfe4d28?narHash=sha256-XeeVoKHQgfKuXoP6q90sUqKyl7EYy3ol2dVZGM%2BJj94%3D' (2024-06-08)
  → 'github:hyprwm/hyprlang/5df0174fd09de4ac5475233d65ffc703e89b82eb?narHash=sha256-lyC/EZdHULsaAKVryK11lgHY9u6pXr7qR4irnxNWC7k%3D' (2024-07-07)

• Updated input 'hyprland/hyprutils':
    'github:hyprwm/hyprutils/1f6bbec5954f623ff8d68e567bddcce97cd2f085?narHash=sha256-dmRz128j/lJmMuTYeCYPfSBRHHQO3VeH4PbmoyAhHzw%3D' (2024-06-25)
  → 'github:hyprwm/hyprutils/a8c3a135701a7b64db0a88ec353a392f402d2a87?narHash=sha256-lq2dPPPcwMHTLsFrQ2pRp4c2LwDZWoqzSyjuPdeJCP4%3D' (2024-07-05)

• Updated input 'hyprland/hyprwayland-scanner':
    'github:hyprwm/hyprwayland-scanner/914f083741e694092ee60a39d31f693d0a6dc734?narHash=sha256-mAnZG/eQy72Fp1ImGtqCgUrDumnR1rMZv2E/zgP4U74%3D' (2024-06-22)
  → 'github:hyprwm/hyprwayland-scanner/d5fa094ca27e0039be5e94c0a80ae433145af8bb?narHash=sha256-JPdL%2BQul%2BjEueAn8CARfcWP83eJgwkhMejQYfDvrgvU%3D' (2024-07-05)

• Updated input 'hyprland/xdph':
    'github:hyprwm/xdg-desktop-portal-hyprland/c7894aa54f9a7dbd16df5cd24d420c8af22d5623?narHash=sha256-FWW68AVYmB91ZDQnhLMBNCUUTCjb1ZpO2k2KIytHtkA%3D' (2024-06-17)
  → 'github:hyprwm/xdg-desktop-portal-hyprland/b9b97e5ba23fe7bd5fa4df54696102e8aa863cf6?narHash=sha256-Rizg9efi6ue95zOp0MeIV2ZedNo%2B5U9G2l6yirgBUnA%3D' (2024-07-05)
• Updated input 'hyprland/xdph/hyprland-protocols':
    'github:hyprwm/hyprland-protocols/e06482e0e611130cd1929f75e8c1cf679e57d161?narHash=sha256-vbLVOWvQqo4n1yvkg/Q70VTlPbMmTiCQfNTgcWDCfJM%3D' (2024-05-05)
  → 'github:hyprwm/hyprland-protocols/1b61f0093afff20ab44d88ad707aed8bf2215290?narHash=sha256-HUklK5u86w2Yh9dOkk4FdsL8eehcOZ95jPhLixGDRQY%3D' (2024-06-18)

• Updated input 'jovian':
    'github:Jovian-Experiments/Jovian-NixOS/fdcaab38857f221eea20a0073f891feb36ea8e99?narHash=sha256-KqGnYAKWxwRgWxc/78HbL3PHeuDJOSS/9%2BPkm5doUk8%3D' (2024-07-05)
  → 'github:Jovian-Experiments/Jovian-NixOS/5d1928b925da7390eae3e369e6808d64cf916ed7?narHash=sha256-rw8s4EsRSVtlAGNd5ttO4Ynb/eq0rMJsqG9zyREK3sk%3D' (2024-07-08)

• Updated input 'neovim-nightly':
    'github:nix-community/neovim-nightly-overlay/9822e0611d49ae70278ac20c9d7b68e4797b2fab?narHash=sha256-ihHXj%2Bfp/BVpc86rCNN%2BQbnpg6OrbeI%2Bjxz6VRyzcy0%3D' (2024-07-06)
  → 'github:nix-community/neovim-nightly-overlay/b6b51915180e6d2eac488d6f882e4ba36bad380d?narHash=sha256-IG/g4l/W0R2M/jxEyu/Sl3BmR/OK5D1jiahpc0wlpvE%3D' (2024-07-09)

• Updated input 'neovim-nightly/git-hooks':
    'github:cachix/git-hooks.nix/0ff4381bbb8f7a52ca4a851660fc7a437a4c6e07?narHash=sha256-F1h%2BXIsGKT9TkGO3omxDLEb/9jOOsI6NnzsXFsZhry4%3D' (2024-06-24)
  → 'github:cachix/git-hooks.nix/2b6bd3c87d3a66fb0b8f2f06c985995e04b4fb96?narHash=sha256-1in42htN3g3MnE3/AO5Qgs6pMWUzmtPQ7s675brO8uw%3D' (2024-07-08)

• Updated input 'neovim-nightly/neovim-src':
    'github:neovim/neovim/3c53e8f78511d6db9a6c804e5a479ba38c33102d?narHash=sha256-9tiW0rkQZGhnNaIP6gWj7N/iTlCLFdD5r37R1jVOs3s%3D' (2024-07-05)
  → 'github:neovim/neovim/fb6c059dc55c8d594102937be4dd70f5ff51614a?narHash=sha256-66u%2Byzjk6NrFr2jj2svD3jwNX8P2B8/DNH9A51V4kh8%3D' (2024-07-08)

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9f4128e00b0ae8ec65918efeba59db998750ead6?narHash=sha256-rwz8NJZV%2B387rnWpTYcXaRNvzUSnnF9aHONoJIYmiUQ%3D' (2024-07-03)
  → 'github:NixOS/nixpkgs/655a58a72a6601292512670343087c2d75d859c1?narHash=sha256-cPJoFPXU44GlhWg4pUk9oUPqurPlCFZ11ZQPk21GTPU%3D' (2024-07-08)

• Updated input 'nixpkgs-wayland':
    'github:nix-community/nixpkgs-wayland/2e42a42b46fd0e79306cf9207b00a7364e77c1ab?narHash=sha256-DMmXUEesU/CGtnOiXkMZYJvXf%2BTJNZnKxIuiuA6ssZs%3D' (2024-07-07)
  → 'github:nix-community/nixpkgs-wayland/813f608e25bc14b16053c005b05ebf8b18d25503?narHash=sha256-05wIPweI6ts1BtVaMYbdL5KEelMfM4g5f/Z/xQzXRQI%3D' (2024-07-08)

• Updated input 'sops-nix':
    'github:Mic92/sops-nix/c184aca4db5d71c3db0c8cbfcaaec337a5d065ea?narHash=sha256-kcI8q9Nh8/CSj0ygfWq1DLckHl8IHhFarL8ie6g7OEk%3D' (2024-07-07)
  → 'github:Mic92/sops-nix/67035a355b1d52d2d238501f8cc1a18706979760?narHash=sha256-jqvhLDXzTLTHq9ZviFOpcTmXXmnbLfz7mWhgMNipMN4%3D' (2024-07-08)

Docker Images:
• craumix/jmusicbot 0.4.1:
   sha256:3d93112ea5318eb527b9dd599e7fd5540fee8e6f481769a86f225e6d715d91b2
 → sha256:560d380cbe9e90fd51e420eb060d5780dca07a5e04457b221f72e89210d23eb2

• quay.io/vaultwarden/server latest:
   sha256:edb8e2bab9cbca22e555638294db9b3657ffbb6e5d149a29d7ccdb243e3c71e0
 → sha256:4e28425bad4bd13568e1779f682ff7e441eca2ecd079bd77cfcba6e4eaf1b999

• ghcr.io/linuxserver/bazarr latest:
   sha256:86ad012fc31e974dcf0147900a202443d92d12f4334a9e4ec89baa2052fb12fa
 → sha256:5da74fc1bbd5da69e3b4f9b2376f6ccfbe3b47f143e6eb5651ed37cc1d4412dd

• ghcr.io/linuxserver/calibre-web latest:
   sha256:2de4ab91f2768c6db32d083a5935663fcc0eded1a67a4fdc2c1f705f7bb24d2d
 → sha256:73aa52c663537a21d0b2e5315ba1080aeaecff1fa29dc7c020a4107f64e96490
2024-07-09 18:35:28 -04:00
matt1432 fc98b6020d feat: remove stylelint and neofetch
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-09 14:17:03 -04:00
matt1432 3412b79c1b refactor(ags): switch to astal-tray
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-08 21:15:11 -04:00
matt1432 c6dea3b93d chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-07 20:59:24 -04:00
matt1432 423553b292 fix(bbsteamie): use yuzu instead of ryujinx
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-07 18:41:43 -04:00
matt1432 de44eef38d chore: fix some package names
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-07 17:10:17 -04:00
matt1432 7a78e34479 feat: add yuzu package
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-07 16:55:16 -04:00
matt1432 a29dd7f1d2 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-07 02:10:08 -04:00
matt1432 52242e645a refactor: use simple instead of oneshot type for systemd
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-07 01:54:46 -04:00
matt1432 2a8eb46b03 feat(servers): make 7 Days to Die server work
All checks were successful
Discord / discord commits (push) Successful in 38s
2024-07-06 23:55:05 -04:00
matt1432 4fb8fab641 fix(desktop): adjust monitor refresh rates
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-06 16:00:20 -04:00
matt1432 efb2ae0425 fix(desktop): focus mainMonitor on launch
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-06 15:41:18 -04:00
matt1432 35645b93a6 feat(desktop): wpaperd -> hyprpaper
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-06 03:07:47 -04:00
matt1432 79c293f29f feat(bbsteamie): add discover
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-05 00:27:40 -04:00
matt1432 23ee3bfab9 feat: add more archive cli tools to common config
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-04 21:34:46 -04:00
matt1432 8242426c66 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-04 19:33:33 -04:00
matt1432 49aa21cf32 doc(bbsteamie): add instructions for how to make decky work
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-04 19:06:17 -04:00
matt1432 3a4100cb28 fix(bbsteamie): add some packages to decky
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-04 17:54:27 -04:00
matt1432 61b3fc2c75 fix(bbsteamie): run decky in user's folders
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-04 17:47:09 -04:00
matt1432 04f5aa0f4b fix(bbsteamie): use older version of ryujinx
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-03 20:54:52 -04:00
matt1432 185ce55dbc feat(bbsteamie): add steam settings
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-03 17:49:48 -04:00
matt1432 ac15f698b0 chore: update flake.lock and add discord overlay
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-03 13:24:53 -04:00
matt1432 4405ad4bf9 fix: update flake.lock for latest openssh
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-02 12:21:47 -04:00
matt1432 b1db2f2f85 feat(steam-servers): update 7days to 1.0
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-01 22:43:18 -04:00
matt1432 9a7659814c chore: bump nextcloud
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-01 00:27:07 -04:00
matt1432 ce25e44e57 feat(desktop): add kde-cli-tools
All checks were successful
Discord / discord commits (push) Has been skipped
2024-07-01 00:26:45 -04:00
matt1432 128bad02f3 fix(bbsteamie): switch to x11 session
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-30 12:58:09 -04:00
matt1432 f4473b23b4 feat(bbsteamie): add ryujinx
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-30 12:01:18 -04:00
matt1432 b063022753 feat(bbsteamie): switch to plasma5 to not have annoying popup
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-30 11:58:47 -04:00
matt1432 011b80e760 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-30 11:43:04 -04:00
matt1432 2413c5b74f feat(bbsteamie): add gaming mode button
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-30 02:20:12 -04:00
matt1432 1bb3f8e5e1 fix(bbsteamie): add timeout to decky
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-30 00:35:53 -04:00
matt1432 a69f665865 fix(bbsteamie): fix autologin
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-29 23:00:49 -04:00
matt1432 d6998d84d0 fix(bbsteamie): set correct defaultDesktop
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-29 22:55:16 -04:00
matt1432 5712f36177 fix(bbsteamie): enable sddm
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-29 22:53:47 -04:00
matt1432 16c948d70e fix(bbsteamie): correct the size of swapfile
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-29 22:44:08 -04:00
matt1432 aae39388b2 feat(bbsteamie): add kmscon to config
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-29 22:30:08 -04:00
matt1432 bf0eb1bb86 fix(bbsteamie): correct the path to swapfile
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-29 22:19:22 -04:00
matt1432 045eb7bb00 feat: use http for cache if tailscale not enabled
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-29 22:10:01 -04:00
matt1432 8319e4b87b feat(bbsteamie): add auto-gen'd config
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-29 21:38:22 -04:00
matt1432 7e7dde4c6f feat(servers): add config for 7Days server
All checks were successful
Discord / discord commits (push) Successful in 41s
2024-06-29 17:57:50 -04:00
matt1432 702f0a4d64 feat(firefox): add auto-refresh addon
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-29 17:46:32 -04:00
matt1432 2ceaaeff76 feat(steamdeck): prepare config for eventual install
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-29 03:45:06 -04:00
matt1432 724ced18f1 refactor(vars): get list of colors from schemes
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-28 22:09:17 -04:00
matt1432 261efa8768 feat: support more fs for default x86-linux
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-28 21:47:11 -04:00
matt1432 df6fc2d165 feat(servers): attempt to make a 7 Days to Die server
All checks were successful
Discord / discord commits (push) Successful in 1m14s
2024-06-28 17:43:43 -04:00
matt1432 2789cbed33 feat(steamdeck): add jovian overlays
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-28 13:44:12 -04:00
matt1432 4a2ba58cd4 feat(nix): use disk for nix cache
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-28 13:40:52 -04:00
matt1432 e11914aa08 feat(hypr): unify home/packages to desktop module
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-28 13:37:10 -04:00
matt1432 261f1f0f34 chore: update flake.lock and nvidia version
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-28 02:06:10 -04:00
matt1432 686d459f9c fix(gsr): change path to mainMonitor
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-27 01:03:50 -04:00
matt1432 85a3c28438 refactor: start making flake exposed modules with desktop
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-27 00:56:27 -04:00
matt1432 c119757766 docs: fix typo
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-26 14:48:48 -04:00
matt1432 fc712b5223 refactor: move mpv scripts and firefox addons to scopes in lgcyPkgs
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-26 14:47:14 -04:00
matt1432 c928cc2a86 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-26 10:42:46 -04:00
matt1432 eb36ad141b chore(servers): jellyfin 10.9.6 -> 10.9.7
All checks were successful
Discord / discord commits (push) Successful in 45s
2024-06-24 21:25:03 -04:00
matt1432 a504df00e9 fix(ags): don't close widgets on pressing the bar
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-24 16:52:09 -04:00
matt1432 27f1d01f31 refactor: get rid of mdDocs usage
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-24 12:30:49 -04:00
matt1432 a793ff8a13 feat(hypr): add stuff to make development easier
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-24 11:46:08 -04:00
matt1432 22267e6c2e refactor: remove precise inputs from lib.nix
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-24 11:38:30 -04:00
matt1432 e581ce4582 feat(nvim): set tabs to 4 spaces for c/cpp
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-24 11:33:02 -04:00
matt1432 4a396a28cc fix(hypr): unpin commit
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-23 20:32:04 -04:00
matt1432 ba8c00497d feat(servers): update mc-cv to 1.21
All checks were successful
Discord / discord commits (push) Successful in 39s
2024-06-23 16:57:20 -04:00
matt1432 3efa0d6230 feat(servers): update mc-sv to 1.21
All checks were successful
Discord / discord commits (push) Successful in 38s
2024-06-23 15:51:15 -04:00
matt1432 917e5ae3fc chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-23 15:00:23 -04:00
matt1432 beee9a7521 feat: thunderbird -> protonmail-desktop
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-23 14:26:53 -04:00
matt1432 965466bf7e feat(git): add config for https github
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-23 13:21:02 -04:00
matt1432 87d99ffbb2 fix(wpaperd): pin commit to working version
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-22 20:37:03 -04:00
matt1432 1d0bc7a680 fix(pcsd): update to latest
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-21 21:12:54 -04:00
matt1432 7c396e7615 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-21 18:15:19 -04:00
matt1432 b16a3b499c fix(hypr): pin to last working commit
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-20 00:37:25 -04:00
matt1432 cb6a5f62f8 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-19 19:19:25 -04:00
matt1432 f9113c5334 fix(ags): fix default monitor for bar
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-19 13:03:03 -04:00
matt1432 8abca33123 feat(ags): use hyprland desc for monitor names in the code
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-19 12:54:01 -04:00
matt1432 dfcb1411fa fix(vencord): get latest commit to fix discord
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-19 11:17:18 -04:00
matt1432 32113a2b75 fix(jellyfin): bump input to fix crash
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-17 22:33:27 -04:00
matt1432 c98d947c26 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-17 21:31:47 -04:00
matt1432 09fa6eba73 feat(ags): add autorotate toggle button
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-17 21:30:02 -04:00
matt1432 b37246474c feat(hypr): setup hyprgrass again
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-16 14:33:58 -04:00
matt1432 638957dbb5 chore(nvim): fix deprecation warnings
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-16 12:11:14 -04:00
matt1432 1b22a41415 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-16 11:31:26 -04:00
matt1432 b94a738734 feat: cache devShells by default
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-15 22:51:36 -04:00
matt1432 42d8107399 feat(hypr): adjust some config values
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-15 16:10:52 -04:00
matt1432 ecbabde0bd feat(hypr): update config with latest variables from hyprland
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-15 01:40:26 -04:00
matt1432 eea2b60b91 fix(dracula): add ext to wallpaper
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-13 23:46:34 -04:00
matt1432 d17a69372a refactor(pkgs): improve versioning
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-13 22:27:54 -04:00
matt1432 927a3fbfb1 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-13 11:11:47 -04:00
matt1432 8912b55ff9 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-12 13:09:42 -04:00
matt1432 8ea8963d9c fix(acpid): make sure we run the command even if multiple sockets
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-12 12:56:11 -04:00
matt1432 e8e534a4ad fix(greetd): add necessary newline to hyprland conf
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-12 10:13:43 -04:00
matt1432 6ddeafa403 fix(hm): switch back to upstream
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-11 19:17:20 -04:00
matt1432 edac66e017 fix: update hyprland
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-11 17:17:21 -04:00
matt1432 b869da9668 chore: fix update script and update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-11 16:42:47 -04:00
matt1432 31c3cd5f7d feat(firefox): update and clean up firefox-gx
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-11 11:13:40 -04:00
matt1432 bde58a622d chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-11 08:20:12 -04:00
matt1432 cab5bfa648 refactor: reduce amount of IFDs
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-10 22:57:20 -04:00
matt1432 f08e17f51b chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-10 09:25:24 -04:00
matt1432 158f0a6813 style: change some nix formatting
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-09 22:49:30 -04:00
matt1432 7ea031e84e fix(droid): remove unused imports
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-09 12:02:26 -04:00
matt1432 ef22af1ee9 refactor: get rid of overlays in common
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-08 23:50:13 -04:00
matt1432 a51db7b00f refactor: move dracula from common overlays to pkgs
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-08 23:40:44 -04:00
matt1432 fe7b03dd4a refactor: move customPkgs to self.packages
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-08 22:21:04 -04:00
matt1432 14081936af refactor: move sioyek out of common config
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-08 21:30:44 -04:00
matt1432 bfc7e894bf chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-08 15:22:58 -04:00
matt1432 29bc56e749 fix: update pcsd flake
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-08 01:55:32 -04:00
matt1432 b27ca31c71 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-08 01:43:43 -04:00
matt1432 5a1d50cece fix(wpaperd): make sure wallpaper fits on laptop
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-07 23:17:31 -04:00
matt1432 d11b941ead chore(servers): jellyfin v10.9.5 -> v10.9.6
All checks were successful
Discord / discord commits (push) Successful in 57s
2024-06-06 18:54:09 -04:00
matt1432 df78fafcb9 fix: use latest on wpaperd
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-06 09:22:55 -04:00
matt1432 5faee0c1b4 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-06 08:39:51 -04:00
matt1432 7b7b451ab1 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-05 08:45:20 -04:00
matt1432 1230f92f70 fix(nvim): make coq follow xdg
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-02 20:50:20 -04:00
matt1432 55e49ea248 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-02 18:42:47 -04:00
matt1432 d1d36e28c6 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-02 02:21:56 -04:00
Updater 906a6ddf84 fix(nvim): set config file for latex indenting
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-02 00:04:59 -04:00
matt1432 3d367b0230 feat(nvim): add latex support
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-01 17:41:48 -04:00
matt1432 1471de3400 feat(gaming): add r2modman and some steam stuff
All checks were successful
Discord / discord commits (push) Has been skipped
2024-06-01 15:27:11 -04:00
matt1432 80ab476c80 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-31 19:56:41 -04:00
matt1432 6be9d173b6 fix: don't add local cache to builder
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-29 21:18:50 -04:00
matt1432 7893d37df5 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-29 13:15:17 -04:00
Updater a72a054632 feat(hypr wim): hypridle -> acpid
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-29 12:30:14 -04:00
Updater bd5b0dcec8 feat(wim): add acpi_call to hardware config 2024-05-29 12:29:21 -04:00
matt1432 60de780156 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-28 12:03:20 -04:00
Updater 2fd1f95b79 feat: add nix-output-monitor to default packages
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-27 08:20:23 -04:00
matt1432 b70dcb797d chore(servers): jellyfin 10.9.2 -> 10.9.3
All checks were successful
Discord / discord commits (push) Successful in 42s
2024-05-26 21:56:03 -04:00
matt1432 6fd17209c7 feat(jelly): add merge versions plugin
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-26 15:48:19 -04:00
matt1432 67671e5568 feat(hypr): moved third monitor up
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-26 12:32:31 -04:00
Updater 4da31089e7 fix(hypr): make sure hypridle runs
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-25 21:17:31 -04:00
matt1432 1e448f8ae2 chore: switch to nixos-unstable-small
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-25 20:28:35 -04:00
matt1432 ac16dde84e fix: use latest headscale again
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-25 12:59:40 -04:00
matt1432 a44d11d20c chore: update flake.lock and remove deprecated warning for nvim
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-25 00:23:28 -04:00
matt1432 a59961171a chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-23 21:22:11 -04:00
matt1432 8667fbe805 refactor: reduce amount of nixpkgs in flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-22 20:17:36 -04:00
matt1432 9efff85115 fix(forgejo): fix dns for runner
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-22 14:37:59 -04:00
matt1432 5fb5e08ebd feat(servers): use caddy instead of nginx proxy for jellyfin
All checks were successful
Discord / discord commits (push) Successful in 37s
2024-05-22 14:30:34 -04:00
Updater e502c23c02 fix(ags): fix a couple issues with the clipboard
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-22 12:33:19 -04:00
matt1432 cd6c33ce9a chore(nvidia): add wayland env var
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-22 10:52:15 -04:00
matt1432 a6c90f335c feat(nvidia): use latest beta driver
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-22 10:24:21 -04:00
matt1432 66d8dc24b9 fix(forgejo): add extraHosts for runner to work consistently
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-22 10:05:49 -04:00
matt1432 d896a0e3f3 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-22 09:42:39 -04:00
matt1432 e4384c5434 fix(ags): reset scroll on opening app and clip
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-20 23:10:04 -04:00
matt1432 0861880a20 refactor: modularize flake and import nixpkgs
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-20 22:41:45 -04:00
matt1432 7a52fc6beb chore: organize gitignore
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-20 11:49:21 -04:00
matt1432 8acc916117 chore(bazarr-bulk): move to upstream flake
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-20 11:44:00 -04:00
matt1432 5f9dca81e1 refactor: use genflake for better flake inputs handling
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-20 01:17:07 -04:00
matt1432 684b8a5c9e chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-19 14:02:08 -04:00
matt1432 638430a8e3 feat(subs): add bazarr-bulk sync and timer
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-18 23:49:54 -04:00
matt1432 682db6c529 feat(nvim): add rust lsp
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-18 19:43:43 -04:00
matt1432 8d04980e50 feat(subs): separate mgmt of subs in scripts
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-18 17:51:06 -04:00
matt1432 31a3cfcaca feat(bazarr): only use one instance
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-18 00:04:26 -04:00
matt1432 9a57b0b425 chore(servers): jellyfin 10.9.1 -> 10.9.2
All checks were successful
Discord / discord commits (push) Successful in 35s
2024-05-17 22:04:29 -04:00
matt1432 86772cf04d feat(droid): add remote building
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-17 16:13:27 -04:00
matt1432 1c67489caa chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-17 08:16:56 -04:00
matt1432 8b561153bc feat(nvim): setup json/yaml lsp
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-16 22:49:46 -04:00
matt1432 8f08976322 feat(subs): start setting up bazarr-bulk
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-16 22:46:44 -04:00
matt1432 9ee721e52f fix(nvim): remove unused plugin
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-16 11:26:34 -04:00
matt1432 9102eccddf feat(nvim): lualine -> heirline
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-16 11:24:22 -04:00
matt1432 e3dc44a511 fix(firefox): update gx version and fix url font-size
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-16 09:53:26 -04:00
matt1432 550870728f chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-16 08:52:56 -04:00
matt1432 c1e0932486 feat(nvim): use nvim-nightly
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-15 18:55:07 -04:00
matt1432 2326ea6bb9 fix(nvim): set correct path to shellcheck
Some checks are pending
Discord / discord commits (push) Waiting to run
2024-05-15 15:49:13 -04:00
matt1432 4f4b1e5140 fix(ags cursorbox): make release more reliable
Some checks are pending
Discord / discord commits (push) Waiting to run
2024-05-15 15:13:24 -04:00
matt1432 5eeb29677d chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-14 18:03:55 -04:00
matt1432 4f473a4248 feat(jellyfin): setup packages correctly with flake
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-13 23:10:27 -04:00
matt1432 cefaec73be chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-13 14:39:14 -04:00
matt1432 c1e85636ae fix(hypr): fix hypridle config
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-12 22:42:26 -04:00
matt1432 117c517810 feat(jellyfin): edit some transcoding settings
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-12 22:17:37 -04:00
matt1432 6942e77ed3 chore(servers): jellyfin 10.9.0 -> 10.9.1
All checks were successful
Discord / discord commits (push) Successful in 36s
2024-05-12 22:08:26 -04:00
matt1432 71066fad02 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-12 13:14:45 -04:00
matt1432 068a005108 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-11 23:20:45 -04:00
matt1432 69f6134563 feat(nvim): setup basedpyright
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-11 20:10:45 -04:00
matt1432 b0323e5fe1 feat(nvim): setup lua_ls
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-11 19:45:04 -04:00
matt1432 39fb08bc48 feat(nvim): setup jdtls
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-11 19:27:26 -04:00
matt1432 4f81012634 feat(nvim): add cmake and clangd lsp
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-11 15:33:38 -04:00
matt1432 0a3464bb12 feat(nvim): setup autopairs with coq
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-11 15:07:24 -04:00
matt1432 b034a294cb feat(nvim): setup bashls
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-11 14:42:59 -04:00
matt1432 064b6b07f9 fix(hypr): use hyprexpo because Hyprspace crashes
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-10 14:41:53 -04:00
matt1432 5c7aca6b4a chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-10 14:18:50 -04:00
matt1432 9b749922ea feat(nvim): setup ts-error-translator.nvim
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-09 17:14:55 -04:00
matt1432 772374b0fd feat(nvim): setup web dev lsps
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-09 15:36:57 -04:00
matt1432 c8f8dc98e6 fix(nvim): setup lsps properly
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-09 10:42:45 -04:00
matt1432 0667f0f4c9 fix(nvim): keep bash settings even when not using as IDE
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-09 09:13:40 -04:00
matt1432 9c9945523c feat(nvim): setup lsp_lines 2024-05-09 09:12:01 -04:00
matt1432 8ccc90c9f3 feat(nvim): setup lsp-status
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-08 23:56:56 -04:00
matt1432 8deffb3adb feat(nvim): coc -> lspconfig
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-08 23:04:16 -04:00
matt1432 6753c39ccd refactor(nvim): move stuff to lua, fix windows depending on size of win, etc
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-08 20:26:57 -04:00
matt1432 a7c57a6501 chore(hypr): update plugins and enable hyprexpo
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-08 12:10:39 -04:00
matt1432 691faaaec3 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-07 22:50:49 -04:00
matt1432 ac2b846662 refactor(nvim): split up lang configs in separate files
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-07 22:49:00 -04:00
matt1432 3348300ab7 refactor(nvim): move treesitter stuff to its own file
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-06 18:14:52 -04:00
matt1432 7691490e00 fix(ags bar): make active workspace css work again
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-05 23:13:31 -04:00
matt1432 ac9aa96522 refactor: make nixd happy
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-05 23:07:06 -04:00
matt1432 551880cc24 feat(ags): add screenshot gui
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-05 22:43:03 -04:00
matt1432 63be8a848c fix: use nix 2.21.3
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-05 16:45:35 -04:00
matt1432 d649c7cee5 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-04 20:43:07 -04:00
matt1432 e56ccb5a97 refactor(nvim): remove riscv syntax highlight and make nixd happy
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-04 19:14:13 -04:00
matt1432 23acd9ef5d chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-02 14:48:50 -04:00
matt1432 06e12f7bb1 fix(ags): make sure we don't pass a non-string to fzf
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-01 15:24:52 -04:00
matt1432 9a9cfc13f6 refactor(ags): abstract appL and clip with SortedList
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-01 15:03:42 -04:00
matt1432 384e0c24b3 fix(ags): make lockscreen work with latest Hyprland
All checks were successful
Discord / discord commits (push) Has been skipped
2024-05-01 10:21:28 -04:00
matt1432 0665c3bfae chore(forgejo): v7.0.0 -> v.7.0.1 2024-05-01 10:21:28 -04:00
matt1432 177f8555a3 chore: update flake.lock 2024-05-01 10:21:28 -04:00
matt1432 3b6033da4f chore(nextcloud): 28.0.4 -> 28.0.5 2024-05-01 10:21:28 -04:00
matt1432 107f3a0e3e chore(immich): 1.103.0 -> 1.103.1 2024-05-01 10:21:28 -04:00
matt1432 85473011b2 feat(ags): copy on enter in clipboard 2024-05-01 10:21:28 -04:00
matt1432 ac29acb446 fix(ags): get rid of useless logs 2024-05-01 10:21:28 -04:00
matt1432 595e3996c3 chore: update flake.lock 2024-05-01 10:21:28 -04:00
matt1432 c738d4137f feat(ags): add entry and sorting on clipboard 2024-05-01 10:21:28 -04:00
matt1432 5285b166b2 fix(ags): use my fork until it gets merged 2024-05-01 10:21:28 -04:00
matt1432 b01190a532 fix(headscale): revert to last working commit 2024-05-01 10:21:28 -04:00
matt1432 bc4be97591 feat(hypr): go back to hyprexpo and update flake.lock 2024-05-01 10:21:28 -04:00
matt1432 315a06dbf2 fix(ags binto): add clipboard 2024-05-01 10:21:28 -04:00
matt1432 dfa762d46e feat(satty): setup config file 2024-05-01 10:21:28 -04:00
matt1432 f4618c3271 feat(ags): use experimental clipboard manager 2024-05-01 10:21:28 -04:00
matt1432 5fd6448ba2 fix(ags applauncher): reverse incorrect sorting 2024-05-01 10:21:28 -04:00
matt1432 1ca52dc2ae refactor(hypr): remove need for portal override 2024-05-01 10:21:28 -04:00
matt1432 f2710d1c19 feat(hypr): swappy -> satty 2024-05-01 10:21:28 -04:00
matt1432 585d764720 feat(binto): move to new logitech mouse 2024-05-01 10:21:28 -04:00
matt1432 2caeb6f438 fix(ags): remove incorrect box-shadows 2024-05-01 10:21:28 -04:00
matt1432 e1d746b0f5 feat: use local version of nix-fast-build 2024-05-01 10:21:27 -04:00
matt1432 b12b2e2911 fix: bump hyprland input to fix crash 2024-05-01 10:21:27 -04:00
matt1432 534fb9d449 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-25 11:17:31 -04:00
matt1432 31c3dbb205 feat(mice): solaar -> ratbagd/piper
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-24 17:44:08 -04:00
matt1432 b7b25ea3cc feat(node-sub): improve support for series
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-24 15:23:10 -04:00
matt1432 d625b740be fix(node-sub): move back sub in case of sync failure
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-24 14:50:25 -04:00
matt1432 40ee4f048c fix(nextcloud): make onlyoffice trust new proxy
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-24 10:00:50 -04:00
matt1432 6cf090e2f2 feat(nextcloud): get rid of errors in config
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-24 09:36:52 -04:00
matt1432 bc1efb0d25 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-24 08:44:00 -04:00
matt1432 99545ac48e feat(ags bar): improve hover state on hover revealers
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-23 22:26:13 -04:00
matt1432 731b85c948 fix(nvim): don't do assertion if not ide
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-22 15:27:11 -04:00
matt1432 b6c4957043 fix(droid): don't use osConfig since it doesn't exist
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-22 15:14:22 -04:00
matt1432 d31502f1da feat(bin-cache): nixci -> nix-fast-build
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-22 13:51:31 -04:00
matt1432 a8ec0fcfff feat(nvim): nil -> nixd
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-22 11:40:48 -04:00
matt1432 2af97f6b5a feat(hypr): swww -> wpaperd
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-21 14:57:38 -04:00
matt1432 a1400a2335 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-21 02:45:58 -04:00
matt1432 7f8b1e586c feat(nvim): mini.map -> codewindow
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-21 02:00:39 -04:00
matt1432 bc18bbcf82 feat(nvim): add easytables
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-20 19:20:49 -04:00
matt1432 ea9ed3f8dc feat(nvim): don't count line length for markdown tables
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-20 15:09:03 -04:00
matt1432 32e5e90b16 feat(binto): add logitech mouse
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-20 13:42:51 -04:00
matt1432 354ad470f4 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-19 22:53:54 -04:00
matt1432 ab6e7efc1c feat(ags): add fprint-grosshack support for lockscreen
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-19 20:43:43 -04:00
matt1432 8eaf865994 fix(hypr): point to correct path of lockscreen
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-19 20:43:17 -04:00
matt1432 4dd98e97c1 fix(ags): only show one entry for lockscreen if !greetdDupe
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-19 20:31:17 -04:00
matt1432 3b32b5c302 fix(astal): remove gtk-session-lock since it's gtk3
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-19 19:30:55 -04:00
matt1432 4e1ad1c8f6 fix(gtk-session-lock): make types use correct @girs types
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-19 19:20:08 -04:00
matt1432 bab5698f39 feat(ags): add clock to lockscreen
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-19 18:00:50 -04:00
matt1432 94ce797784 feat(ags): replace hyprlock with ags
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-19 17:01:09 -04:00
matt1432 d98290a6e4 fix(gtk-lock): add deps to get types right
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-19 11:54:21 -04:00
matt1432 27ff75260d feat(ags): add gtk-session-lock dep
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-19 10:38:54 -04:00
matt1432 a676406150 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-18 14:37:46 -04:00
matt1432 639a623db3 feat(nvim): add clangd
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-18 08:26:22 -04:00
matt1432 2216e1414d fix(ags): launch apps detached from ags
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-16 08:27:36 -04:00
matt1432 aa7b215055 fix(ags): set transition on windows everytime they open
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-16 08:14:58 -04:00
matt1432 244fd6daad feat(hypr): hyprexpo -> Hyprspace
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-16 08:11:12 -04:00
matt1432 c93185e9e8 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-15 19:23:55 -04:00
matt1432 45119487c3 feat(hyprlock): use $PROMPT for placeholder_text
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-15 11:43:58 -04:00
matt1432 dd7b67e811 refactor(ags popups): use setters properly and add on_* func props
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-15 09:31:52 -04:00
matt1432 6881d583b7 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-15 09:21:00 -04:00
matt1432 d232f20334 fix(servers): downgrade jmusicbot to get it to work again
All checks were successful
Discord / discord commits (push) Successful in 41s
2024-04-14 16:46:13 -04:00
matt1432 50b1565bf5 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-14 15:02:19 -04:00
matt1432 c6d7ffa4b6 feat: add adb on desktops
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-14 14:26:59 -04:00
matt1432 4bc6445a4c feat(servers): update minecraft creative server and update to 1.20.4
All checks were successful
Discord / discord commits (push) Successful in 48s
2024-04-14 00:17:01 -04:00
matt1432 820729a03d chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-13 00:55:18 -04:00
matt1432 118fac38a8 feat(update): show updated addons only
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-13 00:25:10 -04:00
matt1432 29d5cf6844 chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-11 13:50:20 -04:00
matt1432 555d1db3ba refactor(ags): remove blur and unused stuff from popup window class
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-10 21:04:19 -04:00
matt1432 d2a2878c11 feat(ags wim): add touch bind to open overview
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-10 19:38:28 -04:00
matt1432 3d03229682 feat(secrets): override sops-nix input
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-10 14:56:34 -04:00
matt1432 9994dadd6f chore: update flake.lock
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-09 20:43:25 -04:00
matt1432 b1162ce7a8 feat(updateImage): check version before downloading image
All checks were successful
Discord / discord commits (push) Has been skipped
2024-04-09 20:33:00 -04:00
matt1432 974d231027 feat(servers): only enable 1.20.4 survie MC server
All checks were successful
Discord / discord commits (push) Successful in 38s
2024-04-09 15:46:18 -04:00
317 changed files with 12849 additions and 11727 deletions

19
.gitignore vendored
View file

@ -1,9 +1,22 @@
# Python
*.egg-info
*.temp
# NPM
*node_modules/
*types
*build/
# Direnv
*.direnv/
# Generated by nix
result*
.nixd.json
## AGS
modules/ags/config/ts/lockscreen/vars.ts
*config.js
*icons
*.direnv/
**/types
# Other
*.temp

View file

@ -44,12 +44,18 @@ sudo ln -sf /home/matt/.nix /etc/nixos
| ---------------------------------- | ----------- |
| `nixosConfigurations` | [devices](https://git.nelim.org/matt1432/nixos-configs/src/branch/master/devices)' + ISO's configurations |
| `nixOnDroidConfigurations.default` | [Nix-On-Droid](https://git.nelim.org/matt1432/nixos-configs/src/branch/master/devices/android)'s configuration |
| `formatter` | I have yet to know if this has any uses but I format with [alejandra](https://github.com/kamadorueda/alejandra) |
| `packages` | Some custom [packages](https://git.nelim.org/matt1432/nixos-configs/src/branch/master/pkgs) not available in nixpkgs or modified from it |
| `legacyPackages` | Some custom [package scopes](https://git.nelim.org/matt1432/nixos-configs/src/branch/master/pkgs) not available in nixpkgs or modified from it |
| `formatter` | I format nix code with [alejandra](https://github.com/kamadorueda/alejandra) |
| `devShells.default` | A dev shell to build an ISO from the live-image nixosConfiguration |
| `devShells.ags` | A dev shell to have a NodeJS env when I enter my AGS's config directory |
### Flake Inputs
I prefer using a more descriptive format for my inputs like so:
To allow use of the full nix language for my inputs, I use [genflake](https://github.com/jorsn/flakegen).
Therefore, the flake I edit is located at `./flake.in.nix`.
I also prefer using a more descriptive format for my inputs like so:
```nix
nixpkgs = {
@ -67,17 +73,11 @@ nixpkgs = {
to make it more clear what is what in the flake URI
I also have a long list of inputs with `flake = false;` because
it makes it easier to update non-flake custom packages or overlays
to have the latest git. I make sure to end the names of these inputs
with `src` to make it clear what they are.
### Secrets
All my secrets are in a private git repo that makes use of
[sops-nix](https://github.com/Mic92/sops-nix).
I only use secrets stored in `JSON` and generate `.sops.yaml`
from `.sops.nix`:
I generate `.sops.yaml` from `.sops.nix`:
```nix
let

14
ci.nix Normal file
View file

@ -0,0 +1,14 @@
# CI: https://github.com/Mic92/dotfiles/blob/c2f538934d67417941f83d8bb65b8263c43d32ca/flake.nix#L168
{
system,
pkgs,
self,
}: let
inherit (pkgs.lib) filterAttrs mapAttrs' nameValuePair;
nixosMachines =
mapAttrs'
(name: config: nameValuePair "nixos-${name}" config.config.system.build.toplevel)
((filterAttrs (_: config: config.pkgs.system == system)) self.nixosConfigurations);
in
nixosMachines

View file

@ -2,43 +2,37 @@
config,
home-manager,
lib,
mozilla-addons-to-nix,
nh,
nix-melt,
nur,
nurl,
pkgs,
self,
...
} @ inputs: {
imports = [
./vars
./modules
./pkgs
nur.nixosModules.nur
nh.nixosModules.default
home-manager.nixosModules.home-manager
../modules/arion
../modules/borgbackup
../modules/nvidia.nix
];
nixpkgs = {
config.allowUnfree = true;
overlays = import ./overlays inputs;
boot.tmp.useTmpfs = true;
systemd.services.nix-daemon = {
environment.TMPDIR = "/home/nix-cache";
preStart = ''
mkdir -p ${config.systemd.services.nix-daemon.environment.TMPDIR}
'';
};
boot.tmp.cleanOnBoot = true;
nix = {
# Allow deleting store files with '.' in the name
package = pkgs.nix.overrideAttrs (o: {
patches =
(o.patches or [])
++ [
./overlays/nix/patch
];
});
package = pkgs.nixVersions.nix_2_22;
# Edit nix.conf
settings = {
# Store
@ -51,14 +45,17 @@
http-connections = 0; # unlimited for local cache
warn-dirty = false;
show-trace = true;
allow-import-from-derivation = true;
# remote building
trusted-users = ["matt" "nixremote"];
};
};
nh = {
programs.nh = {
enable = true;
package = nh.packages.${pkgs.system}.default;
# weekly cleanup
clean = {
enable = true;
@ -75,7 +72,43 @@
};
};
boot.supportedFilesystems = ["ext4" "xfs" "btrfs" "vfat" "ntfs"];
system.fsPackages = with pkgs; [
btrfs-progs
nfs-utils
ntfs3g
xfsprogs
];
environment.systemPackages =
(with pkgs; [
# File management
imagemagick
unzip
zip
unzip
p7zip
rar
unrar
# Peripherals
hdparm
pciutils
usbutils
])
++ [
nix-melt.packages.${pkgs.system}.default
(nurl.packages.${pkgs.system}.default.override {
nix = config.nix.package;
})
mozilla-addons-to-nix.packages.${pkgs.system}.default
];
home-manager = let
inherit (lib) mapAttrs' nameValuePair;
inherit (config.vars) mainUser;
mainUserConf = config.home-manager.users.${mainUser};
@ -90,21 +123,22 @@
};
}
nur.hmModules.nur
{
programs.bash.sessionVariables = {
FLAKE = config.environment.variables.FLAKE;
};
}
./home
./home/trash-d
./pkgs
];
home.packages =
[
nix-melt.packages.${pkgs.system}.default
nurl.packages.${pkgs.system}.default
]
++ (with config.nur.repos.rycee; [
mozilla-addons-to-nix
]);
# Cache devShells
home.file = mapAttrs' (n: v:
nameValuePair ".cache/devShells/${n}" {
source = v;
})
self.devShells.${pkgs.system};
};
in {
users = {

View file

@ -123,9 +123,7 @@ in {
#profileExtra = ''
#'';
bashrcExtra =
/*
bash
*/
# bash
''
# Check if shell is interactive
[[ $- == *i* ]] || return 0

View file

@ -1,6 +1,7 @@
{
pkgs,
config,
self,
...
}: {
programs = {
@ -41,15 +42,10 @@
bat = {
enable = true;
config = {
theme = "dracula-bat";
};
themes = {
dracula-bat = {
src = pkgs.dracula-theme;
file = "bat";
};
};
config.theme = "dracula-bat";
themes.dracula-bat.src = self.legacyPackages.${pkgs.system}.dracula.bat;
extraPackages = with pkgs.bat-extras; [
batman
];

View file

@ -2,9 +2,10 @@
programs.direnv = {
enable = true;
enableBashIntegration = true;
nix-direnv = {
enable = true;
package = pkgs.nix-direnv-flakes;
package = pkgs.nix-direnv;
};
};
}

View file

@ -1,41 +1,27 @@
{pkgs, ...}: {
{
pkgs,
self,
...
}: let
mkRemoteConf = remote: email: name: {
condition = "hasconfig:remote.*.url:${remote}:*/**";
contents.user = {inherit email name;};
};
mkDefaultRemote = remote: mkRemoteConf remote "matt@nelim.org" "matt1432";
in {
programs = {
git = {
enable = true;
lfs.enable = true;
includes = [
{path = "${pkgs.dracula-theme}/git-colors";}
{path = toString self.legacyPackages.${pkgs.system}.dracula.git;}
{
condition = "hasconfig:remote.*.url:git@github.com:*/**";
contents = {
user = {
email = "matt@nelim.org";
name = "matt1432";
};
};
}
(mkDefaultRemote "https://github.com")
(mkDefaultRemote "git@github.com")
(mkDefaultRemote "git@git.nelim.org")
{
condition = "hasconfig:remote.*.url:git@git.nelim.org:*/**";
contents = {
user = {
email = "matt@nelim.org";
name = "matt1432";
};
};
}
{
condition = "hasconfig:remote.*.url:git@gitlab.info.uqam.ca:*/**";
contents = {
user = {
email = "gj591944@ens.uqam.ca";
name = "Mathis Hurtubise";
};
};
}
(mkRemoteConf "git@gitlab.info.uqam.ca" "gj591944@ens.uqam.ca" "Mathis Hurtubise")
];
delta = {

View file

@ -0,0 +1,107 @@
# see https://github.com/CppCXY/EmmyLuaCodeStyle
[*.lua]
# [basic]
indent_style = space
indent_size = 4
quote_style = single
max_line_length = 120
end_of_line = lf
table_separator_style = comma
trailing_table_separator = smart
call_arg_parentheses = keep
# [space]
space_around_table_field_list = true
space_before_attribute = true
space_before_function_open_parenthesis = false
space_before_function_call_open_parenthesis = false
space_before_closure_open_parenthesis = false
space_before_function_call_single_arg = false
space_before_open_square_bracket = false
space_inside_function_call_parentheses = false
space_inside_function_param_list_parentheses = false
space_inside_square_brackets = false
# like t[#t+1] = 1
space_around_table_append_operator = false
ignore_spaces_inside_function_call = false
# detail number or 'keep'
space_before_inline_comment = 1
# convert '---' to '--- ' or '--' to '-- '
space_after_comment_dash = false
# [operator space]
space_around_math_operator = true
space_around_math_operator.exponent = false
space_around_concat_operator = true
space_around_logical_operator = true
space_around_assign_operator = true
space_after_comma = true
space_after_comma_in_for_statement = true
# [align]
align_call_args = false
align_function_params = true
align_continuous_assign_statement = true
align_continuous_rect_table_field = true
align_continuous_line_space = 2
align_if_branch = false
# option none / always / contain_curly/
align_array_table = true
align_continuous_similar_call_args = false
align_continuous_inline_comment = true
# option none / always / only_call_stmt
align_chain_expr = none
# [indent]
never_indent_before_if_condition = false
never_indent_comment_on_if_branch = false
keep_indents_on_empty_lines = false
allow_non_indented_comments = false
# [line space]
# The following configuration supports four expressions
# keep
# fixed(n)
# min(n)
# max(n)
# for eg. min(2)
line_space_after_if_statement = keep
line_space_after_do_statement = keep
line_space_after_while_statement = keep
line_space_after_repeat_statement = keep
line_space_after_for_statement = keep
line_space_after_local_or_assign_statement = keep
line_space_after_function_statement = fixed(2)
line_space_after_expression_statement = keep
line_space_after_comment = keep
line_space_around_block = fixed(1)
# [line break]
break_all_list_when_line_exceed = false
auto_collapse_lines = false
break_before_braces = false
# [preference]
ignore_space_after_colon = false
end_statement_with_semicolon = always

View file

@ -1,2 +0,0 @@
-- Add `:Format` command to format current buffer
vim.api.nvim_create_user_command("Format", "call CocAction('format')", {})

View file

@ -1,34 +0,0 @@
" by default, the indent is 2 spaces.
set smartindent
set expandtab
set shiftwidth=2
set softtabstop=2
set tabstop=2
" for html/rb files, 2 spaces
autocmd Filetype html setlocal ts=2 sw=2 expandtab
autocmd Filetype ruby setlocal ts=2 sw=2 expandtab
" for js/coffee/jade files, 4 spaces
autocmd Filetype javascript setlocal ts=4 sw=4 sts=0 expandtab
autocmd Filetype typescript setlocal ts=4 sw=4 sts=0 expandtab
autocmd Filetype java setlocal ts=4 sw=4 sts=0 expandtab
autocmd Filetype sh setlocal ts=4 sw=4 sts=0 expandtab
autocmd Filetype hyprlang setlocal ts=4 sw=4 sts=0 expandtab
" support scss @
autocmd FileType scss setl iskeyword+=@-@
set number
set relativenumber
" TODO: make this work for nix-on-droid
set undofile
set undodir=/home/matt/.cache/nvim/
" remove highlight on words
nnoremap <silent> <esc> :noh<cr><esc>
" Always show the signcolumn, otherwise it would shift the text each time
" diagnostics appear/become resolved
set signcolumn=yes

View file

@ -1,340 +1,86 @@
{
config,
neovim-nightly,
pkgs,
lib,
nvim-theme-src,
coc-stylelintplus,
vimplugin-riscv-src,
...
}: let
inherit (config.vars) neovimIde;
inherit (lib) fileContents hasAttr optionalAttrs optionals;
javaSdk = pkgs.temurin-bin-17;
coc-stylelintplus-flake = coc-stylelintplus.packages.${pkgs.system}.default;
inherit (pkgs) vimPlugins;
in {
home = optionalAttrs neovimIde {
packages = with pkgs; [
gradle
maven
alejandra
];
};
xdg.dataFile = optionalAttrs neovimIde {
".gradle/gradle.properties".text = ''
org.gradle.java.home = ${javaSdk}
'';
};
imports = [
./git.nix
./langs
./theme.nix
./treesitter.nix
];
programs = {
java = optionalAttrs neovimIde {
enable = true;
package = javaSdk;
};
# I love doing typos
bash.shellAliases = {
nivm = "nvim";
nivim = "nvim";
};
neovim = {
enable = true;
withNodeJs = true;
withPython3 = true;
withRuby = false;
package = neovim-nightly.packages.${pkgs.system}.neovim;
defaultEditor = true;
viAlias = true;
vimAlias = true;
extraLuaConfig =
# lua
''
-- by default, the indent is 2 spaces.
vim.opt.smartindent = true;
vim.opt.expandtab = true;
vim.opt.shiftwidth = 2;
vim.opt.softtabstop = 2;
vim.opt.tabstop = 2;
extraPackages = with pkgs; ([
bat
gcc
]
++ optionals neovimIde [
nodejs_latest
nodePackages.npm
nodePackages.neovim
gradle
nil
]);
vim.opt.number = true;
vim.opt.relativenumber = true;
extraPython3Packages = ps:
optionals neovimIde [
ps.pylint
];
vim.opt.undofile = true;
vim.opt.undodir = '${config.xdg.cacheHome}/nvim/';
coc = optionalAttrs neovimIde {
enable = true;
settings = {
# General
colors.enable = true;
coc.preferences.formatOnType = true;
diagnostic.checkCurrentLine = true;
inlayHint.enable = false;
-- Always show the signcolumn, otherwise it would shift
-- the text each time diagnostics appear/become resolved
vim.opt.signcolumn = 'yes';
# ESLint
eslint = {
format.enable = true;
autoFixOnSave = true;
};
-- remove highlight on words
vim.keymap.set('n', '<esc>', ':noh<cr><esc>', {
noremap = true,
silent = true,
});
'';
# Stylelint
stylelintplus = {
enable = true;
cssInJs = true;
autoFixOnSave = true;
autoFixOnFormat = true;
};
css.validate = false;
less.validate = false;
scss.validate = false;
wxss.validate = false;
plugins = [
vimPlugins.fzfWrapper
vimPlugins.fzf-vim
# Lua
Lua = {
misc.parameters = [
"--metapath"
"~/.cache/sumneko_lua/meta"
"--logpath"
"~/.cache/sumneko_lua/log"
];
workspace.library = [
"$\{3rd\}/luv/library"
];
};
sumneko-lua = {
serverDir = "${pkgs.lua-language-server}/share/lua-language-server";
enableNvimLuaDev = true;
};
{
plugin = vimPlugins.todo-comments-nvim;
type = "lua";
config =
# lua
''
require('todo-comments').setup();
'';
}
{
plugin = vimPlugins.mini-nvim;
type = "lua";
config =
# lua
''
-- TODO: see how this works
local ts_input = require('mini.surround').gen_spec.input.treesitter;
languageserver = {
# Nix
nix = {
command = "nil";
filetypes = ["nix"];
rootPatterns = ["flake.nix"];
settings = {
nil = {
formatting.command = ["alejandra"];
nix = {
maxMemoryMB = 2560;
flake.autoArchive = hasAttr "sops" config;
};
};
};
};
};
# Java
java = {
maven.downloadSources = true;
eclipse.downloadSources = true;
format.settings.url = "eclipse-formatter.xml";
jdt.ls = {
java.home = "${javaSdk}";
statusIcons = {
"busy" = "Busy";
"ready" = "OK";
"warning" = "Warning";
"error" = "Error";
};
};
};
# Bash
bashIde.shellcheckPath = "${pkgs.shellcheck}/bin/shellcheck";
markdownlint.config = {
no-trailing-spaces = true;
no-multiple-blanks = false;
no-duplicate-heading = false;
};
};
};
extraConfig = fileContents ./base.vim;
extraLuaConfig = fileContents ./base.lua;
plugins = with pkgs.vimPlugins;
([
fzfWrapper
fzf-vim
fugitive
{
plugin = dracula-nvim.overrideAttrs {
src = nvim-theme-src;
};
type = "viml";
config = fileContents ./plugins/dracula.vim;
}
{
plugin = todo-comments-nvim;
type = "lua";
config =
/*
lua
*/
''require('todo-comments').setup()'';
}
{
plugin = gitsigns-nvim;
type = "lua";
config = fileContents ./plugins/gitsigns.lua;
}
{
plugin = indent-blankline-nvim;
type = "lua";
config = fileContents ./plugins/indent.lua;
}
{
plugin = mini-nvim;
type = "lua";
config = fileContents ./plugins/mini.lua;
}
]
++ optionals neovimIde [
markdown-preview-nvim
# Coc configured
coc-css
coc-eslint
coc-java
coc-sh
coc-stylelintplus-flake
{
plugin = coc-snippets;
type = "viml";
config = fileContents ./plugins/snippets.vim;
}
## Lua
coc-sumneko-lua
neodev-nvim
## Fzf
coc-fzf
coc-highlight
coc-json
coc-pyright
coc-vimlsp
coc-yaml
coc-toml
coc-markdownlint
coc-tsserver
{
plugin = nvim-autopairs;
type = "lua";
config = fileContents ./plugins/autopairs.lua;
}
{
plugin = lualine-nvim;
type = "lua";
config = fileContents ./plugins/lualine.lua;
}
{
plugin = neo-tree-nvim;
type = "viml";
config = ''
${fileContents ./plugins/neotree.vim}
lua << EOF
${fileContents ./plugins/neotree.lua}
EOF
'';
}
(pkgs.vimUtils.buildVimPlugin {
name = "riscv-asm";
src = vimplugin-riscv-src;
})
])
# Treesitter
++ (with pkgs.vimPlugins; [
nvim-treesitter-context
nvim-treesitter-textobjects
{
type = "viml";
config = fileContents ./plugins/treesitter.vim;
plugin = nvim-treesitter.withPlugins (p: [
p.awk
p.bash
p.c
p.c_sharp
p.cairo
p.cmake
p.comment
p.cpp
p.css
p.csv
p.cuda
p.diff
p.dockerfile
p.dot
p.git_config
p.git_rebase
p.gitattributes
p.gitcommit
p.gitignore
p.go
p.gomod
p.gosum
p.groovy
p.haskell
p.haskell_persistent
p.hyprlang
p.html
p.ini
p.java
p.javascript
p.jq
p.jsdoc
p.json
p.json5
p.jsonc
p.jsonnet
p.kotlin
p.latex
p.lua
p.luadoc
p.make
p.markdown
p.meson
p.ninja
p.nix
p.passwd
p.perl
p.php
p.phpdoc
p.properties
p.python
p.rasi
p.regex
p.requirements
p.ruby
p.rust
p.scss
p.sql
p.ssh_config
p.toml
p.todotxt
p.typescript
p.udev
p.vim
p.vimdoc
p.vue
p.xml
p.yaml
]);
}
]);
require('mini.surround').setup({
custom_surroundings = {
-- Use tree-sitter to search for function call
f = {
input = ts_input({
outer = '@call.outer',
inner = '@call.inner',
});
},
},
});
'';
}
];
};
};
}

View file

@ -0,0 +1,33 @@
{pkgs, ...}: let
inherit (pkgs) vimPlugins;
in {
programs = {
neovim = {
plugins = [
vimPlugins.fugitive
{
plugin = vimPlugins.gitsigns-nvim;
type = "lua";
config =
# lua
''
local gitsigns = require("gitsigns");
local function visual_stage()
local first_line = vim.fn.line('v');
local last_line = vim.fn.getpos('.')[2];
gitsigns.stage_hunk({ first_line, last_line });
end
vim.keymap.set("v", "gs", function()
visual_stage()
end);
gitsigns.setup();
'';
}
];
};
};
}

View file

@ -0,0 +1,45 @@
{
config,
pkgs,
lib,
...
}: let
inherit (config.vars) neovimIde;
in {
programs = {
# I love doing typos
bash.shellAliases = {
nivm = "nvim";
nivim = "nvim";
};
neovim = {
defaultEditor = true;
viAlias = true;
vimAlias = true;
extraPackages = lib.mkIf neovimIde [
pkgs.nodePackages.bash-language-server
pkgs.shellcheck
];
extraLuaConfig =
lib.mkIf neovimIde
# lua
''
vim.api.nvim_create_autocmd('FileType', {
pattern = 'sh',
command = 'setlocal ts=4 sw=4 sts=0 expandtab',
});
require('lspconfig').bashls.setup(require('coq').lsp_ensure_capabilities({
settings = {
bashIde = {
shellcheckPath = '${lib.getExe pkgs.shellcheck}',
},
},
}));
'';
};
};
}

View file

@ -0,0 +1,46 @@
{
config,
pkgs,
lib,
...
}: let
inherit (config.vars) neovimIde;
inherit (pkgs) vimPlugins;
in
lib.mkIf neovimIde {
programs = {
neovim = {
extraPackages = with pkgs; [
gcc
clang-tools
cmake-language-server
];
extraLuaConfig =
# lua
''
vim.api.nvim_create_autocmd('FileType', {
pattern = { 'cpp' , 'c'},
command = 'setlocal ts=4 sw=4 sts=0 expandtab',
});
local lsp = require('lspconfig');
local coq = require('coq');
lsp.cmake.setup(coq.lsp_ensure_capabilities({}));
lsp.clangd.setup(coq.lsp_ensure_capabilities({
handlers = require('lsp-status').extensions.clangd.setup(),
on_attach = function(_, bufnr)
require("clangd_extensions.inlay_hints").setup_autocmd()
require("clangd_extensions.inlay_hints").set_inlay_hints()
end,
}));
'';
plugins = [
vimPlugins.clangd_extensions-nvim
];
};
};
}

View file

@ -0,0 +1,136 @@
{
config,
lib,
pkgs,
...
}: let
inherit (config.vars) neovimIde;
inherit (pkgs) vimPlugins;
in {
imports = [
./bash.nix
./clang.nix
./hyprlang.nix
./java.nix
./json.nix
./lua.nix
./markdown.nix
./nix.nix
./python.nix
./rust.nix
./web.nix
];
programs = lib.mkIf neovimIde {
neovim = {
extraLuaConfig =
lib.mkBefore
# lua
''
-- Get rid of deprecated functions
vim.tbl_add_reverse_lookup = function(tbl)
for k, v in pairs(tbl) do
tbl[v] = k;
end
end;
vim.tbl_islist = function(tbl)
return vim.islist(tbl);
end;
vim.tbl_flatten = function(tbl)
return vim.iter(tbl):flatten():totable();
end;
vim.diagnostic.is_disabled = function()
return not vim.diagnostic.is_enabled();
end;
vim.lsp.buf_get_clients = function()
return vim.lsp.get_clients();
end;
vim.lsp.get_active_clients = function()
return vim.lsp.get_clients();
end;
-- Start completion / snippet stuff
vim.g.coq_settings = {
auto_start = 'shut-up',
keymap = {
recommended = false,
},
-- https://github.com/NixOS/nixpkgs/issues/168928#issuecomment-1109581739
xdg = true,
};
-- Add formatting cmd
vim.api.nvim_create_user_command(
'Format',
function()
vim.lsp.buf.format({ async = true });
end,
{}
);
-- LSP-Status setup
local lsp_status = require('lsp-status');
lsp_status.register_progress();
-- Remove LSP highlighting to use Treesitter
vim.api.nvim_create_autocmd("LspAttach", {
callback = function(args)
local client = vim.lsp.get_client_by_id(args.data.client_id);
client.server_capabilities.semanticTokensProvider = nil;
lsp_status.on_attach(client);
end,
});
-- Disable virtual_text since it's redundant due to lsp_lines.
vim.diagnostic.config({
virtual_text = false,
});
require('lsp_lines').setup();
-- Autopairs with coq
local remap = vim.api.nvim_set_keymap
local npairs = require('nvim-autopairs')
npairs.setup({ map_bs = false, map_cr = false })
_G.MUtils= {}
MUtils.CR = function()
if vim.fn.pumvisible() ~= 0 then
if vim.fn.complete_info({ 'selected' }).selected ~= -1 then
return npairs.esc('<c-y>');
else
return npairs.esc('<c-e>') .. npairs.autopairs_cr();
end
else
return npairs.autopairs_cr();
end
end
remap('i', '<cr>', 'v:lua.MUtils.CR()', { expr = true, noremap = true });
MUtils.BS = function()
if vim.fn.pumvisible() ~= 0 and vim.fn.complete_info({ 'mode' }).mode == 'eval' then
return npairs.esc('<c-e>') .. npairs.autopairs_bs();
else
return npairs.autopairs_bs();
end
end
remap('i', '<bs>', 'v:lua.MUtils.BS()', { expr = true, noremap = true });
'';
plugins = [
vimPlugins.nvim-lspconfig
vimPlugins.coq_nvim
vimPlugins.coq-artifacts
vimPlugins.coq-thirdparty
vimPlugins.nvim-autopairs
vimPlugins.lsp-status-nvim
vimPlugins.lsp_lines-nvim
];
};
};
}

View file

@ -0,0 +1,25 @@
{
config,
lib,
...
}: let
inherit (config.vars) neovimIde;
in
lib.mkIf neovimIde {
programs = {
neovim = {
extraLuaConfig =
# lua
''
vim.filetype.add({
pattern = { ['.*/hypr/.*%.conf'] = 'hyprlang' },
});
vim.api.nvim_create_autocmd('FileType', {
pattern = 'hyprlang',
command = 'setlocal ts=4 sw=4 sts=0 expandtab',
});
'';
};
};
}

View file

@ -0,0 +1,81 @@
{
config,
lib,
pkgs,
...
}: let
inherit (pkgs) vimPlugins;
inherit (config.vars) neovimIde;
javaSdk = pkgs.temurin-bin-17;
javaPkgs = with pkgs; [gradle maven];
in
lib.mkIf neovimIde {
home.packages = javaPkgs;
xdg.dataFile.".gradle/gradle.properties".text = ''
org.gradle.java.home = ${javaSdk}
'';
programs = {
java = {
enable = true;
package = javaSdk;
};
neovim = {
extraPackages = javaPkgs;
extraLuaConfig =
# lua
''
vim.api.nvim_create_autocmd('FileType', {
pattern = 'java',
command = 'setlocal ts=4 sw=4 sts=0 expandtab',
});
'';
plugins = [
{
# TOOD: setup debugger https://github.com/mfussenegger/nvim-jdtls#debugger-via-nvim-dap
plugin = vimPlugins.nvim-jdtls;
type = "lua";
config =
# lua
''
--
local startJdtls = function()
local config = require('coq').lsp_ensure_capabilities({
cmd = { '${lib.getExe pkgs.jdt-language-server}' },
root_dir = vim.fs.dirname(vim.fs.find(
{ 'gradlew', '.git', 'mvnw', 'pom.xml' },
{ upward = true }
)[1]),
settings = {
java = {
configuration = {
runtimes = {
{
name = 'JavaSE-17',
path = '${javaSdk}',
},
},
},
},
},
});
require('jdtls').start_or_attach(config);
end
vim.api.nvim_create_autocmd('FileType', {
pattern = 'java',
callback = startJdtls,
});
'';
}
];
};
};
}

View file

@ -0,0 +1,48 @@
{
config,
lib,
pkgs,
...
}: let
inherit (config.vars) neovimIde;
in
lib.mkIf neovimIde {
programs = {
neovim = {
extraPackages = [
pkgs.vscode-langservers-extracted
pkgs.yaml-language-server
];
extraLuaConfig =
# lua
''
vim.api.nvim_create_autocmd('FileType', {
pattern = 'yaml',
command = 'setlocal ts=4 sw=4 sts=0 expandtab',
});
vim.api.nvim_create_autocmd('FileType', {
pattern = 'json',
command = 'setlocal ts=4 sw=4 sts=0 expandtab',
});
local lsp = require('lspconfig');
local coq = require('coq');
lsp.jsonls.setup(coq.lsp_ensure_capabilities({}));
lsp.yamlls.setup(coq.lsp_ensure_capabilities({
settings = {
yaml = {
schemas = {
[
"https://json.schemastore.org/github-workflow.json"
] = "/.github/workflows/*",
},
},
},
}));
'';
};
};
}

View file

@ -0,0 +1,48 @@
{
config,
pkgs,
lib,
...
}: let
inherit (config.vars) neovimIde;
inherit (pkgs) vimPlugins;
flakeEnv = config.programs.bash.sessionVariables.FLAKE;
in
lib.mkIf neovimIde {
programs = {
neovim = {
extraPackages = [
pkgs.lua-language-server
];
plugins = [
{
plugin = vimPlugins.neodev-nvim;
type = "lua";
config =
# lua
''
vim.api.nvim_create_autocmd('FileType', {
pattern = 'lua',
command = 'setlocal ts=4 sw=4 sts=0 expandtab',
});
-- IMPORTANT: make sure to setup neodev BEFORE lspconfig
require("neodev").setup({
override = function(root_dir, library)
if root_dir:find('${flakeEnv}', 1, true) == 1 then
library.enabled = true
library.plugins = true
end
end,
});
require('lspconfig').lua_ls.setup(
require('coq').lsp_ensure_capabilities({}));
'';
}
];
};
};
}

View file

@ -0,0 +1,125 @@
{
config,
pkgs,
lib,
vimplugin-easytables-src,
...
}: let
inherit (config.vars) neovimIde;
inherit (pkgs) vimPlugins;
inherit (import ../../../../lib.nix {inherit pkgs;}) buildPlugin;
in
lib.mkIf neovimIde {
programs = {
neovim = {
extraPackages = [
pkgs.pandoc
# LaTeX packages
pkgs.texlab
pkgs.texliveFull
pkgs.rubber
];
extraLuaConfig =
# lua
''
local lsp = require('lspconfig');
local coq = require('coq');
lsp.texlab.setup(coq.lsp_ensure_capabilities({
settings = {
texlab = {
formatterLineLength = 100,
latexFormatter = 'latexindent',
latexindent = {
modifyLineBreaks = false,
["local"] = '.indentconfig.yaml';
},
},
},
}));
'';
plugins = [
{
plugin = buildPlugin "easytables-nvim" vimplugin-easytables-src;
type = "lua";
config =
# lua
''
require('easytables').setup();
'';
}
{
plugin = vimPlugins.knap;
type = "lua";
config =
# lua
''
--
vim.api.nvim_create_autocmd('FileType', {
pattern = 'tex',
command = 'setlocal ts=4 sw=4 sts=0 expandtab',
});
vim.g.knap_settings = {
-- HTML
htmloutputext = 'html',
htmltohtml = 'none',
htmltohtmlviewerlaunch = "",
htmltohtmlviewerrefresh = 'none',
-- Markdown
mdoutputext = 'html',
markdownoutputext = 'html',
-- Markdown to PDF
mdtopdf = 'pandoc %docroot% -o /tmp/%outputfile%',
markdowntopdf = 'pandoc %docroot% -o /tmp/%outputfile%',
mdtopdfviewerlaunch = 'sioyek /tmp/%outputfile%',
markdowntopdfviewerlaunch = 'sioyek /tmp/%outputfile%',
mdtopdfviewerrefresh = 'none',
markdowntopdfviewerrefresh = "none",
-- Markdown to HTML
mdtohtml = 'pandoc --standalone %docroot% -o /tmp/%outputfile%',
markdowntohtml = 'pandoc --standalone %docroot% -o /tmp/%outputfile%',
mdtohtmlviewerlaunch = 'firefox -new-window /tmp/%outputfile%',
markdowntohtmlviewerlaunch = 'firefox -new-window /tmp/%outputfile%',
mdtohtmlviewerrefresh = 'none',
markdowntohtmlviewerrefresh = 'none',
-- LaTeX
-- TODO: stop from polluting workspace
};
-- F4 processes the document once, and refreshes the view
vim.keymap.set({ 'n', 'v', 'i' }, '<F4>', function()
require('knap').process_once();
end);
-- F5 closes the viewer application, and
-- allows settings to be reset
vim.keymap.set({ 'n', 'v', 'i' }, '<F5>', function()
require('knap').close_viewer();
end);
-- F6 toggles the auto-processing on and off
vim.keymap.set({ 'n', 'v', 'i' }, '<F6>', function()
require('knap').toggle_autopreviewing();
end);
-- F7 invokes a SyncTeX forward search, or similar,
-- where appropriate
vim.keymap.set({ 'n', 'v', 'i' }, '<F7>', function()
require('knap').forward_jump();
end);
'';
}
];
};
};
}

View file

@ -0,0 +1,69 @@
{
config,
pkgs,
lib,
nixd,
self,
...
}: let
inherit (config.vars) hostName mainUser neovimIde;
inherit (lib) getExe hasPrefix removePrefix;
defaultFormat = self.formatter.${pkgs.system};
nixdPkg = nixd.packages.${pkgs.system}.default;
flakeEnv = config.programs.bash.sessionVariables.FLAKE;
flakeDir = "${removePrefix "/home/${mainUser}/" flakeEnv}";
in
lib.mkIf neovimIde {
assertions = [
{
assertion =
neovimIde
&& hasPrefix "/home/${mainUser}/" flakeEnv
|| !neovimIde;
message = ''
Your $FLAKE environment variable needs to point to a directory in
the main users' home to use the neovim module.
'';
}
];
home.packages = [
defaultFormat
];
xdg.dataFile."${flakeDir}/.nixd.json".text = builtins.toJSON {
nixpkgs = {
expr = "import (builtins.getFlake \"${flakeDir}\").inputs.nixpkgs {}";
};
options.nixos = {
expr = "(builtins.getFlake \"${flakeDir}\").nixosConfigurations.${hostName}.options";
};
};
programs = {
neovim = {
extraPackages = [
nixdPkg
];
extraLuaConfig =
# lua
''
require('lspconfig').nixd.setup(require('coq').lsp_ensure_capabilities({
filetypes = { 'nix', 'in.nix' },
settings = {
nixd = {
formatting = {
-- TODO: Try to find <flake>.formatter
command = { '${getExe defaultFormat}' },
},
},
},
}));
'';
};
};
}

View file

@ -0,0 +1,26 @@
{
config,
lib,
pkgs,
...
}: let
inherit (config.vars) neovimIde;
in
lib.mkIf neovimIde {
programs = {
neovim = {
withPython3 = true;
extraPackages = [
pkgs.basedpyright
];
extraLuaConfig =
# lua
''
require('lspconfig').basedpyright.setup(
require('coq').lsp_ensure_capabilities({}));
'';
};
};
}

View file

@ -0,0 +1,34 @@
{
config,
pkgs,
lib,
...
}: let
inherit (config.vars) neovimIde;
in
lib.mkIf neovimIde {
programs = {
neovim = {
extraPackages = with pkgs; [
cargo
rustc
rust-analyzer
rustfmt
];
extraLuaConfig =
# lua
''
vim.api.nvim_create_autocmd('FileType', {
pattern = { 'rust' },
command = 'setlocal ts=4 sw=4 sts=0 expandtab',
});
local lsp = require('lspconfig');
local coq = require('coq');
lsp.rust_analyzer.setup(coq.lsp_ensure_capabilities({}));
'';
};
};
}

View file

@ -0,0 +1,89 @@
{
config,
pkgs,
lib,
vimplugin-ts-error-translator-src,
...
}: let
inherit (config.vars) neovimIde;
inherit (pkgs) vimPlugins;
inherit (import ../../../../lib.nix {inherit pkgs;}) buildPlugin;
in
lib.mkIf neovimIde {
programs = {
neovim = {
withNodeJs = true;
extraPackages = [
pkgs.nodejs_latest
pkgs.nodePackages.npm
pkgs.nodePackages.neovim
pkgs.vscode-langservers-extracted
];
extraLuaConfig =
# lua
''
vim.api.nvim_create_autocmd('FileType', {
pattern = { 'javascript', 'typescript', 'css', 'scss' },
command = 'setlocal ts=4 sw=4 sts=0 expandtab',
});
vim.api.nvim_create_autocmd('FileType', {
pattern = 'html',
command = 'setlocal ts=2 sw=2 expandtab',
});
vim.api.nvim_create_autocmd('FileType', {
pattern = 'scss',
command = 'setlocal iskeyword+=@-@',
});
local lsp = require('lspconfig');
local coq = require('coq');
local tsserver = require('typescript-tools');
tsserver.setup(coq.lsp_ensure_capabilities({
handlers = {
-- format error code with better error message
['textDocument/publishDiagnostics'] = function(err, result, ctx, config)
require('ts-error-translator').translate_diagnostics(err, result, ctx, config)
vim.lsp.diagnostic.on_publish_diagnostics(err, result, ctx, config)
end,
},
}));
lsp.eslint.setup(coq.lsp_ensure_capabilities({
-- auto-save
on_attach = function(client, bufnr)
vim.api.nvim_create_autocmd('BufWritePre', {
buffer = bufnr,
command = 'EslintFixAll',
});
end,
}));
lsp.cssls.setup(coq.lsp_ensure_capabilities({
settings = {
css = {
validate = false,
},
less = {
validate = false,
},
scss = {
validate = false,
},
},
}));
'';
plugins = [
vimPlugins.typescript-tools-nvim
(buildPlugin "ts-error-translator" vimplugin-ts-error-translator-src)
];
};
};
}

View file

@ -1,16 +0,0 @@
-- Auto indent when pressing Enter between brackets
local remap = vim.api.nvim_set_keymap
local npairs = require('nvim-autopairs')
npairs.setup({map_cr=false})
_G.MUtils= {}
MUtils.completion_confirm=function()
if vim.fn["coc#pum#visible"]() ~= 0 then
return vim.fn["coc#pum#confirm"]()
else
return npairs.autopairs_cr()
end
end
remap('i' , '<CR>','v:lua.MUtils.completion_confirm()', {expr = true , noremap = true})

View file

@ -1,10 +0,0 @@
" set dot icon in place of trailing whitespaces
set list listchars=tab:\ \ ,nbsp:␣,trail:•,extends:⟩,precedes:⟨
lua << EOF
-- Add visual indicator for trailing whitespaces
vim.opt.fillchars = {eob = " "}
vim.cmd[[colorscheme dracula]]
EOF

View file

@ -1,13 +0,0 @@
local gitsigns = require("gitsigns")
local function visual_stage()
local first_line = vim.fn.line('v')
local last_line = vim.fn.getpos('.')[2]
gitsigns.stage_hunk({ first_line, last_line })
end
vim.keymap.set("v", "gs", function()
visual_stage()
end)
gitsigns.setup();

View file

@ -0,0 +1,443 @@
-- Modified from https://github.com/lauranaujokat/nvim/blob/4102c789d05667f636107e3dae4ac589053ee88d/lua/setups/heirline.lua#L4
local conditions = require('heirline.conditions');
local utils = require('heirline.utils');
---@class Palette
---@field [string] any
local dracula = require('dracula').colors();
local colors = {
bright_bg = dracula.selection,
dark_bg = dracula.menu,
bright_fg = dracula.fg,
red = dracula.red,
dark_red = utils.get_highlight('DiffDelete').bg,
green = dracula.green,
blue = dracula.blue,
gray = utils.get_highlight('NonText').fg,
orange = utils.get_highlight('Constant').fg,
purple = utils.get_highlight('Statement').fg,
cyan = dracula.cyan,
diag_warn = utils.get_highlight('DiagnosticWarn').fg,
diag_error = utils.get_highlight('DiagnosticError').fg,
diag_hint = utils.get_highlight('DiagnosticHint').fg,
diag_info = utils.get_highlight('DiagnosticInfo').fg,
git_del = utils.get_highlight('GitSignsDelete').fg,
git_add = utils.get_highlight('GitSignsAdd').fg,
git_change = utils.get_highlight('GitSignsChange').fg,
};
require('heirline').load_colors(colors);
local ViMode = {
-- get vim current mode, this information will be required by the provider
-- and the highlight functions, so we compute it only once per component
-- evaluation and store it as a component attribute
init = function(self)
self.mode = vim.fn.mode(1);
-- execute this only once, this is required if you want the ViMode
-- component to be updated on operator pending mode
if not self.once then
vim.api.nvim_create_autocmd('ModeChanged', {
pattern = '*:*o',
command = 'redrawstatus',
});
self.once = true;
end;
end,
static = {
mode_names = {
n = 'N',
no = 'N?',
nov = 'N?',
noV = 'N?',
['no\22'] = 'N?',
niI = 'Ni',
niR = 'Nr',
niV = 'Nv',
nt = 'Nt',
v = 'V',
vs = 'Vs',
V = 'V_',
Vs = 'Vs',
['\22'] = '^V',
['\22s'] = '^V',
s = 'S',
S = 'S_',
['\19'] = '^S',
i = 'I',
ic = 'Ic',
ix = 'Ix',
R = 'R',
Rc = 'Rc',
Rx = 'Rx',
Rv = 'Rv',
Rvc = 'Rv',
Rvx = 'Rv',
c = 'C',
cv = 'Ex',
r = '...',
rm = 'M',
['r?'] = '?',
['!'] = '!',
t = 'T',
},
mode_colors = {
n = 'red',
i = 'green',
v = 'cyan',
V = 'cyan',
['\22'] = 'cyan',
c = 'orange',
s = 'purple',
S = 'purple',
['\19'] = 'purple',
R = 'orange',
r = 'orange',
['!'] = 'red',
t = 'red',
},
},
-- To be extra meticulous, we can also add some vim statusline syntax to
-- control the padding and make sure our string is always at least 2
-- characters long. Plus a nice Icon.
provider = function(self)
return '' .. self.mode_names[self.mode] .. '%)';
end,
-- Same goes for the highlight. Now the foreground will change according to the current mode.
hl = function(self)
local mode = self.mode:sub(1, 1); -- get only the first mode character
return { fg = self.mode_colors[mode], bold = true };
end,
-- Re-evaluate the component only on ModeChanged event
update = {
'ModeChanged',
},
};
local FileNameBlock = {
init = function(self)
self.filename = vim.api.nvim_buf_get_name(0);
end,
};
-- FileNameBlock children
local FileIcon = {
init = function(self)
local filename = self.filename;
local extension = vim.fn.fnamemodify(filename, ':e');
self.icon, self.icon_color =
require('nvim-web-devicons').get_icon_color(filename, extension, { default = true });
end,
provider = function(self)
return self.icon and (self.icon .. ' ');
end,
hl = function(self)
return { fg = self.icon_color };
end,
};
local FileName = {
provider = function(self)
-- first, trim the pattern relative to the current directory. For other
-- options, see :h filename-modifers
local filename = vim.fn.fnamemodify(self.filename, ':.');
if filename == '' then
return '[No Name]';
end;
-- now, if the filename would occupy more than 1/4th of the available
-- space, we trim the file path to its initials
-- See Flexible Components section below for dynamic truncation
if not conditions.width_percent_below(#filename, 0.25) then
filename = vim.fn.pathshorten(filename);
end;
return filename;
end,
hl = { fg = utils.get_highlight('Directory').fg },
};
local FileFlags = {
{
condition = function()
return vim.bo.modified;
end,
provider = '[+]',
hl = { fg = 'green' },
},
{
condition = function()
return not vim.bo.modifiable or vim.bo.readonly;
end,
provider = '',
hl = { fg = 'orange' },
},
};
local FileNameModifer = {
hl = function()
if vim.bo.modified then
-- use `force` because we need to override the child's hl foreground
return { fg = 'cyan', bold = true, force = true };
end;
end,
};
-- let's add the children to our FileNameBlock component
FileNameBlock = utils.insert(
FileNameBlock,
FileIcon,
utils.insert(FileNameModifer, FileName), -- a new table where FileName is a child of FileNameModifier
unpack(FileFlags), -- A small optimisation, since their parent does nothing
{ provider = '%<' } -- this means that the statusline is cut here when there's not enough space
);
local Ruler = {
provider = ' line: %l col: %c',
hl = { fg = 'green', bold = false },
};
local ScrollRuler = {
-- %l = current line number
-- %L = number of lines in the buffer
-- %c = column number
-- %P = percentage through file of displayed window
provider = '%P',
};
local ScrollBar = {
static = {
sbar = { '', '', '', '', '', '', '', '' },
-- sbar = { '🭶', '🭷', '🭸', '🭹', '🭺', '🭻' }
},
provider = function(self)
local curr_line = vim.api.nvim_win_get_cursor(0)[1];
local lines = vim.api.nvim_buf_line_count(0);
local i = math.floor((curr_line - 1) / lines * #self.sbar) + 1;
return string.rep(self.sbar[i], 2);
end,
hl = { fg = 'cyan', bg = 'bright_bg' },
};
local LSPActive = {
condition = conditions.lsp_attached,
update = { 'LspAttach', 'LspDetach' },
provider = function()
local names = {};
for _, server in pairs(vim.lsp.get_clients()) do
table.insert(names, server.name);
end;
return ' [' .. table.concat(names, ' ') .. '] ';
end,
hl = { fg = 'green', bold = false },
};
local spinner_frames = { '', '', '', '', '', '', '', '', '', '' };
-- From https://github.com/mhartington/dotfiles/blob/5961460e3a492f7815259a692fca5ca2a1df924a/config/nvim/lua/mh/statusline/lsp_status.lua#L4
local function get_lsp_progress()
local messages = require('lsp-status/messaging').messages;
local buf_messages = messages();
local msgs = {};
for _, msg in ipairs(buf_messages) do
local contents;
if msg.progress then
contents = msg.title;
if msg.spinner then
contents = spinner_frames[(msg.spinner % #spinner_frames) + 1] .. ' ' .. contents;
end;
elseif msg.status then
contents = msg.content;
if msg.uri then
local space = math.min(60, math.floor(0.6 * vim.fn.winwidth(0)));
local filename = vim.uri_to_fname(msg.uri);
filename = vim.fn.fnamemodify(filename, ':~:.');
if #filename > space then
filename = vim.fn.pathshorten(filename);
end;
contents = '(' .. filename .. ') ' .. contents;
end;
else
contents = msg.content;
end;
table.insert(msgs, contents);
end;
return table.concat(msgs, ' ');
end;
local LSPMessages = {
provider = function()
local progress = get_lsp_progress();
if progress == '' then
return '';
else
return ' ' .. progress;
end;
end,
hl = { fg = 'purple' },
};
local Diagnostics = {
condition = conditions.has_diagnostics,
static = {
error_icon = '',
warn_icon = '',
info_icon = '',
hint_icon = '',
},
init = function(self)
self.errors = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.ERROR });
self.warnings = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.WARN });
self.hints = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.HINT });
self.info = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.INFO });
end,
update = { 'DiagnosticChanged', 'BufEnter' },
{
provider = function(self)
-- 0 is just another output, we can decide to print it or not!
return self.errors > 0 and (self.error_icon .. self.errors);
end,
hl = { fg = 'diag_error' },
},
{
provider = function(self)
return self.warnings > 0 and (self.warn_icon .. self.warnings);
end,
hl = { fg = 'diag_warn' },
},
{
provider = function(self)
return self.info > 0 and (self.info_icon .. self.info);
end,
hl = { fg = 'diag_info' },
},
{
provider = function(self)
return self.hints > 0 and (self.hint_icon .. self.hints);
end,
hl = { fg = 'diag_hint' },
},
};
local Git = {
condition = conditions.is_git_repo,
init = function(self)
self.status_dict = vim.b.gitsigns_status_dict;
self.has_changes = self.status_dict.added ~= 0 or
self.status_dict.removed ~= 0 or
self.status_dict.changed ~= 0;
end,
hl = { fg = 'orange' },
{ -- git branch name
provider = function(self)
return '' .. self.status_dict.head;
end,
hl = { bold = true },
},
-- You could handle delimiters, icons and counts similar to Diagnostics
{
condition = function(self)
return self.has_changes;
end,
provider = '(',
},
{
provider = function(self)
local count = self.status_dict.added or 0;
return count > 0 and ('+' .. count);
end,
hl = { fg = 'git_add' },
},
{
provider = function(self)
local count = self.status_dict.removed or 0;
return count > 0 and ('-' .. count);
end,
hl = { fg = 'git_del' },
},
{
provider = function(self)
local count = self.status_dict.changed or 0;
return count > 0 and ('~' .. count);
end,
hl = { fg = 'git_change' },
},
{
condition = function(self)
return self.has_changes;
end,
provider = ')',
},
};
local Align = { provider = '%=' };
local Space = { provider = ' ' };
Left = utils.surround({ '', '' }, 'bright_bg', { ViMode, Diagnostics, LSPMessages });
Middle = utils.surround({ '', '' }, 'bright_bg', { LSPActive, FileNameBlock, Ruler });
Right = utils.surround({ '', '' }, 'bright_bg', { Git, Space, ScrollRuler, Space, ScrollBar });
local DefaultStatusline = {
hl = { bg = 'dark_bg' },
condition = function()
return true;
end,
Left,
Align,
Middle,
Align,
Right,
};
local StatusLines = {
hl = function()
if conditions.is_active() then
return 'StatusLine';
else
return 'StatusLineNC';
end;
end,
-- the first statusline with no condition, or which condition returns true is used.
-- think of it as a switch case with breaks to stop fallthrough.
fallthrough = false,
DefaultStatusline,
};
-- Make it global
vim.opt.laststatus = 3;
require('heirline').setup({
statusline = StatusLines,
});

View file

@ -1,26 +0,0 @@
local highlight = {
"RainbowRed",
"RainbowYellow",
"RainbowBlue",
"RainbowOrange",
"RainbowGreen",
"RainbowViolet",
"RainbowCyan",
}
local hooks = require('ibl.hooks')
hooks.register(hooks.type.HIGHLIGHT_SETUP, function()
vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#E06C75" })
vim.api.nvim_set_hl(0, "RainbowYellow", { fg = "#E5C07B" })
vim.api.nvim_set_hl(0, "RainbowBlue", { fg = "#61AFEF" })
vim.api.nvim_set_hl(0, "RainbowOrange", { fg = "#D19A66" })
vim.api.nvim_set_hl(0, "RainbowGreen", { fg = "#98C379" })
vim.api.nvim_set_hl(0, "RainbowViolet", { fg = "#C678DD" })
vim.api.nvim_set_hl(0, "RainbowCyan", { fg = "#56B6C2" })
end)
require('ibl').setup({
indent = {
highlight = highlight,
char = "",
},
})

View file

@ -1,9 +0,0 @@
require('lualine').setup({
options = {
theme = 'dracula',
globalstatus = true,
},
sections = {
lualine_x = {'g:coc_status', 'bo:filetype'},
}
})

View file

@ -1,23 +0,0 @@
local map = require('mini.map')
map.setup({
integrations = {
map.gen_integration.builtin_search(),
map.gen_integration.gitsigns(),
map.gen_integration.diagnostic(),
},
window = {
focusable = false,
width = 7,
winblend = 75,
},
})
local ts_input = require('mini.surround').gen_spec.input.treesitter
require('mini.surround').setup({
custom_surroundings = {
-- Use tree-sitter to search for function call
f = {
input = ts_input({ outer = '@call.outer', inner = '@call.inner' })
},
}
})

View file

@ -1,38 +1,63 @@
-- Override netrw
vim.g.loaded_netrw = 0
vim.g.loaded_netrwPlugin = 0
vim.g.loaded_netrw = 0;
vim.g.loaded_netrwPlugin = 0;
require('neo-tree').setup({
close_if_last_window = true,
enable_refresh_on_write = true,
close_if_last_window = true,
enable_refresh_on_write = true,
window = {
width = 22,
},
filesystem = {
use_libuv_file_watcher = true,
group_empty_dirs = true,
filtered_items = {
visible = false,
hide_dotfiles = false,
hide_gitignored = true,
hide_by_name = {},
hide_by_pattern = {},
always_show = {},
never_show = {},
never_show_by_pattern = {},
window = {
width = 22,
},
},
source_selector = {
winbar = true,
statusline = false
},
filesystem = {
use_libuv_file_watcher = true,
group_empty_dirs = true,
follow_current_file = {
enabled = true,
leave_dirs_open = true,
}
})
filtered_items = {
visible = false,
hide_dotfiles = false,
hide_gitignored = true,
hide_by_name = {},
hide_by_pattern = {},
always_show = {},
never_show = {},
never_show_by_pattern = {},
},
},
source_selector = {
winbar = true,
statusline = false,
},
follow_current_file = {
enabled = true,
leave_dirs_open = true,
},
});
local function is_neotree_open()
local manager = require('neo-tree.sources.manager');
local renderer = require('neo-tree.ui.renderer');
local state = manager.get_state('filesystem');
return renderer.window_exists(state);
end;
-- Auto open Neo-Tree on big enough window
vim.api.nvim_create_autocmd({ 'VimEnter', 'VimResized' }, {
pattern = '*',
callback = function()
if vim.api.nvim_eval([[&columns]]) > 100 then
if is_neotree_open() == false then
vim.cmd[[Neotree show]];
vim.cmd[[Neotree close]];
vim.cmd[[Neotree show]];
end;
else
if is_neotree_open() then
vim.cmd[[Neotree close]];
end;
end;
end,
});

View file

@ -1,11 +0,0 @@
" Auto open Neo-Tree on big enough window
function! OpenTree() abort
if &columns > 100
Neotree show
Neotree close
Neotree show
endif
lua MiniMap.open()
endfunction
autocmd VimEnter * call OpenTree()

View file

@ -1,13 +0,0 @@
" use vscode keybinds for snippets completion
inoremap <silent><expr> <TAB>
\ coc#pum#visible() ? coc#_select_confirm() :
\ coc#expandableOrJumpable() ? "\<C-r>=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\<CR>" :
\ CheckBackspace() ? "\<TAB>" :
\ coc#refresh()
function! CheckBackspace() abort
let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s'
endfunction
let g:coc_snippet_next = '<tab>'

View file

@ -1,21 +0,0 @@
lua << EOF
require('nvim-treesitter.configs').setup({
highlight = { enable = true },
indent = { enable = true },
})
require('treesitter-context').setup({
enable = true,
max_lines = 3,
min_window_height = 20,
})
vim.filetype.add({
pattern = { [".*/hypr/.*%.conf"] = "hyprlang" },
})
EOF
" Add line under context
hi TreesitterContextBottom gui=underline guisp=Grey

View file

@ -0,0 +1,167 @@
{
config,
pkgs,
lib,
nvim-theme-src,
...
}: let
inherit (config.vars) neovimIde;
inherit (lib) fileContents optionals;
inherit (pkgs) vimPlugins;
in {
programs = {
neovim = {
extraPackages = with pkgs; [
bat
];
plugins =
[
{
plugin = vimPlugins.dracula-nvim.overrideAttrs {
src = nvim-theme-src;
};
type = "lua";
config =
# lua
''
-- set dot icon in place of trailing whitespaces
vim.opt.listchars = {
tab = ' ',
trail = '',
extends = '',
precedes = '',
nbsp = '',
};
vim.opt.list = true;
-- Add visual indicator for trailing whitespaces
vim.opt.fillchars = { eob = " " };
vim.fn.matchadd('errorMsg', [[\s\+$]]);
vim.cmd.colorscheme('dracula');
'';
}
{
plugin = vimPlugins.indent-blankline-nvim;
type = "lua";
config =
# lua
''
--
local highlight = {
"RainbowRed",
"RainbowYellow",
"RainbowBlue",
"RainbowOrange",
"RainbowGreen",
"RainbowViolet",
"RainbowCyan",
};
local hooks = require('ibl.hooks');
hooks.register(hooks.type.HIGHLIGHT_SETUP, function()
vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#E06C75" });
vim.api.nvim_set_hl(0, "RainbowYellow", { fg = "#E5C07B" });
vim.api.nvim_set_hl(0, "RainbowBlue", { fg = "#61AFEF" });
vim.api.nvim_set_hl(0, "RainbowOrange", { fg = "#D19A66" });
vim.api.nvim_set_hl(0, "RainbowGreen", { fg = "#98C379" });
vim.api.nvim_set_hl(0, "RainbowViolet", { fg = "#C678DD" });
vim.api.nvim_set_hl(0, "RainbowCyan", { fg = "#56B6C2" });
end);
require('ibl').setup({
indent = {
highlight = highlight,
char = "",
},
});
'';
}
# Deps of heirline config
vimPlugins.nvim-web-devicons
{
plugin = vimPlugins.heirline-nvim;
type = "lua";
config = fileContents ./plugins/heirline.lua;
}
]
++ optionals neovimIde [
{
plugin = vimPlugins.neo-tree-nvim;
type = "lua";
config = fileContents ./plugins/neotree.lua;
}
{
plugin = vimPlugins.codewindow-nvim;
type = "lua";
config =
# lua
''
--
local codewindow = require('codewindow');
codewindow.setup({
auto_enable = false,
minimap_width = 8,
relative = 'editor',
window_border = 'none',
exclude_filetypes = { 'help' },
});
vim.api.nvim_create_autocmd({ 'VimEnter', 'VimResized' }, {
pattern = '*',
callback = function()
if vim.api.nvim_win_get_width(0) < 88 then
codewindow.close_minimap();
else
codewindow.open_minimap();
end
end,
});
'';
}
{
plugin = vimPlugins.transparent-nvim;
type = "lua";
config =
# lua
''
require('transparent').setup({
groups = {
'Normal',
'NormalNC',
'Comment',
'Constant',
'Special',
'Identifier',
'Statement',
'PreProc',
'Type',
'Underlined',
'Todo',
'String',
'Function',
'Conditional',
'Repeat',
'Operator',
'Structure',
'LineNr',
'NonText',
'SignColumn',
'CursorLine',
'CursorLineNr',
'StatusLine',
'StatusLineNC',
'EndOfBuffer',
},
extra_groups = {},
exclude_groups = {},
});
'';
}
];
};
};
}

View file

@ -0,0 +1,40 @@
{pkgs, ...}: let
inherit (pkgs) vimPlugins;
in {
programs = {
neovim = {
plugins = [
{
plugin = vimPlugins.nvim-treesitter-context;
type = "lua";
config =
# lua
''
require('treesitter-context').setup({
enable = true,
max_lines = 3,
min_window_height = 20,
});
vim.cmd.hi('TreesitterContextBottom', 'gui=underline guisp=Grey');
'';
}
vimPlugins.nvim-treesitter-textobjects
{
plugin = vimPlugins.nvim-treesitter.withAllGrammars;
type = "lua";
config =
# lua
''
require('nvim-treesitter.configs').setup({
highlight = { enable = true },
indent = { enable = true },
});
'';
}
];
};
};
}

View file

@ -1,10 +1,10 @@
{
config,
pkgs,
self,
...
}: {
home.packages =
(with config.customPkgs; [
(with self.packages.${pkgs.system}; [
pokemon-colorscripts
repl
])
@ -12,19 +12,26 @@
undollar
])
++ (with pkgs; [
dracula-theme
neofetch
progress
wget
tree
openssh
mosh
rsync
killall
imagemagick
usbutils
zip
unzip
# Networking
dig.dnsutils
]);
mosh
openssh
rsync
wget
# Misc CLI stuff
killall
nix-output-monitor
progress
tree
])
++ [
# This could help as well: nix derivation show -r /run/current-system
(pkgs.writeShellApplication {
name = "listDerivs";
text = ''
nix-store --query --requisites /run/current-system | cut -d- -f2- | sort -u
'';
})
];
}

View file

@ -14,9 +14,7 @@
plugins = with pkgs.tmuxPlugins; [dracula];
extraConfig =
/*
bash
*/
# bash
''
bind-key -n Home send Escape "OH"
bind-key -n End send Escape "OF"

View file

@ -1,7 +1,9 @@
{pkgs, ...} @ inputs: let
trash = pkgs.callPackage ./trash-d.nix inputs;
in {
home.packages = [trash];
{
pkgs,
self,
...
}: {
home.packages = [self.packages.${pkgs.system}.trash-d];
programs.bash.shellAliases.rm = "trash";
}

View file

@ -1,31 +0,0 @@
{
trash-d-src,
stdenv,
dmd,
dub,
ronn,
...
}:
stdenv.mkDerivation {
name = "trash";
version = trash-d-src.shortRev;
src = trash-d-src;
buildInputs = [dub dmd ronn];
buildPhase = ''
# https://github.com/svanderburg/node2nix/issues/217#issuecomment-751311272
export HOME=$(mktemp -d)
dub build
'';
installPhase = ''
mkdir -p $out/bin $out/man/man1
cp -a ./build/trash $out/bin/
ronn --roff --pipe MANUAL.md > $out/man/man1/trash.1
'';
}

View file

@ -1,12 +1,15 @@
{
config,
lib,
pkgs,
...
}: {
environment.systemPackages = with pkgs; [
(writeShellApplication {
}: let
inherit (lib) optionals;
in {
environment.systemPackages = [
(pkgs.writeShellApplication {
name = "rebuild-no-cache";
runtimeInputs = [config.nh.package];
runtimeInputs = [config.programs.nh.package];
text = ''
nh os switch -- --option binary-caches "https://cache.nixos.org" "$@"
'';
@ -15,22 +18,29 @@
nix = {
settings = {
substituters = [
"https://hyprland.cachix.org"
"https://nix-gaming.cachix.org"
# Nixpkgs-Wayland
"https://cache.nixos.org"
"https://nixpkgs-wayland.cachix.org"
"https://nix-community.cachix.org"
# Nix-community
"https://nix-community.cachix.org"
# Nh
"https://viperml.cachix.org"
# Caddy
"https://caddycf.cachix.org"
# Personal config cache
"https://cache.nelim.org"
];
substituters =
[
"https://hyprland.cachix.org"
"https://nix-gaming.cachix.org"
# Nixpkgs-Wayland
"https://cache.nixos.org"
"https://nixpkgs-wayland.cachix.org"
"https://nix-community.cachix.org"
# Nix-community
"https://nix-community.cachix.org"
# Nh
"https://viperml.cachix.org"
# Caddy
"https://caddycf.cachix.org"
]
++ optionals (!config.services.nix-serve.enable && config.services.tailscale.enable) [
# Personal config cache
"https://cache.nelim.org"
]
++ optionals (!config.services.nix-serve.enable && !config.services.tailscale.enable) [
"http://10.0.0.249:5000"
];
trusted-public-keys = [
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
"nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="

View file

@ -1,14 +1,11 @@
{
config,
lib,
nur,
...
}: {
imports = [
./vars
./pkgs
./modules/global.nix
nur.nixosModules.nur
];
nix = {
@ -23,16 +20,10 @@
substituters = [
# Nix-community
"https://nix-community.cachix.org"
# FIXME: cache doesn't work
# Personal config cache
# "https://cache.nelim.org"
];
trustedPublicKeys = [
# Nix-community
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
# Personal config cache
# "cache.nelim.org:JmFqkUdH11EA9EZOFAGVHuRYp7EbsdJDHvTQzG2pPyY="
];
};
@ -48,10 +39,7 @@
};
}
nur.hmModules.nur
./home
./pkgs
{
programs.bash.sessionVariables = {

View file

@ -1,5 +0,0 @@
{nixpkgs-wayland, ...} @ inputs: [
(import ./dracula-theme inputs)
nixpkgs-wayland.overlay
]

View file

@ -1,46 +0,0 @@
{
bat-theme-src,
gtk-theme-src,
xresources-theme-src,
...
} @ inputs: (final: prev: {
dracula-theme = prev.dracula-theme.overrideAttrs (oldAttrs: let
git-colors = prev.callPackage ./git.nix inputs;
plymouth = prev.callPackage ./plymouth.nix inputs;
wallpaper = prev.fetchurl (import ./wallpaper.nix);
in {
version = gtk-theme-src.shortRev;
src = gtk-theme-src;
installPhase = ''
runHook preInstall
mkdir -p $out/share/plymouth/themes $out/wallpapers
cp -a ${wallpaper} $out/wallpapers/waves.png
cp -a ${bat-theme-src}/Dracula.tmTheme $out/bat
cp -a ${git-colors}/git-colors $out/git-colors
cp -a ${plymouth}/share/plymouth/themes/dracula $out/share/plymouth/themes/
cp -a ${xresources-theme-src}/Xresources $out/xres
# -------------------------------------------
mkdir -p $out/share/themes/Dracula
cp -a {assets,cinnamon,gnome-shell,gtk-2.0,gtk-3.0,gtk-3.20,gtk-4.0,index.theme,metacity-1,unity,xfwm4} $out/share/themes/Dracula
cp -a kde/{color-schemes,plasma} $out/share/
cp -a kde/kvantum $out/share/Kvantum
mkdir -p $out/share/aurorae/themes
cp -a kde/aurorae/* $out/share/aurorae/themes/
mkdir -p $out/share/sddm/themes
cp -a kde/sddm/* $out/share/sddm/themes/
mkdir -p $out/share/icons/Dracula-cursors
mv kde/cursors/Dracula-cursors/index.theme $out/share/icons/Dracula-cursors/cursor.theme
mv kde/cursors/Dracula-cursors/cursors $out/share/icons/Dracula-cursors/cursors
runHook postInstall
'';
});
})

View file

@ -1,23 +0,0 @@
{
stdenv,
git-theme-src,
...
}:
stdenv.mkDerivation {
name = "dracula-git";
version = git-theme-src.shortRev;
src = git-theme-src;
installPhase = ''
# Git colors
cp -a ./config/gitconfig ./git-colors
chmod 777 ./git-colors
line=$(grep -n 'Dracula Dark Theme' ./git-colors | cut -d: -f1)
sed -i "1,$((line-1))d" ./git-colors
mkdir $out
cp -a ./git-colors $out
'';
}

View file

@ -1,4 +0,0 @@
{
url = "https://raw.githubusercontent.com/aynp/dracula-wallpapers/main/Art/4k/Waves%201.png";
hash = "sha256-f9FwSOSvqTeDj4bOjYUQ6TM+/carCD9o5dhg/MnP/lk=";
}

View file

@ -1,12 +0,0 @@
diff --git a/src/libstore/path.cc b/src/libstore/path.cc
index e642abcd5..0e584ef33 100644
--- a/src/libstore/path.cc
+++ b/src/libstore/path.cc
@@ -12,7 +12,7 @@ static void checkName(std::string_view path, std::string_view name)
if (!((c >= '0' && c <= '9')
|| (c >= 'a' && c <= 'z')
|| (c >= 'A' && c <= 'Z')
- || c == '+' || c == '-' || c == '.' || c == '_' || c == '?' || c == '='))
+ || c == '+' || c == '-' || c == '.' || c == '_' || c == '?' || c == '=' || c == '!'))
throw BadStorePath("store path '%s' contains illegal character '%s'", path, c);
}

View file

@ -1,26 +0,0 @@
{
lib,
pkgs,
...
} @ inputs: let
inherit (lib) concatMapAttrs filterAttrs mkOption pathExists types;
mkPackage = name: v: {
${name} = pkgs.callPackage ./${name} inputs;
};
rmNotPackage = name: value:
value
== "directory"
&& pathExists ./${name}/default.nix;
packages = filterAttrs rmNotPackage (builtins.readDir ./.);
pkgSet = concatMapAttrs mkPackage packages;
in {
options.customPkgs = mkOption {
type = types.attrs;
};
config.customPkgs = pkgSet;
}

View file

@ -1,41 +0,0 @@
{
stdenv,
meson,
ninja,
pkg-config,
glib,
libfprint,
polkit,
dbus,
systemd,
pam,
libpam-wrapper,
pam-fprint-grosshack-src,
...
}:
stdenv.mkDerivation {
name = "pam-fprint-grosshack";
version = pam-fprint-grosshack-src.shortRev;
src = pam-fprint-grosshack-src;
nativeBuildInputs = [
meson
ninja
pkg-config
glib
libfprint
polkit
dbus
systemd
pam
libpam-wrapper
];
mesonFlags = [
"-Dpam_modules_dir=${placeholder "out"}/lib/security"
"-Dsysconfdir=${placeholder "out"}/etc"
"-Ddbus_service_dir=${placeholder "out"}/share/dbus-1/system-services"
"-Dsystemd_system_unit_dir=${placeholder "out"}/lib/systemd/system"
];
}

View file

@ -1,110 +0,0 @@
{
config,
writeShellApplication,
stdenvNoCC,
jre,
fetchFromGitHub,
fetchurl,
makeWrapper,
makeDesktopItem,
rsync,
...
}:
stdenvNoCC.mkDerivation rec {
name = "rars-flatlaf";
src = fetchFromGitHub {
owner = "privat";
repo = "rars";
rev = "fd34014efd65b3cb5a52f1729c3b8240cae0c332";
hash = "sha256-D8X/cr+fnq/OOFYfMG9aPss95J8Z2yiROuF9kmHkK40=";
fetchSubmodules = true;
};
desktopItem = let
hyprland = config.home-manager.users.${config.vars.mainUser}.wayland.windowManager.hyprland.finalPackage;
execScript = writeShellApplication {
name = "execScript";
runtimeInputs = [hyprland];
text = "(sleep 1; hyprctl dispatch togglefloating) & ${name}";
};
in
makeDesktopItem {
name = "RARS";
desktopName = "RARS";
exec = "${execScript}/bin/execScript";
icon = name;
};
nativeBuildInputs = [makeWrapper rsync jre];
installPhase = let
flatlaf = fetchurl {
url = "https://repo1.maven.org/maven2/com/formdev/flatlaf/3.2/flatlaf-3.2.jar";
hash = "sha256-HAG+G9undDXWtySokKl7lkIUCFI7lEBduu+UgSVaxAA=";
};
icon = fetchurl {
url = "https://riscv.or.jp/wp-content/uploads/2019/06/cropped-RISC-V-logo-figonly-mod-2.png";
hash = "sha256-e1/iVmadVzyO77ikBr1cdXsJdDj8TiXh3Oyjek9GwqM=";
};
in
/*
bash
*/
''
# ./build-jar.sh
mkdir -p build
find src -name "*.java" | xargs javac --release 8 -d build
if [[ "$OSTYPE" == "darwin"* ]]; then
find src -type f -not -name "*.java" -exec rsync -R {} build \;
else
find src -type f -not -name "*.java" -exec cp --parents {} build \;
fi
cp -rf build/src/* build
rm -r build/src
cp README.md License.txt build
cd build
jar cfm ../rars.jar ./META-INF/MANIFEST.MF *
chmod +x ../rars.jar
cd ..
# ./build-jar-flatlaf.sh
mkdir -p build-flatlaf/
cd build-flatlaf/
cp ${flatlaf} ../flatlaf.jar
jar x < ../rars.jar
jar x < "../flatlaf.jar"
cat > META-INF/MANIFEST.MF <<EOF
Manifest-Version: 1.0
Implementation-Version: 3.1.1
Multi-Release: true
Main-Class: rars.Launch
EOF
jar cfm ../rars-flatlaf.jar META-INF/MANIFEST.MF *
chmod +x ../rars-flatlaf.jar
cd ..
# InstallPhase
runHook preInstall
cat > ./rars.desktop <<EOF
EOF
mkdir -p "$out/share/pixmaps"
cp "${icon}" "$out/share/pixmaps/${name}.png"
install -D $desktopItem/share/applications/* $out/share/applications/rars.desktop
export JAR=$out/share/java/${name}/${name}.jar
install -D ./${name}.jar $JAR
makeWrapper ${jre}/bin/java $out/bin/${name} \
--add-flags "-jar $JAR"
runHook postInstall
'';
}

View file

@ -3,7 +3,7 @@
lib,
...
}: let
inherit (lib) mkOption types;
inherit (lib) mkDefault mkOption types;
flakeDir = config.environment.variables.FLAKE;
cfg = config.vars;
in {
@ -23,7 +23,7 @@ in {
};
promptMainColor = mkOption {
type = types.enum ["red" "green" "blue" "purple" "orange" "yellow" "cyan" "pink"];
type = types.enum (import ./prompt-schemes.nix {});
default = "purple";
};
@ -32,19 +32,20 @@ in {
Colors used in starship prompt
'';
default = import ./prompt-schemes.nix cfg.promptMainColor;
default = import ./prompt-schemes.nix {color = cfg.promptMainColor;};
readOnly = true;
type = with types;
submodule {
options = {
textColor = mkOption {type = str;};
firstColor = mkOption {type = str;};
secondColor = mkOption {type = str;};
thirdColor = mkOption {type = str;};
fourthColor = mkOption {type = str;};
};
type = types.submodule {
options = let
inherit (types) str;
in {
textColor = mkOption {type = str;};
firstColor = mkOption {type = str;};
secondColor = mkOption {type = str;};
thirdColor = mkOption {type = str;};
fourthColor = mkOption {type = str;};
};
};
};
configDir = mkOption {
@ -55,28 +56,6 @@ in {
'';
};
mainMonitor = mkOption {
type = types.str;
description = ''
The name of the main monitor used for Hyprland
and Regreet which also uses Hyprland
'';
# This is to allow a bash script to know whether this value exists
default = "null";
};
greetdDupe = mkOption {
type = types.bool;
description = ''
If we should duplicate regreet on all monitors
'';
default = true;
};
fontSize = mkOption {
type = types.nullOr types.float;
};
neovimIde = mkOption {
type = types.bool;
default = true;
@ -84,6 +63,6 @@ in {
};
config = {
environment.variables.FLAKE = lib.mkDefault "/home/${cfg.mainUser}/.nix";
environment.variables.FLAKE = mkDefault "/home/${cfg.mainUser}/.nix";
};
}

View file

@ -1,4 +1,6 @@
color: let
{color ? null}: let
inherit (builtins) attrNames removeAttrs;
schemes = {
"purple" = {
textColor = "#090c0c";
@ -74,4 +76,6 @@ color: let
};
};
in
schemes.${color}
if ! isNull color
then schemes.${color}
else attrNames (removeAttrs schemes ["color"])

View file

@ -4,15 +4,16 @@ This directory encompasses every device's main configuration file.
## List of my Devices
| Name | Description |
| ---------- | ------------------------------------------------------------------------------------------------------- |
| `android` | My [Nix-On-Droid](https://github.com/nix-community/nix-on-droid) configuration for my OnePlus 9 Pro |
| `binto` | My desktop PC with a multi-monitor setup and an NVIDIA (cringe) 3070 |
| `cluster` | Two Lenovo mini PCs that make use of [NixOS-pcsd](https://github.com/matt1432/nixos-pcsd) to form a cluster |
| `nos` | My custom built NAS |
| `oksys` | A very old Acer laptop that went from sailing the seas for years to becoming my web server and VPN host. It is now retired indefinitely. |
| `servivi` | A gaming PC in a previous life, it is now used to experiment and do heavier stuff |
| `wim` | My 2-1 Lenovo Laptop that I use for uni |
| Name | Description |
| ----------- | ------------------------------------------------------------------------------------------------------- |
| `android` | My [Nix-On-Droid](https://github.com/nix-community/nix-on-droid) configuration for my OnePlus 9 Pro |
| `bbsteamie` | My wife's SteamDeck that has a pink case |
| `binto` | My desktop PC with a multi-monitor setup and an NVIDIA (cringe) 3070 |
| `cluster` | Two Lenovo mini PCs that make use of [NixOS-pcsd](https://github.com/matt1432/nixos-pcsd) to form a cluster |
| `nos` | My custom built NAS |
| `oksys` | A very old Acer laptop that went from sailing the seas for years to becoming my web server and VPN host. It is now retired indefinitely. |
| `servivi` | A gaming PC in a previous life, it is now used as a build farm and hosts game servers |
| `wim` | My 2-1 Lenovo Laptop that I use for uni |
## Global Vars

View file

@ -1,25 +1,72 @@
{
home-manager,
nixpkgs,
config,
lib,
pkgs,
...
} @ inputs: rec {
extraSpecialArgs = inputs;
home-manager-path = home-manager.outPath;
pkgs = import nixpkgs {
system = "aarch64-linux";
overlays = import ../../common/overlays inputs;
}: {
vars = {
mainUser = "nix-on-droid";
hostName = "localhost";
neovimIde = false;
};
modules = [
{
options = with pkgs.lib; {
environment.variables.FLAKE = mkOption {
type = with types; nullOr str;
};
};
}
{home-manager.extraSpecialArgs = inputs;}
../../common/nix-on-droid.nix
./nix-on-droid.nix
];
environment.variables.FLAKE = "/data/data/com.termux.nix/files/home/.nix";
terminal.font = "${(pkgs.nerdfonts.override {
fonts = [
"JetBrainsMono"
];
})}/share/fonts/truetype/NerdFonts/JetBrainsMonoNerdFontMono-Regular.ttf";
environment.packages =
(with pkgs; [
diffutils
findutils
utillinux
tzdata
hostname
man
gnugrep
ripgrep
gnupg
gnused
gnutar
bzip2
gzip
xz
zip
unzip
openssh
perl
which
alejandra
])
++ [
(pkgs.writeShellApplication {
name = "switch";
runtimeInputs = with pkgs; [
nix-output-monitor
];
text = ''
exec nix-on-droid ${lib.concatStringsSep " " [
"switch"
"--flake ${config.environment.variables.FLAKE}"
"--builders ssh-ng://matt@100.64.0.7"
''"$@"''
"|&"
"nom"
]}
'';
})
];
environment.etcBackupExtension = ".bak";
environment.motd = null;
home-manager.backupFileExtension = "hm-bak";
# Set your time zone.
time.timeZone = "America/Montreal";
# No touchy
system.stateVersion = "23.05";
}

View file

@ -1,47 +0,0 @@
{pkgs, ...}: {
vars = {
mainUser = "nix-on-droid";
hostName = "localhost";
neovimIde = false;
};
environment.variables.FLAKE = "/data/data/com.termux.nix/files/home/.nix";
terminal.font = "${(pkgs.nerdfonts.override {
fonts = [
"JetBrainsMono"
];
})}/share/fonts/truetype/NerdFonts/JetBrainsMonoNerdFontMono-Regular.ttf";
environment.packages = with pkgs; [
diffutils
findutils
utillinux
tzdata
hostname
man
gnugrep
ripgrep
gnupg
gnused
gnutar
bzip2
gzip
xz
zip
unzip
openssh
perl
alejandra
];
environment.etcBackupExtension = ".bak";
environment.motd = null;
home-manager.backupFileExtension = "hm-bak";
# Set your time zone.
time.timeZone = "America/Montreal";
# No touchy
system.stateVersion = "23.05";
}

View file

@ -0,0 +1,57 @@
{
config,
jovian,
self,
...
}: let
inherit (config.vars) mainUser hostName;
in {
imports = [
jovian.nixosModules.default
../../modules/kmscon.nix
../../modules/sshd.nix
./hardware-configuration.nix
./modules/desktop.nix
self.nixosModules.plymouth
];
vars = {
mainUser = "mariah";
hostName = "bbsteamie";
promptMainColor = "pink";
};
boot.plymouth = {
enable = true;
theme = "steamos";
};
users.users.${mainUser} = {
isNormalUser = true;
extraGroups = [
"wheel"
"adm"
];
};
networking = {
inherit hostName;
networkmanager.enable = true;
};
home-manager.users.${mainUser} = {
imports = [];
# No touchy
home.stateVersion = "24.11";
};
# Set your time zone.
time.timeZone = "America/Montreal";
# No touchy
system.stateVersion = "24.11";
}

View file

@ -0,0 +1,57 @@
{
config,
lib,
modulesPath,
...
}: {
nixpkgs.hostPlatform = "x86_64-linux";
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
jovian = {
steamos.useSteamOSConfig = true;
devices.steamdeck = {
enable = true;
enableGyroDsuService = true;
};
hardware.has.amd.gpu = true;
};
boot = {
kernelModules = ["kvm-amd"];
initrd.availableKernelModules = ["nvme" "xhci_pci" "usbhid" "sdhci_pci"];
loader = {
efi.canTouchEfiVariables = true;
systemd-boot = {
enable = true;
configurationLimit = 30;
};
};
};
virtualisation.waydroid.enable = true;
fileSystems = {
"/" = {
device = "/dev/disk/by-label/NIXROOT";
fsType = "ext4";
};
"/boot" = {
device = "/dev/disk/by-label/NIXBOOT";
fsType = "vfat";
options = ["fmask=0022" "dmask=0022"];
};
};
swapDevices = [
{
device = "/.swapfile";
size = 16 * 1024; # 16GB
}
];
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -0,0 +1,161 @@
{
config,
lib,
pkgs,
self,
...
}: let
inherit (lib) getExe mkForce;
inherit (config.vars) mainUser;
# FIXME: switch to wayland when possible
defaultSession = "plasmax11";
switch-session = pkgs.writeShellApplication {
name = "switch-session";
text = ''
mkdir -p /etc/sddm.conf.d
cat <<EOF | tee /etc/sddm.conf.d/autologin.conf
[Autologin]
User=${mainUser}
Session=$1
Relogin=true
EOF
'';
};
gaming-mode = pkgs.writeShellScriptBin "gaming-mode" ''
sudo ${pkgs.systemd}/bin/systemctl start to-gaming-mode.service
'';
in {
services = {
xserver.enable = true;
desktopManager.plasma6.enable = true;
displayManager = {
sddm = {
enable = true;
autoLogin.relogin = true;
};
};
};
# Sets the default session at launch
systemd.services."set-session" = {
wantedBy = ["multi-user.target"];
before = ["display-manager.service"];
path = [switch-session];
script = ''
switch-session "${defaultSession}"
'';
};
# Allows switching to gaming mode
systemd.services."to-gaming-mode" = {
wantedBy = mkForce [];
path = [switch-session];
script = ''
switch-session "gamescope-wayland"
systemctl restart display-manager
sleep 10
switch-session "${defaultSession}"
'';
};
# Make it so we don't need root to switch to gaming mode
security.sudo.extraRules = [
{
users = [mainUser];
groups = [100];
commands = [
{
command = "${pkgs.systemd}/bin/systemctl start to-gaming-mode.service";
options = ["SETENV" "NOPASSWD"];
}
];
}
];
# Add desktop entry to make it GUI friendly
home-manager.users.${mainUser}.xdg.desktopEntries."Gaming Mode" = {
name = "Gaming Mode";
exec = getExe gaming-mode;
icon = "steam";
terminal = false;
type = "Application";
};
environment.systemPackages = [
# Misc apps for DE
pkgs.firefox
pkgs.kdePackages.discover
pkgs.wl-clipboard
# FIXME:Ryujinx ACNH crashes on OpenGL AND Vulkan
# https://github.com/Ryujinx/Ryujinx/issues/6993
# https://github.com/Ryujinx/Ryujinx/issues/6708
self.packages.${pkgs.system}.yuzu
pkgs.steam-rom-manager
];
programs = {
xwayland.enable = true;
kdeconnect.enable = true;
steam = {
enable = true;
remotePlay.openFirewall = true;
extraCompatPackages = [
pkgs.proton-ge-bin
];
};
};
# Enable flatpak support
services.flatpak.enable = true;
services.packagekit.enable = true;
# Jovian NixOS settings
jovian.steam = {
# Steam > Settings > System > Enable Developer Mode
# Steam > Developer > CEF Remote Debugging
enable = true;
user = mainUser;
desktopSession = config.services.displayManager.defaultSession;
};
jovian.decky-loader = {
enable = true;
user = mainUser;
stateDir = "/home/${mainUser}/.local/share/decky"; # Keep scoped to user
# https://github.com/Jovian-Experiments/Jovian-NixOS/blob/1171169117f63f1de9ef2ea36efd8dcf377c6d5a/modules/decky-loader.nix#L80-L84
extraPackages = with pkgs; [
# Generic packages
curl
unzip
util-linux
gnugrep
readline.out
procps
pciutils
libpulseaudio
];
extraPythonPackages = pythonPackages:
with pythonPackages; [
python
];
};
# Takes way too long to shutdown
systemd.services."decky-loader".serviceConfig.TimeoutStopSec = "5";
}

View file

@ -1,28 +1,40 @@
{config, ...}: let
{
config,
self,
...
}: let
inherit (config.vars) mainUser hostName;
in {
imports = [
./hardware-configuration.nix
../../modules/android.nix
../../modules/ags
../../modules/audio.nix
../../modules/hyprland
../../modules/kmscon.nix
../../modules/printer.nix
../../modules/razer.nix
../../modules/ratbag-mice.nix
../../modules/sshd.nix
../../modules/tailscale.nix
./modules/gpu-replay.nix
./modules/nix-gaming.nix
self.nixosModules.desktop
];
vars = {
mainUser = "matt";
hostName = "binto";
promptMainColor = "purple";
};
roles.desktop = {
user = config.vars.mainUser;
mainMonitor = "desc:GIGA-BYTE TECHNOLOGY CO. LTD. G27QC 0x00000B1D";
greetdDupe = false;
displayManager.duplicateScreen = false;
fontSize = 12.5;
};
@ -40,8 +52,6 @@ in {
home-manager.users.${mainUser} = {
imports = [
../../home/firefox
./home/packages.nix
];
# No touchy

View file

@ -1,33 +0,0 @@
{...}: {
xdg.desktopEntries."com.github.iwalton3.jellyfin-media-player" = {
name = "Jellyfin Media Player";
comment = "Desktop client for Jellyfin";
exec = "jellyfinmediaplayer --platform xcb";
icon = "com.github.iwalton3.jellyfin-media-player";
terminal = false;
type = "Application";
categories = ["AudioVideo" "Video" "Player" "TV"];
settings = {
Version = "1.0";
StartupWMClass = "jellyfin-media-player";
};
actions = {
"DesktopF" = {
name = "Desktop [Fullscreen]";
exec = "jellyfinmediaplayer --fullscreen --desktop --platform xcb";
};
"DesktopW" = {
name = "Desktop [Windowed]";
exec = "jellyfinmediaplayer --windowed --desktop --platform xcb";
};
"TVF" = {
name = "TV [Fullscreen]";
exec = "jellyfinmediaplayer --fullscreen --tv --platform xcb";
};
"TVW" = {
name = "TV [Windowed]";
exec = "jellyfinmediaplayer --windowed --tv --platform xcb";
};
};
};
}

View file

@ -1,53 +1,18 @@
{
pkgs,
config,
lib,
gpu-screen-recorder-src,
pkgs,
self,
...
}: let
inherit (config.vars) mainUser mainMonitor;
inherit (lib) concatStringsSep removePrefix;
inherit (config.vars) mainUser;
cfgDesktop = config.roles.desktop;
gsr = self.packages.${pkgs.system}.gpu-screen-recorder;
hyprPkgs = config.home-manager.users.${mainUser}.wayland.windowManager.hyprland.finalPackage;
gsr = pkgs.stdenv.mkDerivation {
name = "gpu-screen-recorder";
version = gpu-screen-recorder-src.shortRev;
src = gpu-screen-recorder-src;
nativeBuildInputs = with pkgs; [
pkg-config
makeWrapper
];
buildInputs = with pkgs; [
libpulseaudio
ffmpeg
wayland
libdrm
libva
xorg.libXcomposite
xorg.libXrandr
];
buildPhase = ''
./build.sh
'';
installPhase = ''
strip gsr-kms-server
strip gpu-screen-recorder
install -Dm755 "gsr-kms-server" "$out/bin/gsr-kms-server"
install -Dm755 "gpu-screen-recorder" "$out/bin/gpu-screen-recorder"
#install -Dm644 "extra/gpu-screen-recorder.service" "$out/lib/systemd/user/gpu-screen-recorder.service"
wrapProgram $out/bin/gpu-screen-recorder --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [
pkgs.addOpenGLRunpath.driverLink
pkgs.libglvnd
]}"
'';
};
in {
security.wrappers = {
gpu-screen-recorder = {
@ -66,22 +31,22 @@ in {
};
home-manager.users.${mainUser} = {
home.packages = with pkgs; [
home.packages = [
gsr
(writeShellApplication {
(pkgs.writeShellApplication {
name = "gpu-save-replay";
runtimeInputs = [procps];
runtimeInputs = [pkgs.procps];
text = ''
pkill --signal SIGUSR1 -f gpu-screen-recorder
'';
})
(writeShellApplication {
(pkgs.writeShellApplication {
name = "gsr-start";
runtimeInputs = [pulseaudio hyprPkgs xorg.xrandr];
runtimeInputs = [pkgs.pulseaudio hyprPkgs pkgs.xorg.xrandr];
text = ''
main="${removePrefix "desc:" mainMonitor}"
main="${removePrefix "desc:" cfgDesktop.mainMonitor}"
WINDOW=$(hyprctl -j monitors | jq '.[] |= (.description |= gsub(","; ""))' | jq -r ".[] | select(.description | test(\"$main\")) | .name")
# Fix fullscreen game resolution

View file

@ -3,26 +3,34 @@
pkgs,
...
}: {
imports = [
nix-gaming.nixosModules.platformOptimizations
];
programs = {
steam = {
# Disable HW accel to fix flickers
enable = true;
remotePlay.openFirewall = true;
extraCompatPackages = with pkgs; [
proton-ge-bin
];
platformOptimizations.enable = true;
};
};
environment.systemPackages = with pkgs; [
(lutris.override {
environment.systemPackages = [
(pkgs.lutris.override {
extraLibraries = pkgs: [
# List library dependencies here
];
extraPkgs = pkgs: [
nix-gaming.packages.${pkgs.system}.wine-ge
# List extra packages available to lutris here
];
})
pkgs.r2modman
pkgs.ryujinx
];
}

View file

@ -48,7 +48,18 @@ in {
vault.reverseProxy = "${nosIP}:8781";
hauk.reverseProxy = "${nosIP}:3003";
headscale.reverseProxy = "${clusterIP}:8085";
jelly.reverseProxy = "${nosIP}:8097";
jellyfin = {
subDomainName = "jelly";
reverseProxy = "${nosIP}:8096";
subDirectories = {
jfa-go = {
subDirName = "accounts";
reverseProxy = "${nosIP}:8056";
};
};
};
pcsd = {
extraConfig = ''
@ -125,10 +136,6 @@ in {
subDirectories = {
bazarr.reverseProxy = "${nosIP}:6767";
bazarr-french = {
subDirName = "bafrr";
reverseProxy = "${nosIP}:6766";
};
prowlarr.reverseProxy = "${nosIP}:9696";
radarr.reverseProxy = "${nosIP}:7878";

View file

@ -13,8 +13,7 @@ in {
./modules/mergerfs.nix
./modules/qbittorrent
./modules/snapraid.nix
./modules/subtitles/cleanup.nix
./modules/subtitles/syncing.nix
./modules/subtitles
];
vars = {

View file

@ -1,10 +1,19 @@
{
config,
modulesPath,
self,
...
}: {
nixpkgs.hostPlatform = "x86_64-linux";
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
self.nixosModules.nvidia
];
nvidia = {
enable = true;
enableCUDA = true;
};
boot = {
kernelModules = ["kvm-intel"];
@ -45,9 +54,4 @@
zramSwap.enable = true;
hardware.cpu.intel.updateMicrocode = config.hardware.enableRedistributableFirmware;
nvidia = {
enable = true;
enableCUDA = true;
};
}

View file

@ -62,6 +62,11 @@ in {
};
volumes = ["${rwPath}/act:/data"];
dns = ["1.0.0.1"];
extra_hosts = [
"git.nelim.org=10.0.0.130"
];
};
};
}

View file

@ -1,8 +1,8 @@
pkgs:
pkgs.dockerTools.pullImage {
imageName = "vegardit/gitea-act-runner";
imageDigest = "sha256:f793df4ed40227cd66dfbba730a448c23f14d81bf9d17857a352011bf6c06907";
sha256 = "1c05n1w9f06mcwgpmswclbba898bwsqhx1mdlmi97nphphp9bmq5";
imageDigest = "sha256:a6d70b4df97eab6b52ee7094c80109b28c0c2e8d9066c60b71b3222e88726444";
sha256 = "0z0ffjavp2r07vp61f7ygwps28m0h9hkdvva0gj4bgsbwdk0pn76";
finalImageName = "vegardit/gitea-act-runner";
finalImageTag = "dind-latest";
}

View file

@ -1,8 +1,8 @@
pkgs:
pkgs.dockerTools.pullImage {
imageName = "codeberg.org/forgejo/forgejo";
imageDigest = "sha256:7aa26f80fb574cf7dc886e180d1e86462bf4110fd1d5343af33264c18ae3a1b3";
sha256 = "1ij5cwbs8mv67pimkp43ia0fxli2rr5agy08sq8yimxmz4ayd60l";
imageDigest = "sha256:6f4620d8fb4bb8288315b07ca65286da958745d623fc9eaef4bb4e0e34c68b3d";
sha256 = "0k9nx7z20b60kavyawdhp7lk3abgy40lsbxl5p2qzgkhrc67bb31";
finalImageName = "codeberg.org/forgejo/forgejo";
finalImageTag = "1.21.10-0";
finalImageTag = "7.0.5";
}

View file

@ -1,8 +1,8 @@
pkgs:
pkgs.dockerTools.pullImage {
imageName = "postgres";
imageDigest = "sha256:6779d7a308f3c9c518a644ad9326be6149dc50352c91927725936a1115e09b0d";
sha256 = "1qckzi60db6q3dw61qqpfj4xsf7fa92aaf5x7ra2ac5sm1kbhl3x";
imageDigest = "sha256:2f7365d1f574dba34f6332978169afe60af9de9608fffbbfecb7d04cc5233698";
sha256 = "07v1r0ijag2kyr9nk5l7kphgvrb6lk71zyab4i31rkl1k27vfhwg";
finalImageName = "postgres";
finalImageTag = "14";
}

View file

@ -1,8 +1,8 @@
pkgs:
pkgs.dockerTools.pullImage {
imageName = "theconnman/docker-hub-rss";
imageDigest = "sha256:3850badd3ebdb7d6583c8b67ebbcdd077b4e4ff2d8362ee31d78e334462d616f";
sha256 = "0h4lldnfd8nrrh598bxvnykkzjyqa9hqjb57g694fpy1zpqvy266";
imageDigest = "sha256:7a6dd3f09dd9a3ad4ec3b6cf83ceb3fb11f15fd8df8b480a851e974ee0ff8e26";
sha256 = "012cy2yqir36kpxb5jlyvsssm419bwrs4w7y8hz4nawvx69d1w69";
finalImageName = "theconnman/docker-hub-rss";
finalImageTag = "latest";
}

View file

@ -1,8 +1,8 @@
pkgs:
pkgs.dockerTools.pullImage {
imageName = "freshrss/freshrss";
imageDigest = "sha256:c554223f485843553f7b7c9faff1f5c6c6113ce15b0288dd07210e97d8bbbbcc";
sha256 = "1vjsr0hfq5dfma2dll6jzkir14ii423nlvjjq6gq0mp9s19jidr7";
imageDigest = "sha256:0e8708498272dac567b9d1654822ccb22037cf4b1792ec75b9929e70e53ddd16";
sha256 = "0qff5bvr21ibli4pxd6cs0knfmyh25s5123z9d1lndrlvnvifbdx";
finalImageName = "freshrss/freshrss";
finalImageTag = "latest";
}

View file

@ -1,8 +1,8 @@
pkgs:
pkgs.dockerTools.pullImage {
imageName = "postgres";
imageDigest = "sha256:6779d7a308f3c9c518a644ad9326be6149dc50352c91927725936a1115e09b0d";
sha256 = "1qckzi60db6q3dw61qqpfj4xsf7fa92aaf5x7ra2ac5sm1kbhl3x";
imageDigest = "sha256:2f7365d1f574dba34f6332978169afe60af9de9608fffbbfecb7d04cc5233698";
sha256 = "07v1r0ijag2kyr9nk5l7kphgvrb6lk71zyab4i31rkl1k27vfhwg";
finalImageName = "postgres";
finalImageTag = "14";
}

View file

@ -1,8 +1,8 @@
pkgs:
pkgs.dockerTools.pullImage {
imageName = "rssbridge/rss-bridge";
imageDigest = "sha256:b543b93acf3c5e5f011b940352032aabc98221716fed57b4c7f902908731beae";
sha256 = "1lk5x15dlgcyly0in9xhn7ibxp9hp2h65x9q3axhqiz28dkd176a";
imageDigest = "sha256:94480c924f35512e81ad846fd9968591c63d20221484b7774083055b990ab31f";
sha256 = "18jakml7v01w4f1y40aflzsnnq5r2pj5wnh1xf2x9c5c5l0nvhfr";
finalImageName = "rssbridge/rss-bridge";
finalImageTag = "latest";
}

View file

@ -1,8 +1,8 @@
pkgs:
pkgs.dockerTools.pullImage {
imageName = "grimsi/gameyfin";
imageDigest = "sha256:97842e65252e0854ccced478c10a007ee57e7a35c98c3cb26ecce9d0fd5be41c";
sha256 = "19gbbaqg4n188piyh3lb54rfwz5xpj6f6fkvpqsbls3v9a4ambjw";
imageDigest = "sha256:f7994b4d4da378d909c173115d71cfeb704980184e42db432bd309d51d92725e";
sha256 = "07a10aw1x2qbfpcva30l0b33lhxshrsacxr1ia0lbbsch655iymq";
finalImageName = "grimsi/gameyfin";
finalImageTag = "latest";
}

View file

@ -1,8 +1,8 @@
pkgs:
pkgs.dockerTools.pullImage {
imageName = "ghcr.io/gethomepage/homepage";
imageDigest = "sha256:13d1bf9c5cf7d2b0f3af90ddfe59302f32374b8f48a56c6f6afc2a475bf919df";
sha256 = "12kzw2dvlfv78nh6y0iqygjndbizxra39kpsrif5026p2hjm4gyp";
imageDigest = "sha256:cbc5b49533f9afd0be57f6d5168eef48be2d713709259d6697f0d33b4ecb2f28";
sha256 = "1f07bv5c0ca70vqrlqlblqbjzpgdripvipkigh6lliam5v0405h0";
finalImageName = "ghcr.io/gethomepage/homepage";
finalImageTag = "latest";
}

View file

@ -155,18 +155,6 @@
};
};
}
{
"bazarr french" = rec {
href = "https://lan.nelim.org/bafrr";
icon = "bazarr.png";
description = "fetches subs";
widget = {
type = "bazarr";
url = href;
key = "{{HOMEPAGE_VAR_BAZARRFR_API}}";
};
};
}
{
prowlarr = rec {
href = "https://lan.nelim.org/prowlarr";

View file

@ -9,7 +9,6 @@ in {
arion.projects."immich" = {
"immich_server" = {
image = ./images/server.nix;
command = ["start.sh" "immich"];
env_file = [
"${./env}"
secrets.immich.path
@ -28,22 +27,6 @@ in {
environment.NODE_ENV = "production";
};
"immich_microservices" = {
image = ./images/server.nix;
command = ["start.sh" "microservices"];
env_file = [
"${./env}"
secrets.immich.path
];
volumes = [
"${UPLOAD_LOCATION}:/usr/src/app/upload:rw"
];
depends_on = ["immich_redis" "immich_postgres"];
restart = "always";
};
"immich_machine_learning" = {
image = ./images/machine-learning.nix;
restart = "always";

View file

@ -1,8 +1,8 @@
pkgs:
pkgs.dockerTools.pullImage {
imageName = "ghcr.io/immich-app/immich-machine-learning";
imageDigest = "sha256:b0a22ca87496019f495ed5ce89df08da237e0987d389376b435b2226a8c29463";
sha256 = "001nj0dsqzb3lhvjrm88wv3cmm5yx8wldw3i7kq1vs80gi4ckhs1";
imageDigest = "sha256:4dc544396bf08cd92066f83a270155201d80512add127ca9fac2d3e56694d2a4";
sha256 = "17hp5ljnc34nmj74wjvvicc3zjkwhrq4k748r5jbmydgb4bsvji7";
finalImageName = "ghcr.io/immich-app/immich-machine-learning";
finalImageTag = "v1.101.0";
finalImageTag = "v1.108.0";
}

View file

@ -1,8 +1,8 @@
pkgs:
pkgs.dockerTools.pullImage {
imageName = "ghcr.io/immich-app/immich-server";
imageDigest = "sha256:0097562444db38ebd2e5f98e71bd27dc6dd69b7f786207f7d323febbf99b8f93";
sha256 = "09iyqs2fspi021005iw510b6xj87lfwimng84izbxvya7l312kb0";
imageDigest = "sha256:248a6da7dadeb57f90eacd5635ecc65e63d4c3646a6c94a362bb57cba1b314fa";
sha256 = "03w9m0hsid9ppfyy8wmnccvmjh0m4h061yy1hwa4psijlx976xxp";
finalImageName = "ghcr.io/immich-app/immich-server";
finalImageTag = "v1.101.0";
finalImageTag = "v1.108.0";
}

View file

@ -1,7 +0,0 @@
ota.nelim.org {
tls matt@nelim.org {
dns cloudflare {env.CLOUDFLARE_API_TOKEN}
resolvers 1.0.0.1
}
reverse_proxy lineageOTA
}

View file

@ -1,74 +0,0 @@
{config, ...}: let
inherit (config.sops) secrets;
inherit (config.arion) rwDataDir;
rwPath = rwDataDir + "/lineageos";
in {
# FIXME: crashes when building
# TODO: make sure it works with latest arion custom module
arion.projects."lineageos" = {
"builder" = {
image = "lineageos4microg/docker-lineage-cicd";
container_name = "lineage_builder";
environment = {
BRANCH_NAME = "lineage-20.0";
DEVICE_LIST = "lemonadep";
SIGN_BUILDS = "true";
SIGNATURE_SPOOFING = "restricted";
WITH_GMS = "true";
ZIP_SUBDIR = "false";
OTA_URL = "https://ota.nelim.org/api";
CUSTOM_PACKAGES = "AuroraStore AvesLibre Droidify MJPdfReader Mull OpenCalc";
INCLUDE_PROPRIETARY = "false";
PARALLEL_JOBS = 6;
CLEAN_AFTER_BUILD = "false";
CCACHE_SIZE = "200G";
};
volumes = [
"${rwPath}/lineage/src:/srv/src"
"${rwPath}/lineage/zips:/srv/zips"
"${rwPath}/lineage/logs:/srv/logs"
"${rwPath}/lineage/cache:/srv/ccache"
"${rwPath}/lineage/keys:/srv/keys"
"${toString ./.}/manifests:/srv/local_manifests:ro"
"${toString ./.}/scripts:/srv/userscripts:ro"
"/etc/timezone:/etc/timezone:ro"
"/etc/localtime:/etc/localtime:ro"
];
};
"OTA-server" = {
container_name = "lineageOTA";
image = "docker.io/julianxhokaxhiu/lineageota";
volumes = [
"${rwPath}/lineage/zips:/var/www/html/builds/full:ro"
];
};
"caddy" = {
image = "quay.io/slothcroissant/caddy-cloudflaredns:latest";
ports = [
"80:80"
"443:443"
];
volumes = [
"${rwPath}/caddy/data:/data"
"${rwPath}/caddy/config:/config"
"${toString ./.}/Caddyfile:/etc/caddy/Caddyfile:ro"
];
env_file = [secrets.caddy-cloudflare.path];
environment = {
CLOUDFLARE_EMAIL = "matt@nelim.rg";
ACME_AGREE = "true";
};
};
};
}

View file

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="gitea" fetch="https://git.nelim.org/" />
<project name="matt1432/android_vendor_customs" path="vendor/alternatives" remote="gitea" revision="master" />
<project name="lineageos4microg/android_vendor_partner_gms" path="vendor/partner_gms" remote="github" revision="master" />
<project name="matt1432/android_vendor_mulchwebview" path="vendor/mulch" remote="gitea" revision="main" />
<project name="jgudec/android_vendor_lawnchair" path="vendor/lawnchair" remote="github" revision="13" />
</manifest>

View file

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="TheMuppets/proprietary_vendor_oneplus_lemonadep" path="vendor/oneplus/lemonadep" remote="github" revision="lineage-20" />
<project name="TheMuppets/proprietary_vendor_oneplus_sm8350-common" path="vendor/oneplus/sm8350-common" remote="github" revision="lineage-20" />
<project name="LineageOS/android_device_oneplus_lemonadep" path="device/oneplus/lemonadep" remote="github" revision="lineage-20" />
<project name="LineageOS/android_hardware_oplus" path="hardware/oplus" remote="github" revision="lineage-20" />
<project name="LineageOS/android_kernel_oneplus_sm8350" path="kernel/oneplus/sm8350" remote="github" revision="lineage-20" />
<project name="LineageOS/android_device_oneplus_sm8350-common" path="device/oneplus/sm8350-common" remote="github" revision="lineage-20" />
</manifest>

View file

@ -1,20 +0,0 @@
#!/usr/bin/env bash
## See here for AndroidAuto: https://github.com/sn-00-x/aa4mg
## add MulchWebView
sed -i "1s;^;\$(call inherit-product-if-exists, vendor/mulch/mulch.mk)\n\n;" "/srv/src/LINEAGE_20_0/vendor/lineage/config/common.mk"
## add lawnchair overlay to build
sed -i "1s;^;\$(call inherit-product-if-exists, vendor/lawnchair/lawnchair.mk)\n\n;" "/srv/src/LINEAGE_20_0/vendor/lineage/config/common.mk"
## remove Trebuchet
sed -i 's/overrides.*/overrides: ["Home", "Launcher2", "Launcher3", "Launcher3QuickStep", "ParanoidQuickStep", "PixelLauncher", "TrebuchetQuickStep", "TrebuchetOverlay"],/' "/srv/src/LINEAGE_20_0/vendor/lawnchair/Android.bp"
## only add needed packages from microg
echo "PRODUCT_PACKAGES += \\
GmsCore \\
GsfProxy \\
FakeStore \\
IchnaeaNlpBackend \\
NominatimGeocoderBackend" > "/srv/src/LINEAGE_20_0/vendor/partner_gms/products/gms.mk"

View file

@ -3,55 +3,28 @@
rwPath = rwDataDir + "/media/bazarr";
in {
arion.projects."bazarr" = {
"bazarr" = {
image = ./images/bazarr.nix;
restart = "always";
arion.projects."bazarr"."bazarr" = {
image = ./images/bazarr.nix;
restart = "always";
environment = {
PUID = "1000";
PGID = "1000";
TZ = "America/New_York";
};
extra_hosts = ["lan.nelim.org=10.0.0.130"];
ports = [
"6767:6767"
];
volumes = [
"${rwPath}/data:/config"
"/data:/data"
];
extraOptions = {
deploy.resources.limits.cpus = "0.5";
};
environment = {
PUID = "1000";
PGID = "1000";
TZ = "America/New_York";
};
"bazarr-fr" = {
image = ./images/bazarr.nix;
restart = "always";
extra_hosts = ["lan.nelim.org=10.0.0.130"];
ports = [
"6767:6767"
];
environment = {
PUID = "1000";
PGID = "1000";
TZ = "America/New_York";
};
volumes = [
"${rwPath}/data:/config"
"/data:/data"
];
extra_hosts = ["lan.nelim.org=10.0.0.130"];
ports = [
"6766:6767"
];
volumes = [
"${rwPath}/data-fr:/config"
"/data:/data"
];
extraOptions = {
deploy.resources.limits.cpus = "0.5";
};
extraOptions = {
deploy.resources.limits.cpus = "2";
};
};
}

View file

@ -1,8 +1,8 @@
pkgs:
pkgs.dockerTools.pullImage {
imageName = "ghcr.io/linuxserver/bazarr";
imageDigest = "sha256:91f7199dc40ccb1ef6667e3f834bbc2c64ade9a25ec3941f6d5d908bddcd145e";
sha256 = "18pbdw6ivchk2fwh8h7w91jl3zcr02zfqcf44adb0bvf1dziw30x";
imageDigest = "sha256:5da74fc1bbd5da69e3b4f9b2376f6ccfbe3b47f143e6eb5651ed37cc1d4412dd";
sha256 = "0k72wmxp4hfy9v1l6bjlrrhg6q5knlg6h48mvbw3y9sg2hy95kvp";
finalImageName = "ghcr.io/linuxserver/bazarr";
finalImageTag = "latest";
}

View file

@ -1,8 +1,8 @@
pkgs:
pkgs.dockerTools.pullImage {
imageName = "ghcr.io/linuxserver/calibre-web";
imageDigest = "sha256:584366bdcad9b3e9e1143d9ff5b012f684f32071d515f532953680af7fa43418";
sha256 = "1x3bkb2fv9vs30wy9b324wm956nv3zzh1wzn0z08ml4bpncyx61s";
imageDigest = "sha256:73aa52c663537a21d0b2e5315ba1080aeaecff1fa29dc7c020a4107f64e96490";
sha256 = "14mzhfq5pybv6dq4wvbgrk2iw3jq2hwyi095ymhb7qzwrvggmidx";
finalImageName = "ghcr.io/linuxserver/calibre-web";
finalImageTag = "latest";
}

View file

@ -1,8 +1,8 @@
pkgs:
pkgs.dockerTools.pullImage {
imageName = "ghcr.io/linuxserver/calibre";
imageDigest = "sha256:b0c387456c059ead0d4cf76861d633c66b34a6b888ec5834d353951f1bde1384";
sha256 = "1xaq1m8kcxvvi082lf8p6j48niqbivq61ddm3hilw4sjp9phq2a5";
imageDigest = "sha256:4e886252cad4a7796289a737afb4b47e9b547b7e2d2b9e35fd3153c8f97eefca";
sha256 = "10xan2lwgi77qgmq964j290xykn4pk75r397fqj5kkkbxkqbndgh";
finalImageName = "ghcr.io/linuxserver/calibre";
finalImageTag = "latest";
}

View file

@ -1,8 +1,8 @@
pkgs:
pkgs.dockerTools.pullImage {
imageName = "ghcr.io/flaresolverr/flaresolverr";
imageDigest = "sha256:088412db1051d04ab32c902266510011aec1dc9f7a3a3bda3f58b93186591347";
sha256 = "1x3s1qvzjz9kbxs829dyjp2m1fabmcvvi1n5z56j0dh1s0vcpb20";
imageDigest = "sha256:f104ee51e5124d83cf3be9b37480649355d223f7d8f9e453d0d5ef06c6e3b31b";
sha256 = "1ixsv5rv39bp7y1w2p0zjz9ivl82s3kndr5r39krgyknhzxavazc";
finalImageName = "ghcr.io/flaresolverr/flaresolverr";
finalImageTag = "latest";
}

View file

@ -1,8 +1,8 @@
pkgs:
pkgs.dockerTools.pullImage {
imageName = "ghcr.io/linuxserver/prowlarr";
imageDigest = "sha256:a77b1f5b22fed9fd726e49bfa6800897676a3eee030d5f194d7858cb858aa6d0";
sha256 = "1dbpm8cxqydm21ybkz8rvqyga4q7hg36w6fh8qdmgb4w4f3mv7pj";
imageDigest = "sha256:c43dc0311d4381395b60b3a6068e82226eddb213278bfe886bebabe67eb0f762";
sha256 = "0jnbf5vvjdyjl5mb76bg05hjqrabsvi4jczszi5sjx81fslz61qc";
finalImageName = "ghcr.io/linuxserver/prowlarr";
finalImageTag = "latest";
}

View file

@ -1,8 +1,8 @@
pkgs:
pkgs.dockerTools.pullImage {
imageName = "ghcr.io/linuxserver/radarr";
imageDigest = "sha256:1afb332d12843163750a40a4e03b0a91b03db8831f9455cbb6fc06ebddbfa16e";
sha256 = "13axfd2fwscy1s538hlhyvr8b1vrpw0akx3kwkmslhkc1fq62hq0";
imageDigest = "sha256:bf5aaf1577edbc3ba33db069676e7f8324eda33761ca59721942bc8ef56c015c";
sha256 = "08kdrxrvalvrb2g37fsn7zmhshfyc5n0k4h41wbdbyihs87ddvqr";
finalImageName = "ghcr.io/linuxserver/radarr";
finalImageTag = "latest";
}

View file

@ -1,8 +1,8 @@
pkgs:
pkgs.dockerTools.pullImage {
imageName = "ghcr.io/linuxserver/sabnzbd";
imageDigest = "sha256:5b8d05994df326db82f744469e4321d1b9f4feb52f5d217c06ad384d5c8377e2";
sha256 = "192f86wa3z8khr7fh7cnd1nin5ilmp3bhw5faygnv9fh58ywipmn";
imageDigest = "sha256:cd0e0de27454b040a0d55d1a06885dc78366435ce6794b82a6e4194b795e213a";
sha256 = "0gl8z845aih0kdqabdhhf8fvbldx121vqiind9lx6zjmxjrr22wk";
finalImageName = "ghcr.io/linuxserver/sabnzbd";
finalImageTag = "latest";
}

View file

@ -1,8 +1,8 @@
pkgs:
pkgs.dockerTools.pullImage {
imageName = "fallenbagel/jellyseerr";
imageDigest = "sha256:6dcdb5ba50913a14b2bd7df6388607ce175121f3416679c2746501256ac9f075";
sha256 = "0bcs4dfw6n78yp1br0z5ra6bf6f5hppxrs86b3b6pszzlp3ijjfw";
finalImageName = "fallenbagel/jellyseerr";
finalImageTag = "latest";
imageName = "ghcr.io/fallenbagel/jellyseerr";
imageDigest = "sha256:164365db8dc720291ba1eedab14e37025cd6b9e1ba45bebd06dac3bc15305f18";
sha256 = "0614m68qibqblqj0g48b0cny2irpgqkgs519isw6blxc209z0yan";
finalImageName = "ghcr.io/fallenbagel/jellyseerr";
finalImageTag = "develop";
}

View file

@ -1,8 +1,8 @@
pkgs:
pkgs.dockerTools.pullImage {
imageName = "ghcr.io/linuxserver/sonarr";
imageDigest = "sha256:f11f32d67bb7ef20333e22546b04a244e4e8172cb9744b026381cf898a1f2ece";
sha256 = "02mlalvi577ggb9ia2wggxnm8kwz92dsh9v98qq3y0zpsizyr4gn";
imageDigest = "sha256:8414846e440ca34c1cbed96daf7d5b3bcde20aab79761aaaaef496f24cec8d20";
sha256 = "02p0zjkcxcm091qdja465kibqp49q79ysrnxpbn0dh0zaff5i4bm";
finalImageName = "ghcr.io/linuxserver/sonarr";
finalImageTag = "latest";
}

View file

@ -1,8 +1,8 @@
pkgs:
pkgs.dockerTools.pullImage {
imageName = "craumix/jmusicbot";
imageDigest = "sha256:361930342510033352a489bcfa0e2eda86de5b33f4057cd4ce2c2cbe1616ea11";
sha256 = "0rb1nrjinpiyavybclghbizqzg2jy0yrldb0qanfnf9qyr2p7k08";
imageDigest = "sha256:560d380cbe9e90fd51e420eb060d5780dca07a5e04457b221f72e89210d23eb2";
sha256 = "0nncbacmwqm7qynzz6shmnibid9lfkaqyivh6nlkakpvhv78b46x";
finalImageName = "craumix/jmusicbot";
finalImageTag = "latest";
finalImageTag = "0.4.1";
}

View file

@ -1,16 +1,18 @@
{
config,
lib,
pkgs,
...
}: let
inherit (config.sops) secrets;
inherit (config.arion) rwDataDir;
inherit (lib) concatStrings;
mainContainerName = "app-server";
rwPath = rwDataDir + "/nextcloud";
in {
arion.projects."nextcloud" = {
"app-server" = {
"${mainContainerName}" = {
image = ./images/nextcloud.nix;
restart = "always";
@ -31,7 +33,6 @@ in {
POSTGRES_HOST = "nextcloud-db";
REDIS_HOST = "nextcloud-cache";
REDIS_HOST_PASSWORD = "password";
TRUSTED_PROXIES = "cloud.nelim.org";
NEXTCLOUD_INIT_HTACCESS = "true";
};
};
@ -58,12 +59,16 @@ in {
"/var/lib/onlyoffice"
];
# Fix mobile editing
entrypoint = ''bash -c "${let
filePath = "/var/www/onlyoffice/documentserver/web-apps/apps/*/mobile/dist/js/app.js";
func = "isSupportEditFeature=function()";
in
concatStrings [
# Fix proxies
''sed -i 's/"allowPrivateIPAddress": false,/"allowPrivateIPAddress": true,/' /etc/onlyoffice/documentserver/default.json''
''sed -i 's/"allowMetaIPAddress": false/"allowMetaIPAddress": true/' /etc/onlyoffice/documentserver/default.json''
# Fix mobile editing
"sed -i 's/${func}{return!1}/${func}{return 1}/g' ${filePath};"
"/app/ds/run-document-server.sh;"
"apt update;"
@ -103,4 +108,23 @@ in {
];
};
};
# Cron job
systemd.timers.nextcloud-cron = {
description = "Timer For Nextcloud Cron";
wantedBy = ["timers.target"];
timerConfig.OnBootSec = "5m";
timerConfig.OnUnitActiveSec = "5m";
};
systemd.services.nextcloud-cron = {
description = "Nextcloud Cron";
requires = ["arion-nextcloud.service"];
after = ["arion-nextcloud.service"];
serviceConfig = {
Type = "oneshot";
ExecStart = "${pkgs.docker}/bin/docker exec -u www-data ${mainContainerName} php -f /var/www/html/cron.php";
};
};
}

View file

@ -1,8 +1,8 @@
pkgs:
pkgs.dockerTools.pullImage {
imageName = "nextcloud";
imageDigest = "sha256:b08377deee6dbecf2d885c278ff711fb6e63d855d8fad4717056246b928cc9da";
sha256 = "027w6m8mrf1a92mmp68pgf93fmwgjgh5q007f6ff9nblacqdn4zz";
imageDigest = "sha256:d2dc74b2ce5fc6b06e1bf454320bb6388817757b41314a0214af4eac278a3c42";
sha256 = "0l5325msrbgzi5zhr9yjbvpnfn8i7p4nbiigbviriq1wsl24rkmw";
finalImageName = "nextcloud";
finalImageTag = "fpm";
finalImageTag = "29.0.3-fpm";
}

View file

@ -1,8 +1,8 @@
pkgs:
pkgs.dockerTools.pullImage {
imageName = "nginx";
imageDigest = "sha256:6db391d1c0cfb30588ba0bf72ea999404f2764febf0f1f196acd5867ac7efa7e";
sha256 = "0mhc4872dw11x8378mwqbvbwylwaxly8qj3vj121bf7qjln4ad6a";
imageDigest = "sha256:67682bda769fae1ccf5183192b8daf37b64cae99c6c3302650f6f8bf5f0f95df";
sha256 = "17l0zpn8f8s25dwqkbm9ak9xbkz5czpfsnwvhdm7ykq52kxpxs5x";
finalImageName = "nginx";
finalImageTag = "latest";
}

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