Desktop Environment

Some useful text commands to work on graphical interfaces.

Xorg

Resizing windows

Resize all of the windows from $PROGRAM to 800x600:

xdotool search --name $PROGRAM windowsize %@ 800 600

Resize the active window to 800x600:

xdotool getactivewindow windowsize 800 600

Clipboard

Get the contents of the X selection on stdout:

xclip -o

Copy clipboard contents (e.g. from ctrl-C in a graphical program) to the primary (which can be basted with a middle mouse click):

xclip -o -selection clipboard | xclip -i

Screenshots

With ImageMagick

The default behaviour of import is to take a custom rectangular portion of the screen; just launch:

import $FILENAME

and drag the cursor to select the area you are interested into.

To get a screenshot of the full screen (the root window):

import -window root $FILENAME

To get a screenshot of one specific window:

import -window `xwininfo | awk '/.*Window id:.*/ {print $4}'` $FILENAME

and then click on the window you are interested in; to also include the window borders the command is:

import -border -window `xwininfo | awk '/.*Window id:.*/ {print $4}'` \
$FILENAME

To take a screenshot of a running screensaver, login remotely to the computer e.g. via ssh, with the same user that is running the X session, and then:

DISPLAY=:0 import -window root $FILENAME

XDG

Set MIME associations and default apps

xdg-settings is used to set some deskoppish properties and expecially the default web browser:

xdg-settings set default-web-browser xombrero.desktop

other associations can be set using xdg-mime:

xdg-mime default apvlv.desktop application/pdf

of course the .desktop can be any available file for any app, placed in one of the standard directories, either system-wide or per-user.

Both write to ~/.local/share/applications/mimeapps.list.

See Also