Skip to content
tijptjikPublic

About

Tijptjik's Dotfiles - Managed by Chezmoi

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Dotjik

Home and system configuration applied by Tjikup. The GitHub repository remains tijptjik/dotfiles, checked out at ~/code/dotjik. System policy from Systjik now lives in system/ within this repository.

Tjikup resolves this checkout from DOTJIK_REPO, or ~/code/dotjik by default; XDG_DATA_HOME does not select the source checkout. When relocating an existing host, preserve the entire checkout (including .git and local changes), update the Tjikup config symlink and local session paths, and retain a compatibility symlink for older installed binaries and open sessions. Move each host before applying its updated paths; on Si this includes the app-backup source path. Relocating the checkout does not deploy services or publish bootstrap releases.

Tjikup owns deployment and maintenance for every fleet host. Home configuration lives in native/home/files/; system policy lives in system/native/. MiniJinja .j2 templates render natively. dotjik and systjik delegate to the native configuration commands. Synctjik owns backup and recovery operations.

See workflows and native file ownership and new devices. Release publication and pin updates are currently deferred; the source migration does not update published bootstrap.

Supported Devices

  • fi - Desktop (client)
  • li - Laptop (client)
  • si - Server

Supported Software

Readmes are available in /docs/{topic}.md

Backups and recovery

The fleet storage atlas explains where files live across Fi, Li, Si, Google and Cloudflare, with device and content icons, backup locations, schedules, and retention.

Fleet backup diagram: devices, content and recovery relationships

The diagrams describe configured backup routes and schedules. The linked setup guides describe their scope and recovery procedures.

  • TODO — Google Photos backup: configure an independent backup and verify restoration; evaluate Immich on Si as a destination. No backup is configured yet.

Server media

Sample Run

image

Installation on New Machine

The new cold-bootstrap path is documented in the device guide. It installs early Fedora dependencies, clones public sources over HTTPS, enrolls this hostname with tjikup new device, and unlocks the existing Bitwarden/age credentials before any file apply. Download and review https://sh.type.hk/init; the script embeds exact published source revisions. See the guide for release verification and first-apply instructions.

Existing Fi/Li/Si profiles remain separate from new desktop/laptop/server roles. New machines do not inherit their disk mounts or backup policies. Recipe subscriptions are local, explicit, and include required dependencies. Review tjikup --plan before the first apply.

Tailscale and Collie on a new device

Tjikup's Tailscale recipe installs Tailscale, enables tailscaled, configures the local user as its operator, and keeps the daemon outside Mullvad on client hosts. Tailscale membership is deliberately not versioned: join each Linux device interactively after running that recipe.

tailscale up

Install the Tailscale Android app and sign in to the same tailnet. On fi, a subsequent tjikup installs/configures Collie for the local Herdr session and reserves the tailnet-only Vite route on HTTPS port 8443. Collie is reachable only while fi is locked; its Hyprlock wrapper brings the node up after locking and takes it down again on unlock.

Usage

Before making any changes, it is recommended to pull the latest version of the dotfiles to avoid conflicts.

Updating

tjikup

tjikup is a configurable runner maintained in tjikOS. This repository supplies the fleet workflow: capture supported live settings, commit those templates, pull/push Dotjik and tjikOS, then apply home and system configuration through the recipe graph. See ownership, migration and validation.

Status rows use the terminal width, align notes on the right, and shorten long text with an ellipsis. Full messages remain in the run report. Child apply commands inherit the terminal width; redirected output defaults to 80 columns.

Run it after changing supported live configuration files:

tjikup

Use tjikup --dry-run to print the recipe plan without executing commands.

Zed propagation updates existing scalar settings and preserves template settings absent from the live config, including settings not yet applied to this host. To remove a managed setting, edit its native .j2 template.

On clients, the Tjikup recipe installs or updates codex-lb in ~/.codex-lb/runtime. After an update, run systemctl --user restart codex-lb.service between Codex sessions to activate it; the update script leaves the running proxy alone to avoid interrupting requests.

Use tjikup --skip-conflicts to automatically skip conflicting files during the legacy home Tjikup apply, preserving their local contents while applying other changes. Native file conflicts always stop that file deployment. Other apply errors still fail the command.

Apply stages stream plain output to avoid terminal capability replies leaking from Gum spinners. Interactive prompts remain available.

Editing

Use dotjik edit TARGET to open the native source, or dotjik source-path TARGET to locate it. Edit plain files and .j2 templates under native/home/files/; file metadata and host selection live in native/home/files.json. New files need an explicit manifest entry. Captured settings write back to these native sources.

See home file commands and recovery.

Validation

Run bash scripts/validate.sh to check Python and non-template shell syntax and run the isolated Tjikup regression tests. Requires Python 3 with cryptography and Fish; it does not apply dotfiles, access secrets, install packages, or synchronize Git. Native template rendering and host-specific behavior have separate fixture checks.

Configuration recovery

Minimal encrypted Telegram, Brave, Steam and FirefoxPWA backups are enabled on Fi and Li. Zen uses its own sync. uv has no separate configuration to archive; layout uv selects the project's .venv and leaves dependency installation to an explicit uv sync. Li's Tjikup fstab matches its current disks and mounts.

See the configuration restoration guide for selected files, recovery limits and verification status.

Android development

Fi and Li install Temurin JDK 21 and the Android SDK through Tjikup. The home:android-sdk recipe depends on the RPM phase for Java and installs under ~/.local/share/android-sdk. It verifies Google's pinned command-line tools 22.0 archive by SHA-256 before extracting it, then installs platform-tools, platforms;android-35, and build-tools;35.0.0. SDK packages, licenses, caches, and Gradle state remain outside Git. Enabling this installation accepts Google's SDK license for these packages; home:android-sdk:update refreshes the declared packages during normal updates. It does not install an emulator or system images.

New Fish shells export ANDROID_HOME and expose SDK commands. From Bash, build Notjik with explicit paths (the system Java default stays unchanged):

cd ~/code/tjikos/apps/notjik-android
JAVA_HOME=/usr/lib/jvm/temurin-21-jdk \
ANDROID_HOME="$HOME/.local/share/android-sdk" \
./gradlew :app:testDebugUnitTest :app:assembleDebug

About

Tijptjik's Dotfiles - Managed by Chezmoi

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages