before we get too crazy

This commit is contained in:
atagen 2026-02-25 14:53:38 +11:00
parent fe668b5b9e
commit 453d780695
21 changed files with 612 additions and 291 deletions

View file

@ -54,21 +54,11 @@ scope "user.desktops.niri.binds"
"toggle-tag"
"99"
];
"Mod+Shift+Minus".spawn = [
"tagctl"
"toggle"
"99"
];
"Mod+Equal".spawn = [
"tagctl"
"toggle-tag"
"101"
];
"Mod+Shift+Equal".spawn = [
"tagctl"
"toggle"
"101"
];
"Mod+D".spawn = [
"qs"
"ipc"
@ -86,7 +76,6 @@ scope "user.desktops.niri.binds"
"logout"
"toggle"
];
# "Mod+Equal".spawn = (getAppName "passwordManager"); # niri-tag needs proper scratchpads smh
"Mod+Shift+Q".action = "close-window";
"Mod+Shift+S".action = "screenshot";
"Mod+R".action = "switch-preset-column-width";

View file

@ -2,93 +2,97 @@
lib,
pkgs,
scope,
inputs,
getFlakePkg,
...
}:
let
officialAddon = name: {
install_url = lib.strings.concatStrings [
"https://addons.mozilla.org/firefox/downloads/latest/"
name
"/latest.xpi"
];
installation_mode = "force_installed";
};
lock-false = {
Value = false;
Status = "locked";
};
lock-true = {
Value = true;
Status = "locked";
};
in
scope "programs.firefox" {
enable = true;
scope "apps.browser" <| getFlakePkg inputs.helium
# let
# officialAddon = name: {
# install_url = lib.strings.concatStrings [
# "https://addons.mozilla.org/firefox/downloads/latest/"
# name
# "/latest.xpi"
# ];
# installation_mode = "force_installed";
# };
# lock-false = {
# Value = false;
# Status = "locked";
# };
# lock-true = {
# Value = true;
# Status = "locked";
# };
# in
# scope "programs.firefox" {
# enable = true;
policies = {
DisableTelemetry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
DisableFirefoxAccounts = true;
DisableAccounts = true;
DisableFirefoxScreenshots = true;
DisableAppUpdate = true;
DisablePrivateBrowsing = true;
DontCheckDefaultBrowser = true;
# policies = {
# DisableTelemetry = true;
# DisableFirefoxStudies = true;
# EnableTrackingProtection = {
# Value = true;
# Locked = true;
# Cryptomining = true;
# Fingerprinting = true;
# };
# DisablePocket = true;
# DisableFirefoxAccounts = true;
# DisableAccounts = true;
# DisableFirefoxScreenshots = true;
# DisableAppUpdate = true;
# DisablePrivateBrowsing = true;
# DontCheckDefaultBrowser = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
DisplayBookmarksToolbar = "newtab"; # alternatives: "always" or "newtab"
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
SearchBar = "unified"; # alternative: "separate"
# OverrideFirstRunPage = "";
# OverridePostUpdatePage = "";
# DisplayBookmarksToolbar = "newtab"; # alternatives: "always" or "newtab"
# DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
# SearchBar = "unified"; # alternative: "separate"
ExtensionSettings = {
"*".installation_mode = "blocked"; # blocks all addons except the ones specified below
"uBlock0@raymondhill.net" = officialAddon "ublock-origin";
"addon@darkreader.org" = officialAddon "darkreader";
"vimium-c@gdh1995.cn" = officialAddon "vimium-c";
"{b86e4813-687a-43e6-ab65-0bde4ab75758}" = officialAddon "localcdn-fork-of-decentraleyes";
"jid1-5Fs7iTLscUaZBgwr@jetpack" = officialAddon "happy-bonobo-disable-webrtc";
"{446900e4-71c2-419f-a6a7-df9c091e268b}" = officialAddon "bitwarden-password-mananger";
};
# ExtensionSettings = {
# "*".installation_mode = "blocked"; # blocks all addons except the ones specified below
# "uBlock0@raymondhill.net" = officialAddon "ublock-origin";
# "addon@darkreader.org" = officialAddon "darkreader";
# "vimium-c@gdh1995.cn" = officialAddon "vimium-c";
# "{b86e4813-687a-43e6-ab65-0bde4ab75758}" = officialAddon "localcdn-fork-of-decentraleyes";
# "jid1-5Fs7iTLscUaZBgwr@jetpack" = officialAddon "happy-bonobo-disable-webrtc";
# "{446900e4-71c2-419f-a6a7-df9c091e268b}" = officialAddon "bitwarden-password-mananger";
# };
Preferences = {
"extensions.pocket.enabled" = lock-false;
"extensions.screenshots.disabled" = lock-true;
"browser.topsites.contile.enabled" = lock-false;
"browser.formfill.enable" = lock-false;
"browser.search.suggest.enabled" = lock-false;
"browser.search.suggest.enabled.private" = lock-false;
"browser.urlbar.suggest.searches" = lock-false;
"browser.urlbar.showSearchSuggestionsFirst" = lock-false;
"browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false;
"browser.newtabpage.activity-stream.feeds.snippets" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false;
"browser.newtabpage.activity-stream.showSponsored" = lock-false;
"browser.newtabpage.activity-stream.system.showSponsored" = lock-false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false;
};
};
# Preferences = {
# "extensions.pocket.enabled" = lock-false;
# "extensions.screenshots.disabled" = lock-true;
# "browser.topsites.contile.enabled" = lock-false;
# "browser.formfill.enable" = lock-false;
# "browser.search.suggest.enabled" = lock-false;
# "browser.search.suggest.enabled.private" = lock-false;
# "browser.urlbar.suggest.searches" = lock-false;
# "browser.urlbar.showSearchSuggestionsFirst" = lock-false;
# "browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false;
# "browser.newtabpage.activity-stream.feeds.snippets" = lock-false;
# "browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false;
# "browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false;
# "browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false;
# "browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false;
# "browser.newtabpage.activity-stream.showSponsored" = lock-false;
# "browser.newtabpage.activity-stream.system.showSponsored" = lock-false;
# "browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false;
# };
# };
# profiles.default = {
# id = 0;
# name = "Default";
# settings = {
# "browser.startup.homepage" = "about:blank";
# "browser.shell.didSkipDefaultBrowserCheckOnFirstRun" = true;
# "browser.policies.applied" = true;
# "widget.use-xdg-desktop-portal.file-picker" = 1;
# "widget.use-xdg-desktop-portal.mime-handler" = 1;
# };
# };
}
// (scope "apps.browser" <| pkgs.firefox)
# # profiles.default = {
# # id = 0;
# # name = "Default";
# # settings = {
# # "browser.startup.homepage" = "about:blank";
# # "browser.shell.didSkipDefaultBrowserCheckOnFirstRun" = true;
# # "browser.policies.applied" = true;
# # "widget.use-xdg-desktop-portal.file-picker" = 1;
# # "widget.use-xdg-desktop-portal.mime-handler" = 1;
# # };
# # };
# }
# // (scope "apps.browser" <| pkgs.firefox)
# TODO switch to helium

View file

@ -1,6 +1,7 @@
{ config, pkgs, ... }:
{ ... }:
{
user.packages = [ pkgs.element-desktop ];
user.packages = [
];
# hm.programs.firefox.webapps = {
# "Microsoft-Teams" = {
# url = "https://teams.microsoft.com";

View file

@ -53,3 +53,4 @@ window-rule {
clip-to-geometry true
}
xwayland-satellite { path "%SATELLITE%"; }
spawn-at-startup "systemctl" "--user" "start" "startup-sound.service"

View file

@ -4,13 +4,12 @@ import "launcher" as Launcher
import "logout" as Logout
// singletons
import "title"
import "tags"
import "tags"
import "rice"
import Quickshell
import Quickshell.Wayland
import QtQuick
import QtQuick.Controls
ShellRoot {
@ -18,9 +17,10 @@ ShellRoot {
Variants {
model: Quickshell.screens
Scope {
id: screenScope
property var modelData
PanelWindow {
screen: modelData
screen: screenScope.modelData
id: bg
anchors {
top: true
@ -163,7 +163,6 @@ ShellRoot {
implicitHeight: 22
implicitWidth: (Tags.keys.length !== undefined) ? Tags.keys.length * 13 + 24 : 37;
// implicitWidth:.width + 24
color: "transparent"
Rectangle {

View file

@ -8,7 +8,8 @@ Singleton {
id: data
property var tags: ({})
property var keys: []
Timer {
Timer {
id: reconnectTimer
running: false
repeat: true
@ -43,37 +44,41 @@ Singleton {
return d;
};
let t = {};
for (const k of Object.keys(data.tags)) {
t[k] = Object.assign({}, data.tags[k]);
}
if (event.TagEmpty) {
data.tags = ensure(data.tags, event.TagEmpty);
data.tags[event.TagEmpty].occupied = false;
t = ensure(t, event.TagEmpty);
t[event.TagEmpty].occupied = false;
} else if (event.TagOccupied) {
data.tags = ensure(data.tags, event.TagOccupied);
data.tags[event.TagOccupied].occupied = true;
t = ensure(t, event.TagOccupied);
t[event.TagOccupied].occupied = true;
} else if (event.TagUrgent) {
data.tags = ensure(data.tags, event.TagUrgent);
data.tags[event.TagUrgent].urgent = true;
t = ensure(t, event.TagUrgent);
t[event.TagUrgent].urgent = true;
} else if (event.TagEnabled) {
data.tags = ensure(data.tags, event.TagEnabled);
data.tags[event.TagEnabled].enabled = true;
t = ensure(t, event.TagEnabled);
t[event.TagEnabled].enabled = true;
} else if (event.TagDisabled) {
data.tags = ensure(data.tags, event.TagDisabled);
data.tags[event.TagDisabled].enabled = false;
t = ensure(t, event.TagDisabled);
t[event.TagDisabled].enabled = false;
} else if (event.TagExclusive) {
data.tags = ensure(data.tags, event.TagExclusive);
for (const [k] of Object.keys(data.tags)) {
data.tags[k].enabled = false;
t = ensure(t, event.TagExclusive);
for (const k of Object.keys(t)) {
t[k].enabled = false;
}
data.tags[event.TagExclusive].enabled = true;
t[event.TagExclusive].enabled = true;
} else if (event.TagFullState) {
data["tags"] = event.TagFullState;
for (const [k, v] of Object.entries(data.tags)) {
data.tags[k].id = k;
t = event.TagFullState;
for (const k of Object.keys(t)) {
t[k].id = k;
}
}
data.keys = Object.keys(data.tags);
data.tagsChanged();
data.keysChanged();
data.tags = t;
data.keys = Object.keys(t);
}
}
}

View file

@ -4,6 +4,7 @@
inputs,
mainUser,
getPkgs,
config,
...
}:
let
@ -20,8 +21,10 @@ in
services.stasis.enable = true;
quick.services = {
swaync = "${getExe pkgs.swaynotificationcenter}";
quickshell = "${getExe pkgs.quickshell}";
noti = "${getExe pkgs.swaynotificationcenter}";
shell = "${getExe pkgs.quickshell}";
pwManager = "${getExe config.apps.passwordManager}";
music = "${getExe config.apps.streamPlayer}";
};
environment.files."/home/${mainUser}/.config/quickshell" = {

View file

@ -12,6 +12,7 @@ let
inherit (config) rice;
in
{
imports = [
inputs.niri.nixosModules.niri
inputs.niri-tag.nixosModules.niri-tag
@ -41,17 +42,19 @@ in
(toString borders.gaps)
(toString borders.thickness)
palette.shortHex.bright.yellow
palette.shortHex.normal.yellow
palette.shortHex.normal.white
(lib.getExe xwayland-satellite)
]
template;
in
baseConfig;
};
user.packages = [
niri
xwayland-satellite
];
services.greetd = {
enable = true;
restart = false;
@ -67,11 +70,20 @@ in
initial_session = session;
};
};
programs.niri = {
enable = true;
package = niri;
};
services.niri-tag.enable = true;
services.niri-tag = {
enable = true;
# scratchpads = {
# "${config.apps.streamPlayer}" = 99;
# "${config.apps.passwordManager}" = 101;
# };
};
services.niri-s76-bridge.enable = true;
}

View file

@ -9,11 +9,10 @@
bunker.kernel = {
enable = true;
hardened = false;
cpuArch = "MZEN3";
version = "6.18";
hardened = false;
lto = "none";
trimmed = true;
};
services.scx = {
@ -21,17 +20,4 @@
scheduler = "scx_bpfland";
};
# nixpkgs.overlays = [
# (final: prev: {
# nvidia-open = prev.nvidia-open.override {
# patches = [
# (pkgs.fetchpatch {
# url = "https://github.com/CachyOS/CachyOS-PKGBUILDS/raw/refs/heads/master/nvidia/nvidia-utils/kernel-6.19.patch";
# hash = "";
# })
# ];
# };
# })
# ];
}

141
graphical/llm.nix Normal file
View file

@ -0,0 +1,141 @@
{
pkgs,
lib,
inputs,
scope,
...
}:
let
claude-code =
let
version = "2.1.52";
runtimeDeps = lib.makeBinPath (
[
pkgs.procps
pkgs.ripgrep
]
++ lib.optionals pkgs.stdenv.hostPlatform.isLinux [
pkgs.bubblewrap
pkgs.socat
]
);
patchScript = pkgs.writeScript "patch-claude-src" ''
#!${pkgs.python3}/bin/python3
import re, sys
W = rb"[\w$]+"
data = open(sys.argv[1], "rb").read()
pat = (rb"let (" + W + rb")=(" + W + rb")\((" + W + rb'),"CLAUDE\.md"\);'
rb"(" + W + rb")\.push\(\.\.\.(" + W + rb')\(\1,"Project",([^)]+)\)\)')
def agents(m):
v, pj, d, a, lf, rest = [m.group(i) for i in range(1, 7)]
return (b'for(let _f of["CLAUDE.md","AGENTS.md"]){let ' + v + b"=" + pj
+ b"(" + d + b",_f);" + a + b".push(..." + lf + b"(" + v
+ b',"Project",' + rest + b"))}")
data, n = re.subn(pat, agents, data)
sys.stderr.write(f"AGENTS.md: {n} site(s)\n")
data = data.replace(
b'case"macos":return"/Library/Application Support/ClaudeCode"',
b'case"macos":return"/etc/claude-code"',
)
# Enable hard-disabled slash commands: /btw, /files, /tag
for anchor, label in [
(b'name:"btw",description:"Ask a quick side question', b"/btw"),
(b'name:"files",description:"List all files currently in context"', b"/files"),
(b'name:"tag",userFacingName', b"/tag"),
]:
pos = data.find(anchor)
if pos < 0:
sys.stderr.write(f"{label.decode()}: NOT FOUND\n"); continue
window = data[pos:pos+500]
patched = window.replace(b"isEnabled:()=>!1", b"isEnabled:()=>!0", 1)
data = data[:pos] + patched + data[pos+500:]
sys.stderr.write(f"{label.decode()}: enabled\n")
# Bypass e2() for thinkback (e2 returns false when DISABLE_TELEMETRY is set)
data = data.replace(
b'e2("tengu_thinkback")',
b'!0||"tengu_thinkback"',
)
sys.stderr.write("thinkback: force-enabled\n")
# Enable custom keybindings (qA default is false, flip to true)
data = data.replace(
b'qA("tengu_keybinding_customization_release",!1)',
b'qA("tengu_keybinding_customization_release",!0)',
)
sys.stderr.write("keybindings: force-enabled\n")
# Force-enable remote control / bridge feature gate
data = data.replace(
b'function ek(){return qA("tengu_ccr_bridge",!1)}',
b'function ek(){return!0} ',
)
sys.stderr.write("remote-control: force-enabled\n")
# Fix Deno-compile bridge spawn: Deno compiled binaries intercept --flags
# as V8 flags. Rewrite spawn to go through env(1) which breaks the Deno
# runtime's flag parsing.
data = data.replace(
b'let O=iHz(A.execPath,$,',
b'let O=iHz("env",["--",A.execPath,...$],',
)
sys.stderr.write("bridge-spawn: patched via env(1)\n")
# Kill claude-developer-platform bundled skill (~400 tokens/turn dead weight)
data = data.replace(
b'name:"claude-developer-platform",description:`',
b'name:"claude-developer-platform",isEnabled:()=>!1,description:`',
)
sys.stderr.write("claude-developer-platform: killed\n")
pat = (rb"context_window:\{total_input_tokens:(" + W + rb"\(\)),"
rb"total_output_tokens:(" + W + rb"\(\)),"
rb"context_window_size:(" + W + rb"),"
rb"current_usage:(" + W + rb"),"
rb"used_percentage:(" + W + rb")\.used,"
rb"remaining_percentage:\5\.remaining\}")
rl = re.search(rb"(" + W + rb')=\{status:"allowed",unifiedRateLimitFallbackAvailable:!1,isUsingOverage:!1\}', data)
m = re.search(pat, data)
if m and rl:
ci, co, sz, u, p, r = *[m.group(i) for i in range(1, 6)], rl.group(1)
data = data.replace(m[0],
b"context_window:{...(" + u + b"||{}),"
b"context_window_size:" + sz + b",current_usage:" + u + b","
b"used_percentage:" + p + b".used,remaining_percentage:" + p + b".remaining,"
b"rate_limit:" + r + b",s_in:" + ci + b",s_out:" + co + b"}")
open(sys.argv[1], "wb").write(data)
'';
in
pkgs.writeShellScriptBin "claude" ''
set -euo pipefail
export DISABLE_AUTOUPDATER=1
export DISABLE_INSTALLATION_CHECKS=1
export USE_BUILTIN_RIPGREP=0
export PATH="${runtimeDeps}:${pkgs.deno}/bin:$PATH"
CACHE="''${XDG_CACHE_HOME:-$HOME/.cache}/claude-code"
BIN="$CACHE/claude-${version}"
if [ ! -x "$BIN" ]; then
mkdir -p "$CACHE"
DENO_DIR="$CACHE/.deno"
export DENO_DIR
deno cache "npm:@anthropic-ai/claude-code@${version}"
${patchScript} "$DENO_DIR/npm/registry.npmjs.org/@anthropic-ai/claude-code/${version}/cli.js"
deno compile --allow-all --output "$BIN" "npm:@anthropic-ai/claude-code@${version}" 2>&1
rm -rf "$DENO_DIR"
fi
exec "$BIN" "$@"
'';
in
(scope "apps.slopcode" <| claude-code)
// {
# required for loaderslop
programs.nix-ld.enable = true;
}

View file

@ -4,15 +4,14 @@
generator = lib.generators.toJSON { };
value = {
email = "boss@atagen.co";
pinentry = lib.getExe pkgs.pinentry-qt; # TODO this is fugly
pinentry = lib.getExe pkgs.pinentry-gtk2; # TODO this is fugly
base_url = "https://vault.lobotomise.me";
};
};
# bitwarden ? element ?
nixpkgs.config.permittedInsecurePackages = [
"electron-36.9.5"
];
# nixpkgs.config.permittedInsecurePackages = [
# "electron-36.9.5"
# ];
apps = with pkgs; {
passwordManager = bitwarden-desktop;
passwordCli = rbw;

View file

@ -59,11 +59,10 @@
};
plymouth = {
theme = "colorful_loop";
theme = "starship";
font = "${config.rice.fonts.sans.package}/share/fonts/truetype/MSW98UI-Regular.ttf";
themePackages = [
pkgs.adi1090x-plymouth-themes
# (getFlakePkg inputs.hudcore)
(getFlakePkg inputs.hudcore)
];
};
};

View file

@ -1,5 +1,26 @@
{ pkgs, lib, ... }:
{
quick.services.startup-sound = "${lib.getExe' pkgs.alsa-utils "aplay"} " + ../assets/startup.wav;
# FIXME broken , maybe use niri exec-once ..
pkgs,
lib,
scope,
...
}:
scope "user.systemd.services.startup-sound"
<| {
unitConfig = {
Description = "startup sound";
Requires = [
"graphical-session.target"
];
After = [
"graphical-session.target"
"niri.target"
"sound.target"
];
PartOf = [ "graphical-session.target" ];
};
serviceConfig = {
ExecStart = "${lib.getExe' pkgs.alsa-utils "aplay"} " + ../assets/startup.wav;
Type = "oneshot";
};
wantedBy = [ "graphical-session.target" ];
}