wikibackup/Gnome.md

3.9 KiB
Raw Permalink Blame History

title description published date tags editor dateCreated
GNOME Desktop Environment true 2024-10-01T11:10:56.171Z gnome markdown 2024-10-01T10:43:58.594Z

What is GNOME?

GNOME (/(ɡ)noʊm/) is a desktop environment that aims to be simple and easy to use. It is designed by The GNOME Project and is composed entirely of free and open-source software.

Screenshot of Gnome in Parch Linux

screenshot

Moving from another Desktop to Gnome

For installing Gnome on Parch Linux you need to install our meta package.

sudo pacman -S parch-gnome-meta

this would install a minimal gnome session with parch customization on Parch Linux.

enabling the display manager

if you are moving from KDE or other desktops (by default parch uses sddm in all editions except Gnome) you need to disable your old login manager and then enable GDM .

# disabling old login manager (sddm)
sudo systemctl disable sddm

#enabling GDM
sudo systemctl enable gdm

Tips and Tricks

Enabling numlock on GNOME startup

You need to run this command in terminal for enabling this behavior:

gsettings set org.gnome.desktop.peripherals.keyboard numlock-state true

To remember the last state:

gsettings set org.gnome.desktop.peripherals.keyboard remember-numlock-state true

Redirect certain URLs to specific web browsers

This shows how to use Chromium for certain types of URLs while maintaining Firefox as default browser for all other tasks.

Make sure pcre is installed, to use pcregrep.

Setup custom xdg-open:

/usr/local/bin/xdg-open
#!/bin/bash
DOMAIN_LIST_FILE=~/'domains.txt'
OTHER_BROWSER='/usr/bin/chromium-browser'
BROWSER_OPTIONS='' # Optional, for command line options passed to browser
XDG_OPEN='/usr/bin/xdg-open'
DEFAULT_BROWSER='/usr/bin/firefox'

if echo "$1" | pcregrep -q '^https?://'; then
    matching=0
    while read domain; do
	if echo "$1" | pcregrep -q "^https?://${domain}"; then
	    matching=1
	    break
	fi
    done < "$DOMAIN_LIST_FILE"

    if [[ $matching -eq 1 ]]; then
	"$OTHER_BROWSER" $BROWSER_OPTIONS ${*}
	exit 0
    fi
    
    "$DEFAULT_BROWSER" ${*}
    exit 0
else
    "$XDG_OPEN" ${*}
fi

Configure domains for redirect to Chromium:

$HOME/domains.txt
stackexchange.com
stackoverflow.com
superuser.com
www.youtube.com
github.com

Setup xdg-open web as desktop application:

$HOME/.local/share/applications/xdg-open-web.desktop
[Desktop Entry]
Version=1.0
Name=xdg-open web
GenericName=Web Browser
Exec=xdg-open %u
Terminal=false
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
StartupNotify=true
Categories=Network;WebBrowser;
Keywords=web;browser;internet;
Actions=new-window;new-private-window;
$ update-desktop-database $HOME/.local/share/applications/

Set xdg-open web as default Web application in GNOME settings: Go to GNOME Settings > Details > Default Applications and set Web to xdg-open web

Custom GNOME sessions

It is possible to create custom GNOME sessions which use the GNOME session manager but start different sets of components (Openbox with tint2 instead of GNOME Shell for example).

Two files are required for a custom GNOME session: a session file in /usr/share/gnome-session/sessions/ which defines the components to be started and a desktop entry in /usr/share/xsessions which is read by the display manager. An example session file is provided below:

/usr/share/gnome-session/sessions/gnome-openbox.session
[GNOME Session]
Name=GNOME Openbox
RequiredComponents=openbox;tint2;gnome-settings-daemon;

And an example desktop file:

/usr/share/xsessions/gnome-openbox.desktop
[Desktop Entry]
Name=GNOME Openbox
Exec=gnome-session --session=gnome-openbox