.
This commit is contained in:
parent
73ff9ee8ee
commit
664eb70e8c
14 changed files with 698 additions and 495 deletions
307
home/user.nix
307
home/user.nix
|
|
@ -7,13 +7,13 @@
|
|||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
HOME = "/home/user";
|
||||
in
|
||||
{
|
||||
home.username = "user";
|
||||
home.homeDirectory = "/home/user";
|
||||
home.homeDirectory = HOME;
|
||||
home.stateVersion = "25.11";
|
||||
home.sessionVariables = {
|
||||
HOME = "/home/user";
|
||||
};
|
||||
|
||||
imports = [
|
||||
./nvim
|
||||
|
|
@ -21,15 +21,15 @@
|
|||
];
|
||||
|
||||
sops.defaultSopsFile = ../secrets/home.yaml;
|
||||
sops.age.keyFile = "/.persist/${config.home.homeDirectory}/.config/sops/age/keys.txt";
|
||||
sops.age.keyFile = "/.persist/${HOME}/.config/sops/age/keys.txt";
|
||||
sops.secrets."user/ssh/desktop" = {
|
||||
path = "${config.home.homeDirectory}/.ssh/desktop";
|
||||
path = "${HOME}/.ssh/desktop";
|
||||
mode = "0600";
|
||||
};
|
||||
home.file."/.ssh/desktop.pub".text =
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILABd/iSJ4gn/ystDqNxLJTG0n0z5VIC9YXlmdUfOhHf desktop@icefox.sh";
|
||||
sops.secrets."user/ssh/legacy_ed25519" = {
|
||||
path = "${config.home.homeDirectory}/.ssh/legacy_ed25519";
|
||||
path = "${HOME}/.ssh/legacy_ed25519";
|
||||
mode = "0600";
|
||||
};
|
||||
home.file."/.ssh/legacy_ed25519.pub".text =
|
||||
|
|
@ -51,18 +51,21 @@
|
|||
# "Xft.rgba" = "rgb";
|
||||
# };
|
||||
|
||||
# systemd.user.services.xrdb-configure = {
|
||||
# Unit = {
|
||||
# Description = "Load Xresources";
|
||||
# };
|
||||
# Intall = {
|
||||
# WantedBy = [ "graphical-session.target" ];
|
||||
# };
|
||||
# Service = {
|
||||
# ExecStart = "${pkgs.xrdb}/bin/xrdb -merge ${config.home.homeDirectory}/.Xresources";
|
||||
# Type = "oneshot";
|
||||
# };
|
||||
# };
|
||||
systemd.user.services.waypipe-socket = {
|
||||
Unit = {
|
||||
Description = "start waypipe client";
|
||||
};
|
||||
Install = {
|
||||
WantedBy = [ "graphical-session.target" ];
|
||||
};
|
||||
Service = {
|
||||
ExecStart = "${pkgs.waypipe}/bin/waypipe --socket /tmp/waypipe.sock client";
|
||||
ExecStartPost = "${pkgs.acl}/bin/setfacl -m u:agent:rw /tmp/waypipe.sock";
|
||||
RuntimeDirectory = "waypipe";
|
||||
Type = "simple";
|
||||
Restart = "on-failure";
|
||||
};
|
||||
};
|
||||
sops.secrets."user/gpg/legacy_fnzr" = { };
|
||||
home.activation.importGpgKey = config.lib.dag.entryAfter [ "writeBoundary" ] ''
|
||||
if [[ -f "${config.sops.secrets."user/gpg/legacy_fnzr".path}" ]]; then
|
||||
|
|
@ -92,225 +95,6 @@
|
|||
};
|
||||
};
|
||||
|
||||
# xdg.configFile."opencode/opencode.json".text = builtins.toJSON {
|
||||
# "$schema" = "https://opencode.ai/config.json";
|
||||
# plugin = [ "opencode-antigravity-auth@latest" ];
|
||||
# provider = {
|
||||
# google = {
|
||||
# models = {
|
||||
# antigravity-gemini-3-pro = {
|
||||
# name = "Gemini 3 Pro (Antigravity)";
|
||||
# limit = {
|
||||
# context = 1048576;
|
||||
# output = 65535;
|
||||
# };
|
||||
# modalities = {
|
||||
# input = [
|
||||
# "text"
|
||||
# "image"
|
||||
# "pdf"
|
||||
# ];
|
||||
# output = [ "text" ];
|
||||
# };
|
||||
# variants = {
|
||||
# low = {
|
||||
# thinkingLevel = "low";
|
||||
# };
|
||||
# high = {
|
||||
# thinkingLevel = "high";
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# antigravity-gemini-3-flash = {
|
||||
# name = "Gemini 3 Flash (Antigravity)";
|
||||
# limit = {
|
||||
# context = 1048576;
|
||||
# output = 65536;
|
||||
# };
|
||||
# modalities = {
|
||||
# input = [
|
||||
# "text"
|
||||
# "image"
|
||||
# "pdf"
|
||||
# ];
|
||||
# output = [ "text" ];
|
||||
# };
|
||||
# variants = {
|
||||
# minimal = {
|
||||
# thinkingLevel = "minimal";
|
||||
# };
|
||||
# low = {
|
||||
# thinkingLevel = "low";
|
||||
# };
|
||||
# medium = {
|
||||
# thinkingLevel = "medium";
|
||||
# };
|
||||
# high = {
|
||||
# thinkingLevel = "high";
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# antigravity-claude-sonnet-4-5 = {
|
||||
# name = "Claude Sonnet 4.5 (Antigravity)";
|
||||
# limit = {
|
||||
# context = 200000;
|
||||
# output = 64000;
|
||||
# };
|
||||
# modalities = {
|
||||
# input = [
|
||||
# "text"
|
||||
# "image"
|
||||
# "pdf"
|
||||
# ];
|
||||
# output = [ "text" ];
|
||||
# };
|
||||
# };
|
||||
# antigravity-claude-sonnet-4-5-thinking = {
|
||||
# name = "Claude Sonnet 4.5 Thinking (Antigravity)";
|
||||
# limit = {
|
||||
# context = 200000;
|
||||
# output = 64000;
|
||||
# };
|
||||
# modalities = {
|
||||
# input = [
|
||||
# "text"
|
||||
# "image"
|
||||
# "pdf"
|
||||
# ];
|
||||
# output = [ "text" ];
|
||||
# };
|
||||
# variants = {
|
||||
# low = {
|
||||
# thinkingConfig = {
|
||||
# thinkingBudget = 8192;
|
||||
# };
|
||||
# };
|
||||
# max = {
|
||||
# thinkingConfig = {
|
||||
# thinkingBudget = 32768;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# antigravity-claude-opus-4-5-thinking = {
|
||||
# name = "Claude Opus 4.5 Thinking (Antigravity)";
|
||||
# limit = {
|
||||
# context = 200000;
|
||||
# output = 64000;
|
||||
# };
|
||||
# modalities = {
|
||||
# input = [
|
||||
# "text"
|
||||
# "image"
|
||||
# "pdf"
|
||||
# ];
|
||||
# output = [ "text" ];
|
||||
# };
|
||||
# variants = {
|
||||
# low = {
|
||||
# thinkingConfig = {
|
||||
# thinkingBudget = 8192;
|
||||
# };
|
||||
# };
|
||||
# max = {
|
||||
# thinkingConfig = {
|
||||
# thinkingBudget = 32768;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# antigravity-claude-opus-4-6-thinking = {
|
||||
# name = "Claude Opus 4.6 Thinking (Antigravity)";
|
||||
# limit = {
|
||||
# context = 200000;
|
||||
# output = 64000;
|
||||
# };
|
||||
# modalities = {
|
||||
# input = [
|
||||
# "text"
|
||||
# "image"
|
||||
# "pdf"
|
||||
# ];
|
||||
# output = [ "text" ];
|
||||
# };
|
||||
# variants = {
|
||||
# low = {
|
||||
# thinkingConfig = {
|
||||
# thinkingBudget = 8192;
|
||||
# };
|
||||
# };
|
||||
# max = {
|
||||
# thinkingConfig = {
|
||||
# thinkingBudget = 32768;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# "gemini-2.5-flash" = {
|
||||
# name = "Gemini 2.5 Flash (Gemini CLI)";
|
||||
# limit = {
|
||||
# context = 1048576;
|
||||
# output = 65536;
|
||||
# };
|
||||
# modalities = {
|
||||
# input = [
|
||||
# "text"
|
||||
# "image"
|
||||
# "pdf"
|
||||
# ];
|
||||
# output = [ "text" ];
|
||||
# };
|
||||
# };
|
||||
# "gemini-2.5-pro" = {
|
||||
# name = "Gemini 2.5 Pro (Gemini CLI)";
|
||||
# limit = {
|
||||
# context = 1048576;
|
||||
# output = 65536;
|
||||
# };
|
||||
# modalities = {
|
||||
# input = [
|
||||
# "text"
|
||||
# "image"
|
||||
# "pdf"
|
||||
# ];
|
||||
# output = [ "text" ];
|
||||
# };
|
||||
# };
|
||||
# gemini-3-flash-preview = {
|
||||
# name = "Gemini 3 Flash Preview (Gemini CLI)";
|
||||
# limit = {
|
||||
# context = 1048576;
|
||||
# output = 65536;
|
||||
# };
|
||||
# modalities = {
|
||||
# input = [
|
||||
# "text"
|
||||
# "image"
|
||||
# "pdf"
|
||||
# ];
|
||||
# output = [ "text" ];
|
||||
# };
|
||||
# };
|
||||
# gemini-3-pro-preview = {
|
||||
# name = "Gemini 3 Pro Preview (Gemini CLI)";
|
||||
# limit = {
|
||||
# context = 1048576;
|
||||
# output = 65535;
|
||||
# };
|
||||
# modalities = {
|
||||
# input = [
|
||||
# "text"
|
||||
# "image"
|
||||
# "pdf"
|
||||
# ];
|
||||
# output = [ "text" ];
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
xdg.desktopEntries = {
|
||||
google-chrome = {
|
||||
name = "Google Chrome";
|
||||
|
|
@ -427,19 +211,20 @@
|
|||
xdg.userDirs = {
|
||||
enable = true;
|
||||
createDirectories = true;
|
||||
setSessionVariables = true;
|
||||
|
||||
download = "${config.home.homeDirectory}/downloads";
|
||||
documents = "${config.home.homeDirectory}/documents";
|
||||
desktop = "${config.home.homeDirectory}/desktop";
|
||||
pictures = "${config.home.homeDirectory}/pictures";
|
||||
music = "${config.home.homeDirectory}/music";
|
||||
videos = "${config.home.homeDirectory}/videos";
|
||||
templates = "${config.home.homeDirectory}";
|
||||
publicShare = "${config.home.homeDirectory}";
|
||||
download = "${HOME}/downloads";
|
||||
documents = "${HOME}/documents";
|
||||
desktop = "${HOME}/desktop";
|
||||
pictures = "${HOME}/pictures";
|
||||
music = "${HOME}/music";
|
||||
videos = "${HOME}/videos";
|
||||
templates = "${HOME}";
|
||||
publicShare = "${HOME}";
|
||||
|
||||
extraConfig = {
|
||||
SCREENSHOTS = "${config.home.homeDirectory}/pictures/screenshots";
|
||||
XDG_CACHE_HOME = "${config.home.homeDirectory}/.cache";
|
||||
SCREENSHOTS = "$HOME/pictures/screenshots";
|
||||
XDG_CACHE_HOME = "$HOME/.cache";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -475,7 +260,7 @@
|
|||
enable = true;
|
||||
lfs.enable = true;
|
||||
signing = {
|
||||
key = "${config.home.homeDirectory}/.ssh/desktop.pub";
|
||||
key = "${HOME}/.ssh/desktop.pub";
|
||||
signByDefault = true;
|
||||
};
|
||||
includes = [
|
||||
|
|
@ -485,6 +270,7 @@
|
|||
user = {
|
||||
name = "felipematos";
|
||||
email = "5471818+fnzr@users.noreply.github.com";
|
||||
signingkey = "${HOME}/.ssh/desktop.pub";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -493,7 +279,7 @@
|
|||
user = {
|
||||
email = "felipe@icefox.sh";
|
||||
name = "icefox";
|
||||
signingkey = "${config.home.homeDirectory}/.ssh/desktop.pub";
|
||||
signingkey = "${HOME}/.ssh/desktop.pub";
|
||||
};
|
||||
gpg.format = "ssh";
|
||||
commit.gpgsign = true;
|
||||
|
|
@ -537,12 +323,20 @@
|
|||
help = {
|
||||
autocorrect = "prompt";
|
||||
};
|
||||
safe = {
|
||||
directory = [
|
||||
"/home/agent/*"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
xrdb
|
||||
(writeShellScriptBin "agent" ''
|
||||
machinectl shell agent@ ${waypipe}/bin/waypipe --socket /run/waypipe.sock server fish
|
||||
'')
|
||||
(writeShellApplication {
|
||||
name = "tmux-sessionizer";
|
||||
runtimeInputs = [
|
||||
|
|
@ -551,20 +345,7 @@
|
|||
];
|
||||
text = builtins.readFile ./bin/tmux-sessionizer;
|
||||
})
|
||||
(writeShellScriptBin "opencode" ''
|
||||
ssh -t user@192.168.77.2 "
|
||||
cd $(pwd) 2>/dev/null || cd \$(mktemp -d)
|
||||
opencode $*
|
||||
"
|
||||
'')
|
||||
(writeShellScriptBin "claude" ''
|
||||
ssh -t user@192.168.77.2 "
|
||||
cd $(pwd) 2>/dev/null || cd \$(mktemp -d)
|
||||
claude $*
|
||||
"
|
||||
'')
|
||||
];
|
||||
|
||||
custom.tmux.enable = true;
|
||||
custom.neovim = {
|
||||
enable = true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue