MCPcopy Index your code
hub / github.com/FelixKratz/JankyBorders

github.com/FelixKratz/JankyBorders @v1.9.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.9.0 ↗ · + Follow
173 symbols 446 edges 23 files 0 documented · 0% updated 56d agov1.9.0 · 2026-05-14★ 3,66657 open issues

Browse by type

Functions 109 Types & classes 64
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

JankyBorders

Screenshot

JankyBorders is a lightweight tool designed to add colored borders to user windows on macOS 14.0+. It enhances the user experience by visually highlighting the currently focused window without relying on the accessibility API, thereby being faster than comparable tools.

Usage

Install

The binary can be made available by installing it through Homebrew:

brew tap FelixKratz/formulae
brew install borders

For a comprehensive overview of all available options and commands, consult the man page: man borders. A rendered version of the man page is available in the Wiki.

Bootstrap with yabai

For example, if you are using yabai, you could add:

borders active_color=0xffe1e3e4 inactive_color=0xff494d64 width=5.0 &

to the very end of your yabairc. This will start the borders with the specified options along with yabai.

Bootstrap with AeroSpace

You could add:

after-startup-command = [
  'exec-and-forget borders active_color=0xffe1e3e4 inactive_color=0xff494d64 width=5.0'
]

to you aerospace.toml. This will start borders with the specified options along with AeroSpace.

Bootstrap with brew

If you want to run this as a separate service, you could use:

brew services start borders

Configuring the appearance

You can either configure the appearance directly when starting the borders process (as shown in "Bootstrap with yabai") or use a configuration file. The appearance can be adapted at any point in time.

Using a configuration file (Optional)

If the primary borders process is started without any arguments (or launched as a service by brew), it will search for a file at ~/.config/borders/bordersrc and execute it on launch if found.

An example configuration file could look like this: ~/.config/borders/bordersrc

#!/bin/bash

options=(
    style=round
    width=6.0
    hidpi=off
    active_color=0xffe2e2e3
    inactive_color=0xff414550
)

borders "${options[@]}"

Updating the border properties during runtime

If a borders process is already running, invoking a new borders instance with any combination of the available options will update the properties of the already running instance.

Documentation

Local documentation is available as man borders and as a rendered version in the Wiki.

Core symbols most depended-on inside this repo

Shape

Function 109
Class 64

Languages

C53%
C++47%

Modules by API surface

src/windows.c22 symbols
src/border.c21 symbols
src/misc/yabai.h18 symbols
src/misc/drawing.h14 symbols
src/border.h11 symbols
src/misc/connection.h10 symbols
src/main.c10 symbols
src/hashtable.c10 symbols
src/events.c10 symbols
src/misc/window.h8 symbols
src/mach.c8 symbols
src/parse.c7 symbols

For agents

$ claude mcp add JankyBorders \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page