- https://en.wikipedia.org/wiki/Desktop_metaphor - an interface metaphor which is a set of unifying concepts used by graphical user interfaces to help users interact more easily with the computer. The desktop metaphor treats the computer monitor as if it is the user's desktop, upon which objects such as documents and folders of documents can be placed. A document can be opened into a window, which represents a paper copy of the document placed on the desktop. Small applications called desk accessories are also available, such as a desk calculator or notepad, etc. The desktop metaphor itself has been extended and stretched with various implementations of desktop environments, since access to features and usability of the computer are usually more important than maintaining the 'purity' of the metaphor. Hence we find trash cans on the desktop, as well as disks and network volumes (which can be thought of as filing cabinets—not something normally found on a desktop). Other features such as menu bars, task bars, or docks have no counterpart on a real-world desktop.
- https://en.wikipedia.org/wiki/Windowing_system - a type of graphical user interface (GUI) which implements the WIMP (windows, icons, menus, pointer) paradigm for a user interface.
- The Linux Graphics Stack - June 16, 2012
- https://github.com/XDesk/xtoolwait - Allows to start X applications serially
- https://linux.die.net/man/1/gears - draw interlocking gears, for xscreensaver.
- xprop - property displayer for X
xprop -root # list root (wm) window properties xprop -root -f _NET_DESKTOP_GEOMETRY 32cc -set _NET_DESKTOP_GEOMETRY "$GEOM_X,$GEOM_Y" # set _NET_DESKTOP_GEOMETRY. only applies if wm supported.
- xev - print contents of X events
- 'keysym' gives the name to bind to
- xwit is an X window interface tool. By default when used with no arguments in an xterm it de-iconifies and raises the window. You can specify a different function to do, such as iconifying the window, and apply it to several windows whose name begins with one of the given strings, or a particular window id given, or the window id found in the environment variable WINDOWID (which is set by xterm for the program it runs), or the window under the mouse cursor.
- xdotool - lets you simulate keyboard input and mouse activity, move and resize windows, etc. It does this using X11's XTEST extension and other Xlib functions. Additionally, you can search for windows and move, resize, hide, and modify window properties like the title. If your window manager supports it, you can use xdotool to switch desktops, move windows between desktops, and change the number of desktops.
- https://github.com/ndunks/xdotoolweb - xdotool web based interface to remoting your manchine/raspberry from your phone
- https://github.com/baskerville/xdo - Small X utility to perform elementary actions on windows
- wmctrl is a UNIX/Linux command line tool to interact with an EWMH/NetWM compatible X Window Manager.
- chwb - change window's border
- chwso - change window's stacking order
- ignw - ignore/unignore window
- killw - kill windows
- lsw - list windows
- mapw - map/unmap windows
- pfw - print focused window
- wattr - show window's attributes
- wmp - move the mouse pointer
- wmv - move a window
- wrs - resize a window
- wtf - focus a window
- wtp - teleport a window
- https://github.com/hash-bang/XThrow - Simple script to move and resize X windows around the screen within a Linux window manager
- xmag - allows you to magnify portions of an X screen. If no explicit region is specified, a square with the pointer in the upper left corner is displayed indicating the area to be enlarged. The area can be dragged out to the desired size by pressing Button 2. Once a region has been selected, a window is popped up showing a blown up version of the region in which each pixel in the source image is represented by a small square of the same color. Pressing Button1 in the enlargement window shows the position and RGB value of the pixel under the pointer until the button is released. Typing Q or ^C in the enlargement window exits the program.
- xinput - utility to configure and test X input devices
- XMacro - package contains two simple, C++ programs (xmacrorec and xmacroplay) for recording and replaying keyboard and mouse events on an X server. This functionality is achieved through the XTest extension.
- https://github.com/troglobit/xplugd -a UNIX daemon that executes a script on X input and RandR changes, i.e., when a, keyboard, mouse. or a monitor is plugged in or unplugged. Useful in combination with lightweight setups, e.g. when running an X window manager like Awesome, Fluxbox, or similar to detect when docking or undocking a laptop.
- devilspie - dead
- KPie is a simple window manipulation tool, modeled after devil's pie, with a Lua-based configuration file.
- telak is a program which displays pictures in root window. It can display content of local file, or download image via http. Telak can be configured to refetch picture every n seconds, so it can be used to display image from webcam.
- https://github.com/BarkyTheDog/catclock - a version of the X Window System xclock program, which has been enhanced with a "cat mode".
- Xearth sets the X root window to an image of the Earth, as seen from your favorite vantage point in space, correctly shaded for the current position of the Sun. By default, xearth updates the displayed image every five minutes. The time between updates can be changed using either X resource or a command-line option. Xearth can also be configured to either create and render into its own top-level X window or render directly into PPM or GIF files; see the man page for details.
- Xplanet was inspired by Xearth, which renders an image of the earth into the X root window. All of the major planets and most satellites can be drawn, similar to the Solar System Simulator. A number of different map projections are also supported, including azimuthal, Lambert, Mercator, Mollweide, orthographic, and rectangular.
- https://github.com/schischi/xcwd - a simple tool which print the current working directory of the currently focused window.
xterm -e "cd `xcwd` && /bin/zsh"
- https://github.com/cbdevnet/xecho - Render text messages to the screen with minimal dependencies
- Xantfarm simulates an ant hill and displays it in the root window.
- https://github.com/jcrd/wm-launch - provides a shared library for use with LD_PRELOAD and a command-line tool to set IDs on newly created X11 windows. It is intended to be used by a window manager to uniquely identify clients it launches.
- https://github.com/SeungheonOh/Blanc - a simple X11 xlib base program that generates a blank window. You can customize the its color, name, and its transperancy as your desire!
- https://github.com/andrewchambers/godothecorrectthing - A script to do actions based on the current window and selected text. With this you can: Select any compiler error text in any terminal and open the correct file and line in your text editor. Click on the output of ls in any terminal and open the corresponding file with the correct program. Open any url from any text on your OS and open it in your browser.
- http://www.xbill.org/ - an arcade style game for the X Window System. It was very popular among Linux gamers at the end of the 1990s, beating out Quake, though not Quake II, as Linux Journal reader's favourite Linux game in 1999.
- blast - Blast blows holes through windows
- xhangglider - fly hanggliders and paragliders on your X root window.
- xdesktopwaves - a cellular automata setting the background of your X Windows desktop under water. Windows and mouse are like ships on the sea. Each movement of these ends up in moving water waves. You can even have rain and/or storm stirring up the water.
- "dtksh"("user) manual page - shell command language interpreter with access to many X, Xt, Xm and XCDE functions
- https://en.wikipedia.org/wiki/Pointer_(user_interface) - or mouse cursor (as part of a personal computer WIMP style of interaction) is a symbol or graphical image on the computer monitor or other display device that echoes movements of the pointing device, commonly a mouse, touchpad, or stylus pen. It signals the point where actions of the user take place. It can be used in text-based or graphical user interfaces to select and move other elements. It is distinct from the cursor, which responds to keyboard input. The cursor may also be repositioned using the pointer.
- https://github.com/jcs/xbanish - banish the mouse cursor when typing, show it again when the mouse moves
- keynav - a piece of an on-going experiment to make pointer-driven interfaces easier and faster for users to operate. It lets you move the pointer quickly to most points on the screen with only a few key strokes. Note that I said pointer, not mouse. The mouse simply drives the pointer. We can drive the pointer with other devices too. keynav turns your keyboard into an fast pointer mover.
- movemouse - lets you 'memorize' several positions of the mouse pointer on however many screens you may have and then jump back to any of those positions using keyboard shortcuts. It will also optionally simulate a left mouse button 'click' after the move to raise the focus of the moved to location.
- https://github.com/unclechu/place-cursor-at - Utility for X11 that helps to move cursor using only keyboard written in Haskell.
- GPointingDeviceSettings - a GUI tool for setting pointing device such as TrackPoint or Touchpad. Each UI can be written as dynamic loadable module, so a third party can add its own UI.
- xmessage − display a message or query in a window (X-based /bin/echo)
- Gxmessage - an xmessage clone for GTK based desktops. Gxmessage pops up a dialog window, displays a given message or question, then waits for the user's response. That response is returned as the program's exit code. Because gxmessage is a drop-in alternative to xmessage, gxmessage accepts any option xmessage would, and returns the same exit codes.
- Dialog - a program that will let you to present a variety of questions or display messages using dialog boxes from a shell script. These types of dialog boxes are implemented (though not all are necessarily compiled into dialog): calendar, checklist, dselect, editbox, form, fselect, gauge, infobox, inputbox, inputmenu, menu, mixedform, mixedgauge, msgbox (message), passwordbox, passwordform, pause, progressbox, radiolist, tailbox, tailboxbg, textbox, timebox, and yesno (yes/no).
- YAD - yet another dialog, is a tool for create graphical dialogs from shell scripts
- whiptail - display dialog boxes from shell scripts
- https://sourceforge.net/projects/tinyfiledialogs - tiny file dialogs (cross-platform C C++). native popup inputbox password color WIN OSX GTK QT CONSOLE C# LUA SSH.
- https://github.com/ujjwal96/xwinwrap - fork of xwinwrap. Xwinwrap allows you to stick most of the apps to your desktop background.
- https://github.com/xyproto/wallutils - Utilities for handling monitors, resolutions, wallpapers and timed wallpapers
- https://github.com/cheesecakeufo/komorebi - A beautiful and customizable wallpapers manager for Linux
- https://github.com/nwg-piotr/azote - Wallpaper manager for Sway, i3 and some other WMs.
- https://github.com/cheesecakeufo/komorebi - an awesome animated wallpapers manager for all Linux platforms. It provides fully customizeable image, video, and web page wallpapers that can be tweaked at any time!
- https://github.com/glouw/paperview - A high performance animated desktop background setter for X11 that won't set your CPU on fire, drain your laptop battery, or lower ya vidya game FPS.
See also Typography
- https://en.wikipedia.org/wiki/X_logical_font_description - XLFD
- https://linux.die.net/man/1/xfontsel - point and click selection of X11 font names
Some fonts like terminus-font are installed in /usr/share/fonts/local, which is not added to the font path by default. By adding the following lines to ~/.xinitrc, the fonts can be used in X11:
xset +fp /usr/share/fonts/local xset fp rehash
/usr/share/fonts/misc/fonts.alias # shortnames for fonts
xmodmap -pke | column -t # display keymaps in columns
Each keysym column in the table corresponds to a particular combination of modifier keys:
xmodmap -e "pointer = 3 2 1" # set mouse buttons for left hand xmodmap -e "pointer = 1 2 3" # set mouse buttons for right hand
- xkeycaps - a graphical front-end to xmodmap. It opens a window that looks like a keyboard; moving the mouse over a key shows what KeySyms and Modifier bits that key generates. Clicking on a key simulates KeyPress/KeyRelease events on the window of your choice. It is possible to change the KeySyms and Modifiers generated by a key through a mouse-based interface. This program can also write an input file for xmodmap to recreate your changes in future sessions.
- https://github.com/wertarbyte/triggerhappy - a hotkey daemon developed with small and embedded systems in mind, e.g. linux based routers. It attaches to the input device files and interprets the event data received and executes scripts configured in its configuration.
- https://github.com/alols/xcape - allows you to use a modifier key as another key when pressed and released on its own. Note that it is slightly slower than pressing the original key, because the pressed event does not occur until the key is released. The default behaviour is to generate the Escape key when Left Control is pressed and released on its own. (If you don't understand why anybody would want this, I'm guessing that Vim is not your favourite text editor ;)
- https://github.com/hanschen/ksuperkey - allows you to open the application launcher in desktop environments such as KDE Plasma and Xfce using the Super key (also known as "Meta" or "the Windows key"). If you hold down the Super key it will still act as a modifier key, allowing you to use it for other keyboard shortcuts.ksuperkey is a small desktop-agnostic application that runs in the background as a daemon. It was forked from xcape by Albin Olsson
- http://xautomation.sourceforge.net - XAUT (the C library) and the corresponding Python module is a way to programatically simulate keyboard and mouse use, as well as manipulate windows. The inspiration for this came from AutoIt as well as AutoHotkey.
- https://github.com/PyUserInput/PyUserInput - A module for cross-platform control of the mouse and keyboard in python that is simple to install and use. 
- https://gareus.org/oss/genxkey - a small tool that fakes user keyboard events. You can send any key to the currently focused X11 application.
- https://superuser.com/questions/883782/how-do-i-properly-map-a-keyboard-key-to-a-mouse-button - or use btnx. even better: PyUserInput, once you get it installed.
- https://github.com/cdobrich/btnx - a daemon that enables rerouting of mouse button events through uinput as keyboard and other mouse button combinations.
- http://imwheel.sourceforge.net/imwheel.1.html - a universal mouse wheel and mouse stick translator for the X Windows System. Using either a special version of gpm and it's /dev/gpmwheel FIFO, or the support for a ZAxis on the mouse built into some servers, such as XFree86. Utilizing the input from gpm or X Windows, imwheel translates mouse wheel and mouse stick actions into keyboard events using the XTest extension to X. Use xdpyinfo for information on the supported extensions in your X server.
- LinEAK - a utility designed to enable the use and configuration of those special keys on Internet, Easy Access and Multimedia keyboards in Linux. It consists of three programs: lineakd: this is the daemon that listens for incoming key and mouse events. lineakconfig: this is the GTK+ GUI, which provides easier configuration. Klineakconfig: this is the KDE GUI which allows you to define keyboards, and configuration mappings for easier configuration. If your keyboard is not directly supported by lineakd, klineakconfig provides an easy to use graphic interface to both getting your keyboard working, and submitting your keyboard for inclusion into lineakd.
- https://github.com/JoseExposito/touchegg - Linux multitouch gesture recognizer
- https://github.com/ElectricPrism/gnome-hud-menu - Provides a text based keyboard navigatable HUD menu for certain GTK apps which runs menubar commands through dmenu.
- https://github.com/hardpixel/gnome-hud - Unity like HUD menu for the GNOME Desktop Environment using rofi menu.
- https://launchpad.net/onboard - An onscreen keyboard useful for tablet PC users and for mobility impaired users.
- https://launchpad.net/onboardosk - the C++ port of Onboard, meant to be embedded into GNOME Shell under X and Wayland. The original Python-based project can be found at https://launchpad.net/onboard. Wayland support is still incomplete!!
- xvkbd - a virtual (graphical) keyboard program for X Window System which provides a facility to enter characters onto other clients (software) by clicking on a keyboard displayed on the screen. This may be used for systems without a hardware keyboard such as kiosk terminals or handheld devices. This program also has a facility to send characters specified as the command line option to another client.
- GOK - Gnome Onscreen Keyboard
- Florence - an open-source on-screen virtual keyboard developed in C and GTK+ for X11 desktop system. As an alternative to a hardware keyboard, Florence allows users to enter characters using a pointing device such as a mouse, a trackball or a touchscreen. It offers four different input method: mouse-based input, touch-screen based input, timer-based auto click, and rambling-based input. Florence supports international keyboard layouts with non-English characters, auto-hide mode, and custom keyboard layout. The default keyboard can be extended to include function keypad, number keypad, arrow keypad, and action keypad. Florence can be integrated with GNOME Display Manager (GDM) to show a virtual keyboard during GNOME desktop login.
- Fcitx - an input method framework with extension support. Currently it supports Linux and Unix systems like freebsd. It has three built-in Input Method Engine, Pinyin, QuWei and Table-based input methods.Fcitx tries to provide a native feeling under all desktop as well as a light weight core. You can easily customize it to fit your requirements.
- https://github.com/andresth/emojiselector - provides an easy way to input emoji into any text entry field.This progam is basically just a popup dialog where you can select an emoji. It then will instert the emoji by simulation keystrokes.
- https://sourceforge.net/projects/xxkb/ - A keyboard layout indicator and switcher.
Drag and drop
- https://github.com/mwh/dragon - simple drag-and-drop source/sink for X. Many programs, particularly web applications, expect files to be draggedinto them now. If you don't habitually use a file manager that is a problem. dragon is a lightweight drag-and-drop source for X where you can run "dragon file.tar.gz" to get a window with just that file in it, ready to be dragged where you need it.
xsetroot -cursor_name left_ptr
- https://github.com/gvalkov/xrectsel - A rectangle selection tool for X11
- https://www.uninformativ.de/git/xpointerbarrier - Create X11 pointer barriers around your working area
Backlight / brightness
Section "Device" Identifier "Card0" Driver "intel" Option "Backlight" "intel_backlight" EndSection
- ddcutil - Query and change Linux monitor settings using DDC/CI and USB
- xgamma(1) - Alter a monitor's gamma correction through the X server
- xdimmer is a lightweight X11 utility to dim the screen backlight when idle, then brighten it back up when mouse or keyboard activity is detected. This power-saving behavior is common on other operating systems and in bloated X11 frameworks like GNOME.
- Light - a program to control backlight controllers under GNU/Linux, it is the successor of lightscript, which was a bash script with the same purpose, and tries to maintain the same functionality.
- https://github.com/noedigcode/GammaImpala - Change display gamma with one click
- https://github.com/Justinzobel/BrightBoi - A simple bash / zenity / xrandr brightness adjuster
- f.lux - makes the color of your computer's display adapt to the time of day, warm at night and like sunlight during the day. It's even possible that you're staying up too late because of your computer. You could use f.lux because it makes you sleep better, or you could just use it just because it makes your computer look better.
- Redshift - adjusts the color temperature of your screen according to your surroundings. This may help your eyes hurt less if you are working in front of the screen at night. This program is inspired by f.lux (please see this post for the reason why I started this project).
- RedshiftGUI - a fork of the Redshift project by Jon Lund Steffensen. It was something I made because I wanted a GUI version of the program
- https://github.com/maandree/blueshift - An extensible and highly configurable alternative to redshift
- https://gitlab.com/chinstrap/gammastep - Adjust the color temperature of your screen according to your surroundings. This may help your eyes hurt less if you are working in front of the screen at night.
- https://github.com/jumper149/blugon - a simple and fast Blue Light Filter, that is highly configurable and provides a command line interface. The program can be run just once or as a daemon (manually or via systemd). There are several different backends available. blugon calculates the screen color from your local time and configuration.
Add the following to a file in /etc/X11/xorg.conf.d/ in the Monitor section:
Option "DPMS" "true"
Add the following to the ServerLayout section, change the times (in minutes) as necessary:
Option "StandbyTime" "10" Option "SuspendTime" "20" Option "OffTime" "30"
Or to change on the fly:
xset s off # Disable screen saver blanking xset s 3600 3600 # Change blank time to 1 hour xset -dpms # Turn off DPMS xset s off -dpms # Disable DPMS and prevent screen from blanking xset dpms force off # Turn off screen immediately xset dpms force standby # Standby screen xset dpms force suspend # Suspend screen
- https://wiki.archlinux.org/index.php/XScreenSaver#DPMS_and_blanking_settings - XScreenSaver manages screen blanking and display energy saving (DPMS) independently of X itself and overrides it.
- https://github.com/lleonini/lightsOn - Bash script that prevents the screensaver and display power management (DPMS) to be activated when you are watching Flash(and HTML5) Videos fullscreen on Firefox, Chromium, Google Chrome. Can detect mplayer, minitube, and VLC when they are fullscreen too. Also, screensaver can be prevented when certain specified programs are running. This script can be used to control X11 Screen Saver Extension and DPMS settings, read the source. Optionally can delay the screensaver when specific outputs are connected.
- https://github.com/manexim/insomnia - Prevent the display from being turned off or the device from going into sleep mode
- dapper - a simple lightweight desktop application auto-starter. It will read .desktop files in the autostart directories, all according to the FreeDesktop autostart specifications. You can define which desktop to start applications for (e.g. GNOME, XFCE, etc) in configuration file (~/.config/dapper.conf) or from command line. Note that autostarting desktop application is probably already taken care of if you do use a desktop environment/session manager.
- Inter-Client Communication Conventions Manual - Version 2.0, Xorg
- http://en.wikipedia.org/wiki/Inter-Client_Communication_Conventions_Manual - ICCCM or I39L short for "I", 39 letters and "L") is a standard for interoperability between X Window System clients of the same X server. It is primarily used for communication between normal clients and the window manager. X deliberately specifies "mechanism, not policy". As such, an additional specification beyond the X protocol itself was needed for client interoperation. The ICCCM specifies cut and paste buffers, window manager interaction, session management, how to manipulate shared resources and how to manage device colours. These low-level functions are generally implemented within widget toolkits or desktop environments, meaning that application programmers rarely work directly with the ICCCM itself but instead use the higher-level toolkit functions that implement it.
- Extended Window Manager Hints - spec latest
- http://en.wikipedia.org/wiki/Extended_Window_Manager_Hints - aka NetWM or Net WM, is an X Window System standard for window managers. It defines various interactions between window managers, utilities, and applications, all part of an entire desktop environment. It builds on the functionality of the Inter-Client Communication Conventions Manual (ICCCM).
- ewmhstatus - Outputs the current EWMH desktop name and window title
"The main caveats are that in Xinerama/XRandR mode, you'll have only one root window. And the root window is where you must store the NET_WM X properties… So you cannot handle screens in a independant way like awesome does. That's really a shame. ... So far, I think EWMH is nice but is really too narrow-minded for software and people who want to think window management in a different way."
- https://en.wikipedia.org/wiki/VDPAU - hardware processing of video
- https://github.com/feklee/vncdesk - originally developed for scaling up applications on high DPI screens. Applications run in VNC desktops.
- https://github.com/bk138/gromit-mpx - an on-screen annotation tool that works with any Unix desktop environment under X11 as well as Wayland.Its main use is for making presentations of some application. Normally, you would have to move the mouse pointer around the point of interest until hopefully everybody noticed it. With Gromit-MPX, you can draw everywhere onto the screen, highlighting some button or area.
- https://github.com/federico-terzi/espanso - detects when you type a specific keyword and replaces it with something else. This is useful in many ways: Save a lot of typing, expanding common sentences. Create system-wide code snippets. Execute custom scripts. Use emojis like a pro.
- XAUT - C library and the corresponding Python module, a way to programatically simulate keyboard and mouse use, as well as manipulate windows. The inspiration for this came from AutoIt as well as AutoHotkey.
- xlax - accepts keyboard input from the user and sends it to multiple X11 windows (usually xterms or other terminal windows). It's an ideal tool for system adminstrators who have to do the same thing on multiple machines, or in multiple directories. It allows the virtual connections to windows to be turned on and off, so that only a subset of current windows are in use (this is shown in the diagram above, where the third and fifth windows in the list are not selected). The user can also assign a different text string to each window which will be sent by clicking on the "Send String" button. In a typical usage, a user might need to check a few things and run a number of commands on five different machines. After setting up all the windows to work with xlax (see below), and with send strings set to hostnames, the user will type "ssh " and then click "Send String", and then type return, and the user will simultaneously log into those five different machines. They can then type the commands once and see them run on all machines at the same time.
- https://github.com/ReimuNotMoe/ydotool - Generic Linux command-line automation tool (no X!)
- https://wiki.archlinux.org/index.php/Display_Manager - X Display Manager is used to start a session from a local system or from another computer. The request and the start of the session is handled by the XDMCP, which stands for "X Display Manager Control Protocol" and is a network protocol. It provides a way of running the X-Terminal to run on your PC (or MAC) and it uses the X Server to provide a client/server interface between display hardware (the mouse, keyboard, and video displays) and the desktop environment while also providing both the windowing infrastructure and a standardized application interface (quoted from XFree86 Project home page)
- tldp.org: Linux XDMCP HOWTO
X Window System is the display and networking protocol developed by MIT. The X is built with network in mind with the capability to run a (graphical) session on a remote computer. In it, an X Display Manager is used to start a session from a local system or from another computer. The request and the start of the session is handled by the XDMCP, which stands for "X Display Manager Control Protocol" and is a network protocol. It provides a way of running the X-Terminal to run on your PC (or MAC) and it uses the X Server to provide a client/server interface between display hardware (the mouse, keyboard, and video displays) and the desktop environment while also providing both the windowing infrastructure and a standardized application interface (quoted from XFree86 Project home page). The X-Terminal can be displayed with an individual window or multiple windows, based on your X window system's software capabilities and setup.
- https://wiki.gentoo.org/wiki/X_without_Display_Manager - tying a wm to a tty, etc.
- Healing X Windows Login - James F. Carter <email@example.com>, 2009
- https://github.com/bbidulock/xdm - works with systemd
- https://github.com/bbidulock/gchooser - An XDM chooser written in gtk2-perl
exit - Return to the command line halt - Shutdown the system reboot - Reboot the system console - Launch the terminal
cd /usr/share/slim/themes/ slim -p [name of theme] # preview theme (needs to be killed from a non-X tty!)
- https://github.com/Obsidian-StudiosInc/entrance - General purpose Display Manager built on the Enlightenment Foundation Libraries (EFL)
- SDDM - a modern display manager for X11 and Wayland aiming to be fast, simple and beautiful. It uses modern technologies like QtQuick, which in turn gives the designer the ability to create smooth, animated user interfaces. Used by Plasma 5.
- https://wiki.archlinux.org/index.php/Console_TDM - an extension for xorg-xinit written in pure bash. It is inspired by CDM, which aimed to be a replacement of display managers such as GDM.
- https://github.com/spanezz/nodm - a minimal display manager that simply logs in as a given user and starts an X session, without asking for username or password.On a normal computer, using nodm is a big security issue because it would give anyone access to the computer. However, there are cases where automatic login is needed: for example in an embedded system such as a mobile phone, or in a kiosk setup, or in a control panel for industrial machinery. For those cases, nodm is simple to setup, lightweight, and it should do exactly the right thing.
- xsm - ugly! not in latest X release. "A session is a group of applications, each of which has a particular state. xsm allows you to create arbitrary sessions - for example, you might have a "light" session, a "development" session, or an "xterminal" session. Each session can have its own set of applications. Within a session, you can perform a "checkpoint" to save application state, or a "shutdown" to save state and exit the session. When you log back in to the system, you can load a specific session, and you can delete sessions you no longer want to keep. "Some session managers simply allow you to manually specify a list of applications to be started in a session. xsm is more powerful because it lets you run applications and have them automatically become part of the session. On a simple level, xsm is useful because it gives you this ability to easily define which applications are in a session. The true power of xsm, however, can be taken advantage of when more and more applications learn to save and restore their state."
- smproxy - allows X applications that do not support X11R6 session management to participate in an X11R6 session.
- dtsession - the CDE Session Manager, provides X11R6 XSMP and (by proxy) ICCCM 1.1 compliant session management functionality during a user session, which is the time from login to logout. It launches a window manager and allows for saving a session, restoring a session, locking a session, launching screen savers and allocating colors for desktop compatible clients.
- https://github.com/bbidulock/xde-session - X Desktop Environment (XDE) Session Utilities
- openbox-session(1) - Linux man page - Runs an Openbox session without any session manager.
- https://launchpad.net/oblogout - a expandable, configurable, and theme-able logout script designed to be used in a Openbox desktop environment.
- http://linux.die.net/man/1/xfce4-session - hijacks shit
- https://github.com/lxde/lxsession - comes with settings. sheesh.
- Ponyhof: Session-Management on Linux
- https://dvdhrm.wordpress.com/2013/08/24/session-management-on-linux/ - systemd-logind
- selectwm - a small application (using GTK+) which lets you select your window manager. It looks for a file named .selectwmrc in the user's directory which contains a list of window managers. When you start X it should show a list which lets you choose your window manager (by double clicking on it with the mouse or with the arrow keys and the return or space key)
- sessiond - a standalone X session manager that reports the idle status of a graphical session to systemd-logind. It can be used alongside a window manager or desktop environment that does not provide its own session management. Featuring; automatic screen locking on session idle and before sleeping, automatic backlight dimming on session idle, systemd targets activated by systemd-logind’s lock, unlock, sleep, and shutdown signals, hooks triggered by inactivity or signals, a DBus service, (optional) management of DPMS settings
See also Wayland
- https://github.com/fennerm/flashfocus - Simple focus animations for tiling window managers.
- Compton - "I was frustrated by the low amount of standalone lightweight compositors. Compton was forked from Dana Jansens' fork of xcompmgr and refactored. I fixed whatever bug I found, and added features I wanted. Things seem stable, but don't quote me on it. I will most likely be actively working on this until I get the features I want. This is also a learning experience for me. That is, I'm partially doing this out of a desire to learn Xlib."
- https://github.com/yshui/picom - A lightweight compositor for X11 (previously a compton fork)
- https://github.com/ValveSoftware/steamos-compositor - SteamOS session compositing window manager
- https://github.com/Plagman/gamescope - the micro-compositor formerly known as steamcompmgr
See also UI
- https://github.com/derat/xsettingsd - a daemon that implements the XSETTINGS specification. It is intended to be small, fast, and minimally dependent on other libraries. It can serve as an alternative to gnome-settings-daemon for users who are not using the GNOME desktop environment but who still run GTK+ applications and want to configure things such as themes, font antialiasing/hinting, and UI sound effects.
- https://github.com/themix-project/oomox - Graphical application for generating different color variations of a Arc, Materia and Oomox themes (GTK2, GTK3 and others), Archdroid, Gnome-Colors, Numix, Papirus, Suru++ icons, and terminal palette.
- https://github.com/sdushantha/svart - Change between dark/light mode depending on the ambient light intensity
usually fairly minimal
- https://github.com/shdown/luastatus - universal status bar content generator
- Dzen - a general purpose messaging, notification and menuing program for X11. It was designed to be fast, tiny and scriptable in any language.
- https://github.com/LemonBoy/bar - bar-aint-recursive. A featherweight, lemon-scented, bar based on xcb.
- https://github.com/Snowlabs/bartender - Bar generator for lemonbar
- some_sorta_bar - A simple bar to display text from a pipe for lightweight window managers. e.g; conky | some_sorta_bar
- xmobar is a minimalistic, mostly text based, status bar. It was originally designed and implemented by Andrea Rossato to work with xmonad, but it's actually usable with any window-manager. xmobar was inspired by the Ion3 status bar, and supports similar features, like dynamic color management, icons, output templates, and extensibility through plugins.
- taffybar - A somewhat fancier desktop bar than xmobar. This bar is based on gtk2hs and provides several widgets (including a few graphical ones). It also sports an optional snazzy system tray. Haskell
- https://github.com/sdhand/n30f - a quick hack to display a png in a borderless and transparent non-wm-managed window build using make and install to $PREFIX (/usr by default) with sudo make install
- https://github.com/polybar/polybar/issues/763 - Set polybar on multiple screens
- https://github.com/geommer/yabar - A modern and lightweight status bar for X window managers.
- https://github.com/odknt/bspwmbar - A lightweight status bar for bspwm.
- https://github.com/shdown/luastatus - universal status bar content generator. It allows you to configure the way the data from event sources is processed and shown, with Lua. Its main feature is that the content can be updated immediately as some event occurs, be it a change of keyboard layout, active window title, volume or a song in your favorite music player (provided that there is a plugin for it) — a thing rather uncommon for tiling window managers.
unixbar / bar
- https://github.com/unrelentingtech/unixbar -A better way to set up your lemonbar/dzen2/i3bar: with Rust and cargo-script instead of shell scripting or dynamic languages.
- https://github.com/wezm/bar -This is a small Rust program that uses unixbar to generate some status info. It is used by awesome to show audio volume, battery level, and weather info.
Panel / taskbar
- https://gitlab.com/o9000/tint2 - a simple panel/taskbar made for modern X window managers. It was specifically made for Openbox but it should also work with other window managers (GNOME, KDE, XFCE etc.). Panel with taskbar, system tray, clock and launcher icons; Easy to customize: color/transparency on fonts, icons, borders and backgrounds; Pager like capability: move tasks between workspaces (virtual desktops), switch between workspaces; Multi-monitor capability: create one panel per monitor, showing only the tasks from the current monitor; Customizable mouse events. fork of ttm.
- tint3 - Born as a fork and C++ port of tint2, tint3 retains backwards compatibility and provides a cleaner code base and better stability. Visit github.com/jmc-88/tint3 for more information.
- PyPanel is a lightweight panel/taskbar written in Python and C for X11 window managers. It can be easily customized to match any desktop theme or taste. PyPanel works with EWMH compliant WMs (Openbox, PekWM, FVWM, etc.) and is distributed under the GNU General Public License v2.
- ADeskBar - a lightweight application launcher for Openbox, written in Python and GTK
- https://code.google.com/p/bmpanel2/ - fork of bmpanel, fork of fbpanel
- https://code.google.com/p/trayer/ - fork of fbpanel
- https://github.com/sargon/trayer-srg - fork or trayer
- http://wiki.lxde.org/en/LXPanel - lxpanel is originally derived from fbpanel, now almost totally different both in internal implementation and configuration.
- https://github.com/rilian-la-te/vala-panel - Vala rewrite of SimplePanel, a GTK3 LXPanel fork.
- http://sourceforge.net/projects/talika/ - gnome panel applet that lets you switch between open windows using icons.
- https://bitbucket.org/consortdesktop/consort-panel - fork of gnome (classic) panel
- https://github.com/robint99/dock-applet - application dock for the MATE panel
- https://github.com/lpereira/suxpanel - provides a simple and easy to use panel that sits atop your screen, that lets you: Start your programs, Switch between them, Control your sound card's volume, Organise and manage your virtual desktops, Manage your clipboard, See the time and date and pop up a calendar, and probably more
- DockbarX in Launchpad - Gnome2 taskbar applet, AWN Applet, Mate taskbar applet and stand alone dock with groupping and group manipulation.
Needs KDE DE to function correctly.
- http://en.wikipedia.org/wiki/Kicker_(KDE) - old KDE panel
- Smooth Tasks 2 - This taskbar replacement has window peeking similar to Windows 7 when you use the kwin 'highlight window' effect. Even if this effect is not used you can click the tooltip in order to activate the corresponding window.
- https://github.com/elementary/wingpanel - Stylish top panel that holds indicators and spawns an application launcher
- https://github.com/psifidotos/Latte-Dock - dock based on plasma frameworks that provides an elegant and intuitive experience for your tasks and plasmoids. It animates its contents by using parabolic zoom effect and trys to be there only when it is needed.
- http://freecode.com/projects/hpanel - Hpanel is hacked version of fspanel, a small panel that lists your windows and allows you to switch workspaces. It requires a window manager that is compliant with the NETWM specification. It works nicely with pekwm and aewm++, and handles maximized windows better than fspanel.
- http://freshmeat.sourceforge.net/projects/ourico - a simple EWMH taskbar (no clocks, icons, trays, bells, or whistles).
- https://github.com/cylgom/excalibar - a fast and modular taskbar for X11, which provides good plugin support and configurable aestethics
- https://github.com/sahib/par.py - cute little bar with gtk, pango, cairo and love.
- https://github.com/Lokaltog/candybar - WebKit-based status bar for tiling window managers
Glx-Dock / Cairo-Dock
- Glx-Dock / Cairo-Dock a desktop interface that takes the shape of docks, desklets, panel, etc. It is designed to be light, fast and customizable, and is desktop-agnostic. It has a powerful DBus interface, to be controlled from a terminal or another application. Features can be added by plug-ins or applets, and applets can be written in C or in any language. Most actions can be done from keyboard.
- https://github.com/home-sweet-gnome/dash-to-panel - An icon taskbar for the Gnome Shell. This extension moves the dash into the gnome main panel so that the application launchers and system tray are combined into a single panel, similar to that found in KDE Plasma and Windows 7+. A separate dock is no longer needed for easy access to running and favorited applications.
- Plank - meant to be the simplest dock on the planet.
- https://github.com/rodolf0/wbar - A rewrite of wbar attempting to use evas instead of Imlib2 for real transparency.
- https://github.com/markusfisch/PieDock - A dock but in shape of a pie menu
- Peksystray - a small system tray (also called notification tray) designed for all the light window managers supporting docking. As more and more applications use a small icon in the system tray to provide additonal fonctionalities and information, it becomes usefull for everyone to have access to them. While "heavy" window managers (Gnome, KDE...) come with a systrem tray embedded in the rest of the desktop, lighter window managers (WindowMaker, fluxbox...) don't have this feature. Peksystray is a very simple and light implementation of a system tray for any window manager supporting docking, conforming to the System Tray Freedesktop standard
- stalonetray - a stand-alone freedesktop.org and KDE system tray (notification area) for X Window System/X11 (e.g. X.Org or XFree86). It has full XEMBED support and minimal dependencies: an X11 lib only. Stalonetray works with virtually any EWMH-compliant window manager.
- https://github.com/bill-auger/alltray - an application which docks other application software into the system tray (“notification area”) of a desktop environment such as GNOME, KDE, or XFCE. It aims to be independent of both desktop environment and window manager. Old releases are available, and currently the project is focusing on updating the source code to become more fully compliant with existing desktop standards, as well as being refactored.
- https://github.com/zserge/tray - Cross-platform, single header, super tiny C99 implementation of a system tray icon with a popup menu.
- https://git.sr.ht/~steef/snixembed - proxy StatusNotifierItems as XEmbedded systemtray-spec icons
- xdock - emulates the Window Maker docks, with the following differences: runs in any window manager; client/server - it works in a client/server way, where a server sits in the right side of the screen, and the docks are clients that connect to that server; easy to program - programming the Window Maker docks was a hard job. But xdock provides a API that makes programming much easier!
- Flipse - small app that collects Windowmaker Dockapps into one window. This allows the usage of WM Dockapps in other Windowmanagers like wmii.Code is heavily inspired by XFCE-WMDock
- BBDock - an application launcher for Blackbox-like window manager that allows you to create application buttons in the slit/dock. It works with PNG files rather than XPM images. It supports alpha blending at 16, 24 and 32 bits color-depth. Also, the raise-window function is available to window managers which implement the EWMH specification. See the README for more details.
- Docker is a docking application (WindowMaker dock app) which acts as a system tray for KDE and GNOME2. It can be used to replace the panel in either environment, allowing you to have a system tray without running the KDE/GNOME panel or environment.
- wmDrawer is a dock application (dockapp) which provides a drawer (retractable button bar) to launch applications.
- https://github.com/robint99/dock-applet - mate panel applet
- simdock - an eye-candy deskbar for Linux. a lightweight Dock launcher for common Applications. Docklight” is a simple but effective dock launcher for GNOME desktops e.g (gnome, cinnamon, mate etc.). It supports a Preview from all open Applications. The “Docklight” preview allows more control over the opened windows. You can navigate to a specific window much easier. Select the window or close the desired application the real time preview make that very easy. “Docklight” is written in C++ with “GTK 3” and “libwnck”. “Docklight” is open source width a GNU General Public License.
- https://wiki.archlinux.org/index.php/Xdg-menu - a tool that generates XDG Desktop Menus
- dmenu is a dynamic menu for X, originally designed for dwm, by suckless. It manages large numbers of user-defined menu items efficiently. Deuncher in i3.
dmenu -h 17 -fn '-*-terminus-medium-*-*-*-16-*-*-*-*-*-*-*' -nb '#000000' -nf '#c5c5c5' -sb '#4f2877' -sf '#ffffff' -dim 0.4 -dc '#485D00'
- https://github.com/toolpunk/dmenu-ee - fork of dmenu patched with XFT, quiet, x & y (inc. height), token, fuzzy matching, follow focus, tab nav, filter and full mouse support
- dmenu2 is the fork of original dmenu - an efficient dynamic menu for X, patched with XFT, quiet, x & y, token, fuzzy matching, follow focus, tab nav, filter. Added option to set screen on which dmenu apperars, as long as opacity, window class and window name. Also allows to dim screen with selected color and opacity while dmenu2 is running. Added underline color and height. (options -uc and -uh)
- https://github.com/Wintervenom/Scripts/blob/master/file/launch/dmenu-launch - xdg .desktop file support
- dmenu wrapper with .desktop support
- https://github.com/neersighted/dotfiles/blob/master/scripts/dmenu_run.pl - frequency ordering
- haskell dmenu wrapper with frequency ordering
- no height mod
- https://github.com/klowner/yegonesh - yeganesh in go
- wrapper with most used ordering
- works with height patch
- displays 4 of each command?!
- https://github.com/AlxHnr/Dlaunch - A dmenu wrapper which allows you to search trough various sources provided by plugins. It will learn what you use the most and presort the search results accordingly. Dlaunch can be extended by plugins written in Scheme.
- https://github.com/RafaelBocquet/i3-hud-menu - Provides a way to run menubar commands through dmenu(!!!)
- https://github.com/Shizcow/dmenu-rs - A pixel perfect port of dmenu, rewritten in Rust with extensive plugin support
- https://github.com/dhamidi/tmenu - a dynamic menu for tty devices, which reads a list of newline-separated items from stdin. When the user selects an item and presses Return, the selected item is printed to stdout. Entering text will narrow the list of items to items that contain the entered text.
- https://github.com/adriangrigore/slmenu - a dmenu clone for the console.
- https://github.com/mooz/percol - percol adds flavor of interactive selection to the traditional pipe concept on UNIX.
- https://github.com/technomancy/erythrina - basic dmenu like
- https://github.com/Cloudef/bemenu - Dynamic menu library and client program inspired by dmenu
- https://github.com/cblegare/xdmenu - Many options available in patches built in. Additional options can be added. Easy to extend for other tools such as Rofi.
- https://github.com/solus-project/brisk-menu - a modern and efficient menu designed to improve the MATE Desktop Environment with modern, first-class options. The purpose of this project is to provide a usable menu as seen in other desktops without the bloat and performance issues. brisk-menu is distro-agnostic and the reporting of portability issues is encouraged.
- https://github.com/seokbeomKim/klicknmenu - X11 based lightweight menu application
- Rofi - A window switcher, application launcher and dmenu replacement
rofi -dmenu # basic outputs what is entered
- https://github.com/cjbassi/awesome-rofi - A curated list of awesome rofi (and dmenu) applications
- https://gitcrate.org/qtools/rofi-top - A plugin for rofi that emulates top behaviour. To run this you need an up to date checkout of rofi git installed.
- https://github.com/andersju/zzzfoo - lets you combine the excellent full-text search tool Recoll with Rofi (popular dmenu replacement, among other things) to quickly search all your indexed files. It simply performs a Recoll search using Recoll's Python module, pipes the output to rofi -dmenu, and (optionally) does something with the selected match.
- https://github.com/adi1090x/rofi - Rofi Based Custom Applets And Menus.
- jgmenu - A simple, independent and contemporary-looking X11 menu, designed for scripting, ricing and tweaking.
- https://github.com/Crestwave/shmenu - A dynamic menu for the terminal written in pure Bash
- https://github.com/phillbush/xprompt - A dmenu rip-off with contextual completion
- https://github.com/phillbush/xmenu - a menu utility for X. XMenu receives a menu specification in stdin, shows a menu for the user to select one of the options, and outputs the option selected to stdout. XMenu can be controlled both via mouse and via keyboard.
- Gtk Menu - Standalone - a Gtk2 standalone applications menu written in C for Unix-like (Linux, *BSD) operating systems. It can be run by your favorite launcher (bbbutton, fluxbox menu, with a hotkey app/binding, etc). This menu always shows the latest installed applications that have .desktop entries in the user and system applications directories.
- myGtkMenu - When myGtkMenu is executed (by clicking on a panel or desktop icon), it reads a text file and creates a menu. The order of the menu items, which icons are used, and the commands to be executed are specified in the text file. You control the text file. Indeed, if you wanted, you could have ten icons associated with ten (different) custom menus. Re installing just involves backing up and restoring the menu files and associating a panel icon with each custom menu. If you put myGtkMenu and the custom menu-description file(s) in a single directory, it is very fast and easy to backup and restore everything.
- https://github.com/trizen/menutray - An application menu through a GTK+ tray status icon.
- https://github.com/drakmail/snapfly - a lightweight PyGTK menu which can be run as a daemon (in this case you can call the menu from any place on your desktop using snapfly-show) or as a standalone menu with a systray icon.
- https://github.com/mlde/californium - standalone application menu based on xdg and qt, notably for openbox, awesome, i3 and other window managers without a automatic xdg menu.
- Gnome Completion-Run Utility - A simple program which provides a "run program" window, featuring a bash-like TAB completion. It uses GTK+ interface.
- like lsxcommand
- Launchy - a free cross-platform utility designed to help you forget about your start menu, the icons on your desktop, and even your file manager. Launchy indexes the programs in your start menu and can launch your documents, project files, folders, and bookmarks with just a few keystrokes!
- Synapse - a semantic launcher written in Vala that you can use to start applications as well as find and access relevant documents and files by making use of the Zeitgeist engine.
- Kupfer - an interface for quick and convenient access to applications and their documents. The most typical use is to find a specific application and launch it. We have tried to make Kupfer easy to extend with plugins so that this quick-access paradigm can be extended to many more objects than just applications.
- https://github.com/kokoko3k/higgins - Yet another application launcher: start applications, search for things, do calculations or whatever you want through external plugins.
- https://wiki.gnome.org/Projects/GnomeLaunchBox - Launch Box is generally an application launcher. It's very influenced by Quicksilver for Mac OSX. It is written for the GNOME 2.10 or newer platform and depends on GTK+ 2.6 or newer, evolution-data-server 1.2 or newer and gnome-menus. These are currently hard dependencies but the plan is to split out the backends into different optional backends. Currently supported modules are:
- Gnome-Pie - a circular application launcher (pie menu) for Linux. It is made of several pies, each consisting of multiple slices. The user presses a key stroke which opens the desired pie. By activating one of its slices, applications may be launched, key presses may be simulated or files can be opened.
- https://github.com/phillbush/pmenu - a pie menu utility for X. πmenu receives a menu specification in stdin, shows a menu for the user to select one of the options, and outputs the option selected to stdout. 
- bashrun2 - an application launcher based on a modified bash session in a small terminal window, providing all the well known bash features like tab-completion and history. Additional features include automatic detection of console applications, rules for running console applications in dedicated terminals, running commands with a different user id, regexp based command line rewriting (file associations, web shortcuts, etc), user-defined actions and extensions, remote control features, and more.
- https://github.com/emgram769/lighthouse - A simple flexible popup dialog to run on X.
- Albert - Albert is a desktop agnostic launcher. Its goals are usability and beauty,performance and extensibility. It is written in C++ and based on the Qt framework. Access everything with virtually zero effort. Run applications, open files or their paths, open bookmarks in your browser, search the web, calculate things and a lot more.
- CmdLauncher - Aimed at helping people use command line tools in a GUI way. CmdLauncher provides a simple way for developers to make their console programs launch by selecting one from the list, or choosing a file, or something else which could be done easily by people who are not experts. What the command line program developers need to do is to write a simple yaml format file containing information of their command line programs, which will be read by CmdLauncher.
- Cerebro App - open-source productivity booster with a brain. Search everything in few clicks. On your machine or in the Internet. Interact with everything: open file in default program or reveal in finder, copy contact details to clipboard, see google suggestions. Maps, translations, files. Now you don’t have to open another application to see what you need. Everything is in one place. Using included plugin manager you always can find and use what you want. There is no plugin that you are looking for? Use simple, but powerful API to build your own plugins and share them with community. Cerebro is free and open-source.
- xlunch - the coolest graphical app launcher for Xorg/X11. It requires only pure Xlib and Imlib2. It allows you to run programs, commands, or simply select something out of a list using your mouse, keyboard, or both! UTF8 is fully supported meaning you can have text of all kinds. The prompt allows you to run arbitrary commands, and it works to filter your entries as well. xlunch is also highly configurable, both in functionality and style, it can even be used as a desktop!
- Ulauncher - a fast application launcher for Linux written in Python and uses GTK+ as a GUI toolkit.
- https://github.com/Blezzing/blezz - Guided Keystroke Launcher - Complicated shortcuts are hard to remember and hard on the fingers, yet it is still nice to have shortcuts to scripts and used actions readily available. With Blezz i intend to give an alternative to shortcut systems. It provides a little interface that shows up at launch, to guide the user through his own setup. Every keypress can go to new directory, or execute an action. It is possible for the user to make his own setup as simple or complex he wants, by adding content to a file.
- Homerun - a fullscreen launcher with content organized in tabs. A tab is composed of several "sources". A source can provide one or more sections to a tab. Homerun comes with a few built-in sources, but custom sources can be written using libhomerun.
- https://github.com/echo-devim/RapidLauncher - an application launcher that is supposed to be fast and relatively lightweight. The backend is written in Vala and the frontend is written with C/GTK+ 3. Rapid Launcher is born to give a good launcher also for old PCs. It's really simple and is inspired by the Android and OSX launchers.
- interrobang - A tiny launcher menu packing a big bang (syntax)
- xfce4-appfinder - a tool to find and launch installed applications on your system and the quickly execute commands. It can also be used to quickly add launchers to the Xfce Panel by dragging an item from the view and drop it on the panel.]
- Services menu - an application that helps the user perform actions on text in other programs. The user simply selects some text and launches Services — for example, by keyboard shortcut or clicking the fourth mouse button. A menu pops up letting the user edit the text and select desired operation, such as open a browser window searching for the text in Google.
- Slingshot - lightweight and stylish app launcher from elementary OS.
- thinglaunch - a launcher program for X. You can bind it to a key in your favorite window manager, and when you want to start a program, just type its name. thinglaunch has a tiny footprint and depends only on Xlib.
- https://en.wikipedia.org/wiki/Desktop_search - tools that search within a user's own computer files as opposed to searching the Internet. These tools are designed to find information on the user's PC, including web browser history, e-mail archives, text documents, sound files, images, and video.
- https://en.wikipedia.org/wiki/Tracker_(search_software) - a file indexing and search framework for Linux and other Unix-like systems. It is written in the C programming language.Tracker has been adopted by the GNOME desktop environment and is heavily integrated into GNOME Shell and GNOME Files.
- SuperSwitcher is a (more feature-ful) replacement for the Alt-Tab window switching behavior and Ctrl-Alt-Left/Right/Up/Down workspace switching behavior that is currently provided by Metacity. When running, use the 'Super' key (also known as the 'Windows' key) to switch between windows and workspaces. This key is usually found between the Ctrl and Alt keys on the keyboard.
Run or raise
- https://github.com/Soft/run-or-raise - Utility for launching applications or focusing their windows
- https://github.com/bulletmark/raise-or-run - Linux shell script to raise app window, or run app if window not already open
- https://github.com/open-dynaMIX/raiseorlaunch - A run-or-raise-application-launcher for i3 window manager.
- https://github.com/mkropat/jumpapp - A run-or-raise application switcher for any X11 desktop, with GUI config
- http://vickychijwani.me/blazing-fast-application-switching-in-linux/ - run or raise
Virtual desktop pagers
- https://en.wikipedia.org/wiki/Virtual_desktop - aka workspaces, or 'viewports' (depending on X/DE/distro nomeclature)
- https://en.wikipedia.org/wiki/Pager_(GUI) - used to switch between desktops
- multihead size problem A = virtual desktop representation size matches viewport size, but within that, the viewport representation is false, squeezing in a non-existent viewport for the opposite monitor.
- multihead size problem B = virtual desktop representation size does not match viewport site, instead being double the actual viewport by including the width of the non-existent opposite monitor
Setup is with randr 1.2+ multihead. I think this is due to a lack of EWMH support in bspwm.
- http://sourceforge.net/projects/sf-xpaint/files/netwmpager/ - actually netwmpager-2
- multihead size problem A
- pager active desktop does not shift with window manager
- multihead size problem A
- http://www.makelinux.com/man/1/B/bbpager - blackbox
- multihead size problem A(+B)
- desktop representations are correct width ratio, but it just hides the right hand side, i.e, second monitor windows are essentially hidden
- http://docs.xfce.org/xfce/xfce4-panel/pager - workspace switcher item
- multihead size problem B
- http://git.lxde.org/gitweb/?p=lxde/lxpanel.git;a=history;f=plugins/pager.c - lxpanel pager
- multihead size problem B
- last development 2014
- http://aanatoly.github.io/fbpanel/ - fbpanel pager
- nice, grabs desktop background!
- multihead size problem B
- http://www.ghacks.net/2009/03/03/get-to-know-linux-the-pager/ - gnome panel pager
- multihead size problem B
- http://fluxbox.sourceforge.net/fbpager/ - fluxbox
- multihead size problem B
- multihead size problem B
- requires fvwm to be running
- requires sawfish wm to be running
- http://obpager.sourceforge.net/ - openbox
- does not run (without openbox wm?)
- requires openbox-multihead to be running
- pager applet for Enlightenment and Waimea. It supports both the GNOME 2 panel and the dock. dead.
- Kicker pager
- for the old KDE panel
- panel applet
- non graphical
- only a systray icon
- https://github.com/c00kiemon5ter/mopag - a small pager for monsterwm. it visually displays the number of desktops and number of windows on each desktop in a thin bar.
- nongraphical, implements own virtual desktops by hiding and showing apps (orthogonal to a wm's own desktops)
- https://github.com/prurigro/winpager - keyboard switching to number tagged apps
- https://github.com/ijanos/desktend - automatic virtual desktop extender. update the number of virtual desktops of EWMH compatible X11 window managers. add a new virtual desktop to the right every time there is a new window appears on the last desktop.
- https://web.archive.org/web/20150805191857/http://gkrellmpager.sourceforge.net/ - dockapp
- http://www.afterstep.org/visualdoc.php?show=Pager - afterstep pager
- https://www.linuxsoft.cz/en/sw_detail.php?id_item=2538 - wmDeskGuide
- https://github.com/premek/allintray - A little script that displays useful things in a systray (notification area) for lightweight environments where such finctionality is not present by default. To be used with a lightweight systray like a trayer for example. Written in perl using Gtk2.
- Conky is a free, light-weight system monitor for X, that displays any information on your desktop. Conky is licensed under the GPL and runs on Linux and BSD.
- https://github.com/sboli/twmn - features animations
- http://kde-apps.org/content/show.php/?content=117147 - Colibri provides an alternative to KDE4 Plasma notifications.
- https://github.com/variadico/noti - Monitor a process and trigger a notification.
- https://github.com/be1/nall - notify almost everything in a discrete tooltip over your desktop system tray
- https://github.com/Sweets/tiramisu - a notification daemon based on dunst that outputs notifications to STDOUT in order to allow the user to process notifications any way they prefer. Perhaps you want notifications to be sent to your bar? tiramisu allows you to do that. Maybe you want notifications to be redirected to your phone as push notifications? A little bit of elbow grease and some tiramisu would let you do that ;) Notifications could be made more accessibility friendly even with TTS.
- https://github.com/be1/nall - notify almost everything in a discrete tooltip over your desktop system tray
- EWW - ElKowar's Wacky Widgets, pronounced with sufficient amounts of disgust) is a widgeting system made in rust, which let's you create your own widgets similarly to how you can in AwesomeWM. The key difference: It is independent of your window manager! Configured in XML and themed using CSS, it is easy to customize and provides all the flexibility you need!
- Idesk - gives users of minimal wm's (fluxbox, pekwm, windowmaker...) icons on their desktop. The icon graphics are either from a png or svg (vector) file and support some eyecandy effects like transparency. Each icon can be confgured to run one or more shell commands and the actions which run those commands are completely configurable. In a nutshell if you want icons on your desktop and you don't have or dont't want KDE or gnome doing it, you can use idesk.
- IconMgr - a manager of desktop icons, Features include configurable actions to run shell commands. It has support for imlib2.
- DFM - a file manager for Linux and other UNIX like Operating Systems. DFM is the abrvabation for Desktop File Manager. "Desktop" stands for the capability to place icons on the root window. The idea to write DFM came from OS/2. For a long time I had worked with OS/2. Using Linux I miss a desktop that provides easy launching programs, managing files and their association. I think only a program like the WPS can provide this.
On Screen Display
- NotificaThor - Themeable On Screen Displays for X.
- ghosd -- on-screen display (osd) with transparency
- https://github.com/florentc/xob - A lightweight overlay volume (or anything) bar for the X Window System.
Volume / audio
- keeps disappearing?
- gtk3, scroll wheel down to reduce volume doesn't work!
- Volctl - PulseAudio-enabled tray icon volume control for GNU/Linux desktops.
- https://github.com/vially/volumectl - Small utility to control the volume from the command line. volumectl displays a nice notification bubble when a notification server is installed.
- https://github.com/yktoo/indicator-sound-switcher - Sound input/output selector application for Linux. It shows an icon in the indicator area or the system tray (whatever is available in your desktop environment). The icon's menu allows you to switch the current sound input and output (i.e. source ports and sink ports in PulseAudio's terms, respectively) with just two clicks:
- https://github.com/Junker/mictray - MicTray is a Lightweight application which lets you control the microphone state and volume from system tray
- gnome2-globalmenu - Global Menu Bar for GNOME, like Apples. Gnome 3 in dev.
- fsv (pronounced eff-ess-vee) - a file system visualizer in cyberspace. It lays out files and directories in three dimensions, geometrically representing the file system hierarchy to allow visual overview and analysis. fsv can visualize a modest home directory, a workstation's hard drive, or any arbitrarily large collection of files, limited only by the host computer's memory and graphics hardware. "i know this!"
- http://fedorchenko.net/fsv2.php - gtk2 port
- https://github.com/ebruck/indicator-doom-cpu - Ubuntu indicator that displays how much load your CPU is under via the dying face from the video game DOOM.
- https://github.com/noctuid/tdrop - A Glorified WM-Independent Dropdown Creator
For non tiling WMs
- Wumwum is a window manager manager. It manages window managers so that they place your windows automatically the way a tile-based window manager (ion or awesome) would do it. This way you get the nice graphics of modern window managers and the efficiency of keyboard driven tiling-based managers. Moreover you can still use all features of the underlying manager and you keep all your keyboard shortcuts and behaviour when switching from one manager to the other.
- http://www.giuspen.com/x-tile/ - an application that allows you to select a number of windows and tile them in different ways.
- https://github.com/pkkid/pygrid - a small utility which allows you to easily organize your open windows by tiling, resizing and positioning them to make the best use of your desktop real estate. It's easy to configure and supports multiple monitors.
Screensaver and locks
- XScreenSaver is the standard screen saver collection shipped on most Linux and Unix systems running the X11 Window System. I released the first version in 1992. I ported it to MacOS X in 2006, and to iOS in 2012. On X11 systems, XScreenSaver is two things: it is both a large collection of screen savers; and it is also the framework for blanking and locking the screen.
- http://linux.die.net/man/1/xautolock - fire up programs in case of user inactivity under X
- https://github.com/iye/lightsOn - doesn't work?
- https://github.com/the-cavalry/light-locker a simple locker (forked from gnome-screensaver) that aims to have simple, sane, secure defaults and be well integrated with the desktop while not carrying any desktop-specific dependencies.
It relies on lightdm for locking and unlocking your session via ConsoleKit/UPower or logind/systemd.
See also Video#Screencasting
scrot mydesktop.png scrot '%Y-%m-%d_$wx$h.png' -e 'mv $f ~/documents/images/screenshots/' would create a file called something like 2000-10-30_2560x1024.png in a screenshots directory.
import -window root Pictures/Image5.png imagemagick
- https://github.com/lupoDharkael/flameshot - Powerful yet simple to use screenshot software
- https://github.com/Soft/xcolor - Lightweight color picker for X11. Use mouse to select colors visible anywhere on the screen to get their RGB representation.
- https://github.com/muquit/grabc - A command line tool to identify a pixel color of an X Window System screen
- https://github.com/sdushantha/farge - CodeIssues 1Pull requests 1ActionsWikiReleases 1art Click on a pixel on your screen and show its color value
- https://launchpad.net/alacarte - a simple menu editor for GNOME that uses the pyxdg library. It can create and edit menus and entries. It follows the freedesktop.org menu specification and so should work with any WM/DE that supports the spec.
- MenuMaker - a menu generation utility for X window managers on *NIX systems. It is capable of finding lots of installed programs and generating a root menu consistent across all supported X window managers, so one will get (almost) the same menu no matter what window manager is used.
- menutray - a simple menu generator (related to obmenu-generator and fbmenugen).
- https://github.com/ju1ius/uxdgmenu - an automated XDG Menu system for alternative Linux window managers. It supports currently Fluxbox, Openbox, Awesome, Blackbox, WindowMaker, FVWM2, IceWM, Ion3, PekWM, TWM, support can be added to any other through plugins.
- https://github.com/XayOn/cursed_desktop - A simple ncurses system menu
- https://github.com/crichon/xdgmenu - A ncurses application menu.
- Exterminator by JeffHoogland - a system process killer written in Python and Elementary
File system inspection
- QDirStat - Qt-based directory statistics (KDirStat without any KDE - from the original KDirStat author)
- K4DirStat - (KDE Directory Statistics) is a small utility program that sums up disk usage for directory trees, very much like the Unix 'du' command. It displays the disk space used up by a directory tree, both numerically and graphically (copied from the Debian package description). v2 required KDE 5.
- http://www.chiark.greenend.org.uk/~sgtatham/agedu/ agedu - disk scan like du but that also records the last-access times of everything it scans. Then it builds an index that lets it efficiently generate reports giving a summary of the results for each subdirectory, and then it produces those reports on demand.
- kmag - or Kmagnifier, is a small utility for Linux to magnify a part of the screen.
Virtual Magnifying Glass
- Virtual Magnifying Glass - A free, open source, screen magnifier, for Windows, Linux, FreeBSD and Mac OS X.
- https://github.com/redtide/magnifiqus - Qt based screen magnifier
- TUIO is an open framework that defines a common protocol and API for tangible multitouch surfaces. The TUIO protocol allows the transmission of an abstract description of interactive surfaces, including touch events and tangible object states. This protocol encodes control data from a tracker application (e.g. based on computer vision) and sends it to any client application that is capable of decoding the protocol. There exists a growing number of TUIO enabled tracker applications and TUIO client libraries for various programming environments, as well as applications that support the protocol.
- Glassomium - Open-source cross-platform web-based TUIO-enabled multi-touch window manager
- reacTIVision is an open source, cross-platform computer vision framework for the fast and robust tracking of fiducial markers attached onto physical objects, as well as for multi-touch finger tracking. It was mainly designed as a toolkit for the rapid development of table-based tangible user interfaces (TUI) and multi-touch interactive surfaces.
- The Natural User Interface Group is an open source community that creates and shares interaction techniques & standards that benefit designers & developers throughout the world. We offer a collaborative environment for scientists that are interested in learning and developing modern Human/Computer Interaction methods and concepts. Our research includes topics such as: computer vision, touch computing, voice & gesture recognition, experience design and information visualization.
- Bumptop - a 3D desktop user interface inspired by real desks using physics, multi-touch gestures to drive towards a more expressive, human vision for computing. You can download it for Mac and Windows or build on top of the source code. Learn more by watching the TED talk. BumpTop started with a master's thesis and a YouTube video in 2006. A group of University of Toronto grads explored combining 3D user interfaces, touch and physics in innovative ways to push user interfaces forward, beyond the "cave painting" era of point-and-click.
- https://github.com/p-e-w/plotinus - A searchable command palette in every modern GTK+ application 
- https://github.com/sumnerevans/menu-calc - A calculator for Rofi/dmenu(2)