You are not logged in.

#1 2026-10-10 17:00:58

Epp
Member
Registered: 2022-07-11
Posts: 106

[SOLVED] Window size change proton-vpn-gtk-app bash or config

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

#2 2026-10-10 19:27:16

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 78,397

Re: [SOLVED] Window size change proton-vpn-gtk-app bash or config

WM_NORMAL_HINTS(WM_SIZE_HINTS):
                program specified minimum size: 773 by 700
                program specified maximum size: 773 by 700

If 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

#3 2026-10-11 17:09:45

Epp
Member
Registered: 2022-07-11
Posts: 106

Re: [SOLVED] Window size change proton-vpn-gtk-app bash or config

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_HINTS

on 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 0xa00002

Offline

#4 2026-10-11 18:57:27

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 78,397

Re: [SOLVED] Window size change proton-vpn-gtk-app bash or config

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

#5 2026-10-11 20:09:21

Epp
Member
Registered: 2022-07-11
Posts: 106

Re: [SOLVED] Window size change proton-vpn-gtk-app bash or config

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

#6 2026-10-11 20:19:50

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 78,397

Re: [SOLVED] Window size change proton-vpn-gtk-app bash or config

Seems the client constantly udpates those roll
=> https://git.suckless.org/dwm/file/dwm.c.html#l2001

Offline

#7 2026-10-12 06:08:07

Epp
Member
Registered: 2022-07-11
Posts: 106

Re: [SOLVED] Window size change proton-vpn-gtk-app bash or config

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

#8 2026-10-12 07:11:59

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 78,397

Re: [SOLVED] Window size change proton-vpn-gtk-app bash or config

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

#9 2026-10-12 08:57:12

Epp
Member
Registered: 2022-07-11
Posts: 106

Re: [SOLVED] Window size change proton-vpn-gtk-app bash or config

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

Board footer

Powered by FluxBB