Search code examples
linuxshellwmctrl

wmctrl does not expand variables


I have a window whose window ID is 0x0100000b. If I run

wmctrl -c 0x0100000b

It closes this window as expected. However, if I to

test=0x0100000b
wmctrl -c $test

It doesn't (on both zsh and bash). I don't know why it is happening as I was expecting to achieve the same result. That is just an MWE that sheds light on problem I am facing, which is expanding arguments with the wmctrl command.


Solution

  • Acutally wmctrl is expanding variables properly. I was missing an option from my part. If you want that wmctrl interpret window arguments by its window ID rather than its string name, you must pass the -i flag. From the manual:

    -i Interpret window arguments (<WIN>) as a numeric value rather than a string name for the window. If the numeric value starts with the prefix '0x' it is assumed to be a hexadecimal number.

    If you don't put this argument, you will get an unpredictable behavior when passing numeric argument.