Files
nix-config-ryan4yin/home/base
ryan4yin | 二花 71fa928254 feat(canokey): sudo, SSH, LUKS and OpenPGP setup for daily use (#516)
Use the CanoKey for daily authentication on idols-ai and shoukei, with
the existing passwords, passphrases and per-host SSH keys as fallback.

- sudo: pam_u2f with a shared origin (pam://ryan4yin) and a Nix-store
  authfile built from myvars.canokeyU2fKeys; the primary key is
  registered and touch-to-sudo works on idols-ai.
- SSH: one resident ed25519-sk key (application=ssh:ryan4yin) exported
  to ~/.ssh/id_ed25519_sk; GitHub tries it before the per-host key.
- shoukei LUKS: fido2-device=auto with token-timeout=10s. Update
  nixos-apple-silicon (linux-asahi 7.2.14), whose initrd adds
  thunderbolt_apple and reset_apple_cio so USB-C comes up before unlock.
- GPG: scdaemon disable-ccid so it uses pcscd.
- docs/security-keys.md: setup, PINs, enrollment, backup key and
  recovery; deduplicate the FIDO notes left by #515.

Assisted-by: Claude Code (claude-opus-5-5)
2026-11-04 01:50:21 -06:00
..

Home Manager's Base Submodules

This directory contains cross-platform base configurations that are shared between Linux and Darwin systems.

Configuration Structure

Core System

  • core/: Essential cross-platform configurations
    • core.nix: Minimal home-manager configuration
    • shells/: Shell configurations (bash, Nushell; zsh is Darwin-only under home/darwin/)
    • editors/: Helix + Neovim (Home Manager) and usage docs (README.md per editor)
    • btop.nix: System monitoring tools
    • git.nix: Git configuration and aliases
    • npm.nix: Node.js package management
    • pip.nix: Python package management
    • privacy.nix: Cross-app telemetry opt-out (DO_NOT_TRACK)
    • starship.nix: Cross-shell prompt configuration
    • theme.nix: Color schemes and theming
    • xdg.nix: XDG base-directory configuration
    • yazi.nix: Terminal file manager configuration

Desktop Environment

  • gui/: Cross-platform GUI applications and configurations
    • dev-tools.nix: Misc development and network tools (mitmproxy, wireshark)
    • media.nix: Media players and utilities
    • zed-editor.nix: Zed editor configuration (primary GUI editor)
    • rime/: Rime (flypy) customisation shared by fcitx5-rime (Linux) and Squirrel (macOS)
    • terminal/: Terminal emulator configurations
      • ghostty.nix: Ghostty terminal (default)
      • kitty.nix: Kitty terminal
    • work-gitconfig.nix: Work git identity for repositories under ~/work, linked from agenix

Terminal Interface

  • tui/: Terminal-based interface configurations
    • agents/: AI coding agents — global rules and skills deployment, CLIs, and telemetry/auto-update opt-outs
    • cloud/: Cloud development tools (Terraform, etc.)
    • container.nix: Container tools (Docker, Podman)
    • dev-tools.nix: Terminal-based development tools
    • editors/: Extra terminal editor Nix (see core/editors/ for docs and baseline enables)
    • encryption/: Encryption and security tools
    • gpg/: GPG key management
    • password-store/: Password management with pass
    • shell/: Shell environment configurations
    • ssh.nix: SSH configuration and management
    • tuios/: Terminal window manager / multiplexer (config + nushell auto-start)

System Management

  • home.nix: Main home manager configuration file

Platform Compatibility

All configurations in this directory are designed to work across:

  • Linux: All distributions with Nix and Home Manager
  • macOS: Darwin systems with Home Manager

Usage

These base configurations provide the foundation for both Linux and Darwin systems while allowing for platform-specific customizations.