Compare commits
8
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0a5da7a293 | ||
|
|
fbf8db1558 | ||
|
|
8eefa99ca8 | ||
|
|
0d2496c600 | ||
|
|
81a1b9714f | ||
|
|
77628fd6bb | ||
|
|
5aaf0fc7f8 | ||
|
|
f33c26a5e4 |
@@ -46,6 +46,12 @@ in
|
|||||||
|
|
||||||
package = wrapped;
|
package = wrapped;
|
||||||
|
|
||||||
|
# Pin the legacy profile location. The default changed to the XDG path
|
||||||
|
# (`$XDG_CONFIG_HOME/mozilla/firefox`) for stateVersion >= "26.05";
|
||||||
|
# keep the old `~/.mozilla/firefox` so the existing profile isn't
|
||||||
|
# stranded (migrating would require moving the profile dir by hand).
|
||||||
|
configPath = ".mozilla/firefox";
|
||||||
|
|
||||||
profiles = {
|
profiles = {
|
||||||
alex = {
|
alex = {
|
||||||
id = 0;
|
id = 0;
|
||||||
|
|||||||
@@ -21,31 +21,32 @@ in
|
|||||||
home-manager.users.alex = {
|
home-manager.users.alex = {
|
||||||
programs.ssh = {
|
programs.ssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
enableDefaultConfig = false;
|
||||||
|
|
||||||
matchBlocks = {
|
settings = {
|
||||||
"manatee" = {
|
"manatee" = {
|
||||||
hostname = "manatee";
|
HostName = "manatee";
|
||||||
user = "alex";
|
User = "alex";
|
||||||
identityFile = "/home/alex/.ssh/alex.backwards-manatee";
|
IdentityFile = "/home/alex/.ssh/alex.backwards-manatee";
|
||||||
port = 1122;
|
Port = 1122;
|
||||||
};
|
};
|
||||||
|
|
||||||
"git.ppp.pm" = {
|
"git.ppp.pm" = {
|
||||||
hostname = "git.ppp.pm";
|
HostName = "git.ppp.pm";
|
||||||
identityFile = "/home/alex/.ssh/alex.backwards-git.ppp.pm";
|
IdentityFile = "/home/alex/.ssh/alex.backwards-git.ppp.pm";
|
||||||
};
|
};
|
||||||
|
|
||||||
"*" = {
|
"*" = {
|
||||||
forwardAgent = false;
|
ForwardAgent = false;
|
||||||
addKeysToAgent = "no";
|
AddKeysToAgent = "no";
|
||||||
compression = false;
|
Compression = false;
|
||||||
serverAliveInterval = 0;
|
ServerAliveInterval = 0;
|
||||||
serverAliveCountMax = 3;
|
ServerAliveCountMax = 3;
|
||||||
hashKnownHosts = false;
|
HashKnownHosts = false;
|
||||||
userKnownHostsFile = "~/.ssh/known_hosts";
|
UserKnownHostsFile = "~/.ssh/known_hosts";
|
||||||
controlMaster = "no";
|
ControlMaster = "no";
|
||||||
controlPath = "~/.ssh/master-%r@%n:%p";
|
ControlPath = "~/.ssh/master-%r@%n:%p";
|
||||||
controlPersist = "no";
|
ControlPersist = "no";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -6,6 +6,41 @@
|
|||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
enabled = config.mod.ai.enable;
|
enabled = config.mod.ai.enable;
|
||||||
|
|
||||||
|
# Shared statusline: show the logged-in account email.
|
||||||
|
statusLine = {
|
||||||
|
type = "command";
|
||||||
|
command = "jq -r '.oauthAccount.emailAddress' \"$CLAUDE_CONFIG_DIR/.claude.json\"";
|
||||||
|
};
|
||||||
|
|
||||||
|
# PostToolUse hook: echoes a JSON payload that injects a comment-policy
|
||||||
|
# reminder as additional context after every Write/Edit.
|
||||||
|
commentPolicyPayload = builtins.toJSON {
|
||||||
|
suppressOutput = true;
|
||||||
|
hookSpecificOutput = {
|
||||||
|
hookEventName = "PostToolUse";
|
||||||
|
additionalContext = "Comment policy: default to ZERO code comments. Review what you just wrote and delete any comment that narrates the change, restates the code, states the obvious, is tangential, or explains design/why rationale -- put that reasoning in your chat reply instead, never in the code. Never use em dashes or en dashes anywhere in file content; use a plain ASCII hyphen or reword.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
settings = builtins.toJSON {
|
||||||
|
inherit statusLine;
|
||||||
|
theme = "dark";
|
||||||
|
editorMode = "vim";
|
||||||
|
hooks = {
|
||||||
|
PostToolUse = [
|
||||||
|
{
|
||||||
|
matcher = "Write|Edit";
|
||||||
|
hooks = [
|
||||||
|
{
|
||||||
|
type = "command";
|
||||||
|
command = "echo ${lib.escapeShellArg commentPolicyPayload}";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
@@ -24,6 +59,9 @@ in
|
|||||||
wclaude = "CLAUDE_CONFIG_DIR=$HOME/.claude-personal claude";
|
wclaude = "CLAUDE_CONFIG_DIR=$HOME/.claude-personal claude";
|
||||||
pclaude = "CLAUDE_CONFIG_DIR=$HOME/.claude-work claude";
|
pclaude = "CLAUDE_CONFIG_DIR=$HOME/.claude-work claude";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
home.file.".claude-work/settings.json".text = settings;
|
||||||
|
home.file.".claude-personal/settings.json".text = settings;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,6 +53,12 @@ in
|
|||||||
|
|
||||||
package = wrapped;
|
package = wrapped;
|
||||||
|
|
||||||
|
# Pin the legacy profile location. The default changed to the XDG path
|
||||||
|
# (`$XDG_CONFIG_HOME/mozilla/firefox`) for stateVersion >= "26.05";
|
||||||
|
# keep the old `~/.mozilla/firefox` so the existing profile isn't
|
||||||
|
# stranded (migrating would require moving the profile dir by hand).
|
||||||
|
configPath = ".mozilla/firefox";
|
||||||
|
|
||||||
profiles = {
|
profiles = {
|
||||||
alex = {
|
alex = {
|
||||||
id = 0;
|
id = 0;
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ in
|
|||||||
home-manager.users.alex = {
|
home-manager.users.alex = {
|
||||||
home.packages = [
|
home.packages = [
|
||||||
pkgs.gleam
|
pkgs.gleam
|
||||||
pkgs.erlang
|
pkgs.beamPackages.erlang
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -7,6 +7,11 @@
|
|||||||
services.gnome.gcr-ssh-agent.enable = false;
|
services.gnome.gcr-ssh-agent.enable = false;
|
||||||
programs.ssh.startAgent = true;
|
programs.ssh.startAgent = true;
|
||||||
|
|
||||||
|
# Create the setuid `fusermount3` wrapper that `sshfs` execs to mount. The
|
||||||
|
# `programs.fuse` module used to install this unconditionally; newer nixpkgs
|
||||||
|
# gates it behind this option (default off), so opt in explicitly.
|
||||||
|
programs.fuse.enable = true;
|
||||||
|
|
||||||
home-manager.users.alex = {
|
home-manager.users.alex = {
|
||||||
services.gnome-keyring = {
|
services.gnome-keyring = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -31,49 +36,49 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
enableDefaultConfig = false;
|
enableDefaultConfig = false;
|
||||||
|
|
||||||
matchBlocks = {
|
settings = {
|
||||||
"manatee" = {
|
"manatee" = {
|
||||||
hostname = "manatee";
|
HostName = "manatee";
|
||||||
user = "alex";
|
User = "alex";
|
||||||
identityFile = "/home/alex/.ssh/alex.pinwheel-manatee";
|
IdentityFile = "/home/alex/.ssh/alex.pinwheel-manatee";
|
||||||
port = 1122;
|
Port = 1122;
|
||||||
};
|
};
|
||||||
|
|
||||||
"backwards" = {
|
"backwards" = {
|
||||||
hostname = "backwards";
|
HostName = "backwards";
|
||||||
user = "alex";
|
User = "alex";
|
||||||
identityFile = "/home/alex/.ssh/alex.pinwheel-backwards";
|
IdentityFile = "/home/alex/.ssh/alex.pinwheel-backwards";
|
||||||
port = 1122;
|
Port = 1122;
|
||||||
};
|
};
|
||||||
|
|
||||||
"tadpole" = {
|
"tadpole" = {
|
||||||
hostname = "65.21.106.222";
|
HostName = "65.21.106.222";
|
||||||
user = "alex";
|
User = "alex";
|
||||||
identityFile = "/home/alex/.ssh/alex.pinwheel-tadpole";
|
IdentityFile = "/home/alex/.ssh/alex.pinwheel-tadpole";
|
||||||
port = 1122;
|
Port = 1122;
|
||||||
};
|
};
|
||||||
|
|
||||||
"github.com" = {
|
"github.com" = {
|
||||||
hostname = "github.com";
|
HostName = "github.com";
|
||||||
identityFile = "/home/alex/.ssh/alex.pinwheel-github.com";
|
IdentityFile = "/home/alex/.ssh/alex.pinwheel-github.com";
|
||||||
};
|
};
|
||||||
|
|
||||||
"git.ppp.pm" = {
|
"git.ppp.pm" = {
|
||||||
hostname = "git.ppp.pm";
|
HostName = "git.ppp.pm";
|
||||||
identityFile = "/home/alex/.ssh/alex.pinwheel-git.ppp.pm";
|
IdentityFile = "/home/alex/.ssh/alex.pinwheel-git.ppp.pm";
|
||||||
};
|
};
|
||||||
|
|
||||||
"*" = {
|
"*" = {
|
||||||
forwardAgent = false;
|
ForwardAgent = false;
|
||||||
addKeysToAgent = "yes";
|
AddKeysToAgent = "yes";
|
||||||
compression = false;
|
Compression = false;
|
||||||
serverAliveInterval = 0;
|
ServerAliveInterval = 0;
|
||||||
serverAliveCountMax = 3;
|
ServerAliveCountMax = 3;
|
||||||
hashKnownHosts = false;
|
HashKnownHosts = false;
|
||||||
userKnownHostsFile = "~/.ssh/known_hosts";
|
UserKnownHostsFile = "~/.ssh/known_hosts";
|
||||||
controlMaster = "no";
|
ControlMaster = "no";
|
||||||
controlPath = "~/.ssh/master-%r@%n:%p";
|
ControlPath = "~/.ssh/master-%r@%n:%p";
|
||||||
controlPersist = "no";
|
ControlPersist = "no";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -21,24 +21,25 @@ in
|
|||||||
home-manager.users.alex = {
|
home-manager.users.alex = {
|
||||||
programs.ssh = {
|
programs.ssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
enableDefaultConfig = false;
|
||||||
|
|
||||||
matchBlocks = {
|
settings = {
|
||||||
"git.ppp.pm" = {
|
"git.ppp.pm" = {
|
||||||
hostname = "git.ppp.pm";
|
HostName = "git.ppp.pm";
|
||||||
identityFile = "/home/alex/.ssh/alex.tadpole-git.ppp.pm";
|
IdentityFile = "/home/alex/.ssh/alex.tadpole-git.ppp.pm";
|
||||||
};
|
};
|
||||||
|
|
||||||
"*" = {
|
"*" = {
|
||||||
forwardAgent = false;
|
ForwardAgent = false;
|
||||||
addKeysToAgent = "no";
|
AddKeysToAgent = "no";
|
||||||
compression = false;
|
Compression = false;
|
||||||
serverAliveInterval = 0;
|
ServerAliveInterval = 0;
|
||||||
serverAliveCountMax = 3;
|
ServerAliveCountMax = 3;
|
||||||
hashKnownHosts = false;
|
HashKnownHosts = false;
|
||||||
userKnownHostsFile = "~/.ssh/known_hosts";
|
UserKnownHostsFile = "~/.ssh/known_hosts";
|
||||||
controlMaster = "no";
|
ControlMaster = "no";
|
||||||
controlPath = "~/.ssh/master-%r@%n:%p";
|
ControlPath = "~/.ssh/master-%r@%n:%p";
|
||||||
controlPersist = "no";
|
ControlPersist = "no";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user