My Clear Linux* Setup

Also for my main machine (ThinkPad T25), I switched Linux distro from Pop!_OS (essentially Ubuntu/Debian) rocking Regolith Linux—a well curated and appealing styled desktop environment based on i3 tiling window manager and GNOME—to Intel's Clear Linux*.

The reasoning behind this switch is rather simple: I felt the need to have some extra system performance provided by Intel's well-optimized Linux distro also on my main machine—which I'm already used to on my NUC (Skull Canyon) desktop.

Here's how I’ve installed and configured my Clear Linux* system and GNOME desktop environment.

Install via the new GUI installer from USB stick w/ latest ISO (as of writing clear-33590-live-desktop.iso.

Bundles

# disable automatic updates
sudo swupd autoupdate --disable

# install bundles
sudo swupd bundle-add nodejs-basic

# system maintenance
sudo swupd update
sudo swupd diagnose
sudo swupd repair
flatpak update
  • desktop-apps-extras
  • libreoffice
  • libreoffice-extras-lang-de
  • nodejs-basic
  • go-basic
  • java-basic
  • php-basic
  • rust-basic
  • cloud-control
  • containers-basic
  • docker-compose
  • devpkg-ncurses
  • devpkg-pcre
  • package-utils
  • dev-utils
  • libglib
  • games-dev

Docker

# requires bundle containers-basic
sudo usermod -aG docker matthias
sudo systemctl start docker
sudo systemctl enable docker

Native Applications

For some application I prefer NOT to use Flatpaks:

  • VS Code
  • Tresorit (installer script)
  • Nitrokey (w/ custom udev rules
  • Signet (w/ custom udev rules)
  • CrossFTP (requires java)
  • MyTourBook (requires java)
  • JVerein (requires java)
  • Thunderbird (copy user profile from backup cp Backup/.thunderbird ~/. and then choose profile /opt/thunderbird/thunderbird -ProfileManager )
  • ...

For these I download the latest *.tar.gz (e.g. from https://code.visualstudio.com), extract and copy to /opt/vscode.

For integration w/ GNOME desktop I then create a file ~/.local/share/applications/code.desktop w/ following contents:

[Desktop Entry]
Encoding=UTF-8
Version=1.48
Type=Application
Terminal=false
Exec=/opt/vscode/code
Name=Visual Studio Code
Icon=/opt/vscode/resources/app/resources/linux/code.png

Increase limit for inotify watches:

sudo mkdir -p /etc/sysctl.d
echo fs.inotify.max_user_watches=524288 | sudo tee -append /etc/sysctl.d/40-max-user-watches.conf
sudo sysctl -p
sudo sysctl --system

Enable udev rules:

sudo mkdir -p /etc/udev/rules.d/
# move any*.rules file into the /etc/udev/rules.d folder
# and manually reloaded udev rules
sudo udevadm control --reload-rules && sudo udevadm trigger

Python Tools

Installed via pip :

  • wheel
  • csvdiff
  • csvkit
  • xmljson
  • ...

Add ~/.local/bin to your PATH :

# ~/.bashrc
export PATH=$PATH:~/.local/bin

Cli binaries

sudo mkdir -p /opt/3rd-party/bin
sudo curl -o /opt/3rd-party/bin/scw -L "https://github.com/scaleway/scaleway-cli/releases/download/v2.0.0/scw-2-0-0-linux-x86_64"
sudo chmod +x /opt/3rd-party/bin/scw

Flatpak Applications

  • GitKraken
  • Spotify

AppImages

  • Nitrokey
  • Simplenote
  • BalenaEtcher
  • Beaker Browser
  • Data-Forge Notebook Pro
  • Dat Desktop
  • Patchwork (SSB)
  • UHK Agent
  • ...

After downloading latest appimagelauncher release from https://github.com/TheAssassin/AppImageLauncher/releases and installing it...

./appimagelauncher-lite-2.1.4-travis987-7cb4d70-x86_64.AppImage install

....it's just a matter of downloading and double-clicking. They are being copied into the ~/Applications directory and a *.desktop file is created in ~/.local/share/applications—pretty convenient.

RPMs

  • Google Chrome

How-to install RPMs:

# swupd bundle-add package-utils
curl -LO https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
sudo rpm --import https://dl-ssl.google.com/linux/linux_signing_key.pub
rpm -U --nodeps google-chrome*.rpm
sed -i 's\/usr/bin/google-chrome-stable\env FONTCONFIG_PATH=/usr/share/defaults/fonts /usr/bin/google-chrome-stable\g' /usr/share/applications/google-chrome.desktop

Alternative approach leveraging dnf:

# swupd bundle-add dnf
# rpm -ivh --nodeps https://github.com/VSCodium/vscodium/releases/download/1.48.2/codium-1.48.2-1598439338.el7.x86_64.rpm

GNOME

Display Server

These days I actually prefer Wayland over GNOME. Also b/c of the Known Issues I'm facing w/ X11.

Shell

Extensions

  • Clipboard Indicator
  • Caffeine
  • Tray Icons
  • Screenshot Tool
  • Sound Input & Output Device Chooser

For browser integration—though Chrome(ium) only—follow the Cmake installation guide:

cd ~/Code
git clone https://gitlab.gnome.org/GNOME/chrome-gnome-shell.git
cd chrome-gnome-shell
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_EXTENSION=OFF ../
sudo make install

Customization Settings

Via GNOME Terminal Preferences:

  • Disable "Sound / Terminal bell" for active profile

Via GNOME Settings / Keyboard create/ update Keyboard Shortcuts:

  • Launch Terminal: Super+T (command: gnome-terminal)
  • Launch Settings: Super+C (command: gnome-control-center )
  • Lock screen: Super+Escape
  • Suspend: Super+Shift+S (command: systemctl suspend)
  • Toggle window fullscreen: Super+Shift+F

For custom Pop!_OS Shell bindings refer here:

In addition, via cli:

gsettings set org.gnome.mutter dynamic-workspaces false

gsettings set org.gnome.desktop.wm.preferences num-workspaces 5

gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-1 '["<SUPER>1"]'
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-2 '["<SUPER>2"]'
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-3 '["<SUPER>3"]'
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-4 '["<SUPER>4"]'
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-5 '["<SUPER>5"]'

gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-1 '["<SUPER><SHIFT>1"]'
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-2 '["<SUPER><SHIFT>2"]'
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-3 '["<SUPER><SHIFT>3"]'
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-4 '["<SUPER><SHIFT>4"]'
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-5 '["<SUPER><SHIFT>5"]'

gsettings set org.gnome.desktop.wm.preferences focus-mode 'sloppy'

# OPTIONAL enable factional scaling
# X11
# gsettings set org.gnome.mutter experimental-features "['x11-randr-fractional-scaling']"
# Wayland
# gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"

Build and instal Pop!_OS' GTK+ theme+shell:

# sudo swupd bundle-add dev-utils libglib games-dev
# gtk-theme
cd ~/Code
git clone https://github.com/pop-os/gtk-theme.git pop-os_gtk-theme
cd pop-os_gtk-theme
meson --prefix $HOME/.local build
ninja -C "build" install
# icon-theme
cd ~/Code
git clone https://github.com/pop-os/icon-theme.git pop-os_icon-theme
cd pop-os_icon-theme
meson --prefix $HOME/.local build
ninja -C "build" install
# shell
# only got it working w/ Wayland, not X11 :-/
cd ~/Code
git clone https://github.com/pop-os/shell.git pop-os_shell
cd pop-os_shell
make && make install && make enable
# logout, switch session from X11 to Wayland

Known Issues

Zoom: Screen sharing not working on GNOME Wayland, only GNOME X11.

Work-around: use Zoom's browser based web client—in either Firefox (or even Chrome)—along w/ the extension Zoom Redirector (which transparently redirects any meeting links to use Zoom's browser based web client).

GNOME Pop!_OS Sheel: Window tiling not working on GNOME X11, only GNOME Wayland.

Work-around: unfort. none so far :-/

eGPU (Thunderbolt™ 3 over USB C): External display on Display Port of GPU not working on GNOME X11, only on GNOME Wayland.

In my case a ASUS XG Station Pro.

Work-around: unfort. none so far :-/

"Oh no! Something has gone wrong."

Could happen after updating, e.g. in case of GNOME update from 3.36 to 3.38 in 33730.

Work-around: revert to/ restore previous version.

# example to revert after updating to 33740 
sudo swupd repair -V 33720 --force --picky

Awesome Clear Linux* Resources

Scripts, Tips & Tricks,…