VIAL Configuration Software

VIAL is software to configure keyboards like VIA. It is open sourced and has support for Combos, Tap Dance (and possible rotary encoders).

VIA firmware is supported. However won’t have any different functionality then VIA. (File → Download VIA definitions then Refresh button on the right)

To compile a VIAL firmware you need to jump through some hoops. I had a Ubuntu environment already for a different keyboard time vortex project. So for me, it wasn’t terrible for me took about 30~40 minutes after stumbling a few times. Firmware Size can be an issue so a few settings might need to be configured to reduce the size (the official VIAL guide was helpful from their website)

I don’t know if its the future but its nice to have options. The 40s group had some interesting thoughts with combos and tap dance I look forward to trying out.

QMK Setting Screens

Grave Escape


Auto Shift


One Shot Keys

Mouse Keys


Vial is decentralized: with Vial you do not have to submit your keyboard as a pull-request to any third-party repositories before it can be used in the GUI; instead, the keymap JSON definition is stored within the keyboard firmware and is retrieved at runtime.

Right the $#@! on. That’s classy.


I heard Vial has some cool feature like support for rotary encoder and I will switch to Vial soon.

Vial is decentralized: with Vial you do not have to submit your keyboard as a pull-request to any third-party repositories before it can be used in the GUI; instead, the keymap JSON definition is stored within the keyboard firmware and is retrieved at runtime.

if the JSON is saved in the firmware, meaning firmware size of Vial is bigger than VIA, isn’t it? though that would enable Vial software to detect the keyboard without using “Import Keymap”, am I right? :thinking:

I already have the environment to build VIA firmware, is that ok for Vial?
I’m using MSYS2 MinGW 64-bit on Windows 10


It also looks you can have a firmware built that works both for VIA and Vial, cool :wink:

1 Like


YES you can use QMK MSYS. It took me a few tries to figure it out. I verified with reflashing my board and making sure it opened up properly in VIAL with the combos and tab dance tabs.

  1. Install MSYS (
  2. Download QMK VIAL Fork (GitHub - vial-kb/vial-qmk)
  3. Uncompress the QMK VIAL fork zip file
  4. Rename the QMK version installed from MSYS (I called in qmk_firmwareMSYS), default setup location for me was <C:\users{Username}\qmk_firmware>
  5. Move the uncompressed QMK Vial folder “vial-qmk-vial” to the location from the previous step
  6. Rename the QMK VIAL folder “qmk_firmware”
  7. Open QMK MSYS
  8. Run [qmk setup]
  9. If might say something about “not a git…”. In that case copy the “.git” folder from the original qmk_firmare folder into the vial one. That should clear that message.
  10. Run [qmk setup] again. It should ask for cloning something starting with “chib…” (sorry forgot the whole name) anyway enter “y” and press enter
  11. Should complete and you are ready to go.

I know it is a lot of steps but IMO this is easier then setting up Ubuntu IMO (I still am avoiding setting that up on my laptop). Hope this helps. The longest part is downloading/installing QMK MSYS and the vial firmware downloading and unzipping

These are the memory sizes after compiling:

  • QMK 16294/28672 (56%, 12378 bytes free)
  • VIA 16806/28672 (58%, 11866 bytes free)
  • VIAL 21,316 (74% memory used)

I had to set some configurations to get the size down there official instructions was a good resource for me: Reducing firmware size - Vial


@davisthegreat I love that you’re spreading the good words about VIAL!

I might be able to test that hex file you compiled for the fc980m today.

I wonder if we all should compile a repo for pre-compiled VIAL firmware.

Thanks to you Tinster for bringing it up it was low on my radar for a little bit.

Woo! glad to see vial getting some recognition on keebtalk, my PCB designer uses vial exclusively, and I love the ease of use of via combined with the full functionality of QMK. make your PCBs vial compatible folks!!!


I’ve started porting some of my existing keebs to VIAL. I started with the Frosty Flake for the CM QFR and then ported the Think6.5 V2.

I really like VIAL because it’s open-source and has better encoder support. I just wish the UI was more polished like VIA.

1 Like

I would have to disagree here with the VIAL UI. Its not as polished, but it’s a lot more intuitive.

When you go into the macro tab, you know you’re setting up a macro and you can’t assigned it to the keyboard from there. I have gotten myself pretty confused a couple of time which macro tab does what. It’s a minor inconvenience, but in VIAL feels more intuitive.


Fair enough. VIAL’s interface is more intuitive, but less pretty. Lol.


So this weekend I gave VIAL a try on the Manta75 firmware.

I also tried QMK MSYS that @Dave mentionned.
This version of MSYS makes the QMK setup very easy and idiot proof.

Back to VIAL, their website documentation is very well written.

As for making a VIAL firmware, if you already have a VIA firmware source code (that was my case), this is super fast to do.
It took me only half an hour to compile a working VIAL firmware, including:

  • Reading the documentation.
  • Download and install QMK MSYS.
  • Pull vial-qmk repo and setup it.
  • Copy my VIA firmware source code and adapt it to VIAL.
  • Compile it, flash it, and test it with VIAL software.

I was surprised by how fast, easy, and problem free it was !

The good things:

  • You don’t need to give the json file for your keyboard to be recognised by VIAL software.
  • You can still use VIA software with the same firmware (but need to give the json file) !
  • The interface is clear and not so ugly :wink:

The less good things:

  • Firmware flash usage is bigger.
  • Firmware EEPROM usage also bigger, had to put 3 layers intead of the 4 I had on the VIA only firmware.

Overall, super pumped by this firmware solution, I definitely recommend !!!


Just got my hand wired keyboard set up with Vial yesterday. I’m looking forward to exploring more of the functions. Took me a little while to get from sources (based on ~2017 QMK) to current QMK, to VIA, and finally to Vial. The Vial porting guide is very helpful, I’m just new to this and have no idea what I’m doing in regards to programming. I used a fresh install of Manjaro to do most of the work.


I do not understand what is VIAL added value over VIA?

Full QMK functionality, VIA only supports basic remapping, RGB, and default layers, whereas vial supports encoders, tap dance, layer taps, and every other QMK feature under the sun.


Being new to QMK in general, I’m kind of overwhelmed with all the possibilities, and being able to open Vial and make changes on the fly has been a big help for getting familiar with different TapDance/ModTap functions and just being able to try different changes to my keymap without having to recompile and flash firmware every time.


same, I personally never used tap dance until I got a VIAL capable board, I was aware of it as a feature, but struggled to implement it on my keymaps with the QMK configurator


Thank you guys for sharing your experiences. If I understand correclty vial uses more memory and may only provied 3 layers.

Can anybody speak in regards to the Rev 6 Planck in terms of available memory and layers? Thanks.

Can’t you do tap dance and layer taps in VIA with the ANY key? On my 60% boards, I always map my caps to ANY and then type in LT(KC_CAPS, 1). This way I have caps when tapping and Function (layer 1) when holding.

1 Like

layer tap and tap dance are not the same