Added hetzner server configs
CI / Formatting check (x86_64-linux) (push) Has been cancelled
CI / Flake check (aarch64-linux) (push) Has been cancelled
CI / Flake check (x86_64-linux) (push) Has been cancelled
CI / Formatting check (aarch64-linux) (push) Has been cancelled

This commit is contained in:
2026-07-11 20:28:51 +02:00
parent 0457d618e1
commit c5f771bd53
51 changed files with 1800 additions and 309 deletions
+91 -91
View File
@@ -67,61 +67,61 @@
};
"fish/functions/extract.fish" = {
text = ''
function extract
if test -f "$argv[1]"
set file "$argv[1]"
set filename (basename "$file")
set dirname (string replace -r '\.tar\.bz2$|\.tar\.gz$|\.tbz2$|\.tgz$|\.tar$|\.bz2$|\.gz$|\.zip$|\.Z$|\.7z$|\.xz$|\.rar$' "" "$filename")
mkdir -p "$dirname"
switch $file
case "*.tar.bz2"
tar xjf "$file" -C "$dirname"
case "*.tar.gz"
tar xzf "$file" -C "$dirname"
case "*.tbz2"
tar xjf "$file" -C "$dirname"
case "*.tgz"
tar xzf "$file" -C "$dirname"
case "*.tar"
tar xf "$file" -C "$dirname"
case "*.bz2"
bunzip2 -c "$file" >"$dirname/$dirname"
case "*.gz"
gunzip -c "$file" >"$dirname/$dirname"
case "*.zip"
unzip "$file" -d "$dirname"
case "*.Z"
uncompress -c "$file" >"$dirname/$dirname"
case "*.7z"
7z x "$file" -o"$dirname"
case "*.xz"
xz -dc "$file" >"$dirname/$dirname"
case "*.rar"
unrar x "$file" "$dirname"
case "*"
echo "'$file' cannot be extracted via extract()"
end
else
echo "'$argv[1]' is not a valid file"
end
end
'';
};
function extract
if test -f "$argv[1]"
set file "$argv[1]"
set filename (basename "$file")
set dirname (string replace -r '\.tar\.bz2$|\.tar\.gz$|\.tbz2$|\.tgz$|\.tar$|\.bz2$|\.gz$|\.zip$|\.Z$|\.7z$|\.xz$|\.rar$' "" "$filename")
mkdir -p "$dirname"
switch $file
case "*.tar.bz2"
tar xjf "$file" -C "$dirname"
case "*.tar.gz"
tar xzf "$file" -C "$dirname"
case "*.tbz2"
tar xjf "$file" -C "$dirname"
case "*.tgz"
tar xzf "$file" -C "$dirname"
case "*.tar"
tar xf "$file" -C "$dirname"
case "*.bz2"
bunzip2 -c "$file" >"$dirname/$dirname"
case "*.gz"
gunzip -c "$file" >"$dirname/$dirname"
case "*.zip"
unzip "$file" -d "$dirname"
case "*.Z"
uncompress -c "$file" >"$dirname/$dirname"
case "*.7z"
7z x "$file" -o"$dirname"
case "*.xz"
xz -dc "$file" >"$dirname/$dirname"
case "*.rar"
unrar x "$file" "$dirname"
case "*"
echo "'$file' cannot be extracted via extract()"
end
else
echo "'$argv[1]' is not a valid file"
end
end
'';
};
"fish/functions/weather.fish" = {
text = ''
function weather
if test "$argv[1]" = week
wthrr -f w $argv[2]
else if test -z "$argv[1]"
wthrr -f d
wthrr -f t
else
wthrr -f d $argv[1]
wthrr -f t $argv[1]
end
end
'';
};
function weather
if test "$argv[1]" = week
wthrr -f w $argv[2]
else if test -z "$argv[1]"
wthrr -f d
wthrr -f t
else
wthrr -f d $argv[1]
wthrr -f t $argv[1]
end
end
'';
};
"fish/functions/fcd.fish" = {
text = ''
function fcd
@@ -168,44 +168,44 @@ end
};
"fish/conf.d/aliases.fish" = {
text = ''
alias cleanup="sudo nix-collect-garbage --delete-older-than 1d"
alias listgen="sudo nix-env -p /nix/var/nix/profiles/system --list-generations"
alias nixremove="nix-store --gc"
alias bloat="nix path-info -Sh /run/current-system"
alias cleanram="sudo sh -c 'sync; echo 3 > /proc/sys/vm/drop_caches'"
alias trimall="sudo fstrim -va"
alias c="clear"
alias add="git add ."
alias commit="git commit"
alias push="git push"
alias pull="git pull"
alias diff="git diff --staged"
alias gcld="git clone --depth 1"
alias koji="meteor"
alias gitui="lazygit"
alias ls="eza -lah --grid -s modified --smart-group --group-directories-first --icons"
alias l="eza -ah --grid -s modified --smart-group --group-directories-first --icons"
alias tree="eza --tree --icons --tree"
alias cat="${pkgs.bat}/bin/bat --paging=never --theme gruvbox-dark"
alias us="systemctl --user"
alias rs="sudo systemctl"
alias zed="zeditor"
alias nl="nl -ba"
alias cp="cp -riv"
alias mv="mv -iv"
alias mkdir="mkdir -pv"
alias less="bat -p --theme gruvbox-dark"
alias myip="curl ip.severijnse.eu"
alias pscpu="ps -eo pid,ppid,cmd,%mem,%cpu,etime --sort=-%cpu | head -n 21"
alias psmem="ps -eo pid,ppid,cmd,%mem,%cpu,etime --sort=-%mem | head -n 21"
alias weer="weather"
alias v="nvim"
alias copy="wl-copy"
alias send="croc"
alias img="loupe"
alias cat-md="glow"
alias du="dust"
alias df="duf"
alias cleanup="sudo nix-collect-garbage --delete-older-than 1d"
alias listgen="sudo nix-env -p /nix/var/nix/profiles/system --list-generations"
alias nixremove="nix-store --gc"
alias bloat="nix path-info -Sh /run/current-system"
alias cleanram="sudo sh -c 'sync; echo 3 > /proc/sys/vm/drop_caches'"
alias trimall="sudo fstrim -va"
alias c="clear"
alias add="git add ."
alias commit="git commit"
alias push="git push"
alias pull="git pull"
alias diff="git diff --staged"
alias gcld="git clone --depth 1"
alias koji="meteor"
alias gitui="lazygit"
alias ls="eza -lah --grid -s modified --smart-group --group-directories-first --icons"
alias l="eza -ah --grid -s modified --smart-group --group-directories-first --icons"
alias tree="eza --tree --icons --tree"
alias cat="${pkgs.bat}/bin/bat --paging=never --theme gruvbox-dark"
alias us="systemctl --user"
alias rs="sudo systemctl"
alias zed="zeditor"
alias nl="nl -ba"
alias cp="cp -riv"
alias mv="mv -iv"
alias mkdir="mkdir -pv"
alias less="bat -p --theme gruvbox-dark"
alias myip="curl ip.severijnse.eu"
alias pscpu="ps -eo pid,ppid,cmd,%mem,%cpu,etime --sort=-%cpu | head -n 21"
alias psmem="ps -eo pid,ppid,cmd,%mem,%cpu,etime --sort=-%mem | head -n 21"
alias weer="weather"
alias v="nvim"
alias copy="wl-copy"
alias send="croc"
alias img="loupe"
alias cat-md="glow"
alias du="dust"
alias df="duf"
'';
};
};
+8 -9
View File
@@ -1,20 +1,20 @@
{ config, pkgs, ... }:
let
{
config,
pkgs,
...
}: let
configFile = "starship/starship.toml";
toTOML = (pkgs.formats.toml {}).generate;
in
{
in {
environment.sessionVariables = {
STARSHIP_CONFIG = "${config.xdg.configHome}/${configFile}";
STARSHIP_LOG = "error";
};
users.users.someone.packages = [ pkgs.starship ];
users.users.someone.packages = [pkgs.starship];
xdg.configFile = {
"${configFile}".source = toTOML "starship.toml" {
"$schema" = "https://starship.rs/config-schema.json";
add_newline = true;
@@ -137,7 +137,6 @@ in
starship init fish | source
'';
"fish/completions/starship.fish".source =
"${pkgs.starship}/share/fish/vendor_completions.d/starship.fish";
"fish/completions/starship.fish".source = "${pkgs.starship}/share/fish/vendor_completions.d/starship.fish";
};
}
+105 -106
View File
@@ -1,8 +1,7 @@
{ pkgs, ... }:
let
languages = import ./_languages.nix { inherit pkgs; };
{pkgs, ...}: let
languages = import ./_languages.nix {inherit pkgs;};
providers = import ./_providers.nix;
skills = import ./_skills.nix { inherit pkgs; };
skills = import ./_skills.nix {inherit pkgs;};
inherit (pkgs) opencode;
@@ -23,7 +22,7 @@ let
'';
opencodeWrapped =
pkgs.runCommand "opencode-wrapped" {
buildInputs = [ pkgs.makeWrapper ];
buildInputs = [pkgs.makeWrapper];
} ''
mkdir -p $out/bin
makeWrapper ${opencodeInitScript} $out/bin/opencode \
@@ -36,110 +35,110 @@ in {
users.users.someone.packages = [
opencodeWrapped
];
xdg.configFile = {
"${configFile}".text = builtins.toJSON {
"$schema" = "https://opencode.ai/config.json";
plugin = [
"opencode-antigravity-auth@latest"
"@tarquinen/opencode-dcp@latest"
"oh-my-openagent@latest"
];
model = "google/antigravity-gemini-3-flash";
small_model = "opencode/big-pickle";
autoupdate = false;
agent = {
build = { model = "opencode/nemotron-3-super-free"; };
plan = { model = "opencode/big-pickle"; };
task = { model = "opencode/nemotron-3-super-free"; };
"sisyphus-junior" = { model = "opencode/nemotron-3-super-free"; };
explore = { model = "opencode/minimax-m2.5-free"; };
general = { model = "opencode/big-pickle"; };
oracle = { model = "opencode/nemotron-3-super-free"; };
"ultrabrain" = { model = "opencode/nemotron-3-super-free"; };
"deep" = { model = "opencode/nemotron-3-super-free"; };
"quick" = { model = "opencode/gpt-5-nano"; };
"artistry" = { model = "opencode/nemotron-3-super-free"; };
"visual-engineering" = { model = "opencode/hy3-preview-free"; };
"writing" = { model = "opencode/hy3-preview-free"; };
};
share = "disabled";
disabled_providers = [
"amazon-bedrock"
"anthropic"
"azure-openai"
"azure-cognitive-services"
"baseten"
"cerebras"
"cloudflare-ai-gateway"
"cortecs"
"deep-infra"
"fireworks-ai"
"google-vertex-ai"
"groq"
"hugging-face"
"helicone"
"llama.cpp"
"io-net"
"lmstudio"
"moonshot-ai"
"nebius-token-factory"
"ollama"
"ollama-cloud"
"openai"
"sap-ai-core"
"ovhcloud-ai-endpoints"
"together-ai"
"venice-ai"
"xai"
"zai"
"zenmux"
];
enabled_providers = [ "opencode" "google" "openrouter" "deepseek" "nvidia" "alibaba" "mistral" "cloudflare-workers-ai" ];
mcp = {
gh_grep = {
type = "remote";
url = "https://mcp.grep.app/";
enabled = true;
timeout = 10000;
};
deepwiki = {
type = "remote";
url = "https://mcp.deepwiki.com/mcp";
enabled = true;
timeout = 10000;
};
context7 = {
type = "remote";
url = "https://mcp.context7.com/mcp";
enabled = true;
timeout = 10000;
};
};
inherit (languages) formatter lsp;
provider = providers.config;
xdg.configFile = {
"${configFile}".text = builtins.toJSON {
"$schema" = "https://opencode.ai/config.json";
plugin = [
"opencode-antigravity-auth@latest"
"@tarquinen/opencode-dcp@latest"
"oh-my-openagent@latest"
];
model = "google/antigravity-gemini-3-flash";
small_model = "opencode/big-pickle";
autoupdate = false;
agent = {
build = {model = "opencode/nemotron-3-super-free";};
plan = {model = "opencode/big-pickle";};
task = {model = "opencode/nemotron-3-super-free";};
"sisyphus-junior" = {model = "opencode/nemotron-3-super-free";};
explore = {model = "opencode/minimax-m2.5-free";};
general = {model = "opencode/big-pickle";};
oracle = {model = "opencode/nemotron-3-super-free";};
"ultrabrain" = {model = "opencode/nemotron-3-super-free";};
"deep" = {model = "opencode/nemotron-3-super-free";};
"quick" = {model = "opencode/gpt-5-nano";};
"artistry" = {model = "opencode/nemotron-3-super-free";};
"visual-engineering" = {model = "opencode/hy3-preview-free";};
"writing" = {model = "opencode/hy3-preview-free";};
};
"opencode/oh-my-openagent.json".text = builtins.toJSON {
"$schema" = "https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/master/assets/oh-my-opencode.schema.json";
agents = {
"sisyphus-junior" = { model = "opencode/nemotron-3-super-free"; };
share = "disabled";
disabled_providers = [
"amazon-bedrock"
"anthropic"
"azure-openai"
"azure-cognitive-services"
"baseten"
"cerebras"
"cloudflare-ai-gateway"
"cortecs"
"deep-infra"
"fireworks-ai"
"google-vertex-ai"
"groq"
"hugging-face"
"helicone"
"llama.cpp"
"io-net"
"lmstudio"
"moonshot-ai"
"nebius-token-factory"
"ollama"
"ollama-cloud"
"openai"
"sap-ai-core"
"ovhcloud-ai-endpoints"
"together-ai"
"venice-ai"
"xai"
"zai"
"zenmux"
];
enabled_providers = ["opencode" "google" "openrouter" "deepseek" "nvidia" "alibaba" "mistral" "cloudflare-workers-ai"];
mcp = {
gh_grep = {
type = "remote";
url = "https://mcp.grep.app/";
enabled = true;
timeout = 10000;
};
categories = {
"quick" = { model = "opencode/gpt-5-nano"; };
"ultrabrain" = { model = "opencode/nemotron-3-super-free"; };
"deep" = { model = "opencode/nemotron-3-super-free"; };
"visual-engineering" = { model = "opencode/hy3-preview-free"; };
"writing" = { model = "opencode/hy3-preview-free"; };
"unspecified-low" = { model = "opencode/gpt-5-nano"; };
"unspecified-high" = { model = "opencode/nemotron-3-super-free"; };
deepwiki = {
type = "remote";
url = "https://mcp.deepwiki.com/mcp";
enabled = true;
timeout = 10000;
};
context7 = {
type = "remote";
url = "https://mcp.context7.com/mcp";
enabled = true;
timeout = 10000;
};
};
"${tuiFile}".text = builtins.toJSON {
"$schema" = "https://opencode.ai/tui.json";
theme = "gruvbox";
};
"opencode/skill".source = skills.skillsSource + "/skill";
inherit (languages) formatter lsp;
provider = providers.config;
};
"opencode/oh-my-openagent.json".text = builtins.toJSON {
"$schema" = "https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/master/assets/oh-my-opencode.schema.json";
agents = {
"sisyphus-junior" = {model = "opencode/nemotron-3-super-free";};
};
categories = {
"quick" = {model = "opencode/gpt-5-nano";};
"ultrabrain" = {model = "opencode/nemotron-3-super-free";};
"deep" = {model = "opencode/nemotron-3-super-free";};
"visual-engineering" = {model = "opencode/hy3-preview-free";};
"writing" = {model = "opencode/hy3-preview-free";};
"unspecified-low" = {model = "opencode/gpt-5-nano";};
"unspecified-high" = {model = "opencode/nemotron-3-super-free";};
};
};
"${tuiFile}".text = builtins.toJSON {
"$schema" = "https://opencode.ai/tui.json";
theme = "gruvbox";
};
"opencode/skill".source = skills.skillsSource + "/skill";
};
}
+30 -31
View File
@@ -3,38 +3,37 @@
pkgs,
...
}: {
users.users.someone.packages = with pkgs;
[
# archives
zip
unzip
unrar
ouch
users.users.someone.packages = with pkgs; [
# archives
zip
unzip
unrar
ouch
# misc
mako
libnotify
fontconfig
# misc
mako
libnotify
fontconfig
# utils
dust
duf
fd
file
killall
jq
ps_mem
inshellisense
# utils
dust
duf
fd
file
killall
jq
ps_mem
inshellisense
fum
gtt
meteor-git
nix-search-tv
scope-tui
tuicam
wiremix
zfxtop
opencode
loupe
];
fum
gtt
meteor-git
nix-search-tv
scope-tui
tuicam
wiremix
zfxtop
opencode
loupe
];
}