Termite "position"

Has anyone in manjaro-land figured out a way to position termite (terminal) using any of config.h , .Xresources, .Xdefaults .bashrc or something similar. It is a pain have geometry deprecated…

man wmctrl

Thanks I’ll check it out… this is what I have used (thus far).

Resize without geometry option · Issue #590 · thestinger/termite · GitHub (see marmout’s reply)

1 Like

That is one way of doing it …

wmctrl does not seem to work (for me) I have been unable to both specify position (location) and dimension (height x width) for all/any instances of termite. Generally I want my keybind for a term (Super + Enter) to open on any workspace as a floating window in a defined position (not top left).

Example

termite -t "my termite" && wmctrl -r "my termite" -e 0,200,400,600,400 &

from the manpage regarding the -e argument

 <MVARG>              Specifies a change to the position and size
                       of the window. The format of the argument is:

                       <G>,<X>,<Y>,<W>,<H>

                       <G>: Gravity specified as a number. The numbers are
                          defined in the EWMH specification. The value of
                          zero is particularly useful, it means "use the
                          default gravity of the window".
                       <X>,<Y>: Coordinates of new position of the window.
                       <W>,<H>: New width and height of the window.

                       The value of -1 may appear in place of
                       any of the <X>, <Y>, <W> and <H> properties
                       to left the property unchanged.

https://www.freedesktop.org/wiki/Software/wmctrl/

wmctrl is fairly old - and not all window managers is supported.

Please note that wmctrl only works with window managers which implement the EWMH specification. - wmctrl - A command line tool to interact with an EWMH/NetWM compatible X Window Manager.

_NET_MOVERESIZE_WINDOW

_NET_MOVERESIZE_WINDOW window = window to be moved or resized message_type = _NET_MOVERESIZE_WINDOW format = 32 data.l[0] = gravity and flags data.l[1] = x data.l[2] = y data.l[3] = width data.l[4] = height

The low byte of data.l[0] contains the gravity to use; it may contain any value allowed for the WM_SIZE_HINTS.win_gravity property: NorthWest (1), North (2), NorthEast (3), West (4), Center (5), East (6), SouthWest (7), South (8), SouthEast (9) and Static (10). A gravity of 0 indicates that the Window Manager should use the gravity specified in WM_SIZE_HINTS.win_gravity. The bits 8 to 11 indicate the presence of x, y, width and height. The bits 12 to 15 indicate the source (see the section called “Source indication in requests”), so 0001 indicates the application and 0010 indicates a Pager or a Taskbar. The remaining bits should be set to zero.

Pagers wanting to move or resize a window may send a _NET_MOVERESIZE_WINDOW client message request to the root window instead of using a ConfigureRequest.

Window Managers should treat a _NET_MOVERESIZE_WINDOW message exactly like a ConfigureRequest (in particular, adhering to the ICCCM rules about synthetic ConfigureNotify events), except that they should use the gravity specified in the message.

Rationale: Using a _NET_MOVERESIZE_WINDOW message with StaticGravity allows Pagers to exactly position and resize a window including its decorations without knowing the size of the decorations. - Extended Window Manager Hints

I think that may be why I had issues using wmctrl in dwm… I have gone back to using ‘st’. The following simple command accomplishes everything rather nicely.

st -g=93x31+100+300 -e <app-name>