Xfce Forum

Sub domains
 

You are not logged in.

#1 2017-04-12 09:15:02

all-black-background
Member
Registered: 2017-04-12
Posts: 5

up arrow window tool collapses window vertical - great! ... almost

Updated XFCE some time back and noticed a new window sizing tool in the upper right on the title bar of windows along with the maximize, unmaximize, and iconify buttons.  When I click it, and the window collapses vertically just to a title bar.

I am the ultimate windowing system minimalist ... but I very much like the concept of a vertical collapse, but not to a title bar, but rather to the equivalent of 40 lines or some such, or where the window was before it was elongated.   Can the size of the vertical collapse/expand be set?

This is because on a large screens maximize has become pretty much useless.  what would be useful, IMHO are buttons for popping to various window sizes (think of it as maximize with a limit).   This vertical expand and collapse gets me part way there, it is a great concept.

However, I can't find, and perhaps it does not exist, the how to configure this up arrow tool to set the window sizes when it is used.  I've tried to hit the up arrow and resize the window to what I would like it to collapse to (just like unminimize)   but ti doesn't expand.

Offline

#2 2017-04-13 00:11:49

ToZ
Administrator
From: Canada
Registered: 2011-06-02
Posts: 10,948

Re: up arrow window tool collapses window vertical - great! ... almost

That effect is called shading and it has existed for a while. Perhaps the update also updated the window manager theme which added the button that you see.

Unfortunately, it is not configurable.


Please remember to mark your thread [SOLVED] to make it easier for others to find
--- How To Ask For Help | FAQ | Developer Wiki  |  Community | Contribute ---

Offline

#3 2017-04-18 10:06:37

all-black-background
Member
Registered: 2017-04-12
Posts: 5

Re: up arrow window tool collapses window vertical - great! ... almost

ah too bad. 

Is there a way to configure the maximize button?

In thinking about this, what I need is a button that toggles between window sizes.   I would set the size when the window is active.  This is much like maximize and unmaximize, but instead  window-size-settings-1 and window-size-settings-2.   

With any luck this issue of maximize being too big will only get worse!   I'm looking forward to even higher resolutions and even larger wrap around screens.   Then hit maximize will expand my console shell window to be three meters square and take up half the room!  haha.  ah, a little too big.   We are approaching this kind of situation now.   If it wasn't for multiple screens, maximize would be a meter across.  So I'm using screens to set window maximize limits...

Offline

#4 2017-04-18 17:07:50

ToZ
Administrator
From: Canada
Registered: 2011-06-02
Posts: 10,948

Re: up arrow window tool collapses window vertical - great! ... almost

Unfortunately, I don't believe that any of the window buttons are configurable.

You bring up some good points though. Perhaps you should create a bug report against xfwm4 and see what the developer says/thinks about this.

Otherwise, you might be able to program something using wmctrl/xdotool and assign those to keyboard or mouse shortcuts that you can use to control the windows as you see fit. For example, here is a code snippet that will shade the currently active/focused window using xdotool to an arbitrary height of 50 pixels and unshade it back to its original size:

#!/bin/bash

SHADE_HEIGHT=50

# get info about currently active window
get_win_info () {
   WININFO=$(xdotool getactivewindow getwindowgeometry --shell)
   WINDOW=$(echo $WININFO | awk -F' ' '{print $1}' | awk -F'=' '{print $2}')
   X=$(echo $WININFO | awk -F' ' '{print $2}' | awk -F'=' '{print $2}')
   Y=$(echo $WININFO | awk -F' ' '{print $3}' | awk -F'=' '{print $2}')
   WIDTH=$(echo $WININFO | awk -F' ' '{print $4}' | awk -F'=' '{print $2}')
   HEIGHT=$(echo $WININFO | awk -F' ' '{print $5}' | awk -F'=' '{print $2}')
}

get_saved_win_info () {
   sWININFO=$(cat /tmp/.$WINDOW)
   sWINDOW=$(echo $sWININFO | awk -F' ' '{print $1}' | awk -F'=' '{print $2}')
   sX=$(echo $sWININFO | awk -F' ' '{print $2}' | awk -F'=' '{print $2}')
   sY=$(echo $sWININFO | awk -F' ' '{print $3}' | awk -F'=' '{print $2}')
   sWIDTH=$(echo $sWININFO | awk -F' ' '{print $4}' | awk -F'=' '{print $2}')
   sHEIGHT=$(echo $sWININFO | awk -F' ' '{print $5}' | awk -F'=' '{print $2}')
}

case $1 in
   shade)
      # extract window information from result set
      get_win_info 
         
      # save window geometry for unshade         
      [[ ! -e /tmp/.$WINDOW ]] && echo $WININFO > /tmp/.$WINDOW
         
      # resize the window
      xdotool windowsize $WINDOW $WIDTH $SHADE_HEIGHT
   ;;
   
   unshade)
      # get active window id
      get_win_info
      
      # if exists, get saved window info
      if [ -e /tmp/.$WINDOW ]; then
         get_saved_win_info
         if [ "$WINDOW" == "$sWINDOW" ]; then
            if [ ! -z $sHEIGHT ]; then
               xdotool windowsize $WINDOW $WIDTH $sHEIGHT
            fi
         fi
      fi
      
      # delete saved geometry file
      [[ -e /tmp/.$WINDOW ]] && rm /tmp/.$WINDOW   
   ;;
   
   *)
   ;;
   
esac   

Call the script with the parameter "shade" or "unshade". Assign both to a keyboard shortcut so you can call it on any active window.

You can extend this script to do the other actions such as maximize to specific sizes/locations.


Please remember to mark your thread [SOLVED] to make it easier for others to find
--- How To Ask For Help | FAQ | Developer Wiki  |  Community | Contribute ---

Offline

Board footer

Powered by FluxBB