how to get clip studio and a huion kamvas tablet to work natively on Bazzite

8-31-25

if you recently made the switch to bazzite from windows for its built-in support for steam gaming, you may have run into a few issues troubleshooting the devices that previously used to "just work" on windows.

while there is quite a bit of documentation available for troubleshooting games, like protondb, i found bazzite a bit frustrating when trying to tinker with less popular applications. it is an immutable os that uses flatpaks to manage applications. if something isn't a flatpak, you run into wall after wall trying to install packages. luckily- there is boxes, a pre-installed tool that allows you to run another distribution and install applications on there.

display tablets pose a special problem for use on a linux os. they require drivers that may not be available for your distribution, which could be solved by using boxes. however, VMs introduce another layer of pass-through that tablets usually can not cross. so, huion's debian packages are useless on a distribution like fedora or bazzite. you could use a package transmogrifier, like alien, but alien is not a flatpak and again bazzite is immutable so inserting your own package is almost impossible. at least the silver lining here is you can't break your computer, which is good if you don't know linux well.

when i plugged in my tablet, the display part worked perfectly on bazzite. i was able to set basic display options on it. using my pen stylus was another story. on plug in, the system did not recognize any pen gestures, clicks, or button presses. i would need to find a driver that would translate the input from my usb tablet device to my system.

here are my specs:

  • os: Bazzite 42.20250828.1
  • kernel: Linux bazzite 6.15.9-116.bazzite.fc42.x86_64
  • tablet: Huion Kamvas 20 Pro (GT-192)
  • application: Clip Studio Paint Pro v1.0 license

here is how i configured Clip Studio Paint (taken from this reddit post):

  1. open bottles
  2. create a bottle
  3. select application
  4. give the bottle a name
  5. select sys-win-10.0
  6. once bottle completes, open it
  7. open settings and ensure win10 is selected
  8. go back to the container
  9. open dependencies
  10. download the following:
    • dotnet472 (this will install previous dependencies)
    • d3dcompiler_47
    • vcredist2015
    • vcredist2019
  11. once dependencies are installed, return to container
  12. download the version of clip studio you have a license for (extremely important it matches your license version)
  13. place the windows install exe in the directory your bottle uses, under c:/
  14. on bottles, select run executable
  15. select the exe you placed in the directory
  16. run through the install
  17. once finished, run the clipstudio exe that was placed in */bottleslocation/c/Program Files/CELSYS/CLIP STUDIO v#/CLIP STUDIO

a few caveats for clip studio. i still do not know how to get all of the menu options but i am working on finding a solution. some windows will take awhile to load. restart the application if it doesn't work immediately.

now the headache. my huion tablet.

i had followed the reddit post above and tried to use the opentabletdriver it talks about. this would have probably worked, had i not been using bazzite.

at the time, i did not know that bazzite used an application called wayland to configure usb devices. this thing was running in the background the whole time, making things work, and i had no idea. except, it didn't work for my tablet, obviously. but since it was already a tablet driver, the opentabletdriver application i installed was fighting with it for control.

once i realized i was running wayland, i uninstalled opentabletdriver.

here is a good resource to figure out how you can troubleshoot your tablet: linuxwacom github

here is the command i used to find my session type for wayland:

user@bazzite~$ echo $XDG_SESSION_TYPE
wayland

if you see anything different, you may be using a different environment for handling usb devices.

if you are using a wacom tablet with wacom tablet drivers, i did find this page helpful, at least in leading me down what may work to troubleshoot. check it out if that's what you're using!

anyways, continuing on with my tablet woes.

wayland uses libinput to configure and troubleshoot usb devices. this means using lsusb was meaningless, really. kind of.

i checked out the libinput documentation. specifically, the tablet debugging section.

here are a few commands i used:

user@bazzite~$ sudo libinput record
/dev/input/event14: Tablet Monitor
/dev/input/event15: Tablet Monitor
/dev/input/event16: Tablet Monitor Touch Strip
/dev/input/event17: Tablet Monitor Dial
select device number: 14
libinput:
version: "1.29.0"
git: "unknown"
system:
os: "bazzite:42"
kernel: "6.15.9-116.bazzite.fc42.x86_64"
dmi: "unknown"
devices:
- node: /dev/input/event14
evdev:
# Name: Tablet Monitor
# ID: bus 0x0003 (usb) vendor 0x256c product 0x006e version 0x0111
# Size in mm: 434x238
# Supported Events:
# Event type 0 (EV_SYN)
# Event type 1 (EV_KEY)

note if there are any issues with the tablet in these first few lines. it will become apparent, as it will say something like missing resolution. if it says that, you are in luck!

also note the bus, vendor, product, and version. my tablet had a few entries, too as you can see above. there are separate bus entries for the buttons, screen, and the scroll wheel.

this is also great news, as the tablet is recognized, just needs a tweak to get it working!

i checked out the github page for systemd, which runs the libinput configurations (don't kill me here.. still learning how all this works. it's magic right?). i searched the issues tab to see if anyone talked about a huion tablet, and found the HOLY GRAIL of posts for my problem.

following the documentation from systemd, i made a notepad of the changes i need to make to get the resolution configured for my tablet:

  • #HUION Kamvas 20 (GT-192)
  • evdev:input:b0003v256Cp006E*
  • EVDEV_ABS_00=::200
  • EVDEV_ABS_01=::200

please make sure you calculate your resolution according to your lpi (lines per inch). mine just happened to be the same 200 (per mm) as a user on github. see the holy grail document above for what i am talking about.

since my tablet had multiple entries, the * in the endev:input string ensures they are all selected for this change. then, i made a new file in the etc directory:

user@bazzite~$ cd /etc/udev/hwdb.d
user@bazzite:/etc/udev/hwdb.d$ sudo touch 61-evdev-local.hwdb
user@bazzite:/etc/udev/hwdb.d$ sudo nano 61-evdev-local.hwdb
#HUION Kamvas 20 (GT-192)
evdev:input:b0003v256Cp006E*
EVDEV_ABS_00=::200
EVDEV_ABS_01=::200
ctrl-X
user@bazzite:/etc/udev/hwdb.d$ y

then, we need these changes propagated:

user@bazzite~$ sudo su
bash-5.2# systemd-hwdb update
bash-5.2# udevadm trigger /dev/input/event*

this will resolve the issues with the resolution in the tablet entries. now, your tablet should be working natively and be able to draw on the bottles instance of csp!

thanks for reading!
any questions please email me.

how to configure a wireguard VPN fusion on ASUS router (from Mullvad)

1-1-26

this is pretty specific, but i figure this may help anyone with an ASUS router trying to configure their VPN fusion for Wireguard connections. Whatever your consumer VPN provider is, you can certainly tweak this tutorial to fit.

(let's do the easy way first, then i will show you how to do this manually)

  1. first, navigate to your VPN provider (mine is Mullvad)
  2. log into your account
  3. navigate to your provider's config generator
  4. select Android config
  5. generate a key
  6. for Mullvad specifically, stay on this page with your new key and select the exit location information
  7. click Download File
  8. if you do not select the location and navigate away from the page, your key will not be accessible to make a config and you'll have to make a new one
  9. once downloaded, navigate to your router (for ASUS, use router.asus.com or your router's IP in a browser)
  10. navigate to VPN > VPN Fusion
  11. click the plus sign
  12. for the new profile, give it any name
  13. for VPN type, select WireGuard (this is only available for ASUS router firmware versions above 3.0.0.6, I think)
  14. upload the config you generated and downloaded earlier
  15. all information should be populated now
  16. add any devices you want on this connection
  17. click Apply and Enable

voila! you should have a working connection now on the devices you selected. previously, i was able to confirm my connection by looking at the mullvad app on my phone, when using openvpn configs. this is no longer the case for WireGuard, not entirely sure why Mullvad is not picking up their server exit IP.

you can easily check your public IP by going to whatismyipadddress.com and observing that the location you selected is now your address. it may even tell you that youre using a VPN ;)

now, let's say you want to do this manually or perhaps you are interested in what is happening here..

let's take our Mullvad Wireguard key, as that is all we will need to get started

it looks like this little guy right here:

  • sHI09nWNIl+15qndF6CPF6JIEYF5pw0xDBEu6Ngp5Eg= (yours will be different)

make sure you have your Mullvad account number handy too

in a linux terminal (surprise, this IS a linux tutorial), run this:

stupiduser@somecomputer:~$ curl https://api.mullvad.net/wg/ -d account=MULLVADACCOUNT --data-urlencode pubkey=YOURKEY

you should get a similar output as this:

stupiduser@somecomputer:~$ curl https://api.mullvad.net/wg/ -d account=MULLVADACCOUNT --data-urlencode pubkey=YOURKEY
xx.xx.xx.xx/32,fc00:eeee:eeee:eeee::0:xxxx/128

this is the interface that mullvad has associated with the private key you generated, take note and copy it

  • NOTE: the ipv6 address IS needed

now that we have the interface information, we need the peer information (the actual server that will be masking our IP and traffic requests)

  • for Mullvad, we can see a list of WireGuard servers they host here
  • this is a good time to mention this article from Mullvad. super helpful if you are running OPENWRT on your router!

on the Mullvad server page, filter by WireGuard and select whichever exit point you would like

note the public key, the ipv4 address, and take note of the default WireGuard listening port: 51820

you will input the public key under the peer information, and the ipv4 address with the port will go in the endpoint field

create a config file with all the information you gathered

open a text document and paste this:

  • [Interface]
  • # Device: Silly Router Name
  • PrivateKey = sHI09nWNIl+15qndF6CPF6JIEYF5pw0xDBEu6Ngp5Eg=
  • Address = xx.xx.xx.xx/32,fc00:eeee:eeee:eeee::0:xxxx/128

  • [Peer]
  • PublicKey = 1nGkBr+oLwK5lQcVt9vF6rGM5R3ra5bmYTGJfGIh0lk=
  • AllowedIPs = 0.0.0.0/0,::0/0
  • Endpoint = 146.70.172.66:51820

change the values to what you noted from the information. it will be different than what was pasted here

save this document as "serverconfig.conf"

you now have a working configuration for a client/peer connection

navigate to your router's control interface again

upload this config file to your VPN fusion settings

thanks for reading!
any questions please email me.