<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>howto - Ultimate Hacking Keyboard</title>
	<atom:link href="https://uhk.io/blog/category/howto/feed" rel="self" type="application/rss+xml" />
	<link>https://uhk.io</link>
	<description>The keyboard. For professionals.</description>
	<lastBuildDate>Sat, 14 Jun 2025 18:56:42 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://uhk.io/wp-content/uploads/2024/01/cropped-android-chrome-512x512-1-32x32.png</url>
	<title>howto - Ultimate Hacking Keyboard</title>
	<link>https://uhk.io</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Advanced UHK configuration</title>
		<link>https://uhk.io/blog/2024/06/28/advanced-uhk-configuration</link>
		
		<dc:creator><![CDATA[László Monda]]></dc:creator>
		<pubDate>Fri, 28 Jun 2024 15:44:51 +0000</pubDate>
				<category><![CDATA[agent]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[modules]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[tech talk]]></category>
		<guid isPermaLink="false">https://uhk.io/?p=40081</guid>

					<description><![CDATA[Hi there, and welcome to this much-overdue UHK update! Agent and the UHK firmware have been getting increasingly powerful, but we haven't done a good job showcasing these capabilities. Luckily, John came to the rescue and created an excellent YouTube tutorial featuring the following points: John has also made these macros available on a dedicated [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Hi there, and welcome to this much-overdue UHK update!</p>



<p>Agent and the UHK firmware have been getting increasingly powerful, but we haven't done a good job showcasing these capabilities. Luckily, John came to the rescue and created an excellent YouTube tutorial featuring the following points:</p>



<ul class="wp-block-list">
<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=0s">00:00</a> What are smart macros?</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=62s">01:02</a> Dual function backtick</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=178s">02:58</a> Special macros for initialization and keymap changes</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=235s">03:55</a> OS-specific settings by keymap</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=287s">04:47</a> Capslock shift</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=338s">05:38</a> Record macro and playback to avoid tedious repetition</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=391s">06:31</a> Reassign keymap during alt-tab to close apps with one hand</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=472s">07:52</a> Function keys EVERYWHERE</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=544s">09:04</a> Delete line and easy-to-use macro wizard form</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=564s">09:24</a> Mouse jiggler to avoid screen timeouts</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=648s">10:48</a> Gaming macro shift walk tap or hold</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=685s">11:25</a> One shot modifier for fluid typing</li>



<li><a href="https://www.youtube.com/watch?v=gLWX4P5JC8I&amp;t=718s">11:58</a> Creating your macros, community support, and GPT4</li>
</ul>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Ultimate Hacking Keyboard Smart Macros Tutorial (.. unlock EXTREME productivity!)" width="800" height="450" src="https://www.youtube.com/embed/gLWX4P5JC8I?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>John has also made these macros available on <a href="https://github.com/TransitNow/uhk-agent-macro-gpt-prompt/blob/main/macros.md">a dedicated GitHub page</a>, so you can easily copy-paste them into Agent.</p>



<p>Speaking of Agent, we've been adding some new features worth mentioning, especially in the context of smart macros. See the following screenshot.</p>



<figure class="wp-block-image size-medium"><img fetchpriority="high" decoding="async" width="640" height="250" src="https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-640x250.png" alt="" class="wp-image-40083" srcset="https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-640x250.png 640w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-1024x399.png 1024w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-100x39.png 100w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-1536x599.png 1536w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-2048x799.png 2048w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-669x261.png 669w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-320x125.png 320w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-700x273.png 700w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-66x26.png 66w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-200x78.png 200w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-400x156.png 400w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-600x234.png 600w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-800x312.png 800w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-1200x468.png 1200w, https://uhk.io/wp-content/uploads/2024/06/agent-maro-screenshot-500x195.png 500w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<p>As you can see, we've added syntax highlighting and autocomplete. Autocomplete is thoroughly implemented, using the actual grammar and a generic parser. As such, its completions should be close to 100% contextually accurate. It's also worth mentioning that Agent pulls the grammar of the exact firmware revision actually used.</p>



<p> Agent also displays the error of a macro I intentionally made when saving the configuration. Clicking on the error makes the cursor jump to the relevant position of the affected macro. Thanks to these improvements, writing your macros is easier than ever.</p>



<p>Smart macros are a big deal because they enable features traditionally only possible with QMK and ZMK in a highly integrated manner without installing a toolchain. If you want to learn more about smart macros, the following resources should be useful:</p>



<ul class="wp-block-list">
<li><a href="https://github.com/UltimateHackingKeyboard/firmware/blob/master/doc-dev/user-guide.md">smart macro user guide</a> - a light introduction to basic concepts, including many examples</li>



<li><a href="https://github.com/UltimateHackingKeyboard/firmware/blob/master/doc-dev/reference-manual.md">smart macro reference manual</a> - an exhaustive (although dry and formal) list of all commands</li>



<li>The forum's <a href="https://forum.ultimatehackingkeyboard.com/c/my-configuration/7https://forum.ultimatehackingkeyboard.com/c/my-configuration/7">"my configuration"</a> and <a href="https://forum.ultimatehackingkeyboard.com/c/configuration-questions/5">"configuration question"</a> categories contain many examples and are the place to share your ideas and get help with their implementation.</li>



<li>Agent has an integrated, interactive smart macro reference that mostly describes configuration commands. See the "smart macro reference" tab on the right side of the previous screenshot. This side pane will eventually include all the smart macro documentation.</li>
</ul>



<p>Finally, I want to share two recent UHK reviews. The first was made by John, and in his true style, he's done a deep dive featuring Riser, the palm rests, the modules, the keycaps and switches, and many layout-related and smart macro-related topics, even gaming.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="UHK60 V2 Review - I can&#039;t stand traditional keyboards anymore! (Ultimate Hacking Keyboard)" width="800" height="450" src="https://www.youtube.com/embed/Bk2DUI3-El4?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>Evan has also made a UHK review, largely featuring the ergonomic benefits and accessories of the UHK, especially the modules.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="This is the CRAZIEST Keyboard I&#039;ve Ever Used!" width="800" height="450" src="https://www.youtube.com/embed/F7dKNJ8lu9M?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>That's it for now! I hope you found this update useful. Talk to you later!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Per-key backlighting is here</title>
		<link>https://uhk.io/blog/2023/08/18/per-key-backlighting-is-here</link>
		
		<dc:creator><![CDATA[László Monda]]></dc:creator>
		<pubDate>Fri, 18 Aug 2023 18:03:25 +0000</pubDate>
				<category><![CDATA[agent]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[news]]></category>
		<guid isPermaLink="false">https://uhk.io/?p=36622</guid>

					<description><![CDATA[TL;DR: Update to the newest Agent and set the backlighting of keys to your heart's desire! The UHK 60 v2 has been supporting functional backlighting from the get-go, which is loosely speaking per-key backlighting, but functional backlighting colors are tied to the configuration of keys, so it hasn't been possible to set colors independently of [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><em>TL;DR: Update to the newest Agent and set the backlighting of keys to your heart's desire!</em></p>



<p>The UHK 60 v2 has been supporting functional backlighting from the get-go, which is loosely speaking per-key backlighting, but functional backlighting colors are tied to the configuration of keys, so it hasn't been possible to set colors independently of key mappings until now.</p>



<p>Let's see how to use Agent's new and shiny (pun clearly intended) per-key backlighting feature.</p>



<p>First, update to the <a href="https://uhk.io/agent">newest Agent</a> and let it update your firmware.</p>



<p>Next up, navigate to the new "LED settings" page.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="488" src="https://uhk.io/wp-content/uploads/2023/08/agent-led-settings-1024x488.png" alt="" class="wp-image-36625" srcset="https://uhk.io/wp-content/uploads/2023/08/agent-led-settings-1024x488.png 1024w, https://uhk.io/wp-content/uploads/2023/08/agent-led-settings-640x305.png 640w, https://uhk.io/wp-content/uploads/2023/08/agent-led-settings-100x48.png 100w, https://uhk.io/wp-content/uploads/2023/08/agent-led-settings-1536x732.png 1536w, https://uhk.io/wp-content/uploads/2023/08/agent-led-settings-2048x975.png 2048w, https://uhk.io/wp-content/uploads/2023/08/agent-led-settings-200x95.png 200w, https://uhk.io/wp-content/uploads/2023/08/agent-led-settings-400x190.png 400w, https://uhk.io/wp-content/uploads/2023/08/agent-led-settings-600x286.png 600w, https://uhk.io/wp-content/uploads/2023/08/agent-led-settings-800x381.png 800w, https://uhk.io/wp-content/uploads/2023/08/agent-led-settings-1200x571.png 1200w, https://uhk.io/wp-content/uploads/2023/08/agent-led-settings-500x238.png 500w, https://uhk.io/wp-content/uploads/2023/08/agent-led-settings-700x333.png 700w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>In the "Functional backlighting colors" section, you can adjust the eight functional backlighting colors if you want to stick to functional backlighting.</p>



<p>The newly added "LED fade timeout" option disables the LEDs after the specified idle interval. (This option has been available as a smart macro variable).</p>



<p>If you want to finally switch to per-key backlighting, choose the "Per-key backlighting" option in the "Backlighting mode" section of the page and check out one of your keymaps.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="478" src="https://uhk.io/wp-content/uploads/2023/08/agent-per-key-backlighting-1-1024x478.png" alt="" class="wp-image-36634" srcset="https://uhk.io/wp-content/uploads/2023/08/agent-per-key-backlighting-1-1024x478.png 1024w, https://uhk.io/wp-content/uploads/2023/08/agent-per-key-backlighting-1-640x299.png 640w, https://uhk.io/wp-content/uploads/2023/08/agent-per-key-backlighting-1-100x47.png 100w, https://uhk.io/wp-content/uploads/2023/08/agent-per-key-backlighting-1-1536x717.png 1536w, https://uhk.io/wp-content/uploads/2023/08/agent-per-key-backlighting-1-2048x956.png 2048w, https://uhk.io/wp-content/uploads/2023/08/agent-per-key-backlighting-1-200x93.png 200w, https://uhk.io/wp-content/uploads/2023/08/agent-per-key-backlighting-1-400x187.png 400w, https://uhk.io/wp-content/uploads/2023/08/agent-per-key-backlighting-1-600x280.png 600w, https://uhk.io/wp-content/uploads/2023/08/agent-per-key-backlighting-1-800x373.png 800w, https://uhk.io/wp-content/uploads/2023/08/agent-per-key-backlighting-1-1200x560.png 1200w, https://uhk.io/wp-content/uploads/2023/08/agent-per-key-backlighting-1-500x233.png 500w, https://uhk.io/wp-content/uploads/2023/08/agent-per-key-backlighting-1-700x327.png 700w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>As you can see, there's a color palette on the top of the page, and by default, all keys are white. Now let's pick a color and start painting.</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://uhk.io/wp-content/uploads/2023/08/agent-painting-keys.gif" alt="" class="wp-image-36640" style="width:1024px" width="1024"/></figure>



<p>When hitting the "Save to keyboard" button, the colors will be updated on your UHK. Key colors are saved per keymap and per layer.</p>



<p>You can easily add new colors, adjust existing colors, and remove any colors. Just hover over the palette, and read the instructions in the tooltips.</p>



<p>When the paint mode is inactive (none of the colors are checked), you can drag key colors to the palette to overwrite existing palette colors or add new colors.</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://uhk.io/wp-content/uploads/2023/08/agent-dragging-palette-color.gif" alt="" class="wp-image-36644" style="width:1024px" width="1024"/></figure>



<p>Talk to you later!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to use modifier layers</title>
		<link>https://uhk.io/blog/2023/03/03/how-to-use-modifier-layers</link>
		
		<dc:creator><![CDATA[László Monda]]></dc:creator>
		<pubDate>Fri, 03 Mar 2023 10:05:15 +0000</pubDate>
				<category><![CDATA[agent]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[howto]]></category>
		<guid isPermaLink="false">https://uhk.io/?p=34289</guid>

					<description><![CDATA[Let's say you want to map Ctrl+C to Shift+1. First up, add the Shift layer to your keymap: On the Shift layer, map the 1 key to Ctrl+C: The modifier layer (in this example, the Shift layer) automatically becomes active when you press the relevant modifier key. If a key on the modifier layer is [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Let's say you want to map Ctrl+C to Shift+1.</p>



<p>First up, add the Shift layer to your keymap:</p>



<figure class="wp-block-image size-medium"><img loading="lazy" decoding="async" width="640" height="492" src="https://uhk.io/wp-content/uploads/2023/03/agent-add-shift-layer-640x492.png" alt="" class="wp-image-34290" srcset="https://uhk.io/wp-content/uploads/2023/03/agent-add-shift-layer-640x492.png 640w, https://uhk.io/wp-content/uploads/2023/03/agent-add-shift-layer-1024x787.png 1024w, https://uhk.io/wp-content/uploads/2023/03/agent-add-shift-layer.png 1046w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<p>On the Shift layer, map the 1 key to Ctrl+C:</p>



<figure class="wp-block-image size-medium"><img loading="lazy" decoding="async" width="640" height="378" src="https://uhk.io/wp-content/uploads/2023/03/agent-map-shift-1-ctrl-c-640x378.png" alt="" class="wp-image-34291" srcset="https://uhk.io/wp-content/uploads/2023/03/agent-map-shift-1-ctrl-c-640x378.png 640w, https://uhk.io/wp-content/uploads/2023/03/agent-map-shift-1-ctrl-c-1024x604.png 1024w, https://uhk.io/wp-content/uploads/2023/03/agent-map-shift-1-ctrl-c.png 1794w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<p>The modifier layer (in this example, the Shift layer) automatically becomes active when you press the relevant modifier key. If a key on the modifier layer is unmapped, the UHK will fall back to the base layer and compose its mapping with the modifier.</p>



<p>You're probably already done, but there's one more thing. By default, modifier layers can be activated by both left and right modifiers. If you want to use only the left or right modifier to activate a modifier layer, you can change the modifier layer triggers via <a href="/blog/2022/11/18/agent-2-next-level-uhk-and-module-configuration">smart macros</a>:</p>



<figure class="wp-block-image size-medium"><img loading="lazy" decoding="async" width="640" height="230" src="https://uhk.io/wp-content/uploads/2023/03/agent-modifier-layer-triggers2-640x230.png" alt="" class="wp-image-34296" srcset="https://uhk.io/wp-content/uploads/2023/03/agent-modifier-layer-triggers2-640x230.png 640w, https://uhk.io/wp-content/uploads/2023/03/agent-modifier-layer-triggers2-1024x368.png 1024w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<p>You're done!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Setting LED fade timeout</title>
		<link>https://uhk.io/blog/2023/02/10/setting-led-fade-timeout</link>
					<comments>https://uhk.io/blog/2023/02/10/setting-led-fade-timeout#comments</comments>
		
		<dc:creator><![CDATA[László Monda]]></dc:creator>
		<pubDate>Fri, 10 Feb 2023 08:52:46 +0000</pubDate>
				<category><![CDATA[agent]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[howto]]></category>
		<guid isPermaLink="false">https://uhk.io/?p=34004</guid>

					<description><![CDATA[Update 2023-08-19: Now the "LED settings" page contains the "LED fade timeout" setting, so you don't have to use smart macros to use it. Some of you want your UHK to automatically turn off its LEDs after some idle time, which can be configured by setting the leds.fadeTimeout smart macro variable in the $onInit macro [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><em>Update 2023-08-19: Now the "LED settings" page contains the "LED fade timeout" setting, so you don't have to use smart macros to use it.</em></p>



<p>Some of you want your UHK to automatically turn off its LEDs after some idle time, which can be configured by setting the <strong>leds.fadeTimeout</strong> smart macro variable in the <strong>$onInit</strong> macro as follows.</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="2870" height="631" src="https://uhk.io/wp-content/uploads/2023/02/agent-led-fade-timeout-1.png" alt="" class="wp-image-34010" style="width:1435px" srcset="https://uhk.io/wp-content/uploads/2023/02/agent-led-fade-timeout-1.png 2870w, https://uhk.io/wp-content/uploads/2023/02/agent-led-fade-timeout-1-640x141.png 640w, https://uhk.io/wp-content/uploads/2023/02/agent-led-fade-timeout-1-1024x225.png 1024w" sizes="(max-width: 2870px) 100vw, 2870px" /></figure>



<p>You can learn more about <a href="/blog/2022/11/18/agent-2-next-level-uhk-and-module-configuration">smart macros</a>.</p>



<p>We realize that this setting is not as accessible as it should be, and we'll make it easier to adjust it in later Agent versions.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://uhk.io/blog/2023/02/10/setting-led-fade-timeout/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Agent 2: Next-level UHK and module configuration</title>
		<link>https://uhk.io/blog/2022/11/18/agent-2-next-level-uhk-and-module-configuration</link>
					<comments>https://uhk.io/blog/2022/11/18/agent-2-next-level-uhk-and-module-configuration#comments</comments>
		
		<dc:creator><![CDATA[László Monda]]></dc:creator>
		<pubDate>Fri, 18 Nov 2022 15:43:41 +0000</pubDate>
				<category><![CDATA[agent]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[modules]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[tech talk]]></category>
		<guid isPermaLink="false">https://uhk.io/?p=33022</guid>

					<description><![CDATA[TL;DR: Say hi to 12 layers per keymap, module speed and acceleration settings, and loads of advanced features, mostly enabled by the new smart macros functionality of the latest UHK Agent and firmware releases. I don’t usually write dedicated posts about new releases, but this is a major one, we’ve been working on it for [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><em>TL;DR: Say hi to 12 layers per keymap, module speed and acceleration settings, and loads of advanced features, mostly enabled by the new smart macros functionality of the latest UHK Agent and firmware releases.</em></p>



<p>I don’t usually write dedicated posts about new releases, but this is a major one, we’ve been working on it for a year, and it delivers a huge punch that can elevate your UHK experience to the next level, so it mustn’t go unnoticed.</p>



<p>A summary of new features to whet your appetite:</p>



<ul class="wp-block-list">
<li>Extended the original four layers per keymap with four regular layers (Fn2, Fn3, Fn4, Fn5) and four modifier layers (Shift, Ctrl, Alt, Super).</li>



<li>All modules: speed and acceleration settings, axis locking settings, per-layer navigation modes</li>



<li>Key cluster module: Added the ability to fine-tune or disable the behavior of the mini trackball.</li>



<li>Trackpoint module: Fixed occasional trackpoint pointer jumps and made it easy to stop drifting if it occurred.</li>



<li>Touchpad module: Implemented pinch-to-zoom, two-finger scrolling, doubletap-to-drag, and made the tap action configurable.</li>



<li>Advanced configuration scenarios via smart macros, such as configurable modifier layer triggers, mouse key axis skew, and LED fade timeout</li>



<li>Super-advanced configuration scenarios via extended macro commands, such as variables, loops, double tap actions, and runtime macro recording.</li>



<li>Implemented N-key rollover.</li>



<li>Made accelerate and decelerate actions work with modules.</li>



<li>Fixed USB descriptors which caused high CPU load on Macintosh computers.</li>
</ul>



<p>Let’s go over the main features, but first, <a href="https://uhk.io/agent">install the new Agent</a>. Then it’ll upgrade your UHK to the new firmware.</p>



<h2 class="wp-block-heading">12 layers per keymap</h2>



<p>Instead of 4 layers, you can now have 12 layers per keymap.</p>



<figure class="wp-block-image size-medium"><img loading="lazy" decoding="async" width="640" height="488" src="https://uhk.io/wp-content/uploads/2022/11/12-layers-640x488.png" alt="" class="wp-image-33023" srcset="https://uhk.io/wp-content/uploads/2022/11/12-layers-640x488.png 640w, https://uhk.io/wp-content/uploads/2022/11/12-layers-1024x781.png 1024w, https://uhk.io/wp-content/uploads/2022/11/12-layers-100x76.png 100w, https://uhk.io/wp-content/uploads/2022/11/12-layers-200x153.png 200w, https://uhk.io/wp-content/uploads/2022/11/12-layers-400x305.png 400w, https://uhk.io/wp-content/uploads/2022/11/12-layers-600x458.png 600w, https://uhk.io/wp-content/uploads/2022/11/12-layers-800x610.png 800w, https://uhk.io/wp-content/uploads/2022/11/12-layers-500x381.png 500w, https://uhk.io/wp-content/uploads/2022/11/12-layers-700x534.png 700w, https://uhk.io/wp-content/uploads/2022/11/12-layers.png 1063w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<p>You can enable/disable any of the above layers per keymap except for the base layer, which is mandatory.</p>



<p>The Fn2, Fn3, Fn4, and Fn5 layers work just like the existing layers, but Shift, Ctrl, Alt, and Super are modifier layers.</p>



<p>On modifier layers, you can map alternative actions per key, which trigger when the key is pressed with the relevant modifier. For example, now you can implement the Programmer Dvorak layout solely on the UHK.</p>



<figure class="wp-block-image size-medium"><img loading="lazy" decoding="async" width="640" height="213" src="https://uhk.io/wp-content/uploads/2022/11/KB_Programmer_Dvorak-640x213.png" alt="" class="wp-image-33024" srcset="https://uhk.io/wp-content/uploads/2022/11/KB_Programmer_Dvorak-640x213.png 640w, https://uhk.io/wp-content/uploads/2022/11/KB_Programmer_Dvorak-100x33.png 100w, https://uhk.io/wp-content/uploads/2022/11/KB_Programmer_Dvorak-200x67.png 200w, https://uhk.io/wp-content/uploads/2022/11/KB_Programmer_Dvorak-400x133.png 400w, https://uhk.io/wp-content/uploads/2022/11/KB_Programmer_Dvorak-600x200.png 600w, https://uhk.io/wp-content/uploads/2022/11/KB_Programmer_Dvorak-800x267.png 800w, https://uhk.io/wp-content/uploads/2022/11/KB_Programmer_Dvorak-500x167.png 500w, https://uhk.io/wp-content/uploads/2022/11/KB_Programmer_Dvorak-700x233.png 700w, https://uhk.io/wp-content/uploads/2022/11/KB_Programmer_Dvorak.png 900w" sizes="(max-width: 640px) 100vw, 640px" /><figcaption class="wp-element-caption"><em>Credit: “</em><a href="https://spin.atomicobject.com/2021/09/09/programmers-keyboard-layout/"><em>The Case for the Programmers’ Keyboard Layout</em></a>” by Zachary Johnson</figcaption></figure>



<h2 class="wp-block-heading" id="smart-macros">Smart macros introduction</h2>



<p>You’re probably already familiar with regular macros, which are a sequence of macro actions, such as keypresses and mouse movements.</p>



<p>Smart macros, however, enable the advanced customization of your UHK and its modules. See the following screenshot, which shows a macro named $onInit containing a command macro action that contains multiple macro commands:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="2158" height="1036" src="https://uhk.io/wp-content/uploads/2022/11/agent-onInit.png" alt="" class="wp-image-33025" srcset="https://uhk.io/wp-content/uploads/2022/11/agent-onInit.png 2158w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-640x307.png 640w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-1024x492.png 1024w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-1536x737.png 1536w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-2048x983.png 2048w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-100x48.png 100w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-200x96.png 200w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-400x192.png 400w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-600x288.png 600w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-800x384.png 800w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-1200x576.png 1200w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-500x240.png 500w, https://uhk.io/wp-content/uploads/2022/11/agent-onInit-700x336.png 700w" sizes="(max-width: 2158px) 100vw, 2158px" /></figure>



<p>$onInit is a special macro name. It's a <strong>macro event</strong> that executes each time your UHK gets powered and when you save its configuration.</p>



<p>"set module.trackball.baseSpeed 1" is a <strong>macro command</strong> that sets the base speed of the trackball module to 1.</p>



<p>Macro commands work in any macros, not only in macro events, and you can bind them to any key. This way, you can make Fn+1 set your trackball base speed to 1, and make Fn+2 set it to 2, for example.</p>



<h2 class="wp-block-heading">Interactive smart macro editing</h2>



<p>Adjusting values by editing text is tedious. This is why we created a smart macro sidebar that can be opened on macro pages. This sidebar contains easy-to-read documentation and provides interactive widgets that make configuration a breeze.</p>



<figure class="wp-block-image size-medium"><img decoding="async" src="https://uhk.io/wp-content/uploads/2022/11/agent-macro-variable-slider-1.gif" alt="" class="wp-image-33026"/></figure>



<p>When clicking on a macro command action, the widgets of the smart macro sidebar display the actual values of the commands, and module-specific widgets appear. You just have to interact with these widgets, hit the usual “Save to keyboard” button, and your settings will be applied immediately.</p>



<p>I strongly recommend you delve into these settings, as they can make a huge difference. The default sensitivity settings of the modules are reasonable, but by tweaking them to your needs, you can make them so much more usable. Maybe, just maybe, you can finally get rid of your mouse.</p>



<h2 class="wp-block-heading">Advanced configuration scenarios</h2>



<p>Besides $onInit, there’s also the “$onKeymapChange {keymapId}” macro event, such as $onKeymapChange QWR, which is executed when the QWR keymap is activated.</p>



<p>This event enables you to have keymap-specific settings, which allows for many advanced use cases. For example, different operating systems have different mouse sensitivity. This feature allows you to have different speed and acceleration settings for your mouse keys and modules via different operating system-specific keymaps.</p>



<p>Believe it or not, I’m still scratching the surface. If you really want to go crazy, you can use the set "macroEngine.extendedCommands 1" command to enable the extended macro engine, allowing for variables, loops, and countless advanced commands. If you’re comfortable with delving into manual pages, check out the extended macro engine <a href="https://github.com/UltimateHackingKeyboard/firmware/blob/master/doc-dev/user-guide.md">user guide</a> and <a href="https://github.com/UltimateHackingKeyboard/firmware/blob/master/doc-dev/reference-manual.md">reference manual</a>.</p>



<h2 class="wp-block-heading">Smart macros history and credit</h2>



<p>Smart macros have an interesting history, starting out as <a href="https://github.com/kareltucek/firmware">Karel Tuček’s UHK firmware fork</a> on GitHub.</p>



<p>Karel wanted special firmware features, and he originally (ab)used the text macro actions of Agent by making the firmware interpret the lines starting with the $ character as special commands. He’s essentially implemented a command interpreter in the UHK firmware that allowed for his advanced use cases.</p>



<p>I saw his efforts early on, and I was impressed, but I considered his work quite niche and wasn’t too interested. (In retrospect, I can see that his advanced commands are used and loved by many.)</p>



<p>Then it struck me that smart macros could enable the configuration of many UHK and module features without developing Agent, which is a huge win, as adding new features both to Agent and the firmware takes a ton of work. Exposing new features only via the macro engine of the firmware is so much easier.&nbsp;</p>



<p>I came up with the idea of macro events and making smart macros a first-class citizen in Agent, then implemented the smart macro sidebar. Karel has implemented the acceleration driver of the modules, macro events, and, nowadays, pretty much everything that has to be done with firmware logic. His work is hard to overstate.</p>



<p>As an interesting trivia, the macro command editor of Agent might feel familiar. This is because we use Monaco editor, which also powers Visual Studio Code. In a way, Agent became an integrated development environment, supporting a special keyboard language whose interpreter runs in the UHK firmware.</p>



<h2 class="wp-block-heading">The future of smart macros</h2>



<p>I eventually want to expose basic smart macro settings, such as module settings or the LED fade timeout, not only via the smart macro sidebar but dedicated Agent widgets for better usability.</p>



<p>Nonetheless, we’ll keep and extend the currently available smart macro commands and settings because they allow for advanced configuration scenarios.</p>



<p>I plan to gradually move the extended macro commands from the current markdown macro documentation into the smart macro sidebar of Agent to make them easier to digest and not hide them behind the set "macroEngine.extendedCommands 1" command.</p>



<h2 class="wp-block-heading">Closing words</h2>



<p>To this day, we’ve released 60 Agent versions and 66 firmware versions, and we’re still going strong. I’m excited about our progress and grateful to our wonderful customers for their support. We keep moving forward because of you.</p>



<p>Thank you for reading this update! As usual, we plan to publish a manufacturing update around the end of the month. Stay safe!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://uhk.io/blog/2022/11/18/agent-2-next-level-uhk-and-module-configuration/feed</wfw:commentRss>
			<slash:comments>17</slash:comments>
		
		
			</item>
		<item>
		<title>How to use macros on the UHK?</title>
		<link>https://uhk.io/blog/2019/07/17/how-to-use-macros-on-the-uhk</link>
					<comments>https://uhk.io/blog/2019/07/17/how-to-use-macros-on-the-uhk#comments</comments>
		
		<dc:creator><![CDATA[László Monda]]></dc:creator>
		<pubDate>Wed, 17 Jul 2019 23:28:00 +0000</pubDate>
				<category><![CDATA[agent]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[howto]]></category>
		<guid isPermaLink="false">https://uhk.io/?p=18354</guid>

					<description><![CDATA[Once in a while, we get emails asking how to use macros on the UHK, so let's see how. First up, the macro has to be created. You can see some default macros under the Macro section of the sidebar. You can add new macros with the plus button. Second, you have to assign the [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Once in a while, we get emails asking how to use macros on the UHK, so let's see how.</p>



<p>First up, the macro has to be created.  You can see some default macros under the Macro section of the sidebar. You can add new macros with the plus button.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="250" height="116" src="https://uhk.io/wp-content/uploads/2019/07/agent-macros-sidebar.png" alt="" class="wp-image-18355" srcset="https://uhk.io/wp-content/uploads/2019/07/agent-macros-sidebar.png 250w, https://uhk.io/wp-content/uploads/2019/07/agent-macros-sidebar-100x46.png 100w, https://uhk.io/wp-content/uploads/2019/07/agent-macros-sidebar-200x93.png 200w" sizes="(max-width: 250px) 100vw, 250px" /></figure>



<p>Second, you have to assign the macro. You can assign a macro to any key of any layer of any keymap. Let's say you want to assign the "Go to UHK site in browser" macro to the Q key of the Fn layer of the "QWERTY for PC" keymap. This way, the macro can be triggered via Fn+Q.</p>



<p>To assign the macro, simply go to the target keymap, choose the target layer, and click on the target key. Then the key action popover will appear. Click on the Macro tab, choose the desired macro, click on the "Remap key" button, and finally click on the "Save to keyboard" button that appears in the bottom right corner.</p>



<figure class="wp-block-image"><a href="https://uhk.io/wp-content/uploads/2019/07/agent-bind-macro.png"><img loading="lazy" decoding="async" width="640" height="415" src="https://uhk.io/wp-content/uploads/2019/07/agent-bind-macro-640x415.png" alt="" class="wp-image-18358" srcset="https://uhk.io/wp-content/uploads/2019/07/agent-bind-macro-640x415.png 640w, https://uhk.io/wp-content/uploads/2019/07/agent-bind-macro-1024x664.png 1024w, https://uhk.io/wp-content/uploads/2019/07/agent-bind-macro-100x65.png 100w, https://uhk.io/wp-content/uploads/2019/07/agent-bind-macro-500x324.png 500w, https://uhk.io/wp-content/uploads/2019/07/agent-bind-macro-700x454.png 700w, https://uhk.io/wp-content/uploads/2019/07/agent-bind-macro-200x130.png 200w, https://uhk.io/wp-content/uploads/2019/07/agent-bind-macro-400x259.png 400w, https://uhk.io/wp-content/uploads/2019/07/agent-bind-macro-600x389.png 600w, https://uhk.io/wp-content/uploads/2019/07/agent-bind-macro-800x519.png 800w, https://uhk.io/wp-content/uploads/2019/07/agent-bind-macro-1200x778.png 1200w, https://uhk.io/wp-content/uploads/2019/07/agent-bind-macro.png 1246w" sizes="(max-width: 640px) 100vw, 640px" /></a></figure>



<p>You've made it! Happy macroing!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://uhk.io/blog/2019/07/17/how-to-use-macros-on-the-uhk/feed</wfw:commentRss>
			<slash:comments>27</slash:comments>
		
		
			</item>
		<item>
		<title>UHK mounting layout</title>
		<link>https://uhk.io/blog/2019/06/16/uhk-mounting-layout</link>
		
		<dc:creator><![CDATA[László Monda]]></dc:creator>
		<pubDate>Sun, 16 Jun 2019 22:47:11 +0000</pubDate>
				<category><![CDATA[features]]></category>
		<category><![CDATA[howto]]></category>
		<guid isPermaLink="false">https://uhk.io/?p=17954</guid>

					<description><![CDATA[Some of you asked how to mount your UHK to your armchair or custom-made accessories, so let us provide a drawing of the back of the UHK. The drawing features the 8 bronze inserts that allow for mounting. Click on the image for its higher resolution version, or download the drawing in PDF or DXF [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Some of you asked how to mount your UHK to your armchair or custom-made accessories, so let us provide a drawing of the back of the UHK. The drawing features the 8 bronze inserts that allow for mounting.</p>



<figure class="wp-block-image"><a href="https://uhk.io/wp-content/uploads/2019/06/uhk60-back-view-inserts.png"><img loading="lazy" decoding="async" width="640" height="349" src="https://uhk.io/wp-content/uploads/2019/06/uhk60-back-view-inserts-640x349.png" alt="" class="wp-image-17955" srcset="https://uhk.io/wp-content/uploads/2019/06/uhk60-back-view-inserts-640x349.png 640w, https://uhk.io/wp-content/uploads/2019/06/uhk60-back-view-inserts-1024x558.png 1024w, https://uhk.io/wp-content/uploads/2019/06/uhk60-back-view-inserts-100x54.png 100w, https://uhk.io/wp-content/uploads/2019/06/uhk60-back-view-inserts-200x109.png 200w, https://uhk.io/wp-content/uploads/2019/06/uhk60-back-view-inserts-400x218.png 400w, https://uhk.io/wp-content/uploads/2019/06/uhk60-back-view-inserts-600x327.png 600w, https://uhk.io/wp-content/uploads/2019/06/uhk60-back-view-inserts-800x436.png 800w, https://uhk.io/wp-content/uploads/2019/06/uhk60-back-view-inserts-1200x654.png 1200w, https://uhk.io/wp-content/uploads/2019/06/uhk60-back-view-inserts-500x272.png 500w, https://uhk.io/wp-content/uploads/2019/06/uhk60-back-view-inserts-700x381.png 700w, https://uhk.io/wp-content/uploads/2019/06/uhk60-back-view-inserts.png 1683w" sizes="(max-width: 640px) 100vw, 640px" /></a></figure>



<p>Click on the image for its higher resolution version, or download the drawing in <a href="/wp-content/uploads/2019/06/uhk60-back-view-inserts.pdf">PDF</a> or <a href="/wp-content/uploads/2019/06/uhk60-back-view-inserts.dxf">DXF</a> format.</p>



<p>See additional CAD files at <a href="https://github.com/UltimateHackingKeyboard/cad">https://github.com/UltimateHackingKeyboard/cad</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Mapping a virtual numpad on the UHK</title>
		<link>https://uhk.io/blog/2019/06/06/mapping-a-virtual-numpad-on-the-uhk</link>
					<comments>https://uhk.io/blog/2019/06/06/mapping-a-virtual-numpad-on-the-uhk#comments</comments>
		
		<dc:creator><![CDATA[László Monda]]></dc:creator>
		<pubDate>Thu, 06 Jun 2019 21:26:45 +0000</pubDate>
				<category><![CDATA[agent]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[howto]]></category>
		<guid isPermaLink="false">https://uhk.io/?p=17831</guid>

					<description><![CDATA[People ask from time to time whether we provide a numeric keypad. The answer is no, but one can create a virtual numpad very easily in Agent, the configurator application of the UHK. See the following screenshot. The numpad is mapped to the Fn layer, and its keys are laid out in a familiar fashion. [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>People ask from time to time whether we provide a numeric keypad. The answer is no, but one can create a virtual numpad very easily in Agent, the configurator application of the UHK.</p>



<p>See the following screenshot. The numpad is mapped to the Fn layer, and its keys are laid out in a familiar fashion.</p>



<figure class="wp-block-image"><a href="https://uhk.io/wp-content/uploads/2019/06/uhk60-virtual-numpad-on-fn-layer.png"><img loading="lazy" decoding="async" width="640" height="299" src="https://uhk.io/wp-content/uploads/2019/06/uhk60-virtual-numpad-on-fn-layer-640x299.png" alt="" class="wp-image-17832" srcset="https://uhk.io/wp-content/uploads/2019/06/uhk60-virtual-numpad-on-fn-layer-640x299.png 640w, https://uhk.io/wp-content/uploads/2019/06/uhk60-virtual-numpad-on-fn-layer-1024x478.png 1024w, https://uhk.io/wp-content/uploads/2019/06/uhk60-virtual-numpad-on-fn-layer-100x47.png 100w, https://uhk.io/wp-content/uploads/2019/06/uhk60-virtual-numpad-on-fn-layer-200x93.png 200w, https://uhk.io/wp-content/uploads/2019/06/uhk60-virtual-numpad-on-fn-layer-400x187.png 400w, https://uhk.io/wp-content/uploads/2019/06/uhk60-virtual-numpad-on-fn-layer-600x280.png 600w, https://uhk.io/wp-content/uploads/2019/06/uhk60-virtual-numpad-on-fn-layer-800x373.png 800w, https://uhk.io/wp-content/uploads/2019/06/uhk60-virtual-numpad-on-fn-layer-1200x560.png 1200w, https://uhk.io/wp-content/uploads/2019/06/uhk60-virtual-numpad-on-fn-layer-500x233.png 500w, https://uhk.io/wp-content/uploads/2019/06/uhk60-virtual-numpad-on-fn-layer-700x326.png 700w, https://uhk.io/wp-content/uploads/2019/06/uhk60-virtual-numpad-on-fn-layer.png 1310w" sizes="(max-width: 640px) 100vw, 640px" /></a></figure>



<p>The big advantage of a virtual numpad is that one doesn't have to reach out all the way to the other side of the keyboard. This results in increased productivity, and the mouse is much closer, too. That is, if you even use a mouse after mastering the UHK mouse layer.</p>



<p>As a last word, make sure you have Num Lock enabled, otherwise your numpad keys will function according to their bottom function, like Home instead of 7 and such. You can map Num Lock to any key of your UHK.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://uhk.io/blog/2019/06/06/mapping-a-virtual-numpad-on-the-uhk/feed</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
			</item>
		<item>
		<title>DIY UHK carrying cases</title>
		<link>https://uhk.io/blog/2019/05/01/diy-uhk-carrying-cases</link>
		
		<dc:creator><![CDATA[László Monda]]></dc:creator>
		<pubDate>Wed, 01 May 2019 15:20:00 +0000</pubDate>
				<category><![CDATA[howto]]></category>
		<guid isPermaLink="false">https://uhk.io/?p=16707</guid>

					<description><![CDATA[We don't keep this post up-to-date, so check out the carrying case suggestions on the UHK forum! We don't plan to offer a carrying case, but that hasn't stopped our awesome customers from making and buying some amazing cases for their UHKs. Let's see some of these cases! UHK case If you have a UHK [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><em>We don't keep this post up-to-date, so check out the <a href="https://forum.ultimatehackingkeyboard.com/search?q=carrying%20case">carrying case suggestions</a> on the UHK forum!</em></p>



<p>We don't plan to offer a carrying case, but that hasn't stopped our awesome customers from making and buying some amazing cases for their UHKs. Let's see some of these cases!</p>



<h2 class="wp-block-heading">UHK case</h2>



<p>If you have a UHK without a UHK palm rest, then look no further than @contracode's case. Be sure to check out <a href="https://twitter.com/contracode/status/1122683043314065409">his tweet</a> for instructions.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="640" height="581" src="https://uhk.io/wp-content/uploads/2019/05/uhk_02-640x581.jpg" alt="" class="wp-image-17027" srcset="https://uhk.io/wp-content/uploads/2019/05/uhk_02-640x581.jpg 640w, https://uhk.io/wp-content/uploads/2019/05/uhk_02.jpg 1024w, https://uhk.io/wp-content/uploads/2019/05/uhk_02-100x91.jpg 100w, https://uhk.io/wp-content/uploads/2019/05/uhk_02-200x181.jpg 200w, https://uhk.io/wp-content/uploads/2019/05/uhk_02-400x363.jpg 400w, https://uhk.io/wp-content/uploads/2019/05/uhk_02-600x544.jpg 600w, https://uhk.io/wp-content/uploads/2019/05/uhk_02-800x726.jpg 800w, https://uhk.io/wp-content/uploads/2019/05/uhk_02-500x454.jpg 500w, https://uhk.io/wp-content/uploads/2019/05/uhk_02-700x635.jpg 700w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<h2 class="wp-block-heading">UHK + Palm Rest soft case</h2>



<p>If you have a UHK with a palm rest, then Stephen Walsh's case is probably the best choice for you. See <a href="https://twitter.com/stphnlwlsh/status/1125430643578605568">his tweet</a>.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="480" height="640" src="https://uhk.io/wp-content/uploads/2019/05/uhk-palm-rest-soft-case-480x640.jpg" alt="" class="wp-image-16874" srcset="https://uhk.io/wp-content/uploads/2019/05/uhk-palm-rest-soft-case-480x640.jpg 480w, https://uhk.io/wp-content/uploads/2019/05/uhk-palm-rest-soft-case-768x1024.jpg 768w, https://uhk.io/wp-content/uploads/2019/05/uhk-palm-rest-soft-case-75x100.jpg 75w, https://uhk.io/wp-content/uploads/2019/05/uhk-palm-rest-soft-case-200x267.jpg 200w, https://uhk.io/wp-content/uploads/2019/05/uhk-palm-rest-soft-case-400x533.jpg 400w, https://uhk.io/wp-content/uploads/2019/05/uhk-palm-rest-soft-case-600x800.jpg 600w, https://uhk.io/wp-content/uploads/2019/05/uhk-palm-rest-soft-case-800x1067.jpg 800w, https://uhk.io/wp-content/uploads/2019/05/uhk-palm-rest-soft-case-1200x1600.jpg 1200w, https://uhk.io/wp-content/uploads/2019/05/uhk-palm-rest-soft-case-500x667.jpg 500w, https://uhk.io/wp-content/uploads/2019/05/uhk-palm-rest-soft-case-700x933.jpg 700w, https://uhk.io/wp-content/uploads/2019/05/uhk-palm-rest-soft-case.jpg 1536w" sizes="(max-width: 480px) 100vw, 480px" /></figure>



<p>Since writing this article, <a href="https://twitter.com/z0nelevel/status/1129103734800343041">@z0nelevel let us know</a> that the UHK and the palm rest fits into many 13 inch notebook cases like <a href="https://t.co/NDRyNGqxuO">this one</a>:</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="482" height="640" src="https://uhk.io/wp-content/uploads/2019/05/13-inch-notebook-case-482x640.jpg" alt="" class="wp-image-17156" srcset="https://uhk.io/wp-content/uploads/2019/05/13-inch-notebook-case-482x640.jpg 482w, https://uhk.io/wp-content/uploads/2019/05/13-inch-notebook-case-772x1024.jpg 772w, https://uhk.io/wp-content/uploads/2019/05/13-inch-notebook-case-75x100.jpg 75w, https://uhk.io/wp-content/uploads/2019/05/13-inch-notebook-case-200x265.jpg 200w, https://uhk.io/wp-content/uploads/2019/05/13-inch-notebook-case-400x531.jpg 400w, https://uhk.io/wp-content/uploads/2019/05/13-inch-notebook-case-600x796.jpg 600w, https://uhk.io/wp-content/uploads/2019/05/13-inch-notebook-case-800x1062.jpg 800w, https://uhk.io/wp-content/uploads/2019/05/13-inch-notebook-case-1200x1593.jpg 1200w, https://uhk.io/wp-content/uploads/2019/05/13-inch-notebook-case-500x664.jpg 500w, https://uhk.io/wp-content/uploads/2019/05/13-inch-notebook-case-700x929.jpg 700w, https://uhk.io/wp-content/uploads/2019/05/13-inch-notebook-case.jpg 1543w" sizes="(max-width: 482px) 100vw, 482px" /></figure>



<h2 class="wp-block-heading">UHK + Palm Rest hard case</h2>



<p>If you have a UHK with a palm rest and are willing to spend more on a robust case, then Cole Chamberlain's case should be a great option, as he made it from a Pelican 1085 hard-shell case. Check out the relevant <a href="https://twitter.com/noderaider/status/1054316619013349384" target="_blank" rel="noreferrer noopener">Twitter conversation</a>.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="640" height="480" src="https://uhk.io/wp-content/uploads/2019/05/case-for-uhk-and-palm-rest-640x480.jpg" alt="" class="wp-image-16710" srcset="https://uhk.io/wp-content/uploads/2019/05/case-for-uhk-and-palm-rest-640x480.jpg 640w, https://uhk.io/wp-content/uploads/2019/05/case-for-uhk-and-palm-rest-1024x768.jpg 1024w, https://uhk.io/wp-content/uploads/2019/05/case-for-uhk-and-palm-rest-100x75.jpg 100w, https://uhk.io/wp-content/uploads/2019/05/case-for-uhk-and-palm-rest-200x150.jpg 200w, https://uhk.io/wp-content/uploads/2019/05/case-for-uhk-and-palm-rest-400x300.jpg 400w, https://uhk.io/wp-content/uploads/2019/05/case-for-uhk-and-palm-rest-600x450.jpg 600w, https://uhk.io/wp-content/uploads/2019/05/case-for-uhk-and-palm-rest-800x600.jpg 800w, https://uhk.io/wp-content/uploads/2019/05/case-for-uhk-and-palm-rest.jpg 1200w, https://uhk.io/wp-content/uploads/2019/05/case-for-uhk-and-palm-rest-500x375.jpg 500w, https://uhk.io/wp-content/uploads/2019/05/case-for-uhk-and-palm-rest-700x525.jpg 700w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<h2 class="wp-block-heading">Further cases</h2>



<ul class="wp-block-list">
<li><a href="https://twitter.com/ClemensScharti/status/1188505514289876992">https://twitter.com/ClemensScharti/status/1188505514289876992</a></li>
</ul>



<p>We've never ceased to be amazed by the ingenuity of our customers. If you have further case ideas, feel free to post a comment about them!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Remapping keys in Agent</title>
		<link>https://uhk.io/blog/2018/09/17/remapping-keys-in-agent</link>
					<comments>https://uhk.io/blog/2018/09/17/remapping-keys-in-agent#comments</comments>
		
		<dc:creator><![CDATA[László Monda]]></dc:creator>
		<pubDate>Mon, 17 Sep 2018 18:53:00 +0000</pubDate>
				<category><![CDATA[agent]]></category>
		<category><![CDATA[howto]]></category>
		<guid isPermaLink="false">https://uhk.io/?p=7090</guid>

					<description><![CDATA[Although we did our best to make Agent as intuitive as possible, we get questions from time to time. By far, the most usual question is how to exchange the keys of the bottom row. Let's say you want to exchange Alt and Fn. Now select the base layer of your default keymap in Agent. [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Although we did our best to make Agent as intuitive as possible, we get questions from time to time. By far, the most usual question is how to exchange the keys of the bottom row.</p>
<p>Let's say you want to exchange Alt and Fn.</p>
<p>Now select the base layer of your default keymap in Agent. You should see something like this:</p>
<p><a href="https://uhk.io/wp-content/uploads/2018/09/remappable-layer.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-7092" src="https://uhk.io/wp-content/uploads/2018/09/remappable-layer-640x300.png" alt="" width="640" height="300" srcset="https://uhk.io/wp-content/uploads/2018/09/remappable-layer-640x300.png 640w, https://uhk.io/wp-content/uploads/2018/09/remappable-layer-1024x480.png 1024w, https://uhk.io/wp-content/uploads/2018/09/remappable-layer-100x47.png 100w, https://uhk.io/wp-content/uploads/2018/09/remappable-layer-200x94.png 200w, https://uhk.io/wp-content/uploads/2018/09/remappable-layer-400x187.png 400w, https://uhk.io/wp-content/uploads/2018/09/remappable-layer-600x281.png 600w, https://uhk.io/wp-content/uploads/2018/09/remappable-layer-800x375.png 800w, https://uhk.io/wp-content/uploads/2018/09/remappable-layer-1200x562.png 1200w, https://uhk.io/wp-content/uploads/2018/09/remappable-layer-500x234.png 500w, https://uhk.io/wp-content/uploads/2018/09/remappable-layer-700x328.png 700w, https://uhk.io/wp-content/uploads/2018/09/remappable-layer.png 1306w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>
<p>The important thing to understand is that each key has an associated action. Let's click on Alt.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-7093" src="https://uhk.io/wp-content/uploads/2018/09/alt-popover.png" alt="" width="592" height="373" srcset="https://uhk.io/wp-content/uploads/2018/09/alt-popover.png 592w, https://uhk.io/wp-content/uploads/2018/09/alt-popover-100x63.png 100w, https://uhk.io/wp-content/uploads/2018/09/alt-popover-320x202.png 320w, https://uhk.io/wp-content/uploads/2018/09/alt-popover-200x126.png 200w, https://uhk.io/wp-content/uploads/2018/09/alt-popover-400x252.png 400w, https://uhk.io/wp-content/uploads/2018/09/alt-popover-500x315.png 500w" sizes="(max-width: 592px) 100vw, 592px" /></p>
<p>A popover appears that contains the type and properties of the action. The Keypress tab is active, so this is a keypress action (type) featuring no scancode and the left Alt modifier (properties).</p>
<p>Now let's see the action of the Fn key by clicking on it.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-7094" src="https://uhk.io/wp-content/uploads/2018/09/fn-popover.png" alt="" width="592" height="265" srcset="https://uhk.io/wp-content/uploads/2018/09/fn-popover.png 592w, https://uhk.io/wp-content/uploads/2018/09/fn-popover-100x45.png 100w, https://uhk.io/wp-content/uploads/2018/09/fn-popover-200x90.png 200w, https://uhk.io/wp-content/uploads/2018/09/fn-popover-400x179.png 400w, https://uhk.io/wp-content/uploads/2018/09/fn-popover-500x224.png 500w" sizes="(max-width: 592px) 100vw, 592px" /></p>
<p>Now the Layer tab is active, which means that it's a layer switch action that activates the Fn layer while holding this key.</p>
<p>You simply have to exchange the actions of the Alt and Fn keys by clicking on them and setting their action type and properties. Make sure to check the "Remap on all layers" checkbox for modifier keys before clicking on the "Remap key" button.</p>
<p><a href="https://uhk.io/wp-content/uploads/2018/09/remapped-layer.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-7095" src="https://uhk.io/wp-content/uploads/2018/09/remapped-layer-640x298.png" alt="" width="640" height="298" srcset="https://uhk.io/wp-content/uploads/2018/09/remapped-layer-640x298.png 640w, https://uhk.io/wp-content/uploads/2018/09/remapped-layer-1024x476.png 1024w, https://uhk.io/wp-content/uploads/2018/09/remapped-layer-100x46.png 100w, https://uhk.io/wp-content/uploads/2018/09/remapped-layer-200x93.png 200w, https://uhk.io/wp-content/uploads/2018/09/remapped-layer-400x186.png 400w, https://uhk.io/wp-content/uploads/2018/09/remapped-layer-600x279.png 600w, https://uhk.io/wp-content/uploads/2018/09/remapped-layer-800x372.png 800w, https://uhk.io/wp-content/uploads/2018/09/remapped-layer-1200x558.png 1200w, https://uhk.io/wp-content/uploads/2018/09/remapped-layer-500x232.png 500w, https://uhk.io/wp-content/uploads/2018/09/remapped-layer-700x325.png 700w, https://uhk.io/wp-content/uploads/2018/09/remapped-layer.png 1310w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>
<p>Lastly, click on the "Save to keyboard" button in the bottom right corner.</p>
<p>Last but not least, you can play with <a href="http://ultimatehackingkeyboard.github.io/agent/">the web demo of Agent</a> in the browser without installing it on your computer. Give it a try!</p>
<p>That's about it! Happy remapping!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://uhk.io/blog/2018/09/17/remapping-keys-in-agent/feed</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
			</item>
	</channel>
</rss>
