<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Capslock</title><link>https://caps.pgsty.com/</link><description>Recent content on Capslock</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Fri, 06 Nov 2026 19:02:03 +0800</lastBuildDate><atom:link href="https://caps.pgsty.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Capslock goes native</title><link>https://caps.pgsty.com/blog/post/capslock-goes-native/</link><pubDate>Fri, 06 Nov 2026 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/blog/post/capslock-goes-native/</guid><description>&lt;p&gt;For years Capslock was a configuration file. You installed Karabiner-Elements,&#10;imported a set of rules, and Caps Lock became Escape on a tap and a Hyper key&#10;on a hold. With Command, Option, Control and Shift it reached sixteen planes&#10;of shortcuts for the cursor, editing, windows, apps and the mouse.&lt;/p&gt;&#10;&lt;p&gt;That worked, and it kept two costs. Karabiner-Elements had to be installed,&#10;with its driver and its permissions, just to change one key. And the layout&#10;was a JSON file: to change a binding you edited that file, and to learn the&#10;layout you kept a picture of the keyboard open.&lt;/p&gt;</description></item><item><title>Configuration file</title><link>https://caps.pgsty.com/docs/reference/configuration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/reference/configuration/</guid><description>&lt;p&gt;You never have to edit these files: everything here can be changed in the app.&#10;They are plain YAML so that you can read them, keep them in version control, or&#10;move them to another Mac with &lt;strong&gt;Export&lt;/strong&gt; and &lt;strong&gt;Import&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;h2 id="location"&gt;Where files are kept&#10;&lt;/h2&gt;&#10;&lt;pre class="td-filetree-source"&gt;&lt;code class="language-filetree"&gt;- action_mappings.yml # mappings, actions, profile&#10;- app_config.yml # settings&#10;- backups/ # automatic snapshots&#10;- Logs/&#10; - Capslock.log # diagnostic log&#10;- ClipboardSlots/ # encrypted clipboard slots&#10;- usage_stats.json # Statistics counts&#10;- hidutil-transaction.json # recovery record&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Settings › Recovery › &lt;strong&gt;Show Config Folder&lt;/strong&gt; opens it in Finder. Your language&#10;choice is kept in the app's preferences, and the clipboard key in your&#10;Keychain.&lt;/p&gt;</description></item><item><title>Install and Hyper basics</title><link>https://caps.pgsty.com/docs/karabiner/getting-started/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/karabiner/getting-started/</guid><description>&lt;p&gt;Capslock Enhancement V3 &lt;span class="td-badge td-badge--success"&gt;current&lt;/span&gt; targets&#10;macOS and &lt;a href="https://karabiner-elements.pqrs.org/"&gt;Karabiner-Elements&lt;/a&gt;. There is&#10;nothing else to install: the configuration is a set of complex-modification&#10;rules that Karabiner interprets, so nothing new runs in the background and&#10;nothing is compiled on your machine.&lt;/p&gt;&#10;&lt;div class="td-callout td-callout--note" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-circle-info" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;Note&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;This guide was verified with Karabiner-Elements 16.1.0 in August 2026, whose&#10;support matrix covers macOS 13 Ventura through macOS 27 on Intel and Apple&#10;silicon. Check the official site for the current release.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;</description></item><item><title>Install and first run</title><link>https://caps.pgsty.com/docs/start/install/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/start/install/</guid><description>&lt;div class="td-callout td-callout--note" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-circle-info" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;Release status&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;There is no public download yet; see &lt;a href="https://caps.pgsty.com/download/"&gt;Download&lt;/a&gt;. This page&#10;describes the signed release.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="requirements"&gt;Requirements&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;macOS 14 Sonoma or later, on Apple silicon or Intel.&lt;/li&gt;&#10;&lt;li&gt;The Accessibility permission. Capslock never asks for Input Monitoring.&lt;/li&gt;&#10;&lt;li&gt;Caps Lock not already remapped by another tool. If you use&#10;Karabiner-Elements, read &lt;a href="https://caps.pgsty.com/docs/start/karabiner/"&gt;Coexisting with Karabiner-Elements&lt;/a&gt; first.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="install"&gt;Install&#10;&lt;/h2&gt;&#10;&lt;p&gt;Open &lt;code&gt;Capslock.dmg&lt;/code&gt; and drag &lt;strong&gt;Capslock&lt;/strong&gt; into Applications. Then open it from&#10;Applications or Spotlight.&lt;/p&gt;</description></item><item><title>Keyboard editor</title><link>https://caps.pgsty.com/docs/guide/editor/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/guide/editor/</guid><description>&lt;p&gt;The Keyboard page is the editor. It draws your keyboard for the selected plane&#10;with each mapped action on its key. Keys your keyboard lacks, such as F16 or a&#10;numeric keypad on a laptop, appear under &lt;strong&gt;Keys not on this keyboard&lt;/strong&gt;, and&#10;tap and double-tap mappings appear under &lt;strong&gt;Other triggers&lt;/strong&gt;. Switch to&#10;&lt;strong&gt;List&lt;/strong&gt; in the toolbar for a list grouped by trigger type.&lt;/p&gt;&#10;&lt;h2 id="popover"&gt;Change one key&#10;&lt;/h2&gt;&#10;&lt;p&gt;Click a key. A popover shows its chord, the plane, and the current &lt;strong&gt;Action&lt;/strong&gt;:&lt;/p&gt;</description></item><item><title>Mac V2</title><link>https://caps.pgsty.com/docs/karabiner/archive/mac-v2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/karabiner/archive/mac-v2/</guid><description>&lt;div class="td-callout td-callout--warning" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-triangle-exclamation" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;Archived, not maintained&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;Mac V2 was written for Karabiner-Elements on macOS 10.11 El Capitan, 10.12&#10;Sierra and 10.13 High Sierra, the systems its README listed. It was replaced&#10;by &lt;a href="https://caps.pgsty.com/docs/karabiner/getting-started/"&gt;Mac V3&lt;/a&gt; in 2021 and has not been checked&#10;against current macOS or Karabiner-Elements.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;Mac V2 was the first Capslock edition for Karabiner-Elements, the rewrite of&#10;Karabiner that macOS Sierra required. It is a set of ten complex-modification&#10;rules. A tap on Caps Lock sends Escape. Holding it turns it into &lt;strong&gt;Hyper&lt;/strong&gt;&#10;(&lt;code&gt;✱&lt;/code&gt;): Karabiner-Elements holds the four right-hand modifiers, ⌃ ⌥ ⇧ ⌘,&#10;together, so Hyper still combines with the left-hand ones and most apps accept&#10;it.&lt;/p&gt;</description></item><item><title>Navigation and selection</title><link>https://caps.pgsty.com/docs/layout/navigation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/layout/navigation/</guid><description>&lt;p&gt;The eight keys under your right hand, H J K L and U I O P, carry most of the&#10;layout. On the base plane they move the cursor; other planes turn them into&#10;selection, tab and app switching, Spaces, the mouse, and scrolling. The mouse&#10;and scroll planes are on &lt;a href="https://caps.pgsty.com/docs/layout/mouse/"&gt;Mouse and scrolling&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h2 id="move-select"&gt;Move and select&#10;&lt;/h2&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--matrix td-table-scroll--static"&gt;&#10;&lt;table class="matrix wide td-table--wide td-table--matrix"&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;Key&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;&lt;code&gt;⇪&lt;/code&gt; move&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;&lt;code&gt;⇪ ⌘&lt;/code&gt; select&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;&lt;code&gt;⇪ ⌥ ⌘&lt;/code&gt; extended selection&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;H&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;←&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;⇧←&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;⌥⇧←, select a word left&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;J&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;↓&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;⇧↓&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;⇧↓ three times&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;K&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;↑&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;⇧↑&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;⇧↑ three times&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;L&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;→&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;⇧→&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;⌥⇧→, select a word right&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;U&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Page Up&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;⇧Page Up&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;⇧Page Up&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;I&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Home&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;⇧Home&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;End, then ⇧Home twice: select to the start of the line&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;O&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;End&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;⇧End&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Home, then ⇧End: select the whole line&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;P&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Page Down&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;⇧Page Down&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;⇧Page Down&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;&lt;code&gt;⇪ I&lt;/code&gt; and &lt;code&gt;⇪ O&lt;/code&gt; send the Home and End keys, not ⌘← and ⌘→. Some Mac text&#10;views scroll on Home and End instead of moving the cursor; where you want the&#10;start or end of the line, rebind them in the &lt;a href="https://caps.pgsty.com/docs/guide/editor/"&gt;editor&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>App rules</title><link>https://caps.pgsty.com/docs/guide/apps/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/guide/apps/</guid><description>&lt;p&gt;An app rule makes a key do something different while a particular app is in&#10;front, without changing what it does everywhere else.&lt;/p&gt;&#10;&lt;h2 id="matching"&gt;How rules are matched&#10;&lt;/h2&gt;&#10;&lt;p&gt;Each mapping has a &lt;strong&gt;Default action&lt;/strong&gt; and, optionally, a list of &lt;strong&gt;App rules&lt;/strong&gt;.&#10;When you press the chord, Capslock checks the rules from top to bottom against&#10;the app in front. The first rule that names that app wins. If none does, the&#10;default action runs.&lt;/p&gt;</description></item><item><title>Diagnostics and recovery</title><link>https://caps.pgsty.com/docs/reference/diagnostics/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/reference/diagnostics/</guid><description>&lt;p&gt;The Diagnostics page runs a set of checks and explains, in numbered steps, how&#10;to fix any that fail. Most fixes are a button on the same row. &lt;strong&gt;Refresh&lt;/strong&gt;&#10;runs the checks again.&lt;/p&gt;&#10;&lt;h2 id="checks"&gt;The checks&#10;&lt;/h2&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;Check&lt;/th&gt;&#10; &lt;th scope="col"&gt;Healthy&lt;/th&gt;&#10; &lt;th scope="col"&gt;If it fails&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Caps Lock mapping&lt;/td&gt;&#10; &lt;td&gt;Caps Lock is ready&lt;/td&gt;&#10; &lt;td&gt;Not set up, used by another tool, or unreadable. &lt;strong&gt;Try Again&lt;/strong&gt;, or &lt;strong&gt;Restore Caps Lock&lt;/strong&gt;.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;F18&lt;/td&gt;&#10; &lt;td&gt;F18 is free&lt;/td&gt;&#10; &lt;td&gt;Another tool uses F18. Remove that remap, then &lt;strong&gt;Try Again&lt;/strong&gt;.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Karabiner-Elements&lt;/td&gt;&#10; &lt;td&gt;Not detected, or no conflicts&lt;/td&gt;&#10; &lt;td&gt;A rule uses Caps Lock or F18; see &lt;a href="https://caps.pgsty.com/docs/start/karabiner/#resolve"&gt;Karabiner&lt;/a&gt;.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Crash recovery&lt;/td&gt;&#10; &lt;td&gt;Nothing to recover&lt;/td&gt;&#10; &lt;td&gt;The last session did not quit cleanly and was tidied up at launch, or another copy of Capslock is running.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Accessibility&lt;/td&gt;&#10; &lt;td&gt;Granted&lt;/td&gt;&#10; &lt;td&gt;&lt;strong&gt;Open Accessibility Settings&lt;/strong&gt;, &lt;strong&gt;Check Again&lt;/strong&gt;, or &lt;strong&gt;Reset &amp;amp; Ask Again&lt;/strong&gt;.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Keystroke sending&lt;/td&gt;&#10; &lt;td&gt;Allowed&lt;/td&gt;&#10; &lt;td&gt;Comes with Accessibility. &lt;strong&gt;Request Access&lt;/strong&gt;, &lt;strong&gt;Check Again&lt;/strong&gt;, or &lt;strong&gt;Reset &amp;amp; Ask Again&lt;/strong&gt;.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Keyboard reading&lt;/td&gt;&#10; &lt;td&gt;Reading the keyboard&lt;/td&gt;&#10; &lt;td&gt;macOS stopped the event tap. &lt;strong&gt;Try Again&lt;/strong&gt;, or &lt;strong&gt;Release All&lt;/strong&gt;.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Secure input&lt;/td&gt;&#10; &lt;td&gt;Off&lt;/td&gt;&#10; &lt;td&gt;A password field or Terminal's Secure Keyboard Entry hides keys from every app. Capslock never turns it off; close the field or the option.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Caps Lock press&lt;/td&gt;&#10; &lt;td&gt;Received&lt;/td&gt;&#10; &lt;td&gt;Press Caps Lock once, then &lt;strong&gt;Refresh&lt;/strong&gt;.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Configuration&lt;/td&gt;&#10; &lt;td&gt;Valid&lt;/td&gt;&#10; &lt;td&gt;The file cannot be read. &lt;strong&gt;Show Config Folder&lt;/strong&gt; and repair or replace it.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Signature&lt;/td&gt;&#10; &lt;td&gt;Valid&lt;/td&gt;&#10; &lt;td&gt;A development build.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Updates&lt;/td&gt;&#10; &lt;td&gt;Enabled&lt;/td&gt;&#10; &lt;td&gt;This build does not update itself; download new versions from the website.&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;&lt;strong&gt;Reset &amp;amp; Ask Again&lt;/strong&gt; clears Capslock's Accessibility and keystroke-sending&#10;entries and asks again. Use it when System Settings shows Capslock as allowed&#10;but the check still fails, which can happen after replacing the app with a&#10;different build.&lt;/p&gt;</description></item><item><title>Learn the layout</title><link>https://caps.pgsty.com/docs/start/learn/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/start/learn/</guid><description>&lt;p&gt;Nobody memorizes 357 bindings up front. Capslock teaches the layout in three&#10;ways: it shows the current plane when you pause, it can show each action as&#10;it runs, and the Playground has short lessons that follow your own mappings.&lt;/p&gt;&#10;&lt;h2 id="hold-to-reveal"&gt;Hold-to-Reveal&#10;&lt;/h2&gt;&#10;&lt;p&gt;Hold Caps Lock without pressing another key. After a short delay the current&#10;plane appears on screen as a full keyboard with every action written on its&#10;key. Press ⌘, ⌥, ⌃ or ⇧ to switch planes while it is open; release Caps Lock to&#10;close it.&lt;/p&gt;</description></item><item><title>Mac V1</title><link>https://caps.pgsty.com/docs/karabiner/archive/mac-v1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/karabiner/archive/mac-v1/</guid><description>&lt;div class="td-callout td-callout--warning" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-triangle-exclamation" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;Archived, not maintained&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;Mac V1 ran on the original Karabiner together with Seil, on OS X 10.10&#10;Yosemite and 10.11 El Capitan. The original Karabiner does not run on macOS&#10;10.12 Sierra or later, so V1 cannot run on any current Mac. It was replaced by&#10;&lt;a href="https://caps.pgsty.com/docs/karabiner/archive/mac-v2/"&gt;Mac V2&lt;/a&gt;, and the maintained edition today is&#10;&lt;a href="https://caps.pgsty.com/docs/karabiner/getting-started/"&gt;Mac V3&lt;/a&gt;.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;Mac V1 was the first Capslock edition for the Mac. It needed two tools. Seil&#10;changed the key code that Caps Lock sends to 80, the code of F19. Karabiner then&#10;read V1's &lt;code&gt;private.xml&lt;/code&gt;, which turned that key into &lt;strong&gt;Hyper&lt;/strong&gt; (&lt;code&gt;✱&lt;/code&gt;) while held&#10;and defined each group of shortcuts as a separate item to switch on in&#10;Karabiner's preferences.&lt;/p&gt;</description></item><item><title>Mouse and scrolling</title><link>https://caps.pgsty.com/docs/layout/mouse/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/layout/mouse/</guid><description>&lt;p&gt;Capslock can drive the pointer from three places: the letter keys under your&#10;right hand, the arrow keys, and the numeric keypad. Movement and scrolling run&#10;smoothly for as long as you hold the chord. Mouse buttons are held while you&#10;hold the chord, so holding a click chord and moving drags.&lt;/p&gt;&#10;&lt;h2 id="letters"&gt;On the letter keys&#10;&lt;/h2&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--matrix td-table-scroll--static"&gt;&#10;&lt;table class="matrix wide td-table--wide td-table--matrix"&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;Key&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;&lt;code&gt;⇪ ⌥&lt;/code&gt; mouse&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;&lt;code&gt;⇪ ⌥ ⇧&lt;/code&gt; fast mouse&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;&lt;code&gt;⇪ ⌃ ⇧&lt;/code&gt; scroll&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;&lt;code&gt;⇪ ⇧ ⌘&lt;/code&gt; fast scroll&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;H&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Move left&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Move left, fast&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Scroll left&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Scroll left, fast&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;J&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Move down&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Move down, fast&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Scroll down&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Scroll down, fast&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;K&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Move up&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Move up, fast&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Scroll up&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Scroll up, fast&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;L&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Move right&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Move right, fast&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Scroll right&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Scroll right, fast&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;U&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Left click&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Left click&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Scroll right&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Scroll right, fast&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;I&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Right click&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Right click&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Scroll up&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Scroll up, fast&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;O&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Back button (4)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Back button (4)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Scroll down&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Scroll down, fast&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;P&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Forward button (5)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Forward button (5)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Scroll left&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Scroll left, fast&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;On the two scroll planes, U I O P scroll in the opposite direction to&#10;H J K L. Fast movement is twice the normal speed; fast scrolling is twice the&#10;normal scroll.&lt;/p&gt;</description></item><item><title>Navigation, deletion, and mouse</title><link>https://caps.pgsty.com/docs/karabiner/navigation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/karabiner/navigation/</guid><description>&lt;p&gt;The pink and brown areas around the home row carry the layout's most frequent&#10;operations. The navigation and deletion families together carry 114 of the 282&#10;mappings in V3.1, so this is the part of the layout worth learning first.&lt;/p&gt;&#10;&lt;div class="td-callout td-callout--important" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-circle-exclamation" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;Important&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;Unless stated otherwise, every chord on this page assumes &lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;✱&lt;/kbd&gt;&lt;/span&gt;&#10;Hyper is held. &amp;quot;+ &lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;⌘&lt;/kbd&gt;&lt;/span&gt;&amp;quot; therefore means&#10;&lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;✱&lt;/kbd&gt;&lt;span class="td-kbd-sequence__separator" aria-hidden="true"&gt;+&lt;/span&gt;&lt;span class="visually-hidden"&gt; with &lt;/span&gt;&lt;kbd&gt;⌘&lt;/kbd&gt;&lt;/span&gt; plus the listed key.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="navigation"&gt;The navigator block&#10;&lt;/h2&gt;&#10;&lt;p&gt;&lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;H&lt;/kbd&gt;&lt;/span&gt; &lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;J&lt;/kbd&gt;&lt;/span&gt; &lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;K&lt;/kbd&gt;&lt;/span&gt; &lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;L&lt;/kbd&gt;&lt;/span&gt; move left,&#10;down, up, and right, exactly as in Vim. Directly above them,&#10;&lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;U&lt;/kbd&gt;&lt;/span&gt; &lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;I&lt;/kbd&gt;&lt;/span&gt; &lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;O&lt;/kbd&gt;&lt;/span&gt; &lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;P&lt;/kbd&gt;&lt;/span&gt; extend the same&#10;idea to whole pages and lines: Page Up, Home, End, Page Down.&lt;/p&gt;</description></item><item><title>Actions</title><link>https://caps.pgsty.com/docs/guide/actions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/guide/actions/</guid><description>&lt;p&gt;A mapping runs an action. Actions are either built in or yours. The Actions&#10;page lists both; built-ins cannot be edited, but any of them can be mapped.&lt;/p&gt;&#10;&lt;h2 id="builtin"&gt;Built-in actions&#10;&lt;/h2&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;Action&lt;/th&gt;&#10; &lt;th scope="col"&gt;ID&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Left, Right, Up, Down&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;builtin.move_left&lt;/code&gt;, &lt;code&gt;builtin.move_right&lt;/code&gt;, &lt;code&gt;builtin.move_up&lt;/code&gt;, &lt;code&gt;builtin.move_down&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Word Forward, Word Back&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;builtin.word_forward&lt;/code&gt;, &lt;code&gt;builtin.word_back&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Home, End&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;builtin.line_start&lt;/code&gt;, &lt;code&gt;builtin.line_end&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Up 10 Lines, Down 10 Lines&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;builtin.jump_up_10&lt;/code&gt;, &lt;code&gt;builtin.jump_down_10&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Backspace&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;builtin.backspace&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Next Line&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;builtin.new_line&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Insert Quotes&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;builtin.insert_quotes&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Escape&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;builtin.escape&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Toggle Caps Lock&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;builtin.toggle_caps_lock&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Do Nothing&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;builtin.noop&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Normal Key&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;builtin.passthrough&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;The IDs are permanent: a mapping that refers to one keeps working across&#10;versions.&lt;/p&gt;</description></item><item><title>Coexisting with Karabiner-Elements</title><link>https://caps.pgsty.com/docs/start/karabiner/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/start/karabiner/</guid><description>&lt;p&gt;Capslock needs Caps Lock and the F18 key to itself. It never edits, disables,&#10;or uninstalls Karabiner-Elements or any other tool. When something else&#10;already uses those keys, Capslock refuses to start and tells you what to&#10;change.&lt;/p&gt;&#10;&lt;h2 id="conflicts"&gt;What counts as a conflict&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;A system key remap of Caps Lock.&lt;/strong&gt; If another tool has remapped Caps Lock,&#10;Diagnostics shows &amp;quot;Caps Lock is used by another tool&amp;quot;.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Another use of F18.&lt;/strong&gt; If anything remaps a key to or from F18, Diagnostics&#10;shows &amp;quot;F18 is already in use&amp;quot;.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;A Karabiner-Elements rule.&lt;/strong&gt; When Karabiner-Elements is running, Capslock&#10;reads the selected profile and looks for rules that start from Caps Lock or&#10;F18, or that produce F18. It reports only how many it found, never their&#10;names or contents.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Karabiner-Elements can keep running for everything else. Only rules on Caps&#10;Lock and F18 conflict.&lt;/p&gt;</description></item><item><title>Windows and developer workflows</title><link>https://caps.pgsty.com/docs/karabiner/workflows/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/karabiner/workflows/</guid><description>&lt;p&gt;The layout dedicates several colour-coded zones to the actions that interrupt a&#10;developer's flow most often: switching windows, launching tools, sending&#10;terminal signals, parking text somewhere, and typing punctuation.&lt;/p&gt;&#10;&lt;div class="td-callout td-callout--important" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-circle-exclamation" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;Important&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;Every chord on this page assumes &lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;✱&lt;/kbd&gt;&lt;/span&gt; Hyper is held.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="window-control"&gt;Window control&#10;&lt;/h2&gt;&#10;&lt;p&gt;&lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;⇥&lt;/kbd&gt;&lt;/span&gt; &lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;Q&lt;/kbd&gt;&lt;/span&gt; &lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;W&lt;/kbd&gt;&lt;/span&gt; &lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;A&lt;/kbd&gt;&lt;/span&gt;&#10;&lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;S&lt;/kbd&gt;&lt;/span&gt; form the azure block on the left of the keyboard. They close&#10;and cycle things, from a single tab up to the whole login session.&lt;/p&gt;</description></item><item><title>Editing, symbols and clipboard</title><link>https://caps.pgsty.com/docs/layout/editing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/layout/editing/</guid><description>&lt;h2 id="delete"&gt;Delete&#10;&lt;/h2&gt;&#10;&lt;p&gt;N M , . sit below the navigation keys and delete in both directions.&lt;/p&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--matrix td-table-scroll--static"&gt;&#10;&lt;table class="matrix wide td-table--wide td-table--matrix"&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;Key&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;&lt;code&gt;⇪&lt;/code&gt;&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;&lt;code&gt;⇪ ⌘&lt;/code&gt;&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;&lt;code&gt;⇪ ⌥&lt;/code&gt;&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;N&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Delete the previous word (⌥⌫)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Delete to the start of the line (⇧⌘←, then ⌫)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Delete to the start of the line (⌘⌫)&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;M&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Delete the previous character (⌫)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Delete the previous word (⌥⌫)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Move the line down (⌥⇧↓)&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;,&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Delete the next character (⌦)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Delete the next word (⌥⌦)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Move the line up (⌥⇧↑)&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;.&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Delete the next word (⌥⌦)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Delete to the end of the line (⇧⌘→, then ⌫)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Delete to the start of the line (⌘⌫)&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;⌥⇧↑ and ⌥⇧↓ move a line in editors that use those shortcuts, such as Visual&#10;Studio Code. Elsewhere they extend a selection.&lt;/p&gt;</description></item><item><title>Uninstall</title><link>https://caps.pgsty.com/docs/reference/uninstall/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/reference/uninstall/</guid><description>&lt;p&gt;Capslock has no installer and leaves nothing outside your user account except&#10;the Accessibility entry.&lt;/p&gt;&#10;&lt;ol class="steps"&gt;&#10;&lt;li&gt;&lt;strong&gt;Quit Capslock&lt;/strong&gt; from the menu-bar icon or with ⌘Q, so it can give Caps&#10;Lock back. If it was force-quit and Caps Lock still does not work as&#10;usual, run the &lt;a href="https://caps.pgsty.com/docs/reference/diagnostics/#cli"&gt;restore command&lt;/a&gt; before&#10;you delete the app.&lt;/li&gt;&#10;&lt;li&gt;If you turned on &lt;strong&gt;Open at login&lt;/strong&gt;, turn it off in Settings › General.&lt;/li&gt;&#10;&lt;li&gt;Move &lt;code&gt;/Applications/Capslock.app&lt;/code&gt; to the Trash.&lt;/li&gt;&#10;&lt;li&gt;To remove your data as well, delete these:&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;~/Library/Application Support/com.vonng.capslock&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;~/Library/Preferences/com.vonng.capslock.plist&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;~/Library/Caches/com.vonng.capslock&lt;/code&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;In System Settings › Privacy &amp;amp; Security › Accessibility, select Capslock&#10;and click &lt;strong&gt;−&lt;/strong&gt;.&lt;/li&gt;&#10;&lt;li&gt;If you used clipboard slots, delete the Keychain item named&#10;&lt;code&gt;com.vonng.capslock.clipboard-slots&lt;/code&gt; in Keychain Access.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;A Mac restart also clears the Caps Lock mapping, which macOS does not keep&#10;across restarts.&lt;/p&gt;</description></item><item><title>Windows</title><link>https://caps.pgsty.com/docs/karabiner/archive/windows/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/karabiner/archive/windows/</guid><description>&lt;div class="td-callout td-callout--warning" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-triangle-exclamation" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;Archived, not maintained&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;The Windows version is an AutoHotkey script from 2013–2015. The Mac V2 README&#10;listed Windows XP, Vista, 7, 8 and 10 as its systems. Neither the script nor&#10;the prebuilt executable is tested on current Windows.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;Capslock began on Windows in 2013, two years before the first Mac version. The&#10;script turns Caps Lock, which it calls the &amp;quot;useless key&amp;quot;, into a function key&#10;like Ctrl and Alt by combining it with almost every other key on the keyboard.&#10;Caps Lock itself is kept off, and its old job moves to Caps Lock + `.&lt;/p&gt;</description></item><item><title>Hyper mode and profile behaviour</title><link>https://caps.pgsty.com/docs/guide/hyper-mode/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/guide/hyper-mode/</guid><description>&lt;h2 id="modes"&gt;Hyper mode&#10;&lt;/h2&gt;&#10;&lt;p&gt;Settings › Hyper › &lt;strong&gt;Hyper mode&lt;/strong&gt; has two choices. You also pick one during&#10;onboarding.&lt;/p&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;&lt;/th&gt;&#10; &lt;th scope="col"&gt;Classic (default)&lt;/th&gt;&#10; &lt;th scope="col"&gt;Native&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;What other apps see while Caps Lock is held&lt;/td&gt;&#10; &lt;td&gt;Right ⌘, ⌥, ⌃ and ⇧ held down&lt;/td&gt;&#10; &lt;td&gt;Nothing&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Hyper shortcuts in Alfred, Raycast, Moom and similar apps&lt;/td&gt;&#10; &lt;td&gt;Work&lt;/td&gt;&#10; &lt;td&gt;Do not see Hyper&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Modifiers that choose a plane&lt;/td&gt;&#10; &lt;td&gt;Left side only&lt;/td&gt;&#10; &lt;td&gt;Either side, unless you choose Left only&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;A mapped chord's output&lt;/td&gt;&#10; &lt;td&gt;Clean: ⇪ H sends a plain ←&lt;/td&gt;&#10; &lt;td&gt;Clean&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;Pick &lt;strong&gt;Classic&lt;/strong&gt; if you have shortcuts in other apps that rely on Hyper&#10;(⌃⌥⇧⌘), or if you are coming from the Karabiner-Elements configuration. Pick&#10;&lt;strong&gt;Native&lt;/strong&gt; if nothing else listens for Hyper and you want either side's&#10;modifiers to choose a plane.&lt;/p&gt;</description></item><item><title>Privacy</title><link>https://caps.pgsty.com/docs/reference/privacy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/reference/privacy/</guid><description>&lt;p&gt;Capslock processes keyboard and pointer events on your Mac to apply the&#10;mappings you chose. It contains no behaviour analytics or advertising SDK. It&#10;sends no mapping, key, clipboard, Shell, app-history, or usage telemetry.&lt;/p&gt;&#10;&lt;h2 id="local-data"&gt;What is stored locally&#10;&lt;/h2&gt;&#10;&lt;p&gt;Everything Capslock keeps lives in your user account, under&#10;&lt;code&gt;~/Library/Application Support/com.vonng.capslock/&lt;/code&gt;:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;your configuration;&lt;/li&gt;&#10;&lt;li&gt;clipboard slots, encrypted with a random key that is kept in your Keychain;&lt;/li&gt;&#10;&lt;li&gt;a private diagnostic log, readable only by your user;&lt;/li&gt;&#10;&lt;li&gt;recovery records used to give the Caps Lock mapping back after a crash;&lt;/li&gt;&#10;&lt;li&gt;per-day action counters for the Statistics page.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;A diagnostics export leaves out produced text, clipboard contents, Shell&#10;commands and output, secrets, raw key history, and full app history.&lt;/p&gt;</description></item><item><title>System functions and reference</title><link>https://caps.pgsty.com/docs/karabiner/reference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/karabiner/reference/</guid><description>&lt;p&gt;This page collects the mappings and project details you look up rather than&#10;learn in sequence.&lt;/p&gt;&#10;&lt;h2 id="functional"&gt;Function and system keys&#10;&lt;/h2&gt;&#10;&lt;p&gt;F1–F12 behave as standard function keys by default; hold Hyper to send their&#10;media or system functions instead. The cyan block covers the whole top row plus&#10;the screenshot keys.&lt;/p&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--matrix td-table-scroll--static"&gt;&#10;&lt;table class="matrix wide td-table--wide td-table--matrix"&gt;&#10; &lt;caption class="td-table__caption"&gt;Karabiner-Elements 15.1 and later follow System Settings › Keyboard › Keyboard Shortcuts… › Function Keys&lt;/caption&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;Key&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;Hyper action&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;+ &lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;⌘&lt;/kbd&gt;&lt;/span&gt;&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;&lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;`&lt;/kbd&gt;&lt;/span&gt;&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Area screenshot to clipboard&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Area screenshot to file&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;&lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;F1&lt;/kbd&gt;&lt;/span&gt; / &lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;F2&lt;/kbd&gt;&lt;/span&gt;&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Brightness down / up&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Desktop 1 / 2&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;&lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;F3&lt;/kbd&gt;&lt;/span&gt;&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Mission Control&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Desktop 3&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;&lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;F4&lt;/kbd&gt;&lt;/span&gt;&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Spotlight&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;—&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;&lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;F5&lt;/kbd&gt;&lt;/span&gt; / &lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;F6&lt;/kbd&gt;&lt;/span&gt;&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Keyboard light down / up&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;—&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;&lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;F7&lt;/kbd&gt;&lt;/span&gt; / &lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;F8&lt;/kbd&gt;&lt;/span&gt; / &lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;F9&lt;/kbd&gt;&lt;/span&gt;&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Previous / play-pause / next&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;—&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;&lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;F10&lt;/kbd&gt;&lt;/span&gt; / &lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;F11&lt;/kbd&gt;&lt;/span&gt; / &lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;F12&lt;/kbd&gt;&lt;/span&gt;&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Mute / volume down / volume up&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;—&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;&lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;F13&lt;/kbd&gt;&lt;/span&gt;&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Full screenshot to clipboard&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Full screenshot to file&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;&lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;F14&lt;/kbd&gt;&lt;/span&gt;&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Screenshot menu&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Legacy Touch Bar screenshot&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;&lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;F15&lt;/kbd&gt;&lt;/span&gt;&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Play / pause&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;—&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;The screenshot keys follow one convention: the plain Hyper chord puts the&#10;capture on the &lt;strong&gt;clipboard&lt;/strong&gt;, and adding &lt;span class="td-kbd-sequence"&gt;&lt;kbd&gt;⌘&lt;/kbd&gt;&lt;/span&gt; writes it to a &lt;strong&gt;file&lt;/strong&gt; on the desktop.&lt;/p&gt;</description></item><item><title>Windows and apps</title><link>https://caps.pgsty.com/docs/layout/windows-apps/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/layout/windows-apps/</guid><description>&lt;h2 id="windows"&gt;Window control&#10;&lt;/h2&gt;&#10;&lt;p&gt;Tab, Q, W, A and S sit under the left hand, so you can switch and close while&#10;the right hand stays on the mouse or the navigation keys.&lt;/p&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--matrix td-table-scroll--static"&gt;&#10;&lt;table class="matrix wide td-table--wide td-table--matrix"&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;Key&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;&lt;code&gt;⇪&lt;/code&gt;&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;&lt;code&gt;⇪ ⌘&lt;/code&gt;&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;&lt;code&gt;⇪ ⌥&lt;/code&gt;&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;&lt;code&gt;⇪ ⌃&lt;/code&gt;&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;&lt;code&gt;⇪ ⇧&lt;/code&gt;&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;Tab&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Next app (⌘Tab)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Previous app (⇧⌘Tab)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Space to the right (⌃→)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Next tab (⌃Tab)&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;Q&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Quit the app (⌘Q)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Quit the app (⌘Q)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Lock the screen (⌃⌘Q)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Log out (⇧⌘Q)&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;W&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Close the window or tab (⌘W)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Close (⌘W)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Sleep the display&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Sleep the Mac&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;A&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Mission Control (⌃↑)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Show the desktop (F11)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Open Apps (Launchpad)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;S&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Next tab (⌃Tab)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Previous tab (⌃⇧Tab)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Next window of the app (⌘`)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Previous window of the app (⇧⌘`)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;&lt;code&gt;⇪ A&lt;/code&gt; on its own has no binding. Sleep the display and Sleep the Mac are&#10;built-in actions that run immediately; in the Playground's Safe Practice mode&#10;they are only previewed.&lt;/p&gt;</description></item><item><title>Configurator</title><link>https://caps.pgsty.com/docs/karabiner/configurator/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/karabiner/configurator/</guid><description>&lt;p&gt;Pick a control plane from the table or by clicking the left-side modifiers,&#10;then click any key to see the Karabiner rule behind it. Keys that launch an&#10;application can be renamed. Your edits stay in this page until you copy or&#10;download the JSON; nothing is sent anywhere.&lt;/p&gt;&#10;&lt;p&gt;The interactive configurator runs only on the web page: it shows all sixteen control planes, lets you rename the application shortcuts, and exports a JSON file for Karabiner-Elements. Current configuration (3.1.0): &lt;a href="https://raw.githubusercontent.com/Vonng/Capslock/main/mac_v3/capslock.json"&gt;capslock.json&lt;/a&gt;&lt;/p&gt;</description></item><item><title>FAQ</title><link>https://caps.pgsty.com/docs/reference/faq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/reference/faq/</guid><description>&lt;h3 id="karabiner"&gt;Do I need Karabiner-Elements?&#10;&lt;/h3&gt;&#10;&lt;p&gt;No. Capslock is a standalone app and builds the whole layout in. If you also&#10;run Karabiner-Elements for other keys, that is fine as long as no Karabiner&#10;rule uses Caps Lock or F18. See &lt;a href="https://caps.pgsty.com/docs/start/karabiner/"&gt;Coexisting with Karabiner-Elements&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h3 id="accessibility"&gt;Why does it need Accessibility?&#10;&lt;/h3&gt;&#10;&lt;p&gt;To change key events, not just observe them, macOS requires an active event&#10;tap, and that requires Accessibility. Capslock does not ask for Input&#10;Monitoring, does not install a kernel extension or driver, and runs no&#10;privileged helper.&lt;/p&gt;</description></item><item><title>Function and media keys</title><link>https://caps.pgsty.com/docs/layout/function-keys/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/layout/function-keys/</guid><description>&lt;h2 id="function-row"&gt;The function row&#10;&lt;/h2&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--matrix td-table-scroll--static"&gt;&#10;&lt;table class="matrix wide td-table--wide td-table--matrix"&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;Key&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;&lt;code&gt;⇪&lt;/code&gt;&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;&lt;code&gt;⇪ ⌘&lt;/code&gt;&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;F1&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Brightness down&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;⌃1, switch to desktop 1&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;F2&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Brightness up&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;⌃2, switch to desktop 2&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;F3&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Mission Control (⌃↑)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;⌃3, switch to desktop 3&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;F4&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Open Apps (Launchpad)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;F5&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Keyboard light down&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;F6&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Keyboard light up&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;F7&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Previous track&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;F8&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Play or pause&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;F9&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Next track&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;F10&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Mute&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;F11&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Volume down&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;F12&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Volume up&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;F13&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Screenshot of the screen to the clipboard (⌃⇧⌘3)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Screenshot of the screen to a file (⇧⌘3)&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;F14&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Screenshot and recording toolbar (⇧⌘5)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;⇧⌘6&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;F15&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Play or pause&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="row" style="text-align: left"&gt;`&lt;/th&gt;&#10; &lt;td style="text-align: left"&gt;Screenshot of an area to the clipboard (⌃⇧⌘4)&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Screenshot of an area to a file (⇧⌘4)&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;These chords need the key to arrive as a real F-key. If the top row of your&#10;keyboard controls brightness and volume by default, hold fn as well, or turn&#10;on &amp;quot;Use F1, F2, etc. keys as standard function keys&amp;quot; in System Settings.&#10;⌃1 to ⌃3 switch desktops only when those shortcuts are enabled in System&#10;Settings.&lt;/p&gt;</description></item><item><title>Settings, menu bar and statistics</title><link>https://caps.pgsty.com/docs/guide/settings/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/docs/guide/settings/</guid><description>&lt;h2 id="settings"&gt;Settings&#10;&lt;/h2&gt;&#10;&lt;p&gt;Settings are stored in &lt;code&gt;app_config.yml&lt;/code&gt;; see&#10;&lt;a href="https://caps.pgsty.com/docs/reference/configuration/"&gt;Configuration file&lt;/a&gt;.&lt;/p&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;Section&lt;/th&gt;&#10; &lt;th scope="col"&gt;Setting&lt;/th&gt;&#10; &lt;th scope="col"&gt;Default&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;General&lt;/td&gt;&#10; &lt;td&gt;Open at login&lt;/td&gt;&#10; &lt;td&gt;Off&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;td&gt;Show window at launch&lt;/td&gt;&#10; &lt;td&gt;On; when off, Capslock starts quietly in the menu bar&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;td&gt;Hide Dock icon&lt;/td&gt;&#10; &lt;td&gt;Off&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;td&gt;Language&lt;/td&gt;&#10; &lt;td&gt;Follow System (English or Simplified Chinese)&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;td&gt;Appearance&lt;/td&gt;&#10; &lt;td&gt;System, Light or Dark&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Hyper&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="https://caps.pgsty.com/docs/guide/hyper-mode/#modes"&gt;Hyper mode&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;Classic&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;td&gt;Double-tap speed&lt;/td&gt;&#10; &lt;td&gt;200 ms&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="https://caps.pgsty.com/docs/start/learn/#hold-to-reveal"&gt;Hold to reveal&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;On, 550 ms delay, hides when an action runs&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="https://caps.pgsty.com/docs/start/learn/#hud"&gt;Show actions on screen&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;Off, 1.35 s&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Profile behavior&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="https://caps.pgsty.com/docs/guide/hyper-mode/#unmapped"&gt;Unmapped Caps chords&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;Send the normal key&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="https://caps.pgsty.com/docs/guide/hyper-mode/#sides"&gt;Modifier sides&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;Automatic&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Input sources&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="https://caps.pgsty.com/docs/guide/actions/#input-sources"&gt;Fix for CJK input sources&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;None&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Advanced&lt;/td&gt;&#10; &lt;td&gt;&lt;a href="https://caps.pgsty.com/docs/guide/hyper-mode/#key-remaps"&gt;Key remaps&lt;/a&gt;&lt;/td&gt;&#10; &lt;td&gt;None&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;/td&gt;&#10; &lt;td&gt;Show counts on mappings&lt;/td&gt;&#10; &lt;td&gt;On&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;The &lt;strong&gt;Status&lt;/strong&gt;, &lt;strong&gt;Permissions&lt;/strong&gt; and &lt;strong&gt;Recovery&lt;/strong&gt; sections repeat the controls&#10;from Home and Diagnostics: Pause and Resume, the permission rows, Release All,&#10;Restore Caps Lock, and Show Config Folder.&lt;/p&gt;</description></item><item><title>How Capslock works: F18, an event tap, and a mapping it gives back</title><link>https://caps.pgsty.com/blog/post/how-capslock-works/</link><pubDate>Fri, 06 Nov 2026 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/blog/post/how-capslock-works/</guid><description>&lt;p&gt;Caps Lock sits in the best spot on the keyboard and does the least useful job.&#10;Capslock gives it a new one: tap it for Escape, hold it for Hyper, and combine&#10;it with the four modifiers to reach sixteen control planes. This post explains&#10;how a native app does that on macOS without a kernel extension, a driver, or a&#10;privileged helper.&lt;/p&gt;&#10;&lt;h2 id="not-a-modifier"&gt;Caps Lock is not a modifier&#10;&lt;/h2&gt;&#10;&lt;p&gt;macOS does not report Caps Lock as a key that goes down and comes back up. It&#10;reports a lock state that flips, and it adds a short delay so that brushing the&#10;key does not toggle it. That is fine for typing capitals and useless for a&#10;modifier that must be held.&lt;/p&gt;</description></item><item><title>Capslock 0.4.0</title><link>https://caps.pgsty.com/blog/release/0.4.0/</link><pubDate>Sat, 26 Sep 2026 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/blog/release/0.4.0/</guid><description>&lt;div class="td-callout td-callout--note" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-circle-info" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;Release candidate&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;0.4.0 is in candidate acceptance. It has not been signed, notarized, or&#10;published for download yet. See &lt;a href="https://caps.pgsty.com/download/"&gt;Download&lt;/a&gt; for the current status.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="whats-new"&gt;What's new&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;A clearer first run.&lt;/strong&gt; Onboarding ends on the complete keyboard. You can&#10;browse it before granting keyboard access, and the app says plainly whether it&#10;is running your keyboard or only showing a preview.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Lessons follow your configuration.&lt;/strong&gt; The first Playground chapter now&#10;includes Hyper+Space. If you changed or disabled a key a lesson uses, the&#10;lesson says so. Safe Practice previews are marked differently from actions&#10;that really ran.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Profile behaviour travels with your mappings.&lt;/strong&gt; Choose what unmapped keys do&#10;and which modifier sides select a plane. An explicit pass-through is kept&#10;apart from a removed binding, and both survive Undo and export.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Recovery reports what it verified.&lt;/strong&gt; Restoring Caps Lock reports success&#10;only after the system mapping has been read back. When the mapping cannot be&#10;read, ownership is shown as unknown instead of guessed.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Clear local-data and trust boundaries.&lt;/strong&gt; Statistics explain what a trigger&#10;count is and how long it is kept. Shell approval explains that a command runs&#10;with your user privileges, may use the network, and is not undone by Pause or&#10;Undo.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="since-candidate"&gt;Since the candidate was cut&#10;&lt;/h2&gt;&#10;&lt;p&gt;Work on 0.4.0 continued after the candidate was cut, and the following fixes&#10;are part of the same version:&lt;/p&gt;</description></item><item><title>Capslock 0.3.0</title><link>https://caps.pgsty.com/blog/release/0.3.0/</link><pubDate>Tue, 08 Sep 2026 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/blog/release/0.3.0/</guid><description>&lt;div class="td-callout td-callout--note" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-circle-info" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;Internal build&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;0.3.0 was a development build and was not distributed publicly.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Safer keyboard recovery.&lt;/strong&gt; Reconnecting a keyboard checks for remapper&#10;conflicts again. Differing per-device mappings are preserved instead of&#10;merged, and an explicit Pause cancels pending wake-up retries.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Stronger configuration handling.&lt;/strong&gt; Malformed numbers, duplicate document&#10;sections, and invalid fallback actions are rejected safely. An empty profile&#10;can be exported and restored, and a failed statistics write is retried.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;More reliable pointer controls.&lt;/strong&gt; Continuous movement follows the real&#10;cursor position, and releasing a chord cancels pending movement and&#10;scrolling.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Editor and diagnostics.&lt;/strong&gt; Menus follow language changes, and a diagnostics&#10;export can replace an existing archive.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Compatibility.&lt;/strong&gt; Mappings that reference a retired built-in action still&#10;load, and preview mode cannot change permissions or login items.&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Capslock 0.2.0</title><link>https://caps.pgsty.com/blog/release/0.2.0/</link><pubDate>Tue, 11 Aug 2026 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/blog/release/0.2.0/</guid><description>&lt;div class="td-callout td-callout--note" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-circle-info" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;Internal build&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;0.2.0 was a development build and was not distributed publicly.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;The complete Classic layout is the default.&lt;/strong&gt; A fresh start loads every&#10;binding of the Capslock Classic profile instead of a minimal starter map.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;A keyboard-first editor.&lt;/strong&gt; The default view shows the sixteen named planes,&#10;the full main keyboard, and the numeric keypad together, with each mapped&#10;action written on its key.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Explicit Caps semantics.&lt;/strong&gt; Tapping Caps sends Escape. Hyper+Space sends the&#10;real Control-Space input-source shortcut. Hyper+Escape toggles the real Caps&#10;Lock.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;English and Chinese.&lt;/strong&gt; The app follows the system language, ships complete&#10;English and Simplified Chinese text, and falls back to English for other&#10;languages.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Auditable safety.&lt;/strong&gt; Imported executable actions lose their trust until you&#10;review them, and diagnostics and recovery never change Karabiner-Elements.&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Capslock 0.1.0</title><link>https://caps.pgsty.com/blog/release/0.1.0/</link><pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/blog/release/0.1.0/</guid><description>&lt;div class="td-callout td-callout--note" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-circle-info" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;Internal build&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;0.1.0 was a development build and was not distributed publicly.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Capslock Classic built in.&lt;/strong&gt; Every behaviour of the Classic profile has an&#10;explicit native counterpart, resolved exactly across sixteen planes.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Two Hyper modes.&lt;/strong&gt; Classic Compatibility holds the right-side modifiers for&#10;Alfred, Moom, and existing shortcuts; Native Clean keeps the control layer&#10;private to Capslock.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Native editor and app overrides.&lt;/strong&gt; Inspect, rebind, disable, restore,&#10;validate, and undo or redo a key, and scope an action to one app by its exact&#10;bundle ID, without editing JSON by hand.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Hold-to-Reveal and Playground.&lt;/strong&gt; See the current named plane while you&#10;hold Caps, learn tap, hold, Hyper+Escape and H/J/K/L, then explore in Free&#10;Play.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Safe Practice and recovery.&lt;/strong&gt; Lessons block dangerous effects, and losing&#10;focus returns to live mode. Diagnostics can release synthetic input, restore&#10;Caps Lock, and export a redacted report.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Coexistence by default.&lt;/strong&gt; Existing non-Caps &lt;code&gt;hidutil&lt;/code&gt; mappings are kept,&#10;a Caps or F18 conflict stops activation, and Karabiner-Elements is never&#10;installed or reconfigured.&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Download</title><link>https://caps.pgsty.com/download/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://caps.pgsty.com/download/</guid><description>&lt;div class="td-callout td-callout--warning" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-triangle-exclamation" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;No public download yet&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;Capslock 0.4.0 is a release candidate in final acceptance. A download link&#10;will appear here only after the release is Developer ID signed, notarized,&#10;installed on a clean account, smoke-tested on Intel and macOS 14, and its&#10;update feed is verified. Until then there is no official build to download.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="status"&gt;Release status&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Current version:&lt;/strong&gt; 0.4.0, release candidate&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Public download:&lt;/strong&gt; not yet available&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Licence:&lt;/strong&gt; proprietary software; the terms are published with the release&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Release notes:&lt;/strong&gt; &lt;a href="https://caps.pgsty.com/blog/release/0.4.0/"&gt;Capslock 0.4.0&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;h2 id="requirements"&gt;System requirements&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;macOS 14 Sonoma or later.&lt;/li&gt;&#10;&lt;li&gt;A Mac with Apple silicon or an Intel processor. The app is a single Universal&#10;build.&lt;/li&gt;&#10;&lt;li&gt;The &lt;strong&gt;Accessibility&lt;/strong&gt; permission. Capslock does not ask for Input Monitoring.&lt;/li&gt;&#10;&lt;li&gt;Nothing else is installed: no kernel extension, DriverKit driver, root&#10;daemon, or privileged helper.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;If Karabiner-Elements or another remapper already maps Caps Lock, Capslock&#10;reports the conflict and does not start until you resolve it. See&#10;&lt;a href="https://caps.pgsty.com/docs/start/karabiner/"&gt;Coexisting with Karabiner-Elements&lt;/a&gt;.&lt;/p&gt;</description></item></channel></rss>