• R/O
  • SSH

Résumé du dépôt

Tags
Aucun tag

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commits Récents RSS

Révision l'heure Auteur Message:
7958db8a20da 2022-05-05 05:01:09 Russell Adams tip Deprecated this repo, merged into stumpwm contrib.
befab5c1932e 2022-03-13 23:53:24 Russell Adams Added tag 0.0.2 for changeset e84af0768434
e84af0768434 2022-03-13 23:52:59 Russell Adams 0.0.2 Added spatial-groups:install-default-keybinds to install ...
0256ab2e1096 2022-03-09 02:52:43 Russell Adams Added tag 0.0.1 for changeset 7b53b9a23fbd
7b53b9a23fbd 2022-03-09 02:10:47 Russell Adams 0.0.1 added install instructions to README
5b47f50a71ca 2022-03-09 02:04:07 Russell Adams updated todos
22e7896328ca 2022-03-09 01:54:32 Russell Adams Successfully moved to a module
a4315d08b25e 2022-03-09 01:15:36 Russell Adams figuring out startup
c0b85ec43e9b 2022-03-09 01:06:17 Russell Adams removed dot file, now a module
fe67178c3cff 2022-03-09 01:05:55 Russell Adams initial move to module format

Tags récemment modifiées

Nom Révision l'heure Auteur
0.0.1 7b53b9a23fbd 2022-03-09 02:10:47 Russell Adams
0.0.2 e84af0768434 2022-03-13 23:52:59 Russell Adams
tip 7958db8a20da 2022-05-05 05:01:09 Russell Adams

Branches

Nom Révision l'heure Auteur Message:
default 7958db8a20da 2022-05-05 05:01:09 Russell Adams Deprecated this repo, merge...

README

This repository is deprecated. Spatial Groups has been merged into StumpWM-Contrib:

https://github.com/stumpwm/stumpwm-contrib

No further updates will be released here.

Old Readme:

======================================================================

Installation:

 mkdir ~/.stumpwm.d/modules  (if needed)
 cd ~/.stumpwm.d/modules

 hg clone http://hg.pf.osdn.net/view/r/rl/rladams/StumpWMSpatial

  - or -

 Visit with a browser: https://osdn.net/users/rladams/pf/StumpWMSpatial/scm/tree/tip/
 Click "Export TAR" on the right side.
 While in the modules directory: tar -zxvf TARFILE       (ie: StumpWMSpatial-5b47f5.tar.gz)

 In your .stumpwmrc, add the following:

   (in-package :stumpwm)
   (load-module "spatial-groups")
   (spatial-groups:install-default-keybinds) ; optional

 Restart stumpwm.

======================================================================

From the original post:

http://demosthenes.org/tmp/StumpWMSpatialGroups.mp4

Please pardon the rough edges. I'm not starting a Youtube channel,
just trying to have a conversation about how to manage windows and
groups in Stump.

Spatial grouping abuses Stump's ability to dynamically create groups
to create a sparse 3d array of groups, visualized as multiple desktops
of a 2d grid of screens. Hotkeys use arrows to navigate the grid and
swap desktops in a way which emulates a larger physical screen
surface.

Using this method allows me to group windows by project, adjacent to
each other. This allows absolute navigation to each window, as opposed
to relative navigation (ie: alt-tab).

I'm not grouping related application windows on the same screen, but
rather organizing patterns of groups to keep related application
windows cognitively near each other. I still may use splits and tile
windows within a screen, but not as often.

Concepts:
 Spatial groups use a 3d coordinate system: “x,y,z”
 Valid groups are “0,0,0”, “-1,2,0”, etc.
 Z is used as the desktop index

Keys:
 Control-Shift-{Left,Right}: Change desktop (Z axis)
 Control-Arrows: Navigate virtual screens on current desktop
 Control-Shift-Up: Return to 0,0 on current desktop (Z)
 Shift-Arrows: Navigate splits on current screen group

======================================================================

This idea of spatial groupings I have been using since Enlightenment
in the early 2000's. E later dropped their virtual desktops with
expandable numbers of screens in a grid.

I've implemented this concept on xmonad, awesome WM, i3, and now
StumpWM (my fav).

My work style is to start a central task, and then supplemental tasks
should be organized radially from that central task. To do this, I use
a 2d plane of workspaces where I can easily layout my windows
geometrically and navigate them spatially in lieu of a desktop or tab
analogy. Multiple projects or key tasks are separated on separate
planes.

In this configuration, each workspace is a tag organized into a 3d
cube of workspaces described by a simple coordinate system. To
navigate between these workspaces, simple keybindings have been
created.

Example Workspace Plane:

The example plane below puts Emacs into the central window, surrounded
by supplimental windows that help support the central task.

At any time from the central window, any supplemental window is only
one key chord away (Control+Arrows). Habit and simple organization
gives way to always knowing where to go to find an item in relation to
the central workspace.

+-----------------------------------------------+----------------------+
|                       |                       |                      |
|                       |  Suppliment           |                      |
|                       |                       |                      |
|                       |  Firefox              |                      |
|                       |                       |                      |
+----------------------------------------------------------------------+
|                       |                       |                      |
|  Supplement           |    Central Task       |  Suppliment          |
|                       |                       |                      |
|  SQL Window           |    EMACS              |  Documentation       |
|                       |                       |                      |
+----------------------------------------------------------------------+
|                       |                       |                      |
|                       |  Suppliment           |                      |
|                       |                       |                      |
|                       |  Two shell prompts    |                      |
|                       |                       |                      |
+-----------------------------------------------+----------------------+


There is no Alt-tab style confusion of trying to find the right window
in a dynamic stack. This organization also lends itself to full screen
windows, or relatively few tiles.

Second level supplementary windows can be created in the corners,
where they are at most two key chords from center. These are less
frequently used and may provide scratch space for additional windows.

The third dimension comes in when managing multiple core tasks in
parallel, where the advantage of easy radial addressing becomes a
concern for another project. The third dimension allows us to stack
workspaces, and toggle between them when it is time to change
projects.

+-----------------------------------------------+----------------------+
| 1,1,1                 |                       |                      |
|                       |  Suppliment           |                      |
|                       |                       |                      |
|                       |  Firefox              |                      |---------+
|                       |                       |                      |         |
+----------------------------------------------------------------------+         |
|                       |                       |                      |         |
|  Supplement           |    Central Task       |  Suppliment          |         |
|                       |                       |                      |         |----------+
|  SQL Window           |    EMACS              |  Documentation       |---------+          |
|                       |                       |                      |         |          |
+----------------------------------------------------------------------+         |          |
|                       |                       |                      |         |          |
|                       |  Suppliment           |                      |on       |          |
|                       |                       |                      |         |----------+
|                       |  Two shell prompts    |                      |---------+          |
| 1,3,1                 |                       |                      |         |          |
+-----------------------------------------------+----------------------+         |          |
          |                       |                       |                      |ion       |
          |                       |  Two shell prompts    |                      |          |
          | 1,3,2                 |                       |                      |----------+
          +-----------------------------------------------+----------------------+          |
                     |                       |                       |                      |
                     |                       |  Two shell prompts    |                      |
                     | 1,3,3                 |                       |                      |
                     +-----------------------------------------------+----------------------+

======================================================================

TODO:

 - Multiple monitor support?
 - Cleanup code