From 0c7a66cd2776176830154c1d0fed9526bcb7ff9b Mon Sep 17 00:00:00 2001 From: Ian Kelling Date: Fri, 26 Jul 2024 10:54:08 -0400 Subject: [PATCH] various fixes --- brc | 46 ++++++---- brc2 | 2 +- .../usr/local/bin/bk-backup | 0 .../usr/local/bin/btrbk-run | 11 ++- .../usr/local/bin/btrbk-spread-wrap | 0 .../usr/local/bin/check-crypttab | 0 .../usr/local/bin/check-mailq | 0 .../usr/local/bin/check-radicale | 0 .../usr/local/bin/check-stale-alerts | 0 .../usr/local/bin/check-subvol-stale | 0 .../usr/local/bin/copyq-restart | 0 .../usr/local/bin/eggdrop-upgrade | 0 .../usr/local/bin/exim-nn-iptables | 0 .../usr/local/bin/i3-abrowser | 0 .../usr/local/bin/i3-auto-layout-toggle | 0 i3-chat => filesystem/usr/local/bin/i3-chat | 0 .../usr/local/bin/i3-check-profanity | 0 i3-emacs => filesystem/usr/local/bin/i3-emacs | 0 .../usr/local/bin/i3-event-hook | 0 .../usr/local/bin/i3-focus-maybe | 0 .../usr/local/bin/i3-konsole | 0 .../usr/local/bin/i3-mouse-warp | 0 .../usr/local/bin/i3-set-layout | 0 .../usr/local/bin/i3-split-maybe | 0 .../usr/local/bin/i3-split-push | 0 .../usr/local/bin/ip6tables-exim | 0 .../usr/local/bin/iptables-exim | 0 .../usr/local/bin/mail-backup-clean | 0 .../usr/local/bin/mailbindwatchdog | 0 .../usr/local/bin/mailclean | 0 .../usr/local/bin/mount-latest-subvol | 2 - .../usr/local/bin/myi3status | 0 prof => filesystem/usr/local/bin/prof | 0 .../usr/local/bin/prof-backup | 0 .../usr/local/bin/prof-notify | 0 .../usr/local/bin/prof-remote | 0 .../usr/local/bin/prof-tail | 0 .../usr/local/bin/switch-host2 | 0 .../usr/local/bin/switch-mail-host | 6 +- .../usr/local/bin/toggle-mute | 0 .../usr/local/bin/unsaved-buffers | 0 .../usr/local/bin/unsaved-buffers.el | 0 i3-sway/bar.conf | 2 +- i3-sway/common.conf | 2 +- i3-sway/gen | 9 +- input-setup | 6 +- myx | 85 +++++++++++++++---- script-files | 43 +--------- subdir_files/.gnupg/gpg.conf | 4 +- .../.local/share/konsole/profileian.profile | 2 +- 50 files changed, 128 insertions(+), 92 deletions(-) rename bk-backup => filesystem/usr/local/bin/bk-backup (100%) rename btrbk-run => filesystem/usr/local/bin/btrbk-run (98%) mode change 100644 => 100755 rename btrbk-spread-wrap => filesystem/usr/local/bin/btrbk-spread-wrap (100%) rename check-crypttab => filesystem/usr/local/bin/check-crypttab (100%) rename check-mailq => filesystem/usr/local/bin/check-mailq (100%) rename check-radicale => filesystem/usr/local/bin/check-radicale (100%) rename check-stale-alerts => filesystem/usr/local/bin/check-stale-alerts (100%) rename check-subvol-stale => filesystem/usr/local/bin/check-subvol-stale (100%) mode change 100644 => 100755 rename copyq-restart => filesystem/usr/local/bin/copyq-restart (100%) rename eggdrop-upgrade => filesystem/usr/local/bin/eggdrop-upgrade (100%) rename exim-nn-iptables => filesystem/usr/local/bin/exim-nn-iptables (100%) rename i3-abrowser => filesystem/usr/local/bin/i3-abrowser (100%) rename i3-auto-layout-toggle => filesystem/usr/local/bin/i3-auto-layout-toggle (100%) rename i3-chat => filesystem/usr/local/bin/i3-chat (100%) rename i3-check-profanity => filesystem/usr/local/bin/i3-check-profanity (100%) rename i3-emacs => filesystem/usr/local/bin/i3-emacs (100%) rename i3-event-hook => filesystem/usr/local/bin/i3-event-hook (100%) rename i3-focus-maybe => filesystem/usr/local/bin/i3-focus-maybe (100%) rename i3-konsole => filesystem/usr/local/bin/i3-konsole (100%) rename i3-mouse-warp => filesystem/usr/local/bin/i3-mouse-warp (100%) rename i3-set-layout => filesystem/usr/local/bin/i3-set-layout (100%) rename i3-split-maybe => filesystem/usr/local/bin/i3-split-maybe (100%) rename i3-split-push => filesystem/usr/local/bin/i3-split-push (100%) rename ip6tables-exim => filesystem/usr/local/bin/ip6tables-exim (100%) rename iptables-exim => filesystem/usr/local/bin/iptables-exim (100%) rename mail-backup-clean => filesystem/usr/local/bin/mail-backup-clean (100%) rename mailbindwatchdog => filesystem/usr/local/bin/mailbindwatchdog (100%) rename mailclean => filesystem/usr/local/bin/mailclean (100%) rename mount-latest-subvol => filesystem/usr/local/bin/mount-latest-subvol (99%) mode change 100644 => 100755 rename myi3status => filesystem/usr/local/bin/myi3status (100%) rename prof => filesystem/usr/local/bin/prof (100%) mode change 100644 => 100755 rename prof-backup => filesystem/usr/local/bin/prof-backup (100%) rename prof-notify => filesystem/usr/local/bin/prof-notify (100%) mode change 100644 => 100755 rename prof-remote => filesystem/usr/local/bin/prof-remote (100%) mode change 100644 => 100755 rename prof-tail => filesystem/usr/local/bin/prof-tail (100%) mode change 100644 => 100755 rename switch-host2 => filesystem/usr/local/bin/switch-host2 (100%) rename switch-mail-host => filesystem/usr/local/bin/switch-mail-host (98%) mode change 100644 => 100755 rename toggle-mute => filesystem/usr/local/bin/toggle-mute (100%) rename unsaved-buffers => filesystem/usr/local/bin/unsaved-buffers (100%) mode change 100644 => 100755 rename unsaved-buffers.el => filesystem/usr/local/bin/unsaved-buffers.el (100%) mode change 100644 => 100755 diff --git a/brc b/brc index 8aded5d..ad476c2 100644 --- a/brc +++ b/brc @@ -659,7 +659,10 @@ ccomp time pd # jdo = journal do. Run command as transient systemd service, tailing # its output in the journal until it completes. # -# Usage: jdo COMMAND... +# Usage: jdo [-n UNIT_NAME] COMMAND... +# +# UNIT_NAME instead of using COMMAND as unit name, use UNIT_NAME. This is needed +# in case COMMAND is already a unit. # # Compared to pd: commands recognize this is a non-interactive shell. # The service is unaffected if our ssh connection dies, no need to run @@ -675,31 +678,40 @@ ccomp time pd # systemctl daemon-reload, and I've had other approaches. I haven't yet # really tried logging with script, sudo, or screen. jdo() { - local cmd cmd_name jr_pid ret sdrun_args sdrun_prefix + local cmd unit_name jr_pid ret sdrun_args sdrun_prefix ret=0 + if [[ $1 == -n ]]; then + unit_name="$2" + shift 2 + fi + cmd="$1" + if [[ ! $unit_name ]]; then + unit_name=${cmd##*/} + fi + shift - if [[ $EUID != 0 ]]; then + if [[ $EUID == 0 ]]; then + sdrun_args="-E HOME=/root -E SSH_AUTH_SOCK=/run/openssh_agent" + else # note, I don't use system --user because if it does sudo ssh, that # will leave a process around that we can't kill and it will leave # the unit hanging around in a failed state needing manual killing # of the process. sdrun_prefix=sudo sdrun_args="--uid "$(id -u)" --gid "$(id -g)" -E SSH_AUTH_SOCK=/run/openssh_agent" - echo "jdo: error: rerun as root" - return 1 fi - cmd_name=${cmd##*/} if [[ $cmd != /* ]]; then + # we need to pass a full path to systemd cmd=$(type -P "$cmd") fi #note date format for since is date '+%F %T' # -q = quiet - journalctl --since=now -qn2 -f -u "$cmd_name" & + journalctl --since=now -qn2 -f -u "$unit_name" & jr_pid=$! - # todo: trial an error testing of the wait time here. - sleep 1 - $sdrun_prefix systemd-run $sdrun_args --unit "$cmd_name" --wait --collect "$cmd" "$@" || ret=$? + # sleep 1 is too fast for x200 + sleep 2 + $sdrun_prefix systemd-run $sdrun_args --unit "$unit_name" --wait --collect "$cmd" "$@" || ret=$? # The sleep lets the journal output its last line # before the prompt comes up. sleep .5 @@ -1330,12 +1342,12 @@ ediff() { rspamta() { ta "$@" /var/log/rspamd/rspamd.log - } +} _rspamtag() { tailf /var/log/rspamd/rspamd.log | grp "$@" - } +} rspamtag() { bn _rspamtag "$@" } @@ -1343,10 +1355,10 @@ rspamtag() { # etail + grep. _etailg() { - ngset - tailf /var/log/exim4/mainlog /var/log/exim4/*main /var/log/exim4/paniclog /var/log/exim4/*panic -n 200 | grp "$@" - ngreset - } + ngset + tailf /var/log/exim4/mainlog /var/log/exim4/*main /var/log/exim4/paniclog /var/log/exim4/*panic -n 200 | grp "$@" + ngreset +} etailg() { bn _etailg "$@" } @@ -2012,7 +2024,7 @@ jrfg() { bn _jrfg "$@" } jru() { - journalctl -nall -u "$@" ; + journalctl -u "$@" ; } jrug() { _jrug() { diff --git a/brc2 b/brc2 index c7de4ab..11cb584 100644 --- a/brc2 +++ b/brc2 @@ -4710,7 +4710,7 @@ path-add --end --ifexists $HOME/.rvm/bin hssh-update() { local -a failed_hosts hosts case $HOSTNAME in - sy|kd) + sy|so|kd) hosts=( kd.b8.nz x3.office.fsf.org syw x2.b8.nz ) diff --git a/bk-backup b/filesystem/usr/local/bin/bk-backup similarity index 100% rename from bk-backup rename to filesystem/usr/local/bin/bk-backup diff --git a/btrbk-run b/filesystem/usr/local/bin/btrbk-run old mode 100644 new mode 100755 similarity index 98% rename from btrbk-run rename to filesystem/usr/local/bin/btrbk-run index 155ee16..dcad541 --- a/btrbk-run +++ b/filesystem/usr/local/bin/btrbk-run @@ -651,6 +651,13 @@ else prospective_mps=(/a /o /qr /qd /q) fi fi + # If the above conditions didnt add any mountpoints, and host + # status is empty, then add all mointpoints. This is a case of + # doing something like kd_spread manually. + if [[ ! ${prospective_mps[0]} && $source_host != "$HOST2" && $source_host != "$MAIL_HOST" && $HOSTNAME != "$MAIL_HOST" && $HOSTNAME != "$HOST2" ]]; then + prospective_mps=(/a /o /qr /qd /q) + fi + # note: put q last just in case its specific retention options were to # affect other config sections. I havent tested if that is the case. ;; @@ -762,10 +769,10 @@ if ! $pull_reexec && [[ $source ]] && $pulla ; then tmpf=$(mktemp) m rsync -ra $source:/usr/local/bin/{mount-latest-subvol,check-subvol-stale} /usr/local/bin m rsync -ra $source:/usr/local/lib/bash-bear /usr/local/lib - m scp $source:/a/bin/distro-setup/btrbk-run $tmpf + m rsync $source:/usr/local/bin/btrbk-run $tmpf if ! diff -q $tmpf ${BASH_SOURCE[0]}; then e "found different version on host $source. reexecing" - install -T $tmpf /usr/local/bin/btrbk-run + rsync -aSAX --chmod=755 --chown=root:root $tmpf /usr/local/bin/btrbk-run m /usr/local/bin/btrbk-run --pull-reexec "${orig_args[@]}" mexit 0 fi diff --git a/btrbk-spread-wrap b/filesystem/usr/local/bin/btrbk-spread-wrap similarity index 100% rename from btrbk-spread-wrap rename to filesystem/usr/local/bin/btrbk-spread-wrap diff --git a/check-crypttab b/filesystem/usr/local/bin/check-crypttab similarity index 100% rename from check-crypttab rename to filesystem/usr/local/bin/check-crypttab diff --git a/check-mailq b/filesystem/usr/local/bin/check-mailq similarity index 100% rename from check-mailq rename to filesystem/usr/local/bin/check-mailq diff --git a/check-radicale b/filesystem/usr/local/bin/check-radicale similarity index 100% rename from check-radicale rename to filesystem/usr/local/bin/check-radicale diff --git a/check-stale-alerts b/filesystem/usr/local/bin/check-stale-alerts similarity index 100% rename from check-stale-alerts rename to filesystem/usr/local/bin/check-stale-alerts diff --git a/check-subvol-stale b/filesystem/usr/local/bin/check-subvol-stale old mode 100644 new mode 100755 similarity index 100% rename from check-subvol-stale rename to filesystem/usr/local/bin/check-subvol-stale diff --git a/copyq-restart b/filesystem/usr/local/bin/copyq-restart similarity index 100% rename from copyq-restart rename to filesystem/usr/local/bin/copyq-restart diff --git a/eggdrop-upgrade b/filesystem/usr/local/bin/eggdrop-upgrade similarity index 100% rename from eggdrop-upgrade rename to filesystem/usr/local/bin/eggdrop-upgrade diff --git a/exim-nn-iptables b/filesystem/usr/local/bin/exim-nn-iptables similarity index 100% rename from exim-nn-iptables rename to filesystem/usr/local/bin/exim-nn-iptables diff --git a/i3-abrowser b/filesystem/usr/local/bin/i3-abrowser similarity index 100% rename from i3-abrowser rename to filesystem/usr/local/bin/i3-abrowser diff --git a/i3-auto-layout-toggle b/filesystem/usr/local/bin/i3-auto-layout-toggle similarity index 100% rename from i3-auto-layout-toggle rename to filesystem/usr/local/bin/i3-auto-layout-toggle diff --git a/i3-chat b/filesystem/usr/local/bin/i3-chat similarity index 100% rename from i3-chat rename to filesystem/usr/local/bin/i3-chat diff --git a/i3-check-profanity b/filesystem/usr/local/bin/i3-check-profanity similarity index 100% rename from i3-check-profanity rename to filesystem/usr/local/bin/i3-check-profanity diff --git a/i3-emacs b/filesystem/usr/local/bin/i3-emacs similarity index 100% rename from i3-emacs rename to filesystem/usr/local/bin/i3-emacs diff --git a/i3-event-hook b/filesystem/usr/local/bin/i3-event-hook similarity index 100% rename from i3-event-hook rename to filesystem/usr/local/bin/i3-event-hook diff --git a/i3-focus-maybe b/filesystem/usr/local/bin/i3-focus-maybe similarity index 100% rename from i3-focus-maybe rename to filesystem/usr/local/bin/i3-focus-maybe diff --git a/i3-konsole b/filesystem/usr/local/bin/i3-konsole similarity index 100% rename from i3-konsole rename to filesystem/usr/local/bin/i3-konsole diff --git a/i3-mouse-warp b/filesystem/usr/local/bin/i3-mouse-warp similarity index 100% rename from i3-mouse-warp rename to filesystem/usr/local/bin/i3-mouse-warp diff --git a/i3-set-layout b/filesystem/usr/local/bin/i3-set-layout similarity index 100% rename from i3-set-layout rename to filesystem/usr/local/bin/i3-set-layout diff --git a/i3-split-maybe b/filesystem/usr/local/bin/i3-split-maybe similarity index 100% rename from i3-split-maybe rename to filesystem/usr/local/bin/i3-split-maybe diff --git a/i3-split-push b/filesystem/usr/local/bin/i3-split-push similarity index 100% rename from i3-split-push rename to filesystem/usr/local/bin/i3-split-push diff --git a/ip6tables-exim b/filesystem/usr/local/bin/ip6tables-exim similarity index 100% rename from ip6tables-exim rename to filesystem/usr/local/bin/ip6tables-exim diff --git a/iptables-exim b/filesystem/usr/local/bin/iptables-exim similarity index 100% rename from iptables-exim rename to filesystem/usr/local/bin/iptables-exim diff --git a/mail-backup-clean b/filesystem/usr/local/bin/mail-backup-clean similarity index 100% rename from mail-backup-clean rename to filesystem/usr/local/bin/mail-backup-clean diff --git a/mailbindwatchdog b/filesystem/usr/local/bin/mailbindwatchdog similarity index 100% rename from mailbindwatchdog rename to filesystem/usr/local/bin/mailbindwatchdog diff --git a/mailclean b/filesystem/usr/local/bin/mailclean similarity index 100% rename from mailclean rename to filesystem/usr/local/bin/mailclean diff --git a/mount-latest-subvol b/filesystem/usr/local/bin/mount-latest-subvol old mode 100644 new mode 100755 similarity index 99% rename from mount-latest-subvol rename to filesystem/usr/local/bin/mount-latest-subvol index 433c7c2..cd87863 --- a/mount-latest-subvol +++ b/filesystem/usr/local/bin/mount-latest-subvol @@ -517,5 +517,3 @@ if (( ret >= 1 )); then echo "$0: exit status $ret. see error above" fi exit $ret - - diff --git a/myi3status b/filesystem/usr/local/bin/myi3status similarity index 100% rename from myi3status rename to filesystem/usr/local/bin/myi3status diff --git a/prof b/filesystem/usr/local/bin/prof old mode 100644 new mode 100755 similarity index 100% rename from prof rename to filesystem/usr/local/bin/prof diff --git a/prof-backup b/filesystem/usr/local/bin/prof-backup similarity index 100% rename from prof-backup rename to filesystem/usr/local/bin/prof-backup diff --git a/prof-notify b/filesystem/usr/local/bin/prof-notify old mode 100644 new mode 100755 similarity index 100% rename from prof-notify rename to filesystem/usr/local/bin/prof-notify diff --git a/prof-remote b/filesystem/usr/local/bin/prof-remote old mode 100644 new mode 100755 similarity index 100% rename from prof-remote rename to filesystem/usr/local/bin/prof-remote diff --git a/prof-tail b/filesystem/usr/local/bin/prof-tail old mode 100644 new mode 100755 similarity index 100% rename from prof-tail rename to filesystem/usr/local/bin/prof-tail diff --git a/switch-host2 b/filesystem/usr/local/bin/switch-host2 similarity index 100% rename from switch-host2 rename to filesystem/usr/local/bin/switch-host2 diff --git a/switch-mail-host b/filesystem/usr/local/bin/switch-mail-host old mode 100644 new mode 100755 similarity index 98% rename from switch-mail-host rename to filesystem/usr/local/bin/switch-mail-host index d129b62..e7084c6 --- a/switch-mail-host +++ b/filesystem/usr/local/bin/switch-mail-host @@ -182,7 +182,7 @@ case $direction in old_hostname=$HOSTNAME new_host=$host bbk_args="-t $new_host" - new_shell="ssh -F $HOME/.ssh/confighome root@$new_host" + new_shell="ssh -F /root/.ssh/confighome root@$new_host" if ! new_hostname=$($new_shell hostname); then echo "$pre: error: failed ssh. retrying failed $new_shell with -v for more info:" $new_shell -v hostname @@ -193,7 +193,7 @@ case $direction in new_host=$HOSTNAME new_hostname=$HOSTNAME bbk_args="-s $old_host" - old_shell="ssh -F $HOME/.ssh/confighome root@$old_host" + old_shell="ssh -F /root/.ssh/confighome root@$old_host" # tests ssh connection. crafted this to not need to do escape chars if ! $mail_only && ! $pull_reexec ; then @@ -206,7 +206,7 @@ case $direction in files=( /usr/local/{bin/{unsaved-buffers{,.el},switch-mail-host},lib/bash-bear} ) - m scp -F $HOME/.ssh/confighome \ + m scp -F /root/.ssh/confighome \ ${files[@]/#/root@$old_host:} $tmpd diff=false for f in ${files[@]}; do diff --git a/toggle-mute b/filesystem/usr/local/bin/toggle-mute similarity index 100% rename from toggle-mute rename to filesystem/usr/local/bin/toggle-mute diff --git a/unsaved-buffers b/filesystem/usr/local/bin/unsaved-buffers old mode 100644 new mode 100755 similarity index 100% rename from unsaved-buffers rename to filesystem/usr/local/bin/unsaved-buffers diff --git a/unsaved-buffers.el b/filesystem/usr/local/bin/unsaved-buffers.el old mode 100644 new mode 100755 similarity index 100% rename from unsaved-buffers.el rename to filesystem/usr/local/bin/unsaved-buffers.el diff --git a/i3-sway/bar.conf b/i3-sway/bar.conf index 918385b..49fc262 100644 --- a/i3-sway/bar.conf +++ b/i3-sway/bar.conf @@ -27,7 +27,7 @@ output primary #status_command i3status #for faster testing -#status_command /a/bin/ds/myi3status +#status_command /a/bin/ds/filesystem/usr/local/bin/myi3status status_command /usr/local/bin/myi3status #mode hide # hidden_state hide diff --git a/i3-sway/common.conf b/i3-sway/common.conf index 16922ea..bb92fe5 100644 --- a/i3-sway/common.conf +++ b/i3-sway/common.conf @@ -100,7 +100,7 @@ bindsym $mod+s workspace 4 bindsym $mod+Shift+d move container to workspace 3 bindsym $mod+d workspace 3 -bindsym $mod+Shift+f move container to workspace 2 +bindsym $mod+Shift+fq move container to workspace 2 bindsym $mod+f workspace 2 bindsym $mod+Shift+z move container to workspace 5 diff --git a/i3-sway/gen b/i3-sway/gen index 055f8a5..8a6535c 100755 --- a/i3-sway/gen +++ b/i3-sway/gen @@ -26,6 +26,11 @@ trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR x="$(readlink -f -- "${BASH_SOURCE[0]}")"; cd ${x%/*} # directory of this file +i3_cmd=reload +if [[ $1 == -r ]]; then + i3_cmd=restart +fi + ## do sway config. untested and probably broken at this point dir=/a/bin/distro-setup/subdir_files/.config/sway mkdir -p $dir @@ -40,6 +45,6 @@ if [[ -s ~/i3-myx.conf ]]; then fi if [[ $I3SOCK ]]; then - echo $0: i3-msg reload - i3-msg reload + echo $0: i3-msg $i3_cmd + i3-msg $i3_cmd fi diff --git a/input-setup b/input-setup index 17bea00..1509fc3 100755 --- a/input-setup +++ b/input-setup @@ -66,7 +66,7 @@ case $1 in esac if [[ ! $type ]]; then - if xinput | grep -i keyboardio; then + if xinput | grep -i keyboardio &>/dev/null; then type=keyboardio else type=laptop @@ -115,10 +115,10 @@ case $type in # cp keyboardio-t12.xkb x2-t12.xkb # diff xkbcomp-t9.xkb x2-t9.xkb # g x2-t12.xkb - m xkbcomp /a/c/keyboardio-t12.xkb $DISPLAY + m xkbcomp /a/c/keyboardio-t12.xkb $DISPLAY |& grep -v '^No symbols defined for' ;; laptop) - m xkbcomp /a/c/x2-t12.xkb $DISPLAY + m xkbcomp /a/c/x2-t12.xkb $DISPLAY |& grep -v '^No symbols defined for' ;; esac diff --git a/myx b/myx index ad1bf23..24beac5 100755 --- a/myx +++ b/myx @@ -63,6 +63,10 @@ i3() { i3-msg "$@" fi } +xmod() { + xrandr "$@" + gen_arg=-r +} date "+%A, %B %d, %r, %S seconds" @@ -188,41 +192,41 @@ half_y=$(( target_y / 2 )) for mon_suffix in TOP-LEFT BOTTOM-LEFT LEFT RIGHT; do if xrandr --listmonitors | awk '$2 == "MON-'$mon_suffix\" |grep . >/dev/null; then - m xrandr --delmonitor MON-$mon_suffix + m xmod --delmonitor MON-$mon_suffix fi done if [[ ! $secondary_out ]] || grep -A1 disconnected $xf | grep '^[[:space:]]'; then # gets rid of leftover secondary - m xrandr --auto + m xmod --auto fi if [[ $secondary_out ]] && $restart; then - m xrandr --output $secondary_out --off + m xmod --output $secondary_out --off m sleep 2 fi if [[ $secondary_out || $primary_res != "$target_res" ]]; then - m xrandr --output $target_out $left_right_arg --mode $target_res + m xmod --output $target_out $left_right_arg --mode $target_res fi if $tall; then # 298 & 336 are millimeters. I took them from a monitor I was using. I # don't know if they are important, I assume not important enough to # change for different monitors. - m xrandr --setmonitor MON-LEFT $half_x/298x$target_y/336+$x_offset+0 $target_out - m xrandr --setmonitor MON-RIGHT $half_x/298x$target_y/336+$(( x_offset + half_x ))+0 none + m xmod --setmonitor MON-LEFT $half_x/298x$target_y/336+$x_offset+0 $target_out + m xmod --setmonitor MON-RIGHT $half_x/298x$target_y/336+$(( x_offset + half_x ))+0 none elif $quarter; then - m xrandr --setmonitor MON-LEFT $half_x/298x$half_y/336+$x_offset+0 $target_out + m xmod --setmonitor MON-LEFT $half_x/298x$half_y/336+$x_offset+0 $target_out # note: this bottom left is buggy when it comes to context menus, # including in web pages. In the tall configuration, I sometimes see # them in another "monitor" area, but with this bottom left monitor, # they aren't displayed at all, as if the window system is displaying # them off screen. When that happens, I just switch to the tall # configuration, use the dialog, and them maybe switch back. - m xrandr --setmonitor MON-BOTTOM-LEFT $half_x/298x$half_y/336+$x_offset+$half_y none - m xrandr --setmonitor MON-RIGHT $half_x/298x$target_y/336+$(( x_offset + half_x ))+0 none + m xmod --setmonitor MON-BOTTOM-LEFT $half_x/298x$half_y/336+$x_offset+$half_y none + m xmod --setmonitor MON-RIGHT $half_x/298x$target_y/336+$(( x_offset + half_x ))+0 none fi @@ -263,7 +267,7 @@ fi echo d1 ${ws_outputs[@]} rm -f ~/i3-myx.conf -total_ws_count=10 +total_ws_count=11 for (( i=0; i> ~/i3-myx.conf fi echo "bindsym \$mod+Shift+t move workspace to output ${move_outputs[*]}" >>~/i3-myx.conf -m /a/bin/ds/i3-sway/gen # give it some time to reload or adjust to new x settings. + +# i3-msg -t get_outputs | jq -C . +# showed +# { + # "name": "HDMI-2", + # "active": true, + # "primary": false, + # "rect": { + # "x": 1920, + # "y": 0, + # "width": 3840, + # "height": 2160 + # }, + # "current_workspace": "3" + # }, + # { + # "name": "DP-1", + # "active": false, + # "primary": false, + # "rect": { + # "x": 1920, + # "y": 0, + # "width": 3840, + # "height": 2160 + # }, + # "current_workspace": null + # } + # This was incorrect. The correct thing is that DP-1 is active, HDMI-2 is not active. + # Restarting i3 did not help. + sleep 1 +m /a/bin/ds/i3-sway/gen $gen_arg if (( ${#ws_outputs[@]} )); then @@ -306,10 +340,8 @@ if (( ${#ws_outputs[@]} )); then cat <<'EOF' >&2 ERROR: moving workspaces is not working as expected I've seen it happen -that an output is not "active" and restarting i3 fixed it. If you see -this, try reloading i3, and thinking about how to automatically handle -the situation from within the script. - +that an output should not exist anymore. Restarting i3 fixed it, reloading did not. +This script did a restart, but it might need a sleep before doing so. EOF exit 1 fi @@ -319,6 +351,10 @@ EOF tmps=$(jq -r '.[] | .num, .output' <<<"$tmps") while read -r ws; do read -r output || break + if [[ $ws != [0-9] && $ws != 10 ]]; then + echo "$0: error: unexpected workspace found: $ws. continuing" + continue + fi if [[ ${ws_expected_out[$ws]} != "$output" ]]; then m i3 '[workspace="'$ws'"]' move workspace to output ${ws_expected_out[$ws]} refresh_workspaces=true @@ -335,3 +371,22 @@ m /a/exe/input-setup echo -n "myx end: " date "+%A, %B %d, %r, %S seconds" + + +# myx -f +# Tuesday, July 23, 05:54:37 PM, 37 seconds +# myx: xmod --delmonitor MON-LEFT +# myx: xmod --delmonitor MON-RIGHT +# myx: xmod --output DP-1 --right-of eDP-1 --mode 3840x2160 +# d1 eDP-1 DP-1 +# myx: /a/bin/ds/i3-sway/gen -r +# /a/bin/ds/i3-sway/gen: i3-msg restart +# [{"success":true}] +# myx: i3 [workspace="2"] move workspace to output DP-1 +# ERROR: No output matched +# [{"success":false,"error":"No output matched"}] +# /a/exe/myx:63: `i3-msg "$@"' returned 2 +# from /a/exe/myx:63:in `i3 [workspace="2"] move workspace to output DP-1' +# from /a/exe/myx:88:in `m i3 [workspace="2"] move workspace to output DP-1' +# from /a/exe/myx:330:in `main -f' +# /a/exe/myx: exiting with status 2 diff --git a/script-files b/script-files index 79a9098..b245ef2 100644 --- a/script-files +++ b/script-files @@ -23,51 +23,10 @@ ### FOR SOURCING ### my_bin_files=( - switch-mail-host - switch-host2 - btrbk-run mount-latest-subvol - check-subvol-stale - myi3status - mailbindwatchdog - check-mailq - unsaved-buffers - unsaved-buffers.el - mail-backup-clean - iptables-exim - ip6tables-exim - exim-nn-iptables - check-crypttab + /a/bin/cedit/cedit - btrbk-spread-wrap - prof - prof-remote - prof-backup - prof-tail - prof-notify /a/bin/newns/newns /a/bin/fai/fai/config/distro-install-common/ethusb-static - - i3-abrowser - i3-auto-layout-toggle - i3-chat - i3-check-profanity - i3-emacs - i3-event-hook - i3-focus-maybe - i3-konsole - i3-mouse-warp - i3-set-layout - i3-split-maybe - i3-split-push - - copyq-restart - toggle-mute - - check-stale-alerts - check-radicale - mailclean - bk-backup - eggdrop-upgrade ) for f in /b/log-quiet/*; do diff --git a/subdir_files/.gnupg/gpg.conf b/subdir_files/.gnupg/gpg.conf index 8c6a6f1..0dbd896 100644 --- a/subdir_files/.gnupg/gpg.conf +++ b/subdir_files/.gnupg/gpg.conf @@ -39,14 +39,14 @@ default-key B125F60B7B287FF6A2B7DF8F170AF0E2954295DF # DO NOT USE THIS ONE. #keyserver hkp://pool.sks-keyservers.net -#keyserver hkp://keys.openpgp.org +keyserver hkp://keys.openpgp.org #keyserver hkp://pgp.mit.edu #keyserver hkp://keyserver.pgp.com #keyserver hkp://ipv4.pool.sks-keyservers.net #keyserver hkp://keys.gnupg.net #keyserver hkp://keyserver.ubuntu.com #keyserver hkp://keyring.debian.org -keyserver keyserver.ubuntu.com +#keyserver keyserver.ubuntu.com # more secure hkps, but had problems with my gpg version #keyserver hkps://hkps.pool.sks-keyservers.net diff --git a/subdir_files/.local/share/konsole/profileian.profile b/subdir_files/.local/share/konsole/profileian.profile index 3707b8b..c6b33fa 100644 --- a/subdir_files/.local/share/konsole/profileian.profile +++ b/subdir_files/.local/share/konsole/profileian.profile @@ -21,7 +21,7 @@ OpenLinksByDirectClickEnabled=false TextEditorCmd=6 TextEditorCmdCustom=/a/exe/g +LINE:COLUMN PATH UnderlineFilesEnabled=true -WordCharacters=@-./_~?&=%+# +WordCharacters=@-./_~?&=%+#: [Keyboard] KeyBindings=default -- 2.30.2