GUI
General
- https://en.wikipedia.org/wiki/Object-oriented_user_interface
- https://en.wikipedia.org/wiki/Graphical_user_interface
- https://en.wikipedia.org/wiki/History_of_the_graphical_user_interface
- https://en.wikipedia.org/wiki/WIMP_(computing)
- https://en.wikipedia.org/wiki/Window_manager#History
- The Linux Graphics Stack - June 16, 2012
Startup
- fbsplash (formerly gensplash) is a userspace implementation of a splash screen for Linux systems. It provides a graphical environment during system boot using the Linux framebuffer layer.
Q: "I get a tty1 login before KDM pops up." A: "You could disable tty1. Comment out this line in /etc/inittab: c1:2345:respawn:/sbin/agetty -8 38400 tty1 linux"
X
Xwindows drives the underlying graphical interface of most if not all Unix/Linux computers providing a GUI. It was developed in 1984 at MIT. After around 35 years of development, tweaking and adding of new hardware and ideas, it is generally acknowledged to be a bit of a beast. It should be remembered that the common configuration at time of development was a single mini running X providing individual views to Xterminals in a timesharing system. Nowadays the norm is X providing a single screen on a desktop or laptop.
All of this means that there are many ways of achieving the same thing and many slightly different things that can meet the same purpose. In modern X versions sometimes you can get away with limited or no configuration. In the last few years the boast is that X is self configuring. Certainly the best practice rule of thumb is less configuration is better - that is only configure what is wrong.
- http://en.wikipedia.org/wiki/X_Window_System_core_protocol
- http://en.wikipedia.org/wiki/X_Window_System_protocols_and_architecture
- http://en.wikipedia.org/wiki/X_Window_selection
Config
xrdb xset
Sessions
xrandr
xrandr -q show possible and current screen resolutions
- http://www.thinkwiki.org/wiki/Xorg_RandR_1.2
- http://en.wikipedia.org/wiki/RandR
- https://wiki.archlinux.org/index.php/Xrandr
xdpyinfo | grep 'dimensions:' show just current screen resolution in px and mm
Dualscreen
Multihead
- http://en.wikipedia.org/wiki/Xinerama
- http://sourceforge.net/projects/xinerama/
- http://tldp.org/HOWTO/Xinerama-HOWTO/intro.html
GUI
XDMCP
- 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.
X server
- Xnest is both an X client and an X server. Xnest is a client of the real server which manages windows and graphics requests on its behalf. Xnest is a server to its own clients. Xnest manages windows and graphics requests on their behalf. To these clients, Xnest appears to be a conventional server.
- Xephyr is a kdrive based X Server which targets a window on a host X Server as its framebuffer. Unlike Xnest it supports modern X extensions ( even if host server doesn't ) such as Composite, Damage, randr etc (no GLX support now). It uses SHM Images and shadow framebuffer updates to provide good performance. It also has a visual debugging mode for observing screen updates.
Display Managers
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)
- https://wiki.archlinux.org/index.php/Display_Manager
- http://en.wikipedia.org/wiki/X_display_manager_(program_type)
DXPC
- dxpc - The Differential X Protocol Compressor, designed to improve the speed of X11 applications run over low-bandwidth links (such as dialup PPP connections).
X Forwarding
xmove
- xmove - a computer program that allows the movement of X Window System applications between different displays and the persistence of X applications across X server restarts. It solves a problem in the design of X, where an X client (an X application) is tied to the X server (X display) it was started on for its lifetime. Also, if the X server is shut down, the client application is forced to stop running. xmove lets the client disconnect from its current X server, and connect to a new one, at any time. The transition is completely transparent to the client. xmove works by acting as a proxy between the client and server. It is a "pseudoserver" which stores enough server state so that clients can connect to a new server without being disrupted.
Xpra
- Xpra - X Persistent Remote Applications, is 'screen for X', and more: it allows you to run X programs, usually on a remote host and direct their display to your local machine. It also allows you to display existing desktop sessions remotely. Xpra is "rootless" or "seamless", and sessions can be accessed over SSH, or password protected and encrypted over plain TCP sockets. Xpra adapts to bandwidth constraints and is fully open-source. [2]
The main problem with ssh -X is all your apps close when your connection drops.
- Xdummy was originally developed by Karl Runge as a script to allow a standard X11 server to be used by non-root users with the dummy video driver
x2x
- x2x allows the keyboard, mouse on one X display to be used to control another X display.
x2vnc
- x2vnc - A dual-screen hack. will let you use two screens on two different computers as if they were connected to the same computer. Even if one of the computers runs Windows 95/98/NT and the other one runs X-windows. The program will open a small (one pixel wide) window on the edge of your screen. Moving the pointer into this window will trigger the program to take over your mouse and send mouse movements and keystrokes though the RFB protocol to a VNC server running on another machine. When the pointer is moved back towards the opposite edge on the other screen, the mouse is then released again. The operation itself is almost identical to x2x, but most of the code was actually borrowed from the program vncviewer.
xrdp
- xrdp - An open source remote desktop protocol(rdp) server. Based on the work of FreeRDP and rdesktop, xrdp uses the remote desktop protocol to present a GUI to the user. The goal of this project is to provide a fully functional Linux terminal server, capable of accepting connections from rdesktop, freerdp, and Microsoft's own terminal server / remote desktop clients. Unlike Windows NT/2000/2003/2008/2012 server, xrdp will not display a Windows desktop but an X window desktop to the user. Xrdp uses Xvnc or X11rdp to manage the X session.
Windows
- Xming is the leading X Window System Server for Microsoft Windows. It is fully featured, lean, fast, simple to install and because it is standalone native Windows, easily made portable (not needing a machine-specific installation or access to the Windows registry). Xming is totally secure when used with SSH and optionally includes an enhanced PuTTY Link SSH client and a portable PuTTY replacement package.
Xvfb
- Xvfb
- https://en.wikipedia.org/wiki/Xvfb - or X virtual framebuffer is a display server implementing the X11 display server protocol. In contrast to other display servers Xvfb performs all graphical operations in memory without showing any screen output. From the point of view of the client, it acts exactly like any other X display server, serving requests and sending events and errors as appropriate. However, no output is shown. This virtual server does not require the computer it is running on to even have a screen or any input device. Only a network layer is necessary. Unlike a real display server, Xvfb does not support modern X11 extensions like compositing, Randr or GLX. Xdummy is a newer alternative which supports these extensions as well as providing the same functionality as Xvfb.
Xvfb is primarily used for testing:
Utils
- xprop - property displayer for X
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
Pointer
Scripts GUI
Backgrounds
Fonts
- http://www.x.org/wiki/guide/fonts/
- http://www.linuxdocs.org/HOWTOs/XWindow-User-HOWTO-7.html
- https://wiki.archlinux.org/index.php/Fonts
- https://wiki.archlinux.org/index.php/Font_Configuration
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
Input
- 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 ;)
xmodmap
xbindkeys
- http://www.nongnu.org/xbindkeys/
- https://wiki.archlinux.org/index.php/Xbindkeys
- http://linux.die.net/man/1/xbindkeys
~/.xbindkeysrc
sxhkd
~/.config/sxhkd/sxhkdrc
other
- http://www.x.org/wiki/Development/Documentation/MPX/
- https://wiki.archlinux.org/index.php/Multi-pointer_X
Cursor
xsetroot -cursor_name left_ptr
freedesktop.org
ICCCM
- 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")[1] 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.
EWMH
- http://en.wikipedia.org/wiki/Extended_Window_Manager_Hints - aka NetWM or Net WM,[1] 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).
- Extended Window Manager Hints - X Desktop Group
- ewmhstatus - Outputs the current EWMH desktop name and window title
- wmctrl is a UNIX/Linux command line tool to interact with an EWMH/NetWM compatible X Window Manager.
3D
Video
Compositing
Older
Compton
- 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."
Unagi
Window Managers
- Window Managers for X
- http://luv.asn.au/overheads/winmgr.html
- http://en.wikipedia.org/wiki/Comparison_of_X_window_managers
- https://wiki.archlinux.org/index.php/Comparison_of_Tiling_Window_Managers
- http://sawfish.wikia.com/wiki/Comparison_of_extensible_window_managers
- http://l3net.wordpress.com/2013/04/09/a-memory-comparison-of-light-linux-desktops-part-2/
- 30 Window Managers in 30 days [3]
- Box-Look.org - Stuff for your Windowmanager
Ultrix Window Manager
1985
twm
1987
- http://en.wikipedia.org/wiki/Twm
- https://wiki.archlinux.org/index.php/Twm
- http://www.linuxplanet.com/linuxplanet/reports/3000/2/
awm
1988
swm
1990
vtwm
1990
tvtwm
1990
CTWM
1992
Motif Window Manager
1992
fvwm
1993
9wm
1994
olvm / olvwm
1996?
AmiWM
1996?
- http://www.lysator.liu.se/~marcus/amiwm.html - FVWM descendant
Xfce
1996
wm2 / wmx
1996 / 1998
PieWM
1997
Window Maker
1997
Blackbox
1997
Enlightenment
1997
- Enlightenment is not just a window manager for Linux/X11 and others, but also a whole suite of libraries to help you create beautiful user interfaces with much less work than doing it the old fashioned way and fighting with traditional toolkits, not to mention a traditional window manager. It covers uses from small mobile devices like phones all the way to powerful multi-core desktops (which are the primary development environment).
- http://en.wikipedia.org/wiki/Enlightenment_(window_manager)
- https://wiki.archlinux.org/index.php/Enlightenment
- http://en.wikibooks.org/wiki/The_Unofficial_Enlightenment_User's_Manual
- http://www.h-online.com/open/features/Seeking-Enlightenment-1739812.html?view=print
- http://linuxlibrary.org/enlightenment-17-e17-complete-desktop-review/
IceWM
1997
MLVWM
1997
- https://en.wikipedia.org/wiki/Macintosh-Like_Virtual_Window_Manager - FVWM descendant
4Dwm
1998?
aewm
1998
AfterStep
1999
- http://www.afterstep.org/ - FVWM descendant
Scwm
1999
- http://scwm.sourceforge.net/ - FVWM descendant
Ion
2000
PWM
2000
Sawfish
2000
- Sawfish is an extensible window manager using a Lisp-based scripting language. Its policy is very minimal compared to most window managers. Its aim is simply to manage windows in the most flexible and attractive manner possible. All high-level WM functions are implemented in Lisp for future extensibility or redefinition. what i wanted when using litestep
larswm
2000
ratpoison
2000
PLWM
2000
Fluxbox
2001
- http://fluxbox.org/ - blackbox fork
WindowLab
2001
Openbox
2002
Metacity
2002
- https://en.wikipedia.org/wiki/Metacity - gnome 2
Hackedbox
2002
Oroborus
2002
NovaWM
2002
Stumpwm
2003
cwm
2004
wmii
2005
pekwm
2005
JWM
2005
dwm
2006
spectrwm
2006
- spectrwm is a small dynamic tiling window manager for X11. It tries to stay out of the way so that valuable screen real estate can be used for much more important stuff. It has sane defaults and does not require one to learn a language to do any configuration. It was written by hackers for hackers and it strives to be small, compact and fast. It was largely inspired by xmonad and dwm.
flwm
2006?
Matchbox
2007
evilwm
2007
xmonad
2007
- xmonad is a dynamically tiling X11 window manager that is written and configured in Haskell. In a normal WM, you spend half your time aligning and searching for windows. xmonad makes work easier, by automating this.
- http://www.youtube.com/watch?v=AyNkBLhIpQk&hd=1 - example vid
Config
- XMonad.Doc.Configuring
- template config
- http://www.linuxandlife.com/2011/11/how-to-configure-xmonad-arch-linux.html
cabal --recompile after changing ~/.xmonad/xmonad.hs
Utils
dzen
xmobar
taffybar
Hotkeys
mod shift enter start terminal mod shift c close current window mod w reload xmonad mod space rotate through window layouts mod shift space reset to workspace default mod tab tab through windows super 2 switch to workspace 2
Awesome
2007
- http://awesome.naquadah.org/
- https://wiki.archlinux.org/index.php/Awesome
- http://git.naquadah.org/?p=awesome.git;a=shortlog;h=HEAD
Config
echo 'naughty.notify({ text = "hello from tty" })' | awesome-client
debug rc.lua changes;
Xephyr :1 -ac -br -noreset -screen 1152x720 & DISPLAY=:1.0 awesome -c ~/.config/awesome/rc.lua.new
If xdg/awesome default config loads instead of .config/awesome, this is due to error in the rc.lua.
Usage
[mod]-Enter new terminal window [mod]-c close window [mod]-j rotate window selection clockwise [mod]-k rotate window selection anticlockwise [mod]-J move active window clockwise [mod]-K move active window anticlockwise [mod]-f fullscreen active window [mod]-a create new tag [mod]-s rename active tag
[mod]-shift-r reload awesome (to resource config)
Multihead
Wibox
- comp.window-managers.awesome: Re: Multiple row wibox
Widgets
Colours
The color format in awesome is either a standard X color name (blue, darkblue, lightred, etc) or a hexadecimal formatted color (#rrggbb or #rrggbbaa). By using the hexadecimal format, you can also specify an alpha channel: that means that #00ff00 will draw pure green, but #00ff00aa will set the alpha channel to ‘aa’ and will blend the green with the color under it.
Text format
You can use Pango markup in a text string. This allows formating the text rendered inside widgets. Pango markup documentation can be found in the Pango documentation at http://library.gnome.org/devel/pango/stable/PangoMarkupFormat.html.
A Pango markup example: ….
Shifty
- http://awesome.naquadah.org/wiki/Shifty
- https://github.com/bioe007/awesome-shifty/tree/2.0
- https://bbs.archlinux.org/viewtopic.php?id=124725
- http://aur.archlinux.org/packages.php?ID=32463
- http://git.naquadah.org/?p=awesome.git;a=summary
Revelation
Expose-like client selection.
MPD
Other
- http://awesome.naquadah.org/wiki/Modal_Keybindings
- http://awesome.naquadah.org/wiki/Run_or_raise
- https://github.com/terceiro/awesome-freedesktop
- http://awesome.naquadah.org/wiki/ShutdownDialog
3.5
subtle
2007
- subtle is a manual tiling window manager with a rather uncommon approach of tiling: Instead of relying on predefined layouts, subtle divides the screen into a grid with customizeable slots (called gravities). For better understanding, the default config uses a 3x3 grid and maps each gravity to one key of the numpad. With those keys, windows can be moved directly to the desired gravity - the same can be done with tagging rules in the config. Another unique concept is the strict tagging: Unlike other tiling window managers, subtle doesn't allow weak tagging and always maps windows to virtual desktops (called views) with matching tags, regardless of the current active view.
Echinus
2007
Tritium
2007?
SithWM
2007
wmfs
2008
CLFSWM
2008
Lucca WM
2008?
i3
2009
based on wmii
Notion
2010
Musca
2009
Bluetile
2010
- Bluetile is a tiling window manager for Linux, designed to integrate with the GNOME desktop environment. It provides both a traditional, stacking layout mode as well as tiling layouts where windows are arranged to use the entire screen without overlapping. Bluetile tries to make the tiling paradigm easily accessible to users coming from traditional window managers by drawing on known conventions and providing both mouse and keyboard access for all features. based on Xmonad
mcwm
2010
catwm
2010
euclid-wm
2010
herbstluftwm
2011
- herbstluftwm is a manual tiling window manager for X11 using Xlib and Glib.
Monsterwm
2011
- Monsterwm is a minimal, lightweight, tiny but monstrous dynamic tiling window manager. It will try to stay as small as possible. Currently under 700 lines with the config file included. It provides a set of four different layout modes (vertical stack, bottom stack, grid and monocle/fullscreen) by default, and has floating mode support. Each virtual desktop has its own properties, unaffected by other desktops' settings. Finally monsterwm supports multiple monitors setups.
tilenol
2011
nwm
2011
- nwm - A dynamic window manager for X11 written with Node.js
Mer
2011
- http://merproject.org/ - Mer is an open, mobile-optimised, core distribution aimed at device manufacturers; powered by Qt/QML and HTML5 - openly developed, inclusive, and meritocratically governed. MeeGo based.
- https://sailfishos.org/wiki/Main_Page
dminiwm / snapwm
2011
- https://bbs.archlinux.org/viewtopic.php?id=100215&p=1
- https://github.com/moetunes/dminiwm
- https://wiki.archlinux.org/index.php/Snapwm
wingo
2011
Aura
TTWM / Alopex
2012
- https://github.com/TrilbyWhite/alopex
- https://wiki.archlinux.org/index.php/Alopex
- TTWM is a minimal tiling window manager combining concepts or elements from TinyWM, DWM, and i3wm. Inspiration has also been drawn from other great tilers like MonserWM. TinyTiler is currently under 650 lines of code. In contrast to other tilers, TinyTiler does not have modes nor does have window rules. TinyTiler has only two layouts: right stack and bottom stack. These choices were by design. TinyTiler instead provides two screen sections, the master and the stack. In TinyTiler only one stack window is visibile at a time, the others have tabs in the statusbar.
Qtile
2012
- Qtile is a full-featured, hackable tiling window manager written in Python.
Goomwwm
2012
- http://aerosuidae.net/goomwwm/ Goomwwm: Get out of my way, Window Manager!
bspwm
2012
- https://github.com/baskerville/bspwm bspwm is a tiling window manager where each window is represented as the leaf of a binary tree. It is controlled and configured via bspc. bspwm have only two sources of informations: the X events it receives and the messages it reads on a dedicated socket. Its configuration file is $XDG_CONFIG_HOME/bspwm/autostart. Keyboard and pointer bindings are defined through sxhkd. Example configuration files can be found in the examples directory.
Very slick and atomic.
.config/bspwm/autostart
bspc set focused_border_color '#ff0000' bspc set border_width '3px' bspc set window_gap 0 bspc set focus_follows_pointer true
Deep Space Window Manager
2012
Piwm
2013
- Piwm is a very small window manager written in Bash. Following are the 5 task it performs : 1) Ctrl + t : Opens xterm, 2) Ctrl + f : Makes current window full screen, 3) Alt + Mouseleft : Moves the window, 4) Alt + Mouseright : Rescales the window, 5) Ctrl + F1 : Refocus the window
howm
2014
wtftw
other tiling
Desktop environment
- http://en.wikipedia.org/wiki/Desktop_environment
- https://wiki.archlinux.org/index.php/Desktop_Environment
as DEs are fairly tightly integrated, a full DE install is required for proper running and configuration of their component apps
OpenWindows
1989-2000, Sun Microsystems
CDE
1993-
GNOME
- Glade is a RAD tool to enable quick & easy development of user interfaces for the GTK+ toolkit and the GNOME desktop environment. The user interfaces designed in Glade are saved as XML, and by using the GtkBuilder GTK+ object these can be loaded by applications dynamically as needed. By using GtkBuilder, Glade XML files can be used in numerous programming languages including C, C++, C#, Vala, Java, Perl, Python,and others.
shellshape
- shellshape is a gnome-shell (Gnome 3) extension that adds smart and user-friendly tiling window features to your gnome desktop, inspired by bluetile.
Consort
- https://wiki.archlinux.org/index.php/Consort - fork of gnome classic
MATE
KDE
- http://en.wikipedia.org/wiki/KDE_Plasma_Workspaces
- http://plasma-active.org/ - kde related for tablet
LXDE / LXQt
ROX
- ROX is a fast, user friendly desktop which makes extensive use of drag-and-drop. The interface revolves around the file manager, or filer, following the traditional Unix view that `everything is a file' rather than trying to hide the filesystem beneath start menus, wizards, or druids. The aim is to make a system that is well designed and clearly presented. The ROX style favours using several small programs together instead of creating all-in-one mega-applications.
Sugar
other
- https://github.com/Lerc/notanos - html5/js
System GUI
Panel / Taskbar
- https://code.google.com/p/bmpanel2/ - fork of fbpanel
- https://github.com/LemonBoy/bar - bar-aint-recursive
- https://bitbucket.org/consortdesktop/consort-panel - fork of gnome (classic) panel
- http://kde-apps.org/content/show.php/Smooth+Tasks+2?content=148813
- https://bitbucket.org/flupp/smooth-tasks-fork/overview
- https://github.com/coleifer/mastodon - i3status replacement
- https://github.com/Lokaltog/candybar - uses webkit
System tray
Launchers
- https://wiki.archlinux.org/index.php/Gmrun
- like lsxcommand
- interrobang - A tiny launcher menu packing a big bang (syntax)
- Synapse is 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 is 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.
- Services menu is 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.
- Ayr is a Bash script which lets you manage menus of application launchers, which can be either executables or desktop files. It also opens files and URIs with launchers, desktop files, or applications associated by name or MIME-type. Launchers can be grouped and/or made read-only with tags, and the menu of launchers can be ordered in various ways, including the frequency or recency of launcher usage. Desktop files and MIME-type file associations are detected according to the XDG Base Directory Specification and Association between MIME types and applications standards, as far as is practical, and a wrapper is provided to let ayr function as an xdg-open replacement. Great for integrating with minimal desktop environments and file managers. Ayr uses dmenu to manage its menus. Once installed, execute the command 'ayr -h' for much more information.
- dmenu is a dynamic menu for X, originally designed for dwm, by suckless. It manages large numbers of user-defined menu items efficiently.
- https://wiki.archlinux.org/index.php/Dmenu
- https://aur.archlinux.org/packages.php?ID=59497 [9]
- patches for height, font, etc.
- https://aur.archlinux.org/packages/dmenu-xft-height/
- font and height patch
- https://aur.archlinux.org/packages/dmenu-aliases/
- Run dmenu with custom aliases/functions stored in ~/.bash_aliases, ~/.bash_functions, ~/.zsh_aliases or ~/.zsh_functions
- https://github.com/baskerville/dmenu_qxyw
- positioning
- http://dmwit.com/yeganesh/
- haskell wrapper with most used ordering
- no height mod
- https://bitbucket.org/dehun/xboomx/overview
- wrapper with most used ordering
- works with height patch
- displays 4 of each command?!
- https://github.com/enkore/j4-dmenu-desktop
- dmenu wrapper with .desktop 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)
Task switcher
Virtual desktop pagers
- https://en.wikipedia.org/wiki/Virtual_desktop - aka workspaces
- https://en.wikipedia.org/wiki/Pager_(GUI)
- http://useperl.ru/ipager/index.en.html
- multihead size problem
- http://www.fvwm.org/documentation/manpages/stable/FvwmPager.php
- comes with fvwm?
- https://aur.archlinux.org/packages/sawfish-pager/
- depends on sawfish
- http://fluxbox.sourceforge.net/fbpager/ - fluxbox
- multihead size problem
- http://www.makelinux.com/man/1/B/bbpager - blackbox
- http://obpager.sourceforge.net/ - openbox
- multihead size problem
- http://kde-apps.org/content/show.php?content=6702&forumpage=11&PHPSESSID=ca03e058b90
- to check archive.org, probably dead
- http://sourceforge.net/projects/sf-xpaint/files/netwmpager/
- multihead size problem
- https://github.com/BurntSushi/pager-multihead
- doesn't run with bspwm
- https://code.google.com/p/neap/
- systray icon
- http://offog.org/code/vdesk/
- works orthogonally to wm desktops(?)
- https://github.com/ijanos/desktend - not a pager
Infos
Conky
- 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.
Other
- inxi - A newer, better system information script for irc, administration, and system troubleshooters.
Notifications
Widgets
Icons
On Screen Display
- NotificaThor - Themeable On Screen Displays for X.
- ghosd -- on-screen display (osd) with transparency
Volume
- https://code.google.com/p/volume-applet - keeps disappearing?
other
- gnome2-globalmenu - Global Menu Bar for GNOME, like Apples. Gnome 3 in dev.
- fsv (pronounced eff-ess-vee) is 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
Tiling
For non tiling WMs
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.
Monitor
xset dpms force standby xset -dpms turn off power saving xset +dpms turn on power saving xset s off then off screensaver
Screenshot
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
Colour
Widget toolkits
- https://en.wikipedia.org/wiki/Widget_toolkit
- http://en.wikipedia.org/wiki/List_of_widget_toolkits
- http://en.wikipedia.org/wiki/Template:Widget_toolkits
- https://wiki.archlinux.org/index.php/Uniform_Look_for_Qt_and_GTK_Applications - Qt and GTK+ based programs both use a different widget toolkit to render the graphical user interface. Each come with different themes, styles and icon sets by default, among other things, so the "look and feel" differ significantly. This article will help you make your Qt and GTK+ applications look similar for a more streamlined and integrated desktop experience.
- https://en.wikipedia.org/wiki/Intrinsics - xaw, motif, openlook
Xaw
OPEN LOOK
FLTK
1992
wxWidgets
1992
GTK+
Used by GNOME
GTK2 theming
Tools
- Zenity is a tool that allows you to display Gtk+ dialog boxes from the command line and through shell scripts. It is similar to gdialog, but is intended to be saner. It comes from the same family as dialog, Xdialog, and cdialog, but it surpasses those projects by having a cooler name.
- GtkOrphan (a Perl/Gtk2 application for debian systems) is a graphical tool which analyzes the status of your installations, looking for orphaned libraries. It implements a GUI front-end for deborphan, adding the package-removal capability.
GTK3 theming
Clutter
Qt
qtconfig qt4
File managers
PCManFM
SpaceFM
QTFM
Sunflower
Other
Screen magnification
Multitouch
- 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.
Remote
History
other
Clipboard
Selecting any text in Linux copies it and scroll-wheel middle click pastes it, separate to the Ctrl-c Ctrl-v clipboard. This means double clicking a non-line broke sentence copies it to the middle click paste clipboard.
This most used selection is the PRIMARY selection, and is used when the user selects some data. The CLIPBOARD selection is used when the user selects some data and explicitly requests it to be "copied" to the clipboard, such as by invoking "Copy" under the "Edit" menu of an application. An associated request of "Paste" results in the data of the CLIPBOARD selection being used.
"The PRIMARY selection is used when you select some text with the mouse. You usually paste it using the middle button. The CLIPBOARD selection is used when you copy text by using, for example, the Edit/Copy menu. You may paste it using the Edit/Paste menu."
Shift-Insert paste PRIMARY selection (where ctrl-v isn't supported)
Ctrl-v pate CLIPBOARD selection
Articles
Software
xclip
- xclip is a command line interface to the X11 clipboard. It can also be used for copying files, as an alternative to sftp/scp, thus avoiding password prompts when X11 forwarding has already been setup.
Autocutsel
- Autocutsel tracks changes in the server's cutbuffer and CLIPBOARD selection. When the CLIPBOARD is changed, it updates the cutbuffer. When the cutbuffer is changed, it owns the CLIPBOARD selection. The cutbuffer and CLIPBOARD selection are always synchronized. Since the VNC client synchronizes the Windows' clipboard and the server's cutbuffer, all three "clipboards" are always kept synchronized.
- https://github.com/Cloudef/xcmenu xcmenu - By default it keeps history of your XA_CLIPBOARD, and keeps XA_PRIMARY on sync with it.
XSel
- XSel - a command-line program for getting and setting the contents of the X selection. Normally this is only accessible by manually highlighting information and pasting it with the middle mouse button.
CopyQ
- CopyQ is clipboard manager with searchable and editable history.
Parcellite
- Parcellite is a lightweight GTK+ clipboard manager. This is a stripped down, basic-features-only clipboard manager with a small memory footprint for those who like simplicity.
Future
Wayland
- Wayland is intended as a simpler replacement for X, easier to develop and maintain. GNOME and KDE are expected to be ported to it. Wayland is a protocol for a compositor to talk to its clients as well as a C library implementation of that protocol. The compositor can be a standalone display server running on Linux kernel modesetting and evdev input devices, an X application, or a wayland client itself. The clients can be traditional applications, X servers (rootless or fullscreen) or other display servers.
Part of the Wayland project is also the Weston reference implementation of a Wayland compositor. Weston can run as an X client or under Linux KMS and ships with a few demo clients. The Weston compositor is a minimal and fast compositor and is suitable for many embedded and mobile use cases.