Compare commits
1 Commits
master
...
26068a9dc5
| Author | SHA1 | Date | |
|---|---|---|---|
| 26068a9dc5 |
43
AGENTS.md
43
AGENTS.md
@@ -4,8 +4,28 @@ This repository contains NixOS, nix-darwin, and Home Manager configurations in N
|
|||||||
|
|
||||||
## Build, Test, and Deployment Commands
|
## Build, Test, and Deployment Commands
|
||||||
|
|
||||||
### Build and Apply Configurations & Deploy to Remote Machines
|
### Build and Apply Configurations
|
||||||
Can use deploy for both local and remote hosts
|
|
||||||
|
**Linux (NixOS):**
|
||||||
|
```bash
|
||||||
|
just build # Build configuration
|
||||||
|
just install cores='32' # Apply with 32 cores
|
||||||
|
sudo nixos-rebuild test --fast --flake . # Test without activation
|
||||||
|
sudo nixos-rebuild switch --rollback --flake . # Rollback
|
||||||
|
```
|
||||||
|
|
||||||
|
**macOS (nix-darwin):**
|
||||||
|
```bash
|
||||||
|
just build # Build configuration
|
||||||
|
just install # Apply configuration
|
||||||
|
```
|
||||||
|
|
||||||
|
**Home Manager:**
|
||||||
|
```bash
|
||||||
|
just home
|
||||||
|
```
|
||||||
|
|
||||||
|
### Deploy to Remote Machines (deploy-rs)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
deploy -s .#ryu # Desktop (x86_64-linux)
|
deploy -s .#ryu # Desktop (x86_64-linux)
|
||||||
@@ -15,23 +35,6 @@ deploy -s .#kuro # MacBook M4 Pro (aarch64-darwin)
|
|||||||
deploy -s .#shiro # Mac Mini M4 (aarch64-darwin)
|
deploy -s .#shiro # Mac Mini M4 (aarch64-darwin)
|
||||||
```
|
```
|
||||||
|
|
||||||
**Linux (NixOS):**
|
|
||||||
```bash
|
|
||||||
deploy -s .#ryu
|
|
||||||
deploy -s .#tako
|
|
||||||
deploy -s .#tako --builders '' --cores 32 # with no other builders and 32 cores
|
|
||||||
deploy -s .#ryu --max-jobs 4 --cores 32 # use 32 cores and 4 parallel derivations
|
|
||||||
sudo nixos-rebuild test --fast --flake . # Test without activation
|
|
||||||
sudo nixos-rebuild switch --rollback --flake . # Rollback
|
|
||||||
```
|
|
||||||
|
|
||||||
**macOS (nix-darwin):**
|
|
||||||
```bash
|
|
||||||
deploy -s .#kuro
|
|
||||||
deploy -s .#shiro
|
|
||||||
sudo nix-darwin test --fast --flake .
|
|
||||||
```
|
|
||||||
|
|
||||||
### Validation and Formatting
|
### Validation and Formatting
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@@ -161,7 +164,7 @@ just add program myprogram # Creates home/programs/myprogram.nix and adds impor
|
|||||||
|
|
||||||
### Adding a new dns entry
|
### Adding a new dns entry
|
||||||
```bash
|
```bash
|
||||||
cfcli add --type A foobar.bazbar.biz 100.102.64.19
|
cfcli add --type A foobar.bazbar.biz 192.168.0.1
|
||||||
```
|
```
|
||||||
|
|
||||||
### Creating a Module
|
### Creating a Module
|
||||||
|
|||||||
@@ -22,7 +22,6 @@
|
|||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
# "mirai:bcVPoFGBZ0i7JAKMXIqLj2GY3CulLC4kP7rQyqes1RM="
|
# "mirai:bcVPoFGBZ0i7JAKMXIqLj2GY3CulLC4kP7rQyqes1RM="
|
||||||
];
|
];
|
||||||
download-buffer-size = 524288000;
|
|
||||||
};
|
};
|
||||||
extraOptions = ''
|
extraOptions = ''
|
||||||
build-users-group = nixbld
|
build-users-group = nixbld
|
||||||
|
|||||||
@@ -6,7 +6,10 @@
|
|||||||
casks = [
|
casks = [
|
||||||
"1password"
|
"1password"
|
||||||
"lunar"
|
"lunar"
|
||||||
|
"orcaslicer"
|
||||||
"raycast"
|
"raycast"
|
||||||
|
"zed"
|
||||||
|
"zen"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,12 +2,15 @@
|
|||||||
homebrew = {
|
homebrew = {
|
||||||
enable = true;
|
enable = true;
|
||||||
brews = [
|
brews = [
|
||||||
|
"docker-compose"
|
||||||
];
|
];
|
||||||
casks = [
|
casks = [
|
||||||
"1password"
|
"1password"
|
||||||
|
"docker"
|
||||||
"raycast"
|
"raycast"
|
||||||
"lunar"
|
"lunar"
|
||||||
"orcaslicer"
|
"orcaslicer"
|
||||||
|
"zed"
|
||||||
"zen"
|
"zen"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,18 +1,15 @@
|
|||||||
{...}: {
|
{...}: {
|
||||||
imports = [
|
imports = [
|
||||||
# ../../../modules/darwin/caddy
|
# ../../../modules/darwin/caddy
|
||||||
|
|
||||||
# ./aerospace.nix
|
|
||||||
# ./caddy.nix
|
|
||||||
# ./colima.nix
|
|
||||||
# ./lmstudio.nix
|
|
||||||
# ./zerotier.nix
|
|
||||||
|
|
||||||
./autossh.nix
|
|
||||||
./skhd.nix
|
|
||||||
./sops.nix
|
|
||||||
./sunshine.nix
|
|
||||||
./tailscale.nix
|
|
||||||
./yabai.nix
|
./yabai.nix
|
||||||
|
./skhd.nix
|
||||||
|
./tailscale.nix
|
||||||
|
./autossh.nix
|
||||||
|
# ./caddy.nix
|
||||||
|
./sops.nix
|
||||||
|
# ./lmstudio.nix
|
||||||
|
# ./colima.nix
|
||||||
|
# ./zerotier.nix
|
||||||
|
# ./aerospace.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
homebrew = {
|
|
||||||
taps = [
|
|
||||||
"lizardbyte/homebrew"
|
|
||||||
];
|
|
||||||
brews = [
|
|
||||||
"lizardbyte/homebrew/sunshine-beta"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -5,6 +5,14 @@
|
|||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
nodes = {
|
nodes = {
|
||||||
|
mirai = {
|
||||||
|
hostname = "mirai.darksailor.dev";
|
||||||
|
profiles.system = {
|
||||||
|
sshUser = "fs0c131y";
|
||||||
|
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.mirai;
|
||||||
|
user = "root";
|
||||||
|
};
|
||||||
|
};
|
||||||
tsuba = {
|
tsuba = {
|
||||||
hostname = "tsuba.darksailor.dev";
|
hostname = "tsuba.darksailor.dev";
|
||||||
profiles.system = {
|
profiles.system = {
|
||||||
|
|||||||
2323
flake.lock
generated
2323
flake.lock
generated
File diff suppressed because it is too large
Load Diff
126
flake.nix
126
flake.nix
@@ -17,6 +17,10 @@
|
|||||||
url = "github:nix-community/stylix";
|
url = "github:nix-community/stylix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
stylix-stable = {
|
||||||
|
url = "github:nix-community/stylix/release-25.11";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs-stable";
|
||||||
|
};
|
||||||
home-manager-stable = {
|
home-manager-stable = {
|
||||||
url = "github:nix-community/home-manager/release-25.11";
|
url = "github:nix-community/home-manager/release-25.11";
|
||||||
inputs.nixpkgs.follows = "nixpkgs-stable";
|
inputs.nixpkgs.follows = "nixpkgs-stable";
|
||||||
@@ -47,10 +51,26 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
nur.url = "github:nix-community/nur";
|
nur.url = "github:nix-community/nur";
|
||||||
|
hyprland = {
|
||||||
|
url = "github:hyprwm/Hyprland";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
hyprlock = {
|
||||||
|
url = "github:hyprwm/hyprlock";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
zjstatus = {
|
zjstatus = {
|
||||||
url = "github:dj95/zjstatus";
|
url = "github:dj95/zjstatus";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
rust-overlay = {
|
||||||
|
url = "github:oxalica/rust-overlay";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
openapi-tui = {
|
||||||
|
url = "github:zaghaghi/openapi-tui";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
musnix = {
|
musnix = {
|
||||||
url = "github:musnix/musnix";
|
url = "github:musnix/musnix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
@@ -63,10 +83,26 @@
|
|||||||
url = "github:Mic92/sops-nix";
|
url = "github:Mic92/sops-nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
csshacks = {
|
||||||
|
url = "github:MrOtherGuy/firefox-csshacks";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
nno = {
|
nno = {
|
||||||
url = "github:nvim-neorg/nixpkgs-neorg-overlay";
|
url = "github:nvim-neorg/nixpkgs-neorg-overlay";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
pets = {
|
||||||
|
url = "github:giusgad/pets.nvim";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
rest-nvim = {
|
||||||
|
url = "github:rest-nvim/rest.nvim";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
neogit = {
|
||||||
|
url = "github:NeogitOrg/neogit/nightly";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
d2 = {
|
d2 = {
|
||||||
url = "github:terrastruct/d2-vim";
|
url = "github:terrastruct/d2-vim";
|
||||||
flake = false;
|
flake = false;
|
||||||
@@ -91,6 +127,25 @@
|
|||||||
url = "github:pest-parser/tree-sitter-pest";
|
url = "github:pest-parser/tree-sitter-pest";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
navigator = {
|
||||||
|
url = "github:ray-x/navigator.lua";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
guihua = {
|
||||||
|
url = "github:ray-x/guihua.lua";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
ghostty = {
|
||||||
|
url = "github:ghostty-org/ghostty";
|
||||||
|
};
|
||||||
|
typr = {
|
||||||
|
url = "github:nvzone/typr";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
volt = {
|
||||||
|
url = "github:nvzone/volt";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
arion = {
|
arion = {
|
||||||
url = "github:hercules-ci/arion";
|
url = "github:hercules-ci/arion";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
@@ -100,9 +155,9 @@
|
|||||||
};
|
};
|
||||||
zen-browser = {
|
zen-browser = {
|
||||||
url = "github:0xc000022070/zen-browser-flake";
|
url = "github:0xc000022070/zen-browser-flake";
|
||||||
# IMPORTANT: To ensure compatibility with the latest Firefox version, use nixpkgs-unstable.
|
# IMPORTANT: we're using "libgbm" and is only available in unstable so ensure
|
||||||
|
# to have it up-to-date or simply don't specify the nixpkgs input
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
inputs.home-manager.follows = "home-manager";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
anyrun = {
|
anyrun = {
|
||||||
@@ -114,10 +169,18 @@
|
|||||||
url = "github:uttarayan21/anyrun-hyprwin";
|
url = "github:uttarayan21/anyrun-hyprwin";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
anyrun-rink = {
|
||||||
|
url = "github:uttarayan21/anyrun-rink";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
onepassword-shell-plugins = {
|
onepassword-shell-plugins = {
|
||||||
url = "github:1Password/shell-plugins";
|
url = "github:1Password/shell-plugins";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
zeronsd = {
|
||||||
|
url = "github:uttarayan21/zeronsd";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
tmux-float = {
|
tmux-float = {
|
||||||
url = "github:uttarayan21/tmux-float";
|
url = "github:uttarayan21/tmux-float";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
@@ -136,6 +199,24 @@
|
|||||||
# url = "path:/home/servius/Projects/ALVR";
|
# url = "path:/home/servius/Projects/ALVR";
|
||||||
# inputs.nixpkgs.follows = "nixpkgs";
|
# inputs.nixpkgs.follows = "nixpkgs";
|
||||||
# };
|
# };
|
||||||
|
ik_llama = {
|
||||||
|
url = "github:ikawrakow/ik_llama.cpp?submodules=1";
|
||||||
|
# submodules = true;
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
llama-cpp = {
|
||||||
|
# url = "https://github.com/ggml-org/llama.cpp";
|
||||||
|
url = "github:ggml-org/llama.cpp/b6178?submodules=1";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
yabai = {
|
||||||
|
url = "github:koekeishiya/yabai";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
nix-auth = {
|
||||||
|
url = "github:numtide/nix-auth";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
nixpkgs-xr = {
|
nixpkgs-xr = {
|
||||||
url = "github:nix-community/nixpkgs-xr";
|
url = "github:nix-community/nixpkgs-xr";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
@@ -160,33 +241,16 @@
|
|||||||
url = "github:vicinaehq/vicinae";
|
url = "github:vicinaehq/vicinae";
|
||||||
# inputs.nixpkgs.follows = "nixpkgs";
|
# inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
wivrn = {
|
||||||
|
url = "github:uttarayan21/wivrn?submodules=1";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
eilmeldung = {
|
eilmeldung = {
|
||||||
url = "github:christo-auer/eilmeldung";
|
url = "github:christo-auer/eilmeldung";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
servius-website = {
|
hytale-launcher = {
|
||||||
url = "git+https://git.darksailor.dev/servius/servius.neocities.org";
|
url = "github:JPyke3/hytale-launcher-nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
nixify = {
|
|
||||||
url = "github:uttarayan21/nixify";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
tangled-core = {
|
|
||||||
url = "git+https://tangled.org/tangled.org/core";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
hyprland = {
|
|
||||||
url = "github:hyprwm/Hyprland";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
iamb = {
|
|
||||||
url = "github:ulyssa/iamb/latest";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
cinny = {
|
|
||||||
url = "github:cinnyapp/cinny/dev";
|
|
||||||
flake = false;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -365,20 +429,16 @@
|
|||||||
};
|
};
|
||||||
config.allowUnfree = true;
|
config.allowUnfree = true;
|
||||||
};
|
};
|
||||||
cratesNix = inputs.crates-nix.mkLib {inherit pkgs;};
|
|
||||||
in {
|
in {
|
||||||
|
# packages = rec {
|
||||||
|
# default = neovim;
|
||||||
|
# neovim = pkgs.nixvim.makeNixvim (pkgs.callPackage ./neovim);
|
||||||
|
# };
|
||||||
devShells = {
|
devShells = {
|
||||||
default = pkgs.mkShell {
|
default = pkgs.mkShell {
|
||||||
packages = with pkgs; [sops just openssl ast-grep];
|
packages = with pkgs; [sops just openssl ast-grep];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
packages = {
|
|
||||||
default = cratesNix.buildCrate "ironclaw" {
|
|
||||||
nativeBuildInputs = [pkgs.pkg-config];
|
|
||||||
buildInputs = [pkgs.openssl];
|
|
||||||
doCheck = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,65 +5,43 @@
|
|||||||
}: {
|
}: {
|
||||||
sops = {
|
sops = {
|
||||||
secrets."accounts/mail/fastmail" = {};
|
secrets."accounts/mail/fastmail" = {};
|
||||||
secrets."accounts/calendar/fastmail" = {};
|
|
||||||
};
|
};
|
||||||
accounts = {
|
accounts.email = {
|
||||||
email = {
|
maildirBasePath = "Mail";
|
||||||
maildirBasePath = "Mail";
|
accounts = {
|
||||||
accounts = {
|
fastmail = rec {
|
||||||
fastmail = rec {
|
maildir = {
|
||||||
maildir = {
|
path = "fastmail";
|
||||||
path = "fastmail";
|
|
||||||
};
|
|
||||||
primary = true;
|
|
||||||
address = "email@uttarayan.me";
|
|
||||||
aliases = ["servius@darksailor.dev"];
|
|
||||||
userName = address;
|
|
||||||
realName = "Uttarayan Mondal";
|
|
||||||
imap = {
|
|
||||||
host = "imap.fastmail.com";
|
|
||||||
port = 993;
|
|
||||||
tls.enable = true;
|
|
||||||
# authentication = "login";
|
|
||||||
};
|
|
||||||
smtp = {
|
|
||||||
host = "smtp.fastmail.com";
|
|
||||||
port = 465;
|
|
||||||
tls.enable = true;
|
|
||||||
};
|
|
||||||
passwordCommand = ["cat" "${config.sops.secrets."accounts/mail/fastmail".path}"];
|
|
||||||
mbsync = {
|
|
||||||
enable = true;
|
|
||||||
create = "both";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
primary = true;
|
||||||
};
|
address = "email@uttarayan.me";
|
||||||
calendar = {
|
aliases = ["servius@darksailor.dev"];
|
||||||
basePath = "Calendar";
|
userName = address;
|
||||||
accounts = {
|
realName = "Uttarayan Mondal";
|
||||||
fastmail = {
|
imap = {
|
||||||
remote = {
|
host = "imap.fastmail.com";
|
||||||
url = "https://caldav.fastmail.com/dav/calendars/user/email@uttarayan.me";
|
port = 993;
|
||||||
userName = "email@uttarayan.me";
|
tls.enable = true;
|
||||||
passwordCommand = ["cat" "${config.sops.secrets."accounts/calendar/fastmail".path}"];
|
# authentication = "login";
|
||||||
type = "caldav";
|
};
|
||||||
};
|
smtp = {
|
||||||
khal = {
|
host = "smtp.fastmail.com";
|
||||||
enable = true;
|
port = 465;
|
||||||
addresses = ["email@uttarayan.me"];
|
tls.enable = true;
|
||||||
type = "discover";
|
};
|
||||||
};
|
imapnotify = {
|
||||||
vdirsyncer = {
|
enable = true;
|
||||||
enable = true;
|
};
|
||||||
conflictResolution = "remote wins";
|
passwordCommand = ["cat" "${config.sops.secrets."accounts/mail/fastmail".path}"];
|
||||||
collections = ["from a"];
|
mbsync = {
|
||||||
metadata = ["color" "displayname"];
|
enable = true;
|
||||||
};
|
create = "both";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
programs.mbsync.enable = true;
|
||||||
|
services.mbsync.enable = pkgs.stdenv.isLinux;
|
||||||
# accounts.email.accounts.<name>.mbsync.create
|
# accounts.email.accounts.<name>.mbsync.create
|
||||||
# services.mbsync.enable = true;
|
# services.mbsync.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
home.packages = lib.optionals pkgs.stdenv.isLinux [
|
|
||||||
pkgs.affine
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{pkgs, ...}: {home.packages = [pkgs.cinny-desktop];}
|
|
||||||
@@ -7,47 +7,42 @@ lib.optionalAttrs device.hasGui {
|
|||||||
imports = [
|
imports = [
|
||||||
# ./audacity.nix
|
# ./audacity.nix
|
||||||
# ./bottles.nix
|
# ./bottles.nix
|
||||||
# ./cinny.nix
|
|
||||||
# ./cursor.nix
|
# ./cursor.nix
|
||||||
# ./gimp.nix
|
# ./gimp.nix
|
||||||
# ./guitarix.nix
|
# ./guitarix.nix
|
||||||
# ./ida.nix
|
# ./ida.nix
|
||||||
# ./jellyflix.nix
|
# ./jellyflix.nix
|
||||||
# ./kicad.nix
|
# ./kicad.nix
|
||||||
# ./lmstudio.nix
|
|
||||||
# ./neovide.nix
|
# ./neovide.nix
|
||||||
# ./openscad.nix
|
# ./openscad.nix
|
||||||
# ./orcaslicer.nix
|
|
||||||
# ./pcsx2.nix
|
# ./pcsx2.nix
|
||||||
# ./prismlauncher.nix
|
|
||||||
# ./rpcs3.nix
|
# ./rpcs3.nix
|
||||||
# ./shadps4.nix
|
|
||||||
# ./thunderbird.nix
|
# ./thunderbird.nix
|
||||||
# ./tsukimi.nix
|
# ./tsukimi.nix
|
||||||
# ./vial.nix
|
# ./vial.nix
|
||||||
# ./vlc.nix
|
|
||||||
# ./vscode.nix
|
# ./vscode.nix
|
||||||
# ./zen.nix
|
|
||||||
|
|
||||||
./moonlight.nix
|
|
||||||
# ./zed.nix
|
|
||||||
|
|
||||||
./affine.nix
|
|
||||||
./blueman.nix
|
./blueman.nix
|
||||||
./chromium.nix
|
./chromium.nix
|
||||||
# ./discord.nix
|
./discord.nix
|
||||||
./firefox.nix
|
./firefox.nix
|
||||||
./ghostty.nix
|
./ghostty.nix
|
||||||
./hyprpicker.nix
|
./hyprpicker.nix
|
||||||
./kitty.nix
|
./kitty.nix
|
||||||
./matrix.nix
|
./lmstudio.nix
|
||||||
./mpv.nix
|
./mpv.nix
|
||||||
./nextcloud.nix
|
./nextcloud.nix
|
||||||
|
./matrix.nix
|
||||||
./obs-studio.nix
|
./obs-studio.nix
|
||||||
|
./orcaslicer.nix
|
||||||
|
./prismlauncher.nix
|
||||||
|
./shadps4.nix
|
||||||
./slack.nix
|
./slack.nix
|
||||||
./vicinae.nix
|
./vicinae.nix
|
||||||
|
./vlc.nix
|
||||||
./wezterm.nix
|
./wezterm.nix
|
||||||
./zathura.nix
|
./zathura.nix
|
||||||
|
./zed.nix
|
||||||
./zen.nix
|
./zen.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,13 +3,13 @@
|
|||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
# home.packages = lib.optionals pkgs.stdenv.isLinux [
|
home.packages = lib.optionals pkgs.stdenv.isLinux [
|
||||||
# (pkgs.discord.override {
|
(pkgs.discord.override {
|
||||||
# withOpenASAR = true;
|
withOpenASAR = true;
|
||||||
# withVencord = true;
|
withVencord = true;
|
||||||
# })
|
})
|
||||||
# # pkgs.vesktop
|
# pkgs.vesktop
|
||||||
# # pkgs.discord-canary
|
# pkgs.discord-canary
|
||||||
# # pkgs.discord-ptb
|
# pkgs.discord-ptb
|
||||||
# ];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,8 +8,11 @@
|
|||||||
stylix.targets.kitty.enable = false;
|
stylix.targets.kitty.enable = false;
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
# enable = false;
|
||||||
font = {
|
font = {
|
||||||
|
# name = "FiraCode Nerd Font Mono";
|
||||||
name = "Hasklug Nerd Font Mono";
|
name = "Hasklug Nerd Font Mono";
|
||||||
|
# name = "Monaspace Krypton Var Light";
|
||||||
size = lib.mkForce 13;
|
size = lib.mkForce 13;
|
||||||
};
|
};
|
||||||
settings = {
|
settings = {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
}: {
|
}: {
|
||||||
home.packages = lib.optionals (device.is "ryu") [
|
home.packages = lib.optionals (device.is "ryu") [
|
||||||
pkgs.fluffychat
|
pkgs.fluffychat
|
||||||
pkgs.element-desktop
|
pkgs.fractal
|
||||||
# pkgs.quaternion
|
# pkgs.quaternion
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
device,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
home.packages = lib.optionals (device.name == "ryu") [pkgs.moonlight-qt];
|
|
||||||
}
|
|
||||||
@@ -8,20 +8,20 @@
|
|||||||
loop-playlist = "inf";
|
loop-playlist = "inf";
|
||||||
};
|
};
|
||||||
profiles = {
|
profiles = {
|
||||||
# hdr = {
|
hdr = {
|
||||||
# vo = "gpu-next";
|
vo = "gpu-next";
|
||||||
# gpu-api = "vulkan";
|
gpu-api = "vulkan";
|
||||||
# hdr-compute-peak = "yes";
|
hdr-compute-peak = "yes";
|
||||||
# hdr-peak-detect = "yes";
|
hdr-peak-detect = "yes";
|
||||||
# target-peak = 400;
|
target-peak = 400;
|
||||||
# target-prim = "bt.2020";
|
target-prim = "bt.2020";
|
||||||
# target-trc = "pq";
|
target-trc = "pq";
|
||||||
# inverse-tone-mapping = "yes";
|
inverse-tone-mapping = "yes";
|
||||||
# tone-mapping = "spline";
|
tone-mapping = "spline";
|
||||||
# tone-mapping-mode = "auto";
|
tone-mapping-mode = "auto";
|
||||||
# target-colorspace-hint = "auto";
|
target-colorspace-hint = "auto";
|
||||||
# gamut-mapping = "desaturate";
|
gamut-mapping = "desaturate";
|
||||||
# };
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,9 +12,7 @@
|
|||||||
autoStart = true;
|
autoStart = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
home.packages = with pkgs;
|
home.packages = with pkgs; [
|
||||||
lib.optionals (device.is "ryu") [
|
pulseaudio
|
||||||
# pulseaudio
|
];
|
||||||
playerctl
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,151 +2,26 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
device,
|
device,
|
||||||
config,
|
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
inputs.zen-browser.homeModules.beta
|
inputs.zen-browser.homeModules.beta
|
||||||
];
|
];
|
||||||
programs.zen-browser.darwinDefaultsId = "org.mozilla.firefox.plist";
|
|
||||||
programs.zen-browser = {
|
programs.zen-browser = {
|
||||||
enable = true;
|
enable = device.isLinux;
|
||||||
profiles.default = rec {
|
profiles.default = {
|
||||||
containersForce = true;
|
|
||||||
containers = {
|
|
||||||
Personal = {
|
|
||||||
color = "purple";
|
|
||||||
icon = "fingerprint";
|
|
||||||
id = 1;
|
|
||||||
};
|
|
||||||
Work = {
|
|
||||||
color = "blue";
|
|
||||||
icon = "briefcase";
|
|
||||||
id = 2;
|
|
||||||
};
|
|
||||||
Shopping = {
|
|
||||||
color = "yellow";
|
|
||||||
icon = "dollar";
|
|
||||||
id = 3;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
spacesForce = true;
|
|
||||||
spaces = let
|
|
||||||
containers = config.programs.zen-browser.profiles."default".containers;
|
|
||||||
in {
|
|
||||||
"Personal" = {
|
|
||||||
id = "0b4dab19-9b39-4f2c-8ad1-0268d9fa2e49";
|
|
||||||
icon = "👤";
|
|
||||||
container = containers."Personal".id;
|
|
||||||
position = 1000;
|
|
||||||
};
|
|
||||||
"Work" = {
|
|
||||||
id = "8f687163-6b15-4c3c-885f-8ffe465b386f";
|
|
||||||
icon = "💼";
|
|
||||||
container = containers."Work".id;
|
|
||||||
position = 2000;
|
|
||||||
};
|
|
||||||
"Shopping" = {
|
|
||||||
id = "74f46a1b-cdd7-408c-98d7-382a2b11bd51";
|
|
||||||
icon = "💸";
|
|
||||||
container = containers."Shopping".id;
|
|
||||||
position = 3000;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
|
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||||
|
privacy-badger
|
||||||
|
violentmonkey
|
||||||
|
tridactyl
|
||||||
clearurls
|
clearurls
|
||||||
floccus
|
onepassword-password-manager
|
||||||
|
ublock-origin
|
||||||
i-dont-care-about-cookies
|
i-dont-care-about-cookies
|
||||||
keepa
|
keepa
|
||||||
onepassword-password-manager
|
|
||||||
privacy-badger
|
|
||||||
sponsorblock
|
sponsorblock
|
||||||
tridactyl
|
floccus
|
||||||
ublock-origin
|
|
||||||
violentmonkey
|
|
||||||
];
|
];
|
||||||
search = {
|
|
||||||
force = true;
|
|
||||||
default = "ddg";
|
|
||||||
engines = {
|
|
||||||
mynixos = {
|
|
||||||
name = "My NixOS";
|
|
||||||
urls = [
|
|
||||||
{
|
|
||||||
template = "https://mynixos.com/search?q={searchTerms}";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
|
||||||
definedAliases = ["@nx"]; # Keep in mind that aliases defined here only work if they start with "@"
|
|
||||||
};
|
|
||||||
hm = {
|
|
||||||
name = "Home Manager Options";
|
|
||||||
urls = [
|
|
||||||
{
|
|
||||||
template = "https://home-manager-options.extranix.com/?query={searchTerms}&release=master";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
definedAliases = ["@hm"];
|
|
||||||
};
|
|
||||||
nv = {
|
|
||||||
name = "NixVim";
|
|
||||||
urls = [
|
|
||||||
{
|
|
||||||
template = "https://nix-community.github.io/nixvim/search";
|
|
||||||
params = [
|
|
||||||
{
|
|
||||||
name = "query";
|
|
||||||
value = "{searchTerms}";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
definedAliases = ["@nv"];
|
|
||||||
};
|
|
||||||
lib = {
|
|
||||||
name = "Lib.rs";
|
|
||||||
urls = [
|
|
||||||
{
|
|
||||||
template = "https://lib.rs/search";
|
|
||||||
params = [
|
|
||||||
{
|
|
||||||
name = "q";
|
|
||||||
value = "{searchTerms}";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
definedAliases = ["@lib"];
|
|
||||||
};
|
|
||||||
searchix = {
|
|
||||||
name = "Searchix";
|
|
||||||
urls = [
|
|
||||||
{
|
|
||||||
template = "https://searchix.ovh/?query={searchTerms}";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
definedAliases = ["sx"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
pins = {
|
|
||||||
dashboard = {
|
|
||||||
id = "d163f090-67b7-47d2-8f76-7d638b9f742b";
|
|
||||||
workspace = spaces.Personal.id;
|
|
||||||
url = "https://dashboard.darksailor.dev";
|
|
||||||
isEssential = true;
|
|
||||||
position = 101;
|
|
||||||
};
|
|
||||||
github = {
|
|
||||||
id = "db2f3e36-9279-4b8d-8b5d-52a90f34ea0d";
|
|
||||||
workspace = spaces.Personal.id;
|
|
||||||
url = "https://github.com";
|
|
||||||
isEssential = true;
|
|
||||||
position = 102;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
pinsForce = true;
|
|
||||||
};
|
};
|
||||||
nativeMessagingHosts = [pkgs.tridactyl-native];
|
nativeMessagingHosts = [pkgs.tridactyl-native];
|
||||||
policies = {
|
policies = {
|
||||||
|
|||||||
@@ -27,7 +27,6 @@
|
|||||||
home-manager = {
|
home-manager = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
man.generateCaches = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
fonts.fontconfig.enable = true;
|
fonts.fontconfig.enable = true;
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
programs.khal = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
default = {
|
|
||||||
# default_calendar = "fastmail";
|
|
||||||
};
|
|
||||||
view = {
|
|
||||||
agenda_event_format = "{calendar-color}{cancelled}{start-end-time-style} {title}{repeat-symbol}{reset}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
programs.qcal.enable = true;
|
|
||||||
programs.vdirsyncer.enable = true;
|
|
||||||
services.vdirsyncer.enable = true;
|
|
||||||
accounts.calendar.accounts.fastmail.qcal.enable = true;
|
|
||||||
}
|
|
||||||
@@ -1,8 +1,13 @@
|
|||||||
{...}: {
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
device,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
programs.
|
programs.
|
||||||
carapace = {
|
carapace = {
|
||||||
enable = false;
|
enable = false;
|
||||||
enableFishIntegration = false;
|
enableFishIntegration = true;
|
||||||
enableNushellIntegration = true;
|
enableNushellIntegration = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,9 +4,7 @@
|
|||||||
cratesNix,
|
cratesNix,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cargo-credential-1password = cratesNix.buildCrate "cargo-credential-1password" {
|
cargo-credential-1password = cratesNix.buildCrate "cargo-credential-1password" {};
|
||||||
meta.mainProgram = "cargo-credential-1password";
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
lib.mkIf (!device.isServer) {
|
lib.mkIf (!device.isServer) {
|
||||||
home.file.".cargo/config.toml".text =
|
home.file.".cargo/config.toml".text =
|
||||||
@@ -15,7 +13,6 @@ in
|
|||||||
[alias]
|
[alias]
|
||||||
lldb = ["with", "rust-lldb", "--"]
|
lldb = ["with", "rust-lldb", "--"]
|
||||||
t = ["nextest", "run"]
|
t = ["nextest", "run"]
|
||||||
pkgs = ["metadata", "--no-deps", "--format-version", "1"]
|
|
||||||
|
|
||||||
[net]
|
[net]
|
||||||
git-fetch-with-cli = true
|
git-fetch-with-cli = true
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
{pkgs, ...}: {home.packages = [pkgs.codex];}
|
|
||||||
@@ -7,7 +7,6 @@
|
|||||||
# ./bluetui.nix
|
# ./bluetui.nix
|
||||||
# ./goread.nix
|
# ./goread.nix
|
||||||
# ./helix.nix
|
# ./helix.nix
|
||||||
# ./iamb.nix
|
|
||||||
# ./magika.nix
|
# ./magika.nix
|
||||||
# ./mpd.nix
|
# ./mpd.nix
|
||||||
# ./mpris-scrobbler.nix
|
# ./mpris-scrobbler.nix
|
||||||
@@ -20,7 +19,6 @@
|
|||||||
# ./template.nix
|
# ./template.nix
|
||||||
# ./tuifeed.nix
|
# ./tuifeed.nix
|
||||||
# ./xh.nix
|
# ./xh.nix
|
||||||
# ./yt-dlp.nix
|
|
||||||
# ./zellij.nix
|
# ./zellij.nix
|
||||||
|
|
||||||
../../modules
|
../../modules
|
||||||
@@ -30,7 +28,6 @@
|
|||||||
./alejandra.nix
|
./alejandra.nix
|
||||||
./aria2.nix
|
./aria2.nix
|
||||||
./ast-grep.nix
|
./ast-grep.nix
|
||||||
./attic.nix
|
|
||||||
./atuin.nix
|
./atuin.nix
|
||||||
./bat.nix
|
./bat.nix
|
||||||
./binwalk.nix
|
./binwalk.nix
|
||||||
@@ -38,11 +35,8 @@
|
|||||||
./bottom.nix
|
./bottom.nix
|
||||||
./btop.nix
|
./btop.nix
|
||||||
./cachix.nix
|
./cachix.nix
|
||||||
./calendar.nix
|
|
||||||
./carapace.nix
|
./carapace.nix
|
||||||
./cargo.nix
|
./cargo.nix
|
||||||
./cfcli.nix
|
|
||||||
./codex.nix
|
|
||||||
./ddcbacklight.nix
|
./ddcbacklight.nix
|
||||||
./deploy-rs.nix
|
./deploy-rs.nix
|
||||||
./direnv.nix
|
./direnv.nix
|
||||||
@@ -61,13 +55,11 @@
|
|||||||
./himalaya.nix
|
./himalaya.nix
|
||||||
./hyprshade.nix
|
./hyprshade.nix
|
||||||
./jq.nix
|
./jq.nix
|
||||||
./jujutsu.nix
|
|
||||||
./just.nix
|
./just.nix
|
||||||
./ncpamixer.nix
|
./ncpamixer.nix
|
||||||
./neomutt.nix
|
./neomutt.nix
|
||||||
./neovim.nix
|
./neovim.nix
|
||||||
./nix-index.nix
|
./nix-index.nix
|
||||||
./nixify.nix
|
|
||||||
./nushell.nix
|
./nushell.nix
|
||||||
./omnix.nix
|
./omnix.nix
|
||||||
./opencode.nix
|
./opencode.nix
|
||||||
@@ -84,7 +76,10 @@
|
|||||||
./tmux.nix
|
./tmux.nix
|
||||||
./uv.nix
|
./uv.nix
|
||||||
./yazi.nix
|
./yazi.nix
|
||||||
./yq.nix
|
./yt-dlp.nix
|
||||||
./zoxide.nix
|
./zoxide.nix
|
||||||
|
./attic.nix
|
||||||
|
./cfcli.nix
|
||||||
|
./jujutsu.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1 @@
|
|||||||
{
|
{pkgs, ...}: {home.packages = [pkgs.deploy-rs.deploy-rs];}
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
device,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
home.packages = lib.optionals (device.is "ryu") [pkgs.deploy-rs.deploy-rs];
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -23,7 +23,6 @@
|
|||||||
j = "just --choose";
|
j = "just --choose";
|
||||||
# t = "zellij a -c --index 0";
|
# t = "zellij a -c --index 0";
|
||||||
t = "tmux";
|
t = "tmux";
|
||||||
neorg = "nvim -c ':Neorg index'";
|
|
||||||
};
|
};
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
g = "git";
|
g = "git";
|
||||||
@@ -34,7 +33,7 @@
|
|||||||
'';
|
'';
|
||||||
# ${pkgs.spotify-player}/bin/spotify_player generate fish | source
|
# ${pkgs.spotify-player}/bin/spotify_player generate fish | source
|
||||||
interactiveShellInit = ''
|
interactiveShellInit = ''
|
||||||
if test -n "$TMUX"; ${lib.getExe pkgs.fastfetch} --logo-type kitty-icat; else ${lib.getExe pkgs.fastfetch}; end
|
if test -n "$TMUX"; ${lib.getExe pkgs.fastfetch} --logo-type sixel; else ${lib.getExe pkgs.fastfetch}; end
|
||||||
# ${pkgs.nb}/bin/nb todo undone
|
# ${pkgs.nb}/bin/nb todo undone
|
||||||
${lib.optionalString (device.isLinux && !device.isNix) "source /etc/profile.d/nix-daemon.fish"}
|
${lib.optionalString (device.isLinux && !device.isNix) "source /etc/profile.d/nix-daemon.fish"}
|
||||||
${lib.optionalString (device.is "ryu") ''
|
${lib.optionalString (device.is "ryu") ''
|
||||||
@@ -44,16 +43,6 @@
|
|||||||
''}
|
''}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
home.shell.enableFishIntegration = true;
|
|
||||||
|
|
||||||
# programs.bash = {
|
|
||||||
# enable = true;
|
|
||||||
# initExtra = ''
|
|
||||||
# if [[ $- == *i* && -z "$FISH_VERSION" ]]; then
|
|
||||||
# ${lib.getExe pkgs.fish}
|
|
||||||
# fi
|
|
||||||
# '';
|
|
||||||
# };
|
|
||||||
}
|
}
|
||||||
// lib.optionalAttrs (!(device.is "tsuba")) {
|
// lib.optionalAttrs (!(device.is "tsuba")) {
|
||||||
stylix.targets.fish.enable = false;
|
stylix.targets.fish.enable = false;
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
home.packages = [pkgs.iamb];
|
|
||||||
}
|
|
||||||
@@ -1,9 +1,4 @@
|
|||||||
{pkgs, ...}: let
|
{pkgs, ...}: {
|
||||||
theme = builtins.fetchurl {
|
|
||||||
url = "https://raw.githubusercontent.com/catppuccin/neomutt/refs/heads/main/neomuttrc";
|
|
||||||
sha256 = "sha256:1q086p5maqwxa4gh6z8g7h3nfavdmkbql025ibdhglpz46hsq0hs";
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
programs.neomutt = {
|
programs.neomutt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
vimKeys = true;
|
vimKeys = true;
|
||||||
@@ -11,9 +6,6 @@ in {
|
|||||||
sidebar = {
|
sidebar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
extraConfig = ''
|
|
||||||
source ${theme}
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
programs.notmuch = {
|
programs.notmuch = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -25,38 +17,4 @@ in {
|
|||||||
enable = true;
|
enable = true;
|
||||||
neomutt.enable = true;
|
neomutt.enable = true;
|
||||||
};
|
};
|
||||||
services.imapnotify = {
|
|
||||||
enable = true;
|
|
||||||
path = [pkgs.coreutils pkgs.isync pkgs.libnotify];
|
|
||||||
};
|
|
||||||
accounts.email.accounts.fastmail.imapnotify = {
|
|
||||||
enable = true;
|
|
||||||
boxes = ["Inbox"];
|
|
||||||
onNotify = "${pkgs.writeShellScript "mbsync-notify" ''
|
|
||||||
${pkgs.isync}/bin/mbsync $1
|
|
||||||
${pkgs.libnotify}/bin/notify-send "New Mail" "New email in $1"
|
|
||||||
''} %s";
|
|
||||||
};
|
|
||||||
programs.mbsync.enable = true;
|
|
||||||
services.mbsync.enable = pkgs.stdenv.isLinux;
|
|
||||||
|
|
||||||
# launchd.agents.mbsync = {
|
|
||||||
# enable = true;
|
|
||||||
# config = {
|
|
||||||
# # A label for the service
|
|
||||||
# Label = "dev.darksailor.atuin-daemon";
|
|
||||||
# # The command to run
|
|
||||||
# ProgramArguments = [
|
|
||||||
# "${pkgs.atuin}/bin/atuin"
|
|
||||||
# "daemon"
|
|
||||||
# ];
|
|
||||||
# # Run the service when you log in
|
|
||||||
# RunAtLoad = true;
|
|
||||||
# # Keep the process alive, or restart if it dies
|
|
||||||
# KeepAlive = true;
|
|
||||||
# # Log files
|
|
||||||
# StandardOutPath = "${device.home}/Library/Logs/atuin-daemon.log";
|
|
||||||
# StandardErrorPath = "${device.home}/Library/Logs/atuin-daemon.error.log";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
home.packages = [
|
|
||||||
inputs.nixify.packages.${pkgs.system}.default
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -26,5 +26,4 @@
|
|||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
home.shell.enableNushellIntegration = true;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,20 +6,5 @@
|
|||||||
lib.optionalAttrs (device.is "ryu" || device.is "kuro") {
|
lib.optionalAttrs (device.is "ryu" || device.is "kuro") {
|
||||||
programs.opencode = {
|
programs.opencode = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.provider = {
|
|
||||||
ollama = {
|
|
||||||
models = {
|
|
||||||
"glm-4.7-flash" = {
|
|
||||||
# "_launch" = true;
|
|
||||||
name = "glm-4.7-flash";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
name = "Ollama (local)";
|
|
||||||
npm = "@ai-sdk/openai-compatible";
|
|
||||||
options = {
|
|
||||||
baseURL = "https://ollama.darksailor.dev/v1";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,11 @@
|
|||||||
user = "git";
|
user = "git";
|
||||||
host = "github.com";
|
host = "github.com";
|
||||||
};
|
};
|
||||||
|
# mirai = {
|
||||||
|
# user = "fs0c131y";
|
||||||
|
# hostname = "mirai.darksailor.dev";
|
||||||
|
# forwardAgent = true;
|
||||||
|
# };
|
||||||
tako = {
|
tako = {
|
||||||
user = "servius";
|
user = "servius";
|
||||||
hostname = "tako.darksailor.dev";
|
hostname = "tako.darksailor.dev";
|
||||||
|
|||||||
@@ -17,6 +17,5 @@
|
|||||||
cache_dir = config.home.homeDirectory + "/.cache/yazi/previews";
|
cache_dir = config.home.homeDirectory + "/.cache/yazi/previews";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
shellWrapperName = "yy";
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
{pkgs, ...}: {home.packages = [pkgs.yq];}
|
|
||||||
@@ -36,11 +36,11 @@ in {
|
|||||||
pkgs.writeShellApplication {
|
pkgs.writeShellApplication {
|
||||||
name = "git-install-prepare-commit-msg";
|
name = "git-install-prepare-commit-msg";
|
||||||
text = ''
|
text = ''
|
||||||
ln -sf ${../scripts/prepare-commit-msg} .git/hooks/prepare-commit-msg
|
cp ${../scripts/prepare-commit-msg} .git/hooks/prepare-commit-msg
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
# (mkScript ../scripts/yt-dlp.sh (with pkgs; [yt-dlp]))
|
(mkScript ../scripts/yt-dlp.sh (with pkgs; [yt-dlp]))
|
||||||
# (mkScript ../scripts/autossh.sh (with pkgs; [autossh openssh]))
|
(mkScript ../scripts/autossh.sh (with pkgs; [autossh openssh]))
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,20 +1,18 @@
|
|||||||
{...}: {
|
{...}: {
|
||||||
imports = [
|
imports = [
|
||||||
./gtk.nix
|
|
||||||
./gui.nix
|
|
||||||
./hyprland.nix
|
|
||||||
./hyprmon.nix
|
|
||||||
./hyprpaper.nix
|
|
||||||
./ironbar
|
|
||||||
./kdeconnect.nix
|
|
||||||
./remmina.nix
|
|
||||||
# ./ollama.nix
|
|
||||||
./swaync.nix
|
./swaync.nix
|
||||||
./swayosd.nix
|
./swayosd.nix
|
||||||
./xdg.nix
|
./kdeconnect.nix
|
||||||
./ironclaw.nix
|
./gtk.nix
|
||||||
# ./anyrun.nix
|
# ./anyrun.nix
|
||||||
|
./ironbar
|
||||||
|
./gui.nix
|
||||||
# ./eww.nix
|
# ./eww.nix
|
||||||
|
./xdg.nix
|
||||||
|
./hyprmon.nix
|
||||||
|
./hyprland.nix
|
||||||
|
./hyprpaper.nix
|
||||||
|
./remmina.nix
|
||||||
# ./wallpaperengine.nix
|
# ./wallpaperengine.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
device,
|
device,
|
||||||
lib,
|
lib,
|
||||||
inputs,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
# lib.optionalAttrs device.isNix
|
# lib.optionalAttrs device.isNix
|
||||||
@@ -32,8 +31,6 @@
|
|||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = device.is "ryu";
|
enable = device.is "ryu";
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
package = pkgs.hyprland;
|
|
||||||
portalPackage = pkgs.xdph;
|
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
# source = "${pkgs.catppuccinThemes.hyprland}/themes/mocha.conf";
|
# source = "${pkgs.catppuccinThemes.hyprland}/themes/mocha.conf";
|
||||||
@@ -175,7 +172,7 @@
|
|||||||
|
|
||||||
exec-once = [
|
exec-once = [
|
||||||
# "${pkgs.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1"
|
# "${pkgs.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1"
|
||||||
"${pkgs.mate-polkit}/libexec/polkit-mate-authentication-agent-1"
|
"${pkgs.mate.mate-polkit}/libexec/polkit-mate-authentication-agent-1"
|
||||||
# "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"
|
# "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"
|
||||||
# "${pkgs.swww}/bin/swww init; swww img ~/.local/share/dotfiles/images/wallpaper.jpg"
|
# "${pkgs.swww}/bin/swww init; swww img ~/.local/share/dotfiles/images/wallpaper.jpg"
|
||||||
# "${pkgs.ironbar}/bin/ironbar"
|
# "${pkgs.ironbar}/bin/ironbar"
|
||||||
@@ -206,7 +203,7 @@
|
|||||||
"$mainMod, d, exec, ${lib.getExe pkgs.vicinae} toggle"
|
"$mainMod, d, exec, ${lib.getExe pkgs.vicinae} toggle"
|
||||||
"$mainMod, Space, exec, ${lib.getExe pkgs.vicinae} toggle"
|
"$mainMod, Space, exec, ${lib.getExe pkgs.vicinae} toggle"
|
||||||
"$mainMod, p, pseudo, # dwindle"
|
"$mainMod, p, pseudo, # dwindle"
|
||||||
"$mainMod, v, layoutmsg, togglesplit"
|
"$mainMod, v, togglesplit,"
|
||||||
"$mainMod, a, exec, ${pkgs.swaynotificationcenter}/bin/swaync-client -t"
|
"$mainMod, a, exec, ${pkgs.swaynotificationcenter}/bin/swaync-client -t"
|
||||||
"$mainMod, Tab, cyclenext"
|
"$mainMod, Tab, cyclenext"
|
||||||
# Audio
|
# Audio
|
||||||
|
|||||||
@@ -8,10 +8,8 @@
|
|||||||
wallpapers = import ../../utils/wallhaven.nix {inherit pkgs;};
|
wallpapers = import ../../utils/wallhaven.nix {inherit pkgs;};
|
||||||
nextcloudWallpapers = name: config.home.homeDirectory + "/Nextcloud/Wallpapers/" + name;
|
nextcloudWallpapers = name: config.home.homeDirectory + "/Nextcloud/Wallpapers/" + name;
|
||||||
# silksongFleas = nextcloudWallpapers "silksong-fleas.jpg";
|
# silksongFleas = nextcloudWallpapers "silksong-fleas.jpg";
|
||||||
|
bocchiVertical = nextcloudWallpapers "bocchi-vertical.jpg";
|
||||||
# The artist https://www.bilibili.com/video/BV1s44y1S7MM/
|
silksongShadeLord = nextcloudWallpapers "silksong-shadelord.jpg";
|
||||||
bocchiVertical = nextcloudWallpapers "bocchi-guitar.jpg";
|
|
||||||
frieren = nextcloudWallpapers "frieren.png";
|
|
||||||
in {
|
in {
|
||||||
enable = device.is "ryu";
|
enable = device.is "ryu";
|
||||||
settings = {
|
settings = {
|
||||||
@@ -19,12 +17,12 @@
|
|||||||
wallpaper = [
|
wallpaper = [
|
||||||
{
|
{
|
||||||
monitor = device.monitors.primary;
|
monitor = device.monitors.primary;
|
||||||
path = wallpapers.moon;
|
path = silksongShadeLord;
|
||||||
fit_mode = "cover";
|
fit_mode = "cover";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
monitor = device.monitors.secondary;
|
monitor = device.monitors.secondary;
|
||||||
path = frieren;
|
path = wallpapers.frieren_3;
|
||||||
fit_mode = "cover";
|
fit_mode = "cover";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
device,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
home.packages =
|
|
||||||
lib.optionals (device.is "ryu")
|
|
||||||
[
|
|
||||||
pkgs.ironclaw
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
device,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
services.ollama.enable = device.is "shiro";
|
|
||||||
}
|
|
||||||
@@ -2,7 +2,6 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
device,
|
device,
|
||||||
inputs,
|
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
@@ -11,9 +10,10 @@
|
|||||||
hyprland.default = ["hyprland"];
|
hyprland.default = ["hyprland"];
|
||||||
common.default = ["*" "hyprland"];
|
common.default = ["*" "hyprland"];
|
||||||
};
|
};
|
||||||
|
extraPortals = with pkgs; [
|
||||||
|
kdePackages.xdg-desktop-portal-kde
|
||||||
|
xdg-desktop-portal-hyprland
|
||||||
|
xdg-desktop-portal-gtk
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
# // lib.optionalAttrs (device.is "ryu") {
|
|
||||||
# environment.pathsToLink = ["/share/xdg-desktop-portal" "/share/applications"];
|
|
||||||
# }
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,162 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib; let
|
|
||||||
cfg = config.services.affine;
|
|
||||||
dbName = "affine";
|
|
||||||
dbUser = "affine";
|
|
||||||
in {
|
|
||||||
options.services.affine = {
|
|
||||||
enable = mkEnableOption "AFFiNE self-hosted workspace";
|
|
||||||
|
|
||||||
port = mkOption {
|
|
||||||
type = types.port;
|
|
||||||
default = 3010;
|
|
||||||
description = "Port for the AFFiNE server to listen on";
|
|
||||||
};
|
|
||||||
|
|
||||||
domain = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
description = "Public domain for AFFiNE (e.g. notes.darksailor.dev)";
|
|
||||||
};
|
|
||||||
|
|
||||||
imageTag = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "stable";
|
|
||||||
description = "Docker image tag for AFFiNE (stable, beta, canary)";
|
|
||||||
};
|
|
||||||
|
|
||||||
dataDir = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "/var/lib/affine";
|
|
||||||
description = "Base data directory for AFFiNE storage";
|
|
||||||
};
|
|
||||||
|
|
||||||
environmentFiles = mkOption {
|
|
||||||
type = types.listOf types.path;
|
|
||||||
default = [];
|
|
||||||
description = "Environment files containing secrets (DB password, etc.)";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
# Create data directories
|
|
||||||
systemd.tmpfiles.rules = [
|
|
||||||
"d ${cfg.dataDir} 0755 root root -"
|
|
||||||
"d ${cfg.dataDir}/storage 0755 root root -"
|
|
||||||
"d ${cfg.dataDir}/config 0755 root root -"
|
|
||||||
"d ${cfg.dataDir}/postgres 0700 root root -"
|
|
||||||
"d ${cfg.dataDir}/redis 0755 root root -"
|
|
||||||
];
|
|
||||||
|
|
||||||
virtualisation.oci-containers = {
|
|
||||||
backend = "docker";
|
|
||||||
containers = {
|
|
||||||
affine-postgres = {
|
|
||||||
image = "pgvector/pgvector:pg16";
|
|
||||||
volumes = [
|
|
||||||
"${cfg.dataDir}/postgres:/var/lib/postgresql/data"
|
|
||||||
];
|
|
||||||
environment = {
|
|
||||||
POSTGRES_USER = dbUser;
|
|
||||||
POSTGRES_DB = dbName;
|
|
||||||
POSTGRES_INITDB_ARGS = "--data-checksums";
|
|
||||||
POSTGRES_HOST_AUTH_METHOD = "trust";
|
|
||||||
};
|
|
||||||
environmentFiles = cfg.environmentFiles;
|
|
||||||
extraOptions = [
|
|
||||||
"--health-cmd=pg_isready -U ${dbUser} -d ${dbName}"
|
|
||||||
"--health-interval=10s"
|
|
||||||
"--health-timeout=5s"
|
|
||||||
"--health-retries=5"
|
|
||||||
];
|
|
||||||
networks = ["affine-net"];
|
|
||||||
};
|
|
||||||
|
|
||||||
affine-redis = {
|
|
||||||
image = "redis:7";
|
|
||||||
volumes = [
|
|
||||||
"${cfg.dataDir}/redis:/data"
|
|
||||||
];
|
|
||||||
networks = ["affine-net"];
|
|
||||||
extraOptions = [
|
|
||||||
"--health-cmd=redis-cli --raw incr ping"
|
|
||||||
"--health-interval=10s"
|
|
||||||
"--health-timeout=5s"
|
|
||||||
"--health-retries=5"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
affine = {
|
|
||||||
image = "ghcr.io/toeverything/affine:${cfg.imageTag}";
|
|
||||||
ports = ["127.0.0.1:${toString cfg.port}:3010"];
|
|
||||||
dependsOn = [
|
|
||||||
"affine-postgres"
|
|
||||||
"affine-redis"
|
|
||||||
"affine-migration"
|
|
||||||
];
|
|
||||||
volumes = [
|
|
||||||
"${cfg.dataDir}/storage:/root/.affine/storage"
|
|
||||||
"${cfg.dataDir}/config:/root/.affine/config"
|
|
||||||
];
|
|
||||||
environment = {
|
|
||||||
AFFINE_SERVER_PORT = "3010";
|
|
||||||
AFFINE_SERVER_HOST = cfg.domain;
|
|
||||||
AFFINE_SERVER_HTTPS = "true";
|
|
||||||
AFFINE_SERVER_EXTERNAL_URL = "https://${cfg.domain}";
|
|
||||||
REDIS_SERVER_HOST = "affine-redis";
|
|
||||||
DATABASE_URL = "postgresql://${dbUser}:$${AFFINE_DB_PASSWORD:-affine}@affine-postgres:5432/${dbName}";
|
|
||||||
AFFINE_INDEXER_ENABLED = "false";
|
|
||||||
};
|
|
||||||
environmentFiles = cfg.environmentFiles;
|
|
||||||
networks = ["affine-net"];
|
|
||||||
};
|
|
||||||
|
|
||||||
affine-migration = {
|
|
||||||
image = "ghcr.io/toeverything/affine:${cfg.imageTag}";
|
|
||||||
dependsOn = [
|
|
||||||
"affine-postgres"
|
|
||||||
"affine-redis"
|
|
||||||
];
|
|
||||||
volumes = [
|
|
||||||
"${cfg.dataDir}/storage:/root/.affine/storage"
|
|
||||||
"${cfg.dataDir}/config:/root/.affine/config"
|
|
||||||
];
|
|
||||||
cmd = ["sh" "-c" "node ./scripts/self-host-predeploy.js"];
|
|
||||||
environment = {
|
|
||||||
REDIS_SERVER_HOST = "affine-redis";
|
|
||||||
DATABASE_URL = "postgresql://${dbUser}:$${AFFINE_DB_PASSWORD:-affine}@affine-postgres:5432/${dbName}";
|
|
||||||
AFFINE_INDEXER_ENABLED = "false";
|
|
||||||
};
|
|
||||||
environmentFiles = cfg.environmentFiles;
|
|
||||||
networks = ["affine-net"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Create the Docker network
|
|
||||||
# systemd.services.affine-network = {
|
|
||||||
# description = "Create AFFiNE Docker network";
|
|
||||||
# after = ["docker.service"];
|
|
||||||
# wantedBy = ["multi-user.target"];
|
|
||||||
# serviceConfig = {
|
|
||||||
# Type = "oneshot";
|
|
||||||
# RemainAfterExit = true;
|
|
||||||
# # ExecStart = "${config.virtualisation.docker.package}/bin/docker network create affine-net";
|
|
||||||
# # ExecStop = "${config.virtualisation.docker.package}/bin/docker network remove affine-net";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
#
|
|
||||||
# Ensure containers start after the network is created
|
|
||||||
# systemd.services.docker-affine.after = ["affine-network.service"];
|
|
||||||
# systemd.services.docker-affine.requires = ["affine-network.service"];
|
|
||||||
# systemd.services.docker-affine-postgres.after = ["affine-network.service"];
|
|
||||||
# systemd.services.docker-affine-postgres.requires = ["affine-network.service"];
|
|
||||||
# systemd.services.docker-affine-redis.after = ["affine-network.service"];
|
|
||||||
# systemd.services.docker-affine-redis.requires = ["affine-network.service"];
|
|
||||||
# systemd.services.docker-affine-migration.after = ["affine-network.service"];
|
|
||||||
# systemd.services.docker-affine-migration.requires = ["affine-network.service"];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,19 +1,50 @@
|
|||||||
{...}: {
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.nix.substituters;
|
||||||
|
in {
|
||||||
|
options.nix.substituters = {
|
||||||
|
enableCuda = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = "Enable NixOS CUDA cache";
|
||||||
|
};
|
||||||
|
|
||||||
|
enableLlamaCpp = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = "Enable llama-cpp cache";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
nix.settings = {
|
nix.settings = {
|
||||||
trusted-substituters = [
|
trusted-substituters =
|
||||||
"https://nix-community.cachix.org"
|
[
|
||||||
"https://nixos-raspberrypi.cachix.org"
|
"https://nix-community.cachix.org"
|
||||||
"https://llama-cpp.cachix.org"
|
"https://nixos-raspberrypi.cachix.org"
|
||||||
"https://cache.nixos-cuda.org"
|
]
|
||||||
];
|
++ optionals cfg.enableLlamaCpp [
|
||||||
|
"https://llama-cpp.cachix.org"
|
||||||
|
]
|
||||||
|
++ optionals cfg.enableCuda [
|
||||||
|
"https://cache.nixos-cuda.org"
|
||||||
|
];
|
||||||
|
|
||||||
trusted-public-keys = [
|
trusted-public-keys =
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
[
|
||||||
"nixos-raspberrypi.cachix.org-1:4iMO9LXa8BqhU+Rpg6LQKiGa2lsNh/j2oiYLNOQ5sPI="
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
"llama-cpp.cachix.org-1:H75X+w83wUKTIPSO1KWy9ADUrzThyGs8P5tmAbkWhQc="
|
"nixos-raspberrypi.cachix.org-1:4iMO9LXa8BqhU+Rpg6LQKiGa2lsNh/j2oiYLNOQ5sPI="
|
||||||
"cache.nixos-cuda.org:74DUi4Ye579gUqzH4ziL9IyiJBlDpMRn9MBN8oNan9M="
|
]
|
||||||
];
|
++ optionals cfg.enableLlamaCpp [
|
||||||
|
"llama-cpp.cachix.org-1:H75X+w83wUKTIPSO1KWy9ADUrzThyGs8P5tmAbkWhQc="
|
||||||
|
]
|
||||||
|
++ optionals cfg.enableCuda [
|
||||||
|
"cache.nixos-cuda.org:74DUi4Ye579gUqzH4ziL9IyiJBlDpMRn9MBN8oNan9M="
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -289,7 +289,7 @@ in {
|
|||||||
"core.keybinds" = {
|
"core.keybinds" = {
|
||||||
config = {
|
config = {
|
||||||
default_keybinds = true;
|
default_keybinds = true;
|
||||||
neorg_leader = "<C-i>";
|
neorg_leader = "<C-m>";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"core.integrations.treesitter" = {
|
"core.integrations.treesitter" = {
|
||||||
@@ -620,21 +620,6 @@ in {
|
|||||||
};
|
};
|
||||||
sources = {
|
sources = {
|
||||||
cmdline = [];
|
cmdline = [];
|
||||||
# default =
|
|
||||||
# rawLua
|
|
||||||
# /*
|
|
||||||
# lua
|
|
||||||
# */
|
|
||||||
# ''
|
|
||||||
# function(ctx)
|
|
||||||
# local success, node = pcall(vim.treesitter.get_node)
|
|
||||||
# if success and node and vim.tbl_contains({ 'comment', 'line_comment', 'block_comment' }, node:type()) then
|
|
||||||
# return { 'buffer' }
|
|
||||||
# else
|
|
||||||
# return { 'git', 'lsp', 'path', 'snippets', 'buffer', 'dictionary', 'ripgrep', 'tmux' }
|
|
||||||
# end
|
|
||||||
# end
|
|
||||||
# '';
|
|
||||||
default = [
|
default = [
|
||||||
"git"
|
"git"
|
||||||
"lsp"
|
"lsp"
|
||||||
@@ -643,7 +628,6 @@ in {
|
|||||||
"path"
|
"path"
|
||||||
"buffer"
|
"buffer"
|
||||||
"ripgrep"
|
"ripgrep"
|
||||||
# "tmux"
|
|
||||||
];
|
];
|
||||||
providers = {
|
providers = {
|
||||||
buffer = {
|
buffer = {
|
||||||
@@ -655,30 +639,23 @@ in {
|
|||||||
path = {};
|
path = {};
|
||||||
dictionary = {
|
dictionary = {
|
||||||
module = "blink-cmp-dictionary";
|
module = "blink-cmp-dictionary";
|
||||||
name = "dict";
|
name = "Dict";
|
||||||
min_keyword_length = 3;
|
min_keyword_length = 3;
|
||||||
opts = {
|
opts = {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
git = {
|
git = {
|
||||||
module = "blink-cmp-git";
|
module = "blink-cmp-git";
|
||||||
name = "git";
|
name = "Git";
|
||||||
opts = {
|
opts = {
|
||||||
# -- options for the blink-cmp-git
|
# -- options for the blink-cmp-git
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
ripgrep = {
|
ripgrep = {
|
||||||
module = "blink-ripgrep";
|
module = "blink-ripgrep";
|
||||||
name = "ripgrep";
|
name = "Ripgrep";
|
||||||
opts = {};
|
opts = {};
|
||||||
};
|
};
|
||||||
# tmux = {
|
|
||||||
# module = "blink-cmp-tmux";
|
|
||||||
# name = "tmux";
|
|
||||||
# opts = {
|
|
||||||
# triggered_only = false;
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -686,9 +663,8 @@ in {
|
|||||||
blink-ripgrep.enable = true;
|
blink-ripgrep.enable = true;
|
||||||
blink-cmp-git.enable = true;
|
blink-cmp-git.enable = true;
|
||||||
blink-cmp-dictionary.enable = true;
|
blink-cmp-dictionary.enable = true;
|
||||||
# blink-cmp-copilot.enable = true;
|
blink-cmp-copilot.enable = true;
|
||||||
blink-cmp-spell.enable = true;
|
blink-cmp-spell.enable = true;
|
||||||
blink-cmp-tmux.enable = true;
|
|
||||||
blink-compat = {
|
blink-compat = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.impersonate_nvim_cmp = true;
|
settings.impersonate_nvim_cmp = true;
|
||||||
|
|||||||
@@ -42,8 +42,8 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
in [
|
in [
|
||||||
inputs.nixvim.overlays.default
|
|
||||||
inputs.nno.overlays.default
|
inputs.nno.overlays.default
|
||||||
tree-sitter-grammars
|
inputs.nixvim.overlays.default
|
||||||
vimPlugins
|
vimPlugins
|
||||||
|
tree-sitter-grammars
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -28,7 +28,6 @@
|
|||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
inputs.stylix.nixosModules.stylix
|
inputs.stylix.nixosModules.stylix
|
||||||
inputs.headplane.nixosModules.headplane
|
inputs.headplane.nixosModules.headplane
|
||||||
inputs.tangled-core.nixosModules.knot
|
|
||||||
|
|
||||||
./${device.name}/configuration.nix
|
./${device.name}/configuration.nix
|
||||||
../home/module.nix
|
../home/module.nix
|
||||||
|
|||||||
@@ -4,5 +4,4 @@
|
|||||||
documentation.dev.enable = true;
|
documentation.dev.enable = true;
|
||||||
documentation.doc.enable = true;
|
documentation.doc.enable = true;
|
||||||
documentation.nixos.enable = true;
|
documentation.nixos.enable = true;
|
||||||
documentation.man.cache.enable = true;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
environment.systemPackages = with pkgs; [crosspipe];
|
|
||||||
}
|
|
||||||
@@ -7,11 +7,6 @@
|
|||||||
# ./alvr.nix
|
# ./alvr.nix
|
||||||
./easyeffects.nix
|
./easyeffects.nix
|
||||||
./vr.nix
|
./vr.nix
|
||||||
./crosspipe.nix
|
./helvum.nix
|
||||||
# ./wine.nix
|
|
||||||
# ./virt.nix
|
|
||||||
./gparted.nix
|
|
||||||
./nvtop.nix
|
|
||||||
# ./qpwgraph.nix
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
environment.systemPackages = with pkgs; [gparted];
|
|
||||||
}
|
|
||||||
3
nixos/ryu/apps/helvum.nix
Normal file
3
nixos/ryu/apps/helvum.nix
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
environment.systemPackages = with pkgs; [helvum];
|
||||||
|
}
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
environment.systemPackages = with pkgs; [nvtopPackages.nvidia];
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
environment.systemPackages = with pkgs; [qpwgraph];
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
virt-manager
|
|
||||||
quickemu
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
wine-wayland
|
|
||||||
winetricks
|
|
||||||
wineWowPackages.waylandFull
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -2,8 +2,6 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
device,
|
device,
|
||||||
config,
|
|
||||||
inputs,
|
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
@@ -23,6 +21,15 @@
|
|||||||
tctiEnvironment.enable = true;
|
tctiEnvironment.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
hyprland = {
|
||||||
|
enable = true;
|
||||||
|
withUWSM = true;
|
||||||
|
xwayland.enable = true;
|
||||||
|
};
|
||||||
|
uwsm.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
systemd.services.NetworkManager-wait-online.enable = lib.mkForce false;
|
systemd.services.NetworkManager-wait-online.enable = lib.mkForce false;
|
||||||
# systemd.tmpfiles.rules = [
|
# systemd.tmpfiles.rules = [
|
||||||
# "L+ /etc/gdm/.config/monitors.xml - - - - ${./monitors.xml}"
|
# "L+ /etc/gdm/.config/monitors.xml - - - - ${./monitors.xml}"
|
||||||
@@ -40,8 +47,6 @@
|
|||||||
auto-optimise-store = true;
|
auto-optimise-store = true;
|
||||||
extra-experimental-features = "nix-command flakes auto-allocate-uids";
|
extra-experimental-features = "nix-command flakes auto-allocate-uids";
|
||||||
trusted-users = [device.user];
|
trusted-users = [device.user];
|
||||||
extra-sandbox-paths = [config.programs.ccache.cacheDir];
|
|
||||||
download-buffer-size = 524288000;
|
|
||||||
};
|
};
|
||||||
extraOptions = ''
|
extraOptions = ''
|
||||||
build-users-group = nixbld
|
build-users-group = nixbld
|
||||||
@@ -60,6 +65,11 @@
|
|||||||
# ../../builders/tsuba.nix
|
# ../../builders/tsuba.nix
|
||||||
];
|
];
|
||||||
distributedBuilds = true;
|
distributedBuilds = true;
|
||||||
|
# Enable CUDA and llama-cpp caches
|
||||||
|
substituters = {
|
||||||
|
enableCuda = true;
|
||||||
|
enableLlamaCpp = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
users.users.${device.user} = {
|
users.users.${device.user} = {
|
||||||
@@ -281,6 +291,42 @@
|
|||||||
fonts.fontconfig.enable = true;
|
fonts.fontconfig.enable = true;
|
||||||
fonts.fontDir.enable = true;
|
fonts.fontDir.enable = true;
|
||||||
environment = {
|
environment = {
|
||||||
|
# List packages installed in system profile. To search, run:
|
||||||
|
# $ nix search wget
|
||||||
|
systemPackages = with pkgs; [
|
||||||
|
v4l-utils
|
||||||
|
polychromatic
|
||||||
|
openrazer-daemon
|
||||||
|
cudatoolkit
|
||||||
|
# Wine
|
||||||
|
wine-wayland
|
||||||
|
winetricks
|
||||||
|
wineWowPackages.waylandFull
|
||||||
|
|
||||||
|
virt-manager
|
||||||
|
gparted
|
||||||
|
nvtopPackages.nvidia
|
||||||
|
quickemu
|
||||||
|
# (nixvim.makeNixvim (import ../../neovim))
|
||||||
|
qpwgraph
|
||||||
|
hyprland
|
||||||
|
xorg.xhost
|
||||||
|
foot
|
||||||
|
git
|
||||||
|
fish
|
||||||
|
nushell
|
||||||
|
# (pkgs.wrapFirefox
|
||||||
|
# (pkgs.firefox-unwrapped.override {pipewireSupport = true;})
|
||||||
|
# {})
|
||||||
|
gnumake
|
||||||
|
python3
|
||||||
|
nerd-fonts.fira-code
|
||||||
|
nerd-fonts.hasklug
|
||||||
|
nerd-fonts.symbols-only
|
||||||
|
monaspace
|
||||||
|
ddcutil
|
||||||
|
libnotify
|
||||||
|
];
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
WLR_NO_HARDWARE_CURSORS = "1";
|
WLR_NO_HARDWARE_CURSORS = "1";
|
||||||
NIXOS_OZONE_WL = "1";
|
NIXOS_OZONE_WL = "1";
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{...}: {
|
{...}: {
|
||||||
imports = [
|
imports = [
|
||||||
# ./hytale.nix
|
./hytale.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
programs.ccache = {
|
|
||||||
enable = true;
|
|
||||||
packageNames = ["ollama" "orca-slicer" "opencv" "onnxruntime" "obs-studio" "llama-cpp"];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
environment.systemPackages = with pkgs; [cudatoolkit];
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
environment.systemPackages = with pkgs; [ddcutil];
|
|
||||||
}
|
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
./steam.nix
|
./steam.nix
|
||||||
./1password.nix
|
./1password.nix
|
||||||
./localsend.nix
|
./localsend.nix
|
||||||
# ./appimage.nix
|
./appimage.nix
|
||||||
./obs-studio.nix
|
./obs-studio.nix
|
||||||
./gnome-disks.nix
|
./gnome-disks.nix
|
||||||
./nix-ld.nix
|
./nix-ld.nix
|
||||||
@@ -12,16 +12,5 @@
|
|||||||
./droidcam.nix
|
./droidcam.nix
|
||||||
./wireshark.nix
|
./wireshark.nix
|
||||||
./flatpak.nix
|
./flatpak.nix
|
||||||
./v4l-utils.nix
|
|
||||||
./razer.nix
|
|
||||||
./cuda.nix
|
|
||||||
./fonts.nix
|
|
||||||
./dev.nix
|
|
||||||
./shells.nix
|
|
||||||
./hyprland.nix
|
|
||||||
./foot.nix
|
|
||||||
./ddcutil.nix
|
|
||||||
./libnotify.nix
|
|
||||||
./fish.nix
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
git
|
|
||||||
gnumake
|
|
||||||
python3
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
programs.fish = {
|
|
||||||
enable = true;
|
|
||||||
generateCompletions = true;
|
|
||||||
};
|
|
||||||
stylix.targets.fish.enable = false;
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
nerd-fonts.fira-code
|
|
||||||
nerd-fonts.hasklug
|
|
||||||
nerd-fonts.symbols-only
|
|
||||||
monaspace
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
environment.systemPackages = with pkgs; [foot];
|
|
||||||
}
|
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
device,
|
device,
|
||||||
lib,
|
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
programs.gamemode = {
|
programs.gamemode = {
|
||||||
@@ -13,7 +12,7 @@
|
|||||||
custom = {
|
custom = {
|
||||||
start = let
|
start = let
|
||||||
out = pkgs.writeScriptBin "gamemode-start" ''
|
out = pkgs.writeScriptBin "gamemode-start" ''
|
||||||
${lib.getExe pkgs.ollama} ps | tail +2 | cut -d' ' -f1 | xargs ${lib.getExe pkgs.ollama} stop
|
${pkgs.lmstudio}/bin/lms unload
|
||||||
${pkgs.libnotify}/bin/notify-send 'GameMode started'
|
${pkgs.libnotify}/bin/notify-send 'GameMode started'
|
||||||
'';
|
'';
|
||||||
in "${out}/bin/gamemode-start";
|
in "${out}/bin/gamemode-start";
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
xhost
|
|
||||||
];
|
|
||||||
programs = {
|
|
||||||
hyprland = {
|
|
||||||
enable = true;
|
|
||||||
withUWSM = true;
|
|
||||||
xwayland.enable = true;
|
|
||||||
package = pkgs.hyprland;
|
|
||||||
portalPackage = pkgs.xdph;
|
|
||||||
};
|
|
||||||
uwsm.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
environment.systemPackages = with pkgs; [libnotify];
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
polychromatic
|
|
||||||
openrazer-daemon
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
fish
|
|
||||||
nushell
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
environment.systemPackages = with pkgs; [v4l-utils];
|
|
||||||
}
|
|
||||||
@@ -7,5 +7,8 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
dumpcap.enable = true;
|
dumpcap.enable = true;
|
||||||
};
|
};
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
wireshark-qt
|
||||||
|
];
|
||||||
users.users.${device.user}.extraGroups = ["wireshark"];
|
users.users.${device.user}.extraGroups = ["wireshark"];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -130,10 +130,11 @@
|
|||||||
options = ["nofail"];
|
options = ["nofail"];
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/var" = {
|
# fileSystems."/volumes/windows-games" = {
|
||||||
device = "/dev/disk/by-uuid/ff874913-dc21-43f3-82f8-cdf45dd888f7";
|
# device = "/dev/disk/by-partuuid/56359fb7-7d33-44d2-bebd-b0c53daeeb73";
|
||||||
fsType = "ext4";
|
# fsType = "ntfs3";
|
||||||
};
|
# options = ["nofail"];
|
||||||
|
# };
|
||||||
|
|
||||||
swapDevices = [
|
swapDevices = [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -57,6 +57,9 @@
|
|||||||
};
|
};
|
||||||
package = pkgs.nixVersions.nix_2_32; # deploy-rs doesn't work with nix >= 2.32
|
package = pkgs.nixVersions.nix_2_32; # deploy-rs doesn't work with nix >= 2.32
|
||||||
distributedBuilds = true;
|
distributedBuilds = true;
|
||||||
|
substituters = {
|
||||||
|
enableCuda = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
users.users.${device.user} = {
|
users.users.${device.user} = {
|
||||||
|
|||||||
@@ -1,89 +0,0 @@
|
|||||||
{config, ...}: let
|
|
||||||
domain = "notes.darksailor.dev";
|
|
||||||
in {
|
|
||||||
imports = [
|
|
||||||
../../../modules/nixos/affine.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
# SOPS secrets
|
|
||||||
sops = {
|
|
||||||
secrets = {
|
|
||||||
"affine/db_password" = {};
|
|
||||||
"authelia/oidc/affine/client_id" = {
|
|
||||||
owner = config.systemd.services.authelia-darksailor.serviceConfig.User;
|
|
||||||
mode = "0440";
|
|
||||||
restartUnits = ["authelia-darksailor.service"];
|
|
||||||
};
|
|
||||||
"authelia/oidc/affine/client_secret" = {
|
|
||||||
owner = config.systemd.services.authelia-darksailor.serviceConfig.User;
|
|
||||||
mode = "0440";
|
|
||||||
restartUnits = ["authelia-darksailor.service"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
templates."affine.env".content = ''
|
|
||||||
AFFINE_DB_PASSWORD=${config.sops.placeholder."affine/db_password"}
|
|
||||||
POSTGRES_PASSWORD=${config.sops.placeholder."affine/db_password"}
|
|
||||||
AFFINE_SERVER_EXTERNAL_URL=https://${domain}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable AFFiNE service
|
|
||||||
services.affine = {
|
|
||||||
enable = true;
|
|
||||||
inherit domain;
|
|
||||||
environmentFiles = [
|
|
||||||
config.sops.templates."affine.env".path
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Caddy reverse proxy with SSO forward auth
|
|
||||||
services.caddy.virtualHosts."${domain}".extraConfig = ''
|
|
||||||
reverse_proxy localhost:${toString config.services.affine.port}
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Authelia access control rules
|
|
||||||
services.authelia.instances.darksailor.settings = {
|
|
||||||
access_control.rules = [
|
|
||||||
{
|
|
||||||
inherit domain;
|
|
||||||
policy = "bypass";
|
|
||||||
resources = [
|
|
||||||
"^/api/(sync|awareness)([/?].*)?$"
|
|
||||||
"^/socket\\.io([/?].*)?$"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
inherit domain;
|
|
||||||
policy = "one_factor";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
# OIDC client for AFFiNE
|
|
||||||
identity_providers.oidc.clients = [
|
|
||||||
{
|
|
||||||
client_name = "AFFiNE: Darksailor";
|
|
||||||
client_id = ''{{ secret "${config.sops.secrets."authelia/oidc/affine/client_id".path}" }}'';
|
|
||||||
client_secret = ''{{ secret "${config.sops.secrets."authelia/oidc/affine/client_secret".path}" }}'';
|
|
||||||
public = false;
|
|
||||||
authorization_policy = "one_factor";
|
|
||||||
require_pkce = false;
|
|
||||||
redirect_uris = [
|
|
||||||
"https://${domain}/oauth/callback"
|
|
||||||
];
|
|
||||||
scopes = [
|
|
||||||
"openid"
|
|
||||||
"email"
|
|
||||||
"profile"
|
|
||||||
];
|
|
||||||
response_types = ["code"];
|
|
||||||
grant_types = ["authorization_code"];
|
|
||||||
userinfo_signed_response_alg = "none";
|
|
||||||
token_endpoint_auth_method = "client_secret_post";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Ensure containers start after secrets are available
|
|
||||||
systemd.services.docker-affine.after = ["sops-install-secrets.service"];
|
|
||||||
systemd.services.docker-affine-migration.after = ["sops-install-secrets.service"];
|
|
||||||
systemd.services.docker-affine-postgres.after = ["sops-install-secrets.service"];
|
|
||||||
}
|
|
||||||
@@ -1,35 +1,31 @@
|
|||||||
{...}: {
|
{...}: {
|
||||||
imports = [
|
imports = [
|
||||||
|
./attic.nix
|
||||||
./atuin.nix
|
./atuin.nix
|
||||||
./authelia.nix
|
./authelia.nix
|
||||||
./caddy.nix
|
./caddy.nix
|
||||||
./fail2ban.nix
|
|
||||||
./homepage.nix
|
|
||||||
./lldap.nix
|
|
||||||
./navidrome.nix
|
|
||||||
./nextcloud.nix
|
|
||||||
./openssh.nix
|
|
||||||
./resolved.nix
|
|
||||||
./tailscale.nix
|
|
||||||
./gitea.nix
|
|
||||||
./knot.nix
|
|
||||||
|
|
||||||
./affine.nix
|
|
||||||
./attic.nix
|
|
||||||
./excalidraw.nix
|
./excalidraw.nix
|
||||||
|
./fail2ban.nix
|
||||||
./flaresolverr.nix
|
./flaresolverr.nix
|
||||||
# ./games
|
./games
|
||||||
# ./headscale.nix
|
./gitea.nix
|
||||||
|
./homepage.nix
|
||||||
./immich.nix
|
./immich.nix
|
||||||
./kellnr.nix
|
./kellnr.nix
|
||||||
|
./lldap.nix
|
||||||
./llms.nix
|
./llms.nix
|
||||||
./matrix
|
./matrix
|
||||||
./monitoring.nix
|
./monitoring.nix
|
||||||
# ./servius-website.nix
|
./navidrome.nix
|
||||||
# ./paperless.nix
|
./nextcloud.nix
|
||||||
|
./openssh.nix
|
||||||
./prowlarr.nix
|
./prowlarr.nix
|
||||||
# ./searxng.nix
|
./resolved.nix
|
||||||
|
./searxng.nix
|
||||||
./shitpost.nix
|
./shitpost.nix
|
||||||
|
./tailscale.nix
|
||||||
|
# ./headscale.nix
|
||||||
|
# ./paperless.nix
|
||||||
];
|
];
|
||||||
services = {
|
services = {
|
||||||
nix-serve = {
|
nix-serve = {
|
||||||
|
|||||||
@@ -34,12 +34,12 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
headplane = {
|
# headplane = {
|
||||||
enable = true;
|
# enable = true;
|
||||||
settings = {
|
# settings = {
|
||||||
server.port = 42562;
|
# server.port = 42562;
|
||||||
};
|
# };
|
||||||
};
|
# };
|
||||||
caddy = {
|
caddy = {
|
||||||
virtualHosts."headscale.darksailor.dev".extraConfig = ''
|
virtualHosts."headscale.darksailor.dev".extraConfig = ''
|
||||||
reverse_proxy localhost:${toString config.services.headplane.settings.server.port}
|
reverse_proxy localhost:${toString config.services.headplane.settings.server.port}
|
||||||
|
|||||||
@@ -59,14 +59,6 @@
|
|||||||
siteMonitor = "https://deluge.tsuba.darksailor.dev";
|
siteMonitor = "https://deluge.tsuba.darksailor.dev";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
{
|
|
||||||
"Aria2" = {
|
|
||||||
icon = "aria2.png";
|
|
||||||
description = "Aria2: Download Manager";
|
|
||||||
href = "https://aria2.tsuba.darksailor.dev";
|
|
||||||
siteMonitor = "https://aria2.tsuba.darksailor.dev";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
"Home Assistant" = {
|
"Home Assistant" = {
|
||||||
icon = "home-assistant.png";
|
icon = "home-assistant.png";
|
||||||
@@ -206,19 +198,19 @@
|
|||||||
reverse_proxy localhost:${builtins.toString config.services.homepage-dashboard.listenPort}
|
reverse_proxy localhost:${builtins.toString config.services.homepage-dashboard.listenPort}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
authelia = {
|
# authelia = {
|
||||||
instances.darksailor = {
|
# instances.darksailor = {
|
||||||
settings = {
|
# settings = {
|
||||||
access_control = {
|
# access_control = {
|
||||||
rules = [
|
# rules = [
|
||||||
{
|
# {
|
||||||
domain = "dashboard.darksailor.dev";
|
# domain = "dashboard.darksailor.dev";
|
||||||
policy = "one_factor";
|
# policy = "one_factor";
|
||||||
}
|
# }
|
||||||
];
|
# ];
|
||||||
};
|
# };
|
||||||
};
|
# };
|
||||||
};
|
# };
|
||||||
};
|
# };
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,31 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
services.tangled.knot = {
|
|
||||||
enable = true;
|
|
||||||
package = inputs.tangled-core.packages.${pkgs.system}.knot;
|
|
||||||
server = {
|
|
||||||
hostname = "tangled.darksailor.dev";
|
|
||||||
owner = "did:plc:tllyvpa5oxw6fwwhkj3kv6dr";
|
|
||||||
listenAddr = "127.0.0.1:5969";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.caddy.virtualHosts."tangled.darksailor.dev".extraConfig = ''
|
|
||||||
reverse_proxy ${config.services.tangled.knot.server.listenAddr} {
|
|
||||||
header_up Host {host}
|
|
||||||
header_up X-Real-IP {remote}
|
|
||||||
header_up X-Forwarded-For {remote}
|
|
||||||
header_up X-Forwarded-Proto {scheme}
|
|
||||||
}
|
|
||||||
handle /events/* {
|
|
||||||
reverse_proxy ${config.services.tangled.knot.server.listenAddr} {
|
|
||||||
header_up X-Forwarded-For {remote}
|
|
||||||
header_up Host {host}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
base_domain = "darksailor.dev";
|
|
||||||
cinnyConfig = builtins.toJSON {
|
|
||||||
defaultHomeserver = 0;
|
|
||||||
homeserverList = ["darksailor.dev" "matrix.org"];
|
|
||||||
allowCustomHomeservers = false;
|
|
||||||
hashRouter = {
|
|
||||||
enabled = true;
|
|
||||||
basename = "/";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
cinnyConfigFile = pkgs.writeText "cinny-config.json" cinnyConfig;
|
|
||||||
cinny = with pkgs;
|
|
||||||
buildNpmPackage rec {
|
|
||||||
pname = "cinny-unwrapped";
|
|
||||||
version = "4.11.1";
|
|
||||||
src = inputs.cinny;
|
|
||||||
|
|
||||||
nodejs = nodejs_22;
|
|
||||||
|
|
||||||
npmDepsHash = "sha256-27WFjb08p09aJRi0S2PvYq3bivEuG5+z2QhFahTSj4Q=";
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
python3
|
|
||||||
pkg-config
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs =
|
|
||||||
[
|
|
||||||
pixman
|
|
||||||
cairo
|
|
||||||
pango
|
|
||||||
]
|
|
||||||
++ lib.optionals stdenv.hostPlatform.isDarwin [giflib];
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
runHook preInstall
|
|
||||||
|
|
||||||
cp -r dist $out
|
|
||||||
|
|
||||||
runHook postInstall
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
services.caddy.virtualHosts = {
|
|
||||||
"matrix.${base_domain}".extraConfig = ''
|
|
||||||
handle /_matrix/* {
|
|
||||||
reverse_proxy /_matrix/* localhost:${toString (builtins.elemAt config.services.matrix-tuwunel.settings.global.port 0)}
|
|
||||||
}
|
|
||||||
handle_path /config.json {
|
|
||||||
file_server
|
|
||||||
root ${cinnyConfigFile}
|
|
||||||
}
|
|
||||||
handle {
|
|
||||||
root * ${cinny}
|
|
||||||
try_files {path} /index.html
|
|
||||||
file_server
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,8 +1,7 @@
|
|||||||
{...}: {
|
{...}: {
|
||||||
imports = [
|
imports = [
|
||||||
./tuwunel.nix
|
./tuwunel.nix
|
||||||
./cinny.nix
|
# ./signal.nix // libolm deprecated
|
||||||
# ./signal.nix
|
|
||||||
# ./discord.nix
|
# ./discord.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,8 +6,19 @@
|
|||||||
port = 6167;
|
port = 6167;
|
||||||
base_domain = "darksailor.dev";
|
base_domain = "darksailor.dev";
|
||||||
client_id = "tuwunel";
|
client_id = "tuwunel";
|
||||||
rtc_domain = "matrix-rtc.${base_domain}";
|
elementConfig = builtins.toJSON {
|
||||||
jwt_port = 8081;
|
default_server_config = {
|
||||||
|
"m.homeserver" = {
|
||||||
|
base_url = "https://matrix.${base_domain}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
sso_redirect_options = {
|
||||||
|
immediate = false;
|
||||||
|
on_welcome_page = true;
|
||||||
|
on_login_page = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
elementConfigFile = pkgs.writeText "element-config.json" elementConfig;
|
||||||
in {
|
in {
|
||||||
sops = {
|
sops = {
|
||||||
secrets."tuwunel/client_id" = {
|
secrets."tuwunel/client_id" = {
|
||||||
@@ -21,11 +32,6 @@ in {
|
|||||||
mode = "0440";
|
mode = "0440";
|
||||||
};
|
};
|
||||||
secrets."tuwunel/registration_token".owner = config.services.matrix-tuwunel.user;
|
secrets."tuwunel/registration_token".owner = config.services.matrix-tuwunel.user;
|
||||||
secrets."livekit/key_name" = {};
|
|
||||||
secrets."livekit/key_secret" = {};
|
|
||||||
templates."livekit-keys".content = ''
|
|
||||||
${config.sops.placeholder."livekit/key_name"}: ${config.sops.placeholder."livekit/key_secret"}
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
services.matrix-tuwunel = {
|
services.matrix-tuwunel = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -50,91 +56,31 @@ in {
|
|||||||
well_known = {
|
well_known = {
|
||||||
client = "https://matrix.${base_domain}";
|
client = "https://matrix.${base_domain}";
|
||||||
server = "matrix.${base_domain}:443";
|
server = "matrix.${base_domain}:443";
|
||||||
rtc_transports = [
|
|
||||||
{
|
|
||||||
type = "livekit";
|
|
||||||
livekit_service_url = "https://${rtc_domain}";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
package = pkgs.matrix-tuwunel;
|
package = pkgs.matrix-tuwunel;
|
||||||
};
|
};
|
||||||
services.caddy.virtualHosts = {
|
services.caddy.virtualHosts = {
|
||||||
# "matrix.${base_domain}".extraConfig = ''
|
"matrix.${base_domain}".extraConfig = ''
|
||||||
# handle /_matrix/* {
|
reverse_proxy /_matrix/* localhost:${toString port}
|
||||||
# reverse_proxy /_matrix/* localhost:${toString port}
|
handle_path /config.json {
|
||||||
# }
|
file_server
|
||||||
# handle_path /config.json {
|
root ${elementConfigFile}
|
||||||
# file_server
|
}
|
||||||
# root ${cinnyConfigFile}
|
root * ${pkgs.element-web}
|
||||||
# }
|
file_server
|
||||||
# handle {
|
'';
|
||||||
# root * ${cinny}
|
|
||||||
# try_files {path} /index.html
|
|
||||||
# file_server
|
|
||||||
# }
|
|
||||||
# '';
|
|
||||||
"${base_domain}".extraConfig = ''
|
"${base_domain}".extraConfig = ''
|
||||||
reverse_proxy /.well-known/* localhost:${toString port}
|
reverse_proxy /.well-known/* localhost:${toString port}
|
||||||
'';
|
'';
|
||||||
"${rtc_domain}".extraConfig = ''
|
# "matrix.${base_domain}:8448".extraConfig = ''
|
||||||
@jwt_service {
|
# reverse_proxy /_matrix/* localhost:${toString port}
|
||||||
path /sfu/get* /healthz*
|
# '';
|
||||||
}
|
|
||||||
handle @jwt_service {
|
|
||||||
reverse_proxy localhost:${toString jwt_port}
|
|
||||||
}
|
|
||||||
handle {
|
|
||||||
reverse_proxy localhost:${toString config.services.livekit.settings.port} {
|
|
||||||
header_up Connection "upgrade"
|
|
||||||
header_up Upgrade {http.request.header.Upgrade}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
networking.firewall = {
|
|
||||||
allowedTCPPorts = [8448 7881];
|
|
||||||
allowedUDPPorts = [3478];
|
|
||||||
allowedUDPPortRanges = [
|
|
||||||
{
|
|
||||||
from = 50300;
|
|
||||||
to = 65535;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
networking.firewall.allowedTCPPorts = [8448];
|
||||||
|
|
||||||
users.users.${config.services.caddy.user}.extraGroups = [config.services.matrix-tuwunel.group];
|
users.users.${config.services.caddy.user}.extraGroups = [config.services.matrix-tuwunel.group];
|
||||||
|
|
||||||
services.livekit = {
|
|
||||||
enable = true;
|
|
||||||
keyFile = config.sops.templates."livekit-keys".path;
|
|
||||||
openFirewall = true;
|
|
||||||
settings = {
|
|
||||||
rtc = {
|
|
||||||
tcp_port = 7881;
|
|
||||||
port_range_start = 50100;
|
|
||||||
port_range_end = 50200;
|
|
||||||
use_external_ip = true;
|
|
||||||
enable_loopback_candidate = false;
|
|
||||||
};
|
|
||||||
turn = {
|
|
||||||
enabled = true;
|
|
||||||
udp_port = 3478;
|
|
||||||
relay_range_start = 50300;
|
|
||||||
relay_range_end = 65535;
|
|
||||||
domain = rtc_domain;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.lk-jwt-service = {
|
|
||||||
enable = true;
|
|
||||||
port = jwt_port;
|
|
||||||
livekitUrl = "wss://${rtc_domain}";
|
|
||||||
keyFile = config.sops.templates."livekit-keys".path;
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
authelia = {
|
authelia = {
|
||||||
instances.darksailor = {
|
instances.darksailor = {
|
||||||
|
|||||||
@@ -23,9 +23,6 @@
|
|||||||
caddy = 2019;
|
caddy = 2019;
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
sops.secrets."grafana/secret_key" = {
|
|
||||||
owner = "grafana";
|
|
||||||
};
|
|
||||||
# Grafana configuration with Authelia integration
|
# Grafana configuration with Authelia integration
|
||||||
services.grafana = {
|
services.grafana = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -57,7 +54,6 @@ in {
|
|||||||
security = {
|
security = {
|
||||||
disable_gravatar = true;
|
disable_gravatar = true;
|
||||||
cookie_secure = true;
|
cookie_secure = true;
|
||||||
secret_key = ''$__file{${config.sops.secrets."grafana/secret_key".path}}'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
analytics = {
|
analytics = {
|
||||||
@@ -285,7 +281,7 @@ in {
|
|||||||
{
|
{
|
||||||
targets = [
|
targets = [
|
||||||
"tsuba:8096" # jellyfin (built-in /metrics endpoint)
|
"tsuba:8096" # jellyfin (built-in /metrics endpoint)
|
||||||
# "tsuba:8123" # homeassistant (configure prometheus integration)
|
"tsuba:8123" # homeassistant (configure prometheus integration)
|
||||||
"tsuba:9617" # pihole-exporter
|
"tsuba:9617" # pihole-exporter
|
||||||
];
|
];
|
||||||
labels = {
|
labels = {
|
||||||
@@ -302,12 +298,12 @@ in {
|
|||||||
target_label = "__metrics_path__";
|
target_label = "__metrics_path__";
|
||||||
replacement = "/metrics";
|
replacement = "/metrics";
|
||||||
}
|
}
|
||||||
# {
|
{
|
||||||
# source_labels = ["__address__"];
|
source_labels = ["__address__"];
|
||||||
# regex = "tsuba:8123";
|
regex = "tsuba:8123";
|
||||||
# target_label = "__metrics_path__";
|
target_label = "__metrics_path__";
|
||||||
# replacement = "/api/prometheus";
|
replacement = "/api/prometheus";
|
||||||
# }
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
services = {
|
services = {
|
||||||
nextcloud = {
|
nextcloud = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.nextcloud33;
|
package = pkgs.nextcloud32;
|
||||||
extraApps = {
|
extraApps = {
|
||||||
inherit (config.services.nextcloud.package.packages.apps) contacts calendar bookmarks user_oidc;
|
inherit (config.services.nextcloud.package.packages.apps) contacts calendar bookmarks user_oidc;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -2,6 +2,6 @@
|
|||||||
services.openssh = {
|
services.openssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.PasswordAuthentication = false;
|
settings.PasswordAuthentication = false;
|
||||||
settings.PermitRootLogin = "no";
|
settings.PermitRootLogin = "prohibit-password";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
website = inputs.servius-website.packages.${pkgs.system}.default;
|
|
||||||
in {
|
|
||||||
services.caddy.virtualHosts."servius.darksailor.dev".extraConfig = ''
|
|
||||||
root * ${website}
|
|
||||||
file_server
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
sops.secrets."aria2/rpc-secret" = {};
|
|
||||||
|
|
||||||
services.aria2 = {
|
|
||||||
enable = true;
|
|
||||||
rpcSecretFile = config.sops.secrets."aria2/rpc-secret".path;
|
|
||||||
settings = {
|
|
||||||
continue = true;
|
|
||||||
dir = "/media/downloads";
|
|
||||||
enable-rpc = true;
|
|
||||||
file-allocation = "none";
|
|
||||||
max-concurrent-downloads = 5;
|
|
||||||
max-connection-per-server = 16;
|
|
||||||
rpc-listen-all = true;
|
|
||||||
rpc-listen-port = 6809;
|
|
||||||
split = 16;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.caddy.virtualHosts."aria2.tsuba.darksailor.dev".extraConfig = ''
|
|
||||||
import cloudflare
|
|
||||||
root * ${pkgs.ariang}/share/ariang
|
|
||||||
file_server
|
|
||||||
'';
|
|
||||||
services.caddy.virtualHosts."aria2.tsuba.darksailor.dev:6800".extraConfig = ''
|
|
||||||
import cloudflare
|
|
||||||
reverse_proxy localhost:${toString config.services.aria2.settings.rpc-listen-port}
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
@@ -6,7 +6,6 @@
|
|||||||
./caddy.nix
|
./caddy.nix
|
||||||
./servarr.nix
|
./servarr.nix
|
||||||
./deluge.nix
|
./deluge.nix
|
||||||
./aria2.nix
|
|
||||||
./homeassistant.nix
|
./homeassistant.nix
|
||||||
./flaresolverr.nix
|
./flaresolverr.nix
|
||||||
./caddy.nix
|
./caddy.nix
|
||||||
|
|||||||
308
overlays.nix
308
overlays.nix
@@ -1,7 +1,5 @@
|
|||||||
{inputs, ...} @ self: let
|
{inputs, ...} @ self: let
|
||||||
cratesNix = pkgs: inputs.crates-nix.mkLib {inherit pkgs;};
|
shell-scipts = final: prev: {
|
||||||
# --- Shell / CLI utilities ---
|
|
||||||
shell-scripts = final: prev: {
|
|
||||||
handlr-xdg = final.pkgs.writeShellApplication {
|
handlr-xdg = final.pkgs.writeShellApplication {
|
||||||
name = "xdg-open";
|
name = "xdg-open";
|
||||||
runtimeInputs = [final.pkgs.handlr-regex];
|
runtimeInputs = [final.pkgs.handlr-regex];
|
||||||
@@ -10,9 +8,184 @@
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
misc-applications = final: prev: {
|
||||||
|
command-runner = inputs.command-runner.packages.${prev.system}.command-runner;
|
||||||
|
goread = final.pkgs.buildGoModule {
|
||||||
|
pname = "goread";
|
||||||
|
version = "v1.6.4";
|
||||||
|
vendorHash = "sha256-/kxEnw8l9S7WNMcPh1x7xqiQ3L61DSn6DCIvJlyrip0";
|
||||||
|
src = final.pkgs.fetchFromGitHub {
|
||||||
|
owner = "TypicalAM";
|
||||||
|
repo = "goread";
|
||||||
|
rev = "v1.6.4";
|
||||||
|
sha256 = "sha256-m6reRaJNeFhJBUatfPNm66LwTXPdD/gioT8HTv52QOw";
|
||||||
|
};
|
||||||
|
patches = [patches/goread.patch];
|
||||||
|
checkPhase = null;
|
||||||
|
};
|
||||||
|
music-player-git = inputs.music-player.packages.${prev.system}.default;
|
||||||
|
davis = let
|
||||||
|
davis-src = final.pkgs.fetchFromGitHub {
|
||||||
|
owner = "SimonPersson";
|
||||||
|
repo = "davis";
|
||||||
|
rev = "main";
|
||||||
|
sha256 = "sha256-p4l1nF6M28OyIaPorgsyR7NJtmVwpmuws67KvVnJa8s";
|
||||||
|
};
|
||||||
|
cargoToml =
|
||||||
|
builtins.fromTOML (builtins.readFile "${davis-src}/Cargo.toml");
|
||||||
|
in
|
||||||
|
final.rustPlatform.buildRustPackage {
|
||||||
|
pname = cargoToml.package.name;
|
||||||
|
version = cargoToml.package.version;
|
||||||
|
src = davis-src;
|
||||||
|
cargoLock = {lockFile = "${davis-src}/Cargo.lock";};
|
||||||
|
buildPhase = ''
|
||||||
|
runHook cargoBuildHook
|
||||||
|
runHook cargoInstallPostBuildHook
|
||||||
|
'';
|
||||||
|
runtimeInputs = [final.pkgs.picat];
|
||||||
|
buildInputs = [final.pkgs.picat];
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp $bins $out/bin
|
||||||
|
cp $src/subcommands/cur/davis-cur-vertical $out/bin
|
||||||
|
cp $src/subcommands/cur/davis-cur-horizontal $out/bin
|
||||||
|
cp $src/subcommands/cover/davis-cover $out/bin
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
# --- Terminal multiplexers ---
|
openapi-tui = let
|
||||||
terminal = final: prev: {
|
cargoToml = builtins.fromTOML (builtins.readFile "${inputs.openapi-tui}/Cargo.toml");
|
||||||
|
in
|
||||||
|
final.rustPlatform.buildRustPackage {
|
||||||
|
pname = cargoToml.package.name;
|
||||||
|
version = cargoToml.package.version;
|
||||||
|
src = inputs.openapi-tui;
|
||||||
|
cargoLock = {lockFile = "${inputs.openapi-tui}/Cargo.lock";};
|
||||||
|
buildInputs = with final;
|
||||||
|
pkgs.lib.optionals pkgs.stdenv.isDarwin [
|
||||||
|
pkgs.apple-sdk_13
|
||||||
|
]
|
||||||
|
++ pkgs.lib.optionals pkgs.stdenv.isLinux [
|
||||||
|
pkgs.openssl
|
||||||
|
];
|
||||||
|
PKG_CONFIG_PATH = with final; pkgs.lib.makeSearchPath "lib/pkgconfig" [pkgs.openssl.dev];
|
||||||
|
nativeBuildInputs = with final; [pkgs.pkg-config];
|
||||||
|
};
|
||||||
|
picat = let
|
||||||
|
picat-src = final.pkgs.fetchFromGitHub {
|
||||||
|
owner = "SimonPersson";
|
||||||
|
repo = "picat";
|
||||||
|
rev = "main";
|
||||||
|
sha256 = "sha256-HheBinHW4RLjRtiE8Xe5BoEuSCdtZTA9XkRJgtDkXaM";
|
||||||
|
};
|
||||||
|
cargoToml =
|
||||||
|
builtins.fromTOML (builtins.readFile "${picat-src}/Cargo.toml");
|
||||||
|
in
|
||||||
|
final.rustPlatform.buildRustPackage {
|
||||||
|
pname = cargoToml.package.name;
|
||||||
|
version = cargoToml.package.version;
|
||||||
|
src = picat-src;
|
||||||
|
cargoLock = {lockFile = "${picat-src}/Cargo.lock";};
|
||||||
|
};
|
||||||
|
psst =
|
||||||
|
if final.pkgs.stdenv.isLinux
|
||||||
|
then
|
||||||
|
(prev.psst.overrideAttrs (finalAttrs: prevAttrs: {
|
||||||
|
postInstall =
|
||||||
|
(prevAttrs.postInstall or "")
|
||||||
|
+ ''
|
||||||
|
patch $out/share/applications/Psst.desktop < ${./patches/psst.patch}
|
||||||
|
'';
|
||||||
|
}))
|
||||||
|
else
|
||||||
|
final.rustPlatform.buildRustPackage rec {
|
||||||
|
pname = "psst";
|
||||||
|
version = "1";
|
||||||
|
src = final.pkgs.fetchFromGitHub {
|
||||||
|
owner = "jpochyla";
|
||||||
|
repo = "psst";
|
||||||
|
rev = "master";
|
||||||
|
sha256 = "sha256-W+MFToyvYDQuC/8DqigvENxzJ6QGQOAeAdmdWG6+qZk";
|
||||||
|
};
|
||||||
|
buildInputs = with final; [
|
||||||
|
pkgs.apple-sdk_13
|
||||||
|
];
|
||||||
|
cargoLock = {
|
||||||
|
lockFile = "${src}/Cargo.lock";
|
||||||
|
outputHashes = {
|
||||||
|
"cubeb-0.10.3" = "sha256-gV1KHOhq678E/Rj+u8jX9Fw+TepPwuZdV5y/D+Iby+o";
|
||||||
|
"druid-0.8.3" = "sha256-hTB9PQf2TAhcLr64VjjQIr18mczwcNogDSRSN5dQULA";
|
||||||
|
"druid-enums-0.1.0" = "sha256-KJvAgKxicx/g+4QRZq3iHt6MGVQbfOpyN+EhS6CyDZk";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
ddcbacklight = inputs.ddcbacklight.packages.${prev.system}.ddcbacklight;
|
||||||
|
# ik_llama = prev.llama-cpp.overrideAttrs (oldAttrs: {
|
||||||
|
# src = inputs.ik_llama;
|
||||||
|
# version = "5995";
|
||||||
|
# });
|
||||||
|
# llama-cpp = prev.llama-cpp.overrideAttrs (oldAttrs: {
|
||||||
|
# src = inputs.llama-cpp;
|
||||||
|
# version = "6178";
|
||||||
|
# cmakeFlags = oldAttrs.cmakeFlags;
|
||||||
|
# });
|
||||||
|
python312 = prev.python312.override {
|
||||||
|
packageOverrides = final: prev: {
|
||||||
|
pysaml2 = prev.pysaml2.overridePythonAttrs (orig: {
|
||||||
|
doCheck = false;
|
||||||
|
# disabledTests =
|
||||||
|
# orig.disabledTests
|
||||||
|
# ++ [
|
||||||
|
# "test_encrypted_response_6"
|
||||||
|
# "test_validate_cert_chains"
|
||||||
|
# "test_validate_with_root_cert"
|
||||||
|
# ];
|
||||||
|
});
|
||||||
|
};
|
||||||
|
};
|
||||||
|
zeronsd = let
|
||||||
|
src = inputs.zeronsd;
|
||||||
|
in
|
||||||
|
final.rustPlatform.buildRustPackage {
|
||||||
|
inherit src;
|
||||||
|
pname = "zeronsd";
|
||||||
|
version = "0.6";
|
||||||
|
|
||||||
|
strictDeps = true;
|
||||||
|
buildInputs = [final.pkgs.openssl];
|
||||||
|
nativeBuildInputs = [final.pkgs.pkg-config];
|
||||||
|
|
||||||
|
doCheck = false;
|
||||||
|
RUSTFMT = "${final.pkgs.rustfmt}/bin/rustfmt";
|
||||||
|
|
||||||
|
cargoLock = {lockFile = "${src}/Cargo.lock";};
|
||||||
|
};
|
||||||
|
# alvr-master = inputs.alvr.packages.${prev.system}.default;
|
||||||
|
caddyWithCloudflare = inputs.nixpkgs.legacyPackages.${final.system}.caddy.withPlugins {
|
||||||
|
plugins = ["github.com/caddy-dns/cloudflare@v0.2.2"];
|
||||||
|
hash = "sha256-dnhEjopeA0UiI+XVYHYpsjcEI6Y1Hacbi28hVKYQURg=";
|
||||||
|
};
|
||||||
|
nix-auth = inputs.nix-auth.packages.${prev.system}.nix-auth;
|
||||||
|
kitty = inputs.nixpkgs-stable.legacyPackages.${prev.system}.kitty;
|
||||||
|
yabai = prev.yabai.overrideAttrs (oldAttrs: rec {
|
||||||
|
version = "7.1.16";
|
||||||
|
src = final.fetchzip {
|
||||||
|
url = "https://github.com/koekeishiya/yabai/releases/download/v${version}/yabai-v${version}.tar.gz";
|
||||||
|
hash = "sha256-rEO+qcat6heF3qrypJ02Ivd2n0cEmiC/cNUN53oia4w=";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
anyrun-overlay = final: prev: {
|
||||||
|
anyrun =
|
||||||
|
inputs.anyrun.packages.${prev.system}.anyrun.overrideAttrs
|
||||||
|
(finalAttrs: prevAttrs: {patches = [./patches/ctrl-np.patch];});
|
||||||
|
hyprwin = inputs.anyrun-hyprwin.packages.${prev.system}.hyprwin;
|
||||||
|
nixos-options = inputs.anyrun-nixos-options.packages.${prev.system}.default;
|
||||||
|
anyrun-rink = inputs.anyrun-rink.packages.${prev.system}.default;
|
||||||
|
};
|
||||||
|
tmuxPlugins = final: prev: {
|
||||||
tmuxPlugins =
|
tmuxPlugins =
|
||||||
prev.tmuxPlugins
|
prev.tmuxPlugins
|
||||||
// {
|
// {
|
||||||
@@ -27,18 +200,28 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
tmux-float = inputs.tmux-float.packages.${prev.stdenv.hostPlatform.system}.default;
|
tmux-float = inputs.tmux-float.packages.${prev.system}.default;
|
||||||
|
};
|
||||||
|
catppuccinThemes = final: prev: {
|
||||||
|
catppuccinThemes = import ./themes/catppuccin.nix {pkgs = final.pkgs;};
|
||||||
|
};
|
||||||
|
nix-index-db = final: prev: {
|
||||||
|
nix-index-database = final.runCommandLocal "nix-index-database" {} ''
|
||||||
|
mkdir -p $out
|
||||||
|
ln -s ${
|
||||||
|
inputs.nix-index-database.legacyPackages.${prev.system}.database
|
||||||
|
} $out/files
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
zellij = final: prev: {
|
||||||
zellijPlugins = {
|
zellijPlugins = {
|
||||||
zjstatus = inputs.zjstatus.packages.${prev.stdenv.hostPlatform.system}.default;
|
zjstatus = inputs.zjstatus.packages.${prev.system}.default;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
libfprint = final: prev: {
|
||||||
# --- System libraries ---
|
|
||||||
system-libs = final: prev: {
|
|
||||||
# Custom libfprint with CS9711 fingerprint reader support
|
|
||||||
# https://github.com/archeYR/libfprint-CS9711/commits/cs9711-rebase/
|
|
||||||
libfprint = prev.libfprint.overrideAttrs (oldAttrs: {
|
libfprint = prev.libfprint.overrideAttrs (oldAttrs: {
|
||||||
version = "git";
|
version = "git";
|
||||||
|
# https://github.com/archeYR/libfprint-CS9711/commits/cs9711-rebase/
|
||||||
src = final.fetchFromGitHub {
|
src = final.fetchFromGitHub {
|
||||||
owner = "archeYR";
|
owner = "archeYR";
|
||||||
repo = "libfprint-CS9711";
|
repo = "libfprint-CS9711";
|
||||||
@@ -54,73 +237,66 @@
|
|||||||
final.doctest
|
final.doctest
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
# fprintd = inputs.nixpkgs-stable.legacyPackages.${prev.system}.fprintd;
|
||||||
|
# fprintd = prev.fprintd.overrideAttrs (oldAttrs: {
|
||||||
|
# src = inputs.nixpkgs-stable.legacyPackages.${prev.system}.fprintd.src;
|
||||||
|
# });
|
||||||
};
|
};
|
||||||
|
csshacks = final: prev: {
|
||||||
# --- Networking ---
|
csshacks = inputs.csshacks;
|
||||||
networking = final: prev: {
|
|
||||||
caddyWithCloudflare = inputs.nixpkgs.legacyPackages.${prev.stdenv.hostPlatform.system}.caddy.withPlugins {
|
|
||||||
plugins = ["github.com/caddy-dns/cloudflare@v0.2.2"];
|
|
||||||
hash = "sha256-Gb1nC5fZfj7IodQmKmEPGygIHNYhKWV1L0JJiqnVtbs=";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
jellyfin = final: prev: {
|
||||||
|
jellyfin-web = prev.jellyfin-web.overrideAttrs (finalAttrs: previousAttrs: {
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
# --- Media ---
|
# this is the important line
|
||||||
media = final: prev: {
|
sed -i "s#</head>#<script src=\"configurationpage?name=skip-intro-button.js\"></script></head>#" dist/index.html
|
||||||
ddcbacklight = inputs.ddcbacklight.packages.${prev.stdenv.hostPlatform.system}.ddcbacklight;
|
|
||||||
music-player-git = inputs.music-player.packages.${prev.stdenv.hostPlatform.system}.default;
|
|
||||||
};
|
|
||||||
|
|
||||||
# --- macOS-specific ---
|
mkdir -p $out/share
|
||||||
darwin = final: prev: {
|
cp -a dist $out/share/jellyfin-web
|
||||||
kitty = inputs.nixpkgs-stable.legacyPackages.${prev.stdenv.hostPlatform.system}.kitty;
|
|
||||||
yabai = prev.yabai.overrideAttrs (oldAttrs: rec {
|
runHook postInstall
|
||||||
version = "7.1.16";
|
'';
|
||||||
src = final.fetchzip {
|
|
||||||
url = "https://github.com/koekeishiya/yabai/releases/download/v${version}/yabai-v${version}.tar.gz";
|
|
||||||
hash = "sha256-rEO+qcat6heF3qrypJ02Ivd2n0cEmiC/cNUN53oia4w=";
|
|
||||||
};
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
# immich = final: prev: {
|
||||||
applications = final: prev: {
|
# immich-latest = prev.immich.overrideAttrs (oldAttrs: {
|
||||||
iamb = inputs.iamb.packages.${prev.stdenv.hostPlatform.system}.default;
|
# version = "v1.142.0";
|
||||||
hyprland = inputs.hyprland.packages.${prev.stdenv.hostPlatform.system}.hyprland;
|
# src = inputs.immich;
|
||||||
xdg-desktop-portal-hyprland = prev.enableDebugging inputs.hyprland.packages.${prev.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
# });
|
||||||
xdph = inputs.nixpkgs-master.legacyPackages.${prev.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
# };
|
||||||
ironclaw = (cratesNix prev).buildCrate "ironclaw" {
|
vr = final: prev: {
|
||||||
nativeBuildInputs = [prev.pkg-config];
|
# wivrn-nightly = prev.wivrn.overrideAttrs (oldAttrs: {
|
||||||
buildInputs = [prev.openssl];
|
# version = "v25.11.1";
|
||||||
doCheck = false;
|
# src = inputs.wivrn;
|
||||||
};
|
# });
|
||||||
|
wivrn-nightly = inputs.wivrn.packages.${prev.system}.default;
|
||||||
};
|
};
|
||||||
|
games = final: prev: {
|
||||||
# --- Themes and assets ---
|
hytale-launcher = inputs.hytale-launcher.packages.${prev.system}.default;
|
||||||
themes = final: prev: {
|
|
||||||
catppuccinThemes = import ./themes/catppuccin.nix {pkgs = final.pkgs;};
|
|
||||||
nix-index-database = final.runCommandLocal "nix-index-database" {} ''
|
|
||||||
mkdir -p $out
|
|
||||||
ln -s ${inputs.nix-index-database.legacyPackages.${prev.stdenv.hostPlatform.system}.database} $out/files
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
[
|
[
|
||||||
# Local overlays
|
games
|
||||||
shell-scripts
|
vr
|
||||||
terminal
|
anyrun-overlay
|
||||||
system-libs
|
catppuccinThemes
|
||||||
networking
|
csshacks
|
||||||
media
|
|
||||||
darwin
|
|
||||||
themes
|
|
||||||
applications
|
|
||||||
|
|
||||||
# External input overlays
|
|
||||||
inputs.deploy-rs.overlays.default
|
inputs.deploy-rs.overlays.default
|
||||||
inputs.eilmeldung.overlays.default
|
|
||||||
inputs.handoff.overlays.default
|
|
||||||
inputs.headplane.overlays.default
|
|
||||||
inputs.nix-minecraft.overlay
|
inputs.nix-minecraft.overlay
|
||||||
inputs.nur.overlays.default
|
inputs.nur.overlays.default
|
||||||
|
inputs.rust-overlay.overlays.default
|
||||||
|
inputs.handoff.overlays.default
|
||||||
|
inputs.headplane.overlays.default
|
||||||
inputs.vicinae.overlays.default
|
inputs.vicinae.overlays.default
|
||||||
|
inputs.eilmeldung.overlays.default
|
||||||
|
jellyfin
|
||||||
|
libfprint
|
||||||
|
misc-applications
|
||||||
|
nix-index-db
|
||||||
|
shell-scipts
|
||||||
|
tmuxPlugins
|
||||||
|
zellij
|
||||||
]
|
]
|
||||||
++ (import ./neovim/overlays.nix {inherit inputs;})
|
++ (import ./neovim/overlays.nix {inherit inputs;})
|
||||||
|
|||||||
@@ -6,8 +6,6 @@ paperless:
|
|||||||
accounts:
|
accounts:
|
||||||
mail:
|
mail:
|
||||||
fastmail: ENC[AES256_GCM,data:WCqmJqUjJz/mUdVB9xDvYQ==,iv:uU3X7/doSz6v0c8eHfB6riOkxWoWqYhbsoexaZwdb4Q=,tag:0oSRXo93siNQDlOgPA3Hsw==,type:str]
|
fastmail: ENC[AES256_GCM,data:WCqmJqUjJz/mUdVB9xDvYQ==,iv:uU3X7/doSz6v0c8eHfB6riOkxWoWqYhbsoexaZwdb4Q=,tag:0oSRXo93siNQDlOgPA3Hsw==,type:str]
|
||||||
calendar:
|
|
||||||
fastmail: ENC[AES256_GCM,data:pjTLouC7hVSdjb14UmCM7g==,iv:YdznLQUxf5YFl1AhdZE1sj1MiIOPEBhCbxM8EB4ye8c=,tag:H55Nk8rAsDkSsPJRm+9L5Q==,type:str]
|
|
||||||
gitea:
|
gitea:
|
||||||
registration: ENC[AES256_GCM,data:1FVvZF6e4AQK09Qd/hTqCvAEsnKyNztcQ6gFWHprMSNHkodNoyAyZg==,iv:ftnk06e9XV8+ZFupnV4I4a4he1ne9jAzmihli5Vt6h8=,tag:5+Tqzh/dSSWB221h01ftyQ==,type:str]
|
registration: ENC[AES256_GCM,data:1FVvZF6e4AQK09Qd/hTqCvAEsnKyNztcQ6gFWHprMSNHkodNoyAyZg==,iv:ftnk06e9XV8+ZFupnV4I4a4he1ne9jAzmihli5Vt6h8=,tag:5+Tqzh/dSSWB221h01ftyQ==,type:str]
|
||||||
llama:
|
llama:
|
||||||
@@ -55,9 +53,6 @@ authelia:
|
|||||||
excalidraw:
|
excalidraw:
|
||||||
client_id: ENC[AES256_GCM,data:ANaCFTiPnR/bP51lSMfiTRX7ZGZ2pmX3Guamsyj7KRzD34G18E+UUgXi0YdbDfmFxcEj+nvoerf7wWhtvIzO1Q==,iv:CyNiLA0PH0p1Zwdf8B6/Ysb6GODClnXkPctbtZnoddw=,tag:X3kAkBKD407QFg/Se33Flg==,type:str]
|
client_id: ENC[AES256_GCM,data:ANaCFTiPnR/bP51lSMfiTRX7ZGZ2pmX3Guamsyj7KRzD34G18E+UUgXi0YdbDfmFxcEj+nvoerf7wWhtvIzO1Q==,iv:CyNiLA0PH0p1Zwdf8B6/Ysb6GODClnXkPctbtZnoddw=,tag:X3kAkBKD407QFg/Se33Flg==,type:str]
|
||||||
client_secret: ENC[AES256_GCM,data:VHIbKjHWXfQCUp3wh2dsMpMaDdCabmVlLMHcMnTCXPr5ZNIS1zpyGD6keapoOYywwvDFenICf73vpHun5aFhLw==,iv:HjRTwREC2jMsW1VrVYe4iywGc9apWZWLwh5aHOjvde0=,tag:Jl9kDI8C9VjSm6SiePk7Ow==,type:str]
|
client_secret: ENC[AES256_GCM,data:VHIbKjHWXfQCUp3wh2dsMpMaDdCabmVlLMHcMnTCXPr5ZNIS1zpyGD6keapoOYywwvDFenICf73vpHun5aFhLw==,iv:HjRTwREC2jMsW1VrVYe4iywGc9apWZWLwh5aHOjvde0=,tag:Jl9kDI8C9VjSm6SiePk7Ow==,type:str]
|
||||||
affine:
|
|
||||||
client_id: ENC[AES256_GCM,data:riwC/9GuHamkV7U80+qCXP/F2wP0volVmRXtkVOQu7NfBb9OlSnamMvVh1pRNHj4c3AZWHpYIIHpkhuNKUuD+A==,iv:gi70CRZqRYfvHq7JhY+N3rX3Trb7eLqgmUlFqLk7p+4=,tag:M6MzyKRTJpZsznXzvxQINQ==,type:str]
|
|
||||||
client_secret: ENC[AES256_GCM,data:/4+606H4s50+E25LOaVRi5Vt0rpzg9mAHSonYaLASPW/jEwAxwTNunWGvOg4ydjF+D9VBUbYcp1krZnlrhDp9sRR81vf+1G9aA69mWVPF7aMjBx5wA44tBszjLc/KKx804qbopG1m4y828aPrFvknx2d7Rox/YkvhLoq5jPjyVU=,iv:9s4OQNTtPBcN+7kvtH9u9kkPadFG7MG0LdlHAhMR5sw=,tag:BV0G1f/5qGAfrdRMshHzYw==,type:str]
|
|
||||||
lldap:
|
lldap:
|
||||||
jwt: ENC[AES256_GCM,data:61dwC1ElOOGaf0CmalzXZnxImEyufKjUUWcNaEcOuv3TEODhQyHK7g==,iv:CVEJVuaCc2gDmSYWHS3fPL8FjbvblF6IladAzGoGb0o=,tag:OMm/OdKjliHjsGqJripLbg==,type:str]
|
jwt: ENC[AES256_GCM,data:61dwC1ElOOGaf0CmalzXZnxImEyufKjUUWcNaEcOuv3TEODhQyHK7g==,iv:CVEJVuaCc2gDmSYWHS3fPL8FjbvblF6IladAzGoGb0o=,tag:OMm/OdKjliHjsGqJripLbg==,type:str]
|
||||||
seed: ENC[AES256_GCM,data:jJPutPkhFVFxLbbQNZznHHiilP/cN2r+/vT4ArQVRQSqPMnkkwgc3LNk4sUTrT9V,iv:LD1IJ1CgtDfYf1gSyyaU+hir0InuDEq0u7ppMmwGJRY=,tag:cK4l4Evr7V9WEUEL7V9jtQ==,type:str]
|
seed: ENC[AES256_GCM,data:jJPutPkhFVFxLbbQNZznHHiilP/cN2r+/vT4ArQVRQSqPMnkkwgc3LNk4sUTrT9V,iv:LD1IJ1CgtDfYf1gSyyaU+hir0InuDEq0u7ppMmwGJRY=,tag:cK4l4Evr7V9WEUEL7V9jtQ==,type:str]
|
||||||
@@ -79,7 +74,7 @@ minecraft:
|
|||||||
modded: ENC[AES256_GCM,data:6itrol9NObR3TczEeOa7wkykgqkpDus0VkHBRpU6VdQ=,iv:F56uYdHozJvkJ+m18aviTWzCrLfW2VcxkbOqpnRiniA=,tag:WLKA+uIJJtlDfMMOn0ak7Q==,type:str]
|
modded: ENC[AES256_GCM,data:6itrol9NObR3TczEeOa7wkykgqkpDus0VkHBRpU6VdQ=,iv:F56uYdHozJvkJ+m18aviTWzCrLfW2VcxkbOqpnRiniA=,tag:WLKA+uIJJtlDfMMOn0ak7Q==,type:str]
|
||||||
grafana:
|
grafana:
|
||||||
adminPassword: ENC[AES256_GCM,data:im6FJVlVUoZg+9W6KmsqtloH4nB6AhXOcia5waRyFKj2DoQlt4jhPH1CFvw=,iv://D6aD/fGl7h4KmtQcQ0TQLWLfKdIs4+EMg2LWjPHvg=,tag:6gHu/V0V0a8GpcgA/hUwXg==,type:str]
|
adminPassword: ENC[AES256_GCM,data:im6FJVlVUoZg+9W6KmsqtloH4nB6AhXOcia5waRyFKj2DoQlt4jhPH1CFvw=,iv://D6aD/fGl7h4KmtQcQ0TQLWLfKdIs4+EMg2LWjPHvg=,tag:6gHu/V0V0a8GpcgA/hUwXg==,type:str]
|
||||||
secret_key: ENC[AES256_GCM,data:QkNTWQyQGgD/zJ0C0nkqTuxJXCx/hqwFH1XrJEGcIB7U3PUNdMpvTYrazgGRUcfEUjMeCIbUgYcamrPJJgaBsA==,iv:RZa79OtDS74JErBk/j5wg/p02Rd4zCXLi4LQGffHLmU=,tag:sbsovzFXj3xmDIF+ACwPgQ==,type:str]
|
secretKey: ENC[AES256_GCM,data:LD0x8Fa6SU1+6mwxLkKa/o+ZqeuRIr7o/AKS7EmrDYj0vzrA3/FjViVJNfkOJDch9TbVyjIpk2ZLwxHXOZx7MA==,iv:t6UwZj2JZpMIDsDDeJ4rZah4aBoMIKaoiu9VU2VhViE=,tag:MIz/b8JWYtOpUCcg6gYhJg==,type:str]
|
||||||
discord:
|
discord:
|
||||||
token: ENC[AES256_GCM,data:M6TayHpIa0J1w3zVRKPPU0P/f18UXOpxzU7fjKNCx8YxzSAaQfY52S5XpiqDgjPWfWdSxzG2VVDqu1708Vwofa8IRKwWafam,iv:x0ySoaS68aLRVUcQin096RoeQGRELvNwdFJxezPj/cA=,tag:Omv5uL97y7ZTI8juVJFNug==,type:str]
|
token: ENC[AES256_GCM,data:M6TayHpIa0J1w3zVRKPPU0P/f18UXOpxzU7fjKNCx8YxzSAaQfY52S5XpiqDgjPWfWdSxzG2VVDqu1708Vwofa8IRKwWafam,iv:x0ySoaS68aLRVUcQin096RoeQGRELvNwdFJxezPj/cA=,tag:Omv5uL97y7ZTI8juVJFNug==,type:str]
|
||||||
lastfm:
|
lastfm:
|
||||||
@@ -106,10 +101,6 @@ livekit:
|
|||||||
key_secret: ENC[AES256_GCM,data:n0SH6SLYXOwdjJ5nNku0Pg6/DZxmYG7iLfNNDbKlvF9DiCDxfn2ag1fToxWGz0qrAvqV6b3PdD123BURDzJ+gQ==,iv:1Pix12Pxr/kX/SqRWHOaSdccIZTQsSoFVGXYNyx2Rfo=,tag:QG1qDJPBUUtlih+TcXXsRQ==,type:str]
|
key_secret: ENC[AES256_GCM,data:n0SH6SLYXOwdjJ5nNku0Pg6/DZxmYG7iLfNNDbKlvF9DiCDxfn2ag1fToxWGz0qrAvqV6b3PdD123BURDzJ+gQ==,iv:1Pix12Pxr/kX/SqRWHOaSdccIZTQsSoFVGXYNyx2Rfo=,tag:QG1qDJPBUUtlih+TcXXsRQ==,type:str]
|
||||||
coturn:
|
coturn:
|
||||||
static_auth_secret: ENC[AES256_GCM,data:osEBYgWGZl+SnqVV1G9IxMys/qDm6WTtj4nILYVw0klDjiB6vd21yA0ik/rLv9E6Y539uMCk3oB0NS7I72U1hQ==,iv:jruS3vfe0fVHY67qNhEgaCEp/9cR57UIu8a/LhdTC1o=,tag:vhxXhh9u4bOSu/lxINjvew==,type:str]
|
static_auth_secret: ENC[AES256_GCM,data:osEBYgWGZl+SnqVV1G9IxMys/qDm6WTtj4nILYVw0klDjiB6vd21yA0ik/rLv9E6Y539uMCk3oB0NS7I72U1hQ==,iv:jruS3vfe0fVHY67qNhEgaCEp/9cR57UIu8a/LhdTC1o=,tag:vhxXhh9u4bOSu/lxINjvew==,type:str]
|
||||||
affine:
|
|
||||||
db_password: ENC[AES256_GCM,data:AbpoEbmeihtVIoRaWxVL8+v3oCk5iiia9qZLKgyy98qTuNZruiaV3kQN6clYvWgHbzJta5/H9e+xocrEtw8C/A==,iv:2vPeDAJuVujPgM+kr6AFAvat2MCJnsblebx23Ey7YNA=,tag:ukuK30aZ//MKabhSRtLNXw==,type:str]
|
|
||||||
aria2:
|
|
||||||
rpc-secret: ENC[AES256_GCM,data:peFtDURHjlQOAM1v1AP9BBHmXhpPTE0kKRcL9eBV9rIFnDcKw5+nAP9+8sW4CRcE6l9DoxZFau7+IsnDgrFp5g==,iv:DkHiaZlPcHMnOPLflxlF4fs/bdOe799/SQQZ9WZ1Tq4=,tag:R1aWdUQdtzySOmYitNxD1Q==,type:str]
|
|
||||||
sops:
|
sops:
|
||||||
age:
|
age:
|
||||||
- recipient: age1pw7kluxp7872c63ne4jecq75glj060jkmqwzkk6esatuyck9egfswufdpk
|
- recipient: age1pw7kluxp7872c63ne4jecq75glj060jkmqwzkk6esatuyck9egfswufdpk
|
||||||
@@ -121,7 +112,7 @@ sops:
|
|||||||
VGZKdHpVeFRpQUxtSEkyaEhLMlBJcGsKLb0DvPNZosPBUuiX6qz1s5IO5INQh8CK
|
VGZKdHpVeFRpQUxtSEkyaEhLMlBJcGsKLb0DvPNZosPBUuiX6qz1s5IO5INQh8CK
|
||||||
ZtXTVClwMSmaUYhdSB2gKFrKVZHXTJZ4oAL5t/BpC0pOHyr+o96T3Q==
|
ZtXTVClwMSmaUYhdSB2gKFrKVZHXTJZ4oAL5t/BpC0pOHyr+o96T3Q==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2026-03-13T17:35:01Z"
|
lastmodified: "2026-02-12T13:19:01Z"
|
||||||
mac: ENC[AES256_GCM,data:6VfirvrqmBLDg3XnJzBY5z1Fy/yAOhuLF6YnFH0pJ17beIHfkQQ/BbL0vBI1YfjyGjqQannp/0SpEwqA5uhvaHpQV2F1eFwotjrgFiGBrnhirLSXiHLGcnQtIeu2ue1McwbtJVZNWaOtdcz71+QeKn53+4jcDnb/wu/46+Q/nB0=,iv:eQ61Bpyom1cvTRZMiAMes2lrAGlAtuKTAxR/k2Caxh4=,tag:i+SBR1/V6jb3c3mGT4XykQ==,type:str]
|
mac: ENC[AES256_GCM,data:IVU1PbDwH1JKG3qPOtmfMZr7BJ7zR/UGQ167Tyf62w5V1gaiVoeqjD8/MR6OSvhMDNYxjJXRKg9E9N8q4JRxok34v5zOfqWchnXEP9wIS39kgsYJ1Hra7hOryd5n49/Xkwyen6f1VSe1nkKtldWS9XHwDBZRrSE+kaXcZTQmKIY=,iv:WLRVIEzR0MFsY6EAgyXZCHQz/xD4cSaeikA8nZqHy38=,tag:+TyOvwWkHa4fHYonKBfxyg==,type:str]
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.11.0
|
version: 3.11.0
|
||||||
|
|||||||
Reference in New Issue
Block a user