Subject: Re: bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts

From: Van Ly <[email-masked]>
Date: Thu, 05 Dec 2024 11:14:48 +0000

martin rudalics <[email-masked]> writes:

>
> When my Emacs window is fullboth there is do desktop background.
>

>
> How do I select a workspace showing the desktop background from a
> workspace showing a fullboth Emacs frame?
>

You'll need to have available CTWM's workspace virtual screens.

See at the top right, there are 5 virtual screens and you use one of
them with the desktop background exposed

    http://sdf.org/~van.ly/img/netbsd-ctwm-workspace-virtual-screens-at-top-right.webp

from the fullboth Emacs windowframe switch to a specific virtual
screen with a  keychord such as super-N or mod4-N where N is a number,
or where N is an arrow key left/right.

>
> But a menu is of no use when I have a fullboth Emacs frame. All I need
> is one simple keybinding to restart CTWM in a workspace that is fully
> occupied by a fullboth Emacs frame.  Or a shell command that restarts
> CTWM.
>

Could send a signal to tell the CTWM process to restart and reload.

Anyway, both Firefox and Chrome will F11 fullscreen and CTWM restart
will let their windowframe dimension persist.

Firefox on `maximize' window, zoom leaves no gap at the bottom edge.

The xterm running emacsclient that is in fullscreen evaluating

	(set-frame-parameter nil 'tty-color-mode 'yes)
	(set-face-attribute 'default nil :background "red")

turns the background color red.

Some more details looking at the dimensions on the xterm are as follows.

  //  *shell* buffer output inside emacsclient session
  // after many CTWM restarts

   1  $ xprop
   2  xprop
   3  _NET_WM_NAME(UTF8_STRING) = "uxterm"
   4  _NET_WM_ICON_NAME(UTF8_STRING) = "xterm"
   5  CTWM_OTP_AFLAGS(INTEGER) = 4
   6  WM_STATE(WM_STATE):
   7                  window state: Normal
   8                  icon window: 0x0
   9  _NET_WM_STATE(ATOM) = 
  10  _NET_WM_DESKTOP(CARDINAL) = 4
  11  WM_OCCUPATION(STRING) = "5"
  12  WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW
  13  _NET_WM_PID(CARDINAL) = 4215
  14  WM_CLIENT_LEADER(WINDOW): window id # 0x2a0000c
  15  WM_LOCALE_NAME(STRING) = "en_AU.UTF-8"
  16  WM_CLASS(STRING) = "xterm", "UXTerm"
  17  WM_HINTS(WM_HINTS):
  18                  Client accepts input or input focus: True
  19                  Initial state is Normal State.
  20                  bitmap id # to use for icon: 0x2a0001d
  21                  bitmap id # of mask for icon: 0x2a0001f
  22  WM_NORMAL_HINTS(WM_SIZE_HINTS):
  23                  program specified size: 1920 by 1080
  24                  program specified minimum size: 16 by 28
  25                  program specified resize increment: 1 by 1
  26                  program specified base size: 4 by 4
  27                  window gravity: NorthWest
  28  WM_CLIENT_MACHINE(STRING) = "xxx"
  29  WM_COMMAND(STRING) = { "/usr/X11R7/bin/xterm", "-class", "UXTerm", "-title", "uxterm", "-u8" }
  30  WM_ICON_NAME(STRING) = "xterm"
  31  WM_NAME(STRING) = "uxterm"

  //  plain xterm before CTWM restart

   1  $ xprop
   2  CTWM_OTP_AFLAGS(INTEGER) = 4
   3  WM_STATE(WM_STATE):
   4                  window state: Normal
   5                  icon window: 0x0
   6  _NET_WM_STATE(ATOM) = _NET_WM_STATE_FULLSCREEN
   7  _NET_WM_DESKTOP(CARDINAL) = 2
   8  WM_OCCUPATION(STRING) = "3"
   9  WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW
  10  _NET_WM_PID(CARDINAL) = 17153
  11  WM_CLIENT_LEADER(WINDOW): window id # 0x320000c
  12  WM_LOCALE_NAME(STRING) = "en_AU.UTF-8"
  13  WM_CLASS(STRING) = "xterm", "UXTerm"
  14  WM_HINTS(WM_HINTS):
  15                  Client accepts input or input focus: True
  16                  Initial state is Normal State.
  17                  bitmap id # to use for icon: 0x320001d
  18                  bitmap id # of mask for icon: 0x320001f
  19  WM_NORMAL_HINTS(WM_SIZE_HINTS):
  20                  program specified size: 1920 by 1080
  21                  program specified resize increment: 1 by 1
  22                  window gravity: NorthWest
  23  WM_CLIENT_MACHINE(STRING) = "xxx"
  24  WM_COMMAND(STRING) = { "/usr/X11R7/bin/xterm", "-class", "UXTerm", "-title", "uxterm", "-u8" }
  25  WM_ICON_NAME(STRING) = "xterm"
  26  WM_NAME(STRING) = "uxterm"

  //  plain xterm after CTWM restart

  27  $ xprop
  28  CTWM_OTP_AFLAGS(INTEGER) = 4
  29  WM_STATE(WM_STATE):
  30                  window state: Normal
  31                  icon window: 0x0
  32  _NET_WM_STATE(ATOM) = 
  33  _NET_WM_DESKTOP(CARDINAL) = 2
  34  WM_OCCUPATION(STRING) = "3"
  35  WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW
  36  _NET_WM_PID(CARDINAL) = 17153
  37  WM_CLIENT_LEADER(WINDOW): window id # 0x320000c
  38  WM_LOCALE_NAME(STRING) = "en_AU.UTF-8"
  39  WM_CLASS(STRING) = "xterm", "UXTerm"
  40  WM_HINTS(WM_HINTS):
  41                  Client accepts input or input focus: True
  42                  Initial state is Normal State.
  43                  bitmap id # to use for icon: 0x320001d
  44                  bitmap id # of mask for icon: 0x320001f
  45  WM_NORMAL_HINTS(WM_SIZE_HINTS):
  46                  program specified size: 1920 by 1080
  47                  program specified resize increment: 1 by 1
  48                  window gravity: NorthWest
  49  WM_CLIENT_MACHINE(STRING) = "xxx"
  50  WM_COMMAND(STRING) = { "/usr/X11R7/bin/xterm", "-class", "UXTerm", "-title", "uxterm", "-u8" }
  51  WM_ICON_NAME(STRING) = "xterm"
  52  WM_NAME(STRING) = "uxterm"

I'll do the source patch and gdb backtrace when I get a chance to.

-- 
vl