Code Monkey home page Code Monkey logo

vial-gui's Introduction

vial-gui

Docs and getting started

Please visit get.vial.today to get started with Vial

Vial is an open-source cross-platform (Windows, Linux and Mac) GUI and a QMK fork for configuring your keyboard in real time.


Releases

Visit https://get.vial.today/ to download a binary release of Vial.

Development

Python 3.6 is recommended (3.6 is the latest version that is officially supported by fbs).

Install dependencies:

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

To launch the application afterwards:

source venv/bin/activate
fbs run

vial-gui's People

Contributors

0z00 avatar arielrezinn avatar arnstadm avatar bgkendall avatar cebby2420 avatar danil-tolkachev avatar dotleon avatar horrortroll avatar itsvar8 avatar jbellerb avatar jkutianski avatar kb-elmo avatar kraxen72 avatar legowolf avatar lesshonor avatar marinlovrinovic avatar nckiser avatar niclake avatar nisker avatar obiwankeoni avatar patrykf03 avatar pietchaki avatar pieterv24 avatar sago35 avatar waffle87 avatar winslet avatar xyzz avatar zhol0777 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vial-gui's Issues

Documentation experience feedback

Firstly thanks for making this tool - great once up and running but I found it frustrating to get working.

Just commenting here in the hope of providing some useful feedback for the docs. Obviously this is just one user but maybe my 'fresh visitor' experience will be useful.

Background

Built Sofle KB and flashed with QMK, then read about Vial on Reddit as a GUI for easier tweaking of layout etc. Came to the Vial website with a view to installing and using.

Experience

Read the First Time User section...

  • I download Vial (step 1)
  • I run Vial (Step 2)

Vial starts and it shows this:

image

And obviously Step 3 is then not possible.

I try the 'Download VIA definitions' from the menu and nothing happens/changes. I restart. Same situation. Do I need to put my board into DFU mode or something?

Unsure what to do next I head to the 'Porting a keyboard to Via' section linked from the top of the First Time Use page.

Then further confusion. Top of the page states: 'vial-qmk provides several examples of most common microcontroller configurations set up for Vial usage. You can check them out at vial-qmk/keyboards/vial_example.' say what? Where is that location and do I need to be getting a micro controller configuration?

Then reading down the page we are onto cloning the Vial QMK fork and creating a via keymap.... and at this point I'm done.

What I felt I needed

As a newcomer, and maybe I'm not the intended audience, but what I want to know is...

  • What is VIA? Why is it continualy mentioned? Why do I care about that? What has Via to do with Vial?
  • Are any keyboards supported out of the box with Vial? If they are, what are they? Is there a list? How do I know if my board is 'Vial-compatible'?
  • If my keyboard isn't supported out of the box, what steps are necassary to add support (I think this is the existing 'Porting' section)?
  • What are the pre-requisites for using Vial? Do I need a JSON of some sort? Do I need a fork of QMK already on my machine to run with this?

How I actually got running was to go to the Via site, download their firmware for my board, flash that with QMK toolbox,
and then launch Vial – which then saw my board immediately and is fantastic once you get it going!

Keypad Equals Not Always Available

When the Vial key selector is in full-size keyboard layout, the KC_KP_EQUAL key is not available.
When the layout is TKL, or smaller, it is available with the other number pad keys.

KC_KP_COMMA is the same, although I don’t personally care about that one! :)

Add docs URL to description

Maintainer required:
The docs URL should be added to the description of this repository along with the one line about the project.

Vial is an open-source cross-platform (Windows, Linux and Mac) GUI and a QMK fork for configuring your keyboard in real time, similar to VIA.

vial-kb.github.io

image

image

Move away from fbs

Hey I was wondering if there was a possibility that this project will move away from using fbs in the near future since fbs is still using python 3.6?

my keyboard with three encoder has error

my keyboard have three encoder, I use \n\n\n\n\n\n\n\n\ne to defined, but I got this error
image
my json like this
{ "name": "editorMarcos", "keyboard_name": "editorMarcos", "maintainer": "WatsonJay", "vendorId": "0xFEED", "productId": "0x6062", "lighting": "qmk_rgblight", "matrix": { "rows": 5, "cols": 5 }, "layouts": { "keymap": [ {"name":"via"}, [{"x": 0.5},"0,0",{ "x": 1},"0,1"], ["4,0\n\n\n\n\n\n\n\n\ne","4,1\n\n\n\n\n\n\n\n\ne","4,2\n\n\n\n\n\n\n\n\ne","4,3\n\n\n\n\n\n\n\n\ne"], [{"x": 0.5},"1,0",{"x": 1},"1,1",{"x": 0.5},"0,2","0,3"], [{"x": 0.5},"2,0",{"x": 1},"2,1",{"x": 0.5},"1,2","1,3","1,4"], [{"x": 1.5},"3,1",{"x": 1.5},"2,2","2,3","2,4"], [{"x": 1},"3,0\n\n\n\n\n\n\n\n\ne","0,4\n\n\n\n\n\n\n\n\ne",{"x": 1},"3,2","3,3","3,4"] ] } }

Autorefresh works abnormally on Macos

When I git clone the newest version of this repo and built it to use on macos ,I found that the widget of keyboard kept refreshing,but in windows it works well.

Vial GUI just not opening.

I double click on the executable and the program runs, but the GUI does not pop up at all. No window shows up for the program. I am running Windows 11, which I suspect to be the problem.

How to convert vil to a qmk valid json

Hi there!

I found this project so useful. It was very easy to change the keyboard layout using this gui. However, I need to change some variables in the config.h, so to do that I thought in converting my vil file into json and then into keyboard.c using qmk to avoid re-implement all the layers again.

There's a way to achieve this? or a better approach?

how to use tap_dance

TAP_DANCE_ENABLE = yes in rules.mk
#define TAPPING_TERM 175 in config.h
but errors

Linking: .build/choupad_via.elf [ERRORS]
|
| /usr/local/opt/avr-binutils/bin/avr-ld: .build/obj_choupad_via/quantum/process_keycode/process_tap_dance.o: in function process_tap_dance_action_on_reset': | /Users/chou/desktop/vial/vial-qmk/quantum/process_keycode/process_tap_dance.c:99: undefined reference to tap_dance_actions'
| /usr/local/opt/avr-binutils/bin/avr-ld: /Users/chou/desktop/vial/vial-qmk/quantum/process_keycode/process_tap_dance.c:99: undefined reference to tap_dance_actions' | /usr/local/opt/avr-binutils/bin/avr-ld: .build/obj_choupad_via/quantum/process_keycode/process_tap_dance.o: in function _process_tap_dance_action_fn':
| /Users/chou/desktop/vial/vial-qmk/quantum/process_keycode/process_tap_dance.c:83: undefined reference to tap_dance_actions' | /usr/local/opt/avr-binutils/bin/avr-ld: /Users/chou/desktop/vial/vial-qmk/quantum/process_keycode/process_tap_dance.c:83: undefined reference to tap_dance_actions'
| /usr/local/opt/avr-binutils/bin/avr-ld: .build/obj_choupad_via/quantum/process_keycode/process_tap_dance.o: in function process_tap_dance_action_on_reset': | /Users/chou/desktop/vial/vial-qmk/quantum/process_keycode/process_tap_dance.c:100: undefined reference to tap_dance_actions'
| /usr/local/opt/avr-binutils/bin/avr-ld: .build/obj_choupad_via/quantum/process_keycode/process_tap_dance.o:/Users/chou/desktop/vial/vial-qmk/quantum/process_keycode/process_tap_dance.c:100: more undefined references to `tap_dance_actions' follow
| collect2: error: ld returned 1 exit status
|

Tap dance configuration tabs are missing

I'm new to VIA and Vial, so this could totally have something to do with my keyboard the sideloaded layout I'm using. I'm not sure, but the tap dance configuration tabs are missing where the documentation indicates they would be:

From the docs

image

What I see

image

Details

Operating system: macOS Monterey 12.0.1
Vial version: 0.4.1

RuntimeError

I try to change the keymap via the VIAL GUI

File "keymap_editor.py", line 68, in on_keycode_changed
 File "keymap_editor.py", line 192, in set_key
 File "keymap_editor.py", line 219, in set_key_matrix
 File "keyboard_comm.py", line 381, in set_key
 File "util.py", line 57, in hid_send

RuntimeError: failed to communicate with the device

Some Keycodes are missing/forbidden in the GUI

Hello,

the following keycodes are missing/not allowed in the GUI. When entering the hex it works (tested for the VOLUP).

Maybe more are missing, but these were the ones I encountered.

For me it would be ok to just allow them via the any-function for the obscure ones like audio and haptics. The others would be great to also have in the GUI.

Thanks!

"Download VIA definitions" gives an SSL error

Environment

macOS 11.2.3, M1 MacBook Pro

Steps to reproduce

  1. Open Vial
  2. Click "Download VIA definitions"
  3. See error message

Error message

  File "main_window.py", line 251, in load_via_stack_json
  File "urllib/request.py", line 223, in urlopen
  File "urllib/request.py", line 526, in open
  File "urllib/request.py", line 544, in _open
  File "urllib/request.py", line 504, in _call_chain
  File "urllib/request.py", line 1392, in https_open
  File "urllib/request.py", line 1351, in do_open

URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)>

Hue values do not save properly for some values

I am using a GMMK Pro with the RGB matrix enabled for Vial and it works quite well except that the hue values only seem to "stick" at certain values. For instance, I can't set it to 25 as it will change itself to 24, but if I just set it to 24, it will stay at 24. The exact behavior seems to depend on the value selected.

Steps to reproduce:

  1. In Vial, go to the lighting tab and click the color selector to open it.
  2. Change the hue to 25 and click okay.
  3. Click the color selector again. Notice the hue has changed to 24. Click okay.
  4. Click the color selector again. The hue should have stayed at 24. Change it to 20 and click okay.
  5. Click the color selector again. The hue has changed to 19. Click okay.
  6. Click the color selector again. The hue has changed to 18.

In my testing, this seems to happen in a repeating cycle. So, for example, 21-23 all eventually settle on 21, 24-26 all settle on 24, etc. Only every third value seems to register as valid, but the software only decreases the displayed value by 1 each time the user opens the color selector, so it can take 1 or 2 times to revert to a valid value depending on how far the chosen value is from the valid value. If that is the case, the system should not let users select invalid values or it should automatically correct them to valid values before closing the dialog to avoid confusion.

Show version number in the gui (OSX)

I recently wonder if i have the newest vial gui installed. Then i noticed that i can't see the version number in the gui.
Maybe add it to the title bar VIAL 0.4.1 for example.

"Matrix tester" not working for rotary encoder

At least for me, Vial GUI is able to change the mapping of a rotary encoder but not showing rotation in the "Matrix tester". For the button in my test setup, the rotary encoder works great.
This is misleading, because it makes the user think that the encoder is not working correctly.
I tested everything with a custom handwired (for now on a breadboard). Vial GUI version 0.4.2 under fedora Linux and vial-qmk commit bf3988680a92849ccddc07079b99a0b9f8573891.

Configuration error

ERROR: Could not find a version that satisfies the requirement sip==4.19.8 (from versions: 5.0.0, 5.0.1, 5.1.0, 5.1.1, 5.1.2, 5.2.0, 5.3.0, 5.4.0, 5.5.0, 6.0.0, 6.0.1, 6.0.2, 6.0.3, 6.1.0, 6.1.1, 6.2.0, 6.3.0, 6.3.1, 6.4.0, 6.5.0)
ERROR: No matching distribution found for sip==4.19.8

How can I get around this problem?

download VIA definitions do nothing

hello. I see that file-->download VIA definition don't make any change at all in my vial. there is no sign that Vial is downloading anything. Im using the intalled version and in windows 10

KC_MUTE vs KC__MUTE

In a follow up to this issue: #45

KC_MUTE only enables Mute on macOS (12.1), it doesn't toggle it. However, KC__MUTE does toggle it.

When KC__MUTE is set from QMK, this works without an issue, but when I open VIAL, it overwrites it. When saving that layout and then opening it in a text editor, the value was replaced with 127. When I then load said saved layout, it acts the same as KC_MUTE, thus only enabling Mute, not disabling it if it's already enabled.

Could KC__MUTE be added to the GUI? Perhaps denoting that it will only work for macOS and Linux?

Add System76 Launch

This application doesn't support the Launch by System76. I ran though the steps for udev but it still doesn't detect it.

Some information about this keyboard:

lsusb:

Bus 001 Device 006: ID 3384:0001 System76 Launch Configurable Keyboard (launch_1)
Bus 001 Device 006: ID 3384:0001 System76 Launch Configurable Keyboard (launch_1)

keyboard not detected on certain macOS machines

Unsure of why this is happening to several of my computers but I can get Vial working with my Corne on one machine but the other three cannot detect the same keyboard. Here's the log (appears the same in both machines that cannot detect):

2021-10-09 12:13:32,852 - WARNING - util:76 - is_rawhid: b'' does not match - open_path error open failed
2021-10-09 12:13:32,853 - INFO - util:122 - Matching VID=4653, PID=0001, serial=, path=b'' - VIA stack
2021-10-09 12:13:32,853 - WARNING - util:68 - is_rawhid: b'' does not match - usage_page=0001 usage=06
2021-10-09 12:13:33,051 - INFO - util:122 - Matching VID=4653, PID=0001, serial=, path=b'' - VIA stack
2021-10-09 12:13:33,051 - WARNING - util:68 - is_rawhid: b'' does not match - usage_page=0001 usage=06
2021-10-09 12:13:33,051 - INFO - util:122 - Matching VID=4653, PID=0001, serial=, path=b'' - VIA stack
2021-10-09 12:13:33,051 - WARNING - util:68 - is_rawhid: b'' does not match - usage_page=0001 usage=80
2021-10-09 12:13:33,051 - INFO - util:122 - Matching VID=4653, PID=0001, serial=, path=b'' - VIA stack
2021-10-09 12:13:33,051 - WARNING - util:68 - is_rawhid: b'' does not match - usage_page=000C usage=01
2021-10-09 12:13:33,051 - INFO - util:122 - Matching VID=4653, PID=0001, serial=, path=b'' - VIA stack
2021-10-09 12:13:33,052 - WARNING - util:68 - is_rawhid: b'' does not match - usage_page=0001 usage=06
2021-10-09 12:13:33,052 - INFO - util:122 - Matching VID=4653, PID=0001, serial=, path=b'' - VIA stack
2021-10-09 12:13:33,052 - WARNING - util:76 - is_rawhid: b'' does not match - open_path error open failed

Documentation clarification

How does vial compare to via? I can see a guide for "porting via to vial" but it does not state any potential limitations or risks.

I am asking this because I bought a PCB which states that it supports QMK but is actually built with VIA in mind. QMK sort of works until you enable backlighting and add more layers. I almost bricked my keyboard.

I came across "vial" and it gives me hope that it might be an interesting alternative to VIA (primarily because VIA is pretty closed source).

Are there any known risks and/or limitations known when running "vial" on a board that was developed for "via"?

Additionally, how far can i go with customisation on "vial". I would like to have a key that disables backlighting on all keys except the WASD cluster. This is currently not possible with "via" but might be doable with QMK. So how about "vial"?

No defined expression for 'KC_LOCK'

KC_LOCK works as intended but must be defined as '0x5d2a' in Vial. When attempting to remap a key to KC_LOCK, the following error is returned:
Invalid input: 'KC_LOCK' is not defined for expression 'KC_LOCK'

Vial windows Error

I have modified and successfully compiled Vail's qmk firmware according to the instructions, and flashed into my diy keyboard.
When I plug in the keyboard and open the Vial software in win11, Vial software reports an error:
File”main——windos.py“, line 252, in on_device_selected
File"vial_device.py", line 50, in open
File"keyboard_comm.py", line 225, in reload
File"keyboard_comm.py", line 311, in reload_layout
ValueError:invalid literal for int() with base 10:"7"

But,If I don’t plug in the keyboard, it will not prompt

Layout options with keys/encoder above the top row (OSX)

Hello,
i have a Macro Pad (4x4) with optional encoder (top row, or right row).
I try to add an option to switch the encoder position. From "top" to "right".

This works on Windows, but not on Mac OSX (10.15) (VIAL v0.4.1)

Not related, but is there a reason why the layout section is in new tab and not like in the window version?

{
    "name": "Plaid-Pad",
    "vendorId": "0x7983",
    "productId": "0x5050",
    "lighting": "none",
    "matrix": {
        "rows": 4,
        "cols": 4
    },
    "layouts": {
      "labels": [
        "Encoder TOP",
        "Encoder RIGHT"
      ],
      "keymap": [
        [{"x":2},"0,1\n\n\n0,1\n\n\n\n\n\ne","1,1\n\n\n0,1\n\n\n\n\n\ne","2,1\n\n\n0,1\n\n\n\n\n\ne","3,1\n\n\n0,1\n\n\n\n\n\ne"],
        [{"x":2},"0,0\n\n\n0,1\n\n\n\n\n\ne","1,0\n\n\n0,1\n\n\n\n\n\ne","2,0\n\n\n0,1\n\n\n\n\n\ne","3,0\n\n\n0,1\n\n\n\n\n\ne"],
        [{"x":2},"1,0","1,1","1,2","1,3",{"x":0.5},"3,0\n\n\n1,1\n\n\n\n\n\ne","3,1\n\n\n1,1\n\n\n\n\n\ne"],
        [{"x":2},"1,0","1,1","1,2","1,3",{"x":0.5},"2,0\n\n\n1,1\n\n\n\n\n\ne","2,1\n\n\n1,1\n\n\n\n\n\ne"],
        [{"x":2},"2,0","2,1","2,2","2,3",{"x":0.5},"1,0\n\n\n1,1\n\n\n\n\n\ne","1,1\n\n\n1,1\n\n\n\n\n\ne"],
        [{"x":2},"3,0","3,1","3,2","3,3",{"x":0.5},"0,0\n\n\n1,1\n\n\n\n\n\ne","0,1\n\n\n1,1\n\n\n\n\n\ne"]
      ]
    }
}
Bildschirmvideo.aufnehmen.2021-09-26.um.19.37.22.mov

[Bug] Vial crashes when switching the layout

Some .json files that work in via will crash when switching the layout in the vial configurator

Describe the Bug

When switching the layout of a keyboard/json file that contains decals (for layout options) without a matrix nominator (i.e.: {"d":true},"\n\n\n0,1") Vial crashes and will crash again as long as and whenever the corresponding board is connected, requiring clearing the eeprom or reflashing the firmware. The bug also occurs when loading a dummy json, which is also the less frustrating way to recreate it.

The bug occured in my port of the 40percentclub 4x4. The issue can be avoided by assigning a row and column to the decals and I will open a corresponding pull request.
However since there is no mention of this in the docs and the .json file works fine with via, I don't think this is intended behaviour.

System Information

  • Keyboard: 40percentclub 4x4
    • Revision (if applicable):
  • Operating system: windows 10
  • AVR GCC version: 8.4.0
  • ARM GCC version: 10.1.0
  • QMK Firmware version:
  • Any keyboard related software installed?
    • AutoHotKey
    • Karabiner
    • Other:

Additional Context

MOD Tap config behaviour is inconsistent

When configuring mod tap keys in the gui, settings are only saved if the complete key is selected.
See attached screen shots for differance.

Works:
works

Doesn't work:
doesntwork

Add debounce setting

I guess that modyfing debounce from vial would be an awesome feature. I wouldn't need to reflash the keyboard to test different debounce values each time

The Tap Dance tab is empty

I'm on macOS Catalina 10.15.7 and when I open vial for my Melody65 keyboard, it detects the keyboard successfully, but the tap dance tab is empty.

No AltGr option as keymap

Cannot find the AltGr key anywhere.

this keymap in qmk is KC_ALGR.

AltGr is essential for my studies so I was upset to see it isnt supported properly afaik

Firmware not saving to keyboard

Keymap is stored or cached, but power cycle reverts it back to QMK.

Keyboard is GMMK Pro ANSI, not tested on any others.

Weird thing is, I flashed to QMK, then to VIA, before flashing to VIAL, but never remapped anything in VIA, and it obviously didn't have any of my keymaps from QMK. The weird thing is that after unplugging on the VIAL firmware, it reverts back to my QMK keymap, which was overwritten by the default VIA keymap.

Window size not stored

Hello,

as poligone mentioned in the Discord:
https://discord.com/channels/798171334756401183/798171873951219754/922494119643840543

The window size is reset every time the app is restarted. This means frequent resizing of the window, so all keys can be seen for mapping them.

Would be great if:

  • the window size would be stored and restored
  • the window would automatically resized to show all available keys in the lower half

I think he is running a PC, I am running it on a Mac with the same problem.

VIA definitions for manual download

Is it possible to get the VIA definitions as manual download option? In some corporate environments with a web proxy in front of the client, the download via the Button in "File" "Download Via definitions" doesnt work.

"Unsupported VialRGB protocol"

File "main_window.py", line 248, in on_device_selected
File "vial_device.py", line 50, in open
File "keyboard_comm.py", line 229, in reload
File "keyboard_comm.py", line 394, in reload_persistent_rgb

RuntimeError: Unsupported VialRGB protocol (0), update your Vial version to latest

getting the error above when trying to sideload a via json with "lighting": "vialrgb",

running on windows

Add option to save and load macros from file

I have often had the need to transfer a macro to another board, or duplicate a macro to have 2 different but similar macros.
Copying manually is tedious at best, and aggravating at worst.

An option to save the current macro, or load a macro from file would be nice. I'll take a crack at implementing it this weekend.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.