You are not logged in.
Hi I would love to get control over the window size of this proton-vpn-gtk-app.
Perhpaps for a year I waited for improvement.
This is the only application I have on 2 machines for which the window size can not be changed.
It almost makes me angry. Proton deserves better.
In case I am the cause meself with badly thought out config files, etc. excuses!
In my other post (complaining about proton-vpn-gtk-app fing up my gnome keyring almost always) I mentioned that the window size gets lauched full screen after the start of X (startx).
On my PC and laptop I have DWM installed and for all applications resizing is possible with a keyboard shortcut in combination with the mouse or touchpad.
While using DWM the Proton app gets place on a tag. At a revisit of the tag with the Proton app the window is no longer full screen and size can not be changed.
Only for this Proton app the keyboard shortcut does not work. The settings window from this app can be changed with the help from keyboard combination and touchpad in contrary.
There is no setting for this base screen as far as I can see.
Hopefully there is a way to always make keep this app full (enough) screen trough a config file. A bash command would also be great.
epp@arch:~$ xprop
_NET_WM_USER_TIME(CARDINAL) = 3831026
_NET_WM_OPAQUE_REGION(CARDINAL) = 0, 8, 773, 692
_GTK_THEME_VARIANT(UTF8_STRING) = "dark"
WM_STATE(WM_STATE):
window state: Normal
icon window: 0x0
WM_HINTS(WM_HINTS):
Client accepts input or input focus: True
Initial state is Normal State.
window id # of group leader: 0xe00002
_GTK_WINDOW_OBJECT_PATH(UTF8_STRING) = "/proton/vpn/app/gtk/window/1"
_GTK_APPLICATION_OBJECT_PATH(UTF8_STRING) = "/proton/vpn/app/gtk"
_GTK_UNIQUE_BUS_NAME(UTF8_STRING) = ":1.20"
_GTK_APPLICATION_ID(UTF8_STRING) = "proton.vpn.app.gtk"
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x1, 0x0, 0x0, 0x0
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
XdndAware(ATOM) = BITMAP
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 14680070, 14680071
_NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0xe00005
WM_CLIENT_LEADER(WINDOW): window id # 0xe00002
_NET_WM_PID(CARDINAL) = 1098
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLIENT_MACHINE(STRING) = "arch"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
program specified minimum size: 773 by 700
program specified maximum size: 773 by 700
WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_CLASS(STRING) = "protonvpn-app", "protonvpn-app"
WM_ICON_NAME(STRING) = "Proton VPN"
_NET_WM_ICON_NAME(UTF8_STRING) = "Proton VPN"
WM_NAME(STRING) = "Proton VPN"
_NET_WM_NAME(UTF8_STRING) = "Proton VPN"Last edited by Epp (2026-10-12 08:51:43)
Offline
WM_NORMAL_HINTS(WM_SIZE_HINTS):
program specified minimum size: 773 by 700
program specified maximum size: 773 by 700If none of the dwm patches (sizehint rules) work and/or you cannot/don't want to patch dwm locally you could try
xprop -remove WM_NORMAL_HINTS on the window and see whether dwm tracks that and therefore feels free to resize the window as you wish.
It might be necessary/helpful to xdotool unmap/map the window to reconvene dwm w/ it and pick up the property changes.
Offline
Super, I did not think dwm would play a big role in this.
I tried setting resizehints to 0 in the dwm config file, before trying the patch. It did not give a change for the Proton app window.
After this I installed the sizehints patch. This resulting in not having a full screen Proton app window after the start of dwm and of course the app. Changing the size was still not possible.
There are a many size and fullscreen patches for dwm. I am not affraid to try those out. It's easy to copy the current dwm folder and add a patch to an install in a new (test) folder.
But this is going to cost more time. Hope to report back on this soon.
xprop -remove WM_NORMAL_HINTSon the Proton app window did not bring a noticeable change. The minimal values were still in the xprop output.
After the above, running windowunmap, kept the Proton app window still sturdy as hell.
xdotool windowunmap 0xa00002Offline
I tried setting resizehints to 0 in the dwm config file
Afaiu that only affects the handling of tiled windows (and likely only the handling of increments > 1, eg. for terminals)
on the Proton app window did not bring a noticeable change. The minimal values were still in the xprop output.
That should™ not be possible - is this only true for proton? Can you remove the WM_NORMAL_HINTS on eg. xterm?
Offline
yes, only for xterm that can be done. No more WM_NORMAL_HINTS after the command.
xterm
epp@arch:~$ xprop
_NET_WM_NAME(UTF8_STRING) = "epp@arch:~"
_NET_WM_ICON_NAME(UTF8_STRING) = "epp@arch:~"
WM_STATE(WM_STATE):
window state: Normal
icon window: 0x0
WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW
_NET_WM_PID(CARDINAL) = 748239
WM_CLIENT_LEADER(WINDOW): window id # 0x2e0000c
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLASS(STRING) = "xterm", "XTerm"
WM_HINTS(WM_HINTS):
Client accepts input or input focus: True
Initial state is Normal State.
bitmap id # to use for icon: 0x2e00021
bitmap id # of mask for icon: 0x2e00023
WM_NORMAL_HINTS(WM_SIZE_HINTS):
program specified size: 2094 by 2076
program specified minimum size: 23 by 41
program specified resize increment: 19 by 37
program specified base size: 4 by 4
window gravity: NorthWest
WM_CLIENT_MACHINE(STRING) = "arch"
WM_COMMAND(STRING) = { "/usr/bin/xterm" }
WM_ICON_NAME(STRING) = "epp@arch:~"
WM_NAME(STRING) = "epp@arch:~"
epp@arch:~$ xprop -remove WM_NORMAL_HINTS
epp@arch:~$ xprop
_NET_WM_NAME(UTF8_STRING) = "epp@arch:~"
_NET_WM_ICON_NAME(UTF8_STRING) = "epp@arch:~"
WM_STATE(WM_STATE):
window state: Normal
icon window: 0x0
WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW
_NET_WM_PID(CARDINAL) = 748239
WM_CLIENT_LEADER(WINDOW): window id # 0x2e0000c
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLASS(STRING) = "xterm", "XTerm"
WM_HINTS(WM_HINTS):
Client accepts input or input focus: True
Initial state is Normal State.
bitmap id # to use for icon: 0x2e00021
bitmap id # of mask for icon: 0x2e00023
WM_CLIENT_MACHINE(STRING) = "arch"
WM_COMMAND(STRING) = { "/usr/bin/xterm" }
WM_ICON_NAME(STRING) = "epp@arch:~"
WM_NAME(STRING) = "epp@arch:~"Proton app window
epp@arch:~$ xprop
WM_NORMAL_HINTS(WM_SIZE_HINTS):
program specified minimum size: 773 by 700
program specified maximum size: 773 by 700
_NET_WM_USER_TIME(CARDINAL) = 13156078
_NET_WM_OPAQUE_REGION(CARDINAL) = 0, 8, 773, 692
_GTK_THEME_VARIANT(UTF8_STRING) = "dark"
WM_STATE(WM_STATE):
window state: Normal
icon window: 0x0
WM_HINTS(WM_HINTS):
Client accepts input or input focus: True
Initial state is Normal State.
window id # of group leader: 0xa00002epp@archar
_GTK_WINDOW_OBJECT_PATH(UTF8_STRING) = "/proton/vpn/app/gtk/window/1"
_GTK_APPLICATION_OBJECT_PATH(UTF8_STRING) = "/proton/vpn/app/gtk"
_GTK_UNIQUE_BUS_NAME(UTF8_STRING) = ":1.3522"
_GTK_APPLICATION_ID(UTF8_STRING) = "proton.vpn.app.gtk"
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x1, 0x0, 0x0, 0x0
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
XdndAware(ATOM) = BITMAP
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 10485766, 10485767
_NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0xa00005
WM_CLIENT_LEADER(WINDOW): window id # 0xa00002
_NET_WM_PID(CARDINAL) = 605765
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLIENT_MACHINE(STRING) = "arch"
WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_CLASS(STRING) = "protonvpn-app", "protonvpn-app"
WM_ICON_NAME(STRING) = "Proton VPN"
_NET_WM_ICON_NAME(UTF8_STRING) = "Proton VPN"
WM_NAME(STRING) = "Proton VPN"
_NET_WM_NAME(UTF8_STRING) = "Proton VPN"
epp@arch:~$ xprop -remove WM_NORMAL_HINTS
epp@arch:~$ xprop
WM_NORMAL_HINTS(WM_SIZE_HINTS):
program specified minimum size: 773 by 700
program specified maximum size: 773 by 700
_NET_WM_USER_TIME(CARDINAL) = 13156078
_NET_WM_OPAQUE_REGION(CARDINAL) = 0, 8, 773, 692
_GTK_THEME_VARIANT(UTF8_STRING) = "dark"
WM_STATE(WM_STATE):
window state: Normal
icon window: 0x0
WM_HINTS(WM_HINTS):
Client accepts input or input focus: True
Initial state is Normal State.
window id # of group leader: 0xa00002
_GTK_WINDOW_OBJECT_PATH(UTF8_STRING) = "/proton/vpn/app/gtk/window/1"
_GTK_APPLICATION_OBJECT_PATH(UTF8_STRING) = "/proton/vpn/app/gtk"
_GTK_UNIQUE_BUS_NAME(UTF8_STRING) = ":1.3522"
_GTK_APPLICATION_ID(UTF8_STRING) = "proton.vpn.app.gtk"
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x1, 0x0, 0x0, 0x0
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
XdndAware(ATOM) = BITMAP
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 10485766, 10485767
_NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0xa00005
WM_CLIENT_LEADER(WINDOW): window id # 0xa00002
_NET_WM_PID(CARDINAL) = 605765
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLIENT_MACHINE(STRING) = "arch"
WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_CLASS(STRING) = "protonvpn-app", "protonvpn-app"
WM_ICON_NAME(STRING) = "Proton VPN"
_NET_WM_ICON_NAME(UTF8_STRING) = "Proton VPN"
WM_NAME(STRING) = "Proton VPN"
_NET_WM_NAME(UTF8_STRING) = "Proton VPN"Offline
Seems the client constantly udpates those ![]()
=> https://git.suckless.org/dwm/file/dwm.c.html#l2001
Offline
ok, would be an explanation. And this update is for the max size, that also is the minimum size? Seems stupid.
But I must say that I see myself too old to continue learning C.
A quick look made clear that this isfixed line was already there in dwm version 6.2 (I did not look further back).
After commenting this line, removal of the NORMAL_HINTS was still not possible and did not make the Proton app window more flexible. Do you perhaps see a better option to change the code?
Last edited by Epp (2026-10-12 06:34:32)
Offline
You might have to completely ignore PMaxSize (so you end with "c->maxw = c->maxh = 0;")
This will have absolutely no impact on the window properties, dwm shall just ignore them.
Offline
I placed the line at the end (second to last row of the updatesizehints(Client *c) and kept the rest of de script in dwm.c as it is originally (from dwm)):
c->maxw = c->maxh = 0;It's working indeed. Thank you very much!
Offline