The user now has complete control over everything -a alters.
All checks for the -a flags are now done in the helper functions.
"is_floating" is now always defined and will return 1 if the window is
not floating. Fix the float checks in mapping functions. Get rid of
separate "dec_fix_auto" variable.
- Get rid of old method for -a; now mapping the window will always be
combined with resetting its size and location; this may not be
necessary, but in those cases, it won't cause any harm; this means
that there is no reason to differentiate between window managers that
move or resize windows as this possibility will always be taken into
account
- Don't record last monitor and check to see whether a geometry change
is necessary; just always fix the geometry (same reasoning as previous
point; there is no significant overhead)
- Finish transition to new "hooks" (pre/post create/float/map/unmap)
- Make the naming of the hook variables consistent (pre/post first)
- Make wid and class global variables
- Add --wm and --class options (wm option may only be useful in limited
circumstance since most settings are now very specific to their wm;
this may change in the future or this setting may be useful in the
possible case that a similar fork of a wm has a different name)
- Switch to org style headings
Still needs to be done:
- further testing
- documentation (help, readme, manpage)
For most WMs (awesome is an exception), windows that are open on another
desktop are reported as unmapped which causes nothing to happen if a
tdrop command is run (unmapping/mapping don't work in this case). Moving
a dropdown to the current desktop is possible with xdotool though
(basically the same as wmctrl's -R). This is a temporary solution that
may be need to be refined in the future. A potential issue is whether
pre/post map hooks should be run in this case (e.g. rules should not be
added again for bspwm). This could be fixed later by actually unmapping
the window or by adding more specific hooks. Addresses #21.
- Simplify logic
- Properly handle both the case where a "special" program needs to be
started and where it has already been started (did not actually work
before because the first pgrep somehow stopped the second from working
correctly)
- Add support for "chromium-browser"
Closes#20.
With this, '-m' is no longer required for negative values to be used
with any of the geometry options (-w/-y/-x/-y). Also, tdrop no longer
relies on xdotool's ability to take percentages directly (for
windowsize). Fixes#19.
The map_post commands that actually combine movement with mapping will
cause an error when first creating a dropdown since in this case the
window is already mapped. Addresses #17.
This will, for example, allow session names to have whitespace (not that
that's a good idea, but if the session name is quoted like -s "a b",
then the expected behavior is to get a session named "a b" not for tdrop
to fail).
Exit with an error message if
- A long option that requires an arg is specified without =
- No positional argument is given (for the program name or auto commands)
- A negative width or height is given without -m
- Numeric options do not have a number value