fix microsleep and add config option; update manual; v1.4.1
This commit is contained in:
parent
9612bd6ee2
commit
db9b136766
6 changed files with 33 additions and 28 deletions
|
@ -54,6 +54,7 @@
|
||||||
"Alacritty", \
|
"Alacritty", \
|
||||||
"kate", \
|
"kate", \
|
||||||
"acme", \
|
"acme", \
|
||||||
|
"st-256color",\
|
||||||
0 \
|
0 \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -101,6 +102,12 @@
|
||||||
* BEHAVIOR * [Everything in this section is optional unless otherwise noted]
|
* BEHAVIOR * [Everything in this section is optional unless otherwise noted]
|
||||||
***********/
|
***********/
|
||||||
|
|
||||||
|
/* Microseconds to wait before centering terminal windows spawned by keyboard;
|
||||||
|
* if your system is wicked fast you can lower this; if very old/slow, you may
|
||||||
|
* have to raise it.
|
||||||
|
*/
|
||||||
|
#define MICROSLEEP_DELAY 100000
|
||||||
|
|
||||||
/* This sets the size ratio for windows spawned via keyboard or
|
/* This sets the size ratio for windows spawned via keyboard or
|
||||||
* center-snapped; CENTERNUM should be >= 2, so use 2/4 instead of 1/2
|
* center-snapped; CENTERNUM should be >= 2, so use 2/4 instead of 1/2
|
||||||
*/
|
*/
|
||||||
|
@ -146,6 +153,7 @@
|
||||||
#define AUTOSTICK {\
|
#define AUTOSTICK {\
|
||||||
"XOsview", \
|
"XOsview", \
|
||||||
"XClock", \
|
"XClock", \
|
||||||
|
"xneralie", \
|
||||||
0 \
|
0 \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -156,6 +164,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define TERMINALS {\
|
#define TERMINALS {\
|
||||||
|
"st-256color", \
|
||||||
"term", \
|
"term", \
|
||||||
"Term", \
|
"Term", \
|
||||||
"xvt", \
|
"xvt", \
|
||||||
|
|
29
event.c
29
event.c
|
@ -18,6 +18,10 @@
|
||||||
#include "fns.h"
|
#include "fns.h"
|
||||||
#include "patchlevel.h"
|
#include "patchlevel.h"
|
||||||
|
|
||||||
|
#ifndef MICROSLEEP_DELAY
|
||||||
|
#define MICROSLEEP_DELAY 100000
|
||||||
|
#endif
|
||||||
|
|
||||||
void mainloop(int shape_event) {
|
void mainloop(int shape_event) {
|
||||||
static XEvent ev;
|
static XEvent ev;
|
||||||
static Client* c;
|
static Client* c;
|
||||||
|
@ -212,6 +216,9 @@ void configurereq(XConfigureRequestEvent* e) {
|
||||||
void mapreq(XMapRequestEvent* e) {
|
void mapreq(XMapRequestEvent* e) {
|
||||||
Client* c;
|
Client* c;
|
||||||
int i;
|
int i;
|
||||||
|
XRRMonitorInfo monitor;
|
||||||
|
|
||||||
|
monitor = monitorinfo[getmonitorbymouse()];
|
||||||
|
|
||||||
curtime = CurrentTime;
|
curtime = CurrentTime;
|
||||||
c = getclient(e->window, 0);
|
c = getclient(e->window, 0);
|
||||||
|
@ -233,6 +240,15 @@ void mapreq(XMapRequestEvent* e) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (kbLaunch) {
|
||||||
|
usleep(MICROSLEEP_DELAY);
|
||||||
|
#ifdef CENTERVMAX
|
||||||
|
centerclient(c, monitor, 1);
|
||||||
|
#else
|
||||||
|
centerclient(c, monitor, 0);
|
||||||
|
#endif
|
||||||
|
kbLaunch = 0;
|
||||||
|
}
|
||||||
switch (c->state) {
|
switch (c->state) {
|
||||||
case WithdrawnState:
|
case WithdrawnState:
|
||||||
if (c->parent == c->screen->root) {
|
if (c->parent == c->screen->root) {
|
||||||
|
@ -298,9 +314,6 @@ void circulatereq(XCirculateRequestEvent* e) {
|
||||||
void newwindow(XCreateWindowEvent* e) {
|
void newwindow(XCreateWindowEvent* e) {
|
||||||
Client* c;
|
Client* c;
|
||||||
ScreenInfo* s;
|
ScreenInfo* s;
|
||||||
XRRMonitorInfo monitor;
|
|
||||||
|
|
||||||
monitor = monitorinfo[getmonitorbymouse()];
|
|
||||||
|
|
||||||
/* we don't set curtime as nothing here uses it */
|
/* we don't set curtime as nothing here uses it */
|
||||||
if (e->override_redirect)
|
if (e->override_redirect)
|
||||||
|
@ -341,16 +354,6 @@ void newwindow(XCreateWindowEvent* e) {
|
||||||
1);
|
1);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (kbLaunch) {
|
|
||||||
usleep(100000);
|
|
||||||
#ifdef CENTERVMAX
|
|
||||||
centerclient(c, monitor, 1);
|
|
||||||
#else
|
|
||||||
centerclient(c, monitor, 0);
|
|
||||||
#endif
|
|
||||||
kbLaunch = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void destroy(Window w) {
|
void destroy(Window w) {
|
||||||
|
|
2
main.c
2
main.c
|
@ -22,7 +22,7 @@
|
||||||
#include "patchlevel.h"
|
#include "patchlevel.h"
|
||||||
|
|
||||||
char* version[] = {
|
char* version[] = {
|
||||||
"ryudo version 1.3.3\nCopyright (c) 1994-1996 David Hogan,\n(c) 2004 Russ "
|
"ryudo version 1.4.1\nCopyright (c) 1994-1996 David Hogan,\n(c) 2004 Russ "
|
||||||
"Cox,\n(c) 2019-2022 Derek Stevens",
|
"Cox,\n(c) 2019-2022 Derek Stevens",
|
||||||
0};
|
0};
|
||||||
|
|
||||||
|
|
7
ryudo.1
7
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" "March 2022" "" ""
|
.TH "RYUDO" "1" "January 2023" "" ""
|
||||||
.
|
.
|
||||||
.SH "NAME"
|
.SH "NAME"
|
||||||
\fBryudo\fR \- The floatiling window manager that flows
|
\fBryudo\fR \- The floatiling window manager that flows
|
||||||
|
@ -180,10 +180,7 @@ The following operations are bindable to key combinations (shown are the default
|
||||||
.IP "" 0
|
.IP "" 0
|
||||||
.
|
.
|
||||||
.SH "BUGS AND CAVEATS"
|
.SH "BUGS AND CAVEATS"
|
||||||
Click events don\'t pass through when clicking to activate a window\.
|
Switching very fast back and forth between virtual desktops may cause the window manager to stop managing some windows\. Still looking into why\.
|
||||||
.
|
|
||||||
.P
|
|
||||||
Clicking mouse button 2/3 on an inactive window brings up the Button 2/3 Menu instead of focusing the window\. I personally sometimes find this behavior useful\.
|
|
||||||
.
|
.
|
||||||
.P
|
.P
|
||||||
Programs that expect to run fullscreen will probably just open in a window the size of whatever resolution they expect to run at\. Depending on the implementation, they may respond well to being maximized or you may have to change your screen resolution manually before doing so\. If the program expects to run at the current screen resolution, the window\-wrangling heuristics should maximize it and you\'ll be golden\. If the window is in override\-redirect mode, it should just run fullscreen without a hitch\.
|
Programs that expect to run fullscreen will probably just open in a window the size of whatever resolution they expect to run at\. Depending on the implementation, they may respond well to being maximized or you may have to change your screen resolution manually before doing so\. If the program expects to run at the current screen resolution, the window\-wrangling heuristics should maximize it and you\'ll be golden\. If the window is in override\-redirect mode, it should just run fullscreen without a hitch\.
|
||||||
|
|
10
ryudo.1.html
10
ryudo.1.html
|
@ -178,9 +178,7 @@
|
||||||
|
|
||||||
<h2 id="BUGS-AND-CAVEATS">BUGS AND CAVEATS</h2>
|
<h2 id="BUGS-AND-CAVEATS">BUGS AND CAVEATS</h2>
|
||||||
|
|
||||||
<p>Click events don't pass through when clicking to activate a window.</p>
|
<p>Switching very fast back and forth between virtual desktops may cause the window manager to stop managing some windows. Still looking into why.</p>
|
||||||
|
|
||||||
<p>Clicking mouse button 2/3 on an inactive window brings up the Button 2/3 Menu instead of focusing the window. I personally sometimes find this behavior useful.</p>
|
|
||||||
|
|
||||||
<p>Programs that expect to run fullscreen will probably just open in a window the size of whatever resolution they expect to run at. Depending on the implementation, they may respond well to being maximized or you may have to change your screen resolution manually before doing so. If the program expects to run at the current screen resolution, the window-wrangling heuristics should maximize it and you'll be golden. If the window is in override-redirect mode, it should just run fullscreen without a hitch.</p>
|
<p>Programs that expect to run fullscreen will probably just open in a window the size of whatever resolution they expect to run at. Depending on the implementation, they may respond well to being maximized or you may have to change your screen resolution manually before doing so. If the program expects to run at the current screen resolution, the window-wrangling heuristics should maximize it and you'll be golden. If the window is in override-redirect mode, it should just run fullscreen without a hitch.</p>
|
||||||
|
|
||||||
|
@ -191,8 +189,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>
|
||||||
|
|
||||||
|
@ -204,7 +202,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'>March 2022</li>
|
<li class='tc'>January 2023</li>
|
||||||
<li class='tr'>ryudo(1)</li>
|
<li class='tr'>ryudo(1)</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
|
|
|
@ -93,9 +93,7 @@ The following operations are bindable to key combinations (shown are the default
|
||||||
|
|
||||||
## BUGS AND CAVEATS
|
## BUGS AND CAVEATS
|
||||||
|
|
||||||
Click events don't pass through when clicking to activate a window.
|
Switching very fast back and forth between virtual desktops may cause the window manager to stop managing some windows. Still looking into why.
|
||||||
|
|
||||||
Clicking mouse button 2/3 on an inactive window brings up the Button 2/3 Menu instead of focusing the window. I personally sometimes find this behavior useful.
|
|
||||||
|
|
||||||
Programs that expect to run fullscreen will probably just open in a window the size of whatever resolution they expect to run at. Depending on the implementation, they may respond well to being maximized or you may have to change your screen resolution manually before doing so. If the program expects to run at the current screen resolution, the window-wrangling heuristics should maximize it and you'll be golden. If the window is in override-redirect mode, it should just run fullscreen without a hitch.
|
Programs that expect to run fullscreen will probably just open in a window the size of whatever resolution they expect to run at. Depending on the implementation, they may respond well to being maximized or you may have to change your screen resolution manually before doing so. If the program expects to run at the current screen resolution, the window-wrangling heuristics should maximize it and you'll be golden. If the window is in override-redirect mode, it should just run fullscreen without a hitch.
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue