poppy: gcalcli; kitty opacity 0.84; gpg-agent ttl 600s; pay.nix darwin (skip autoPatchelfHook); syncthing launchd via nix-darwin; mihomo

This commit is contained in:
mikl 2026-09-26 01:57:33 +03:00
commit 0e56d31d68
7 changed files with 28 additions and 24 deletions

View file

@ -40,6 +40,7 @@
yt-dlp # скачивание с YouTube и 1000+ сайтов (эталонный CLI) yt-dlp # скачивание с YouTube и 1000+ сайтов (эталонный CLI)
transmission_4 # BitTorrent: transmission-daemon + -remote + -create/show/edit CLI tools transmission_4 # BitTorrent: transmission-daemon + -remote + -create/show/edit CLI tools
himalaya # IMAP/SMTP/JMAP почтовый CLI (JSON-вывод для агента) himalaya # IMAP/SMTP/JMAP почтовый CLI (JSON-вывод для агента)
gcalcli # Google Calendar CLI (OAuth, для агента)
matrix-commander-rs # Matrix CLI клиент (E2E, JSON-вывод, для агента) matrix-commander-rs # Matrix CLI клиент (E2E, JSON-вывод, для агента)
# x402 / MPP agentic payments CLI (Solana Foundation) # x402 / MPP agentic payments CLI (Solana Foundation)

View file

@ -18,7 +18,7 @@
themeFile = "mellow"; themeFile = "mellow";
settings = { settings = {
background_opacity = "0.96"; background_opacity = "0.84";
dynamic_background_opacity = "yes"; dynamic_background_opacity = "yes";
background_blur = 16; background_blur = 16;
cursor_shape = "beam"; cursor_shape = "beam";

View file

@ -16,6 +16,7 @@
# GPG agent settings (only for GPG/pass, NOT for SSH) # GPG agent settings (only for GPG/pass, NOT for SSH)
services.gpg-agent = { services.gpg-agent = {
enable = true; enable = true;
defaultCacheTtl = 3600; defaultCacheTtl = 600;
maxCacheTtl = 600;
}; };
} }

View file

@ -51,8 +51,10 @@ stdenv.mkDerivation {
sourceRoot = "."; sourceRoot = ".";
# tarball contains a single prebuilt `pay` binary at its root. # tarball contains a single prebuilt `pay` binary at its root.
nativeBuildInputs = [ autoPatchelfHook ]; # autoPatchelfHook is ELF-only and crashes on darwin Mach-O binaries;
buildInputs = [ openssl stdenv.cc.cc.lib ]; # macOS prebuilts are self-contained, so patching is linux-only.
nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ];
buildInputs = lib.optionals stdenv.isLinux [ openssl stdenv.cc.cc.lib ];
dontConfigure = true; dontConfigure = true;
dontBuild = true; dontBuild = true;

View file

@ -6,20 +6,7 @@
# Devices: poppy (this mac) + remote (UCWTYQI-...) # Devices: poppy (this mac) + remote (UCWTYQI-...)
home.packages = [ pkgs.syncthing ]; home.packages = [ pkgs.syncthing ];
# Autostart via launchd # Autostart is declared in hosts/poppy/default.nix via nix-darwin's
# -no-browser: don't open GUI on startup # launchd.user.agents. Home Manager only provides the package here;
# KeepAlive: restart if crashes # nix-darwin owns the LaunchAgent lifecycle and bootstraps it at login.
# RunAtLoad: start at login
launchd.agents.syncthing = {
enable = true;
config = {
ProgramArguments = [
"${pkgs.syncthing}/bin/syncthing"
"serve"
];
RunAtLoad = true;
KeepAlive = true;
ProcessType = "Background";
};
};
} }

View file

@ -41,11 +41,8 @@
]; ];
}; };
# Nix GUI пакеты (нет в brew)
# pureref — только x86_64-darwin, не работает на M1
# aseprite — в nixpkgs, но компилируется с нуля (10-30 мин на M1)
# раскомментировать после первой полной сборки (см. docs/apps.md)
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
mihomo # clash-meta ядро: прокси + AWG outbound, конфиг YAML + REST API (GUI-клиенты mihomo в nixpkgs linux-only)
# aseprite # пиксельный редактор (uncomment after first build) # aseprite # пиксельный редактор (uncomment after first build)
]; ];
} }

View file

@ -9,6 +9,22 @@
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
nix.enable = false; nix.enable = false;
# Syncthing должен быть именно nix-darwin LaunchAgent: home-manager
# создавал plist, но после логина launchd его не всегда bootstrap'ил.
# nix-darwin управляет lifecycle user agent и загружает его при логине.
launchd.user.agents.syncthing = {
serviceConfig = {
Label = "org.nix-community.home.syncthing";
ProgramArguments = [
"${pkgs.syncthing}/bin/syncthing"
"serve"
];
RunAtLoad = true;
KeepAlive = true;
ProcessType = "Background";
};
};
# Автоматический сбор мусора: удалять пути старше 14 дней, по ночам в 3:00. # Автоматический сбор мусора: удалять пути старше 14 дней, по ночам в 3:00.
# nix.gc не работает с nix.enable=false, поэтому launchd-агент напрямую. # nix.gc не работает с nix.enable=false, поэтому launchd-агент напрямую.
launchd.user.agents.nix-gc = { launchd.user.agents.nix-gc = {