v1.3.0 ready for release; fix for wrangle and zoom keybinds, update docs and config.def.h
This commit is contained in:
parent
69da0d7c77
commit
2e003caebd
12 changed files with 44 additions and 245 deletions
214
README.md
214
README.md
|
@ -2,22 +2,24 @@
|
||||||
## the minimalist floatiling window manager that flows
|
## the minimalist floatiling window manager that flows
|
||||||
-- Derek Stevens <nilix@nilfm.cc> 2019 --
|
-- Derek Stevens <nilix@nilfm.cc> 2019 --
|
||||||
|
|
||||||
![micro centered](./screenshots/micro_centered.png)
|
[![micro centered](./screenshots/micro_centered.png.thumb.png)](./screenshots/micro_centered.png)
|
||||||
![floating porn](./screenshots/floating.png)
|
[![floating porn](./screenshots/floating.png.thumb.png)](./screenshots/floating.png)
|
||||||
![firefox maximized](./screenshots/firefox_maximized.png)
|
[![firefox maximized](./screenshots/firefox_maximized.png.thumb.png)](./screenshots/firefox_maximized.png)
|
||||||
![pseudotiling](./screenshots/pseudotiling.png)
|
[![pseudotiling](./screenshots/pseudotiling.png.thumb.png)](./screenshots/pseudotiling.png)
|
||||||
|
|
||||||
### About
|
### About
|
||||||
`ryudo` is a fork of Russ Cox's `rio`, itself a fork of David Hogan's `9wm`.
|
`ryudo` is a fork of Russ Cox's `rio`, itself a fork of David Hogan's `9wm`.
|
||||||
The primary additions I've made are:
|
The primary additions I've made are:
|
||||||
|
|
||||||
- `urxvt`, `konsole`, and `Alacritty` are detected as proper terminal programs for sweeping out new windows
|
- Explicit list of eligible terminal programs in `config.h`
|
||||||
- `urxvt` is the default terminal emulator (still tries `9term` and then `xterm` if no dice)
|
- `urxvt` is the default terminal emulator (still tries `9term` and then `xterm` if no dice)
|
||||||
- Window spawning behavior has been made more natural -- windows shouldn't spawn partially offscreen like with `rio`
|
- Window spawning behavior has been made more natural -- windows shouldn't spawn partially offscreen like with `rio`
|
||||||
- Customizable colors, borders, fonts, gaps, and keybinds in `config.h`
|
- Customizable colors, borders, fonts, gaps, and keybinds in `config.h`
|
||||||
- Multimonitor support via `Xrandr`
|
- Multimonitor support via `Xrandr`
|
||||||
- Default keybindings:
|
- Default keybindings:
|
||||||
+ New Terminal: Super+Slash
|
+ New Terminal: Super+Slash
|
||||||
|
+ Switch Windows: Alt-Tab
|
||||||
|
+ Switch to Window on the next monitor: Alt-Shift-Tab
|
||||||
+ Destroy: Super+D
|
+ Destroy: Super+D
|
||||||
+ Iconify: Super+I
|
+ Iconify: Super+I
|
||||||
+ Uniconify: Super+U
|
+ Uniconify: Super+U
|
||||||
|
@ -45,6 +47,7 @@ The primary additions I've made are:
|
||||||
+ Optionally notify with `notify-send` which desktop is switched to (I use it with `dunst`)
|
+ Optionally notify with `notify-send` which desktop is switched to (I use it with `dunst`)
|
||||||
+ Gaps for pseudo-tiling
|
+ Gaps for pseudo-tiling
|
||||||
+ Option to swap the keyboard shortcuts between "Snap Big Center" and "Snap Floating Center" (and the preferred behavior for terminals launched by keyboard)
|
+ Option to swap the keyboard shortcuts between "Snap Big Center" and "Snap Floating Center" (and the preferred behavior for terminals launched by keyboard)
|
||||||
|
+ Focus model for new windows in multimonitor setup (follow mouse or follow active window)
|
||||||
|
|
||||||
The name "Ryudo" is a nod to "Rio" and a Japanese word for "flow."
|
The name "Ryudo" is a nod to "Rio" and a Japanese word for "flow."
|
||||||
Using `ryudo` should feel very natural -- you can do things with keyboard or
|
Using `ryudo` should feel very natural -- you can do things with keyboard or
|
||||||
|
@ -80,204 +83,3 @@ Of the bugs and caveats not already mentioned in `rio`'s README:
|
||||||
### Legacy
|
### Legacy
|
||||||
|
|
||||||
The original README from `rio`, (which contains the original README from 9wm) is in this repository. See [README.rio](./readme.rio)
|
The original README from `rio`, (which contains the original README from 9wm) is in this repository. See [README.rio](./readme.rio)
|
||||||
This is David Hogan's 9wm updated to behave more like
|
|
||||||
Plan 9's rio. Since I cannot get approval for the changes
|
|
||||||
and I'd prefer not to resort to patches, I have renamed it "rio".
|
|
||||||
|
|
||||||
Current incompatibilities that would be nice to fix:
|
|
||||||
|
|
||||||
- The command-line options should be made more like Plan 9.
|
|
||||||
|
|
||||||
- Should work out a protocol between 9term and rio so that:
|
|
||||||
* 9term can tell rio to blue its border during hold mode
|
|
||||||
|
|
||||||
- Should change window focus on b2/b3 clicks and then
|
|
||||||
pass along the click event to the now-focused window.
|
|
||||||
|
|
||||||
- Should change 9term to redirect b3 clicks to rio so that rio
|
|
||||||
can put up the usual b3 menu.
|
|
||||||
|
|
||||||
Axel Belinfante contributed the code to handle border grabbing
|
|
||||||
for resize and various other improvements.
|
|
||||||
|
|
||||||
The original README is below.
|
|
||||||
|
|
||||||
- russ cox
|
|
||||||
rsc@swtch.com
|
|
||||||
30 march 2004
|
|
||||||
|
|
||||||
|
|
||||||
9wm Version 1.2
|
|
||||||
Copyright 1994-1996 David Hogan.
|
|
||||||
|
|
||||||
What is 9wm?
|
|
||||||
============
|
|
||||||
|
|
||||||
9wm is an X window manager which attempts to emulate the Plan 9 window
|
|
||||||
manager 8-1/2 as far as possible within the constraints imposed by X.
|
|
||||||
It provides a simple yet comfortable user interface, without garish
|
|
||||||
decorations or title-bars. Or icons. And it's click-to-type. This
|
|
||||||
will not appeal to everybody, but if you're not put off yet then read
|
|
||||||
on. (And don't knock it until you've tried it.)
|
|
||||||
|
|
||||||
One major difference between 9wm and 8-1/2 is that the latter provides
|
|
||||||
windows of text with a typescript interface, and doesn't need to run a
|
|
||||||
separate program to emulate a terminal. 9wm, as an X window manager,
|
|
||||||
does require a separate program. For better 8-1/2 emulation, you should
|
|
||||||
obtain Matthew Farrow's "9term" program (ftp://ftp.cs.su.oz.au/matty/unicode),
|
|
||||||
version 1.6 or later (earlier versions don't cooperate with 9wm in
|
|
||||||
implementing "hold mode"). Of course, you can run xterm under 9wm as well.
|
|
||||||
|
|
||||||
What is 9wm not?
|
|
||||||
================
|
|
||||||
|
|
||||||
9wm is not a virtual window manager. It is not customisable to any
|
|
||||||
great extent. It is not large and unwieldy, and doesn't use the X
|
|
||||||
toolkit. Requests to make it any of these things will be silently
|
|
||||||
ignored (or flamed if I have had a bad day :-) If you want tvtwm
|
|
||||||
or mwm, you know where to get them...
|
|
||||||
|
|
||||||
Where do I get it?
|
|
||||||
==================
|
|
||||||
|
|
||||||
The latest version of 9wm is held at ftp://ftp.cs.su.oz.au/dhog/9wm
|
|
||||||
|
|
||||||
Author
|
|
||||||
======
|
|
||||||
|
|
||||||
9wm was written by David Hogan (dhog@cs.su.oz.au), a postgraduate
|
|
||||||
student at the Basser Department of Computer Science, University
|
|
||||||
of Sydney (http://www.cs.su.oz.au/~dhog/).
|
|
||||||
|
|
||||||
Licence
|
|
||||||
=======
|
|
||||||
|
|
||||||
9wm is free software, and is Copyright (c) 1994-1996 by David Hogan.
|
|
||||||
Permission is granted to all sentient beings to use this software,
|
|
||||||
to make copies of it, and to distribute those copies, provided
|
|
||||||
that:
|
|
||||||
|
|
||||||
(1) the copyright and licence notices are left intact
|
|
||||||
(2) the recipients are aware that it is free software
|
|
||||||
(3) any unapproved changes in functionality are either
|
|
||||||
(i) only distributed as patches
|
|
||||||
or (ii) distributed as a new program which is not called 9wm
|
|
||||||
and whose documentation gives credit where it is due
|
|
||||||
(4) the author is not held responsible for any defects
|
|
||||||
or shortcomings in the software, or damages caused by it.
|
|
||||||
|
|
||||||
There is no warranty for this software. Have a nice day.
|
|
||||||
|
|
||||||
How do I compile/install it?
|
|
||||||
============================
|
|
||||||
|
|
||||||
Assuming your system is correctly configured, you should only need to
|
|
||||||
run xmkmf to generate the Makefile, and then run make or make install.
|
|
||||||
make install.man should copy the manpage (9wm.man) to the appropriate
|
|
||||||
directory.
|
|
||||||
|
|
||||||
If the make fails, complaining that the function _XShapeQueryExtension
|
|
||||||
does not exist, try removing the "-DSHAPE" from the Imakefile, and
|
|
||||||
run xmkmf and make again.
|
|
||||||
|
|
||||||
If you don't have imake, or it is misconfigured, or you would prefer
|
|
||||||
not to use it, try copying the file "Makefile.no-imake" to "Makefile",
|
|
||||||
then edit the definitions in this Makefile to suit your system. This
|
|
||||||
may require defining suitable compilation flags for your system
|
|
||||||
(normally imake does this for you). For instance, on AIX you must
|
|
||||||
include "-DBSD_INCLUDES" in CFLAGS.
|
|
||||||
|
|
||||||
How do I use it?
|
|
||||||
================
|
|
||||||
|
|
||||||
See the manual page for details. You should probably read the
|
|
||||||
man page for 9term as well.
|
|
||||||
|
|
||||||
What if I find a bug?
|
|
||||||
=====================
|
|
||||||
|
|
||||||
Please mail all bug reports to 9wm-bugs@plan9.cs.su.oz.au, so
|
|
||||||
that I can incorporate fixes into the next release. If you can
|
|
||||||
tell me how to fix it, all the better.
|
|
||||||
|
|
||||||
Known Problems/Bugs
|
|
||||||
===================
|
|
||||||
|
|
||||||
9wm tries hard to emulate 8-1/2, but isn't 100% compatible. If
|
|
||||||
you are an experienced 8-1/2 user, please be patient with it.
|
|
||||||
|
|
||||||
One intentional difference between 9wm and 8-1/2 is in the behaviour
|
|
||||||
of the menu when the last hidden item is unhidden. Under 8-1/2, when
|
|
||||||
the menu is next used, it pops up with "New" selected. Under 9wm,
|
|
||||||
the (new) last menu item will be selected. This is a feature. It
|
|
||||||
may be confusing if you frequently switch between 9wm and 8-1/2.
|
|
||||||
If you don't like this feature, email me for the one line fix.
|
|
||||||
|
|
||||||
There have been some problems encountered when resizing 9term on
|
|
||||||
some platforms. This turns out to be a problem in 9term (actually
|
|
||||||
in libXg, to be precise). Newer versions of 9term should be
|
|
||||||
immune to this, see matty@cs.su.oz.au if your 9term needs fixing.
|
|
||||||
|
|
||||||
Some client programs do weird things. One of these is Frame Maker.
|
|
||||||
It appears that if it has a modal dialog on the screen, then if any
|
|
||||||
of its windows are current, all keypresses are redirected to the
|
|
||||||
modal dialog. This is not 9wm's fault -- Frame Maker is doing this.
|
|
||||||
|
|
||||||
Programs like Netscape Navigator like to put riddiculously long
|
|
||||||
icon name properties on their windows, of the form "Netscape: blah blah".
|
|
||||||
There is no way that I know of to stop netscape from doing this. For this
|
|
||||||
reason, 9wm truncates labels at the first colon it finds. This keeps the
|
|
||||||
button 3 menu from becoming excessively wide. Note that with same
|
|
||||||
applications, you can use an iconName resource to set the label; this
|
|
||||||
works well for "xman", whose default icon name of "Manual Browser"
|
|
||||||
is a tad too long.
|
|
||||||
|
|
||||||
See Also
|
|
||||||
========
|
|
||||||
|
|
||||||
http://www.cs.su.oz.au/~dhog/
|
|
||||||
The 9wm Home Page
|
|
||||||
|
|
||||||
ftp://ftp.cs.su.oz.au/matty/unicode/
|
|
||||||
for source to 9term (get README first)
|
|
||||||
|
|
||||||
ftp://plan9.att.com/plan9/unixsrc/sam/
|
|
||||||
for source && info on Rob Pike's editor "sam"
|
|
||||||
|
|
||||||
ftp://rtfm.mit.edu/pub/usenet/news.answers/unix-faq/shell/rc
|
|
||||||
for information on a publically available implementation
|
|
||||||
of the Plan 9 shell "rc" for unix (or look in comp.unix.shell).
|
|
||||||
|
|
||||||
ftp://viz.tamu.edu/pub/rc
|
|
||||||
for source to the abovementioned implementation of rc.
|
|
||||||
|
|
||||||
http://plan9.att.com/plan9/
|
|
||||||
http://plan9.att.com/magic/man2html/1/8%c2%bd
|
|
||||||
for information on Plan 9 (including the 8-1/2 manual entry)
|
|
||||||
|
|
||||||
Acknowledgements
|
|
||||||
================
|
|
||||||
|
|
||||||
Thanks to Rob Pike for writing the original 8-1/2 program (and
|
|
||||||
before that, mux) which inspired the writing of 9wm.
|
|
||||||
|
|
||||||
Thanks to John Mackin, whose gwm "wool code" for emulating mux
|
|
||||||
was also an inspiration: I used it (and hacked it) until I got
|
|
||||||
too frustrated with gwm's large memory requirements and lack of
|
|
||||||
speed (sorry Colas!), and decided to write a dedicated program.
|
|
||||||
|
|
||||||
Thanks to Matthew Farrow for writing 9term.
|
|
||||||
|
|
||||||
A big thanks to Dave Edmondson for adding support for
|
|
||||||
multi-screen displays.
|
|
||||||
|
|
||||||
The following people helped beta test 9wm:
|
|
||||||
|
|
||||||
John Mackin
|
|
||||||
Noel Hunt
|
|
||||||
Fred Curtis
|
|
||||||
James Matthew Farrow
|
|
||||||
Danny Yee
|
|
||||||
Arnold Robbins
|
|
||||||
Byron Rakitzis
|
|
||||||
micro@cooper.edu
|
|
||||||
|
|
10
config.def.h
10
config.def.h
|
@ -31,7 +31,7 @@
|
||||||
#define MBORDERCOL 0x000000
|
#define MBORDERCOL 0x000000
|
||||||
|
|
||||||
/* Normal menu colors */
|
/* Normal menu colors */
|
||||||
#define MENUFGCOL 0x797979
|
#define MENUFGCOL 0xC9C9C9
|
||||||
#define MENUBGCOL 0x000000
|
#define MENUBGCOL 0x000000
|
||||||
|
|
||||||
/* Selected menu colors */
|
/* Selected menu colors */
|
||||||
|
@ -127,6 +127,13 @@
|
||||||
#define VIRTHEADER "virtual"
|
#define VIRTHEADER "virtual"
|
||||||
#define VIRTMSG "[%s]"
|
#define VIRTMSG "[%s]"
|
||||||
|
|
||||||
|
/* If enabled, having the mouse cursor in a monitor will cause
|
||||||
|
* new windows to spawn in that monitor; otherwise, they will spawn
|
||||||
|
* in the same monitor as the active window and can be moved afterward
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define MONITORFOLLOWSMOUSE
|
||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
|
|
||||||
/* List of window classes to spawn as sticky;
|
/* List of window classes to spawn as sticky;
|
||||||
|
@ -195,6 +202,7 @@
|
||||||
#define RESIZE_KEY XK_r
|
#define RESIZE_KEY XK_r
|
||||||
#define DESTROY_KEY XK_d
|
#define DESTROY_KEY XK_d
|
||||||
#define STICK_KEY XK_s
|
#define STICK_KEY XK_s
|
||||||
|
#define WRANGLE_KEY XK_a
|
||||||
|
|
||||||
#define SNAPLEFT_KEY XK_h
|
#define SNAPLEFT_KEY XK_h
|
||||||
#define SNAPRIGHT_KEY XK_l
|
#define SNAPRIGHT_KEY XK_l
|
||||||
|
|
34
key.c
34
key.c
|
@ -261,24 +261,6 @@ void keysetup(void) {
|
||||||
GrabModeSync,
|
GrabModeSync,
|
||||||
GrabModeAsync);
|
GrabModeAsync);
|
||||||
#endif
|
#endif
|
||||||
#ifdef WRANGLE_KEY
|
|
||||||
XGrabKey(
|
|
||||||
dpy,
|
|
||||||
wcode,
|
|
||||||
SHORTCUTMOD,
|
|
||||||
screens[i].root,
|
|
||||||
0,
|
|
||||||
GrabModeSync,
|
|
||||||
GrabModeAsync);
|
|
||||||
XGrabKey(
|
|
||||||
dpy,
|
|
||||||
wcode,
|
|
||||||
SHORTCUTMOD | Mod2Mask,
|
|
||||||
screens[i].root,
|
|
||||||
0,
|
|
||||||
GrabModeSync,
|
|
||||||
GrabModeAsync);
|
|
||||||
#endif
|
|
||||||
#ifdef SNAPLEFT_KEY
|
#ifdef SNAPLEFT_KEY
|
||||||
XGrabKey(
|
XGrabKey(
|
||||||
dpy,
|
dpy,
|
||||||
|
@ -680,7 +662,7 @@ void keypress(XKeyEvent* e) {
|
||||||
scode = XKeysymToKeycode(dpy, STICK_KEY);
|
scode = XKeysymToKeycode(dpy, STICK_KEY);
|
||||||
#endif
|
#endif
|
||||||
#ifdef WRANGLE_KEY
|
#ifdef WRANGLE_KEY
|
||||||
wcode = XKeysymToKeycode(dpy, WRANGLE_KEY);
|
acode = XKeysymToKeycode(dpy, WRANGLE_KEY);
|
||||||
#endif
|
#endif
|
||||||
#ifdef RESIZE_KEY
|
#ifdef RESIZE_KEY
|
||||||
rcode = XKeysymToKeycode(dpy, RESIZE_KEY);
|
rcode = XKeysymToKeycode(dpy, RESIZE_KEY);
|
||||||
|
@ -729,11 +711,7 @@ void keypress(XKeyEvent* e) {
|
||||||
int bcode = XKeysymToKeycode(dpy, STICKYTOBACK_KEY);
|
int bcode = XKeysymToKeycode(dpy, STICKYTOBACK_KEY);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef MONITORFOLLOWSMOUSE
|
|
||||||
m = current ? getmonitorbyclient(current) : getmonitorbymouse();
|
m = current ? getmonitorbyclient(current) : getmonitorbymouse();
|
||||||
#else
|
|
||||||
m = getmonitorbyclient(current);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
monitor = monitorinfo[m];
|
monitor = monitorinfo[m];
|
||||||
|
|
||||||
|
@ -774,16 +752,16 @@ void keypress(XKeyEvent* e) {
|
||||||
else if (e->keycode == scode && (e->state & SHORTCUTMOD) == (MODBITS))
|
else if (e->keycode == scode && (e->state & SHORTCUTMOD) == (MODBITS))
|
||||||
stick(current);
|
stick(current);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* move to another monitor */
|
||||||
|
|
||||||
#ifdef WRANGLE_KEY
|
#ifdef WRANGLE_KEY
|
||||||
else if (e->keycode == acode && (e->state & SHORTCUTMOD) == (MODBITS)) {
|
else if (e->keycode == acode && (e->state & SHORTCUTMOD) == (MODBITS)) {
|
||||||
wrangle(current, m < nmonitors - 1 ? monitorinfo[m++] : monitorinfo[0]);
|
wrangle(current, m < nmonitors - 1 ? monitorinfo[++m] : monitorinfo[0]);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ZOOM_KEY
|
/* toggle zoom mode */
|
||||||
else if (e->keycode == zcode && (e->state & SHORTCUTMOD) == (MODBITS))
|
|
||||||
zoom = !zoom;
|
|
||||||
#endif
|
|
||||||
#ifdef ZOOM_KEY
|
#ifdef ZOOM_KEY
|
||||||
else if (e->keycode == zcode && (e->state & SHORTCUTMOD) == (MODBITS)) {
|
else if (e->keycode == zcode && (e->state & SHORTCUTMOD) == (MODBITS)) {
|
||||||
zoom = !zoom;
|
zoom = !zoom;
|
||||||
|
|
3
manage.c
3
manage.c
|
@ -31,9 +31,6 @@ int manage(Client* c, int mapped) {
|
||||||
XSetWindowAttributes attrs;
|
XSetWindowAttributes attrs;
|
||||||
XRRMonitorInfo monitor;
|
XRRMonitorInfo monitor;
|
||||||
|
|
||||||
static XWindowAttributes ra;
|
|
||||||
XGetWindowAttributes(dpy, DefaultRootWindow(dpy), &ra);
|
|
||||||
|
|
||||||
trace("manage", c, 0);
|
trace("manage", c, 0);
|
||||||
XSelectInput(
|
XSelectInput(
|
||||||
dpy,
|
dpy,
|
||||||
|
|
13
ryudo.1
13
ryudo.1
|
@ -1,7 +1,7 @@
|
||||||
.\" generated with Ronn/v0.7.3
|
.\" generated with Ronn/v0.7.3
|
||||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||||
.
|
.
|
||||||
.TH "RYUDO" "1" "February 2022" "" ""
|
.TH "RYUDO" "1" "March 2022" "" ""
|
||||||
.
|
.
|
||||||
.SH "NAME"
|
.SH "NAME"
|
||||||
\fBryudo\fR \- The floatiling window manager that flows
|
\fBryudo\fR \- The floatiling window manager that flows
|
||||||
|
@ -89,7 +89,7 @@ Right\-clicking on the desktop or an inactive window opens a menu with the follo
|
||||||
\fBHide\fR: Minimize a window\. Click the window with mouse button 3\. It will be hidden and its label truncated and appended to the menu\. There is a compiled\-in limit of 128 hidden windows\.
|
\fBHide\fR: Minimize a window\. Click the window with mouse button 3\. It will be hidden and its label truncated and appended to the menu\. There is a compiled\-in limit of 128 hidden windows\.
|
||||||
.
|
.
|
||||||
.IP "\(bu" 4
|
.IP "\(bu" 4
|
||||||
\fBLABEL\fR: Select any label after the \fBHide\fR option to restore it to the current virtual desktop\.
|
\fBLABEL\fR: Select any label after the \fBHide\fR option to restore the window it represents to the current virtual desktop\.
|
||||||
.
|
.
|
||||||
.IP "" 0
|
.IP "" 0
|
||||||
.
|
.
|
||||||
|
@ -115,6 +115,12 @@ The following operations are bindable to key combinations (shown are the default
|
||||||
\fBLaunch\fR (Super + /): Open a new terminal in the center of the screen and make it active\.
|
\fBLaunch\fR (Super + /): Open a new terminal in the center of the screen and make it active\.
|
||||||
.
|
.
|
||||||
.IP "\(bu" 4
|
.IP "\(bu" 4
|
||||||
|
\fBSwitch\fR (Alt + Tab): Switch focus to the next window (on this monitor)
|
||||||
|
.
|
||||||
|
.IP "\(bu" 4
|
||||||
|
\fBSwitch\-to\-monitor\fR (Alt + Shift + Tab): Switch focus to a window on the next monitor
|
||||||
|
.
|
||||||
|
.IP "\(bu" 4
|
||||||
\fBReshape\fR (Super + R): Initiate a reshape operation as if the \fBReshape\fR option was selected in the menu and the currently active window selected for the operation\.
|
\fBReshape\fR (Super + R): Initiate a reshape operation as if the \fBReshape\fR option was selected in the menu and the currently active window selected for the operation\.
|
||||||
.
|
.
|
||||||
.IP "\(bu" 4
|
.IP "\(bu" 4
|
||||||
|
@ -136,6 +142,9 @@ The following operations are bindable to key combinations (shown are the default
|
||||||
\fBStick\fR (Super + S): Toggle stickiness of the currently active window\.
|
\fBStick\fR (Super + S): Toggle stickiness of the currently active window\.
|
||||||
.
|
.
|
||||||
.IP "\(bu" 4
|
.IP "\(bu" 4
|
||||||
|
\fBWrangle\fR (Super + A): Wrangle the currently active window to the next monitor (keeps it active)\.
|
||||||
|
.
|
||||||
|
.IP "\(bu" 4
|
||||||
\fBZoom\fR (Super + Z): Toggle zoom mode\. In zoom mode, the currently active window is maximized, new windows are opened maximized, and using Alt\-Tab to switch to another window maximizes it\.
|
\fBZoom\fR (Super + Z): Toggle zoom mode\. In zoom mode, the currently active window is maximized, new windows are opened maximized, and using Alt\-Tab to switch to another window maximizes it\.
|
||||||
.
|
.
|
||||||
.IP "\(bu" 4
|
.IP "\(bu" 4
|
||||||
|
|
11
ryudo.1.html
11
ryudo.1.html
|
@ -134,7 +134,7 @@
|
||||||
<li><code>Stick</code>: Not enabled by default. Click mouse button 3 on a window to toggle its stickiness. If sticky, it will be present on all virtual desktops. If made unsticky, the window will be restricted to the current virtual desktop.</li>
|
<li><code>Stick</code>: Not enabled by default. Click mouse button 3 on a window to toggle its stickiness. If sticky, it will be present on all virtual desktops. If made unsticky, the window will be restricted to the current virtual desktop.</li>
|
||||||
<li><code>Delete</code>: Closes a window. Click the window to close with mouse button 3. <code>SIGHUP</code> (hangup signal) is sent to all processes in the window's process group.</li>
|
<li><code>Delete</code>: Closes a window. Click the window to close with mouse button 3. <code>SIGHUP</code> (hangup signal) is sent to all processes in the window's process group.</li>
|
||||||
<li><code>Hide</code>: Minimize a window. Click the window with mouse button 3. It will be hidden and its label truncated and appended to the menu. There is a compiled-in limit of 128 hidden windows.</li>
|
<li><code>Hide</code>: Minimize a window. Click the window with mouse button 3. It will be hidden and its label truncated and appended to the menu. There is a compiled-in limit of 128 hidden windows.</li>
|
||||||
<li><code>LABEL</code>: Select any label after the <code>Hide</code> option to restore it to the current virtual desktop.</li>
|
<li><code>LABEL</code>: Select any label after the <code>Hide</code> option to restore the window it represents to the current virtual desktop.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
@ -152,6 +152,8 @@
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><code>Launch</code> (Super + /): Open a new terminal in the center of the screen and make it active.</li>
|
<li><code>Launch</code> (Super + /): Open a new terminal in the center of the screen and make it active.</li>
|
||||||
|
<li><code>Switch</code> (Alt + Tab): Switch focus to the next window (on this monitor)</li>
|
||||||
|
<li><code>Switch-to-monitor</code> (Alt + Shift + Tab): Switch focus to a window on the next monitor</li>
|
||||||
<li><code>Reshape</code> (Super + R): Initiate a reshape operation as if the <code>Reshape</code> option was selected in the menu and the currently active window selected for the operation.</li>
|
<li><code>Reshape</code> (Super + R): Initiate a reshape operation as if the <code>Reshape</code> option was selected in the menu and the currently active window selected for the operation.</li>
|
||||||
<li><code>Move</code> (Super + V): Initiate a move operation as if the <code>Move</code> option was selected from the menu and the currently active window selected for the operation.</li>
|
<li><code>Move</code> (Super + V): Initiate a move operation as if the <code>Move</code> option was selected from the menu and the currently active window selected for the operation.</li>
|
||||||
<li><code>Maximize</code> (Super + M): Maximize the currently active window.</li>
|
<li><code>Maximize</code> (Super + M): Maximize the currently active window.</li>
|
||||||
|
@ -159,6 +161,7 @@
|
||||||
<li><code>Unhide</code> (Super + U): Restore the most recently minimized window.</li>
|
<li><code>Unhide</code> (Super + U): Restore the most recently minimized window.</li>
|
||||||
<li><code>Delete</code> (Super + D): Close the currently active window.</li>
|
<li><code>Delete</code> (Super + D): Close the currently active window.</li>
|
||||||
<li><code>Stick</code> (Super + S): Toggle stickiness of the currently active window.</li>
|
<li><code>Stick</code> (Super + S): Toggle stickiness of the currently active window.</li>
|
||||||
|
<li><code>Wrangle</code> (Super + A): Wrangle the currently active window to the next monitor (keeps it active).</li>
|
||||||
<li><code>Zoom</code> (Super + Z): Toggle zoom mode. In zoom mode, the currently active window is maximized, new windows are opened maximized, and using Alt-Tab to switch to another window maximizes it.</li>
|
<li><code>Zoom</code> (Super + Z): Toggle zoom mode. In zoom mode, the currently active window is maximized, new windows are opened maximized, and using Alt-Tab to switch to another window maximizes it.</li>
|
||||||
<li><code>Tile Left</code> (Super + H): Tile the currently active window to fill the left half of the screen.</li>
|
<li><code>Tile Left</code> (Super + H): Tile the currently active window to fill the left half of the screen.</li>
|
||||||
<li><code>Tile Right</code> (Super + L): Tile the currently active window to fill the right half of the screen.</li>
|
<li><code>Tile Right</code> (Super + L): Tile the currently active window to fill the right half of the screen.</li>
|
||||||
|
@ -188,8 +191,8 @@
|
||||||
<h2 id="AUTHORS">AUTHORS</h2>
|
<h2 id="AUTHORS">AUTHORS</h2>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Derek Stevens <a href="mailto:nilix@nilfm.cc" data-bare-link="true">nilix@nilfm.cc</a></li>
|
<li>Derek Stevens <a href="mailto:nilix@nilfm.cc" data-bare-link="true">nilix@nilfm.cc</a></li>
|
||||||
<li>Russ Cox <a href="mailto:rsc@swtch.com" data-bare-link="true">rsc@swtch.com</a></li>
|
<li>Russ Cox <a href="mailto:rsc@swtch.com" data-bare-link="true">rsc@swtch.com</a></li>
|
||||||
<li>David Hogan, RIP</li>
|
<li>David Hogan, RIP</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
@ -201,7 +204,7 @@
|
||||||
|
|
||||||
<ol class='man-decor man-foot man foot'>
|
<ol class='man-decor man-foot man foot'>
|
||||||
<li class='tl'></li>
|
<li class='tl'></li>
|
||||||
<li class='tc'>February 2022</li>
|
<li class='tc'>March 2022</li>
|
||||||
<li class='tr'>ryudo(1)</li>
|
<li class='tr'>ryudo(1)</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
|
|
|
@ -69,6 +69,8 @@ Multimonitor support via `Xrandr(3)` is supported; keybinds should properly inte
|
||||||
The following operations are bindable to key combinations (shown are the default bindings):
|
The following operations are bindable to key combinations (shown are the default bindings):
|
||||||
|
|
||||||
- `Launch` (Super + /): Open a new terminal in the center of the screen and make it active.
|
- `Launch` (Super + /): Open a new terminal in the center of the screen and make it active.
|
||||||
|
- `Switch` (Alt + Tab): Switch focus to the next window (on this monitor)
|
||||||
|
- `Switch-to-monitor` (Alt + Shift + Tab): Switch focus to a window on the next monitor
|
||||||
- `Reshape` (Super + R): Initiate a reshape operation as if the `Reshape` option was selected in the menu and the currently active window selected for the operation.
|
- `Reshape` (Super + R): Initiate a reshape operation as if the `Reshape` option was selected in the menu and the currently active window selected for the operation.
|
||||||
- `Move` (Super + V): Initiate a move operation as if the `Move` option was selected from the menu and the currently active window selected for the operation.
|
- `Move` (Super + V): Initiate a move operation as if the `Move` option was selected from the menu and the currently active window selected for the operation.
|
||||||
- `Maximize` (Super + M): Maximize the currently active window.
|
- `Maximize` (Super + M): Maximize the currently active window.
|
||||||
|
@ -76,7 +78,7 @@ The following operations are bindable to key combinations (shown are the default
|
||||||
- `Unhide` (Super + U): Restore the most recently minimized window.
|
- `Unhide` (Super + U): Restore the most recently minimized window.
|
||||||
- `Delete` (Super + D): Close the currently active window.
|
- `Delete` (Super + D): Close the currently active window.
|
||||||
- `Stick` (Super + S): Toggle stickiness of the currently active window.
|
- `Stick` (Super + S): Toggle stickiness of the currently active window.
|
||||||
- `Wrangle` (Super + A): Wrangle the currently active window to another monitor (this follows the order of the monitors given by `Xrandr`'s `XRRGetMonitors` function and may not correspond to the actual visible order of the monitors -- wrangling doesn't change the active window, so you can repeat the operation until the window is on the desired monitor.
|
- `Wrangle` (Super + A): Wrangle the currently active window to the next monitor (keeps it active).
|
||||||
- `Zoom` (Super + Z): Toggle zoom mode. In zoom mode, the currently active window is maximized, new windows are opened maximized, and using Alt-Tab to switch to another window maximizes it.
|
- `Zoom` (Super + Z): Toggle zoom mode. In zoom mode, the currently active window is maximized, new windows are opened maximized, and using Alt-Tab to switch to another window maximizes it.
|
||||||
- `Tile Left` (Super + H): Tile the currently active window to fill the left half of the screen.
|
- `Tile Left` (Super + H): Tile the currently active window to fill the left half of the screen.
|
||||||
- `Tile Right` (Super + L): Tile the currently active window to fill the right half of the screen.
|
- `Tile Right` (Super + L): Tile the currently active window to fill the right half of the screen.
|
||||||
|
|
BIN
screenshots/2022-03-01-095116_3280x1050_scrot.png
Normal file
BIN
screenshots/2022-03-01-095116_3280x1050_scrot.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.4 MiB |
BIN
screenshots/firefox_maximized.png.thumb.png
Normal file
BIN
screenshots/firefox_maximized.png.thumb.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
BIN
screenshots/floating.png.thumb.png
Normal file
BIN
screenshots/floating.png.thumb.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 38 KiB |
BIN
screenshots/micro_centered.png.thumb.png
Normal file
BIN
screenshots/micro_centered.png.thumb.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 31 KiB |
BIN
screenshots/pseudotiling.png.thumb.png
Normal file
BIN
screenshots/pseudotiling.png.thumb.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
Loading…
Reference in a new issue