Kairos - A clean post install script

Kairos is really just the working name for now and it is only tested to work for Ubuntu Budgie 20.04. This is pretty much an Alpha or Beta quality type of thing, even though everything appears to work just fine for me, but for anyone that would like to test this you can checkout my repo here. This work combines my earlier work, Kinto.sh, with the local customizations I tend to make. Any advice or suggestions will be very much appreciated.

One thing I think ought to be added one way or another to future releases is my printer fix. It’s very annoying to have constant notifications that a printer has been discovered, it should only scan when the user is actually searching for a printer imo. This fixes it, as does kairos.

1 Like

@fossfreedom In my VM I am noticing that VS Code is causing the budgie-panel to crash, but this does not seem to be happening locally on my own hardware. Pretty sure VS Code was installed the same way on both (I don’t use snaps, but rather the PPA repo).

journalctl -ae --full
06:17 ryanr-VirtualBox plank.desktop[20990]: (node:20990) electron: The default of contextIsolation is deprecated and will be changing fro>
Apr 11 23:06:18 ryanr-VirtualBox kernel: budgie-panel[19817]: segfault at 0 ip 00007ff452ff8644 sp 00007ffd790cb620 error 4 in libgtk-3.so.0.2404.16>
Apr 11 23:06:18 ryanr-VirtualBox kernel: Code: 00 00 e8 af f8 ff ff 44 8b 6c 24 24 48 89 44 24 08 4c 8d 60 08 45 85 f6 7e 2d 31 d2 66 2e 0f 1f 84 00>
Apr 11 23:06:18 ryanr-VirtualBox gnome-session[13776]: gnome-session-binary[13776]: WARNING: Application 'budgie-panel.desktop' killed by signal 11
Apr 11 23:06:18 ryanr-VirtualBox gnome-session-binary[13776]: WARNING: Application 'budgie-panel.desktop' killed by signal 11
Apr 11 23:06:18 ryanr-VirtualBox kintotray.desktop[21145]: TERM environment variable not set.
Apr 11 23:06:18 ryanr-VirtualBox kintotray.desktop[21147]: TERM environment variable not set.
Apr 11 23:06:18 ryanr-VirtualBox plank.desktop[21119]: (node:21119) Electron: Loading non-context-aware native module in renderer: '/usr/share/code/>
Apr 11 23:06:19 ryanr-VirtualBox kintotray.desktop[21174]: TERM environment variable not set.
Apr 11 23:06:19 ryanr-VirtualBox budgie-panel[21142]: Client.vala:88: Initializing client failed
Apr 11 23:06:19 ryanr-VirtualBox appmenu-registr[10450]: g_atomic_ref_count_dec: assertion 'g_atomic_int_get (arc) > 0' failed
Apr 11 23:06:20 ryanr-VirtualBox budgie-panel[21142]: unable to open indicator service file directory: Error opening directory “/usr/share/unity/ind>
Apr 11 23:06:20 ryanr-VirtualBox budgie-panel[21142]: DBusService.vala:64: Service registration succeeded
Apr 11 23:06:20 ryanr-VirtualBox budgie-panel[21142]: relevancy-backend-zg.vala:56: Unable to check Zeitgeist data sources: GDBus.Error:org.freedesk>
Apr 11 23:06:20 ryanr-VirtualBox budgie-panel[21142]: relevancy-backend-zg.vala:113: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name>
Apr 11 23:06:20 ryanr-VirtualBox budgie-panel[21142]: relevancy-backend-zg.vala:197: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name>

Is the 20.04.2 in a VM?
What is your panel layout?

Need this to try to reproduce the issue.

The default mentions a crash in Gtk itself … so something the app is doing is crashing the Gtk library that the panel is using.

Yes, 20.04.2, and layout is cupertino (although slightly modified)

lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.2 LTS
Release:	20.04
Codename:	focal

I have made some system level modifications to get the default settings I want… added some children applets that don’t actually appear - but that doesn’t seem to have caused any instability for the panel at all. This crash appears to be related to running VS Code, I have ran Sublime Text 3 a lot more with no issues. On my dev branch I just fixed the cupertino applet missing issue by fully configuring them, now merging into master.

You should be able to spin up a VM (Virtualbox) and apply the same setup as what I have and then open up VS Code a few times and you should be able to reproduce the issue.

This single command in the terminal will install everything the exact same way as it is for me.

bash <( curl -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/rbreaves/kairos/HEAD/linux.sh )

Here is one of the files I modified btw and it does get copied over. Prior to this modification my script does install the actual applet package via apt that is associated with the children applets I want appearing.

Fun! I am going to have a look at what your script does, perhaps copy in a few of your tricks. I spend quite some time on my post-install script:

Which also installs gestures and configures the default MacOS gestures (just the common ones), calls a script to install MS Office fonts (the ones in the repo + temporarily downloads Powerpoint Viewer and extracts some fonts of it) + a script to configure recommended BTRFS nested subvolumes to exclude .cache and /tmp.
Also I added a few interactions to allow users to choose what extra apps to install, including an option to install all Office365 fonts (required to have documents look identical on Ubuntu as on Win/Mac), if they have the rights to do so (to avoid Microsoft complaining, it requires the user to download a file manually before proceeding).

Mine is tested for 20.10 and I am planning to test it for 21.04 as soon as it is released, in my experience, after every Budgie release, less gsettings modifications are required.

Still planning to add a folder in /opt called AppImages, set permissions, to have AppImageLauncher install appimages in that location by default instead of annoyingly creating a seperate Applications folder in $HOME. The dev really doesn’t want to change this behaviour, which is contra basic Linux documentation.

1 Like

Tomorrow I plan to add libinput-gestures as well, waterfox & maybe a hidpi mode fix I posted about for laptops. Those 3 items will pretty well complete it.

This also ought to give a good idea of what’s included.

if that is definitely a needed dependency then yes, the current nemo-preview package needs to be updated to include that.

What I am interested in if a generic “Mac Layout” type of thing can be added to budgie-welcome - Themes and Layouts. So something that can update keybindings etc + a way to undo the updates.
In that way we can ship all the good work done by yourself and other various folk ‘to the masses’.

1 Like

Yea, Nemo-preview definitely needs that gtksource-4 pkg or it crashes immediately.

On the libinput, I’ve been using it to switch virtual desktops via 3 finger swipes for months now. I think modifying a new applet based on hotcorners would be amazing tbh, could then create an easy to use GUI that can handle quickly changing actions for 2, 3, & 4 finger swipes in any direction.

And yea, I should probably review Kinto & see what I’d need to do to get that packaged for the repos or into a deb package. I think the uninstall is complete in reversing changes & has been, although when a user stops it I do need to restore the overlay (& not just on uninstall). Was also wanting to add some CI & automated testing, as people contribute to it I want more assurances that I won’t break any of the massive number of remap scenarios it now covers :sweat_smile:.

nemo-preview now includes gir1.2-gtksource-4 as a dependency

1 Like

Update: This app does indeed work after installing it from flatpaks, but it is stuck on a light theme, flatpak or not I believe. The author is working on updating it.

Looks like someone already wrote a GUI for libinput-gestures, but either needs to be compiled or installed via flatpak, so I installed flatpak, but apparently will need to reboot before I can use it. Probably means that I will be opting to compile it instead as far as kairos is concerned.

Although it’d be pretty nice to get it into your either into the main repos or backports repo if it works well and has the appropriate license to do so and assuming it works. @fossfreedom

I’ve looked at that before. It is missing some key capabilities - like

a. ability to test if the gesture works
b. confirming compatibility with cheap and cheerful touchpads that can’t manage more than one touch.

Ah, well I have a pretty cheap chinese macbook clone and an old x220 thinkpad, I can test on those later (correction I know it works on the macbook clone, x220 I don’t yet know). Surprisingly the macbook clone I have does pretty well with multitouch despite people and reviewers saying it didn’t have multitouch.

Also it appeared like, at least in the version I just installed, flatpak, that you can click the finger swipe itself and that will activate the command you had typed into the box. Also whether you install via flatpak or not, I think the libinput-gesture app requires users to log off and back on after being granted permission to access inputs. That may confuse first time users installing it and make them think it is not working.

The flatpak install method

sudo apt install gnome-software-plugin-flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# reboot here I think?
sudo flatpak install flathub com.gitlab.cunidev.Gestures
flatpak run com.gitlab.cunidev.Gestures
# Shortcut dir is in this path variable $XDG_DATA_DIRS, but Budgie does not pull it into the app menu for some reason. 
ln -s /var/lib/flatpak/exports/share/applications/com.gitlab.cunidev.Gestures.desktop /usr/share/applications/

Setting Dark theme failed for me via settings.ini

Theme I was trying to use…

flatpak install flathub org.gtk.Gtk3theme.Arc-Dark

Update: I’ve submitted an issue ticket to him requesting he adds predefined actions per desktop environment, if nothing else I may fork his project and add predefined actions myself and submit a PR later. It looks to be written in python so I would have some ease with it already.

I guess I should mention that on the 3 finger swipe left I use this.

xdotool set_desktop --relative -- -1 

and to the right I use

xdotool set_desktop --relative 1

This appears to work for me when _internal ws_up or down does not.

Would be a lot nicer if the Gestures app had preset default actions - instead of just a custom field imo.