Skip to content

raldisk/koo-dotfiles

Repository files navigation

dotfiles-koo

Personal terminal dotfiles for Windows 10 — WezTerm + Oh My Posh, tuned for PowerShell 7 on Intel hardware.

wezterm oh-my-posh platform shell font license


Preview

preview


What's inside

dotfiles-koo/
├── wezterm/                  # WezTerm terminal config
│   ├── wezterm.lua           # Entry point
│   ├── config/
│   │   ├── appearance.lua    # Colors, background, tab bar, Acrylic
│   │   ├── bindings.lua      # Key bindings (Ctrl+T, Ctrl+W, ALT combos)
│   │   ├── domains.lua       # Domain definitions
│   │   ├── fonts.lua         # JetBrainsMono NF, size 11
│   │   ├── general.lua       # Workspace name, scroll, hyperlinks
│   │   ├── init.lua          # Config builder
│   │   └── launch.lua        # Default shell (pwsh)
│   ├── events/
│   │   ├── focus-dim.lua     # Dims window when unfocused
│   │   ├── left-status.lua   # Workspace label (left of tab bar)
│   │   ├── new-tab-button.lua
│   │   ├── right-status.lua  # Date · time · battery (right of tab bar)
│   │   └── tab-title.lua     # Powerline tab style with process name
│   ├── utils/
│   │   ├── backdrops.lua     # Background image cycle/random/select
│   │   ├── gpu_adapter.lua   # GPU adapter picker (OpenGL fallback)
│   │   ├── math.lua          # Clamp/round helpers
│   │   └── platform.lua      # OS detection
│   ├── colors/
│   │   └── custom.lua        # Catppuccin Mocha variant
│   └── backdrops/            # Drop your own wallpapers here (.jpg/.png)
├── ohmyposh/
│   └── .poshconfig.json      # Oh My Posh prompt theme
├── .github/
│   └── workflows/
│       └── ci.yml            # Lua lint + JSON validation + ESLint
├── bootstrap.ps1             # One-shot Windows setup script
├── package.json              # ESLint deps for preview.jsx
├── eslint.config.js          # ESLint config (flat config, JSX)
├── .luacheckrc               # luacheck config (wezterm globals)
├── preview.jsx               # Interactive React preview
├── README.md
└── LICENSE

Features

WezTerm

  • Catppuccin Mocha color scheme (custom variant)
  • Acrylic window blur (win32_system_backdrop)
  • Custom background — point to any image, brightness-boosted via hsb
  • Focus dimming — window dims to 55% opacity when unfocused, 95% when active
  • Powerline tab bar with process name, admin badge, and unseen-output dot
  • Right status bar — live date, time, and battery with Nerd Font icons
  • Workspace label — hardcoded koo@raldisk on left of tab bar
  • Key bindingsCtrl+T new tab, Ctrl+W close tab, ALT combos for splits/panes/backdrops
  • OpenGL frontend — stable on Intel Pentium / integrated graphics
  • 60 FPS animations

Oh My Posh

Segment Color Shows
session #c386f1 koo@raldisk (hardcoded)
path #3B7390 Current folder
git #82D4BB Branch, dirty state, stash count
python #D8C878 Python version (files mode)
exit plain ✔ / ✘ exit code
npm (right) #917295 npm version
node (right) #5f4a62 Node version

Requirements

Tool Minimum
WezTerm nightly / 20240127+
Oh My Posh v3+
PowerShell 7 (pwsh)
JetBrainsMono Nerd Font any version

Installation

WezTerm config

1. Back up your existing config (if any)

Rename-Item "$env:USERPROFILE\.wezterm.lua" "$env:USERPROFILE\.wezterm.lua.bak" -ErrorAction SilentlyContinue

2. Clone the repo

git clone https://github.com/raldisk/dotfiles-koo.git

3. Copy the wezterm folder to your config directory

$dest = "$env:USERPROFILE\.config\wezterm"
New-Item -ItemType Directory -Force -Path $dest | Out-Null
Copy-Item -Recurse -Force .\dotfiles-koo\wezterm\* $dest

4. Set your background image

Open wezterm/config/appearance.lua and update the path:

source = {File = 'C:\\Users\\YourName\\path\\to\\your-image.jpg'},

5. Add backdrop images (optional — for the random/cycle keybinds)

Drop .jpg / .png files into wezterm/backdrops/.

6. Fully close and reopen WezTerm

Config reload (Ctrl+Shift+R) is not sufficient for the workspace rename — a cold start is required.


Oh My Posh theme

1. Install Oh My Posh

winget install JanDeDobbeleer.OhMyPosh -s winget

2. Copy the theme

Copy-Item .\dotfiles-koo\ohmyposh\.poshconfig.json "$env:USERPROFILE\Downloads\Video\temp-ytdlp\.poshconfig.json"

Or place it wherever you prefer.

3. Load in your PowerShell profile

notepad $PROFILE

Add:

oh-my-posh init pwsh --config "C:\path\to\.poshconfig.json" | Invoke-Expression

4. Reload

. $PROFILE

Key Bindings (WezTerm)

Key Action
Ctrl+T New tab
Ctrl+W Close tab
ALT+T New tab (DefaultDomain)
ALT+CTRL+T New tab (WSL:Ubuntu)
ALT+[ / ALT+] Previous / next tab
ALT+\ Split vertical
ALT+CTRL+\ Split horizontal
ALT+CTRL+H/J/K/L Navigate panes
ALT+/ Random background
ALT+, / ALT+. Cycle backgrounds
ALT+CTRL+/ Pick background (fuzzy)
F1 Copy mode
F2 Command palette
F11 Toggle fullscreen
F12 Debug overlay

Customization

Change the identity label

WezTerm workspace (wezterm/config/general.lua):

default_workspace = 'your-name',

Oh My Posh session (ohmyposh/.poshconfig.json):

"template": " your-name "

Change background brightness

In wezterm/config/appearance.lua, adjust brightness (1.0 = original, 1.4 = current):

hsb = { brightness = 1.4, saturation = 1.0, hue = 1.0 },

Focus dim levels

In wezterm/events/focus-dim.lua:

overrides.window_background_opacity = 0.95  -- focused
overrides.window_background_opacity = 0.55  -- unfocused

Troubleshooting

Workspace still shows machine hostname instead of koo@raldisk Config reload (Ctrl+Shift+R) does not re-fire gui-startup. Do a full close — check Task Manager for lingering wezterm-gui.exe and end it before reopening.

Background image not loading Verify the path in wezterm/config/appearance.lua uses double backslashes:

source = {File = 'C:\\Users\\YourName\\path\\to\\image.jpg'},

If using the backdrop cycle system, drop images into wezterm/backdrops/ — the folder must contain at least one .jpg or .png file.

Battery indicator missing from right status bar Expected on desktops — the battery segment is skipped silently when no battery is present.

Oh My Posh prompt shows wrong username The theme hardcodes koo@raldisk in the session segment template. If you want a different label, open ohmyposh/.poshconfig.json and change "template": " koo@raldisk ".

WezTerm won't start after copying config Check the WezTerm debug overlay (F12) or run wezterm --config-file wezterm.lua from the config directory. Common causes: font not installed, Lua syntax error from a local edit.

Preview JSX won't lint Run npm install first, then npm run lint. Requires Node 18+.


MIT — see LICENSE.

About

Opinionated terminal setup for Windows. WezTerm with Catppuccin, custom Oh My Posh theme, CI-linted and bootstrap-ready.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors