diff options
author | P. J. McDermott <pj@pehjota.net> | 2018-05-04 12:39:01 (EDT) |
---|---|---|
committer | P. J. McDermott <pj@pehjota.net> | 2018-05-04 12:39:01 (EDT) |
commit | 82a11c00fe5d443fa0604cf21cc098d932176f5c (patch) | |
tree | 7a7d4d6782253f95984e2f491aa271213fbed1f3 | |
parent | 8ebdb567f49145f1137016a5a1f67be8c50c45ca (diff) | |
download | fluxbox-82a11c00fe5d443fa0604cf21cc098d932176f5c.zip fluxbox-82a11c00fe5d443fa0604cf21cc098d932176f5c.tar.gz fluxbox-82a11c00fe5d443fa0604cf21cc098d932176f5c.tar.bz2 |
bin/chdt: Read desktop geometry settings from rc file
-rwxr-xr-x | bin/chdt | 34 |
1 files changed, 20 insertions, 14 deletions
@@ -2,9 +2,10 @@ set -eu -ROWS=2 -COLS=6 -ORIENTATION='horizontal' +# Default values, overridden in ~/.chdtrc +rows=2 +cols=6 +orientation='horizontal' debug=0 @@ -53,22 +54,22 @@ inc_desktop() local dx=${2} local dy=${3} - case "${ORIENTATION}" in + case "${orientation}" in [Hh]*) - x=$((${dt} % ${COLS})) - y=$((${dt} / ${COLS})) + x=$((${dt} % ${cols})) + y=$((${dt} / ${cols})) dbg 'Old coordinates: (%d, %d)' ${x} ${y} - x=$(((${x} + ${COLS} + ${dx}) % ${COLS})) - y=$(((${y} + ${ROWS} + ${dy}) % ${ROWS})) + x=$(((${x} + ${cols} + ${dx}) % ${cols})) + y=$(((${y} + ${rows} + ${dy}) % ${rows})) dbg 'New coordinates: (%d, %d)' ${x} ${y} - dt=$((${y} * ${COLS} + ${x})) + dt=$((${y} * ${cols} + ${x})) ;; [Vv]*) - x=$((${dt} / ${ROWS})) - y=$((${dt} % ${ROWS})) - x=$(((${x} + ${dx}) % ${COLS})) - y=$(((${y} + ${dy}) % ${ROWS})) - dt=$((${x} * ${ROWS} + ${y})) + x=$((${dt} / ${rows})) + y=$((${dt} % ${rows})) + x=$(((${x} + ${dx}) % ${cols})) + y=$(((${y} + ${dy}) % ${rows})) + dt=$((${x} * ${rows} + ${y})) ;; esac @@ -162,6 +163,11 @@ main() ;; esac + # POSIX on the dot utility: + # "If no readable file is found, a non-interactive shell shall abort" + # So to survive an ENOENT or other error, we need this eval/cat command. + eval "$(cat ~/.chdtrc 2>/dev/null || :)" + cur_dt=$(get_desktop) || return 1 new_dt=$(inc_desktop ${cur_dt} ${dx} ${dy}) case ${move_win} in |