GUI

From Things and Stuff Wiki
Revision as of 02:11, 3 October 2012 by Milk (talk | contribs) (→‎Utils)
Jump to navigation Jump to search


Startup

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.

xrandr

xrandr -q
  show possible and current screen resolutions
xdpyinfo | grep 'dimensions:'
  show just current screen resolution in px and mm

Dualscreen

Multihead

GUI

Utils

  • devilspie
  • 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.

VNC/SSH

Fonts

Window Managers

Openbox

xmonad

  • 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.

Config

cabal --recompile
  after changing ~/.xmonad/xmonad.hs

Utils

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

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

My own config. See GitHub for source.

[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

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

Revelation

Expose-like client selection.

Freedesktop menu

MPD

Other

Other

Launchers

Infos

Widget toolkit

GTK+

Qt

qtconfig qt4

File managers

Microblogging