FW16: Swap Fn + Control Keys

Does anyone know if an option to swap Fn + Left Control keys will be an option in the bios anytime soon? It’s part of what I was really looking forward to based on what I saw with a FW13.

And yes, I know - holy war ensues… but moving between my work laptop and FW16 is doing hell on my muscle memory. :smiley:

No need to do it in the BIOS. Keys can be arbitrarily rearranged however one desires due to the FWL16 keyboard using QMK firmware.

Via, the online configurator, is located at keyboard.frame.work.

Awesome! That’s giving me errors when I try to authorize the page to access the Keyboard though… hmm. Any ideas?

What OS, and if linux, which distro?
Which browser?

It works in Chrome, Edge, and other Google Chromium-based browsers.
It requires a browser with WebHID enabled caniuse.com/?search=webhid. Here is a WebHID checker webapicheck.com/apis/webhid-api.

Linux - Pop OS. [Edit - using Chrome]

I guess I should give Ubuntu a try since that’s officially supported. But the caniuse shows it’s good.

Chrome is installed as a normal system package, correct? Snap packages can have issues with permissions.

You may need to add udev rules.

Click to show

From docs.qmk.fm/#/faq_build?id=linux-udev-rules.
Place this file into /etc/udev/rules.d/.

Once added, run the following:

sudo udevadm control --reload-rules
sudo udevadm trigger
1 Like

Success! It was the udev rules file. Now time to see if I can map this…

Well I messed up left control permanently… so now I’m just trying to figure out how to restore the defaults. :stuck_out_tongue:

Yup - OK it seems that setting Left Control to Fn doesn’t work. I can move it around to other keys just fine, but not there. Hmm…

Any key can work in any location. But Via is not the most intuitive. And layers can be confusing if one isn’t familiar with them.

I believe, to swap Fn & Left Control Keys:
Layer 0 (zero) should have MO(1), Left Ctrl.
Layer 3 should have MO(3), (downward arrow symbol).
And leave all other layers and keys alone.

You can click the disk icon, and it will bring you to an option to save or load a layout. I have copies of all the default layouts here, https://litter.catbox.moe/8wpp25.zip. Your screenshot says you have the ANSI keyboard, so that’s the file you’d want.

A few more hints:

  • In addition to setting the udev rules, I also needed to download and install google-chrome, not just chromium, on (the supported version of) Ubuntu. The open source chromium was set up to be “more secure” I guess and wouldn’t access the /dev/hidrawX file. A good hint I got from Is it possible to be clearer about Linux permissions? · Issue #236 · the-via/app · GitHub was that chrome://device-log will show you the errors from chrome, which will more clearly display the file permission errors if that’s what’s going on.
  • In addition to the obvious Layer 0 swap, and the layer 3 swap described above, you also need to swap layer 2 in the same way you swapped layer 3. That was enough to get it working for me.
  • The keyboard.frame.work app shows right control as “RCtl” (mixed case) but the left control key as “LCTL” (all upper) even though the key label in the bottom section is “Left Ctrl”. I wasted some time trying to figure out if this discrepancy was meaningful. It is not.

Here’s my configuration file, for the US ANSI layout: https://cscott.net/framework16-ansi.json