TarasPriadka/dotfiles

A setup flow for a fresh systems

★ 0Forks 0PythonGitHub ↗Compare

README

Setup Env

Install (Linux)

curl -fsSL https://raw.githubusercontent.com/TarasPriadka/dotfiles/main/setup.sh | bash

The script will:

  • Install system packages
  • Install fzf (from git), pyenv, oh-my-zsh, zsh plugins
  • Create ~/code/
  • Download and place zshrc, gitconfig, vimrc, tmux.conf
  • Generate SSH auth key (~/.ssh/id_ed25519) and signing key (~/.ssh/ssh_sign)
  • Prompt for your name/email and configure git
  • Install night, coin, beach, and the git-uncommit helper in ~/.local/bin/

After running, add both keys to GitHub and run exec zsh.

Personal Codex skills

This repo keeps personal skills under skills/<skill-name>/SKILL.md. Install them on any Linux machine without cloning the repo:

curl -fsSL https://raw.githubusercontent.com/TarasPriadka/dotfiles/main/skills/install.sh | bash

The installer downloads the public repo archive, keeps only its skill folders under ~/.local/share/dotfiles-skills/, and links them into ~/.agents/skills/. An hourly user-level systemd timer downloads a fresh archive and updates that cache. It does not need a Git checkout. Existing skills with the same names are left alone unless they were installed by this script. Codex discovers the linked skills from any local repo. If an updated skill does not appear immediately, restart Codex.

The main setup.sh downloads and runs this installer as part of setup.

Terminal programs

night shows a moonlit railway scene, coin renders a rotating ASCII GIMLET coin, and beach shows a warm ocean scene with rolling waves and swaying green palms. All three are Python 3.9+ programs with no third party packages. Their source lives in programs/ and the Linux setup script installs them in ~/.local/bin/. Open a new shell after setup so the commands are on PATH. night starts with its status and controls hidden; press i to show them or h for help.

To install or update these programs and the git uncommit alias:

curl -fsSL https://raw.githubusercontent.com/TarasPriadka/dotfiles/main/programs/install.sh | bash

Start a quiet beach background with:

beach --eco --hide-hud
beach --mood golden

beach defaults to 8 FPS; --eco caps it at 4 FPS. Press 1–3 to change moods, w for waves, b for wind, t for colors, Space to pause, and q to quit. Press h for all controls, or run beach --help for startup options. It caches scenery and palm shapes and sends only changed cells to the terminal.

For a single plain frame, pipe any program to a file, for example beach --frames 1 > beach.txt. All three also accept --no-color.

Reviewing a branch with git uncommit

git uncommit soft-resets the current branch to its common ancestor with the PR's parent branch, leaving the branch's combined changes staged for review in your editor. For a stack main → A → B → C, running it on C compares against B. Existing staged, unstaged, untracked, and ignored files are preserved.

git uncommit                    # Use the current PR's parent branch
git uncommit --base local-parent # Specify a local parent ref without GitHub

Automatic parent lookup requires an existing PR and an authenticated GitHub CLI (gh). It uses the parent's local origin/<branch> ref; it does not fetch. Run git fetch origin first if those refs need refreshing. If lookup fails, the command stops; use --base to choose the parent explicitly.

There is no saved review state, restore mode, or cleanup. Old review metadata is ignored. The command only moves the local branch pointer; it does not push.

To install or update (requires Git, Python 3, and curl):

curl -fsSL https://raw.githubusercontent.com/TarasPriadka/dotfiles/main/programs/install.sh | bash

The installer updates the helper and only alias.uncommit in ~/.gitconfig, preserving your other Git settings. New machines get it through setup.sh. Run gh auth login if GitHub CLI authentication is needed.

Run the helper's tests without network access:

python3 -m unittest discover -s programs/tests -p test_git_uncommit.py -v

Sync Configs Only

Already have the tools installed and just want to pull the latest configs?

curl -fsSL https://raw.githubusercontent.com/TarasPriadka/dotfiles/main/zshrc    -o ~/.zshrc
curl -fsSL https://raw.githubusercontent.com/TarasPriadka/dotfiles/main/gitconfig -o ~/.gitconfig
curl -fsSL https://raw.githubusercontent.com/TarasPriadka/dotfiles/main/vimrc     -o ~/.vimrc
curl -fsSL https://raw.githubusercontent.com/TarasPriadka/dotfiles/main/tmux.conf -o ~/.tmux.conf
curl -fsSL https://raw.githubusercontent.com/TarasPriadka/dotfiles/main/programs/install.sh | bash

Useful Links and Tips:

  1. Setup Iterm2 skips: https://apple.stackexchange.com/questions/136928/using-alt-cmd-right-left-arrow-in-iterm
  2. Check Unix system version: uname -r
  3. VS Code hold and repeat keys command: defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
  4. Use git update-index --skip-worktree FILE to keep file changes out of the git worktree. Useful if you change some configs locally, but don't want to update upstream.

Setup Github

  • Setup SSH Key

    1. ssh-keygen -t ed25519 -C "[email protected]" — auth key
    2. ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/ssh_sign — signing key
    3. touch ~/.ssh/config and add:
    Host github.com
    AddKeysToAgent yes
    UseKeychain yes
    IdentityFile ~/.ssh/id_ed25519
    
    1. Go to the Github settings and paste in the public key that you have generated
  • Setup SSH commit signing

    1. git config --global gpg.format ssh
    2. git config --global user.signingkey ~/.ssh/ssh_sign
    3. git config --global commit.gpgsign true

Apps to get

Mac Extensions

Extensions

Contributors

TarasPriadka

Issues