Because E17 isn't a tiling window manager, a lot of manual window resizing is required. Thus I use to make my life a lot easier by assigning maximization to a function key. E.g. F6 maximizes vertically while F7 maximizes horizontally. I rarely use full maximization (in both directions) because applications like virtual terminals tend to become unreadable, especially line breaks. Full maximization is available by a default shortcut (Alt+Ctrl+f) or by pressing F6 followed by F7. This, however, doesn't yet act anything like a tiling window manager. Normal maximization will ignore other windows and hide or overlap them. That's where the "fill"-mode maximization kicks in. It smartly tries to find a way to enlarge the current window without overlapping others. E17 provides this function with the action "Maximize Mode 'Fill'".
But coming back to the example of the terminal window, I'd like this particular window to keep its horizontal size. I haven't found a way to achieve this with action params in the current revision of E17 and instead dug into the source code to add two new actions: "Maximize Mode 'Fill Vertically'" and "Maximize Mode 'Fill Horizontally'":
--- src/bin/e_actions.c (revision 58033)
+++ src/bin/e_actions.c (working copy)
@@ -2745,6 +2745,10 @@
"window_maximized_toggle", "expand", NULL, 0);
e_action_predef_name_set(N_("Window : State"), N_("Maximize Mode \"Fill\""),
"window_maximized_toggle", "fill", NULL, 0);
+ e_action_predef_name_set(N_("Window : State"), N_("Maximize Mode \"Fill Vertically\""),
+ "window_maximized_toggle", "fill vertical", NULL, 0);
+ e_action_predef_name_set(N_("Window : State"), N_("Maximize Mode \"Fill Horizontally\""),
+ "window_maximized_toggle", "fill horizontal", NULL, 0);
ACT_GO(window_maximized);
+++ src/bin/e_actions.c (working copy)
@@ -2745,6 +2745,10 @@
"window_maximized_toggle", "expand", NULL, 0);
e_action_predef_name_set(N_("Window : State"), N_("Maximize Mode \"Fill\""),
"window_maximized_toggle", "fill", NULL, 0);
+ e_action_predef_name_set(N_("Window : State"), N_("Maximize Mode \"Fill Vertically\""),
+ "window_maximized_toggle", "fill vertical", NULL, 0);
+ e_action_predef_name_set(N_("Window : State"), N_("Maximize Mode \"Fill Horizontally\""),
+ "window_maximized_toggle", "fill horizontal", NULL, 0);
ACT_GO(window_maximized);

It can be downloaded here.
0 comments:
Post a Comment