*output_name* The name of virtual output. If not supplied, will remove the
last virtual output added.
+*<action name="AutoPlace" />*
+ Use the automatic placement policy to move the active window to a
+ position on its output that will minimize overlap with other windows.
+
*<action name="None" />*
If used as the only action for a binding: clear an earlier defined binding.
<windowRule title="pcmanfm-desktop*">
<skipTaskbar>yes</skipTaskbar>
<skipWindowSwitcher>yes</skipWindowSwitcher>
- <fixedPosition>yes</fixedPosition>
+ <fixedPosition>yes</fixedPosition>
<action name="MoveTo" x="0" y="0" />
<action name="ToggleAlwaysOnBottom"/>
</windowRule>
+ <windowRule identifier="org.qutebrowser.qutebrowser">
+ <action name="ResizeTo" width="1024" y="800" />
+ <action name="AutoPlace"/>
+ </windowRule>
</windowRules>
-->
#include "debug.h"
#include "labwc.h"
#include "menu/menu.h"
+#include "placement.h"
#include "regions.h"
#include "ssd.h"
#include "view.h"
ACTION_TYPE_FOR_EACH,
ACTION_TYPE_VIRTUAL_OUTPUT_ADD,
ACTION_TYPE_VIRTUAL_OUTPUT_REMOVE,
+ ACTION_TYPE_AUTO_PLACE,
};
const char *action_names[] = {
"ForEach",
"VirtualOutputAdd",
"VirtualOutputRemove",
+ "AutoPlace",
NULL
};
output_remove_virtual(server, output_name);
}
break;
+ case ACTION_TYPE_AUTO_PLACE:
+ if (view) {
+ int x = 0, y = 0;
+ if (placement_find_best(view, &x, &y)) {
+ view_move(view, x, y);
+ }
+ }
+ break;
case ACTION_TYPE_INVALID:
wlr_log(WLR_ERROR, "Not executing unknown action");
break;