- Gnome 40 and above (Tested on Gnome 46)
- An already configured wireguard VPN connection (via the NetworkManager)
- Using root, create a script file in /etc/NetworkManager/dispatcher.d/wireguard.shand make it executable ug+x
- Add the following content:
/etc/NetworkManager/dispatcher.d/wireguard.sh and make it executable ug+xThe main idea: Configure Podman to use alternative paths outside the overlay filesystem
Steps:
overlayroot-chroot commandrecurse=0 (e.g., overlayroot="tmpfs:recurse=0") in /etc/overlayroot.conf/etc/containers/storage.conf and use alternative path values for runroot and graphroot under the [storage] section| /** | |
| * Triggers a callback function when all the specified events are validated as completed. | |
| * @param {Object[]} eventsWithValidators - An array of objects containing the event name, event target and status checker function for each event. | |
| * @param {string} eventsWithValidators[].eventName - The name of the event to listen for. | |
| * @param {EventTarget} [eventsWithValidators[].eventTarget=window] - The object that emits the event. If not specified, window will be used as the default event target. | |
| * @param {Function} eventsWithValidators[].statusChecker - A function that returns a boolean value indicating whether the event is completed or not. | |
| * @param {Function} callback - The function to execute when all the events are completed. | |
| * @example | |
| * runWhenEventsCompleted([ | |
| { eventName: 'load', statusChecker: () => document.readyState === 'complete' }, | 
The goal was to make chromium desktop icon, that was created for a second profile, appear in the Dash and the app switcher (alt+tab) as an independent app icon. I gave that .desktop a StartupWMClass entry and added a --class flag as suggested here, but the problem remained because I believe that chromium changes the wm class name to the default one after the launch.
Tried to fiddle with some code via looking glass, but no success there.
For reference, I used the following functions:
imports.gi.Shell.AppSystem.get_default() // Shell.AppSystem (https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/src/shell-app-system.c)
imports.gi.Shell.AppSystem.get_default().get_running() // [ Shell.App ] (https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/src/shell-app.c)A proof-of-concept: How to create a promise that calls the rest of the code without wrapping it with an executor function
function promised(callerArgs) {
  const caller = callerArgs.callee;
  if (!caller.resolve) {
    return {
      promise: new Promise((resolve, reject) => {
        caller.resolve = resolve;| # change the following variables: | |
| export SRC=/home/arik/.config/microsoft-edge-beta-original; | |
| export DEST=/home/arik/.config/microsoft-edge-beta; | |
| # remove access to all non current user | |
| chmod go-rwx $DEST/*; | |
| # copy file permissions | |
| cd $SRC; | |
| find * -exec sh -c 'eval $(stat -c "chmod %a $DEST/%N" "$0")' {} \; | 
Check if a context name exists (replace $CONTEXT_NAME)
  [ -n "$(docker context ls --format '{{ index .Name }}' | grep -w $CONTEXT_NAME)" ]| #!/bin/bash | |
| set -euo pipefail | |
| MACHINE_NAME=$(printf "%q" ${DOCKER_MACHINE_NAME:-null}) | |
| if [ "$MACHINE_NAME" == "null" ]; then | |
| echo "Error: No docker machine env variables are set" | |
| exit -1; | |
| fi | |
| DM_SPECIAL_COMMANDS=( | 
| { | |
| "af": { | |
| "countryName": "Afghanistan", | |
| "langName": "Pashto", | |
| "countryCodes": { | |
| "iso3166_1": "af", | |
| "GEC": "af" | |
| }, | |
| "langCodes": { | |
| "iso639_1": "ps" |