SHIT
This commit is contained in:
+18
-17
@@ -21,25 +21,26 @@
|
||||
enable = true;
|
||||
|
||||
extraPackages = with pkgs; [
|
||||
rust-analyzer
|
||||
# rust-analyzer
|
||||
typescript-language-server
|
||||
];
|
||||
context = ''
|
||||
Instructions:
|
||||
Instructions:
|
||||
|
||||
- Do NOT preemptively load all references - use lazy loading based on actual need
|
||||
- When loaded, treat content as mandatory instructions that override defaults
|
||||
- Follow references recursively when needed
|
||||
- Do NOT preemptively load all references - use lazy loading based on actual need
|
||||
- When loaded, treat content as mandatory instructions that override defaults
|
||||
- Follow references recursively when needed
|
||||
|
||||
- NO EMOJIS
|
||||
- NO EMOJIS
|
||||
- If you've been looking a lot for something you cant seem to find and you havent been explicitly told to keep going, you're allowed to say 'i cant find it'
|
||||
'';
|
||||
settings = {
|
||||
"lsp" = true;
|
||||
plugin = [
|
||||
"@tarquinen/opencode-dcp@latest"
|
||||
"@xberg-io/opencode-xberg"
|
||||
"@xberg-io/opencode-crawlberg"
|
||||
"@xberg-io/opencode-html-to-markdown"
|
||||
# "@xberg-io/opencode-crawlberg"
|
||||
# "@xberg-io/opencode-html-to-markdown"
|
||||
"@xberg-io/opencode-liter-llm"
|
||||
"opencode-plugin-litellm@latest"
|
||||
"@dietrichgebert/ponytail"
|
||||
@@ -51,7 +52,7 @@
|
||||
# Replace/extend the per-model system prompt via
|
||||
# ~/.config/opencode/system-prompts.json
|
||||
# (https://github.com/kmcquade/opencode-sysprompt-override-plugin)
|
||||
"opencode-sysprompt-override@latest"
|
||||
# "opencode-sysprompt-override@latest"
|
||||
];
|
||||
provider.litellm = {
|
||||
npm = "@ai-sdk/openai-compatible";
|
||||
@@ -68,14 +69,14 @@
|
||||
apiKey = "{env:OPENCODE_GO_API_KEY}";
|
||||
};
|
||||
};
|
||||
provider.commandcode = {
|
||||
npm = "@ai-sdk/openai-compatible";
|
||||
name = "Command Code";
|
||||
options = {
|
||||
baseURL = "https://api.commandcode.ai/provider/v1";
|
||||
apiKey = "{env:COMMANDCODE_API_KEY}";
|
||||
};
|
||||
};
|
||||
# provider.commandcode = {
|
||||
# npm = "@ai-sdk/openai-compatible";
|
||||
# name = "Command Code";
|
||||
# options = {
|
||||
# baseURL = "https://api.commandcode.ai/provider/v1";
|
||||
# apiKey = "{env:COMMANDCODE_API_KEY}";
|
||||
# };
|
||||
# };
|
||||
};
|
||||
# TUI plugin: token-tracker (https://github.com/eserete/opencode-token-tracker)
|
||||
tui = {
|
||||
|
||||
+57
-14
@@ -16,23 +16,20 @@
|
||||
# pkgs.lean-lsp-mcp
|
||||
];
|
||||
settings = {
|
||||
"defaultProvider" = "opencode-go";
|
||||
"defaultModel" = "mimo-v2.5";
|
||||
"defaultThinkingLevel" = "medium";
|
||||
"litellm" = {
|
||||
"providers" = {
|
||||
"litellm" = {
|
||||
"displayName" = "scuggo";
|
||||
"baseUrl" = "https://ai-proxy.fwds.scug.io";
|
||||
"apiKey" = "$SCUG_IO_API_KEY";
|
||||
"compat" = {
|
||||
"sendSessionAffinityHeaders" = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
"skills" = {
|
||||
"enabled" = true;
|
||||
};
|
||||
"compat" = {
|
||||
"sendSessionAffinityHeaders" = true;
|
||||
};
|
||||
};
|
||||
"mcp" = {
|
||||
"enabled" = true;
|
||||
@@ -66,7 +63,8 @@
|
||||
"npm:pi-opencode-go-cache"
|
||||
"npm:@pi-vault/pi-dcp"
|
||||
"git:github.com/DietrichGebert/ponytail"
|
||||
"npm:pi-commandcode-provider"
|
||||
"npm:pi-open-tui"
|
||||
# "npm:pi-commandcode-provider"
|
||||
];
|
||||
};
|
||||
context = ''
|
||||
@@ -173,20 +171,26 @@
|
||||
"type" = "api_key";
|
||||
"key" = "$OPENCODE_GO_API_KEY";
|
||||
};
|
||||
"command-code" = {
|
||||
"type" = "api_key";
|
||||
"key" = "$COMMANDCODE_API_KEY";
|
||||
};
|
||||
# "command-code" = {
|
||||
# "type" = "api_key";
|
||||
# "key" = "$COMMANDCODE_API_KEY";
|
||||
# };
|
||||
};
|
||||
};
|
||||
|
||||
# Cache/routing compat overrides (provider-level minimal)
|
||||
home.file.".pi/agent/models.json" = {
|
||||
text = builtins.toJSON {
|
||||
providers = {
|
||||
"providers" = {
|
||||
"opencode" = {
|
||||
"compat" = {
|
||||
"sendSessionAffinityHeaders" = true;
|
||||
};
|
||||
};
|
||||
"opencode-go" = {
|
||||
compat = {
|
||||
supportsLongCacheRetention = true;
|
||||
"compat" = {
|
||||
"supportsLongCacheRetention" = true;
|
||||
"sendSessionAffinityHeaders" = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -223,6 +227,45 @@
|
||||
};
|
||||
};
|
||||
|
||||
# open-tui.json config
|
||||
home.file.".pi/agent/open-tui.json" = {
|
||||
text = builtins.toJSON {
|
||||
enabled = true;
|
||||
settingsLanguage = "en";
|
||||
cursorStyle = "block";
|
||||
fullscreen = {
|
||||
wheelScrollLines = 4;
|
||||
};
|
||||
icons = {
|
||||
mode = "auto";
|
||||
};
|
||||
footerSegments = {
|
||||
cwd = true;
|
||||
sessionName = false;
|
||||
gitBranch = true;
|
||||
gitStatus = true;
|
||||
gitCommit = false;
|
||||
runtime = true;
|
||||
context = true;
|
||||
tokens = true;
|
||||
cost = true;
|
||||
extensionStatuses = false;
|
||||
};
|
||||
telemetry = {
|
||||
enabled = true;
|
||||
tps = false;
|
||||
ttft = false;
|
||||
duration = true;
|
||||
tokens = true;
|
||||
stalls = true;
|
||||
cost = true;
|
||||
};
|
||||
thinkingPeek = {
|
||||
lines = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# pi-spark config
|
||||
home.file.".pi/agent/spark.json" = {
|
||||
text = builtins.toJSON {
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
doloro-settings = {
|
||||
includes = [
|
||||
modules.dunst
|
||||
modules.hyprlock
|
||||
];
|
||||
homeManager =
|
||||
{
|
||||
@@ -88,7 +89,7 @@
|
||||
layout = [
|
||||
{
|
||||
label = "lock";
|
||||
action = "loginctl lock-session";
|
||||
action = "hyprlock";
|
||||
text = "Lock";
|
||||
keybind = "l";
|
||||
}
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
{ modules, ... }:
|
||||
{
|
||||
modules.hyprlock = {
|
||||
homeManager =
|
||||
_:
|
||||
let
|
||||
# Palette extracted from the hyprpaper wallpaper so the input field
|
||||
# matches the background. Regenerate and update when Wallpaper.jpg
|
||||
# changes:
|
||||
# nix run nixpkgs#matugen -- image ~/Wallpaper.jpg -m dark \
|
||||
# --source-color-index 0 --dry-run --show-colors
|
||||
#
|
||||
# name (matugen token) hex rgb()
|
||||
primary = "rgb(135, 209, 235)"; # #87D1EB accent / success
|
||||
tertiary = "rgb(194, 195, 235)"; # #C2C3EB capslock
|
||||
error = "rgb(255, 180, 171)"; # #FFB4AB failure
|
||||
outline = "rgb(137, 146, 150)"; # #899296 neutral border
|
||||
on_surface = "rgb(222, 227, 230)"; # #DEE3E6 text/dots
|
||||
inner_color = "rgba(27, 32, 35, 0.6)"; # #1B2023 @ 60%
|
||||
in
|
||||
{
|
||||
programs.hyprlock = {
|
||||
enable = true;
|
||||
settings = {
|
||||
# Reuse the hyprpaper wallpaper (see doloro-settings hyprpaper
|
||||
# config) as the lock screen background. monitor = "" covers every
|
||||
# output.
|
||||
background = [
|
||||
{
|
||||
monitor = "";
|
||||
path = "/home/doloro/Wallpaper.jpg";
|
||||
}
|
||||
];
|
||||
# hyprlock has no input-field by default, so one must be declared
|
||||
# explicitly or there is no password prompt to unlock with.
|
||||
input-field = [
|
||||
{
|
||||
monitor = "DP-2";
|
||||
size = "200, 50";
|
||||
position = "0, -80";
|
||||
rounding = 4;
|
||||
dots_center = true;
|
||||
dots_size = 0.33;
|
||||
hide_input = false;
|
||||
fade_on_empty = false;
|
||||
font_family = "CaskaydiaCove Nerd Font Mono";
|
||||
placeholder_text = ''<span foreground="##899296">Password...</span>'';
|
||||
fail_text = ''<i>$FAIL <b>($ATTEMPTS)</b></i>'';
|
||||
inherit inner_color;
|
||||
outer_color = outline;
|
||||
check_color = primary;
|
||||
fail_color = error;
|
||||
capslock_color = tertiary;
|
||||
font_color = on_surface;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
nixos.security.pam.services.hyprlock = { };
|
||||
};
|
||||
}
|
||||
@@ -42,6 +42,17 @@
|
||||
# nvim-cmp on rtp during the require check (cmp_lsp_rs requires cmp.types.lsp at load time)
|
||||
dependencies = [ pkgs.vimPlugins.nvim-cmp ];
|
||||
};
|
||||
treesitter-rhai-grammar = pkgs.tree-sitter.buildGrammar {
|
||||
language = "rhai";
|
||||
version = "0.0.0+rev=4ac7384";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "elkowar";
|
||||
repo = "tree-sitter-rhai";
|
||||
rev = "4ac7384d487ffcb54e746ef1569585a749370c5b";
|
||||
hash = "sha256-XGGcEGHke/O00STKqwSk9jGj91Xm2LE2KxwwX5+bBg0=";
|
||||
};
|
||||
meta.homepage = "https://github.com/elkowar/tree-sitter-rhai";
|
||||
};
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
@@ -298,7 +309,7 @@
|
||||
wakatime.enable = true;
|
||||
treesitter = {
|
||||
enable = true;
|
||||
grammarPackages = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [
|
||||
grammarPackages = (with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [
|
||||
bash
|
||||
css
|
||||
html
|
||||
@@ -318,7 +329,7 @@
|
||||
xml
|
||||
yaml
|
||||
svelte
|
||||
];
|
||||
]) ++ [ treesitter-rhai-grammar ];
|
||||
settings = {
|
||||
highlight.enable = true;
|
||||
indent.enable = false;
|
||||
@@ -328,6 +339,7 @@
|
||||
extraPlugins = with pkgs; [
|
||||
tiny-code-action
|
||||
cmp-lsp-rs
|
||||
treesitter-rhai-grammar
|
||||
];
|
||||
opts = {
|
||||
number = true;
|
||||
|
||||
@@ -14,6 +14,12 @@
|
||||
imports = [
|
||||
inputs.sops-nix.homeManagerModules.sops
|
||||
];
|
||||
nixpkgs.overlays = [
|
||||
# Sops's go version went EOL, https://github.com/Mic92/sops-nix/issues/983
|
||||
(final: prev: {
|
||||
buildGo125Module = prev.buildGoModule;
|
||||
})
|
||||
];
|
||||
sops = {
|
||||
age.keyFile = "/home/doloro/.config/sops/age/keys.txt"; # must have no password!
|
||||
# I HATE YOU
|
||||
@@ -26,6 +32,12 @@
|
||||
imports = [
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
];
|
||||
nixpkgs.overlays = [
|
||||
# Sops's go version went EOL, https://github.com/Mic92/sops-nix/issues/983
|
||||
(final: prev: {
|
||||
buildGo125Module = prev.buildGoModule;
|
||||
})
|
||||
];
|
||||
sops = {
|
||||
# age.keyFile = "/etc/ssh/ssh_host_ed25519_key";
|
||||
defaultSopsFile = ./content/secrets.yaml;
|
||||
|
||||
Reference in New Issue
Block a user