[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [STUMP] additions to the info manual
From: |
Eric Abrahamsen |
Subject: |
Re: [STUMP] additions to the info manual |
Date: |
Fri, 07 Mar 2014 09:23:44 +0800 |
User-agent: |
Gnus/5.13001 (Ma Gnus v0.10) Emacs/24.3 (gnu/linux) |
David Bjergaard <address@hidden> writes:
> Hi Eric,
>
> Since there hasn't been any new input, could you open a pull request for
> the new additions? I've been doing some more reading on multihead and
> dynamic addition of external monitors, and I think its best if we remove
> all the Xinerama from the docs. To that end, could you make sure that
> you're new additions don't include any references to it? Anyone still
> using Xinerama knows it and doesn't need any of the pedagogy of the
> manual, it will just confuse anyone who doesn't.
Cool, will do. I'll remove mentions of Xinerama. Is there some generic
term for the programs that do on-the-fly monitor addition/removal and
configuration?
I haven't used github pull requests before (and also need to format the
patch as texinfo), so this might take a bit.
E
> Eric Abrahamsen <address@hidden> writes:
>
>> Eric Abrahamsen <address@hidden> writes:
>>
>>> Thanks for all the comments, and I'm glad this seems welcome! I did
>>> indeed write it in org-mode, because that seemed easiest as a first
>>> step, but I certainly intend to send a proper texinfo patch when we're
>>> done. Org will export both to texinfo, and to HTML (for use on the
>>> wiki). I'll send along the org source as well, for good measure.
>>>
>>> I've put some comments on your comments below. I guess I'll give it a
>>> couple of days to see if anyone else wants to make changes, then send
>>> along another version.
>>
>> Okay, here's what I think could be the final version. I rearranged some
>> things (merged the screens and heads together), and added some stuff.
>> Right now the only outstanding question is how the frame tree actually
>> works...
>>
>> Basic Concepts
>> ══════════════
>>
>> Screens and Heads
>> ─────────────────
>>
>> A screen is an Xlib concept representing a section of video memory
>> onto which physical monitors, called “heads”, are mapped. A screen can
>> be thought of as an abstract rectangle containing all the heads
>> arranged in a particular layout.
>>
>> With most modern systems, you’ll only have a single screen no matter
>> how many heads are connected to your computer. Each head will have its
>> own frame, and you can move between heads using the normal frame
>> movement commands.
>>
>> The layout of the heads within the screen can be specified in one of
>> two ways: either at startup using your system’s Xorg configuration
>> files, or on the fly using tools like XRandR or Xinerama. If the
>> computer is booted with multiple monitors attached, but without
>> specifying a layout for them, they will all show identical output.
>>
>> StumpWM will attempt to detect the layout of the heads once at
>> startup, or any time a RandR command is issued.
>>
>> In rarer setups you may 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.
>>
>>
>> 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
>> ───────────────
>>
>> Within a floating group, windows behave more like they do in
>> traditional window managers: rather than being arranged into frames,
>> they each have their own box, which can be freely resized and
>> repositioned, and allowed to overlap. Each window is has a thicker
>> border at the top. Left click in this border and drag to move the
>> window, or right click and drag to resize it.
>>
>> Most of the window-switching commands listed below do not function in
>> a floating group. You’re restricted to `other’, the `select-window-*’
>> commands, and `windowlist’.
>>
>>
>> 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 windows side-by-side,
>> you can “split” this frame in two, either vertically or horizontally.
>> These frames can be further split, creating nested boxes.
>>
>> Technically speaking, frames live within a “frame tree”. When you
>> split a frame, the command actually creates /two/ new frames
>> side-by-side within the original parent frame. This makes no practical
>> difference, unless you use the `sibling’ command, which will move to
>> the other child frame within the parent frame. [Is this paragraph even
>> correct? I tested it by splitting a head into left-and-right frames,
>> then splitting each of those frames top-and-bottom. Calling `sibling’
>> in any of the four frames moved to the top left frame, ie the
>> “original” one. On the right-hand side, at least, I would have
>> expected `sibling’ to move between top and bottom.]
>>
>> Within this frame tree model, all frames either contain other frames,
>> or windows. The command `fclear’ will hide all a frame’s windows and
>> show the background.
>>
>>
>> Windows
>> ───────
>>
>> Windows are created by programs to display their output. They take the
>> shape of the frame in which they are created. The windows within a
>> frame are ordered by how recently that window was focused. Only the
>> top window in the stack is visible.
>>
>>
>> System Trays and the Mode Line
>> ──────────────────────────────
>>
>> Many users choose to sacrifice a little screen real-estate to display
>> some generally useful information: the current time and date, wireless
>> network connections, the names of open windows, etc. StumpWM allows
>> you to display this information in a bar across either the top or the
>> bottom of the screen. There are two ways to do this: using external
>> programs called system trays, or using StumpWM’s own mode line.
>>
>> System trays are a special kind of X window. They advertise to running
>> programs that they are available for embedding icons or notifications
>> from those programs. They often also display clickable icons for each
>> open window. Common tray programs include the GNOME panel or KDE’s
>> kicker, or simpler programs such as stalonetray. Simply starting one
>> of these programs is usually enough for StumpWM to detect it, place it
>> correctly, and allow it to function normally.
>>
>> The mode line, a concept borrowed from Emacs, is a built-in part of
>> StumpWM. It is essentially a string of text that can include a variety
>> of information about your current session, including the names of
>> current groups and windows. Several contrib modules provide for
>> different types of information. See The Mode Line (and the contrib
>> directory) for more.
>>
>>
>> Manipulating Frames and Windows
>> ═══════════════════════════════
>>
>> Frames and windows are concepts borrowed from Emacs and the GNU Screen
>> program, and should be familiar to users of those programs. Others may
>> find the terms a little confusing. In other window managers, a
>> “window” usually refers to a bounded box on the screen, showing output
>> from a single program. StumpWM splits this into two concepts: the
>> “frame” is the bounded box, the “window” is the visible output of a
>> program.
>>
>> One frame can contain many windows. As new windows are created, they
>> appear at the top of the window-stack of the current frame. This is
>> also a little different from other tiling window managers, many of
>> which automatically create new frames for new windows.
>>
>> Both frames and windows are ordered by when they were last focused. In
>> the following commands and documentation, the terms “next” and
>> “previous” refer to this order, and “other” refers to the
>> most-recently focused object. Calling “other” commands multiple times
>> will bounce back and forth between the two most recent objects.
>>
>> By default, StumpWM starts with a single group, called “Default”,
>> which 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. When a
>> frame is split, the next-most-recently-focused window is pulled into
>> the new frame. See the Frames and Windows sections of the manual for a
>> complete listing of commands.
>>
>>
>> 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) prompt for a direction,
>> then swap the currently focused window with the top window of the
>> frame in that direction.
>>
>>
>> _______________________________________________
>> Stumpwm-devel mailing list
>> address@hidden
>> https://lists.nongnu.org/mailman/listinfo/stumpwm-devel
>
> _______________________________________________
> Stumpwm-devel mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/stumpwm-devel