rbreaves / kinto

Mac-style shortcut keys for Linux & Windows.
http://kinto.sh
GNU General Public License v2.0
4.24k stars 212 forks source link

python3-tk not installed on Kubuntu 22.10 from Kinto.sh command #777

Open RedBearAK opened 1 year ago

RedBearAK commented 1 year ago

@rbreaves

Just installed Kinto on a fresh installation of Kubuntu 22.10 in a Boxes VM, using the command copied from https://kinto.sh, and wound up with no python3-tk package installed.

Is the command on the kinto.sh page not pulling from current master branch? Or, maybe Kubuntu is not identified as "Ubuntu" so the installer fails to install the package? No, that seems unlikely. The distro identifying command from the installer script pulls "Ubuntu" from /etc/os-release. So the fix should be working.

In any case, it's the usual failure of the service due to tkinter being missing. Everything works fine after installing the package.

tim-rohrer commented 1 year ago

Adding the package worked for me on Ubuntu 22.04. But, I just upgraded to Ubuntu 22.10, and kinto doesn't work. I'll open a new issue.

===

Update:

I didn't open a new issue as I think it is the same as #772. But, mine isn't working. I did run the uninstall script, and then the install script again. No change. Keyboard dead until I stop kinto.

image

@RedBearAK I'll experiment some more but I welcome any suggestions on what I should check/try.

RedBearAK commented 1 year ago

@tim-rohrer

It's concerning that the dead keyboard issue has now apparently spread to Ubuntu. I had a further problem with Kubuntu with the xkeysnail service failing to start automatically after the first reboot, but I still could run the command manually and didn't run into the dead keyboard issue. But I haven't tested Kubuntu again lately. And I already converted it to using keyszer as the keymapper. I would have to revert the VM and re-test after a system update.

You can always run the command from the service file manually in the terminal, but I haven't seen any helpful information in the terminal output to explain why the dead keyboard issue is happening.

The only real solution I can suggest at this point is converting from using xkeysnail to keyszer, which doesn't have the dead keyboard problem. Unfortunately there is no script yet to make this a simpler process.

https://github.com/joshgoebel/keyszer#installation

rbreaves commented 1 year ago

I’ll try & look some things over again not this coming weekend but the following, a bit swamped atm.

tim-rohrer commented 1 year ago

The only real solution I can suggest at this point is converting from using xkeysnail to keyszer, which doesn't have the dead keyboard problem. Unfortunately there is no script yet to make this a simpler process.

https://github.com/joshgoebel/keyszer#installation

Thank you. I'll try to experiment more tonight.

tim-rohrer commented 1 year ago

Well, I made it quite a way through the steps, but stumbled on the parameters for the modmap statements.

Probably best for me to wait :-)

Makes me realize just how much work went into this by @rbreaves. Thank you! I really do prefer my Mac keyboard as I've been using them for nearly 20 years!

RedBearAK commented 1 year ago

@tim-rohrer

If it helps, there is a ready-to-use config for keyszer at the link below, although you will need to manually uncomment the lines that correspond to your keyboard type to make it work.

https://github.com/rbreaves/kinto/pull/750

Raw file links:

kinto.py: https://raw.githubusercontent.com/rbreaves/kinto/371b6c9cce73be6bdabab4b6ab46aa0bd9c93095/linux/kinto.py

optspecialchars.py: https://raw.githubusercontent.com/rbreaves/kinto/371b6c9cce73be6bdabab4b6ab46aa0bd9c93095/linux/optspecialchars.py

The lines to remap the modifier keys for each keyboard type are in the two modmap sections between lines 320 and 392 in this version of kinto.py. The lines with "WinMac" at the end of the line need to be uncommented for a typical PC keyboard. Needs to be done in both sections.

Cm4nXD commented 1 year ago

@RedBearAK

How do I go about setting this up?

Sorry I am new to linux in general, hence why i want to use kinto.sh lol

RedBearAK commented 1 year ago

@Cm4nXD

Setting what up? Kinto? Your best bet if you're new to Linux is going to https://kinto.sh and pasting the installer command into a terminal window.

Attempting to install keyszer and use my customized config from the links above will probably be a frustrating experience.

I'm not the main dev on this project, just a contributor and user, FYI. I may be able to help with some specific issues if you have trouble with the normal Kinto installer.

Cm4nXD commented 1 year ago

@RedBearAK

Installer command results in dead keyboard for me on Ubuntu 22.10

I did manage to follow the keyszer tutorial to set up a seperate keymapper user to run the commands, I created a home directory for leymapper changed the ownership and permissions of keymapper, and ran the keys we program with the config file you linked, but it would give me an error about authorization failed to connect to screen.

RedBearAK commented 1 year ago

@Cm4nXD

That's the same "dead keyboard" issue as #772, I believe. No one seems to know why that's happening lately. Switching to keyszer seems to be the only solution.

manage to follow the keyszer tutorial to set up a seperate keymapper user to run the commands,

Yeah, I don't set up keyszer that way, I use the more lax "group" permission technique, where you put your own user in the input group and reboot after setting up the udev rules file with this command pasted into the terminal:

cat <<EOF | sudo tee /etc/udev/rules.d/90-keymapper-input.rules
SUBSYSTEM=="input", GROUP="input"
KERNEL=="uinput", SUBSYSTEM=="misc", GROUP="input"
EOF

You need to be extremely careful adding your user to the input group, if you don't use "-a" (append) you end up removing your user from all other groups(!). This can cause a situation where your user no longer has sudo abilities. It's recoverable, but a pain, and depends on the Linux distro.

I highly recommend you make another "admin" user on your machine (i.e., a user that is allowed to use sudo) before you try this, just in case a mistake is made. So the other user can fix your main user's account if necessary.

Also you may want to take note of the output from the groups command, which will show what groups your user is currently in.

Let's say your username is "bob":

sudo usermod -a -G input bob

That should do it safely. But your user won't appear to be in that group until you at least log out. If you also have the udev rules file in place, rebooting should then allow you to just run keyszer in a terminal tab, pointing it at your config file.

`which keyszer` -w -v -c ~/.config/kinto/kinto.py

-w = watch for device changes -v = verbose logging (optional) -c = path to config file

If you followed the instructions from above and uncommented the correct lines for your keyboard type, you should be in business.

Oh, and you may need to use the Kinto GUI or tray menu to disable autostarting the xkeysnail service, if you haven't already. Or, edit the line at the top of the config file:

# autostart = false