all repos — ryudo @ 187645a62502a45486b363b6eec2ef9779117b7e

the floatiling window manager that flows; fork of rio from plan9port

merge 1.5.0 into main
Iris Lightshard nilix@nilfm.cc
PGP Signature
-----BEGIN PGP SIGNATURE-----

iHUEABYKAB0WIQT/foVVmI9pK13hPWFohAcXSWbK8wUCZvVnpwAKCRBohAcXSWbK
80g2AQDiIKQQHAa0giFAK9UXctzbE1dVK85tgvjW4AR228RZfAEAgBv/O1G5IDWF
1nGz7DG7n85TGWq3nf6q7POvgomV0QA=
=j/jx
-----END PGP SIGNATURE-----
commit

187645a62502a45486b363b6eec2ef9779117b7e

parent

de0bc0397ac6302cb4e11c53097c77abcfb30eb5

M .clang-format.clang-format

@@ -13,7 +13,6 @@ IndentCaseLabels: true

SpaceBeforeParens: ControlStatements AlignAfterOpenBracket: AlwaysBreak BinPackArguments: false -BinPackArguments: false PointerAlignment: Left BreakBeforeBraces: Attach SortIncludes: false
M LICENSELICENSE

@@ -1,4 +1,4 @@

- Ryudo is free software, and is Copyright (c) 2019-20022 Derek Stevens, + Ryudo is free software, and is Copyright (c) 2019-2024 Iris Lightshard, 2004 by Russ Cox, and 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:
M README.mdREADME.md

@@ -1,6 +1,6 @@

# [[ RYUDO ]] ## the minimalist floatiling window manager that flows - -- Derek Stevens <nilix@nilfm.cc> 2019 -- + -- Iris Lightshard <nilix@nilfm.cc> 2019 -- [![micro centered](./screenshots/micro_centered.png.thumb.png)](./screenshots/micro_centered.png) [![floating porn](./screenshots/floating.png.thumb.png)](./screenshots/floating.png)

@@ -63,9 +63,6 @@ * a full `plan9port` installation

* `libX11` and development headers * `libXT` and development headers * `libXrandr` and development headers - -If virtual desktop switching notification is enabled, it requires - * `libnotify` and development headers Build with `build.sh` (calls `mk` and does some other magic), and install with `install.sh` (will install to a local folder if run as a normal user, or to your `$PLAN9/bin/` plus session wrapper in `/usr/bin` and `.desktop` file in `/usr/share/xsessions/` if run as root).

@@ -75,7 +72,7 @@

### Bugs and Caveats Of the bugs and caveats not already mentioned in `rio`'s README: -- No per-pixel alpha support beyond `XShape` extension. +- Compositing rules in picom are ignored in favor of the ones in config.h. - Switching back and forth between virtual desktops very quickly can cause some windows to glitch out, lose their parent (border), and become unfocusable. - Some applications that render fullscreen or dedicated OSD windows (Virtualbox, Zoom, etc) will need to be manually maximized to fix their alignment (in the former case) or otherwise misbehave. - Probably more!
M event.cevent.c

@@ -1,5 +1,5 @@

/* - * Copyright (c) 2019 Derek Stevens, 2005 Rus Cox, 1994-1996 David Hogan + * Copyright (c) 2019 Iris Lightshard, 2005 Rus Cox, 1994-1996 David Hogan * see README for licence details */
M fns.hfns.h

@@ -74,7 +74,7 @@ void button();

void spawn(); void reshape(); void move(); -void delete (); +void delete(); void hide(); void unhide(); void unhidec();
M key.ckey.c

@@ -1,5 +1,5 @@

/* - * Copyright (c) 2019 Derek Stevens, 2005 Russ Cox, 1994-1996 David Hogan + * Copyright (c) 2019 Iris Lightshard, 2005 Russ Cox, 1994-1996 David Hogan * see README for license details */
M main.cmain.c

@@ -22,8 +22,8 @@ #include "fns.h"

#include "patchlevel.h" char* version[] = { - "ryudo version 1.4.2\nCopyright (c) 1994-1996 David Hogan,\n(c) 2004 Russ " - "Cox,\n(c) 2019-2023 Derek Stevens", + "ryudo version 1.5.0\nCopyright (c) 1994-1996 David Hogan,\n(c) 2004 Russ " + "Cox,\n(c) 2019-2024 Iris Lightshard", 0}; Display* dpy;
M manage.cmanage.c

@@ -3,7 +3,7 @@ * Window management.

*/ /* - * Copyright (c) 2019 Derek Stevens, 2005 Russ Cox, 1994-1996 David Hogan + * Copyright (c) 2019 Iris Lightshard, 2005 Russ Cox, 1994-1996 David Hogan * see README for licence details */

@@ -209,12 +209,12 @@ XMapWindow(dpy, c->parent);

XUnmapWindow(dpy, c->screen->sweepwin); #ifdef AUTOSTICK if (!isautostick(c)) -#endif active(c); - /*else if(c->trans != None && current && current->window == c->trans) - active(c);*/ else setactive(c, 0); +#else + active(c); +#endif setstate(c, NormalState); } if (current && (current != c))
M ryudo.1ryudo.1

@@ -1,7 +1,7 @@

.\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "RYUDO" "1" "January 2023" "" "" +.TH "RYUDO" "1" "September 2024" "" "" . .SH "NAME" \fBryudo\fR \- The floatiling window manager that flows

@@ -47,11 +47,6 @@ \fBlibXT\fR and development headers

. .IP "\(bu" 4 \fBlibXrandr\fR and development headers -. -.IP "" 0 -. -.P -If virtual desktop switching notification is enabled, it requires . .IP "\(bu" 4 \fBlibnotify\fR and development headers

@@ -194,7 +189,7 @@ .

.SH "AUTHORS" . .IP "\(bu" 4 -Derek Stevens \fInilix@nilfm\.cc\fR +Iris Lightshard \fInilix@nilfm\.cc\fR . .IP "\(bu" 4 Russ Cox \fIrsc@swtch\.com\fR
M ryudo.1.htmlryudo.1.html

@@ -106,12 +106,6 @@ <li>a full <code>plan9port</code> installation</li>

<li><code>libX11</code> and development headers</li> <li><code>libXT</code> and development headers</li> <li><code>libXrandr</code> and development headers</li> -</ul> - - -<p>If virtual desktop switching notification is enabled, it requires</p> - -<ul> <li><code>libnotify</code> and development headers</li> </ul>

@@ -189,8 +183,8 @@

<h2 id="AUTHORS">AUTHORS</h2> <ul> -<li>Derek Stevens <a href="&#109;&#97;&#x69;&#x6c;&#116;&#111;&#x3a;&#x6e;&#x69;&#108;&#x69;&#x78;&#x40;&#x6e;&#105;&#x6c;&#102;&#109;&#46;&#99;&#99;" data-bare-link="true">&#x6e;&#105;&#x6c;&#x69;&#x78;&#x40;&#x6e;&#x69;&#108;&#102;&#x6d;&#x2e;&#x63;&#99;</a></li> -<li>Russ Cox <a href="&#x6d;&#x61;&#105;&#108;&#x74;&#111;&#x3a;&#114;&#115;&#x63;&#64;&#x73;&#x77;&#116;&#99;&#x68;&#46;&#x63;&#x6f;&#x6d;" data-bare-link="true">&#x72;&#115;&#99;&#64;&#x73;&#x77;&#116;&#x63;&#104;&#46;&#x63;&#x6f;&#x6d;</a></li> +<li>Iris Lightshard <a href="&#x6d;&#x61;&#x69;&#108;&#x74;&#111;&#58;&#110;&#x69;&#108;&#105;&#x78;&#x40;&#x6e;&#x69;&#x6c;&#102;&#x6d;&#46;&#99;&#x63;" data-bare-link="true">&#x6e;&#x69;&#x6c;&#x69;&#x78;&#64;&#x6e;&#x69;&#108;&#x66;&#109;&#x2e;&#99;&#99;</a></li> +<li>Russ Cox <a href="&#109;&#97;&#x69;&#x6c;&#116;&#x6f;&#x3a;&#x72;&#115;&#99;&#64;&#115;&#x77;&#116;&#99;&#x68;&#x2e;&#x63;&#111;&#x6d;" data-bare-link="true">&#x72;&#x73;&#x63;&#64;&#115;&#x77;&#x74;&#x63;&#x68;&#x2e;&#x63;&#x6f;&#109;</a></li> <li>David Hogan, RIP</li> </ul>

@@ -202,7 +196,7 @@

<ol class='man-decor man-foot man foot'> <li class='tl'></li> - <li class='tc'>January 2023</li> + <li class='tc'>September 2024</li> <li class='tr'>ryudo(1)</li> </ol>
M ryudo.1.mdryudo.1.md

@@ -32,9 +32,6 @@ * a full `plan9port` installation

* `libX11` and development headers * `libXT` and development headers * `libXrandr` and development headers - -If virtual desktop switching notification is enabled, it requires - * `libnotify` and development headers ## CONFIGURATION

@@ -103,7 +100,7 @@ While there is naitive support for per-window opacity via the `OPACITY` and `TRANSPARENTLIST` configuration macros, there is no support for per-pixel opacity. Programs that expect this behavior will render all pixels at the same opacity (unless using the `XSHAPE` extension for boolean opacity per-pixel (eg, `xeyes`), which works.)

## AUTHORS -- Derek Stevens <nilix@nilfm.cc> +- Iris Lightshard <nilix@nilfm.cc> - Russ Cox <rsc@swtch.com> - David Hogan, RIP
M showevent/ShowEvent.cshowevent/ShowEvent.c

@@ -24,7 +24,8 @@ }

} /* Returns the string equivalent of a property notify state */ -static char* PropertyState(state) int state; +static char* PropertyState(state) +int state; { switch (state) { case PropertyNewValue:

@@ -39,7 +40,8 @@ }

} /* Returns the string equivalent of a visibility notify state */ -static char* VisibilityState(state) int state; +static char* VisibilityState(state) +int state; { switch (state) { case VisibilityUnobscured:

@@ -57,7 +59,8 @@ }

} /* Returns the string equivalent of a timestamp */ -static char* ServerTime(time) Time time; +static char* ServerTime(time) +Time time; { unsigned long msec; unsigned long sec;

@@ -95,7 +98,8 @@ char* string;

} MaskType; /* Returns the string equivalent of a mask of buttons and/or modifier keys */ -static char* ButtonAndOrModifierState(state) unsigned int state; +static char* ButtonAndOrModifierState(state) +unsigned int state; { static char buffer[256]; static MaskType masks[] = {

@@ -132,7 +136,8 @@ return (buffer);

} /* Returns the string equivalent of a mask of configure window values */ -static char* ConfigureValueMask(valuemask) unsigned int valuemask; +static char* ConfigureValueMask(valuemask) +unsigned int valuemask; { static char buffer[256]; static MaskType masks[] = {

@@ -164,7 +169,8 @@ return (buffer);

} /* Returns the string equivalent of a motion hint */ -static char* IsHint(is_hint) char is_hint; +static char* IsHint(is_hint) +char is_hint; { switch (is_hint) { case NotifyNormal:

@@ -179,7 +185,8 @@ }

} /* Returns the string equivalent of an id or the value "None" */ -static char* MaybeNone(value) int value; +static char* MaybeNone(value) +int value; { static char buffer[16];

@@ -192,7 +199,8 @@ }

} /* Returns the string equivalent of a colormap state */ -static char* ColormapState(state) int state; +static char* ColormapState(state) +int state; { switch (state) { case ColormapInstalled:

@@ -207,7 +215,8 @@ }

} /* Returns the string equivalent of a crossing detail */ -static char* CrossingDetail(detail) int detail; +static char* CrossingDetail(detail) +int detail; { switch (detail) { case NotifyAncestor:

@@ -231,7 +240,8 @@ }

} /* Returns the string equivalent of a focus change detail */ -static char* FocusChangeDetail(detail) int detail; +static char* FocusChangeDetail(detail) +int detail; { switch (detail) { case NotifyAncestor:

@@ -264,7 +274,8 @@ }

} /* Returns the string equivalent of a configure detail */ -static char* ConfigureDetail(detail) int detail; +static char* ConfigureDetail(detail) +int detail; { switch (detail) { case Above:

@@ -288,7 +299,8 @@ }

} /* Returns the string equivalent of a grab mode */ -static char* GrabMode(mode) int mode; +static char* GrabMode(mode) +int mode; { switch (mode) { case NotifyNormal:

@@ -309,7 +321,8 @@ }

} /* Returns the string equivalent of a mapping request */ -static char* MappingRequest(request) int request; +static char* MappingRequest(request) +int request; { switch (request) { case MappingModifier:

@@ -327,7 +340,8 @@ }

} /* Returns the string equivalent of a stacking order place */ -static char* Place(place) int place; +static char* Place(place) +int place; { switch (place) { case PlaceOnTop:

@@ -342,7 +356,8 @@ }

} /* Returns the string equivalent of a major code */ -static char* MajorCode(code) int code; +static char* MajorCode(code) +int code; { static char buffer[32];

@@ -360,7 +375,8 @@ }

} /* Returns the string equivalent the keycode contained in the key event */ -static char* Keycode(ev) XKeyEvent* ev; +static char* Keycode(ev) +XKeyEvent* ev; { static char buffer[256]; KeySym keysym_str;

@@ -635,7 +651,8 @@ /******************************************************************************/

/************ Return the string representation for type of an event ***********/ /******************************************************************************/ -char* GetType(ev) XEvent* ev; +char* GetType(ev) +XEvent* ev; { switch (ev->type) { case KeyPress: