rbreaves / kinto

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

Install on CutefishOS [ beta 0.8 ] (Debian 11 Bullseye) #607

Open RedBearAK opened 2 years ago

RedBearAK commented 2 years ago

Now begins the saga of making sure Kinto will eventually be able to cleanly install on CutefishOS, a new Debian-based distro with Qt apps designed to look modern, clean and simple, similar to macOS and GNOME 40+. Also has a global menu.

Missing packages that need to be installed before running the URL Kinto installer command: wget and/or curl (both missing), and unzip. All available via apt. Package servers (mirros.ustc.edu.cn) seem a bit flakey, and if you are connected to a VPN (e.g., Private Internet Access) you may find the package server completely unavailable with a DNS error. Changing VPN region didn't help. VPN IPs are probably being blocked by China's "Great Firewall". The domain reports no issues from online up/down site checkers.

After disconnecting the VPN and running through the installer a couple of times, due to a package that failed to download on the first run, the install gets to the end. However the GUI doesn't appear yet. Ah, the infamous missing Vte. I think it just needs "gir1.2-vte-2.91", but it might also need "libvte-2.91-0". And then the GUI window will appear and let me finish the install.

The distro identifies as "Debian". Installer script needs and update to make sure "gir1.2-vte-2.91" is getting installed. That will be the main issue most people wouldn't be able to get past.

Remaps are functioning, it's an Xorg/X11 based system. There doesn't appear to be a Wayland option at the login screen.

Kinto GUI log window has an issue where spaces appear between every character on the screen. a e s t h e t i c

Kinto app icon in launcher is an extremely low-res fuzzy pixelated version. Looks to be the 16x16 pixel version of the icon.

Tray icon can't be enabled. Namespace error. Package "gir1.2-appindicator3-0.1" that should solve this seems to be missing from the list of available packages. They seem to be using kwin_x11 (Plasma) and the top panel/menu bar has a WM_CLASS of "cutefish-statusbar". No idea what it's based on or whether it will be compatible with app indicators in the future.

Terminal WM_CLASS is "cutefish-terminal".

File manager WM_CLASS is "cutefish-filemanager". Not sure yet what it might be based on or forked from, if anything.

This is looking good as a potential Mac-like desktop to run Kinto on. Maybe even Sorun, in the future. Still missing some things and a little unstable at this point. But it's going in a good direction.

RedBearAK commented 2 years ago

Hmm, after a reboot I'm getting this in the log:

/usr/bin/xhost: unable to open display ":0"
echo $DISPLAY

Running this in terminal yields ":0". Re-running the installer in terminal yields a working Kinto. Not sure exactly what this is about. Might need to insert export DISPLAY=":0" into the systemd service file ExecStart command again?

Tried two different ways, with a semi-colon and with "&&" and neither one seems to allow Kinto to successfully start after a reboot. So what is different about how it starts after running the Kinto installer?

RedBearAK commented 2 years ago

Not exactly sure what is happening with the Alt+Tab task switching, but it isn't working quite right. With Kinto enabled it seems to only want to go back and forth between two applications, like the broken implementation of Alt+Grave on Budgie.

With Kinto disabled Alt+Tab produces a large icon task switcher, very much like macOS or like GNOME with "Switch applications" set to use Alt+Tab. Even with pass_through_key the behavior changes when Kinto is enabled.

Unfortunately there appears to be no keyboard settings module yet in their settings app, so I don't know how to troubleshoot further at the moment.

Cmd+Space doesn't activate anything. There is a full-screen app launcher and no other apparent way to launch apps, and I don't know if there is even a way yet to assign a keyboard shortcut to the app launcher. So if I wanted an app launcher to respond to Cmd+Space I'd need to install Ulauncher or Albert or similar. The Super/Win key doesn't seem to bring up anything with Kinto disabled, but that might be because of what Kinto does during install to disable that.

The included Text Editor is Gedit, so not everything is Qt-based. Pretty sure their own apps are Qt, but they all look the same.

RedBearAK commented 2 years ago

@rbreaves

The gir1.2-appindicator3-0.1 package seems to be missing from the Debian Bullseye repo. I have no idea why. But I was able to manually download the Buster package and install it, and the Kinto indicator will now show up in the top bar. And Ulauncher had its indicator in the top bar even before that. So it looks like the Cutefish statusbar won't be a case like with the elementary OS "wingpanel" where the devs didn't see the need for AppIndicators. And probably not the fault of CutefishOS that the package can't be automatically installed on Bullseye. It's a broken dependency for libappindicator3-dev to be installed.

RedBearAK commented 2 years ago

@rbreaves

The task switcher dialog comes back when I use Alt+Shift+Tab, and switches in reverse between all open applications. It's only the Alt+Tab switching that is stuck between the two most recent windows and doesn't bring up the task switcher dialog.

Still experiencing Kinto failure to run after logging out or rebooting, and the only solution so far is to re-run the Kinto setup and then copy my customized config file over the replaced default config each time. After that initial setup, Kinto can be restarted any number of times with no issue prior to the next logout or reboot.

rbreaves commented 2 years ago

I installed Cutefish several months ago and at the time the UI felt pretty broken despite its polish so I ended up not investing much if any time bringing Kinto to it. Perhaps it has gotten better, and yea on some distros the installer breaks - but technically kinto and an already made config file will work.

And yea - their tab switcher may only be keyed to detect the alt key and when the remaps happens it throws it off. Took me a day or 2 to find the issue when someone reported the Budgie issue to me - it took me even longer to port away from my C version of Kinto and into the xkeysnail version of it lol but if I recall I did both around the same time as I better understood that xkb & my C based solution was really not well suited for Alt-Tab in general without there being very weird side effects.

RedBearAK commented 2 years ago

@rbreaves

Was just watching a short YT video reviewing CutefishOS beta 0.5 a few days ago, and then suddenly they have beta 0.7 out. If they have enough volunteers working on it at such a rapid pace I wouldn't be surprised to see it looking pretty good within the next year-ish time period. Maybe 18 months at worst. I'll try to keep tabs on it now and then, and flag you if it seems to actually be getting near feature-complete and stable. Already submitted a request for an auto-hide feature for the status bar.

It may actually be Ubuntu-based in addition to being Debian-based, so either way probably won't be too difficult to get the Alt+Tab issue figured out eventually.

rbreaves commented 2 years ago

To re-iterate some of what you said above but as commands.. based on the latest 0.8 release.

sudo apt install curl wget zip unzip gir1.2-vte-2.91 python3-pip
RedBearAK commented 2 years ago

sudo apt install curl wget zip unzip gir1.2-vte-2.91 python3-pip

@rbreaves

Works for me without a hitch on a clean install of 0.8 beta. But there is still the issue of the xkeysnail service failing to start after rebooting, and the only way I know to fix that is to re-run the Kinto installer after every reboot. Restarting the service just results in failure. The only thing I can point to is that xhost error from the second post above.

RedBearAK commented 2 years ago

@rbreaves

Hey, sort of good news. Discovered a "solution" for the problem of Kinto installing and running fine, but failing to start after a reboot in things like CutefishOS (Debian): Find a way to run the /usr/bin/xhost +SI:localuser:root command manually after logging into the desktop. That's it.

Somehow this fails to work from within the systemd service file, until it is run once within the user session.

This seems to be a common thread with the problem I used to have with IceWM (issue #206 and others), and the recent thread about Kinto failing to start/work for the xmonad user (issue #657). Also, I'd have to test but I'll bet this is the solution to the similar issue I had with Kinto failing to start after every reboot on OpenSUSE.

A general solution to this in many environments may be finding a way to just run this command in a more typical way, separate from the systemd service, when the user logs in to their DE, or even inserting /usr/bin/xhost +SI:localuser:root in front of the Exec command in the dot-desktop autostart entry file.

So the reason that the Kinto installer would always "fix" this problem temporarily on all these environments was simply that it would directly run /usr/bin/xhost +SI:localuser:root somehow in the terminal during the install.

As usual, I cannot even begin to guess why these specific environments require this extra step.

Wonder if it would work to hardcode a runasuser MYUSER that specific part of the service file Exec line.

Edit: Of course this is already part of xkeysnail.desktop in the autostart folder. It just doesn't work for some reason.

RedBearAK commented 2 years ago

@rbreaves

Best I can come up with is putting this dot-desktop file into /usr/share/applications and the user can use any graphical launcher to start it manually after login.

/usr/share/applications/fix_kinto_xhost_error.desktop

[Desktop Entry]
Name=Fix Kinto xhost error
GenericName=fix_xhost
Comment=Fix xhost error for Kinto
Exec=/usr/bin/xhost +SI:localuser:root
# Budgie logoff fix to avoid key input loss
# ;/home/kris/.config/kinto/logoff.sh
# ;sudo /usr/local/bin/logoff.sh $USER $DISPLAY
Terminal=false
Type=Application
X-GNOME-Autostart-enabled=true

No matter what method I try to get something like this to run automatically, it just doesn't solve the issue until I run it manually.

RedBearAK commented 2 years ago

Packages needed on CutefishOS to load tray icon:

gir1.2-ayatanaappindicator3-0.1 gir1.2-notify-0.7

But, even with these packages there is a problem getting the tray icon to show at startup. After reach reboot I have to re-enable the tray icon from the Kinto GUI app menu, or run the terminal command to make it appear. No idea why. It should load at startup and just show that Kinto isn't running, until I run the xhost fix. But it's never there in the tray until I force it.