Skip to content

Linux Desktop

January 9, 2025
December 12, 2014

This post is about using GNU/Linux with desktop environment as a daily driver.
Linux - Wikiwand

Unix vs Linux - YouTube

Home | Linux Journey
LinuxAndUbuntu - Linux News | Apps Reviews | Linux Tutorials HowTo - Home

Getting Started with Linux: The Complete Guide
Introduction to Linux
The Linux System Administrator's Guide
The UNIX Hater's Handbook (PDF)
Introduction to Linux | edX
Introduction to Linux (LFS101) - Linux Foundation - Training
Product Documentation for Red Hat Enterprise Linux - Red Hat Customer Portal
Control-Escape — Guide to Linux for Beginners

Welcome To Distro.Tube
DistroTube - YouTube

Brodie Robertson - YouTube
The Linux Experiment - YouTube
Learn Linux TV - YouTube

The Linux Documentation Project
The Linux Information Project (LINFO) Home Page
*nix - Things and Stuff Wiki
aleksandar-todorovic/awesome-linux: A list of awesome projects and resources that make Linux even more awesome.

History

How Linux was born, as told by Linus Torvalds himself | Ars Technica UK
March of the Penguin: Ars looks back at 20 years of Linux | Ars Technica
Linux at 25: How Linux changed the world | InfoWorld
Linux at 25: A pictorial history | InfoWorld
LINUX's History by Linus Torvalds
Test drive Linux from 1993-2001: SLackware 1.01 through Fedora 1 | Opensource.com
Why Hardly Anyone Calls Linux "GNU/Linux"

Penguin Origins: The History of Linux [Geek History]
The History Of Linux [INFOGRAPHIC ]

An Interview With Linus Torvalds: Linux and Git - Part 1 | Tag1 Consulting
An Interview With Linus Torvalds: Open Source And Beyond - Part 2 | Tag1 Consulting

Why did Linux succeed and BSD fail? - Quora

GNU and Linux

To distinguish GNU and Linux, and why it is not "correct" to say Linux system, read: Linux and GNU and
GNU/Linux FAQ

Unix vs. Linux: The Differences Between and Why It Matters

GNU Userland | Linux.org
List of GNU packages - Wikiwand
GNU-Binutils | Linux.org
GNU Toolchain Explained | Linux.org

Stephen Bourne: Early days of Unix and design of sh - YouTube

Issues

Main Linux problems on the desktop, 2016 edition

Make. It. Simple. Linux Desktop Usability — Part 1 – probono – Medium
Make. It. Simple. Linux Desktop Usability — Part 2 – probono – Medium
Make. It. Simple. Linux Desktop Usability — Part 3 – probono – Medium
Make. It. Simple. Linux Desktop Usability — Part 4 – probono – Medium
Make. It. Simple. Linux Desktop Usability — Part 5 – probono – Medium
Make. It. Simple. Linux Desktop Usability — Part 6 – probono – Medium

Distros

Linux distribution - Wikiwand
List of Linux distributions - Wikiwand
GNU/Linux Distribution Timeline
Well, Android is also a Linux distro with its own forks.
What Are The Components Of A Linux Distribution?

LibreHunt: Home
DistroWatch.com: Put the fun back into computing. Use Linux, BSD.
Linuxtracker .::. The Premier Linux Bittorrent Website
Linux AIO

Logic Behind The Code Naming Of Most Popular Linux Distros
Linux For Beginners: Understanding The Many Versions Of Ubuntu

Creating Distro

5 Tools That Will Help You Create Your Own Linux Distro

Welcome to Linux From Scratch!
Linux From Scratch
BLFS Project Homepage

Choosing Distro

Bear this in mind:
Linux distro = kernel + package manager + Display Manager + Desktop Environment + apps

The crucial factor is the package manager and default DE.
The default DE saves you the hassle of going through the setup and probably more stable. But we can change DE as long as the new DE is available in the package manager.

Distrochooser
DistroTest.net - The first online operating system tester
How to Distro Hop With a Web Browser | Software | LinuxInsider DistroTest
DistroTest - Test Linux And Unix Operating Systems Online For Free - OSTechNix
Choosing Linux: 2 Awesome Tools To Find Your Perfect Linux OS

littlehorse pc - YouTube first impressions

What Is A Linux Distribution? How Are All These Linux Distros Different?
GitHub.io killed the distro star: Why are people so bored with the top Linux makers? • The Register
10 Best Linux Desktop Environments And Their Comparison | 2018 Edition

Distro Hopping

Distro Hopping - For People That Can't Make A Decision
The psychology of a distrohopper | Jim Lynch
The dark side of distrohopping | Jim Lynch
Is distrohopping in Linux becoming a thing of the past? | InfoWorld
My Search For The Perfect Linux OS Just Ended — With An Unexpected Surprise

Watched Distro

Newcomer EndeavourOS Offers a Friendlier Arch Linux Experience | Reviews | LinuxInsider
Enter the void scratch + any DE, supports RPi
Solus Project DistroWatch (formerly Evolve OS) scratch + Budgie
Ubuntu Budgie | Home Ubuntu + Budgie
Ubuntu MATE | For a retrospective future Ubuntu + MATE
Nitrux — A Linux for Everyone Ubuntu + Nomad (Plasma)
elementary OS DistroWatch Ubuntu + Pantheon, OSX-like
Regolith 1.6 Ubuntu + GNOME + i3

see arch-linux#arch-distros

deepin OS DistroWatch.com Debian Unstable (sid) + Deepin DE (Chinese)
Korora Project DistroWatch.com Fedora + multiple DE + Numix theme
wattOS Linux Ubuntu + LXDE
Revive that old PC! < The LXLE Desktop Ubuntu + LXDE for aging computer, not stable on my netbook

Clear Linux Project
Intel's Clear Linux Ups Their Desktop Offering, Rolling Out New Installer - Phoronix
clearlinux/how-to-clear: Training documentation to teach users how to make a Clear Linux OS derivative distribution.
Clear Linux OS MeetUp: An Introduction and Beyond Source - YouTube
Clear Linux OS - Architecture Overview
LINUX Unplugged - Blog - Clear Linux OS 2019
Trying To Make Ubuntu 18.10 Run As Fast As Intel's Clear Linux - Phoronix
Intel rolls out Clear Linux Developer Edition | ZDNet
It's Time To Pay Attention To Intel's Clear Linux OS Project

5 rock-solid Linux distros for developers | InfoWorld
The Best Linux Distros of 2016 | Linux.com | The source for Linux information
7 Best Linux Distro For Laptop In 2016 - How To Use Linux
Which Official Ubuntu Flavor Is Best for You? | Linux.com | The source for Linux information
Lubuntu Vs. Xubuntu - LinuxAndUbuntu - Linux News | Apps Reviews | Linux Tutorials HowTo
Lightweight Linux distribution - Wikiwand

Top 5 Linux Distros to look forward in 2017 » TechWorm
The Best Linux Distros to Watch Out for in 2017 - Make Tech Easier
Category: Distros - LinuxAndUbuntu - Linux News | Apps Reviews | Linux Tutorials HowTo

Vanill OS

Vanilla OS

Check distro

cat /etc/os-release
cat /etc/issue
cat /etc/lsb-release

Linux Command: Show Linux Version
Commands to check the Linux Version, Release name & Kernel version. | Symantec Connect

Resources

The Linux Documentation Project
Beyond Linux® From Scratch
Linux and Life ~ daily Linux - Ubuntu news, reviews and tutorials
Tyrant's Arch Linux
鳥哥的 Linux 私房菜 -- 鳥哥的 Linux 私房菜 首頁
iTech - 博客园
JupiterBroadcasting/Talks: Public repository of crew talks, slides, and additional resources.

Package Manager

linux-package-managers

TTY

Single User Mode, Reset root password without knowing the previous one. | Kernel-Overload.com
The TTY demystified

Failed Login Timeout

How to unlock linux user after too many failed login attempts - Super User

change unlock_time in /etc/security/faillock.conf

# if you can login
# list locked sessions
faillock --user <user>
# unlock user
faillock --user <user> --reset

Desktop Environment

explains Linux desktop architecture
bootloader, X, Mir, desktop environment, package manager

Linux For Beginners: What's A Desktop Environment?
WTF Desktop Environments: GNOME, KDE, and More Explained
A Guide to Window Managers and Desktops for Unix and Linux
How-to: Picking a desktop environment in Linux

Desktop environment - Wikiwand
Desktop environment - ArchWiki
Category:Desktop environments - ArchWiki
Display manager - ArchWiki
Comparison of X Window System desktop environments - Wikiwand
X Window System - Wikiwand
AIGLX - Wikiwand

The 8 best desktop environments for Linux | CIO
10 Best Linux Desktop Environments And Their Comparison | 2018 Edition

A Memory Comparison of Light Linux Desktops | l3net – a layer 3 networking blog
A Memory Comparison of Light Linux Desktops – Part 2 | l3net – a layer 3 networking blog
A Memory Comparison of Light Linux Desktops – Part 3 | l3net – a layer 3 networking blog

Cinnamon

Fork of GNOME Shell, brings traditional desktop experience with GTK+ 3.

Cinnamon (software) - Wikiwand
Cinnamon - ArchWiki
Projects

Linux Mint is the distro pushing Cinnamon

Budgie

Minimal, modern desktop by modifying GNOME Shell instead of forking.

Budgie Desktop - ArchWiki
Experiences | Solus

About | Solus is the distro pushing Budgie
Solus Git Repositories new link?
3rdParty - Solus
Wait until 2.0 for new package manager and Budgie in C.

In Full Sail | Solus what happened when Ikey left the core team
Package Repo Migration Now Available | Solus

COSMIC

Based on GNOME shell, tiling WM, written in Rust

System76 Blog — Pop!_OS 21.04: A Release of COSMIC Proportions
Pop!_OS 21.04 Full Review - Cosmic is Awesome! - YouTube

pop-os/cosmic: Computer Operating System Main Interface Components

Deepin DE

Minimal, modern desktop written in Qt and Go.

Deepin - Wikiwand
Deepin Desktop Environment - ArchWiki
Original Apps | deepin provides a powerful driving force for computers all over the world!

deepin OS is the distro pushing Deepin DE
Deepin OS - First Distro To Bring Cloud Sync Option - LinuxAndUbuntu

Pantheon

OS X like desktop that is ported to OS X.

Elementary OS - Wikiwand
Pantheon - ArchWiki
Get Involved with elementary OS

elementary OS is the distro pushing Pantheon Desktop

Plasma

Tutorial – Plasma » Linux Magazine

Pop!_OS

Pop-shell, Cosmic
2023-03: Rust-based Cosmic desktop is under development

Pop!_OS by System76
Pop!_OS - Wikiwand

Pop OS Review: Is This Beautiful Linux Distribution Worth Your Time?

Using Pop Shell on other GNOME Desktops - System76 Support
pop-os/shell: Pop!_OS Shell
gnome-shell-extension-pop-shell-bin

New shiny for the COSMIC and Xfce desktops is coming • The Register
pop-os/cosmic-epoch: Next generation Cosmic desktop environment

Zorin

Zorin OS is based on Ubuntu LTS and the desktop is powered by Gnome Shell. In making it OSX-like some features are not that friendly.
Zorin OS is the distro pushing Zorin desktop

Display Manager

Display Manager = Login Manager

Display manager - ArchWiki
Install Display Managers - Manjaro Linux

Upon login the Display Manager allows a user can choose the session (DE) to login to.
The available sessions are in /usr/share/xsessions/.

Some DM use ~/.xinitrc instead of /usr/share/xsessions/.
XDM - ArchWiki

LightDM - ArchWiki

Display Server

Display server - Wikiwand

[ "$DISPLAY" ] || [ "$WAYLAND_DISPLAY" ] || [ "$MIR_SOCKET" ] && echo graphical environment

Mode setting - Wikiwand
Kernel mode setting - ArchWiki
Direct Rendering Manager - Wikiwand

[Linux.conf.au 2013] - The real story behind Wayland and X - YouTube

Xorg - ArchWiki
X.Org Server - Wikiwand X Window System core protocol - Wikiwand

Mir - ArchWiki Mir (software) - Wikiwand
SurfaceFlinger

Splitting up the Frame Clock – GNOME Shell & Mutter

Graphical Civil War | LINUX Unplugged 33 | Jupiter Broadcasting @31:30
Bob's development blog: Why the display server doesn't matter
Why the Display Server DOES matter – Martin's Blog

Initiatives/Wayland/GnomeShell/GnomeShell4 - GNOME Wiki! Gnome Shell 4 is designed around Wayland rather than X11

Chrome OS Switches To "Freon" Graphics Stack To Replace X11 - Phoronix
talks to KMS and GLES directly without X

Wayland

Wayland - ArchWiki
Wayland (protocol) - Wikiwand
Wayland
Wayland misconceptions debunked | Drew DeVault’s Blog
Waypipe Is Successfully Working For This Network-Transparent Wayland Apps/Games Proxy - Phoronix
The real story behind Wayland and X - YouTube
Wayland in 2021

philipl/evdevremapkeys: Daemon to remap events on linux input devices

Wayfire compositor based on wlroots
Writing Wayfire plugins (Part 1)
Writing Wayfire plugins (Part 2)

Sway a tiling Wayland compositor and a drop-in replacement for the i3 window manage
swaywm/wlroots: A modular Wayland compositor library
swaywm/wlr-protocols: Wayland protocols designed for use in wlroots (and other compositors)

Hyprland
hyprwm/Hyprland: Hyprland is a highly customizable dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
Lets Learn HyprLand together! - YouTube

philj56/tofi: Tiny dynamic menu for Wayland ~=rofi

Hibernation

Power management/Suspend and hibernate - ArchWiki
通过休眠在 Linux 和 windows 之间无缝切换

LVFS

LVFS: Home
fwupd - Wikiwand

fwupd - ArchWiki

LVFS makes Linux firmware updates easier | Opensource.com
System76 and the LVFS – Technical Blog of Richard Hughes
Google and fwupd sitting in a tree – Technical Blog of Richard Hughes

Graphic Toolkit

GTK2+
GTK3
Qt

Window Manager

window-manager

Boot

boot

File Systems

file-systems

Linux Kernel

kernel

Microcode

Microcode - ArchWiki
Microcode - Wikiwand

When uninstalling microcode, do a grub update to remove it from grub manual.

Reverse Engineering x86 Processor Microcode | USENIX
34C3 - Everything you want to know about x86 microcode, but might have been afraid to ask - YouTube

man pages

Manpages are written in roff/mandoc/mdoc languages.
There are tools to convert Markdown to manpages:

It's recommended to install manpage to /usr/local/share/man/man[0-9].
It is save to sudo chown -R $(whoami) /usr/local for single person machine.

sudo cp examplecommand.1 /usr/local/share/man/man1/
sudo mandb
man 1 examplecommand

Making Man Pages | Linux.org

Clipboard

ClipboardsWiki
Clipboard Access from the Command Line with xsel/xclip - TerminalMage dot NET
Command Line to Clipboard | Linuxtidbits

The Clipboard Project - Homepage
Slackadays/Clipboard: 😎🏖️🐬 Your new, 𝘳𝘪𝘥𝘰𝘯𝘬𝘶𝘭𝘪𝘤𝘪𝘰𝘶𝘴𝘭𝘺 smart clipboard manager
Meet 'Clipboard': An Open-Source App That Aims to Turn Up Your Productivity
Clipboard: Simple Unified Linux Clipping Tool - YouTube
No Frills Clipboard Manipulation With Xclip and Xsel - YouTube

X11 has not one, not two, but three clipboards. They are called:

10 Best Clipboard Managers for Linux

CopyQ
CristianHenzel/ClipIt: ClipIt clipboard manager for GTK+ tried
scottwernervt/clipmanager: GUI clipboard manager depends on Qt4
Pano - Clipboard Manager - GNOME Shell Extensions new
Keruspe/GPaste: Clipboard management system tried
bugaevc/wl-clipboard: Command-line copy/paste utilities for Wayland
rickyrockrat/parcellite obsoleted by Clipit

EcoPasteHub/EcoPaste: Open source clipboard management tools for Windows, Macos and Linux.
EcoPaste:适用于 Windows 和 MacOS平台的开源的剪切板管理工具 – 零度解说

"Standards"

freedesktop.org
Specifications or here
Desktop Entry Specification
s
Linux Standard Base (LSB) | The Linux Foundation
Linux Standard Base (LSB) | Linux.org
Linux Standard Base - Wikiwand

X org / Desktop | Linux.org

xdg-utils

Filesystem Hierarchy

Filesystem Hierarchy Standard - Wikiwand
Linux Filesystem Hierarchy
Filesystem Hierarchy Standard
FilesystemHierarchyStandard - Debian Wiki
Filesystem Hierarchy Standard | Linux Journal

Base Directory

XDG Base Directory Specification
sindresorhus/xdg-basedir

XDG Base Directory - ArchWiki
b3nj5m1n/xdg-ninja: A shell script which checks your $HOME for unwanted files and directories.
Home Directory Cluttered With Dotfiles? Move Them! - YouTube
Clean Up Your Home Directory Clutter With XDG Ninja - YouTube

Desktop files

linux-desktop#File Association

Desktop Entry Specification
desktop-file-utils
Desktop files: putting your application in the desktop menus

.desktop folders

donadigo/appeditor: Edit application menu

/usr/share/applications
/usr/local/share/applications
~/.local/share/applications

Autotools

Autotools Mythbuster

pkg-config

pkg-config
Guide to pkg-config
pkg config - PKG_CONFIG_PATH environment variable - Ask Ubuntu

pkg-config --variable pc_path pkg-config
pkg-config --libs libnanomsg

.pc files located in /usr/lib/x86_64-linux-gnu/pkgconfig/, e.g.:

# /usr/lib/x86_64-linux-gnu/pkgconfig/libnanomsg.pc
prefix=/usr
exec_prefix=
includedir=/include
libdir=/lib/x86_64-linux-gnu

Name: libnanomsg
Description: High-Performance Scalability Protocols
URL: http://nanomsg.org/
Version: 1.1.5
Requires:
Libs: -L -lnanomsg
Libs.private: -lanl -lrt -lpthread -lnsl
Cflags: -I

Autostart

Desktop Application Autostart Specification

/etc/xdg/autostart/
~/.config/autostart/

File Association

linux-desktop# folders

shared-mime-info-spec
Association between MIME types and applications
Default applications - ArchWiki
Create Your Own File Types in Ubuntu with assoGiate | Ubuntu Genius's Blog
mimeo can find .desktop and change association
march-linux/mimi

Linux: How To Change Your Default Applications In XDG MIME - YouTube
File-Openers and Xdg-utils | Linux.org
Chris's Wiki :: blog/linux/XdgMimeTypeSearching
Chris's Wiki :: blog/linux/XdgOpenWhichBrowser

# edit the config file
mimeo --mimeapps-list
sudo mimeo --update

# list all .desktop
mimeo -d
# show .desktop location
mimeo --finddesk viewnior.desktop
echo $(grep 'MimeType=' $(mimeo --finddesk viewnior.desktop) |  sed -e 's/.*=//' -e 's/;/ /g')

# query mime type
xdg-mime query filetype text/plain
# query default
xdg-mime query default inode/directory
# set default
xdg-mime default sublime_text.desktop text/plain
xdg-mime default nemo.desktop inode/directory

# shows recommended apps
gio mime inode/directory
gio mime inode/directory nemo.desktop

# set default app to all mime type supported
mimeo --prefer viewnior.desktop
xdg-mime default viewnior.desktop $(grep 'MimeType=' $(mimeo --finddesk viewnior.desktop) | sed -e 's/.*=//' -e 's/;/ /g')
mimeo --prefer mpv.desktop
xdg-mime default mpv.desktop $(grep 'MimeType=' $(mimeo --finddesk mpv.desktop) | sed -e 's/.*=//' -e 's/;/ /g')

NOTE: xdg-utils is needed here. It's a tool released by Portland project of Freedesktop.org. Most modern Linux distros have this tool installed by default.

Open folder with

vi ~/.local/share/applications/mimeapps.list

Add this to [Added Associations]

inode/directory=sublime_text.desktop

freedesktop.org.xml

vi /usr/share/mime/packages/freedesktop.org.xml
# after modificatoin
sudo update-mime-database /usr/share/mime

https://askubuntu.com/a/467892/165018

Icon theme

Icon Theme Specification
Icon Naming Specification

GNOME

Icon Naming Specification
GNOME Desktop icons - Wikimedia Commons

/usr/share/themes
/usr/share/icons

dconf

This is the "registry" for GNOME DE. It replaces the XML based gconf with binary database optimized for faster loop ups.

Gconf, Dconf, Gsettings and the relationship between them - Ask Ubuntu

gconf => XML database
dconf => binary database
gsettings = cross-platform config with schema validation

Projects/dconf - GNOME Wiki!
Apps/DconfEditor - GNOME Wiki!
dconf: dconf Reference Manual
dconf - Wikiwand

gsettings list-schemas
gsettings list-recursively
gsettings list-keys org.cinnamon.desktop.screensaver
gsettings set org.cinnamon.desktop.lockdown disable-lock-screen true
gsettings set org.cinnamon.desktop.lockdown disable-lock-screen false
gsettings set org.nemo.desktop use-desktop-grid false
dconf-editor

dconf list /
dconf dump /org/cinnamon/desktop/screensaver/ > screensaver
dconf load < screensaver
dconf write /org/cinnamon/desktop/screensaver/lock-enabled false

gsettings - What is dconf, what is its function, and how do I use it? - Ask Ubuntu
What are the differences between gconf and dconf? - Ask Ubuntu
Gconf, Dconf, Gsettings and the relationship between them - Ask Ubuntu

Font

Fonts - ArchWiki
Fonts are usually stored under /usr/share/fonts/ or per user ~/.fonts/

Fixing Missing Characters and Font Issues | Linux.org
Better Looking fonts For fedora : Fedora
The sad state of font rendering on Linux | Infosec scribbles
The new v40 TrueType interpreter mode

fontmatrix/fontmatrix: Free font collections manager for Linux, Mac and Windows

Debian 8 (jessie) 安裝筆記 中文環境篇 - 石頭閒語 - 樂多日誌

字體及其渲染 | Tyrant's Arch Linux

Adding New Fonts to Your System - Linux Mint Community

I stared into the fontconfig, and the fontconfig stared back at me / fuzzy notepad

Manually Installing Fonts On Linux Is Actually Really Easy - YouTube

# list all fonts
fc-list
# search font name
fc-list "Noto Sans"
fc-match "Noto Sans CJK TC"

fc-cache  # update cache for FontConfig

xinput

xinput list
xinput test <id>/<name>
xinput list-props <id>/<name>
xinput set-prop <id>/<name> <prop id>/<prop name> <value>

Settings are put in ~/.xinitrc or:

Look up with locate xorg.conf.d | grep d$

Use xev to open an window that dumps all input event to console.

X keyboard extension - ArchWiki
Mouse buttons - ArchWiki
EVDEV(4) manual page

Show key code and key symbol: xmodmap -pke

xmodmap

#keymap

xmodmap - ArchWiki
xmodmap man page - General Commands | ManKier

Make Caps Lock Great Again By Remapping It With Xmodmap - YouTube
XKeyCaps graphical front-end to xmodmap

xdotool

emit X input events

xdotool: command-line X11 automation tool | xdotool Commands | Man Pages | ManKier

jordansissel/xdotool: fake keyboard/mouse input, window management, and more

xte

emit X input events

xte - Generates fake input using the XTest extension
Using xte to script your workflow – Mike's Software Blog
linux - How can I simulate pressing { with xte? - Super User

xdo

emit X input events, wimdow management

baskerville/xdo: Small X utility to perform elementary actions on windows
Xdo: Window Manipulation With A Generic Tool - YouTube

sxhkd

#keymap
`

X input events to commands, supports chord

baskerville/sxhkd: Simple X hotkey daemon
sxhkd - ArchWiki

Problem creating shortcuts with super-key (win-key/mod4) · Issue #549 · linuxmint/cinnamon · GitHub DE may capture windows key, change it in Keyboard setting ("Hyper is mapped to Win-keys")

The keysym names are given by the output of xev -event keyboard.

worm/sxhkdrc at main · codic12/worm sample file for Worm WM
bspwm/examples/sxhkdrc at master · baskerville/bspwm · GitHub

; to define chord chain: control + g; {b, g}

Sxhkd: Configuring Window Manager Independent Keybindings - YouTube

add sxhkd.desktop to ~/.local/share/applications/ and add to UI shell's Start Up Applications

xbindkeys

#keymap

X input events to commands

Xbindkeys - ArchWiki
XBindKeys
[Howto] Remapping buttons with xbindkeys and xte – /home/liquidat

xbindkeys_show to show bindings in ~/.xbindkeysrc
xbindkeys --poll-rc after updating ~/.xbindkeysrc

Mapping Your Mouse Buttons in Linux • thecrumb
Bing keys to program, with xte of xautomation it is another (better and more versatile) way of binding input keys than editing xorg.conf.d/.

Gesture recognition

jersou/mouse-actions: mouse-actions execute some command from mouse events such as clicks/wheel on the side/corners of the screen, or drawing shapes. It's a mix between Easystroke and Compiz edge commands.

JoseExposito/touche: The desktop application to configure Touchégg
JoseExposito/touchegg: Linux multi-touch gesture recognizer

Raffaele / gestures · GitLab 😴inactive
Gestures: a GTK app for Linux touchpad gestures - YouTube

thjaeger/easystroke: X11 gesture recognition application 😴inactive

Xorg stuffs

Xorg - ArchWiki
X Window System - Wikiwand
The History of X11 - YouTube
XFree86 -> X Org

xprop - man page - ManKier query window info

xorg.conf

Extended Window Manager Hints
Adding Glue To a Desktop Environment

XCB

XCB - Wikiwand
xcb

BurntSushi/xpybutil: An incomplete xcb-util port plus some extras

UI stack

Xplain
The Linux Graphics Stack | Clean Rinse
Wayland

X Window System - Wikiwand
Display server - Wikiwand
Windowing system - Wikiwand

[Linux.conf.au 2013] - The real story behind Wayland and X - YouTube

File:Free and open-source-software display servers and UI toolkits.svg

xhost

xhost +si:localuser:$USER
xhost -
# never use `xhost +`

Display Setting

Most DE includes UI for resolution and multihead settings

Multihead - ArchWiki
X and ModeLines
X/Troubleshooting/Resolution - Ubuntu Wiki

Extended Display Identification Data - Wikiwand
Adventures in Resolving Missing EDID Monitor Data – Delightly Linux

xrandr

RandR - Wikiwand
xrandr - ArchWiki
xrandr command man page - xorg-x11-server-utils | ManKier

ARandR: Another XRandR GUI

Creating VIRTUAL MONITORS With Xrandr on Linux - YouTube
How To Use Multiple Monitors On Linux (With Xrandr) - YouTube

XStrikeForce/HowToRandR12 - Debian Wiki
display - Increment Brightness by value using xrandr - Ask Ubuntu

X Rotate and Resize is a CLI tools for configuring display settings.

xrandr --auto

# reset display
xrandr -s 0

# set resolution
xrandr -s 1920x1080

xrandr --output {PORT} --brightness {BRIGHTNESS}
xrandr --output HDMI2 --scale 1.2 # zoom out

#  verified the displau can support a specific res/hz
xrandr -q
xrandr --output DisplayPort-0 --mode 1920x1080 --rate 60.00

ddcutil

ddcutil Documentation
rockowitz/ddcutil: Control monitor settings using DDC/CI and USB

ddcutil capabilities # check driver cap
sudo modprobe i2c-dev
sudo usermod -G i2c -a $USER

ddcutil detect

# set brightness
ddcutil setvcp --display 1 10 50
ddcutil setvcp --display 1 10 100

# set input source
ddcutil setvcp --display 1 60 0f # DP1
ddcutil setvcp --display 1 60 10 # DP2
ddcutil setvcp --display 1 60 11 # HDMI1
ddcutil setvcp --display 1 60 12 # HDMI2

Okxa/qddcswitch: A Simple Qt frontend for switching display inputs with ddcutil. - qddcswitch - Codeberg.org

D-Bus

D-Bus - Wikiwand
dbus

busctl(1) — Arch manual pages

The new sd-bus API of systemd
godbus/dbus: Native Go bindings for D-Bus
sidorares/dbus-native: D-bus protocol client and server for node.js written in native javascript

Notification

jfhbrook/goodify: my personal fork of batify

Usage:
  notify-send [OPTION?] <SUMMARY> [BODY] - create a notification

Help Options:
  -?, --help                        Show help options

Application Options:
  -u, --urgency=LEVEL               Specifies the urgency level (low, normal, critical).
  -t, --expire-time=TIME            Specifies the timeout in milliseconds at which to expire the notification.
  -a, --app-name=APP_NAME           Specifies the app name for the icon
  -i, --icon=ICON[,ICON...]         Specifies an icon filename or stock icon to display.
  -c, --category=TYPE[,TYPE...]     Specifies the notification category.
  -h, --hint=TYPE:NAME:VALUE        Specifies basic extra data to pass. Valid types are int, double, string and byte.
  -v, --version                     Version of the package.

Wayland

PolicyKit

polkit - ArchWiki

PolKit Is Broken On Window Managers: How To Fix It!! - YouTube

GNOME

Projects-GObjectIntrospection - GNOME Wiki!
Projects-Vala - GNOME Wiki!

Develop for the GNOME Platform
Tutorials, code samples and platform demos in Python

woGue
Making Fancy GNOME Apps with NodeJS, MongoDB and WebKit! | woGue
Scaffolding a modern GNOME 3.10 Gtk Gjs-Python App! | woGue

Apps/Tweaks - GNOME Wiki!

Gjs

Projects/Gjs - GNOME Wiki!
Tutorials, code samples and platform demos in JavaScript

HowTo run commands from Gjs | woGue

石頭閒語:JavaScript 分類文章簡文 - 樂多日誌
JavaScript 與 Desktop - WebKit - 石頭閒語 - 樂多日誌
JavaScript 與 Desktop - Desktop and WebKit - 石頭閒語 - 樂多日誌
JavaScript 與 Desktop - DBus - 石頭閒語 - 樂多日誌

Wine

WineHQ - Run Windows applications on Linux, BSD, Solaris and Mac OS X
Wine User's Guide - WineHQ Wiki
Winelib User's Guide - WineHQ Wiki
Winetricks/winetricks: Winetricks is an easy way to work around problems in Wine

How Wine works 101 · Reboot and Shine

轉子男: [Ubuntu] 使用 Wine 安裝 Office 2010 於 Ubuntu 12.04
How to Install and Use Wine to Run Windows Applications on Linux | Linux.com | The source for Linux information

winepak - Flatpak-ing Microsoft Windows applications with Wine
winepak

Welcome - Bottles manages Wine environments (wineprefixes)
Run Windows Software On Linux With Bottles - OSTechNix
Why Bottles? - Bottles

scottyhardy/docker-wine: Docker image that includes Wine and Winetricks for running Windows applications on Linux and macOS

Bottles

#perfmatters

Linux Performance
How to Benchmark Your Linux System: 3 Open-Source Benchmarking Tools
Phoronix Test Suite - Linux Testing & Benchmarking Platform, Automated Testing, Open-Source Benchmarking source
Phoronix Test Suite Phoromatic - Benchmark Viewer - LinuxBenchmarking.com

Perf Wiki
perf stat -r 1000 <APP> <ARGS>

Hotspot brings GUI to Linux Perf data | InfoWorld
KDAB/hotspot: The Linux perf GUI for performance analysis.

如何理解 Linux 中的 load averages? - 聊聊架构