various improvements
authorIan Kelling <ian@iankelling.org>
Sat, 13 Jul 2019 00:51:08 +0000 (20:51 -0400)
committerIan Kelling <ian@iankelling.org>
Sat, 13 Jul 2019 00:52:07 +0000 (20:52 -0400)
brc
distro-end
distro-pkgs
i3-sway/common.conf
mail-setup
pkgs
subdir_files/.config/i3/config
subdir_files/.config/sway/config
subdir_files/.gnupg/gpg.conf
xl [new file with mode: 0755]

diff --git a/brc b/brc
index 00200fe01edb09c2899c7e0420f1f5ae2a2c7fd6..1c1f0f8ac8fb2b4ebfe3be8196b31e21692ccaa0 100644 (file)
--- a/brc
+++ b/brc
@@ -1564,11 +1564,17 @@ stopnm() {
   ser stop dnsmasq
   s resolvconf -d NetworkManager
   ser start dnsmasq
+  s ifup br0
 }
 startnm() {
+  s ifdown br0
   ser start NetworkManager
   s nmtui-connect
 }
+rebr() {
+  s ifdown br0
+  s ifup br0
+}
 
 setini() { # set a value in a .ini style file
   key="$1" value="$2" section="$3" file="$4"
@@ -2003,23 +2009,6 @@ wian() {
 
 wtr() { curl wttr.in/boston; }
 
-xl() {
-  if pgrep gnome-screensav &>/dev/null; then
-    # this command actually starts gnome-screensaver if it isn\'t running.
-    # lololol, what crap
-    gnome-screensaver-command --exit &>/dev/null
-  fi
-  mate-screensaver-command --exit &>/dev/null
-  if ! pidof xscreensaver; then
-    pushd /
-    xscreensaver &
-    popd
-    # 1 was not long enough
-    sleep 3
-  fi
-  xscreensaver-command -activate
-}
-
 xevkb() { xev -event keyboard; }
 
 # * misc stuff
index 9d3f6f5048e9c33529e736366912f327f7a2ed73..15ae5c2acd17085444d8892c4550e963b0bb990b 100755 (executable)
@@ -27,10 +27,14 @@ end_msg() {
   IFS= read -r -d '' y  ||:
   end_msg_var+="$y"
 }
+die() {
+  printf "$0: %s\n" "$*" >&2; exit 1
+}
 spa() { # simple package add
   simple_packages+=($@)
 }
 distro=$(distro-name)
+codename_compat=$(debian-codename-compat)
 pending_reboot=false
 sed="sed --follow-symlinks"
 # template
@@ -43,9 +47,31 @@ if isdeb; then
   pi aptitude
 fi
 
+# avoid ptompts!
+debconf-set-selections <<EOF
+popularity-contest popularity-contest/participate boolean true
+EOF
+
 ########### begin section including li ################
 pi ${p3[@]} $($src/distro-pkgs)
 
+#### desktop stuff
+case $codename_compat in
+  xenial)
+    # mate-indicator-applet and beyond are msc things I noticed diffing a
+    # standard install with mine.
+    pi xorg lightdm mate-desktop-environment mate-desktop-environment-extras mate-indicator-applet anacron
+    ;;
+  stretch)
+    pi task-mate-desktop
+    ;;
+  buster)
+    # mate doesnt have wayland support yet
+    pi task-gnome-desktop
+    ;;
+esac
+
+
 conflink
 
 case $distro in
@@ -63,15 +89,12 @@ esac
 
 
 # no equivalent in other distros:
-case $distro in
-  debian|trisquel|ubuntu)
-    if ! dpkg -s apt-file &>/dev/null; then
-      # this condition is just a speed optimization
-      pi apt-file
-      s apt-file update
-    fi
-    ;;
-esac
+if isdeb && ! dpkg -s -- "$@" | grep -Fx "Status: install ok installed" &> /dev/null; then
+  # this condition is just a speed optimization
+  pi apt-file
+  s apt-file update
+fi
+
 
 # disable motd junk.
 case $distro in
@@ -82,10 +105,6 @@ case $distro in
     # this says disabling the service, it will still get restarted
     # but this script doesn't do anything on restart, so it should be fine
     s dd of=/var/run/motd.dynamic if=/dev/null
-    # stretch doesn't have initscripts pkg installed by default
-    if [[ $(debian-codename) == jessie ]]; then
-      s update-rc.d motd disable
-    fi
     ;;
   trisquel|ubuntu)
     # this isn't a complete solution. It still shows me when updates are available,
@@ -94,16 +113,6 @@ case $distro in
     ;;
 esac
 
-# automatic updates
-# reference:
-# https://debian-handbook.info/browse/stable/sect.regular-upgrades.html
-# /etc/cron.daily/apt calls unattended-upgrades
-# /usr/share/doc/unattended-upgrades# cat README.md
-# /etc/apt/apt.conf.d/50unattended-upgrades
-if isdebian; then
-  setup-debian-auto-update
-fi
-
 
 ### begin docker install ####
 if isdeb; then
@@ -111,7 +120,7 @@ if isdeb; then
   pi  software-properties-common apt-transport-https
   curl -fsSL https://download.docker.com/linux/$(distro-name-compat)/gpg | sudo apt-key add -
   url=https://download.docker.com/linux/$(distro-name-compat)
-  l="deb [arch=amd64] $url $(debian-codename-compat) stable"
+  l="deb [arch=amd64] $url $codename_compat stable"
 
   if ! grep -xFq "$l" /etc/apt/sources.list{,.d/*.list}; then
     sudo add-apt-repository "$l"
@@ -126,36 +135,28 @@ if isdeb; then
   case $HOSTNAME in
     li|lj)  sgo docker ;;
   esac
-  # other distros unknown
 fi
 ###  end docker install ####
 
 
 
 ### begin certbot install ###
-case $distro in
-  debian)
-    # note, need python-certbot-nginx for nginx, but it depends on nginx,
-    # and I'm not installing nginx by default right now.
-    # note python-certbot-apache is in suggests, but so is a doc package that brought in xorg
-    if [[ $(debian-codename) == jessie ]]; then
-      pi -t jessie-backports certbot python-certbot-apache
-    else
-      pi certbot python-certbot-apache
-    fi
-    ;;
-  trisquel|ubuntu)
-    # not packaged in xenial or flidas
-    pi software-properties-common
-    l="deb http://ppa.launchpad.net/certbot/certbot/ubuntu xenial main"
-    if ! grep -xFq "$l" /etc/apt/sources.list{,.d/*.list}; then
-      s add-apt-repository -y ppa:certbot/certbot ||:
-      p update
-    fi
-    pi python-certbot-apache
-    ;;
-  # todo: other distros unknown
-esac
+if [[ $distro == debian ]]; then
+  # note, need python-certbot-nginx for nginx, but it depends on nginx,
+  # and I'm not installing nginx by default right now.
+  pi certbot python-certbot-apache
+elif [[ $codename_compat == xenial ]]; then
+  # not packaged in xenial or flidas
+  pi software-properties-common
+  l="deb http://ppa.launchpad.net/certbot/certbot/ubuntu xenial main"
+  if ! grep -xFq "$l" /etc/apt/sources.list{,.d/*.list}; then
+    s add-apt-repository -y ppa:certbot/certbot ||:
+    p update
+  fi
+  pi python-certbot-apache
+else
+  die "distro unknown for certbot"
+fi
 # make a version of the certbot timer that emails me.
 x=/systemd/system/certbot
 $sed -r -f - /lib$x.timer <<'EOF' |s dd of=/etc${x}mail.timer
@@ -183,19 +184,20 @@ pi ${p1[@]}
 
 ##### begin automatic upgrades ####
 # this makes it so we upgrade everything
-debconf-set-selections <<'EOF'
+debconf-set-selections <<'EOF'
 unattended-upgrades unattended-upgrades/origins_pattern string "codename=${distro_codename}";
 EOF
-dpkg-reconfigure -u -fnoninteractive unattended-upgrades
+dpkg-reconfigure -u -fnoninteractive unattended-upgrades
 
 # Setup daily reboots, so all unattended upgrades go into affect
 # unattended upgrades happen at 6 am + rand(60 min).
-echo '20 7 * * * root /usr/local/bin/zelous-unattended-reboot' >/etc/cron.d/unattended-upgrade-reboot
+echo '20 7 * * * root /usr/local/bin/zelous-unattended-reboot' | s dd of=/etc/cron.d/unattended-upgrade-reboot
 ##### end automatic upgrades ####
 
-
-## prometheus node exporter setup
-web-conf -f 9100 -p 9101 apache2 $(hostname -f) <<'EOF'
+# office is not exposed to internet yet
+if [[ $(hostname -f) != *.office.fsf.org ]]; then
+  ## prometheus node exporter setup
+  web-conf -f 9100 -p 9101 apache2 $(hostname -f) <<'EOF'
 #https://httpd.apache.org/docs/2.4/mod/mod_authn_core.html#authtype
 # https://stackoverflow.com/questions/5011102/apache-reverse-proxy-with-basic-authentication
 <Location />
@@ -207,7 +209,7 @@ web-conf -f 9100 -p 9101 apache2 $(hostname -f) <<'EOF'
    Require valid-user
 </Location>
 EOF
-
+fi
 
 # website setup
 case $HOSTNAME in
@@ -606,6 +608,8 @@ esac
 
 ########### end section including li/lj ###############
 
+# TODO: some of the X programs can be removed from pall when using wayland
+
 # depends gcc is a way to install suggests. this is apparently the only
 # way to install suggests even if the main package is already
 # installed. reinstall doesn't work, uninstalling can cause removing
@@ -1047,11 +1051,10 @@ EOF
     t=$(mktemp -d)
     cd $t
     aptitude download debootstrap/xenial
-    ex *
+    ex ./*
     s cp ./usr/share/debootstrap/scripts/* /usr/share/debootstrap/scripts
-    ;;
 
-  s dd of=/etc/apt/preferences.d/flidas-etiona <<EOF
+    s dd of=/etc/apt/preferences.d/flidas-etiona <<EOF
 Package: *
 Pin: release a=etiona
 Pin-Priority: -100
@@ -1069,20 +1072,21 @@ Pin: release a=etiona-backports
 Pin-Priority: -100
 EOF
 
-  t=$(mktemp)
-  cat >$t <<EOF
+    t=$(mktemp)
+    cat >$t <<EOF
 deb http://mirror.fsf.org/trisquel/ etiona main
 deb http://mirror.fsf.org/trisquel/ etiona-updates main
 deb http://archive.trisquel.info/trisquel/ etiona-security main
 deb http://mirror.fsf.org/trisquel/ etiona-backports main
 EOF
-  f=/etc/apt/sources.list.d/etiona.list
-  if ! diff -q $t $f; then
-    s cp $t $f
-    s chmod 644 $f
-    p update
-  fi
+    f=/etc/apt/sources.list.d/etiona.list
+    if ! diff -q $t $f; then
+      s cp $t $f
+      s chmod 644 $f
+      p update
+    fi
 
+    ;;
 esac
 
 # /run and /dev/shm are listed as required for pulseaudio. All 4 in the group
@@ -1163,22 +1167,19 @@ sgo schrootupdate.timer
 
 
 
-
 # for my roommate
 case $distro in
   trisquel)
     mkschroot debian stretch firefox-esr pulseaudio chromium
     ;;
+  debian)
+    pi chromium
+    ;;
 esac
 
 s mkdir -p /nocow/user
 s chown $USER:$USER /nocow/user
-case $distro in
-  trisquel|ubuntu)
-    pi anki
-    ;;
-  # others unknown
-esac
+pi anki
 
 
 # adapted from /var/lib/dpkg/info/transmission-daemon.postinst
@@ -1439,7 +1440,7 @@ case $distro in
       # and do some automatic updates
       wget -q https://dl.google.com/go/go1.12.4.linux-amd64.tar.gz
       s tar -C /usr/local -xzf go1.12.4.linux-amd64.tar.gz
-      rm -f *
+      rm -f ./*
     fi
     go get -u mvdan.cc/fdroidcl
     # a bit of googling, and added settings to bashrc
@@ -1494,104 +1495,23 @@ esac
 
 
 
-
-# note this failed running at the beginning of this file,
-# because no systemd user instance was running.
-# Doing systemd --user resulted in
-# Trying to run as user instance, but $XDG_RUNTIME_DIR is not set
-
-if isdebian-testing; then
-  # as of 7/2016, has no unstable deps, and is not in testing anymore.
-  pi synergy/unstable
-else
-  pi synergy
-fi
-
-# case $distro in
-#     # ubuntu unknown. probably the same as debian, just check if the
-#     # init scripts come with the package.
-#     debian)
-#         # copied from arch, but moved to etc
-#         s dd of=/etc/systemd/user/synergys.service <<'EOF'
-# [Unit]
-# Description=Synergy Server Daemon
-# After=network.target
-
-# [Service]
-# User=%i
-# ExecStart=/usr/bin/synergys --no-daemon --config /etc/synergy.conf
-# Restart=on-failure
-
-# [Install]
-# WantedBy=multi-user.target
-# EOF
-#         s dd of=/etc/systemd/user/synergys.socket <<'EOF'
-# [Unit]
-# Conflicts=synergys@.service
-
-# [Socket]
-# ListenStream=24800
-# Accept=false
-
-# [Install]
-# WantedBy=sockets.target
-# EOF
-#         # had this fail with 'Failed to connect to bus: No such file or directory'
-#         # then when I tried it manually, it worked fine...
-#         if ! systemctl --user daemon-reload; then
-#             sleep 2
-#             echo retrying systemd user daemon reload
-#             systemctl --user daemon-reload
-#         fi
-#         ;;&
-#     *)
-#         # taken from arch wiki.
-#         s dd of=/etc/systemd/system/synergyc@.service <<'EOF'
-# [Unit]
-# Description=Synergy Client
-# After=network.target
-
-# [Service]
-# User=%i
-# ExecStart=/usr/bin/synergyc --no-daemon frodo
-# Restart=on-failure
-# # per man systemd.unit, StartLimitInterval, by default we
-# # restart more than 5 times in 10 seconds.
-# # And this param defaults too 200 miliseconds.
-# RestartSec=3s
-
-# [Install]
-# WantedBy=multi-user.target
-# EOF
-#         s systemctl daemon-reload
-#         case $HOSTNAME in
-#             x2|x3|tp)
-#                 ser enable synergyc@iank
-#                 ser start synergyc@iank ||: # X might not be running yet
-#                 ;;
-#             frodo)
-#                 systemctl --user start synergys ||:
-#                 systemctl --user enable synergys
-#                 ;;
-#         esac
-#         ;;
-# esac
+# removed synergy since ive not used it in a long time
 
 
-pi --no-install-recommends kdeconnect-plasma
+pi --no-install-recommends kdeconnect
 ### kdeconnect for gnome. started in /a/bin/distro-setup/desktop-20-autostart.sh
 ### but gnome + xmonad not working in flidas, so i disabled it
-pi libgtk-3-dev python3-requests-oauthlib valac cmake python-nautilus libappindicator3-dev
-cd /a/opt/indicator-kdeconnect
-mkdir -p build
-cd build
-cmake .. -DCMAKE_INSTALL_PREFIX=/usr
-make
-sudo make install
-# we can start it manually with /usr/lib/x86_64-linux-gnu/libexec/kdeconnectd
-# it seems, according to
-# /etc/xdg/autostart/kdeconnectd.desktop
-# I'm not seeing the icon, but the clipboard replication is working
+pi libgtk-3-dev python3-requests-oauthlib valac cmake python-nautilus libappindicator3-dev
+cd /a/opt/indicator-kdeconnect
+mkdir -p build
+cd build
+cmake .. -DCMAKE_INSTALL_PREFIX=/usr
+make
+sudo make install
+# we can start it manually with /usr/lib/x86_64-linux-gnu/libexec/kdeconnectd
+# it seems, according to
+# /etc/xdg/autostart/kdeconnectd.desktop
+# I'm not seeing the icon, but the clipboard replication is working
 
 
 ### model 01 arduino support ###
@@ -1683,7 +1603,7 @@ dbus-launch gsettings set org.gnome.desktop.media-handling automount-open false
 
 # on grub upgrade, we get prompts unless we do this
 devs=()
-for dev in $(s btrfs fi show /boot | sed -nr 's#.*path\s+(\S+)$#\1#p'); do
+for dev in $(s btrfs fil show /boot | sed -nr 's#.*path\s+(\S+)$#\1#p'); do
   devs+=($(devbyid $dev),)
 done
 devs[-1]=${devs[-1]%,} # jonied by commas
@@ -1700,21 +1620,6 @@ sgo btrfsmaintstop.timer
 s lnf /p/c/machine_specific/li/mw_vars /root
 s lnf /k/backup/wiki_backup /root
 
-s cedit /etc/goaccess.conf <<'EOF' || [[ $? == 1 ]]
-# all things found from looking around the default config
-# copied existing NCSA Combined Log Format with Virtual Host, plus %L
-log-format %^:%^ %h %^[%d:%t %^] "%r" %s %b "%R" "%u" %D
-time-format %H:%M:%S
-date-format %d/%b/%Y
-log-file /var/log/apache2/access.log
-color-scheme 2
-
-# tip: copy access.log files to a stretch host directory, then run
-# jessie's goaccess is too old for some options, and it\'s
-# not easily installed from a testing.
-# goaccess --ignore-crawlers -f <(cat *) -a -o html > x.html
-EOF
-
 
 case $distro in
   trisquel|ubuntu|debian)
@@ -1738,8 +1643,6 @@ EOF
     ;;
 esac
 
-# note, for jessie, it depends on a higher version of btrfs-tools.
-#
 # # disabled due to my patch being in btrbk
 # case $distro in
 #     arch|debian|trisquel|ubuntu) pi btrbk ;;
@@ -1748,13 +1651,9 @@ esac
 cd /a/opt/btrbk
 s make install
 
-# ian: temporarily disabled while hosts are in flux.
-# if [[ $HOSTNAME == tp ]]; then
-#     # backup/sync manually on others hosts for now.
-#     sgo btrbk.timer
-#     # note: to see when it was last run,
-#     # ser list-timers
-# fi
+sgo btrbk.timer
+# note: to see when it was last run,
+# ser list-timers
 
 
 end_msg <<'EOF'
index 2267d8ee68ae61c66ab988c55eaf0fc41cb942b7..aded66a91c88a7b2ca8274f8dcdc3af1db48bcc4 100755 (executable)
@@ -4,7 +4,7 @@ err-catch
 
 
 usage() {
-    cat <<EOF
+  cat <<EOF
 Usage: ${0##*/} [DISTRO_NAME]
 Print packages to install for each distro.
 Default DISTRO_NAME is the one currently running.
@@ -14,22 +14,22 @@ Default DISTRO_NAME is the one currently running.
 
 Note: Uses GNU getopt options parsing style
 EOF
-    exit $1
+  exit $1
 }
 
 if [[ $1 ]]; then
-    distro=$1
+  distro=$1
 else
-    distro=$(distro-name)
+  distro=$(distro-name)
 fi
 
 isdeb() {
-    case $distro in
-        debian|trisquel|ubuntu)
-            return 0
-            ;;
-    esac
-    return 1
+  case $distro in
+    debian|trisquel|ubuntu)
+      return 0
+      ;;
+  esac
+  return 1
 }
 
 bool_opt=false # default
@@ -37,209 +37,200 @@ long_opt=foo # default
 temp=$(getopt -l help,long-opt: hso: "$@") || usage 1
 eval set -- "$temp"
 while true; do
-    case $1 in
-        -s) bool_opt=true; shift ;;
-        -o|--long-opt) long_opt="$2"; shift 2 ;;
-        -h|--help) usage ;;
-        --) shift; break ;;
-        *) echo "$0: Internal error! unexpected args: $*" ; exit 1 ;;
-    esac
+  case $1 in
+    -s) bool_opt=true; shift ;;
+    -o|--long-opt) long_opt="$2"; shift 2 ;;
+    -h|--help) usage ;;
+    --) shift; break ;;
+    *) echo "$0: Internal error! unexpected args: $*" ; exit 1 ;;
+  esac
 done
 
 
 case $distro in
-    arch)
-        # ubuntu 14.04 uses b-cron,
-        # but its not maintained in arch.
-        # of the ones in the main repos, cronie is only one maintained.
-        # fcron appears abandoned software.
-        e cronie
-        ;;
-    *) : ;; # other distros come with cron.
+  arch)
+    # ubuntu 14.04 uses b-cron,
+    # but its not maintained in arch.
+    # of the ones in the main repos, cronie is only one maintained.
+    # fcron appears abandoned software.
+    e cronie
+    ;;
+  *) : ;; # other distros come with cron.
 esac
 
 case $distro in
-    arch) e tk ;;
-    *) : ;; # other distros come with tk from git
+  arch) e tk ;;
+  *) : ;; # other distros come with tk from git
 esac
 
 case $distro in
-    arch) e the_silver_searcher ;;
-    debian|trisquel|ubuntu) e silversearcher-ag ;;
-    # fedora unknown
+  arch) e the_silver_searcher ;;
+  debian|trisquel|ubuntu) e silversearcher-ag ;;
+  # fedora unknown
 esac
 
 if isdeb; then
-    # for debconf-get-selections
-    e debconf-utils
+  # for debconf-get-selections
+  e debconf-utils
 fi
 
 # needed for checkrestart
 if isdeb; then
-    e debian-goodies
+  e debian-goodies
 fi
 
 ###### quit now for li/lj
 case $HOSTNAME in
-    lj|li)
-        exit 0
-        ;;
+  lj|li)
+    exit 0
+    ;;
 esac
 
 case $distro in
-    debian) e gnome-session-flashback ;;
-    # flidas is missing dependency gnome-panel. others unknown
+  debian) e gnome-session-flashback ;;
+  # flidas is missing dependency gnome-panel. others unknown
 esac
 
 case $distro in
-    trisquel|ubuntu|debian) e ack-grep ;;
-    arch|fedora) e ack ;;
-    # fedora unknown
+  trisquel|ubuntu|debian) e ack-grep ;;
+  arch|fedora) e ack ;;
+  # fedora unknown
 esac
 
 case $distro in
-    debian)
-        e cpio-doc ;;
-    # not packaged in flidas. in ubuntu it is in multiverse
+  debian)
+    e cpio-doc ;;
+  # not packaged in flidas. in ubuntu it is in multiverse
 esac
 
 case $distro in
-    fedora) e unrar ;;
-    *) e unrar-free ;;
+  fedora) e unrar ;;
+  *) e unrar-free ;;
 esac
 
 case $distro in
-    debian|trisquel|ubuntu)
-        # for gui bug reporting
-        e python-vte
-        ;;
-    # no equivalent in other distros:
+  trisquel|ubuntu)
+    # for gui bug reporting
+    e python-vte
+    ;;
+  debian)
+    e reportbug-gtk
+    ;;
+  # no equivalent in other distros:
 esac
 
 case $distro in
-    arch) e nfs-utils ;;
-    trisquel|ubuntu|debian) e nfs-common ;;
+  arch) e nfs-utils ;;
+  trisquel|ubuntu|debian) e nfs-common ;;
 esac
 
 case $distro in
-    trisquel|ubuntu|debian) e par2 ;;
-    arch|fedora) e par2cmdline ;;
+  trisquel|ubuntu|debian) e par2 ;;
+  arch|fedora) e par2cmdline ;;
 esac
 
 # needed for my tex resume
 case $distro in
-    trisquel|ubuntu|debian) e texlive-full ;;
-    arch) e texlive-most ;;
-    # fedora unknown
+  trisquel|ubuntu|debian) e texlive-full ;;
+  arch) e texlive-most ;;
+  # fedora unknown
 esac
 
 case $distro in
-    # optional dep for firefox for h.264 video
-    arch) e gst-libav ;;
-    # other distros, probably come by default
+  # optional dep for firefox for h.264 video
+  arch) e gst-libav ;;
+  # other distros, probably come by default
 esac
 
 case $distro in
-    fedora|trisquel|ubuntu|debian) e gnupg-agent ;;
-    arch) : ;;
+  fedora|trisquel|ubuntu|debian) e gnupg-agent ;;
+  arch) : ;;
 esac
 
 
 case $distro in
-    fedora) e pinentry-gtk ;;
-    *) : ;; # comes default or with other packages
+  fedora) e pinentry-gtk ;;
+  *) : ;; # comes default or with other packages
 esac
 
 case $distro in
-    arch) e firefox pulseaudio;;
-    trisquel) e abrowser ;;
-    *) : ;; # comes default or with other packages, or uknown
+  arch) e firefox pulseaudio ;;
+  trisquel) e abrowser ;;
+  *) : ;; # comes default or with other packages, or uknown
 esac
 
 
 case $distro in
-    arch) e ttf-dejavu;;
-    debian|trisquel|ubuntu) e fonts-dejavu ;;
-    # others unknown
+  arch) e ttf-dejavu ;;
+  debian|trisquel|ubuntu) e fonts-dejavu ;;
+  # others unknown
 esac
 
 
 case $distro in
-    arch) e xorg-xev;;
-    debian|trisquel|ubuntu) e x11-utils ;;
-    # others unknown
+  arch) e xorg-xev;;
+  debian|trisquel|ubuntu) e x11-utils ;;
+  # others unknown
 esac
 
 case $distro in
-    arch) e cdrkit;;
-    debian|trisquel|ubuntu) e genisoimage;;
-    # others unknown
+  arch) e cdrkit;;
+  debian|trisquel|ubuntu) e genisoimage;;
+  # others unknown
 esac
 
 case $distro in
-    arch) e spice-gtk3 ;;
-    debian|trisquel|ubuntu) e spice-client-gtk;;
-    # others unknown
+  arch) e spice-gtk3 ;;
+  debian|trisquel|ubuntu) e spice-client-gtk;;
+  # others unknown
 esac
 
 
 ### stuff brought in through deps in other distros
 case $distro in
-    arch)
-        # for nat networking in libvirt
-        e ebtables
-        # dmidecode just because syslog complains
-        e dmidecode
-        e unzip xorg-xmodmap bridge-utils qemu virtviewer apg
-        # for dig
-        e bind-tools
-        ;;
+  arch)
+    # for nat networking in libvirt
+    e ebtables
+    # dmidecode just because syslog complains
+    e dmidecode
+    e unzip xorg-xmodmap bridge-utils qemu virtviewer apg
+    # for dig
+    e bind-tools
+    ;;
 esac
 
 case $distro in
-    fedora) cabal install shellcheck ;;
-    *) e shellcheck ;;
-    # unknown for older ubuntu
+  fedora) cabal install shellcheck ;;
+  *) e shellcheck ;;
+  # unknown for older ubuntu
 esac
 
 case $distro in
-    arch|debian|trisquel|ubuntu) e pumpa ;;
-    # others unknown. do have a buildscript:
-    # /a/bin/buildscripts/pumpa ;;
+  arch|debian|trisquel|ubuntu) e pumpa ;;
+  # others unknown. do have a buildscript:
+  # /a/bin/buildscripts/pumpa ;;
 esac
 
 case $distro in
-    debian) e adb ;;
-    debian|trisquel|ubuntu) e android-tools-adbd ;;
-    # todo: not sure this is needed anymore, or if trisqel etc works even
-    #    debian) e android-tools-adbd/unstable ;;
-    arch) e android-tools ;;
-    # other distros unknown
+  debian) e adb ;;
+  debian|trisquel|ubuntu) e android-tools-adbd ;;
+  # todo: not sure this is needed anymore, or if trisqel etc works even
+  #    debian) e android-tools-adbd/unstable ;;
+  arch) e android-tools ;;
+  # other distros unknown
 esac
 
-#### desktopy stuff
-case $distro in
-    debian)
-        e task-mate-desktop
-        ;;
-    trisquel)
-        # mate-indicator-applet and beyond are msc things I noticed diffing a
-        # standard install with mine.
-        e xorg lightdm mate-desktop-environment mate-desktop-environment-extras mate-indicator-applet anacron
-        ;;
-    # others unknown
-esac
 
 case $distro in
-    debian|trisquel|ubuntu)
-        e libosinfo-bin;
-        ;;
-    # others unknown
+  debian|trisquel|ubuntu)
+    e libosinfo-bin;
+    ;;
+  # others unknown
 esac
 
 case $distro in
-    ubuntu|debian)
-        e spacefm-gtk3 ;;
-    arch)
-        e spacefm ;;
+  ubuntu|debian)
+    e spacefm-gtk3 ;;
+  arch)
+    e spacefm ;;
 esac
index 29c0dabde638b3f4394cfca8286239becb4a23a0..44eb9506f95fc902b8772bf0921d16e281060003 100644 (file)
@@ -6,10 +6,11 @@ set $mod Mod4
 bindsym $mod+2 exec "pavucontrol"
 bindsym $mod+3 exec "abrowser"
 bindsym $mod+4 exec "abrowser -no-remote -P firefox-main-profile"
+bindsym $mod+5 exec "/a/bin/redshift.sh"
 
 bindsym $mod+w focus parent
 bindsym $mod+e fullscreen toggle
-bindsym $mod+r exec "/a/bin/redshift.sh"
+bindsym $mod+r exec "/a/bin/ds/xl"
 # todo, in newer i3, make this toggle split tabbed
 bindsym $mod+t layout toggle split
 bindsym $mod+g layout tabbed
@@ -17,10 +18,10 @@ bindsym $mod+g layout tabbed
 # Use Mouse+$mod to drag floating windows to their wanted position
 floating_modifier $mod
 
-bindsym $mod+u focus up
-bindsym $mod+i focus down
-bindsym $mod+o focus left
-bindsym $mod+p focus right
+bindsym $mod+u focus left
+bindsym $mod+i focus right
+bindsym $mod+o focus up
+bindsym $mod+p focus down
 
 bindsym $mod+Left move left
 bindsym $mod+Right move right
@@ -28,11 +29,25 @@ bindsym $mod+Up move up
 bindsym $mod+Down move down
 
 # switch to workspace
+bindsym $mod+Shift+a move container to workspace 4
 bindsym $mod+a workspace 4
+# move focused container to workspace
+bindsym $mod+Shift+s move container to workspace 3
 bindsym $mod+s workspace 3
+
+bindsym $mod+Shift+d move container to workspace 2
 bindsym $mod+d workspace 2
+
+bindsym $mod+Shift+f move container to workspace 1
 bindsym $mod+f workspace 1
 
+bindsym $mod+Shift+z move container to workspace 5
+bindsym $mod+z workspace 5
+
+bindsym $mod+Shift+x move container to workspace 6
+bindsym $mod+x workspace 6
+
+
 # todo, in newer i3, make this split toggle
 bindsym $mod+v split vertical
 bindsym $mod+b split horizontal
@@ -40,23 +55,16 @@ bindsym $mod+b split horizontal
 bindsym $mod+c kill
 
 
-bindsym $mod+7 workspace 5
-bindsym $mod+0 workspace 6
+bindsym $mod+Shift+8 move container to workspace 7
+bindsym $mod+8 workspace 7
+bindsym $mod+Shift+9 move container to workspace 8
+bindsym $mod+9 workspace 8
 
-# move focused container to workspace
-bindsym $mod+Shift+f move container to workspace 1
-bindsym $mod+Shift+d move container to workspace 2
-bindsym $mod+Shift+s move container to workspace 3
-bindsym $mod+Shift+a move container to workspace 4
-bindsym $mod+Shift+7 move container to workspace 5
-bindsym $mod+Shift+0 move container to workspace 6
 
 bindsym $mod+j exec emacsclient -c
 bindsym $mod+k exec konsole
 bindsym $mod+l exec dmenu_run
 
-bindsym $mod+Shift+p restart
-
 
 # Font for window titles. Will also be used by the bar unless a different font
 # is used in the bar {} block below.
index ffc4bf17058bffa9d8752a4cd14204971356ee9a..0c3f0bd7133452e7ea73927ffbb558d929aa6657 100755 (executable)
@@ -131,7 +131,7 @@ fi
 
 # # 2017-02 spf policies:
 # # host -t txt lists.fedoraproject.org
-# # google ~all, hotmail -all, yahoo: ?all, fastmail ?all
+# # google ~all, hotmail ~all, yahoo: ?all, fastmail ?all, outlook ~all
 # # i include fastmail\'s settings, per their instructions,
 # # and follow their policy. In mail in a box, or similar instructions,
 # # I\'ve seen recommended to not use a restrictive policy.
diff --git a/pkgs b/pkgs
index 824d2fc69ce5fa3e60a7118eb117f0c3f961823d..7c56a7896680adf0bdcf62fc5142875561013c90 100644 (file)
--- a/pkgs
+++ b/pkgs
@@ -163,6 +163,7 @@ p4=(
   qrencode
   readline-doc
   reportbug
+  rfkill
   rng-tools
   sakura
   schroot
index 0138a9763b0af715bf61eaa7d7c0c8ee957749af..4249289572c341ef80b5aa211cbbd5e999273964 100644 (file)
@@ -1,12 +1,16 @@
+####### DO NOT EDIT LIVE CONFIG. generated from /a/bin/distro-setup/i3-sway/gen #######
+
+
 set $mod Mod4
 
 bindsym $mod+2 exec "pavucontrol"
 bindsym $mod+3 exec "abrowser"
 bindsym $mod+4 exec "abrowser -no-remote -P firefox-main-profile"
+bindsym $mod+5 exec "/a/bin/redshift.sh"
 
 bindsym $mod+w focus parent
 bindsym $mod+e fullscreen toggle
-bindsym $mod+r exec "/a/bin/redshift.sh"
+bindsym $mod+r exec "/a/bin/ds/xl"
 # todo, in newer i3, make this toggle split tabbed
 bindsym $mod+t layout toggle split
 bindsym $mod+g layout tabbed
@@ -14,10 +18,10 @@ bindsym $mod+g layout tabbed
 # Use Mouse+$mod to drag floating windows to their wanted position
 floating_modifier $mod
 
-bindsym $mod+u focus up
-bindsym $mod+i focus down
-bindsym $mod+o focus left
-bindsym $mod+p focus right
+bindsym $mod+u focus left
+bindsym $mod+i focus right
+bindsym $mod+o focus up
+bindsym $mod+p focus down
 
 bindsym $mod+Left move left
 bindsym $mod+Right move right
@@ -25,11 +29,25 @@ bindsym $mod+Up move up
 bindsym $mod+Down move down
 
 # switch to workspace
+bindsym $mod+Shift+a move container to workspace 4
 bindsym $mod+a workspace 4
+# move focused container to workspace
+bindsym $mod+Shift+s move container to workspace 3
 bindsym $mod+s workspace 3
+
+bindsym $mod+Shift+d move container to workspace 2
 bindsym $mod+d workspace 2
+
+bindsym $mod+Shift+f move container to workspace 1
 bindsym $mod+f workspace 1
 
+bindsym $mod+Shift+z move container to workspace 5
+bindsym $mod+z workspace 5
+
+bindsym $mod+Shift+x move container to workspace 6
+bindsym $mod+x workspace 6
+
+
 # todo, in newer i3, make this split toggle
 bindsym $mod+v split vertical
 bindsym $mod+b split horizontal
@@ -37,23 +55,16 @@ bindsym $mod+b split horizontal
 bindsym $mod+c kill
 
 
-bindsym $mod+7 workspace 5
-bindsym $mod+0 workspace 6
+bindsym $mod+Shift+8 move container to workspace 7
+bindsym $mod+8 workspace 7
+bindsym $mod+Shift+9 move container to workspace 8
+bindsym $mod+9 workspace 8
 
-# move focused container to workspace
-bindsym $mod+Shift+f move container to workspace 1
-bindsym $mod+Shift+d move container to workspace 2
-bindsym $mod+Shift+s move container to workspace 3
-bindsym $mod+Shift+a move container to workspace 4
-bindsym $mod+Shift+7 move container to workspace 5
-bindsym $mod+Shift+0 move container to workspace 6
 
 bindsym $mod+j exec emacsclient -c
 bindsym $mod+k exec konsole
 bindsym $mod+l exec dmenu_run
 
-bindsym $mod+Shift+p restart
-
 
 # Font for window titles. Will also be used by the bar unless a different font
 # is used in the bar {} block below.
index fd98ff2a5129b3af83ddd2a3967dc223d59f7340..105ff90f6e3bee93049bb5665986a1b9ab999c75 100644 (file)
@@ -1,12 +1,16 @@
+####### DO NOT EDIT LIVE CONFIG. generated from /a/bin/distro-setup/i3-sway/gen #######
+
+
 set $mod Mod4
 
 bindsym $mod+2 exec "pavucontrol"
 bindsym $mod+3 exec "abrowser"
 bindsym $mod+4 exec "abrowser -no-remote -P firefox-main-profile"
+bindsym $mod+5 exec "/a/bin/redshift.sh"
 
 bindsym $mod+w focus parent
 bindsym $mod+e fullscreen toggle
-bindsym $mod+r exec "/a/bin/redshift.sh"
+bindsym $mod+r exec "/a/bin/ds/xl"
 # todo, in newer i3, make this toggle split tabbed
 bindsym $mod+t layout toggle split
 bindsym $mod+g layout tabbed
@@ -14,10 +18,10 @@ bindsym $mod+g layout tabbed
 # Use Mouse+$mod to drag floating windows to their wanted position
 floating_modifier $mod
 
-bindsym $mod+u focus up
-bindsym $mod+i focus down
-bindsym $mod+o focus left
-bindsym $mod+p focus right
+bindsym $mod+u focus left
+bindsym $mod+i focus right
+bindsym $mod+o focus up
+bindsym $mod+p focus down
 
 bindsym $mod+Left move left
 bindsym $mod+Right move right
@@ -25,11 +29,25 @@ bindsym $mod+Up move up
 bindsym $mod+Down move down
 
 # switch to workspace
+bindsym $mod+Shift+a move container to workspace 4
 bindsym $mod+a workspace 4
+# move focused container to workspace
+bindsym $mod+Shift+s move container to workspace 3
 bindsym $mod+s workspace 3
+
+bindsym $mod+Shift+d move container to workspace 2
 bindsym $mod+d workspace 2
+
+bindsym $mod+Shift+f move container to workspace 1
 bindsym $mod+f workspace 1
 
+bindsym $mod+Shift+z move container to workspace 5
+bindsym $mod+z workspace 5
+
+bindsym $mod+Shift+x move container to workspace 6
+bindsym $mod+x workspace 6
+
+
 # todo, in newer i3, make this split toggle
 bindsym $mod+v split vertical
 bindsym $mod+b split horizontal
@@ -37,23 +55,16 @@ bindsym $mod+b split horizontal
 bindsym $mod+c kill
 
 
-bindsym $mod+7 workspace 5
-bindsym $mod+0 workspace 6
+bindsym $mod+Shift+8 move container to workspace 7
+bindsym $mod+8 workspace 7
+bindsym $mod+Shift+9 move container to workspace 8
+bindsym $mod+9 workspace 8
 
-# move focused container to workspace
-bindsym $mod+Shift+f move container to workspace 1
-bindsym $mod+Shift+d move container to workspace 2
-bindsym $mod+Shift+s move container to workspace 3
-bindsym $mod+Shift+a move container to workspace 4
-bindsym $mod+Shift+7 move container to workspace 5
-bindsym $mod+Shift+0 move container to workspace 6
 
 bindsym $mod+j exec emacsclient -c
 bindsym $mod+k exec konsole
 bindsym $mod+l exec dmenu_run
 
-bindsym $mod+Shift+p restart
-
 
 # Font for window titles. Will also be used by the bar unless a different font
 # is used in the bar {} block below.
index d98337c56c9a17d9024830281d4e8e7fcb53f317..2e437a3a27a1686ef678c795a5a87687ebc32a65 100644 (file)
@@ -36,11 +36,14 @@ default-key B125F60B7B287FF6A2B7DF8F170AF0E2954295DF
 
 # default keyserver. i switch around randomly to find one that is up.
 #
-#keyserver hkp://pgp.mit.edu
+# DO NOT USE THIS ONE.
 #keyserver hkp://pool.sks-keyservers.net
+
+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://keys.gnupg.net
 
 
 # more secure, but had problems with my gpg version
diff --git a/xl b/xl
new file mode 100755 (executable)
index 0000000..be441bc
--- /dev/null
+++ b/xl
@@ -0,0 +1,15 @@
+#!/bin/bash
+if pgrep gnome-screensav &>/dev/null; then
+  # this command actually starts gnome-screensaver if it isn\'t running.
+  # lololol, what crap
+  gnome-screensaver-command --exit &>/dev/null
+fi
+mate-screensaver-command --exit &>/dev/null
+if ! pidof xscreensaver; then
+  pushd /
+  xscreensaver &
+  popd
+  # 1 was not long enough
+  sleep 3
+fi
+xscreensaver-command -activate