diff options
author | Boris Faure <billiob@gmail.com> | 2012-08-10 09:57:33 +0000 |
---|---|---|
committer | Boris Faure <billiob@gmail.com> | 2012-08-10 09:57:33 +0000 |
commit | 4f59520f88dcaa2342bfe0ef5efcfeabeac02c7b (patch) | |
tree | 8b23e6de1e838ba1cca7c2cdeac4d502dae201e6 /x-ui.sh | |
parent | ffac12a5e1a00c838dc28167a85bedb40709a849 (diff) | |
download | enlightenment-4f59520f88dcaa2342bfe0ef5efcfeabeac02c7b.tar.gz |
e: add xinerama options to x-ui. Patch by Thanatermesis
Also switch to bash.
SVN revision: 75079
Diffstat (limited to 'x-ui.sh')
-rwxr-xr-x | x-ui.sh | 59 |
1 files changed, 57 insertions, 2 deletions
@@ -1,4 +1,4 @@ -#!/bin/sh +#!/usr/bin/env bash DPI=${DPI:-142} SCREEN=${SCREEN:-640x480} @@ -11,6 +11,52 @@ CALLGRIND=${CALLGRIND} HOST_CURSOR=${HOST_CURSOR} TEST_HOME=${TEST_HOME} +xinerama_auto_modes() +{ + local x y screen_res screen_res_x screen_res_y div_x div_y single_res single_res_x single_res_y walker_x walker_y + + div_x="${1%x*}" + div_y="${1#*x}" + + + # get your display resolution + screen_res="$( xdpyinfo | grep dimensions | awk '{print $2}' )" + screen_res_x="${screen_res%x*}" + screen_res_y="${screen_res#*x}" + + # add some offset for your window-borders + screen_res_x="$(( ${screen_res_x} - 20 ))" + screen_res_y="$(( ${screen_res_y} - 40 ))" + + # set size for xephir + SCREEN="${screen_res_x}x${screen_res_y}" + + + # which size per screen ? + single_res_x="$(( ${screen_res_x} / ${div_x} ))" + single_res_y="$(( ${screen_res_y} / ${div_y} ))" + single_res="${single_res_x}x${single_res_y}" + + + walker_x=0 + walker_y=0 + + + for (( y=0 ; $y < ${div_y} ; y++ )) ; do + for (( x=0 ; $x < ${div_x} ; x++ )) ; do + # add a new horizontal xinerama screen + xinerama_auto_args="${xinerama_auto_args} -fake-xinerama-screen ${single_res}+${walker_x}+${walker_y}" + walker_x="$(( ${walker_x} + ${single_res_x} ))" + done + # previous loop finished, set horizontal back to 0 + walker_x=0 + # add a new vertical xinerama screen + walker_y="$(( ${walker_y} + ${single_res_y} ))" + done + + #echo "${xinerama_auto_args}" +} + show_help() { cat <<HELP_EOF @@ -25,6 +71,8 @@ where options are: -s, --screen=SPEC WIDTHxHEIGHT[xDEPTH] to be used. -x, --fxs=WxH+X+Y Fake xinerama screen resolution (can be applied repeatedly) + -ax 2x3 Automatic set of fake xineramas, 2 horizontal + screens per 3 of vertical ones -p, --profile=NAME Enlightenment profile name. -e, --empty-home[=PATH] Run with \$HOME being a new, empty directory at /tmp @@ -150,6 +198,13 @@ while [ $# -gt 0 ]; do -callgrind|--callgrind) CALLGRIND="1" ;; + -ax|-auto-xinerama|--auto-xinerama) + if [ -z "$value" ]; then + value=$1 + shift + fi + xinerama_auto_modes $value + ;; *) echo "Unknown option: $option" 1>&2 ;; @@ -221,5 +276,5 @@ enlightenment_start \ -no-precache \ -i-really-know-what-i-am-doing-and-accept-full-responsibility-for-it \ -profile $PROFILE \ - $E_OPTIONS \ + $E_OPTIONS $xinerama_auto_args \ $DEBUGGER |