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"
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
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
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
# 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
# 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,
;;
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
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"
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
##### begin automatic upgrades ####
# this makes it so we upgrade everything
-debconf-set-selections <<'EOF'
+s debconf-set-selections <<'EOF'
unattended-upgrades unattended-upgrades/origins_pattern string "codename=${distro_codename}";
EOF
-dpkg-reconfigure -u -fnoninteractive unattended-upgrades
+s 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 />
Require valid-user
</Location>
EOF
-
+fi
# website setup
case $HOSTNAME in
########### 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
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
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
-
# 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
# 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
-
-# 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 ###
# 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
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)
;;
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 ;;
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'
usage() {
- cat <<EOF
+ cat <<EOF
Usage: ${0##*/} [DISTRO_NAME]
Print packages to install for each distro.
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
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
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
# 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
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
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.
# # 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.
qrencode
readline-doc
reportbug
+ rfkill
rng-tools
sakura
schroot
+####### 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
# 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
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
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.
+####### 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
# 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
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
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.
# 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
--- /dev/null
+#!/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