[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[STUMP] additions to the info manual
From: |
Eric Abrahamsen |
Subject: |
[STUMP] additions to the info manual |
Date: |
Fri, 28 Feb 2014 11:54:28 +0800 |
User-agent: |
Gnus/5.13001 (Ma Gnus v0.10) Emacs/24.3 (gnu/linux) |
I've been meaning to do this for a while: when I started using stump I
was pretty confused about some of the basic concepts and behaviors (it
was also my first tiling WM), and I thought the manual could use a
little bit more handholding. I've written a manual addition including
what I would have liked to have known in the beginning, and am posting
it here for comments (there are also direct questions in brackets). I
envision this going in the info manual, in the "Introduction" section,
after "Basic Usage", with both "Basic Concepts" and "Manipulating Frames
and Windows" being separate top-level sections.
I haven't posted this as an actual patch because I thought it would be
easier to incorporate comments/additions/corrections in plain text. If
people agree this is useful and we hash out a final version, I can do
the patch then. Or it can go on the wiki, or whatever! Hope this is
helpful.
E
━━━━━━━━━━━━━━━━━━━━━━━━
STUMPWM INFO ADDITIONS
━━━━━━━━━━━━━━━━━━━━━━━━
Basic Concepts
══════════════
Screens
───────
A screen is an Xlib concept representing a section of video memory
onto which physical monitors (or “heads”) are mapped. Imagine your
computer’s video output as an abstract rectangle into which all the
heads are arranged. The actual location of the heads in this rectangle
is determined not by StumpWM, but by another X-related program such as
Xrandr. [how does stump arrange them if they’re already plugged in
when X starts? simple cloning, right? are there other commonly-used
programs for specifying the location of heads within a screen?]
What this means in practical terms depends on whether you’re using
Xinerama or not.
If you are, you’ll only ever have a single screen no matter how many
monitors are connected to your computer. Each monitor, or head, will
have its own frame, and you can move between heads using the normal
frame movement commands.
If you’re not using Xinerama, you’ll have multiple screens, with one
head per screen. That means that you’ll move between heads using
screen movement commands (`snext’, `sprev’, and `sother’) rather than
frame movement commands.
Heads
─────
A head represents a physical monitor connected to the computer. As
mentioned above, how this plays out depends on whether you’re using
Xinerama.
Groups
──────
A group is usually referred to as a “desktop” or “workspace” in other
window managers. StumpWM starts with a single group, called “Default”.
Each group has its own configuration of frames and windows that is
separate from and independent of other groups. You can’t have
different groups display in different monitors: when you switch
groups, all monitors switch to that group.
Each group contains an ordered list of frames.
Floating Groups
───────────────
[I don’t know enough about what floating groups are or how they work]
Frames
──────
Frames are the boxes within which windows are displayed. StumpWM
starts with a single frame per head, meaning that each monitor shows a
single window, full screen. If you want to see two or more windows
side-by-side, you can “split” this frame.
Frames live within a “frame tree”. As you split frames, each new frame
becomes a child of the frame it was split from. Practically speaking,
this makes no difference, unless you use the `sibling’ command, which
will move to the frame from which the current frame was created. [in
which case, it should probably be called the `parent’ command, no?]
Each frame has its own ordered list of windows, only one of which is
visible at time.
Windows
───────
Windows are created by programs to display their output. Each window
can only belong to a single frame.
Trays and the Mode Line
───────────────────────
[what is a tray? how does the mode line relate to frames? mention the
new stumptray.lisp in contrib?]
Manipulating Frames and Windows
═══════════════════════════════
By default, StumpWM starts with a single group, called “Default”, that
contains one full-screen frame per head. You can split individual
frames horizontally or vertically using the `hsplit’ and `vsplit’
commands, bound to “C-t S” and “C-t s” by default. See the Frames and
Windows sections of the manual for a complete listing of commands.
Both frames and windows exist in ordered lists. In the following
commands, the terms “next” and “previous” refer to relative positions
in these lists.
Moving Between Frames
─────────────────────
Once you have multiple frames, you can move between them in various
ways:
• `fnext’ (“C-t o” or “C-t TAB”) jumps to the next frame in the
current group’s frame list.
• `fother’ (“C-t M-TAB”) jumps to the last frame that had focus.
• `fselect’ (“C-t f”) displays numbers on each visible frame: hit a
number key to move to that frame.
• `move-focus’ (“C-t <arrow key>”) focus the frame in the direction of
the arrow key pressed.
• `sibling’ (unbound by default) focus the frame from which the
current frame was split.
Manipulating Windows
────────────────────
Some commands change which window is currently focused, some move
windows between frames, and some may do both at once.
There are two general ways to move focus between windows: either
between windows belonging to the current frame, or between all windows
within the current group. Within a single frame:
• `next-in-frame’ (“C-t C-M-n”) focus the next window in the current
frame’s list of windows.
• `prev-in-frame’ (“C-t C-M-p”) focus the previous window in the
current frame’s list of windows.
• `other-in-frame’ (“C-t M-t”) focus the most recently focused window
in the current frame’s list of windows.
• `frame-windowlist’ (unbound by default) display a menu of windows in
the currently-focused frame, and allow the user to choose one.
Alternately, the command `frame-windows’ will simply display the
list of window names, with no menu choice available.
Within the current group, the following commands will go straight to
the specified window. They will never move a window from its original
frame, and so may result in focus switching frames.
• `next’ (“C-t M-n”) focus the next window in the current group.
• `prev’ (“C-t M-p”) focus the previous window in the current group.
• `other’ or `other-window’ (unbound by default) focus the most
recently focused window in the current group.
• `next-urgent’ (“C-t C-u”) focus the next window that has marked
itself “urgent”.
• `select’ or `select-window’ (“C-t '”) prompt for the title of a
window and focus it. Works with partial completion of the title.
• `select-window-by-name’ (unbound by default) prompt for the title of
a window and focus it. Requires the window title to be entered
exactly.
• `select-window-by-number’ (“C-t <number>”) choose a window by
number.
• `windowlist’ (“C-t "") display a menu of windows in the
currently-focused group, and allow the user to choose one.
The following commands always keep the current frame focused. If the
selected window is not in the current frame, it will be pulled there
from wherever it is (hence the “pull” naming scheme).
• `pull’ or `pull-window-by-number’ (“C-t C-<number>”) pull the
numbered window into the current frame.
• `pull-hidden-next’ (“C-t n” or “C-t SPC”) pull the next currently
undisplayed window in the window list into the current frame.
• `pull-hidden-previous’ (“C-t p”) pull the previous currently
undisplayed window in the window list into the current frame.
• `pull-hidden-other’ (“C-t C-t”) pull the most recently focused,
currently undisplayed window into the current frame.
The following commands move the current window from one frame to
another, bringing focus with them.
• `move-window’ (“C-t M-<arrow>”) move the currently focused window in
the direction indicated by the arrow key.
• `exchange-direction’ (unbound by default) swap the currently focused
window with the top window of the frame in the direction indicated.
- [STUMP] additions to the info manual,
Eric Abrahamsen <=