├── .gitignore ├── .config ├── mr │ ├── config.d-aslan │ │ ├── aur.mr │ │ ├── ccm.mr │ │ ├── ipk.mr │ │ ├── tsv.mr │ │ ├── ahit.mr │ │ ├── hosts.mr │ │ ├── incil.mr │ │ ├── que.vcsh │ │ ├── sile.mr │ │ ├── tprk.mr │ │ ├── vcsh.git │ │ ├── angela.mr │ │ ├── darlene.mr │ │ ├── fedora.mr │ │ ├── fluent.mr │ │ ├── github.mr │ │ ├── pandoc.mr │ │ ├── systems.mr │ │ ├── archlinux.mr │ │ ├── finances.git │ │ ├── preservim.gh │ │ ├── onqueacademy.mr │ │ ├── pictures.annex │ │ ├── que-sys-base.mr │ │ ├── theleagueof.mr │ │ ├── userscripts.mr │ │ ├── viachristus.mr │ │ ├── vim-plugins.mr │ │ └── que-sys-desktop.mr │ ├── config.d-pars │ │ ├── aur.mr │ │ ├── ccm.mr │ │ ├── ipk.mr │ │ ├── tsv.mr │ │ ├── angela.mr │ │ ├── hosts.mr │ │ ├── incil.mr │ │ ├── sile.mr │ │ ├── tprk.mr │ │ ├── systems.mr │ │ ├── finances.git │ │ ├── pictures.annex │ │ ├── theleagueof.mr │ │ ├── viachristus.mr │ │ ├── que-sys-base.mr │ │ ├── distro-packaging.mr │ │ └── que-sys-desktop.mr │ ├── config.d-anole │ │ ├── hosts.mr │ │ ├── que.vcsh │ │ ├── systems.mr │ │ ├── que-sys-base.mr │ │ └── distro-packaging.mr │ ├── config.d-armadillo │ │ ├── ipk.mr │ │ ├── incil.mr │ │ ├── tprk.mr │ │ ├── que-sys-base.mr │ │ └── que-sys-desktop.mr │ ├── config.d-asper │ │ ├── tprk.mr │ │ ├── darlene.mr │ │ └── que-sys-base.mr │ ├── config.d-dagu │ │ ├── que.vcsh │ │ └── que-sys-base.mr │ ├── config.d-dessie │ │ ├── que.vcsh │ │ └── que-sys-base.mr │ ├── config.d-emircik │ │ ├── ahit.mr │ │ ├── aur.mr │ │ ├── ccm.mr │ │ ├── ipk.mr │ │ ├── sile.mr │ │ ├── tprk.mr │ │ ├── tsv.mr │ │ ├── angela.mr │ │ ├── fluent.mr │ │ ├── hosts.mr │ │ ├── lyricue.mr │ │ ├── pandoc.mr │ │ ├── systems.mr │ │ ├── vcsh.git │ │ ├── archlinux.mr │ │ ├── finances.git │ │ ├── homebrew.mr │ │ ├── preservim.gh │ │ ├── websites.mr │ │ ├── lunarmodules.gh │ │ ├── onqueacademy.mr │ │ ├── pictures.annex │ │ ├── que-sys-base.mr │ │ ├── theleagueof.mr │ │ ├── userscripts.mr │ │ ├── viachristus.mr │ │ ├── vim-plugins.mr │ │ └── que-sys-desktop.mr │ ├── config.d-iguana │ │ ├── aur.mr │ │ ├── ipk.mr │ │ ├── tprk.mr │ │ ├── systems.mr │ │ └── que-sys-base.mr │ ├── config.d-jaguar │ │ ├── ahit.mr │ │ ├── aur.mr │ │ ├── ccm.mr │ │ ├── hosts.mr │ │ ├── incil.mr │ │ ├── ipk.mr │ │ ├── sile.mr │ │ ├── tprk.mr │ │ ├── tsv.mr │ │ ├── vcsh.git │ │ ├── angela.mr │ │ ├── fluent.mr │ │ ├── grandpa.mr │ │ ├── pandoc.mr │ │ ├── systems.mr │ │ ├── archlinux.mr │ │ ├── finances.git │ │ ├── freecheck.git │ │ ├── websites.mr │ │ ├── lunarmodules.gh │ │ ├── onqueacademy.mr │ │ ├── pictures.annex │ │ ├── que-sys-base.mr │ │ ├── theleagueof.mr │ │ ├── userscripts.mr │ │ ├── viachristus.mr │ │ ├── vim-plugins.mr │ │ ├── que-sys-desktop.mr │ │ └── distro-packaging.mr │ ├── config.d-karabatak │ │ ├── ipk.mr │ │ ├── pictures.annex │ │ ├── viachristus.mr │ │ ├── que-sys-base.mr │ │ └── que-sys-desktop.mr │ ├── config.d-kazarka │ │ ├── ahit.mr │ │ ├── aur.mr │ │ ├── ccm.mr │ │ ├── ipk.mr │ │ ├── sile.mr │ │ ├── tprk.mr │ │ ├── tsv.mr │ │ ├── angela.mr │ │ ├── fluent.mr │ │ ├── hosts.mr │ │ ├── lyricue.mr │ │ ├── pandoc.mr │ │ ├── systems.mr │ │ ├── vcsh.git │ │ ├── archlinux.mr │ │ ├── finances.git │ │ ├── homebrew.mr │ │ ├── preservim.gh │ │ ├── websites.mr │ │ ├── lunarmodules.gh │ │ ├── onqueacademy.mr │ │ ├── pictures.annex │ │ ├── que-sys-base.mr │ │ ├── theleagueof.mr │ │ ├── userscripts.mr │ │ ├── viachristus.mr │ │ ├── vim-plugins.mr │ │ ├── que-sys-desktop.mr │ │ └── plaintextaccounting.mr │ ├── config.d-sincap │ │ ├── incil.mr │ │ ├── ipk.mr │ │ ├── tprk.mr │ │ ├── homebrew.mr │ │ ├── que-sys-base.mr │ │ ├── userscripts.mr │ │ ├── viachristus.mr │ │ └── que-sys-desktop.mr │ ├── config.d-squid │ │ ├── que.vcsh │ │ ├── que-sys-base.mr │ │ └── que-sys-desktop.mr │ ├── config.d-turtle │ │ ├── que.vcsh │ │ └── que-sys-base.mr │ ├── config.d-starfish │ │ ├── que.vcsh │ │ ├── que-sys-base.mr │ │ └── que-sys-desktop.mr │ ├── config.d-basilisk │ │ ├── systems.mr │ │ └── que-sys-base.mr │ ├── config.d-shrimp │ │ ├── freecheck.git │ │ ├── que-sys-base.mr │ │ └── que-sys-desktop.mr │ ├── config.d-lobster │ │ ├── que-sys-base.mr │ │ └── que-sys-desktop.mr │ ├── config.d-oyster │ │ ├── que-sys-base.mr │ │ └── que-sys-desktop.mr │ ├── available.d │ │ ├── finances.git │ │ ├── pictures.annex │ │ ├── que.vcsh │ │ ├── que-sys-archived.mr │ │ ├── freecheck.git │ │ ├── websites.mr │ │ ├── ccm.mr │ │ ├── ipk.mr │ │ ├── ahit.mr │ │ ├── angela.mr │ │ ├── hosts.mr │ │ ├── tprk.mr │ │ ├── darlene.mr │ │ ├── vcsh.git │ │ ├── viachristus.mr │ │ ├── onqueacademy.mr │ │ ├── github.mr │ │ ├── paperwalking.git │ │ ├── plaintextaccounting.mr │ │ ├── tsv.mr │ │ ├── systems.mr │ │ ├── userscripts.mr │ │ ├── homebrew.mr │ │ ├── lunarmodules.gh │ │ ├── preservim.gh │ │ ├── sile.mr │ │ ├── fluent.mr │ │ ├── pandoc.mr │ │ ├── distro-packaging.mr │ │ ├── lyricue.mr │ │ ├── que-sys-desktop.mr │ │ ├── incil.mr │ │ ├── grandpa.mr │ │ ├── archlinux.mr │ │ ├── aur.mr │ │ ├── que-sys-base.mr │ │ ├── fedora.mr │ │ ├── theleagueof.mr │ │ └── vim-plugins.mr │ └── lib │ │ └── gitlab.zsh ├── gh │ └── config.yml ├── nix │ └── nix.conf ├── pacman │ └── makepkg.conf ├── vcsh │ └── hooks-enabled │ │ ├── pre-merge-unclobber │ │ └── post-merge-unclobber ├── yay │ └── config.json ├── git │ ├── attributes │ └── config └── tig │ ├── config │ └── molokai-like-theme.tigrc ├── bin ├── que-sys-init-termux.bash ├── que-sys-init-fedora.bash ├── que ├── git-related ├── que-sys-config-ec2.bash ├── que-sys-init-osx.bash ├── git-autofixup ├── git-vaccinate ├── que-sys-init-ala.bash ├── que-sys-init-ubuntu.bash ├── que-sys-init-pld.bash ├── pkg-list-linked-libraries ├── que-home-bootstrap.zsh ├── git-sync ├── que-sys-init-arch.bash └── que-sys-bootstrap.bash ├── .cargo └── config.toml ├── .mrconfig ├── README.md ├── .gnupg └── gpg.conf └── .gitignore.d └── que /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | .*.swp 3 | tags 4 | -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/aur.mr: -------------------------------------------------------------------------------- 1 | ../available.d/aur.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/ccm.mr: -------------------------------------------------------------------------------- 1 | ../available.d/ccm.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/ipk.mr: -------------------------------------------------------------------------------- 1 | ../available.d/ipk.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/tsv.mr: -------------------------------------------------------------------------------- 1 | ../available.d/tsv.mr -------------------------------------------------------------------------------- /.config/mr/config.d-pars/aur.mr: -------------------------------------------------------------------------------- 1 | ../available.d/aur.mr -------------------------------------------------------------------------------- /.config/mr/config.d-pars/ccm.mr: -------------------------------------------------------------------------------- 1 | ../available.d/ccm.mr -------------------------------------------------------------------------------- /.config/mr/config.d-pars/ipk.mr: -------------------------------------------------------------------------------- 1 | ../available.d/ipk.mr -------------------------------------------------------------------------------- /.config/mr/config.d-pars/tsv.mr: -------------------------------------------------------------------------------- 1 | ../available.d/tsv.mr -------------------------------------------------------------------------------- /.config/mr/config.d-anole/hosts.mr: -------------------------------------------------------------------------------- 1 | ../available.d/hosts.mr -------------------------------------------------------------------------------- /.config/mr/config.d-anole/que.vcsh: -------------------------------------------------------------------------------- 1 | ../available.d/que.vcsh -------------------------------------------------------------------------------- /.config/mr/config.d-armadillo/ipk.mr: -------------------------------------------------------------------------------- 1 | ../available.d/ipk.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/ahit.mr: -------------------------------------------------------------------------------- 1 | ../available.d/ahit.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/hosts.mr: -------------------------------------------------------------------------------- 1 | ../available.d/hosts.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/incil.mr: -------------------------------------------------------------------------------- 1 | ../available.d/incil.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/que.vcsh: -------------------------------------------------------------------------------- 1 | ../available.d/que.vcsh -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/sile.mr: -------------------------------------------------------------------------------- 1 | ../available.d/sile.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/tprk.mr: -------------------------------------------------------------------------------- 1 | ../available.d/tprk.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/vcsh.git: -------------------------------------------------------------------------------- 1 | ../available.d/vcsh.git -------------------------------------------------------------------------------- /.config/mr/config.d-asper/tprk.mr: -------------------------------------------------------------------------------- 1 | ../available.d/tprk.mr -------------------------------------------------------------------------------- /.config/mr/config.d-dagu/que.vcsh: -------------------------------------------------------------------------------- 1 | ../available.d/que.vcsh -------------------------------------------------------------------------------- /.config/mr/config.d-dessie/que.vcsh: -------------------------------------------------------------------------------- 1 | ../available.d/que.vcsh -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/ahit.mr: -------------------------------------------------------------------------------- 1 | ../available.d/ahit.mr -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/aur.mr: -------------------------------------------------------------------------------- 1 | ../available.d/aur.mr -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/ccm.mr: -------------------------------------------------------------------------------- 1 | ../available.d/ccm.mr -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/ipk.mr: -------------------------------------------------------------------------------- 1 | ../available.d/ipk.mr -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/sile.mr: -------------------------------------------------------------------------------- 1 | ../available.d/sile.mr -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/tprk.mr: -------------------------------------------------------------------------------- 1 | ../available.d/tprk.mr -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/tsv.mr: -------------------------------------------------------------------------------- 1 | ../available.d/tsv.mr -------------------------------------------------------------------------------- /.config/mr/config.d-iguana/aur.mr: -------------------------------------------------------------------------------- 1 | ../available.d/aur.mr -------------------------------------------------------------------------------- /.config/mr/config.d-iguana/ipk.mr: -------------------------------------------------------------------------------- 1 | ../available.d/ipk.mr -------------------------------------------------------------------------------- /.config/mr/config.d-iguana/tprk.mr: -------------------------------------------------------------------------------- 1 | ../available.d/tprk.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/ahit.mr: -------------------------------------------------------------------------------- 1 | ../available.d/ahit.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/aur.mr: -------------------------------------------------------------------------------- 1 | ../available.d/aur.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/ccm.mr: -------------------------------------------------------------------------------- 1 | ../available.d/ccm.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/hosts.mr: -------------------------------------------------------------------------------- 1 | ../available.d/hosts.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/incil.mr: -------------------------------------------------------------------------------- 1 | ../available.d/incil.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/ipk.mr: -------------------------------------------------------------------------------- 1 | ../available.d/ipk.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/sile.mr: -------------------------------------------------------------------------------- 1 | ../available.d/sile.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/tprk.mr: -------------------------------------------------------------------------------- 1 | ../available.d/tprk.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/tsv.mr: -------------------------------------------------------------------------------- 1 | ../available.d/tsv.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/vcsh.git: -------------------------------------------------------------------------------- 1 | ../available.d/vcsh.git -------------------------------------------------------------------------------- /.config/mr/config.d-karabatak/ipk.mr: -------------------------------------------------------------------------------- 1 | ../available.d/ipk.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/ahit.mr: -------------------------------------------------------------------------------- 1 | ../available.d/ahit.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/aur.mr: -------------------------------------------------------------------------------- 1 | ../available.d/aur.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/ccm.mr: -------------------------------------------------------------------------------- 1 | ../available.d/ccm.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/ipk.mr: -------------------------------------------------------------------------------- 1 | ../available.d/ipk.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/sile.mr: -------------------------------------------------------------------------------- 1 | ../available.d/sile.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/tprk.mr: -------------------------------------------------------------------------------- 1 | ../available.d/tprk.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/tsv.mr: -------------------------------------------------------------------------------- 1 | ../available.d/tsv.mr -------------------------------------------------------------------------------- /.config/mr/config.d-pars/angela.mr: -------------------------------------------------------------------------------- 1 | ../available.d/angela.mr -------------------------------------------------------------------------------- /.config/mr/config.d-pars/hosts.mr: -------------------------------------------------------------------------------- 1 | ../available.d/hosts.mr -------------------------------------------------------------------------------- /.config/mr/config.d-pars/incil.mr: -------------------------------------------------------------------------------- 1 | ../available.d/incil.mr -------------------------------------------------------------------------------- /.config/mr/config.d-pars/sile.mr: -------------------------------------------------------------------------------- 1 | ../available.d/sile.mr -------------------------------------------------------------------------------- /.config/mr/config.d-pars/tprk.mr: -------------------------------------------------------------------------------- 1 | ../available.d/tprk.mr -------------------------------------------------------------------------------- /.config/mr/config.d-sincap/incil.mr: -------------------------------------------------------------------------------- 1 | ../available.d/incil.mr -------------------------------------------------------------------------------- /.config/mr/config.d-sincap/ipk.mr: -------------------------------------------------------------------------------- 1 | ../available.d/ipk.mr -------------------------------------------------------------------------------- /.config/mr/config.d-sincap/tprk.mr: -------------------------------------------------------------------------------- 1 | ../available.d/tprk.mr -------------------------------------------------------------------------------- /.config/mr/config.d-squid/que.vcsh: -------------------------------------------------------------------------------- 1 | ../available.d/que.vcsh -------------------------------------------------------------------------------- /.config/mr/config.d-turtle/que.vcsh: -------------------------------------------------------------------------------- 1 | ../available.d/que.vcsh -------------------------------------------------------------------------------- /.config/mr/config.d-anole/systems.mr: -------------------------------------------------------------------------------- 1 | ../available.d/systems.mr -------------------------------------------------------------------------------- /.config/mr/config.d-armadillo/incil.mr: -------------------------------------------------------------------------------- 1 | ../available.d/incil.mr -------------------------------------------------------------------------------- /.config/mr/config.d-armadillo/tprk.mr: -------------------------------------------------------------------------------- 1 | ../available.d/tprk.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/angela.mr: -------------------------------------------------------------------------------- 1 | ../available.d/angela.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/darlene.mr: -------------------------------------------------------------------------------- 1 | ../available.d/darlene.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/fedora.mr: -------------------------------------------------------------------------------- 1 | ../available.d/fedora.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/fluent.mr: -------------------------------------------------------------------------------- 1 | ../available.d/fluent.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/github.mr: -------------------------------------------------------------------------------- 1 | ../available.d/github.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/pandoc.mr: -------------------------------------------------------------------------------- 1 | ../available.d/pandoc.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/systems.mr: -------------------------------------------------------------------------------- 1 | ../available.d/systems.mr -------------------------------------------------------------------------------- /.config/mr/config.d-asper/darlene.mr: -------------------------------------------------------------------------------- 1 | ../available.d/darlene.mr -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/angela.mr: -------------------------------------------------------------------------------- 1 | ../available.d/angela.mr -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/fluent.mr: -------------------------------------------------------------------------------- 1 | ../available.d/fluent.mr -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/hosts.mr: -------------------------------------------------------------------------------- 1 | ../available.d/hosts.mr -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/lyricue.mr: -------------------------------------------------------------------------------- 1 | ../available.d/lyricue.mr -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/pandoc.mr: -------------------------------------------------------------------------------- 1 | ../available.d/pandoc.mr -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/systems.mr: -------------------------------------------------------------------------------- 1 | ../available.d/systems.mr -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/vcsh.git: -------------------------------------------------------------------------------- 1 | ../available.d/vcsh.git -------------------------------------------------------------------------------- /.config/mr/config.d-iguana/systems.mr: -------------------------------------------------------------------------------- 1 | ../available.d/systems.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/angela.mr: -------------------------------------------------------------------------------- 1 | ../available.d/angela.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/fluent.mr: -------------------------------------------------------------------------------- 1 | ../available.d/fluent.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/grandpa.mr: -------------------------------------------------------------------------------- 1 | ../available.d/grandpa.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/pandoc.mr: -------------------------------------------------------------------------------- 1 | ../available.d/pandoc.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/systems.mr: -------------------------------------------------------------------------------- 1 | ../available.d/systems.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/angela.mr: -------------------------------------------------------------------------------- 1 | ../available.d/angela.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/fluent.mr: -------------------------------------------------------------------------------- 1 | ../available.d/fluent.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/hosts.mr: -------------------------------------------------------------------------------- 1 | ../available.d/hosts.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/lyricue.mr: -------------------------------------------------------------------------------- 1 | ../available.d/lyricue.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/pandoc.mr: -------------------------------------------------------------------------------- 1 | ../available.d/pandoc.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/systems.mr: -------------------------------------------------------------------------------- 1 | ../available.d/systems.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/vcsh.git: -------------------------------------------------------------------------------- 1 | ../available.d/vcsh.git -------------------------------------------------------------------------------- /.config/mr/config.d-pars/systems.mr: -------------------------------------------------------------------------------- 1 | ../available.d/systems.mr -------------------------------------------------------------------------------- /.config/mr/config.d-starfish/que.vcsh: -------------------------------------------------------------------------------- 1 | ../available.d/que.vcsh -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/archlinux.mr: -------------------------------------------------------------------------------- 1 | ../available.d/archlinux.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/finances.git: -------------------------------------------------------------------------------- 1 | ../available.d/finances.git -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/preservim.gh: -------------------------------------------------------------------------------- 1 | ../available.d/preservim.gh -------------------------------------------------------------------------------- /.config/mr/config.d-basilisk/systems.mr: -------------------------------------------------------------------------------- 1 | ../available.d/systems.mr -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/archlinux.mr: -------------------------------------------------------------------------------- 1 | ../available.d/archlinux.mr -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/finances.git: -------------------------------------------------------------------------------- 1 | ../available.d/finances.git -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/homebrew.mr: -------------------------------------------------------------------------------- 1 | ../available.d/homebrew.mr -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/preservim.gh: -------------------------------------------------------------------------------- 1 | ../available.d/preservim.gh -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/websites.mr: -------------------------------------------------------------------------------- 1 | ../available.d/websites.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/archlinux.mr: -------------------------------------------------------------------------------- 1 | ../available.d/archlinux.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/finances.git: -------------------------------------------------------------------------------- 1 | ../available.d/finances.git -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/freecheck.git: -------------------------------------------------------------------------------- 1 | ../available.d/freecheck.git -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/websites.mr: -------------------------------------------------------------------------------- 1 | ../available.d/websites.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/archlinux.mr: -------------------------------------------------------------------------------- 1 | ../available.d/archlinux.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/finances.git: -------------------------------------------------------------------------------- 1 | ../available.d/finances.git -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/homebrew.mr: -------------------------------------------------------------------------------- 1 | ../available.d/homebrew.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/preservim.gh: -------------------------------------------------------------------------------- 1 | ../available.d/preservim.gh -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/websites.mr: -------------------------------------------------------------------------------- 1 | ../available.d/websites.mr -------------------------------------------------------------------------------- /.config/mr/config.d-pars/finances.git: -------------------------------------------------------------------------------- 1 | ../available.d/finances.git -------------------------------------------------------------------------------- /.config/mr/config.d-pars/pictures.annex: -------------------------------------------------------------------------------- 1 | ../available.d/pictures.annex -------------------------------------------------------------------------------- /.config/mr/config.d-pars/theleagueof.mr: -------------------------------------------------------------------------------- 1 | ../available.d/theleagueof.mr -------------------------------------------------------------------------------- /.config/mr/config.d-pars/viachristus.mr: -------------------------------------------------------------------------------- 1 | ../available.d/viachristus.mr -------------------------------------------------------------------------------- /.config/mr/config.d-shrimp/freecheck.git: -------------------------------------------------------------------------------- 1 | ../available.d/freecheck.git -------------------------------------------------------------------------------- /.config/mr/config.d-sincap/homebrew.mr: -------------------------------------------------------------------------------- 1 | ../available.d/homebrew.mr -------------------------------------------------------------------------------- /.config/mr/config.d-anole/que-sys-base.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-base.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/onqueacademy.mr: -------------------------------------------------------------------------------- 1 | ../available.d/onqueacademy.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/pictures.annex: -------------------------------------------------------------------------------- 1 | ../available.d/pictures.annex -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/que-sys-base.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-base.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/theleagueof.mr: -------------------------------------------------------------------------------- 1 | ../available.d/theleagueof.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/userscripts.mr: -------------------------------------------------------------------------------- 1 | ../available.d/userscripts.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/viachristus.mr: -------------------------------------------------------------------------------- 1 | ../available.d/viachristus.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/vim-plugins.mr: -------------------------------------------------------------------------------- 1 | ../available.d/vim-plugins.mr -------------------------------------------------------------------------------- /.config/mr/config.d-asper/que-sys-base.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-base.mr -------------------------------------------------------------------------------- /.config/mr/config.d-dagu/que-sys-base.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-base.mr -------------------------------------------------------------------------------- /.config/mr/config.d-dessie/que-sys-base.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-base.mr -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/lunarmodules.gh: -------------------------------------------------------------------------------- 1 | ../available.d/lunarmodules.gh -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/onqueacademy.mr: -------------------------------------------------------------------------------- 1 | ../available.d/onqueacademy.mr -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/pictures.annex: -------------------------------------------------------------------------------- 1 | ../available.d/pictures.annex -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/que-sys-base.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-base.mr -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/theleagueof.mr: -------------------------------------------------------------------------------- 1 | ../available.d/theleagueof.mr -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/userscripts.mr: -------------------------------------------------------------------------------- 1 | ../available.d/userscripts.mr -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/viachristus.mr: -------------------------------------------------------------------------------- 1 | ../available.d/viachristus.mr -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/vim-plugins.mr: -------------------------------------------------------------------------------- 1 | ../available.d/vim-plugins.mr -------------------------------------------------------------------------------- /.config/mr/config.d-iguana/que-sys-base.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-base.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/lunarmodules.gh: -------------------------------------------------------------------------------- 1 | ../available.d/lunarmodules.gh -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/onqueacademy.mr: -------------------------------------------------------------------------------- 1 | ../available.d/onqueacademy.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/pictures.annex: -------------------------------------------------------------------------------- 1 | ../available.d/pictures.annex -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/que-sys-base.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-base.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/theleagueof.mr: -------------------------------------------------------------------------------- 1 | ../available.d/theleagueof.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/userscripts.mr: -------------------------------------------------------------------------------- 1 | ../available.d/userscripts.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/viachristus.mr: -------------------------------------------------------------------------------- 1 | ../available.d/viachristus.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/vim-plugins.mr: -------------------------------------------------------------------------------- 1 | ../available.d/vim-plugins.mr -------------------------------------------------------------------------------- /.config/mr/config.d-karabatak/pictures.annex: -------------------------------------------------------------------------------- 1 | ../available.d/pictures.annex -------------------------------------------------------------------------------- /.config/mr/config.d-karabatak/viachristus.mr: -------------------------------------------------------------------------------- 1 | ../available.d/viachristus.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/lunarmodules.gh: -------------------------------------------------------------------------------- 1 | ../available.d/lunarmodules.gh -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/onqueacademy.mr: -------------------------------------------------------------------------------- 1 | ../available.d/onqueacademy.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/pictures.annex: -------------------------------------------------------------------------------- 1 | ../available.d/pictures.annex -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/que-sys-base.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-base.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/theleagueof.mr: -------------------------------------------------------------------------------- 1 | ../available.d/theleagueof.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/userscripts.mr: -------------------------------------------------------------------------------- 1 | ../available.d/userscripts.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/viachristus.mr: -------------------------------------------------------------------------------- 1 | ../available.d/viachristus.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/vim-plugins.mr: -------------------------------------------------------------------------------- 1 | ../available.d/vim-plugins.mr -------------------------------------------------------------------------------- /.config/mr/config.d-lobster/que-sys-base.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-base.mr -------------------------------------------------------------------------------- /.config/mr/config.d-oyster/que-sys-base.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-base.mr -------------------------------------------------------------------------------- /.config/mr/config.d-pars/que-sys-base.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-base.mr -------------------------------------------------------------------------------- /.config/mr/config.d-shrimp/que-sys-base.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-base.mr -------------------------------------------------------------------------------- /.config/mr/config.d-sincap/que-sys-base.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-base.mr -------------------------------------------------------------------------------- /.config/mr/config.d-sincap/userscripts.mr: -------------------------------------------------------------------------------- 1 | ../available.d/userscripts.mr -------------------------------------------------------------------------------- /.config/mr/config.d-sincap/viachristus.mr: -------------------------------------------------------------------------------- 1 | ../available.d/viachristus.mr -------------------------------------------------------------------------------- /.config/mr/config.d-squid/que-sys-base.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-base.mr -------------------------------------------------------------------------------- /.config/mr/config.d-turtle/que-sys-base.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-base.mr -------------------------------------------------------------------------------- /.config/mr/config.d-armadillo/que-sys-base.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-base.mr -------------------------------------------------------------------------------- /.config/mr/config.d-aslan/que-sys-desktop.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-desktop.mr -------------------------------------------------------------------------------- /.config/mr/config.d-basilisk/que-sys-base.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-base.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/que-sys-desktop.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-desktop.mr -------------------------------------------------------------------------------- /.config/mr/config.d-karabatak/que-sys-base.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-base.mr -------------------------------------------------------------------------------- /.config/mr/config.d-oyster/que-sys-desktop.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-desktop.mr -------------------------------------------------------------------------------- /.config/mr/config.d-pars/distro-packaging.mr: -------------------------------------------------------------------------------- 1 | ../available.d/distro-packaging.mr -------------------------------------------------------------------------------- /.config/mr/config.d-pars/que-sys-desktop.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-desktop.mr -------------------------------------------------------------------------------- /.config/mr/config.d-shrimp/que-sys-desktop.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-desktop.mr -------------------------------------------------------------------------------- /.config/mr/config.d-sincap/que-sys-desktop.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-desktop.mr -------------------------------------------------------------------------------- /.config/mr/config.d-squid/que-sys-desktop.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-desktop.mr -------------------------------------------------------------------------------- /.config/mr/config.d-starfish/que-sys-base.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-base.mr -------------------------------------------------------------------------------- /.config/mr/config.d-anole/distro-packaging.mr: -------------------------------------------------------------------------------- 1 | ../available.d/distro-packaging.mr -------------------------------------------------------------------------------- /.config/mr/config.d-armadillo/que-sys-desktop.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-desktop.mr -------------------------------------------------------------------------------- /.config/mr/config.d-emircik/que-sys-desktop.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-desktop.mr -------------------------------------------------------------------------------- /.config/mr/config.d-jaguar/distro-packaging.mr: -------------------------------------------------------------------------------- 1 | ../available.d/distro-packaging.mr -------------------------------------------------------------------------------- /.config/mr/config.d-karabatak/que-sys-desktop.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-desktop.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/que-sys-desktop.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-desktop.mr -------------------------------------------------------------------------------- /.config/mr/config.d-lobster/que-sys-desktop.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-desktop.mr -------------------------------------------------------------------------------- /.config/mr/config.d-starfish/que-sys-desktop.mr: -------------------------------------------------------------------------------- 1 | ../available.d/que-sys-desktop.mr -------------------------------------------------------------------------------- /.config/mr/config.d-kazarka/plaintextaccounting.mr: -------------------------------------------------------------------------------- 1 | ../available.d/plaintextaccounting.mr -------------------------------------------------------------------------------- /bin/que-sys-init-termux.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Freshen everything up 4 | pkg upgrade 5 | -------------------------------------------------------------------------------- /.config/gh/config.yml: -------------------------------------------------------------------------------- 1 | git_protocol: ssh 2 | aliases: 3 | co: pr checkout 4 | fork: repo fork --clone 5 | version: "1" 6 | -------------------------------------------------------------------------------- /.config/mr/available.d/finances.git: -------------------------------------------------------------------------------- 1 | [$HOME/projects/finances] 2 | checkout = git clone gitlab@gitlab.alerque.com:caleb/finances.git 3 | -------------------------------------------------------------------------------- /.config/mr/available.d/pictures.annex: -------------------------------------------------------------------------------- 1 | [$HOME/pictures] 2 | checkout = git clone gitlab@gitlab.alerque.com:caleb/pictures/.git 3 | skip = true 4 | -------------------------------------------------------------------------------- /.config/mr/available.d/que.vcsh: -------------------------------------------------------------------------------- 1 | [$HOME/.config/vcsh/repo.d/que.git] 2 | order = 1 3 | checkout = vcsh clone git@github.com:alerque/que.git 4 | 5 | -------------------------------------------------------------------------------- /.config/mr/available.d/que-sys-archived.mr: -------------------------------------------------------------------------------- 1 | [$HOME/.config/vcsh/repo.d/que-musescore.git] 2 | checkout = vcsh clone git@github.com:alerque/que-musescore.git 3 | -------------------------------------------------------------------------------- /.cargo/config.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | target-dir = ".local/share/cargo" 3 | 4 | [target.x86_64-unknown-linux-gnu] 5 | linker = "clang" 6 | rustflags = ["-C", "link-arg=-fuse-ld=mold"] 7 | -------------------------------------------------------------------------------- /.config/mr/available.d/freecheck.git: -------------------------------------------------------------------------------- 1 | [$HOME/projects/freecheck] 2 | checkout = git clone git@github.com:alerque/freecheck.git 3 | 4 | [$HOME/projects/gnumicr] 5 | checkout = git clone git@github.com:alerque/gnumicr.git 6 | -------------------------------------------------------------------------------- /.config/nix/nix.conf: -------------------------------------------------------------------------------- 1 | experimental-features = nix-command flakes 2 | extra-substituters = 'https://nixpkgs-update.cachix.org' 3 | extra-trusted-public-keys = 'nixpkgs-update.cachix.org-1:6y6Z2JdoL3APdu6/+Iy8eZX2ajf09e4EE9SnxSML1W8=' 4 | -------------------------------------------------------------------------------- /bin/que-sys-init-fedora.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Make sure the system is up to date with the repos 4 | sudo yum -y distribution-synchronization 5 | 6 | # Get packages that we're going to want across the board 7 | sudo yum -y install ${BASEPACKAGES[@]} 8 | -------------------------------------------------------------------------------- /.config/mr/available.d/websites.mr: -------------------------------------------------------------------------------- 1 | [$HOME/projects/websites/protestan.org] 2 | checkout = git clone gitlab@gitlab.alerque.com:caleb/protestan.org.git 3 | 4 | [$HOME/projects/websites/iguana.alerque.com] 5 | checkout = git clone gitlab@gitlab.alerque.com:caleb/iguana.alerque.com.git 6 | -------------------------------------------------------------------------------- /.config/mr/available.d/ccm.mr: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | set -eo pipefail 4 | 5 | host=gitlab.alerque.com 6 | group=ccm 7 | 8 | libdir="$(dirname $(dirname $(readlink -f $0)))/lib" 9 | source "$libdir/gitlab.zsh" 10 | 11 | list_group_projects $host $group 12 | 13 | # vi: ft=zsh 14 | -------------------------------------------------------------------------------- /.config/mr/available.d/ipk.mr: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | set -eo pipefail 4 | 5 | host=gitlab.alerque.com 6 | group=ipk 7 | 8 | libdir="$(dirname $(dirname $(readlink -f $0)))/lib" 9 | source "$libdir/gitlab.zsh" 10 | 11 | list_group_projects $host $group 12 | 13 | # vi: ft=zsh 14 | -------------------------------------------------------------------------------- /.config/mr/available.d/ahit.mr: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | set -eo pipefail 4 | 5 | host=gitlab.alerque.com 6 | group=ahit 7 | 8 | libdir="$(dirname $(dirname $(readlink -f $0)))/lib" 9 | source "$libdir/gitlab.zsh" 10 | 11 | list_group_projects $host $group 12 | 13 | # vi: ft=zsh 14 | -------------------------------------------------------------------------------- /.config/mr/available.d/angela.mr: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | set -eo pipefail 4 | 5 | host=gitlab.alerque.com 6 | group=angela 7 | 8 | libdir="$(dirname $(dirname $(readlink -f $0)))/lib" 9 | source "$libdir/gitlab.zsh" 10 | 11 | list_group_projects $host $group 12 | 13 | # vi: ft=zsh 14 | -------------------------------------------------------------------------------- /.config/mr/available.d/hosts.mr: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | set -eo pipefail 4 | 5 | host=gitlab.alerque.com 6 | group=hosts 7 | 8 | libdir="$(dirname $(dirname $(readlink -f $0)))/lib" 9 | source "$libdir/gitlab.zsh" 10 | 11 | list_group_projects $host $group 12 | 13 | # vi: ft=zsh 14 | -------------------------------------------------------------------------------- /.config/mr/available.d/tprk.mr: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | set -eo pipefail 4 | 5 | host=gitlab.alerque.com 6 | group=tprk 7 | 8 | libdir="$(dirname $(dirname $(readlink -f $0)))/lib" 9 | source "$libdir/gitlab.zsh" 10 | 11 | list_group_projects $host $group 12 | 13 | # vi: ft=zsh 14 | -------------------------------------------------------------------------------- /.config/mr/available.d/darlene.mr: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | set -eo pipefail 4 | 5 | host=gitlab.alerque.com 6 | group=darlene 7 | 8 | libdir="$(dirname $(dirname $(readlink -f $0)))/lib" 9 | source "$libdir/gitlab.zsh" 10 | 11 | list_group_projects $host $group 12 | 13 | # vi: ft=zsh 14 | -------------------------------------------------------------------------------- /.config/mr/available.d/vcsh.git: -------------------------------------------------------------------------------- 1 | [$HOME/projects/vcsh] 2 | checkout = 3 | git clone git@github.com:alerque/vcsh.git 4 | cd vcsh 5 | git remote add upstream git@github.com:RichiH/vcsh.git 6 | 7 | zap = 8 | git pull upstream master 9 | git merge upstream/master 10 | git push origin master 11 | -------------------------------------------------------------------------------- /.config/mr/available.d/viachristus.mr: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | set -eo pipefail 4 | 5 | host=gitlab.alerque.com 6 | group=viachristus 7 | 8 | libdir="$(dirname $(dirname $(readlink -f $0)))/lib" 9 | source "$libdir/gitlab.zsh" 10 | 11 | list_group_projects $host $group 12 | 13 | # vi: ft=zsh 14 | -------------------------------------------------------------------------------- /.config/mr/available.d/onqueacademy.mr: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | set -eo pipefail 4 | 5 | host=gitlab.alerque.com 6 | group=onqueacademy 7 | 8 | libdir="$(dirname $(dirname $(readlink -f $0)))/lib" 9 | source "$libdir/gitlab.zsh" 10 | 11 | list_group_projects $host $group 12 | 13 | # vi: ft=zsh 14 | -------------------------------------------------------------------------------- /.mrconfig: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | jobs = 5 3 | include = 4 | cat $HOME/.config/mr/available.d/que.vcsh 5 | if [ -d $HOME/.config/mr/config.d-$HOSTNAME ]; then 6 | for conf in $HOME/.config/mr/config.d-$HOSTNAME/*; do 7 | test -x $conf && $conf || cat $conf 8 | done 9 | fi 10 | 11 | [ALIAS] 12 | 13 | # vim: ft=ini syntax=sh 14 | -------------------------------------------------------------------------------- /.config/mr/available.d/github.mr: -------------------------------------------------------------------------------- 1 | [$HOME/projects/github/runebender] 2 | checkout = 3 | git clone git@github.com:alerque/runebender.git 4 | cd runebender 5 | git remote add upstream git@github.com:linebender/runebender.git 6 | zap = 7 | git checkout master 8 | git pull upstream master 9 | git push origin master 10 | skip = lazy 11 | -------------------------------------------------------------------------------- /.config/mr/available.d/paperwalking.git: -------------------------------------------------------------------------------- 1 | [$HOME/projects/paperwalking] 2 | checkout = 3 | git clone git@github.com:alerque/paperwalking.git 4 | cd paperwalking 5 | git remote add upstream git@github.com:migurski/paperwalking.git 6 | 7 | zap = 8 | git pull upstream master 9 | git merge upstream/master 10 | git push origin master 11 | -------------------------------------------------------------------------------- /bin/que: -------------------------------------------------------------------------------- 1 | #!/bin/zsh 2 | 3 | if [ "$1" = "que" ]; then 4 | repo=que 5 | else 6 | repo=que-$1 7 | fi 8 | 9 | shift 10 | 11 | vcsh run $repo git $@ 12 | 13 | # Auto update and stage the gitignore file whenever a new file is added to a repo 14 | if [ "$1" = "add" -a "$2" = "-f" ]; then 15 | vcsh write-gitignore $repo 16 | vcsh run $repo git add ~/.gitignore.d/$repo 17 | fi 18 | -------------------------------------------------------------------------------- /.config/mr/available.d/plaintextaccounting.mr: -------------------------------------------------------------------------------- 1 | [$HOME/projects/plaintextaccounting/hledger] 2 | checkout = gh repo fork --clone git@github.com:simonmichael/hledger.git 3 | 4 | [$HOME/projects/plaintextaccounting/ledger] 5 | checkout = gh repo fork --clone git@github.com:ledger/ledger.git 6 | 7 | [$HOME/projects/plaintextaccounting/vim-ledger] 8 | checkout = gh repo fork --clone git@github.com:ledger/vim-ledger.git 9 | -------------------------------------------------------------------------------- /bin/git-related: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Usage: git related 3 | # 4 | # Show other files that often get changed in commits that touch . 5 | set -e 6 | 7 | file="${1?}" 8 | 9 | git blame -w --porcelain -- "$file" | awk ' 10 | /^[0-9a-f]{40} / { sha = $1 } 11 | /^author-time / { print(sha) } 12 | ' | sort -u | grep -v '^0\+$' | xargs -I % git diff -w --name-only "%^..%" \ 13 | | grep -v "$file" | sort | uniq -c | sort -rn 14 | -------------------------------------------------------------------------------- /.config/mr/available.d/tsv.mr: -------------------------------------------------------------------------------- 1 | [$HOME/projects/tsv/avadanlik] 2 | checkout = git clone gitlab@gitlab.alerque.com:tsv/avadanlik.git 3 | 4 | [$HOME/projects/tsv/bibledit] 5 | checkout = git clone gitlab@gitlab.alerque.com:tsv/bibledit.git 6 | 7 | [$HOME/projects/tsv/tsv] 8 | checkout = git clone gitlab@gitlab.alerque.com:tsv/tsv.git 9 | 10 | [$HOME/projects/tsv/kalemden] 11 | checkout = git clone gitlab@gitlab.alerque.com:tsv/kalemden.git 12 | -------------------------------------------------------------------------------- /.config/pacman/makepkg.conf: -------------------------------------------------------------------------------- 1 | #!/hint/bash 2 | BUILDENV=(!distcc color !ccache check sign) 3 | PACKAGER="Caleb Maclennan " 4 | GPGKEY="0xD4A753468A5A5B67" 5 | #GPGKEY="0xA85E811EB4CA2E08!" 6 | # PACKAGER="Caleb Maclennan " 7 | # GPGKEY="0x63CC496475267693" 8 | # GPGKEY="0xB538286DE04ECFE5!" 9 | SRCDEST=/home/caleb/.cache/pkgsrc 10 | OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge debug lto) 11 | -------------------------------------------------------------------------------- /.config/mr/available.d/systems.mr: -------------------------------------------------------------------------------- 1 | [$HOME/projects/systems-svn] 2 | checkout = svn co http://svn.alerque.com/svn/systems systems-svn 3 | skip = true 4 | 5 | [$HOME/projects/systems/dns] 6 | checkout = 7 | git clone -o iguana gitlab@gitlab.alerque.com:systems/dns.git 8 | cd dns 9 | git remote add basilisk caleb@basilisk.alerque.com:dns_in.git 10 | 11 | [$HOME/projects/systems/support.wiki] 12 | checkout = git clone gitlab@gitlab.alerque.com:systems/support.wiki.git 13 | -------------------------------------------------------------------------------- /bin/que-sys-config-ec2.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if is_opt $ISEC2; then 4 | # (Uses que user that has read only permission to access tags on my EC2 account) 5 | export HOSTNAME=$(ec2-describe-tags \ 6 | --aws-access-key AKIAIMSI2QP22SMUTUVQ \ 7 | --aws-secret-key 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 \ 8 | --filter "resource-type=instance" \ 9 | --filter "resource-id=$(ec2-metadata -i | cut -d ' ' -f2)" \ 10 | --filter "key=Name" | cut -f5) 11 | fi 12 | -------------------------------------------------------------------------------- /bin/que-sys-init-osx.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export PATH=/usr/local/bin:$PATH 4 | 5 | # To start with we need a package manager and data set ready 6 | command -v brew || ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)" 7 | brew doctor 8 | brew update 9 | 10 | brew install ${BASEPACKAGES[@]} 11 | brew upgrade ${BASEPACKAGES[@]} 12 | 13 | is_opt $ISDESKTOP && brew install ${DESKTOPPACKAGES[@]} 14 | is_opt $ISDESKTOP && brew upgrade ${DESKTOPPACKAGES[@]} 15 | 16 | brew linkapps 17 | -------------------------------------------------------------------------------- /bin/git-autofixup: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Usage: git autofixup 3 | # 4 | # Commits the staged change as a fixup for the last commit that touched the 5 | # changed line. Useful for preparing for a `git rebase --autosquash`. 6 | set -e 7 | 8 | git diff --no-prefix --cached -U0 | awk ' 9 | /^--- / { print $2 } 10 | /^@@ / { print $2 * -1; exit } 11 | ' | xargs | { 12 | read filename lineno 13 | sha="$(git blame HEAD "$filename" -L "${lineno},+1" | awk '{ print $1 }')" 14 | git commit --fixup "$sha" 15 | } 16 | -------------------------------------------------------------------------------- /bin/git-vaccinate: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | set -e 4 | 5 | case $(git config --global init.defaultBranch) in 6 | main) 7 | echo 'Innocuating against wokery.' 8 | git config --global init.defaultBranch master 9 | ;; 10 | esac 11 | 12 | case $(git branch --show-current) in 13 | main|woke) 14 | echo 'Sanitize the nonsense.' 15 | git branch -m main master 16 | ;; 17 | master) 18 | echo 'Keep building.' 19 | ;; 20 | *) 21 | echo 'Not a recognized starting point, are you on the default branch?' 22 | exit 1 23 | ;; 24 | esac 25 | 26 | -------------------------------------------------------------------------------- /.config/vcsh/hooks-enabled/pre-merge-unclobber: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This code does almost exactly what the native VCSH sanity checking code 4 | # does except that on finding a potential merge conflict, it moves the 5 | # extant object out of the way temporarily. The merge then happens cleanly 6 | # as far as git knows, and a post-merge hook can figure out what to do with 7 | # the extant versions of the objects. 8 | 9 | for object in $(git ls-tree -r origin/master | awk '{print $4}'); do 10 | [ -e "$object" ] && mv "$object" "$object.vcsh-unclobber" 11 | done 12 | -------------------------------------------------------------------------------- /.config/vcsh/hooks-enabled/post-merge-unclobber: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This finds objects that the pre-merge script moved out of the way to 4 | # avoid conflicts when running git clone and moves them back to their 5 | # original places. The result is that the git repository gets checked out 6 | # and the extant objects end up back in the working directory. Git now 7 | # sees these as un-staged changes to the working branch and you can deal 8 | # with them by adding them or reverting. 9 | 10 | find ./ -name '*.vcsh-unclobber' -execdir rename .vcsh-unclobber '' {} \; 11 | -------------------------------------------------------------------------------- /bin/que-sys-init-ala.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Make sure the system is up to date with the repos 4 | sudo yum -y distribution-synchronization 5 | 6 | # Enable extra repros 7 | sudo sed -i 's/^enabled=0$/enabled=1/g' /etc/yum.repos.d/epel.repo 8 | 9 | # Get packages that we're going to want across the board 10 | sudo yum -y install ${BASEPACKAGES[@]} 11 | 12 | if is_opt $ISEC2; then 13 | remote_source que-sys-config-ec2.bash 14 | 15 | sudo sed -i -e "s/^HOSTNAME=.*/HOSTNAME=$HOSTNAME.alerque.com/g" /etc/sysconfig/network 16 | sudo hostname $HOSTNAME.alerque.com 17 | fi 18 | -------------------------------------------------------------------------------- /.config/mr/available.d/userscripts.mr: -------------------------------------------------------------------------------- 1 | [$HOME/projects/SE-AutoReviewComments] 2 | checkout = 3 | git clone git@github.com:alerque/SE-AutoReviewComments.git 4 | cd SE-AutoReviewComments 5 | git remote add benjol git@github.com:Benjol/SE-AutoReviewComments.git 6 | git remote add izzy git@github.com:IzzySoft/SE-AutoReviewComments.git 7 | git remote add oliver git@github.com:oliversalzburg/SE-AutoReviewComments.git 8 | 9 | zap = 10 | git fetch --all 11 | git checkout master && 12 | git merge --ff-only benjol/master && 13 | git push origin master 14 | git checkout devel && 15 | git merge benjol/devel --ff-only && 16 | git push origin devel 17 | -------------------------------------------------------------------------------- /.config/mr/available.d/homebrew.mr: -------------------------------------------------------------------------------- 1 | [$HOME/projects/homebrew] 2 | checkout = 3 | git clone https://github.com/alerque/homebrew.git 4 | cd homebrew 5 | git remote add upstream git@github.com:Homebrew/homebrew.git 6 | zap = 7 | git checkout master 8 | git pull upstream master 9 | git merge upstream/master 10 | git push origin master 11 | 12 | [$HOME/projects/homebrew-cask] 13 | checkout = 14 | git clone git@github.com:alerque/homebrew-cask.git 15 | cd homebrew-cask 16 | git remote add upstream git@github.com:phinze/homebrew-cask.git 17 | zap = 18 | git checkout master 19 | git pull upstream master 20 | git merge upstream/master 21 | git push origin master 22 | -------------------------------------------------------------------------------- /.config/mr/available.d/lunarmodules.gh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | org=lunarmodules 4 | 5 | cache=/tmp/gh-repos-$org 6 | 7 | function fetch_cache () ( 8 | test -s $cache && 9 | test $(date +%s -r $cache) -ge $(date +%s --date "60 min ago") && 10 | cat $cache 11 | ) 12 | 13 | function list_repos () { 14 | fetch_cache || 15 | gh repo list $org | 16 | awk '{ print $1 }' | 17 | sort | 18 | tee $cache 19 | } 20 | 21 | list_repos | 22 | cat | 23 | while read repo; do 24 | cat <<- EOF 25 | [$HOME/projects/$repo] 26 | checkout = gh repo fork --clone $repo 27 | update = 28 | git pull origin 29 | git pull upstream 30 | EOF 31 | done 32 | -------------------------------------------------------------------------------- /.config/mr/available.d/preservim.gh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | org=preservim 4 | 5 | cache=/tmp/gh-repos-$org 6 | 7 | function fetch_cache () ( 8 | test -s $cache && 9 | test $(date +%s -r $cache) -ge $(date +%s --date "60 min ago") && 10 | cat $cache 11 | ) 12 | 13 | function list_repos () { 14 | fetch_cache || 15 | gh repo list $org | 16 | awk '{ print $1 }' | 17 | sort | 18 | tee $cache 19 | } 20 | 21 | list_repos | 22 | cat | 23 | while read repo; do 24 | cat <<- EOF 25 | [$HOME/projects/$repo] 26 | checkout = gh repo clone $repo 27 | update = 28 | git pull origin 29 | git submodule update --init --remote --recursive 30 | EOF 31 | done 32 | -------------------------------------------------------------------------------- /bin/que-sys-init-ubuntu.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if is_opt $ISVBOX ! lsmod | grep -iq vbox; then 4 | flunk "Please install virtualbox-additions" 5 | fi 6 | 7 | # Fix system laguage 8 | sudo sed -i 's/^LANG=.*$/LANG=en_US.utf8/' /etc/default/locale 9 | 10 | sudo apt-get -y update || flunk "Couldn't get apt-get repos" 11 | sudo apt-get -y upgrade || flunk "Couldn't upgrade system packages" 12 | sudo apt-get -y dist-upgrade 13 | sudo apt-get -y autoremove 14 | 15 | #read -p "Reboot? (y/n): " reboot 16 | #[[ $reboot == y ]] && sudo reboot 17 | 18 | sudo apt-get -y install ${BASEPACKAGES[@]} 19 | 20 | # Fix etckeeper defaults 21 | sudo sed -i 's/^VCS=".*"$/VCS="git"/' /etc/etckeeper/etckeeper.conf 22 | -------------------------------------------------------------------------------- /.config/mr/available.d/sile.mr: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | org=sile-typesetter 4 | 5 | cache=/tmp/gh-repos-$org 6 | 7 | function fetch_cache () ( 8 | test -s $cache && 9 | test $(date +%s -r $cache) -ge $(date +%s --date "60 min ago") && 10 | cat $cache 11 | ) 12 | 13 | function list_repos () { 14 | fetch_cache || 15 | gh repo list $org | 16 | awk '{ print $1 }' | 17 | sort | 18 | tee $cache 19 | } 20 | 21 | list_repos | 22 | cat | 23 | while read repo; do 24 | cat <<- EOF 25 | [$HOME/projects/$repo] 26 | checkout = gh repo clone $repo 27 | update = 28 | git fetch --all 29 | git pull origin 30 | git submodule update --init --remote --recursive 31 | EOF 32 | done 33 | -------------------------------------------------------------------------------- /.config/mr/available.d/fluent.mr: -------------------------------------------------------------------------------- 1 | [$HOME/projects/fluent/fluent] 2 | checkout = gh repo fork --clone git@github.com:projectfluent/fluent.git 3 | 4 | [$HOME/projects/fluent/fluent.js] 5 | checkout = gh repo fork --clone git@github.com:projectfluent/fluent.js.git 6 | 7 | [$HOME/projects/fluent/fluent-langneg-rs] 8 | checkout = gh repo fork --clone git@github.com:projectfluent/fluent-langneg-rs.git 9 | 10 | [$HOME/projects/fluent/fluent-lua] 11 | checkout = gh repo clone git@github.com:alerque/fluent-lua.git 12 | 13 | [$HOME/projects/fluent/fluent-rs] 14 | checkout = gh repo fork --clone git@github.com:projectfluent/fluent-rs.git 15 | 16 | [$HOME/projects/fluent/fluent-vim] 17 | checkout = gh repo fork --clone git@github.com:projectfluent/fluent-vim.git 18 | -------------------------------------------------------------------------------- /.config/mr/available.d/pandoc.mr: -------------------------------------------------------------------------------- 1 | [$HOME/projects/jgm/pandoc] 2 | checkout = gh repo fork --clone git@github.com:jgm/pandoc.git 3 | 4 | [$HOME/projects/pandoc/ast-migrator] 5 | checkout = gh repo fork --clone git@github.com:pandoc/ast-migrator.git 6 | 7 | [$HOME/projects/pandoc/dockerfiles] 8 | checkout = gh repo fork --clone git@github.com:pandoc/dockerfiles.git 9 | 10 | [$HOME/projects/pandoc/lua-filters] 11 | checkout = gh repo fork --clone git@github.com:pandoc/lua-filters.git 12 | 13 | [$HOME/projects/pandoc/pandoc-action-example] 14 | checkout = gh repo fork --clone git@github.com:pandoc/pandoc-action-example.git 15 | 16 | [$HOME/projects/pandoc/scholarly-metadata] 17 | checkout = gh repo fork --clone git@github.com:pandoc/scholarly-metadata.git 18 | -------------------------------------------------------------------------------- /.config/mr/available.d/distro-packaging.mr: -------------------------------------------------------------------------------- 1 | [$HOME/projects/distro-packaging/homebrew] 2 | checkout = 3 | git clone git@github.com:alerque/homebrew-core.git homebrew 4 | cd homebrew 5 | git remote add upstream git@github.com:Homebrew/homebrew-core.git 6 | 7 | [$HOME/projects/distro-packaging/nixpkgs] 8 | checkout = 9 | git clone git@github.com:alerque/nixpkgs.git 10 | cd nixpkgs 11 | git remote add upstream git@github.com:NixOS/nixpkgs.git 12 | 13 | [$HOME/projects/distro-packaging/void-packages] 14 | checkout = 15 | git clone git@github.com:alerque/void-packages.git 16 | cd void-packages 17 | git remote add upstream git@github.com:void-linux/void-packages.git 18 | 19 | [$HOME/projects/distro-packaging/archlinux] 20 | checkout = 21 | git svn clone svn://svn.archlinux.org/community archlinux 22 | -------------------------------------------------------------------------------- /.config/yay/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "buildDir": "/home/caleb/.cache/yay", 3 | "editor": "", 4 | "editorflags": "", 5 | "makepkgbin": "makepkg", 6 | "makepkgconf": "", 7 | "pacmanbin": "pacman", 8 | "pacmanconf": "/etc/pacman.conf", 9 | "tarbin": "bsdtar", 10 | "redownload": "no", 11 | "rebuild": "no", 12 | "answerclean": "n", 13 | "answerdiff": "n", 14 | "answeredit": "n", 15 | "answerupgrade": "", 16 | "gitbin": "git", 17 | "gpgbin": "gpg", 18 | "gpgflags": "", 19 | "mflags": "", 20 | "sortby": "name", 21 | "gitflags": "", 22 | "removemake": "ask", 23 | "requestsplitn": 150, 24 | "sortmode": 1, 25 | "completionrefreshtime": 7, 26 | "sudoloop": true, 27 | "timeupdate": false, 28 | "devel": false, 29 | "cleanAfter": false, 30 | "gitclone": true, 31 | "provides": true, 32 | "pgpfetch": true, 33 | "upgrademenu": true, 34 | "cleanmenu": true, 35 | "diffmenu": true, 36 | "editmenu": false, 37 | "combinedupgrade": true, 38 | "useask": false 39 | } 40 | -------------------------------------------------------------------------------- /.config/mr/available.d/lyricue.mr: -------------------------------------------------------------------------------- 1 | [$HOME/projects/lyricue-pi] 2 | checkout = bzr branch lp:~alerque/lyricue/picue lyricue-pi 3 | skip = true 4 | zap = 5 | bzr shelve 6 | bzr pull :parent 7 | bzr merge lp:lyricue 8 | bzr commit -m "Merge from upstream" 9 | bzr push :parent 10 | bzr unshelve 11 | 12 | [$HOME/projects/lyricue-pld] 13 | checkout = bzr branch lp:~alerque/lyricue/pld lyricue-pld 14 | skip = true 15 | zap = 16 | bzr shelve 17 | bzr pull :parent 18 | bzr merge lp:lyricue 19 | bzr commit -m "Merge from upstream" 20 | bzr push :parent 21 | bzr unshelve 22 | 23 | [$HOME/projects/picue] 24 | skip = true 25 | checkout = git clone git@github.com:alerque/picue.git 26 | 27 | [$HOME/projects/lyricue-android] 28 | skip = true 29 | checkout = 30 | git clone git@github.com:alerque/lyricue-android.git 31 | cd lyricue-android 32 | git remote add upstream git@github.com:cjd/lyricue-android.git 33 | 34 | zap = 35 | git pull upstream master 36 | git merge upstream/master 37 | git push origin master 38 | 39 | -------------------------------------------------------------------------------- /.config/git/attributes: -------------------------------------------------------------------------------- 1 | *.otf diff=fdiff 2 | *.tex diff=difftex 3 | *.ttf diff=fdiff 4 | *.ufo diff=ufodiff 5 | *.svg diff=lukaj 6 | 7 | *.java merge=mergiraf 8 | *.properties merge=mergiraf 9 | *.rs merge=mergiraf 10 | *.go merge=mergiraf 11 | *.js merge=mergiraf 12 | *.jsx merge=mergiraf 13 | *.mjs merge=mergiraf 14 | *.json merge=mergiraf 15 | *.yml merge=mergiraf 16 | *.yaml merge=mergiraf 17 | *.toml merge=mergiraf 18 | *.html merge=mergiraf 19 | *.htm merge=mergiraf 20 | *.xhtml merge=mergiraf 21 | *.xml merge=mergiraf 22 | *.c merge=mergiraf 23 | *.cc merge=mergiraf 24 | *.h merge=mergiraf 25 | *.cpp merge=mergiraf 26 | *.hpp merge=mergiraf 27 | *.cxx merge=mergiraf 28 | *.mpp merge=mergiraf 29 | *.cppm merge=mergiraf 30 | *.ixx merge=mergiraf 31 | *.cs merge=mergiraf 32 | *.dart merge=mergiraf 33 | *.dts merge=mergiraf 34 | *.scala merge=mergiraf 35 | *.sbt merge=mergiraf 36 | *.ts merge=mergiraf 37 | *.tsx merge=mergiraf 38 | *.py merge=mergiraf 39 | *.php merge=mergiraf 40 | *.phtml merge=mergiraf 41 | *.sol merge=mergiraf 42 | *.lua merge=mergiraf 43 | *.kt merge=mergiraf 44 | *.rb merge=mergiraf 45 | *.nix merge=mergiraf 46 | *.sv merge=mergiraf 47 | *.svh merge=mergiraf 48 | -------------------------------------------------------------------------------- /.config/mr/lib/gitlab.zsh: -------------------------------------------------------------------------------- 1 | set -eo pipefail 2 | 3 | function flunk () { 4 | echo "$1" >&2 5 | exit 1 6 | } 7 | 8 | function project_list_cache () ( 9 | test -s $cachefile || exit 1 10 | test $(date +%s -r $cachefile) -ge $(date +%s --date "60 min ago") || exit 1 11 | cat $cachefile 12 | ) 13 | 14 | function fetch_project_list () { 15 | yq -re ".hosts[\"$host\"].token" ~/.config/glab-cli/config.yml || flunk "No API key for host $host" 16 | GITLAB_HOST=$host glab repo list --all --per-page 1000 | 17 | awk '/^[^ ]+\// { print $1 }' | 18 | sort | 19 | tee $cachefile 20 | } 21 | 22 | function list_all_projects () { 23 | project_list_cache || fetch_project_list 24 | } 25 | 26 | function list_group_projects () { 27 | host=${1:==gitlab.alerque.com} 28 | group=${2:==$USER} 29 | cachefile=/tmp/gitlab-repos-cache-$host 30 | list_all_projects | 31 | grep -e "^$group/" | 32 | grep -v -E "^$group/(liturjiler_|boco)" | 33 | while read project; do 34 | cat <<- EOF 35 | [$HOME/projects/${project}] 36 | checkout = GITLAB_HOST=$host glab repo clone $project -- --recursive 37 | update = 38 | git pull 39 | git submodule foreach git pull 40 | EOF 41 | done 42 | } 43 | -------------------------------------------------------------------------------- /.config/tig/config: -------------------------------------------------------------------------------- 1 | source ~/.config/tig/molokai-like-theme.tigrc 2 | 3 | set mouse = yes 4 | set commit-order = topo 5 | set git-colors = no 6 | set editor-line-number = yes 7 | set refresh-mode = auto 8 | set wrap-lines = true 9 | 10 | set tab-size = 4 11 | set line-graphics = utf-8 12 | set truncation-delimiter = utf-8 13 | 14 | set main-view-id-display = true 15 | set main-view-author-display = email-user 16 | set main-view-author-width = 5 17 | set main-view-date-display = relative-compact 18 | set main-view-date-local = true 19 | set main-view-date-format = "%Y-%m-%d %H:%M" 20 | set main-view-commit-title-graph = v2 21 | set main-view-commit-title-overflow = 62 22 | set main-view-commit-title-refs = true 23 | 24 | #set diff-options = --ignore-all-space 25 | #set diff-highlight = true 26 | set ignore-space = all 27 | 28 | bind generic g none 29 | bind generic gg :0 30 | bind main G view-grep 31 | bind main c @sh -c "git name-rev --name-only --always %(commit) | xargs git checkout" 32 | bind log c @sh -c "git name-rev --name-only --always %(commit) | xargs git checkout" 33 | bind main i !git rebase -i %(commit) 34 | bind main I !git revise -i %(commit) 35 | 36 | #bind generic S :source ~/.config/tig/config 37 | -------------------------------------------------------------------------------- /.config/mr/available.d/que-sys-desktop.mr: -------------------------------------------------------------------------------- 1 | [$HOME/.config/vcsh/repo.d/que-atom.git] 2 | order = 5 3 | checkout = vcsh clone git@github.com:alerque/que-atom.git 4 | 5 | [$HOME/.config/vcsh/repo.d/que-awesome.git] 6 | checkout = vcsh clone git@github.com:alerque/que-awesome.git 7 | 8 | [$HOME/.config/vcsh/repo.d/que-firefox.git] 9 | checkout = vcsh clone git@github.com:alerque/que-firefox.git 10 | 11 | [$HOME/.config/vcsh/repo.d/que-fonts.git] 12 | order = 5 13 | checkout = vcsh clone gitlab@gitlab.alerque.com:caleb/que-fonts.git 14 | 15 | [$HOME/.config/vcsh/repo.d/que-gimp.git] 16 | order = 5 17 | checkout = vcsh clone git@github.com:alerque/que-gimp.git 18 | 19 | [$HOME/.config/vcsh/repo.d/que-gnome.git] 20 | checkout = vcsh clone git@github.com:alerque/que-gnome.git 21 | 22 | [$HOME/.config/vcsh/repo.d/que-inkscape.git] 23 | order = 5 24 | checkout = vcsh clone git@github.com:alerque/que-inkscape.git 25 | 26 | [$HOME/.config/vcsh/repo.d/que-wayland.git] 27 | order = 5 28 | checkout = vcsh clone git@github.com:alerque/que-wayland.git 29 | 30 | [$HOME/.config/vcsh/repo.d/que-xorg.git] 31 | checkout = vcsh clone git@github.com:alerque/que-xorg.git 32 | 33 | [$HOME/.config/vcsh/repo.d/que-zathura.git] 34 | order = 5 35 | checkout = vcsh clone git@github.com:alerque/que-zathura.git 36 | -------------------------------------------------------------------------------- /.config/mr/available.d/incil.mr: -------------------------------------------------------------------------------- 1 | [$HOME/projects/incil_imports] 2 | checkout = 3 | git clone gitlab@gitlab.alerque.com:ipk/incil_imports.git 4 | 5 | [$HOME/projects/incil_data] 6 | checkout = 7 | git clone gitlab@gitlab.alerque.com:ipk/incil_data.git 8 | 9 | [$HOME/projects/websites/incil.info] 10 | checkout = 11 | git clone gitlab@gitlab.alerque.com:ipk/incil.info.git 12 | 13 | [$HOME/projects/browserbible-3] 14 | checkout = 15 | git clone git@github.com:alerque/browserbible-3.git 16 | cd browserbible-3 17 | git remote add upstream git@github.com:digitalbiblesociety/browserbible-3.git 18 | git remote add iguana gitlab@gitlab.alerque.com:ipk/browserbible-3.git 19 | git remote add kkt.incil.info gitlab@gitlab.alerque.com:ipk/kkt.incil.info.git 20 | git fetch --all 21 | 22 | [$HOME/projects/incil_cizimler] 23 | checkout = 24 | git clone gitlab@gitlab.alerque.com:ipk/incil_cizimler.git 25 | 26 | [$HOME/projects/incil_eklentisi] 27 | checkout = 28 | git clone gitlab@gitlab.alerque.com:ipk/incil_eklentisi.git 29 | 30 | [$HOME/projects/alerque.InfiniteContentPane] 31 | checkout = 32 | git clone git@github.com:alerque/alerque.InfiniteContentPane.git 33 | cd alerque.InfiniteContentPane 34 | git remote add iguana gitlab@gitlab.alerque.com:caleb/alerque-infinitecontentpane.git 35 | 36 | -------------------------------------------------------------------------------- /bin/que-sys-init-pld.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Find out some basics about the system 4 | tree=$(cat /etc/pld-release | cut -d\( -f2 | cut -c1-2 | tr [:upper:] [:lower:]) 5 | 6 | # Setup poldek repositories 7 | #grep -q caleb /etc/poldek/source.conf || 8 | # echo "\n[source]\nname = caleb\ntype = pndir\npath = http://rpms.alerque.com/dists/${tree}/\nauto = yes\nautoup = yes" >> /etc/poldek/source.conf 9 | 10 | #which ex > /dev/null || poldek -iv vim-static && ex -u NONE "+:%s!^_prefix.*!_prefix = http://pld.ouraynet.com/dists/${tree}!g" "+:x" /etc/poldek/pld-source.conf 11 | 12 | # Freshen everything up 13 | sudo poldek --noask -n ${tree} --upgrade-dist 14 | 15 | # Make sure the basics every system is going to need are installed and updated 16 | sudo poldek --noask -n ${tree} -iv ${BASEPACKAGES[@]} glibc-localedb-all iputils-ping man 17 | 18 | # TODO: ssh-askpass-fullscreen slock awesome 19 | 20 | # TODO: build vcsh, mr, git-annex -r standalone 21 | 22 | # Set suid bit on ping so users can use it! 23 | sudo chmod 755 /bin/ping 24 | sudo chmod u+s /bin/ping 25 | 26 | # Fix shell display code so that it work in zsh. 27 | # FIXME: for Pete's sakes do this with a sed! 28 | # FIXME: commented do to switch to bash for bootstrap env 29 | #grep -n '==' /etc/rc.d/init.d/functions | 30 | # grep tput | 31 | # cut -d: -f1 | 32 | # read line && sudo ex -u NONE "+:${line}s/==/=/g" "+:x" /etc/rc.d/init.d/functions 33 | 34 | #test -d ~/rpm || builder --init-rpm-dir 35 | -------------------------------------------------------------------------------- /.config/mr/available.d/grandpa.mr: -------------------------------------------------------------------------------- 1 | [$HOME/projects/grandpa/dowlink.net] 2 | checkout = git clone gitlab@gitlab.alerque.com:wayne/dowlink.net.git 3 | 4 | [$HOME/projects/grandpa/gdow.net] 5 | checkout = git clone gitlab@gitlab.alerque.com:wayne/gdow.net.git 6 | 7 | [$HOME/projects/grandpa/personal.gdow.net] 8 | checkout = git clone gitlab@gitlab.alerque.com:wayne/personal.gdow.net.git 9 | 10 | [$HOME/projects/grandpa/gwdow.net] 11 | checkout = git clone gitlab@gitlab.alerque.com:wayne/gwdow.net.git 12 | 13 | [$HOME/projects/grandpa/personal.gwdow.net] 14 | checkout = git clone gitlab@gitlab.alerque.com:wayne/personal.gwdow.net.git 15 | 16 | [$HOME/projects/grandpa/ledow.net] 17 | checkout = git clone gitlab@gitlab.alerque.com:wayne/ledow.net.git 18 | 19 | [$HOME/projects/grandpa/lindadow.net] 20 | checkout = git clone gitlab@gitlab.alerque.com:wayne/lindadow.net.git 21 | 22 | [$HOME/projects/grandpa/personal.lindadow.net] 23 | checkout = git clone gitlab@gitlab.alerque.com:wayne/personal.lindadow.net.git 24 | 25 | [$HOME/projects/grandpa/waynedow.net] 26 | checkout = git clone gitlab@gitlab.alerque.com:wayne/waynedow.net.git 27 | 28 | [$HOME/projects/grandpa/personal.waynedow.net] 29 | checkout = git clone gitlab@gitlab.alerque.com:wayne/personal.waynedow.net.git 30 | 31 | [$HOME/projects/grandpa/cars.waynedow.net] 32 | checkout = git clone gitlab@gitlab.alerque.com:wayne/cars.waynedow.net.git 33 | 34 | [$HOME/projects/grandpa/ouraypdfs] 35 | checkout = git clone gitlab@gitlab.alerque.com:wayne/ouraypdfs.git 36 | 37 | [$HOME/projects/grandpa/ouraypersonalpdfs] 38 | checkout = git clone gitlab@gitlab.alerque.com:wayne/ouraypersonalpdfs.git 39 | -------------------------------------------------------------------------------- /.config/mr/available.d/archlinux.mr: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | cache=/tmp/arch-maintained-list 4 | 5 | function fetch_maintained () { 6 | { 7 | curl -Ls 'https://archlinux.org/packages/search/json/?maintainer=alerque&page=1' 8 | curl -Ls 'https://archlinux.org/packages/search/json/?maintainer=alerque&page=2' 9 | curl -Ls 'https://archlinux.org/packages/search/json/?maintainer=alerque&page=3' 10 | curl -Ls 'https://archlinux.org/packages/search/json/?maintainer=alerque&page=4' 11 | } | 12 | jq -r '.results[].pkgbase' | 13 | sort -u 14 | } 15 | 16 | function dump_maintained_cache () { 17 | test -s $cache || return 1 18 | test $(date +%s -r $cache) -ge $(date +%s --date "60 min ago") || return 1 19 | cat $cache 20 | } 21 | 22 | function list_maintained () { 23 | dump_maintained_cache || fetch_maintained | tee $cache 24 | } 25 | 26 | function list_non_extant () { 27 | list_maintained | 28 | while read dir; do 29 | [[ -d $HOME/projects/archlinux/community/$dir ]] || echo $dir 30 | done 31 | } 32 | 33 | non_extants=$(list_non_extant | xargs) 34 | 35 | cat <<- EOF 36 | [$HOME/projects/archlinux/packages] 37 | checkout = mkdir packages 38 | adopt = pkgctl repo clone -m alerque 39 | version = pkgctl version check * 40 | repro = arch-repro-status -m alerque 41 | EOF 42 | # adopt = ${non_extants:+pkgctl repo clone $non_extants} ${non_extants:-:} 43 | 44 | list_maintained | 45 | while read pkgbase; do 46 | cat <<- EOF 47 | [$HOME/projects/archlinux/packages/$pkgbase] 48 | checkout = pkgctl repo clone $pkgbase 49 | pull = git pull 50 | update = git pull 51 | status = git status 52 | repro = arch-repro-status -n $pkgbase 53 | 54 | EOF 55 | done 56 | 57 | # vi: ft=zsh 58 | -------------------------------------------------------------------------------- /.config/mr/available.d/aur.mr: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | _aurdir="$HOME/projects/aur" 4 | 5 | function aur_list () { 6 | find "$_aurdir" -maxdepth 1 -type d | 7 | sed -e "s#^$_aurdir/##" 8 | } 9 | 10 | aur_list | 11 | while read pkg; do 12 | cat <<- EOF 13 | [$_aurdir/$pkg] 14 | log = aurpublish log $pkg 15 | checkout = false 16 | init = false 17 | update = false 18 | push = false 19 | publish = false 20 | vote = aurvote -v $pkg 21 | ood = 22 | eval \$(grep export ~/.private/aur-out-of-date.tokens) 23 | aur-out-of-date -local .SRCINFO ||: 24 | bump = 25 | git diff-index --quiet --cached HEAD 26 | git diff-files --quiet -- PKGBUILD .SRCINFO 27 | eval \$(grep export ~/.private/aur-out-of-date.tokens) 28 | upstream=\$(aur-out-of-date -json -local .SRCINFO | jq -M -e -r '.upstream') 29 | yes | aur-out-of-date -update -local .SRCINFO ||: 30 | updpkgsums 31 | makepkg --printsrcinfo > .SRCINFO 32 | git add PKGBUILD .SRCINFO 33 | git diff-index --quiet --cached HEAD || git commit -m "Bump pkgver to \$upstream" 34 | normalize = 35 | git rev-parse --abbrev-ref HEAD | grep -Fqx master 36 | git diff-index --quiet --cached HEAD 37 | git diff-files --quiet -- PKGBUILD 38 | shellharden --replace -- PKGBUILD 39 | git add PKGBUILD 40 | git diff-index --quiet --cached HEAD || git commit -m 'Normalize shell quoting using \`shellharden\`' 41 | makepkg --printsrcinfo > .SRCINFO 42 | git add .SRCINFO 43 | git diff-index --quiet --cached HEAD || git commit -m 'Normalize meta data using \`makepkg --printsrcinfo\`' 44 | echo '*' > .gitignore 45 | git add -f .gitignore 46 | git ls-files | sed -e 's#^#!./#' >> .gitignore 47 | git add .gitignore 48 | git diff-index --quiet --cached HEAD || git commit -m 'Normalize .gitignore file' 49 | EOF 50 | done 51 | 52 | # vi: ft=zsh 53 | -------------------------------------------------------------------------------- /.config/mr/available.d/que-sys-base.mr: -------------------------------------------------------------------------------- 1 | [$HOME/.config/vcsh/repo.d/que-mutt.git] 2 | order = 5 3 | checkout = vcsh clone git@github.com:alerque/que-mutt.git 4 | 5 | [$HOME/.config/vcsh/repo.d/que-secure.git] 6 | order = 2 7 | checkout = 8 | vcsh clone gitlab@gitlab.alerque.com:caleb/que-secure.git que-secure 9 | update = 10 | vcsh run "$MR_REPO" git pull "$@" 11 | fixups = 12 | chmod 700 ~/.gnupg{,/private-keys*} 13 | chmod 600 ~/.ssh/{config,authorized_keys} $(grep 'PRIVATE KEY' -Rl ~/.ssh) ~/.gnupg/private-keys*/* 14 | post_checkout = 15 | vcsh run "$MR_REPO" git config core.attributesfile .gitattributes.d/que-secure 16 | vcsh run "$MR_REPO" git crypt unlock 17 | 18 | [$HOME/.config/vcsh/repo.d/que-tmux.git] 19 | order = 5 20 | checkout = vcsh clone git@github.com:alerque/que-tmux.git 21 | 22 | [$HOME/.config/vcsh/repo.d/que-utils.git] 23 | order = 5 24 | checkout = vcsh clone git@github.com:alerque/que-utils.git 25 | 26 | [$HOME/.config/vcsh/repo.d/que-vim.git] 27 | order = 5 28 | checkout = 29 | vcsh clone git@github.com:alerque/que-vim.git 30 | cd $HOME 31 | nvim +PlugInstall +UpdateRemotePlugins +all +qa 32 | nvim -u NONE "+mkspell! $HOME/.config/nvim/spell/tr.utf-8.add" +qa 33 | nvim -u NONE "+mkspell! $HOME/.config/nvim/spell/en.utf-8.add" +qa 34 | update = 35 | vcsh run que-vim git pull 36 | rm -rf $HOME/.vim/bundle 37 | git pull 38 | cd $HOME 39 | nvim +PlugUpgrade +PlugClean! +PlugUpdate +UpdateRemotePlugins +all +qa 40 | nvim -u NONE "+mkspell! $HOME/.config/nvim/spell/tr.utf-8.add" +qa 41 | nvim -u NONE "+mkspell! $HOME/.config/nvim/spell/en.utf-8.add" +qa 42 | 43 | [$HOME/.config/vcsh/repo.d/que-weechat.git] 44 | order = 5 45 | checkout = vcsh clone git@github.com:alerque/que-weechat.git 46 | 47 | [$HOME/.config/vcsh/repo.d/que-zsh.git] 48 | order = 5 49 | checkout = vcsh clone git@github.com:alerque/que-zsh.git 50 | 51 | [$HOME/.zprezto] 52 | checkout = 53 | git clone --recursive git@github.com:alerque/prezto.git .zprezto 54 | cd .zprezto/modules 55 | git submodule init --remote 56 | update = 57 | git pull 58 | git submodule update --init --remote --recursive 59 | 60 | 61 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | que 2 | === 3 | 4 | Caleb Maclennan's personal computing environment, including but not limited to: 5 | 6 | * system initialization and configuration tools 7 | * home directory managment via 8 | * [myrepos][myrepos] for repositories 9 | * [vcsh][vcsh] for dotfiles 10 | * [git-annex][git-annex] for storing stuff™ 11 | * misc other scripts and paraphanalia 12 | 13 | system setup 14 | ------------ 15 | 16 | Requires: 17 | 18 | * bash, curl 19 | * working network connection 20 | * logged in as root 21 | 22 | Setup a fresh system from scratch (or update an existing one): 23 | 24 | bash <(curl -sfSL https://raw.github.com/alerque/que/master/bin/que-sys-bootstrap.bash) 25 | 26 | Optionally add `desktop` as an arugment to install base GUI package set. 27 | 28 | home setup 29 | ---------- 30 | 31 | Requires: 32 | 33 | * Dependencies installed from sys-bootstrap 34 | * Logged is as user with Zsh (`su - caleb`) 35 | 36 | Initialization on a fresh user directory: 37 | 38 | read -s "BOOTSTRAP_TOKEN?Bootstrap API Token: " 39 | export BOOTSTRAP_TOKEN 40 | zsh <(curl -sfSL https://raw.github.com/alerque/que/master/bin/que-home-bootstrap.zsh) 41 | 42 | Otherwise to update: 43 | 44 | mr up 45 | 46 | No really, that's all. 47 | 48 | usage 49 | ----- 50 | 51 | Adding a new repo 52 | 53 | 1. Create config file `.config/mr/available.d/$NAME.vcsh` 54 | 2. Create sylink `cd .config/mr/config.d; ln -s ../available.d/$NAME.vcsh` 55 | 3. Add config to que repo `vcsh run que git add -f .config/mr/available.d/$NAME.vcsh` 56 | 4. Init repo `vcsh init $NAME` 57 | 5. Setup ignores `vcsh write-gitignore $NAME` 58 | 6. Add something to get the repo off the ground `vcsh run $NAME git add -f ` 59 | 7. Commit so we actually have a repo`vcsh run $NAME git commit -m "initial commit"` 60 | 8. Optionally add an upstream `vcsh run $NAME git remote add origin $URL` 61 | 9. Optionally push to upstream `vcsh run $NAME git push -u origin master` 62 | 63 | After that, the usual `mr up`, `mr ci`, `mr push` etc should just work. 64 | 65 | [vcsh]: https://github.com/RichiH/vcsh 66 | [myrepos]: http://myrepos.branchable.com/ 67 | [git-annex]: https://git-annex.branchable.com/ 68 | -------------------------------------------------------------------------------- /.config/mr/available.d/fedora.mr: -------------------------------------------------------------------------------- 1 | [$HOME/projects/distro-packaging/fedora/alerque-libertinus-fonts] 2 | checkout = git clone ssh://caleb@pkgs.fedoraproject.org/rpms/alerque-libertinus-fonts.git 3 | 4 | [$HOME/projects/distro-packaging/fedora/lua-argparse] 5 | checkout = git clone ssh://caleb@pkgs.fedoraproject.org/rpms/lua-argparse.git 6 | 7 | [$HOME/projects/distro-packaging/fedora/lua-cassowary] 8 | checkout = git clone ssh://caleb@pkgs.fedoraproject.org/rpms/lua-cassowary.git 9 | 10 | [$HOME/projects/distro-packaging/fedora/lua-cldr] 11 | checkout = git clone ssh://caleb@pkgs.fedoraproject.org/rpms/lua-cldr.git 12 | 13 | [$HOME/projects/distro-packaging/fedora/lua-cliargs] 14 | checkout = git clone ssh://caleb@pkgs.fedoraproject.org/rpms/lua-cliargs.git 15 | 16 | [$HOME/projects/distro-packaging/fedora/lua-cosmo] 17 | checkout = git clone ssh://caleb@pkgs.fedoraproject.org/rpms/lua-cosmo.git 18 | 19 | [$HOME/projects/distro-packaging/fedora/lua-epnf] 20 | checkout = git clone ssh://caleb@pkgs.fedoraproject.org/rpms/lua-epnf.git 21 | 22 | [$HOME/projects/distro-packaging/fedora/lua-fluent] 23 | checkout = git clone ssh://caleb@pkgs.fedoraproject.org/rpms/lua-fluent.git 24 | 25 | [$HOME/projects/distro-packaging/fedora/lua-linenoise] 26 | checkout = git clone ssh://caleb@pkgs.fedoraproject.org/rpms/lua-linenoise.git 27 | 28 | [$HOME/projects/distro-packaging/fedora/lua-loadkit] 29 | checkout = git clone ssh://caleb@pkgs.fedoraproject.org/rpms/lua-loadkit.git 30 | 31 | [$HOME/projects/distro-packaging/fedora/lua-luarepl] 32 | checkout = git clone ssh://caleb@pkgs.fedoraproject.org/rpms/lua-luarepl.git 33 | 34 | [$HOME/projects/distro-packaging/fedora/lua-luautf8] 35 | checkout = git clone ssh://caleb@pkgs.fedoraproject.org/rpms/lua-luautf8.git 36 | 37 | [$HOME/projects/distro-packaging/fedora/lua-vstruct] 38 | checkout = git clone ssh://caleb@pkgs.fedoraproject.org/rpms/lua-vstruct.git 39 | 40 | [$HOME/projects/distro-packaging/fedora/lua-zlib] 41 | checkout = git clone ssh://caleb@pkgs.fedoraproject.org/rpms/lua-zlib.git 42 | 43 | [$HOME/projects/distro-packaging/fedora/source-foundry-hack-fonts] 44 | checkout = git clone ssh://caleb@pkgs.fedoraproject.org/rpms/source-foundry-hack-fonts.git 45 | 46 | -------------------------------------------------------------------------------- /.config/mr/available.d/theleagueof.mr: -------------------------------------------------------------------------------- 1 | [$HOME/projects/theleagueof/fontship] 2 | checkout = git clone git@github.com:theleagueof/fontship.git 3 | 4 | [$HOME/projects/theleagueof/blackout] 5 | checkout = git clone git@github.com:theleagueof/blackout.git 6 | 7 | [$HOME/projects/theleagueof/chunk] 8 | checkout = git clone git@github.com:theleagueof/chunk.git 9 | 10 | [$HOME/projects/theleagueof/fanwood] 11 | checkout = git clone git@github.com:theleagueof/fanwood.git 12 | 13 | [$HOME/projects/theleagueof/goudy-bookletter-1911] 14 | checkout = git clone git@github.com:theleagueof/goudy-bookletter-1911.git 15 | 16 | [$HOME/projects/theleagueof/junction] 17 | checkout = git clone git@github.com:theleagueof/junction.git 18 | 19 | [$HOME/projects/theleagueof/knewave] 20 | checkout = git clone git@github.com:theleagueof/knewave.git 21 | 22 | [$HOME/projects/theleagueof/league-gothic] 23 | checkout = git clone git@github.com:theleagueof/league-gothic.git 24 | 25 | [$HOME/projects/theleagueof/league-mono] 26 | checkout = git clone git@github.com:theleagueof/league-mono.git 27 | 28 | [$HOME/projects/theleagueof/league-script-number-one] 29 | checkout = git clone git@github.com:theleagueof/league-script-number-one.git 30 | 31 | [$HOME/projects/theleagueof/league-spartan] 32 | checkout = git clone git@github.com:theleagueof/league-spartan.git 33 | 34 | [$HOME/projects/theleagueof/linden-hill] 35 | checkout = git clone git@github.com:theleagueof/linden-hill.git 36 | 37 | [$HOME/projects/theleagueof/orbitron] 38 | checkout = git clone git@github.com:theleagueof/orbitron.git 39 | 40 | [$HOME/projects/theleagueof/ostrich-sans] 41 | checkout = git clone git@github.com:theleagueof/ostrich-sans.git 42 | 43 | [$HOME/projects/theleagueof/prociono] 44 | checkout = git clone git@github.com:theleagueof/prociono.git 45 | 46 | [$HOME/projects/theleagueof/raleway] 47 | checkout = git clone git@github.com:theleagueof/raleway.git 48 | 49 | [$HOME/projects/theleagueof/sniglet] 50 | checkout = git clone git@github.com:theleagueof/sniglet.git 51 | 52 | [$HOME/projects/theleagueof/sorts-mill-goudy] 53 | checkout = git clone git@github.com:theleagueof/sorts-mill-goudy.git 54 | 55 | [$HOME/projects/theleagueof/licenses] 56 | checkout = git clone git@github.com:theleagueof/licenses.git 57 | -------------------------------------------------------------------------------- /bin/pkg-list-linked-libraries: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Bugtracker helper utility from Scimmia 4 | # https://gist.github.com/Scimmia22/0fcca58fe0f7c2b5eb906fafc1f32a62 5 | 6 | source /usr/share/makepkg/util/message.sh 7 | colorize 8 | 9 | usage() { 10 | cat <<- _EOF_ 11 | Usage: pkg-list-linked-libraries [-s] PACKAGE [LIBNAME|SYMBOL] 12 | 13 | Check a package to see what libraries or symbols it links against. 14 | Alternatively check against a specific library. 15 | 16 | If PACKAGE is not an existing file, pacman will resolve it 17 | as a package name and attempt to download it to the cache. 18 | This respects repo/pkgname syntax. 19 | 20 | OPTIONS 21 | -s, --symbols Show symbols instead of libraries 22 | -h, --help Show this help text 23 | _EOF_ 24 | } 25 | 26 | checklibs() { 27 | msg "checking linked libraries for ${pkgfile##*/} ..." 28 | while read -rd '' file; do 29 | liblist="$(objdump -p "$file" 2> /dev/null | grep -E "NEEDED\s+$1")" 30 | [[ -n "$liblist" ]] && printf "%s\n%s\n" "${file#$workdir}" "$liblist" && found=1 31 | done 32 | [[ $found ]] 33 | } 34 | 35 | checksyms() { 36 | msg "checking linked symbols for ${pkgfile##*/} ..." 37 | while read -rd '' file; do 38 | liblist="$(nm --with-symbol-versions -D "$file" 2>/dev/null | awk 'NF>1 && $NF ~ /'"$1"'/{printf "\t%s\n",$NF}')" 39 | [[ -n "$liblist" ]] && printf "%s\n%s\n" "${file#$workdir}" "$liblist" && found=1 40 | done 41 | [[ $found ]] 42 | } 43 | 44 | die() { 45 | error "$@" 46 | exit 1 47 | } 48 | 49 | clean_up() { 50 | if [[ -d "$workdir" ]]; then 51 | rm -rf "$workdir" 52 | fi 53 | } 54 | trap 'clean_up' EXIT 55 | 56 | func=checklibs 57 | 58 | case $1 in 59 | -s|--symbols) 60 | func=checksyms 61 | shift 62 | ;; 63 | -h|--help) 64 | usage 65 | exit 66 | ;; 67 | esac 68 | 69 | if [[ -f "$1" ]]; then 70 | pkgfile="$1" 71 | else 72 | pkgfile_remote="$(pacman -Sddp "$1" 2>/dev/null)" || die "package name not in repos" 73 | pkgfile="${pkgfile_remote#file://}" 74 | if [[ ! -f "$pkgfile" ]]; then 75 | msg "Downloading package '%s' into pacman's cache" "$1" 76 | sudo pacman -Swdd --logfile /dev/null "$1" || exit 1 77 | pkgfile_remote="$(pacman -Sddp "$1" 2>/dev/null)" 78 | pkgfile="${pkgfile_remote#file://}" 79 | fi 80 | fi 81 | 82 | workdir="$(mktemp -d)" 83 | bsdtar xf "$pkgfile" -C "$workdir" 84 | find "$workdir" -type f -print0 | sort -z | $func "$2" 85 | 86 | (( $? == 0 )) && exit 0 87 | 88 | if [[ -n $2 ]]; then 89 | error "No file in %s is linked to %s" "${pkgfile##*/}" "$2" 90 | else 91 | error "Uhhh... nothing in %s links to anything whatsoever..." "${pkgfile##*/}" 92 | fi 93 | exit 1 94 | -------------------------------------------------------------------------------- /.config/mr/available.d/vim-plugins.mr: -------------------------------------------------------------------------------- 1 | [$HOME/projects/vim-plugins/nerdtree] 2 | checkout = git clone git@github.com:preservim/nerdtree.git 3 | 4 | [$HOME/projects/vim-plugins/nerdcommenter] 5 | checkout = git clone git@github.com:preservim/nerdcommenter.git 6 | 7 | [$HOME/projects/vim-plugins/tagbar] 8 | checkout = git clone git@github.com:preservim/tagbar.git 9 | 10 | [$HOME/projects/vim-plugins/vimux] 11 | checkout = git clone git@github.com:preservim/vimux.git 12 | 13 | [$HOME/projects/vim-plugins/vim-sile] 14 | checkout = git clone git@github.com:sile-typesetter/vim-sile.git 15 | 16 | [$HOME/projects/vim-plugins/vim-ledger] 17 | checkout = git clone git@github.com:ledger/vim-ledger.git 18 | 19 | [$HOME/projects/vim-plugins/vim-snakemake] 20 | checkout = git clone git@github.com:ibab/vim-snakemake.git 21 | 22 | [$HOME/projects/vim-plugins/vim-commonmark] 23 | checkout = git clone git@github.com:alerque/vim-commonmark.git 24 | 25 | [$HOME/projects/vim-plugins/vim-pandoc] 26 | checkout = git clone git@github.com:vim-pandoc/vim-pandoc.git 27 | 28 | [$HOME/projects/vim-plugins/vim-pandoc-syntax] 29 | checkout = git clone git@github.com:vim-pandoc/vim-pandoc-syntax.git 30 | 31 | [$HOME/projects/vim-plugins/vim-pandoc-after] 32 | checkout = git clone git@github.com:vim-pandoc/vim-pandoc-after.git 33 | 34 | [$HOME/projects/vim-plugins/vim-criticmarkup] 35 | checkout = git clone git@github.com:vim-pandoc/vim-criticmarkup.git 36 | 37 | [$HOME/projects/vim-plugins/vim-rmarkdown] 38 | checkout = git clone git@github.com:vim-pandoc/vim-rmarkdown.git 39 | 40 | [$HOME/projects/vim-plugins/vim-markdownfootnotes] 41 | checkout = git clone git@github.com:vim-pandoc/vim-markdownfootnotes.git 42 | 43 | [$HOME/projects/vim-plugins/vim-colors-pencil] 44 | checkout = git clone git@github.com:reedes/vim-colors-pencil.git 45 | 46 | [$HOME/projects/vim-plugins/vim-textobj-sentence] 47 | checkout = git clone git@github.com:reedes/vim-textobj-sentence.git 48 | 49 | [$HOME/projects/vim-plugins/vim-litecorrect] 50 | checkout = git clone git@github.com:reedes/vim-litecorrect.git 51 | 52 | [$HOME/projects/vim-plugins/vim-wheel] 53 | checkout = git clone git@github.com:reedes/vim-wheel.git 54 | 55 | [$HOME/projects/vim-plugins/vim-wordchipper] 56 | checkout = git clone git@github.com:reedes/vim-wordchipper.git 57 | 58 | [$HOME/projects/vim-plugins/vim-pencil] 59 | checkout = git clone git@github.com:reedes/vim-pencil.git 60 | 61 | [$HOME/projects/vim-plugins/vim-lexical] 62 | checkout = git clone git@github.com:reedes/vim-lexical.git 63 | 64 | [$HOME/projects/vim-plugins/vim-thematic] 65 | checkout = git clone git@github.com:reedes/vim-thematic.git 66 | 67 | [$HOME/projects/vim-plugins/vim-textobj-quote] 68 | checkout = git clone git@github.com:reedes/vim-textobj-quote.git 69 | 70 | [$HOME/projects/vim-plugins/vim-wordy] 71 | checkout = git clone git@github.com:reedes/vim-wordy.git 72 | -------------------------------------------------------------------------------- /.config/tig/molokai-like-theme.tigrc: -------------------------------------------------------------------------------- 1 | # General colors 2 | color default 253 233 3 | color cursor default 237 4 | color status 250 235 5 | color title-focus default 238 6 | color title-blur default 238 7 | color delimiter 241 default 8 | color header 186 236 bold 9 | color section 186 default 10 | color line-number 102 235 11 | color id 208 default 12 | color date 67 default 13 | color author 135 default 14 | color mode 166 default 15 | color overflow 241 default 16 | color directory 69 default 17 | color file default default 18 | color file-size default default 19 | color grep.file 166 234 20 | 21 | # Main view colors 22 | color graph-commit 161 default 23 | color main-head 144 default bold 24 | color main-remote 81 default 25 | color main-tracked 222 default 26 | color main-tag 197 default 27 | color main-local-tag 161 default 28 | color main-ref 144 default 29 | 30 | # Palette colors 31 | color palette-0 239 default 32 | color palette-1 242 default 33 | color palette-2 245 default 34 | color palette-3 248 default 35 | color palette-4 237 default 36 | color palette-5 240 default 37 | color palette-6 243 default 38 | color palette-7 246 default 39 | color palette-8 249 default 40 | color palette-9 238 default 41 | color palette-10 241 default 42 | color palette-11 244 default 43 | color palette-12 247 default 44 | color palette-13 236 default 45 | 46 | # Status view colors 47 | color status.header 186 236 bold 48 | color status.section 186 default 49 | color stat-staged green default 50 | color stat-unstaged red default 51 | color stat-untracked red default 52 | 53 | # Help view colors 54 | color help.header 186 236 bold 55 | color help.section 186 default 56 | color help-group 69 default 57 | color help-action 166 default 58 | 59 | # Diff view colors 60 | color "commit " 208 234 61 | color "Refs: " 197 234 62 | color "Author: " 135 default 63 | color "AuthorDate: " 67 default 64 | color "Commit: " 141 default 65 | color "CommitDate: " 67 default 66 | color "Merge: " 161 default 67 | color "---" 67 default 68 | color diff-index 67 default 69 | color diff-stat 166 234 70 | color diff-add-highlight 10 22 71 | color diff-del-highlight 9 52 72 | 73 | # Signature colors 74 | color "gpg: " 23 default 75 | color "Primary key fingerprint: " 23 default 76 | -------------------------------------------------------------------------------- /bin/que-home-bootstrap.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | : ${STRAP_URL:=https://raw.github.com/alerque/que/master} 4 | 5 | function fail () { 6 | echo "$@" >&2 7 | exit 1 8 | } 9 | 10 | function fail_deps () { 11 | fail "$1\n\nRun que-sys-bootstrap.bash as root instead.\n\nbash <(curl -sfSL $STRAP_URL/bin/que-sys-bootstrap.bash)" 12 | } 13 | 14 | function vcsh_get () { 15 | test -d .config/vcsh/repo.d/$1.git && 16 | vcsh $1 pull || 17 | case $2 in 18 | gitlab) 19 | vcsh clone gitlab@gitlab.alerque.com:caleb/$1.git $1 20 | ;; 21 | github|*) 22 | vcsh clone git@github.com:alerque/$1.git $1 23 | ;; 24 | esac 25 | } 26 | 27 | function auth () { 28 | eval $(keychain --ignore-missing --ssh-allow-forwarded --eval --systemd --quiet id_rsa 63CC496475267693) 29 | } 30 | 31 | # Error out of script if _anything_ goes wrong 32 | set -e 33 | 34 | # This is meant to be a user space utility, bail if we are root 35 | test $UID -eq 0 && fail "Don't be root!" 36 | cd $HOME 37 | 38 | # If we don't have these tools, we should be running que-sys-bootstrap.bash instead 39 | whence -p curl git gpg-agent keychain mr ssh-agent vcsh > /dev/null || fail_deps "Some tools not available" 40 | 41 | grep -q 'hook pre-merge' $(which vcsh) || 42 | fail "VCSH version too old, does not have required pre-merge hook system" 43 | 44 | export GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" 45 | 46 | # If everything isn't just right with SSH keys and config for the next step, manually fetch them 47 | if ! grep -q 'PRIVATE KEY' ~/.ssh/id_rsa; then 48 | until [[ -v BOOTSTRAP_TOKEN ]]; do 49 | read -s 'REPLY?Gitlab Private-Token: ' 50 | [[ -n "$REPLY" ]] && BOOTSTRAP_TOKEN="$REPLY" 51 | done 52 | mkdir -p -m700 ~/.ssh 53 | (umask 177 54 | curl -sfSL -H "Private-Token: $BOOTSTRAP_TOKEN" \ 55 | -o .ssh/id_rsa 'https://gitlab.alerque.com/api/v4/projects/37/repository/files/.ssh%2Fid_rsa/raw?ref=master' \ 56 | -o .ssh/id_rsa.pub 'https://gitlab.alerque.com/api/v4/projects/37/repository/files/.ssh%2Fid_rsa.pub/raw?ref=master' 57 | ) 58 | grep -q 'PRIVATE KEY' ~/.ssh/id_rsa || 59 | fail "Invalid creds, got garbage files, fix /tmp/id_rsa or remove and try again" 60 | fi 61 | 62 | auth 63 | 64 | # Rename repository if it exists under old name 65 | test -d .config/vcsh/repo.d/caleb-private.git && ( 66 | mv .config/vcsh/repo.d/{caleb-private,que-secure}.git 67 | mv .gitattributes.d/{caleb-private,que-secure} ||: 68 | mv .gitignores.d/{caleb-private,que-secure} ||: 69 | sed -i -e 's/caleb-private/que-secure/g' .config/vcsh/repo.d/que-secure.git/config ||: 70 | ) ||: 71 | 72 | # For the sake of un-updated que repos, get hooks to handle existing files 73 | mkdir -p .config/vcsh/hooks-enabled 74 | test -f .config/vcsh/hooks-enabled/pre-merge-unclobber || 75 | curl -sfSLo {,$STRAP_URL/}.config/vcsh/hooks-enabled/pre-merge-unclobber 76 | test -f .config/vcsh/hooks-enabled/post-merge-unclobber || 77 | curl -sfSLo {,$STRAP_URL/}.config/vcsh/hooks-enabled/post-merge-unclobber 78 | chmod +x .config/vcsh/hooks-enabled/{pre,post}-merge-unclobber 79 | 80 | # Get repo that has GPG unlock stuff 81 | vcsh_get que-secure gitlab 82 | vcsh run que-secure git config core.attributesfile .gitattributes.d/que-secure 83 | chmod 644 ~/.ssh/*.pub 84 | chmod 700 ~/.ssh ~/.gnupg{,/private-keys*/} 85 | chmod 600 ~/.ssh/{config,authorized_keys} 86 | echo 87 | echo "scp .gnupg/private-keys-v1.d/{02CEA3B5FBD0521F3944535624C6670544B15F69,765C5CFB48FBC1E9038E9BCDA7916E241E9835FE}.key $HOSTNAME:.gnupg/private-keys-v1.d/" 88 | echo 89 | read -n "foo?Copy keys from somewhere to this machine, enter to continue when ready" 90 | chmod 600 $(grep 'PRIVATE KEY' -Rl ~/.ssh) ~/.gnupg/private-keys*/* 91 | 92 | eval $(~/bin/que-auth.zsh) 93 | 94 | vcsh run que-secure git stash 95 | vcsh run que-secure git-crypt unlock 96 | 97 | # TODO: Test in que-secure actually got unlocked 98 | 99 | # TODO: Fix find in AUR repo dir before it exists 100 | 101 | # Get repo that has mr configs 102 | vcsh_get que 103 | 104 | # Setup permanent agent(s) 105 | auth 106 | 107 | # checkout everything else 108 | mr co 109 | -------------------------------------------------------------------------------- /bin/git-sync: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Usage: git sync 3 | # 4 | # Fetches new objects from origin remote named either "upstream" or "origin", 5 | # then iterates over each local branch that corresponds to a remote branch and: 6 | # 7 | # - If the local branch is outdated, fast-forward it; 8 | # - If the local branch contains unpushed work, warn about it; 9 | # - If the branch seems merged and its upstream branch was deleted, delete it. 10 | # 11 | # If a local branch doesn't have any upstream configuration, but has a 12 | # same-named branch on the remote, assume that's its upstream branch. 13 | set -e 14 | 15 | while [ $# -gt 0 ]; do 16 | case "$1" in 17 | -h | --help ) 18 | sed -ne '/^#/!q;s/.\{1,2\}//;1d;p' < "$0" 19 | exit 0 20 | ;; 21 | * ) 22 | "$0" --help >&2 23 | exit 1 24 | ;; 25 | esac 26 | shift 1 27 | done 28 | 29 | GIT_DIR="$(git rev-parse --git-dir)" 30 | 31 | if [ -e "${GIT_DIR}/refs/remotes/upstream" ]; then 32 | ORIGIN="upstream" 33 | else 34 | ORIGIN="origin" 35 | fi 36 | 37 | if [ -t 1 ]; then 38 | RED=$'\e[31m' 39 | LIGHT_RED=$'\e[31;1m' 40 | GREEN=$'\e[32m' 41 | LIGHT_GREEN=$'\e[32;1m' 42 | RESET=$'\e[0m' 43 | else 44 | RED="" 45 | LIGHT_RED="" 46 | GREEN="" 47 | LIGHT_GREEN="" 48 | RESET="" 49 | fi 50 | 51 | main_branch() { 52 | local remote="$1" 53 | local head="$(cat "${GIT_DIR}/refs/remotes/${remote}/HEAD" 2>/dev/null)" 54 | if [[ $head == "ref: "* ]]; then 55 | echo "${head#ref: refs/remotes/${remote}/}" 56 | else 57 | return 1 58 | fi 59 | } 60 | 61 | has_upstream_configuration() { 62 | local branch="$1" 63 | local remote="$(git config "branch.${branch}.remote")" 64 | [ "$remote" = "$ORIGIN" ] || return 1 65 | } 66 | 67 | upstream_branch() { 68 | local branch="$1" 69 | local resolved="" 70 | if resolved="$(git rev-parse --symbolic-full-name "${branch}@{upstream}" 2>/dev/null)"; then 71 | echo "$resolved" 72 | else 73 | return 1 74 | fi 75 | } 76 | 77 | is_ancestor() { 78 | git merge-base --is-ancestor "$@" 79 | } 80 | 81 | git fetch "$ORIGIN" --prune --quiet --progress 82 | 83 | MASTER="$(main_branch "$ORIGIN")" || MASTER="master" 84 | CURRENT_BRANCH="$(git symbolic-ref --short --quiet HEAD || true)" 85 | 86 | git branch --list | \ 87 | while read -r local_branch; do 88 | local_branch="${local_branch#* }" 89 | remote_branch="refs/remotes/${ORIGIN}/${local_branch}" 90 | gone="" 91 | 92 | if has_upstream_configuration "$local_branch"; then 93 | remote_branch="$(upstream_branch "$local_branch")" || gone=1 94 | elif [ ! -e "${GIT_DIR}/${remote_branch}" ]; then 95 | remote_branch="" 96 | fi 97 | 98 | if [ -n "$remote_branch" ]; then 99 | shas=( `git rev-parse "$local_branch" "$remote_branch"` ) 100 | local_sha="${shas[0]}" 101 | remote_sha="${shas[1]}" 102 | 103 | if [ "$local_sha" = "$remote_sha" ]; then 104 | : # branch is up to date. 105 | elif is_ancestor "$local_branch" "$remote_branch"; then 106 | # Local branch is behind 107 | if [ "$local_branch" = "$CURRENT_BRANCH" ]; then 108 | git merge --ff-only --quiet "$remote_branch" 109 | else 110 | git update-ref "refs/heads/${local_branch}" "$remote_branch" 111 | fi 112 | echo "${GREEN}Updated branch ${LIGHT_GREEN}${local_branch}${RESET} (was ${local_sha:0:7})." 113 | else 114 | # Local branch is ahead or diverged. 115 | # TODO: Decide whether to try clean merge check + rebase here. 116 | echo "warning: \`$local_branch' seems to contain unpushed commits" >&2 117 | fi 118 | elif [ -n "$gone" ]; then 119 | # Upstream branch got deleted 120 | if is_ancestor "$local_branch" "${ORIGIN}/${MASTER}"; then 121 | if [ "$local_branch" = "$CURRENT_BRANCH" ]; then 122 | git checkout --quiet "$MASTER" 123 | CURRENT_BRANCH="$MASTER" 124 | fi 125 | local_sha="$(git rev-parse "$local_branch")" 126 | git branch -D "$local_branch" >/dev/null 127 | echo "${RED}Deleted branch ${LIGHT_RED}${local_branch}${RESET} (was ${local_sha:0:7})." 128 | else 129 | echo "warning: \`$local_branch' was deleted on $ORIGIN, but appears not merged into $MASTER" >&2 130 | fi 131 | fi 132 | done 133 | -------------------------------------------------------------------------------- /bin/que-sys-init-arch.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo -e 'en_US.UTF-8 UTF-8\nru_RU.UTF-8 UTF-8\ntr_TR.UTF-8 UTF-8' > /etc/locale.gen 4 | localectl list-locales | grep -vq -e US -e TR -e RU && locale-gen 5 | localectl set-locale en_US.UTF-8 6 | 7 | # For those rare systems that don't have sudo already at this point (e.g. alarm images) 8 | mkdir -p /etc/sudoers.d/ 9 | 10 | # Key systemd from locking us out when sudo prompts time out 11 | # See https://bugs.archlinux.org/index.php?do=details&task_id=67644 12 | sed -i -e '/^\(# \)\?deny = [[:digit:]]\+$/s!.*!deny = 0!' /etc/security/faillock.conf 13 | 14 | # Enable sudo access to wheel group 15 | echo -e '%wheel ALL=(ALL) ALL' > /etc/sudoers.d/70-wheel 16 | 17 | # Setup my prefered sudo user settings 18 | echo -e 'Defaults:caleb timestamp_timeout=90,passwd_timeout=0,!tty_tickets,insults,!requiretty,passwd_tries=5,env_keep+="TMUX"' > /etc/sudoers.d/99-caleb 19 | 20 | # Setup special priviledged user for compiling AUR packages 21 | useradd -r -m -U -G wheel -k /dev/null que-bootstrap ||: 22 | echo -e 'Defaults:que-bootstrap !authenticate' > /etc/sudoers.d/99-que-bootstrap 23 | 24 | chmod 600 /etc/sudoers.d/* 25 | 26 | # Cleanup old way of adding bootstrap priviledges 27 | grep -q que-bootstrap /etc/sudoers && sed -i -e '/^que-bootstrap/d' /etc/sudoers ||: 28 | 29 | # If run in debug mode prefix anything that changes the system with a debug function 30 | is_opt $ISDEBUG && DEBUG='debug' 31 | function debug () { 32 | echo DEBUG: "$@" 33 | } 34 | 35 | # Update mirror list reflector installed but never run 36 | function update_mirrors () { 37 | command -v reflector && { 38 | grep -q reflector /etc/pacman.d/mirrorlist || 39 | reflector --verbose --protocol https --score 50 --fastest 25 --latest 10 --save /etc/pacman.d/mirrorlist 40 | } 41 | } 42 | 43 | # Setup systemctl argument to start services if not in chroot 44 | [[ "$(stat -c %d:%i /)" != "$(stat -c %d:%i /proc/1/root/.)" ]] || export NOW="--now" 45 | 46 | # Make sure we're off on the right foot before we get to adding keys 47 | $DEBUG pacman --needed --noconfirm -S haveged 48 | $DEBUG systemctl $NOW enable haveged 49 | 50 | # If system has old GPG keys clear them before signing new ones... 51 | # rm -rf /etc/pacman.d/gnupg 52 | $DEBUG pacman-key --init 53 | $DEBUG pacman-key --populate archlinux$(grep -q ARM /etc/os-release && echo arm) 54 | 55 | $DEBUG update_mirrors ||: 56 | 57 | # Add my own Arch package repository, after community 58 | $DEBUG pacman-key --keyserver keyserver.ubuntu.com --recv-keys 63CC496475267693 59 | $DEBUG pacman-key --lsign-key 63CC496475267693 60 | $DEBUG grep -q alerque /etc/pacman.conf || 61 | sed -i -e '/^\[extra\]$/{n;n;s!^!\n\[alerque\]\nServer = https://arch.alerque.com/$arch\n!}' /etc/pacman.conf 62 | 63 | # Freshen everything up 64 | $DEBUG pacman --needed --noconfirm -Syu 65 | 66 | # Remove anything that needs cleaning up first 67 | $DEBUG pacman --noconfirm -Rns ${REMOVEPACKAGES[@]} $(pacman -Qtdq) ||: 68 | 69 | # Kill off archlinuxfr repository, formerly used to install yaourt 70 | grep archlinuxfr /etc/pacman.conf && ( 71 | $DEBUG sed -i -e '/\[archlinuxfr\]/,/^$/{d;//b' -e '/./d;}' /etc/pacman.conf 72 | ) 73 | 74 | # Save time parsing AUR packages by only installing, not updating them. We 75 | # already freshed all repositoy packages before starting, freshening AUR 76 | # packages can be left as an excercise for the reader. 77 | PACKAGESTOINSTALL=(base $(echo ${BASEPACKAGES[*]} | tr ' ' '\n' | grep -xvhE "($(echo -n $(pacman -Qqe) | tr ' ' '|'))")) 78 | 79 | # Install everything not already installed that can come from repositories 80 | pacman -Ssq | 81 | grep -xvf <(pacman -Qsq) | 82 | grep -xho -E "($(IFS='|' eval 'echo "${PACKAGESTOINSTALL[*]}"'))" | 83 | $DEBUG xargs pacman --needed --noconfirm -S ||: 84 | 85 | # Compile and install things not coming out of the distro main tree 86 | $DEBUG su que-bootstrap -c "paru --needed --noconfirm -S ${PACKAGESTOINSTALL[*]}" ||: 87 | 88 | # TODO: Need to set root login and password auth options 89 | $DEBUG systemctl $NOW enable sshd cronie systemd-timesyncd 90 | 91 | echo 'kernel.sysrq = 1' > /etc/sysctl.d/99-sysctl.conf 92 | 93 | if is_opt $ISDESKTOP; then 94 | # $DEBUG pacman -S --needed --noconfirm xf86-video-nouveau nouveau-dri 95 | $DEBUG systemctl is-active gdm || systemctl enable greetd 96 | $DEBUG systemctl $NOW enable cups 97 | $DEBUG rm -f /etc/fonts/conf.d/75-{emojione,joypixels}.conf 98 | fi 99 | 100 | if is_opt $ISEC2; then 101 | $DEBUG remote_source que-sys-config-ec2.bash 102 | $DEBUG hostnamectl set-hostname $HOSTNAME.alerque.com 103 | fi 104 | 105 | if is_opt $ISVBOX; then 106 | $DEBUG pacman --needed --noconfirm -S virtualbox-guest-utils 107 | echo -e 'vboxguest\nvboxsf\nvboxvideo' > /etc/modules-load.d/virtualbox.conf 108 | $DEBUG systemctl $NOW enable vboxservice 109 | # $DEBUG pacman --needed --noconfirm -S xf86-video-vbox 110 | fi 111 | 112 | # Setup etckeeper 113 | sed -i -e 's/^HIGHLEVEL_PACKAGE_MANAGER=.*$/HIGHLEVEL_PACKAGE_MANAGER=paru/g' /etc/etckeeper/etckeeper.conf 114 | 115 | update_mirrors 116 | 117 | # Force nameserver and domain 118 | echo -e 'nameserver 1.1.1.1\nsearch alerque.com' > /etc/resolv.conf 119 | 120 | if is_opt $ISCALEB; then 121 | localectl list-keymaps | grep -q dvorak-programmer && localectl --no-convert set-keymap dvorak-programmer ||: 122 | fi 123 | -------------------------------------------------------------------------------- /.config/git/config: -------------------------------------------------------------------------------- 1 | [core] 2 | excludesFile = ~/.gitignore 3 | quotePath = off 4 | packedGitLimit = 512m 5 | packedGitWindowSize = 512m 6 | [pack] 7 | deltaCacheSize = 2047m 8 | packSizeLimit = 2047m 9 | windowMemory = 2047m 10 | [checkout] 11 | defaultRemote = origin 12 | workers = -1 13 | [interactive] 14 | diffFilter = delta --color-only 15 | [user] 16 | email = caleb@alerque.com 17 | name = Caleb Maclennan 18 | signingKey = B538286DE04ECFE5! 19 | [github] 20 | user = alerque 21 | [pld] 22 | user = caleb@pld-linux.org 23 | [pager] 24 | diff = delta 25 | log = delta 26 | reflog = delta 27 | show = delta 28 | [push] 29 | default = current 30 | autoSetupRemote = true 31 | followTags = false 32 | gpgSign = if-asked 33 | recurseSubmodules = check 34 | [color] 35 | ui = true 36 | [merge] 37 | ff = false 38 | conflictStyle = diff3 39 | [merge "mergiraf"] 40 | name = mergiraf 41 | driver = mergiraf merge --git %O %A %B -s %S -x %X -y %Y -p %P -l %L 42 | [branch] 43 | autoSetupRebase = always 44 | rebase = merges 45 | [pull] 46 | rebase = merges 47 | [apply] 48 | ;whitespace = fix 49 | [rebase] 50 | autoSquash = true 51 | autoStash = true 52 | merges = true 53 | stat = true 54 | [revise] 55 | autoSquash = true 56 | [commit] 57 | gpgsign = true 58 | [format] 59 | signoff = true 60 | [alias] 61 | a = add 62 | ab = absorb 63 | abr = absorb --and-rebase 64 | af = autofixup 65 | ap = add --patch 66 | au = add --update 67 | b = branch 68 | bx = branch --delete 69 | bX = branch --delete --force 70 | c = commit 71 | ca = commit --amend --no-edit 72 | ce = commit --amend 73 | cm = commit --message 74 | co = checkout 75 | cb = checkout -b 76 | cp = cherry-pick 77 | cpa = cherry-pick --abort 78 | d = diff 79 | db = !zsh -c 'git diff "$(git merge-base --fork-point "${0:-master}")"' 80 | dc = diff --word-diff-regex=. --ignore-all-space 81 | diff = diff --minimal --word-diff=color 82 | ds = diff --staged 83 | dsc = diff --word-diff-regex=. --ignore-all-space --staged 84 | dsw = diff --ignore-all-space --staged 85 | dw = diff --ignore-all-space 86 | diff-svg = "difftool -t lukaj -y" 87 | fa = fetch --all 88 | fr = pull --rebase 89 | g = log --all --graph --decorate --oneline 90 | gr = graph --model simple 91 | l = log 92 | lf = ls-files 93 | m = merge 94 | ma = merge --abort 95 | mc = merge --continue 96 | p = push 97 | pc = !zsh -c 'git push --set-upstream origin "$(git-branch-current 2> /dev/null)"' 98 | pf = push --force-with-lease 99 | r = rebase 100 | re = revise 101 | rec = revise --cut 102 | ree = revise --edit 103 | rei = revise --interactive 104 | ra = rebase --abort 105 | rc = rebase --continue 106 | ri = rebase --interactive 107 | rin = rebase --interactive --no-autosquash 108 | rs = rebase --skip 109 | s = show 110 | sc = show --ignore-all-space --word-diff-regex=. 111 | show = show --word-diff=color 112 | st = !datalad -C ${GIT_PREFIX:-.} next-status -r mono 113 | sw = show --ignore-all-space 114 | ws = status --ignore-submodules --short 115 | ; work = checkout @{upstream} 116 | ; aa = a -A 117 | ; commit = commit -vv 118 | ; dls = diff-tree --no-commit-id --name-status -r 119 | ; prs = pull --rebase --autostash 120 | ; lg = log --oneline --reverse 121 | ; p = push 122 | ; pf = p --force-with-lease 123 | ; r = rebase 124 | ; rc = rebase --continue 125 | ; ri = rebase --interactive 126 | ; show = show --minimal --word-diff=color 127 | ; st = status 128 | ; getroot = !pwd 129 | ; # http://stackoverflow.com/a/4991675/313192 130 | ; oldest-ancestor = !zsh -c 'diff --old-line-format='' --new-line-format='' <(git rev-list --first-parent "${1:-master}") <(git rev-list --first-parent "${2:-HEAD}") | head -1' - 131 | ; branchlog = !sh -c 'git log $(git oldest-ancestor)..' 132 | ; branchdiff = !sh -c 'git diff $(git oldest-ancestor)..' 133 | ; ; rebase2fork = !zsh -c 'git rebase -i $(git merge-base --fork-point "${0:-master}")' 134 | ; ci-status = !sh -c 'oldest=$(git oldest-ancestor) head=$(git rev-parse HEAD) && git rev-list --oneline $([[ $oldest == $head ]] && echo $head^.. || echo $oldest..) | while read sha x\n do echo $sha $(hub ci-status -v $sha)\n done' 135 | ; conflicts = diff --name-only --diff-filter=U 136 | ; commit-scopes = !zsh -c 'git log --pretty=format:"%s" | rg --pcre2 "^\\\\p{Ll}\\+\\\\\\(\\(\\\\p{Ll}\\+\\)\\\\\\)!\\?:" -or "\\$1" | sort | uniq -c | sort -n' 137 | [log] 138 | abbrevCommit = true 139 | decorate = true 140 | follow = true 141 | [status] 142 | short = true 143 | submoduleSummary = true 144 | [rerere] 145 | enabled = true 146 | [diff] 147 | indentHeuristic = true 148 | ignoreSubmodules = dirty 149 | colorMoved = zebra 150 | colorMovedWS = ignore-all-space 151 | [diff "fdiff"] 152 | command = fdiff -c --git 153 | [difftool] 154 | prompt = false 155 | [difftool "difftastic"] 156 | cmd = difft "$LOCAL" "$REMOTE" 157 | [difftool "latexdiff"] 158 | cmd = latexdiff "$LOCAL" "$REMOTE" 159 | [difftool "ufodiff"] 160 | cmd = ufodiff "$LOCAL" "$REMOTE" 161 | [difftool "lukaj"] 162 | cmd = lukaj "$LOCAL" "$REMOTE" 163 | [fetch] 164 | prune = true 165 | parallel = 8 166 | fsckobjects = true 167 | [stash] 168 | showPatch = true 169 | [transfer] 170 | fsckObjects = true 171 | [receive] 172 | fsckObjects = true 173 | [filter "lfs"] 174 | ; clean = git-lfs clean -- %f 175 | ; smudge = git-lfs smudge -- %f 176 | required = true 177 | clean = git-lfs clean -- %f 178 | smudge = git-lfs smudge -- %f 179 | process = git-lfs filter-process 180 | [filter "localssh"] 181 | smudge = cat 182 | clean = "sed -ne '/BEGIN host local/{p;n;q};p'" 183 | required = false 184 | [color "diff"] 185 | meta = yellow 186 | commit = yellow 187 | frag = magenta 188 | old = red 189 | new = green 190 | whitespace = red reverse 191 | [color "diff-highlight"] 192 | oldNormal = red 193 | oldHighlight = "red 52" 194 | newNormal = "green" 195 | newHighlight = "green 22" 196 | [color "branch"] 197 | current = yellow reverse 198 | local = yellow 199 | remote = blue 200 | [color "status"] 201 | added = green 202 | changed = yellow 203 | untracked = cyan 204 | [includeIf "gitdir:~/projects/**"] 205 | path = ~/.private/gitlab.config 206 | [advice] 207 | detachedHead = false 208 | [delta] 209 | ; features = line-numbers decorations 210 | features = side-by-side line-numbers decorations 211 | ; features = side-by-side line-numbers decorations line-wrap 212 | hunk-header-style = file line-number syntax 213 | whitespace-error-style = 22 reverse 214 | wrap-max-lines = unlimited 215 | syntax-theme = Monokai Extended 216 | max-line-length = 0 217 | [delta "decorations"] 218 | commit-decoration-style = bold yellow box ul 219 | file-style = bold yellow ul 220 | file-decoration-style = none 221 | [init] 222 | defaultBranch = master 223 | [gc] 224 | rerereUnresolved = 30d 225 | rerereResolved = 365d 226 | [blame] 227 | ; ignoreRevsFile = .git-blame-ignore-revs 228 | markIgnoredLines = true 229 | markUnblamableLines = true 230 | [http] 231 | postBuffer = 157286400 232 | -------------------------------------------------------------------------------- /.gnupg/gpg.conf: -------------------------------------------------------------------------------- 1 | # Options for GnuPG 2 | # Copyright 1998, 1999, 2000, 2001, 2002, 2003, 3 | # 2010 Free Software Foundation, Inc. 4 | # 5 | # This file is free software; as a special exception the author gives 6 | # unlimited permission to copy and/or distribute it, with or without 7 | # modifications, as long as this notice is preserved. 8 | # 9 | # This file is distributed in the hope that it will be useful, but 10 | # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the 11 | # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 | # 13 | # Unless you specify which option file to use (with the command line 14 | # option "--options filename"), GnuPG uses the file ~/.gnupg/gpg.conf 15 | # by default. 16 | # 17 | # An options file can contain any long options which are available in 18 | # GnuPG. If the first non white space character of a line is a '#', 19 | # this line is ignored. Empty lines are also ignored. 20 | # 21 | # See the man page for a list of options. 22 | 23 | # Uncomment the following option to get rid of the copyright notice 24 | 25 | no-greeting 26 | 27 | # If you have more than 1 secret key in your keyring, you may want to 28 | # uncomment the following option and set your preferred keyid. 29 | 30 | default-key 0x63CC496475267693 31 | 32 | # If you do not pass a recipient to gpg, it will ask for one. Using 33 | # this option you can encrypt to a default key. Key validation will 34 | # not be done in this case. The second form uses the default key as 35 | # default recipient. 36 | 37 | default-recipient-self 38 | 39 | # By default GnuPG creates version 4 signatures for data files as 40 | # specified by OpenPGP. Some earlier (PGP 6, PGP 7) versions of PGP 41 | # require the older version 3 signatures. Setting this option forces 42 | # GnuPG to create version 3 signatures. 43 | 44 | #force-v3-sigs 45 | 46 | # Because some mailers change lines starting with "From " to ">From " 47 | # it is good to handle such lines in a special way when creating 48 | # cleartext signatures; all other PGP versions do it this way too. 49 | # To enable full OpenPGP compliance you may want to use this option. 50 | 51 | #no-escape-from-lines 52 | 53 | # When verifying a signature made from a subkey, ensure that the cross 54 | # certification "back signature" on the subkey is present and valid. 55 | # This protects against a subtle attack against subkeys that can sign. 56 | # Defaults to --no-require-cross-certification. However for new 57 | # installations it should be enabled. 58 | 59 | require-cross-certification 60 | 61 | 62 | # If you do not use the Latin-1 (ISO-8859-1) charset, you should tell 63 | # GnuPG which is the native character set. Please check the man page 64 | # for supported character sets. This character set is only used for 65 | # metadata and not for the actual message which does not undergo any 66 | # translation. Note that future version of GnuPG will change to UTF-8 67 | # as default character set. 68 | 69 | charset utf-8 70 | 71 | # Group names may be defined like this: 72 | # group mynames = paige 0x12345678 joe patti 73 | # 74 | # Any time "mynames" is a recipient (-r or --recipient), it will be 75 | # expanded to the names "paige", "joe", and "patti", and the key ID 76 | # "0x12345678". Note there is only one level of expansion - you 77 | # cannot make an group that points to another group. Note also that 78 | # if there are spaces in the recipient name, this will appear as two 79 | # recipients. In these cases it is better to use the key ID. 80 | 81 | #group mynames = paige 0x12345678 joe patti 82 | 83 | # Some old Windows platforms require 8.3 filenames. If your system 84 | # can handle long filenames, uncomment this. 85 | 86 | #no-mangle-dos-filenames 87 | 88 | # Lock the file only once for the lifetime of a process. If you do 89 | # not define this, the lock will be obtained and released every time 90 | # it is needed - normally this is not needed. 91 | 92 | #lock-once 93 | 94 | # GnuPG can send and receive keys to and from a keyserver. These 95 | # servers can be HKP, email, or LDAP (if GnuPG is built with LDAP 96 | # support). 97 | # 98 | # Example HKP keyservers: 99 | # hkp://keys.gnupg.net 100 | # 101 | # Example LDAP keyservers: 102 | # ldap://pgp.surfnet.nl:11370 103 | # 104 | # Regular URL syntax applies, and you can set an alternate port 105 | # through the usual method: 106 | # hkp://keyserver.example.net:22742 107 | # 108 | # If you have problems connecting to a HKP server through a buggy http 109 | # proxy, you can use keyserver option broken-http-proxy (see below), 110 | # but first you should make sure that you have read the man page 111 | # regarding proxies (keyserver option honor-http-proxy) 112 | # 113 | # Most users just set the name and type of their preferred keyserver. 114 | # Note that most servers (with the notable exception of 115 | # ldap://keyserver.pgp.com) synchronize changes with each other. Note 116 | # also that a single server name may actually point to multiple 117 | # servers via DNS round-robin. hkp://keys.gnupg.net is an example of 118 | # such a "server", which spreads the load over a number of physical 119 | # servers. To see the IP address of the server actually used, you may use 120 | # the "--keyserver-options debug". 121 | 122 | # keyserver keyserver.ubuntu.com 123 | # keyserver pgp.openpgp.org 124 | # keyserver pgp.surf.nl 125 | # keyserver pgp.rediris.es 126 | # keyserver pgp.mit.edu 127 | 128 | # Common options for keyserver functions: 129 | # 130 | # include-disabled = when searching, include keys marked as "disabled" 131 | # on the keyserver (not all keyservers support this). 132 | # 133 | # no-include-revoked = when searching, do not include keys marked as 134 | # "revoked" on the keyserver. 135 | # 136 | # verbose = show more information as the keys are fetched. 137 | # Can be used more than once to increase the amount 138 | # of information shown. 139 | # 140 | # use-temp-files = use temporary files instead of a pipe to talk to the 141 | # keyserver. Some platforms (Win32 for one) always 142 | # have this on. 143 | # 144 | # keep-temp-files = do not delete temporary files after using them 145 | # (really only useful for debugging) 146 | # 147 | # honor-http-proxy = if the keyserver uses HTTP, honor the http_proxy 148 | # environment variable 149 | # 150 | # broken-http-proxy = try to work around a buggy HTTP proxy 151 | # 152 | # auto-key-retrieve = automatically fetch keys as needed from the keyserver 153 | # when verifying signatures or when importing keys that 154 | # have been revoked by a revocation key that is not 155 | # present on the keyring. 156 | # 157 | # no-include-attributes = do not include attribute IDs (aka "photo IDs") 158 | # when sending keys to the keyserver. 159 | 160 | #keyserver-options auto-key-retrieve 161 | 162 | # Uncomment this line to display photo user IDs in key listings and 163 | # when a signature from a key with a photo is verified. 164 | 165 | #show-photos 166 | 167 | # Use this program to display photo user IDs 168 | # 169 | # %i is expanded to a temporary file that contains the photo. 170 | # %I is the same as %i, but the file isn't deleted afterwards by GnuPG. 171 | # %k is expanded to the key ID of the key. 172 | # %K is expanded to the long OpenPGP key ID of the key. 173 | # %t is expanded to the extension of the image (e.g. "jpg"). 174 | # %T is expanded to the MIME type of the image (e.g. "image/jpeg"). 175 | # %f is expanded to the fingerprint of the key. 176 | # %% is %, of course. 177 | # 178 | # If %i or %I are not present, then the photo is supplied to the 179 | # viewer on standard input. If your platform supports it, standard 180 | # input is the best way to do this as it avoids the time and effort in 181 | # generating and then cleaning up a secure temp file. 182 | # 183 | # The default program is "xloadimage -fork -quiet -title 'KeyID 0x%k' stdin" 184 | # On Mac OS X and Windows, the default is to use your regular JPEG image 185 | # viewer. 186 | # 187 | # Some other viewers: 188 | # photo-viewer "qiv %i" 189 | # photo-viewer "ee %i" 190 | # photo-viewer "display -title 'KeyID 0x%k'" 191 | # 192 | # This one saves a copy of the photo ID in your home directory: 193 | # photo-viewer "cat > ~/photoid-for-key-%k.%t" 194 | # 195 | # Use your MIME handler to view photos: 196 | # photo-viewer "metamail -q -d -b -c %T -s 'KeyID 0x%k' -f GnuPG" 197 | 198 | keyid-format 0xlong 199 | use-agent 200 | # lock-never 201 | # armor 202 | # pinentry-mode loopback 203 | 204 | # keyring /etc/pacman.d/gnupg/pubring.gpg 205 | -------------------------------------------------------------------------------- /.gitignore.d/que: -------------------------------------------------------------------------------- 1 | * 2 | !/bin 3 | !/bin/git-autofixup 4 | !/bin/git-related 5 | !/bin/git-sync 6 | !/bin/pkg-list-linked-libraries 7 | !/bin/que 8 | !/bin/que-home-bootstrap.zsh 9 | !/bin/que-sys-bootstrap.bash 10 | !/bin/que-sys-config-ec2.bash 11 | !/bin/que-sys-init-ala.bash 12 | !/bin/que-sys-init-arch.bash 13 | !/bin/que-sys-init-fedora.bash 14 | !/bin/que-sys-init-osx.bash 15 | !/bin/que-sys-init-pld.bash 16 | !/bin/que-sys-init-termux.bash 17 | !/bin/que-sys-init-ubuntu.bash 18 | !/.cargo 19 | !/.cargo/config.toml 20 | !/.config 21 | !/.config/gh 22 | !/.config/gh/config.yml 23 | !/.config/git 24 | !/.config/git/attributes 25 | !/.config/git/config 26 | !/.config/mr 27 | !/.config/mr/available.d 28 | !/.config/mr/available.d/ahit.mr 29 | !/.config/mr/available.d/angela.mr 30 | !/.config/mr/available.d/archlinux.mr 31 | !/.config/mr/available.d/aur.mr 32 | !/.config/mr/available.d/ccm.mr 33 | !/.config/mr/available.d/darlene.mr 34 | !/.config/mr/available.d/distro-packaging.mr 35 | !/.config/mr/available.d/fedora.mr 36 | !/.config/mr/available.d/finances.git 37 | !/.config/mr/available.d/fluent.mr 38 | !/.config/mr/available.d/freecheck.git 39 | !/.config/mr/available.d/github.mr 40 | !/.config/mr/available.d/grandpa.mr 41 | !/.config/mr/available.d/homebrew.mr 42 | !/.config/mr/available.d/hosts.mr 43 | !/.config/mr/available.d/incil.mr 44 | !/.config/mr/available.d/ipk.mr 45 | !/.config/mr/available.d/lunarmodules.gh 46 | !/.config/mr/available.d/lyricue.mr 47 | !/.config/mr/available.d/onqueacademy.mr 48 | !/.config/mr/available.d/pandoc.mr 49 | !/.config/mr/available.d/paperwalking.git 50 | !/.config/mr/available.d/pictures.annex 51 | !/.config/mr/available.d/plaintextaccounting.mr 52 | !/.config/mr/available.d/preservim.gh 53 | !/.config/mr/available.d/que-sys-archived.mr 54 | !/.config/mr/available.d/que-sys-base.mr 55 | !/.config/mr/available.d/que-sys-desktop.mr 56 | !/.config/mr/available.d/que.vcsh 57 | !/.config/mr/available.d/sile.mr 58 | !/.config/mr/available.d/systems.mr 59 | !/.config/mr/available.d/theleagueof.mr 60 | !/.config/mr/available.d/tprk.mr 61 | !/.config/mr/available.d/tsv.mr 62 | !/.config/mr/available.d/userscripts.mr 63 | !/.config/mr/available.d/vcsh.git 64 | !/.config/mr/available.d/viachristus.mr 65 | !/.config/mr/available.d/vim-plugins.mr 66 | !/.config/mr/available.d/websites.mr 67 | !/.config/mr/config.d-anole 68 | !/.config/mr/config.d-anole/distro-packaging.mr 69 | !/.config/mr/config.d-anole/hosts.mr 70 | !/.config/mr/config.d-anole/que-sys-base.mr 71 | !/.config/mr/config.d-anole/que.vcsh 72 | !/.config/mr/config.d-anole/systems.mr 73 | !/.config/mr/config.d-armadillo 74 | !/.config/mr/config.d-armadillo/incil.mr 75 | !/.config/mr/config.d-armadillo/ipk.mr 76 | !/.config/mr/config.d-armadillo/que-sys-base.mr 77 | !/.config/mr/config.d-armadillo/que-sys-desktop.mr 78 | !/.config/mr/config.d-armadillo/tprk.mr 79 | !/.config/mr/config.d-aslan 80 | !/.config/mr/config.d-aslan/ahit.mr 81 | !/.config/mr/config.d-aslan/angela.mr 82 | !/.config/mr/config.d-aslan/archlinux.mr 83 | !/.config/mr/config.d-aslan/aur.mr 84 | !/.config/mr/config.d-aslan/ccm.mr 85 | !/.config/mr/config.d-aslan/darlene.mr 86 | !/.config/mr/config.d-aslan/fedora.mr 87 | !/.config/mr/config.d-aslan/finances.git 88 | !/.config/mr/config.d-aslan/fluent.mr 89 | !/.config/mr/config.d-aslan/github.mr 90 | !/.config/mr/config.d-aslan/hosts.mr 91 | !/.config/mr/config.d-aslan/incil.mr 92 | !/.config/mr/config.d-aslan/ipk.mr 93 | !/.config/mr/config.d-aslan/onqueacademy.mr 94 | !/.config/mr/config.d-aslan/pandoc.mr 95 | !/.config/mr/config.d-aslan/pictures.annex 96 | !/.config/mr/config.d-aslan/preservim.gh 97 | !/.config/mr/config.d-aslan/que-sys-base.mr 98 | !/.config/mr/config.d-aslan/que-sys-desktop.mr 99 | !/.config/mr/config.d-aslan/que.vcsh 100 | !/.config/mr/config.d-aslan/sile.mr 101 | !/.config/mr/config.d-aslan/systems.mr 102 | !/.config/mr/config.d-aslan/theleagueof.mr 103 | !/.config/mr/config.d-aslan/tprk.mr 104 | !/.config/mr/config.d-aslan/tsv.mr 105 | !/.config/mr/config.d-aslan/userscripts.mr 106 | !/.config/mr/config.d-aslan/vcsh.git 107 | !/.config/mr/config.d-aslan/viachristus.mr 108 | !/.config/mr/config.d-aslan/vim-plugins.mr 109 | !/.config/mr/config.d-asper 110 | !/.config/mr/config.d-asper/darlene.mr 111 | !/.config/mr/config.d-asper/que-sys-base.mr 112 | !/.config/mr/config.d-asper/tprk.mr 113 | !/.config/mr/config.d-basilisk 114 | !/.config/mr/config.d-basilisk/que-sys-base.mr 115 | !/.config/mr/config.d-basilisk/systems.mr 116 | !/.config/mr/config.d-dagu 117 | !/.config/mr/config.d-dagu/que-sys-base.mr 118 | !/.config/mr/config.d-dagu/que.vcsh 119 | !/.config/mr/config.d-dessie 120 | !/.config/mr/config.d-dessie/que-sys-base.mr 121 | !/.config/mr/config.d-dessie/que.vcsh 122 | !/.config/mr/config.d-emircik 123 | !/.config/mr/config.d-emircik/ahit.mr 124 | !/.config/mr/config.d-emircik/angela.mr 125 | !/.config/mr/config.d-emircik/archlinux.mr 126 | !/.config/mr/config.d-emircik/aur.mr 127 | !/.config/mr/config.d-emircik/ccm.mr 128 | !/.config/mr/config.d-emircik/finances.git 129 | !/.config/mr/config.d-emircik/fluent.mr 130 | !/.config/mr/config.d-emircik/homebrew.mr 131 | !/.config/mr/config.d-emircik/hosts.mr 132 | !/.config/mr/config.d-emircik/ipk.mr 133 | !/.config/mr/config.d-emircik/lunarmodules.gh 134 | !/.config/mr/config.d-emircik/lyricue.mr 135 | !/.config/mr/config.d-emircik/onqueacademy.mr 136 | !/.config/mr/config.d-emircik/pandoc.mr 137 | !/.config/mr/config.d-emircik/pictures.annex 138 | !/.config/mr/config.d-emircik/preservim.gh 139 | !/.config/mr/config.d-emircik/que-sys-base.mr 140 | !/.config/mr/config.d-emircik/que-sys-desktop.mr 141 | !/.config/mr/config.d-emircik/sile.mr 142 | !/.config/mr/config.d-emircik/systems.mr 143 | !/.config/mr/config.d-emircik/theleagueof.mr 144 | !/.config/mr/config.d-emircik/tprk.mr 145 | !/.config/mr/config.d-emircik/tsv.mr 146 | !/.config/mr/config.d-emircik/userscripts.mr 147 | !/.config/mr/config.d-emircik/vcsh.git 148 | !/.config/mr/config.d-emircik/viachristus.mr 149 | !/.config/mr/config.d-emircik/vim-plugins.mr 150 | !/.config/mr/config.d-emircik/websites.mr 151 | !/.config/mr/config.d-iguana 152 | !/.config/mr/config.d-iguana/aur.mr 153 | !/.config/mr/config.d-iguana/ipk.mr 154 | !/.config/mr/config.d-iguana/que-sys-base.mr 155 | !/.config/mr/config.d-iguana/systems.mr 156 | !/.config/mr/config.d-iguana/tprk.mr 157 | !/.config/mr/config.d-jaguar 158 | !/.config/mr/config.d-jaguar/ahit.mr 159 | !/.config/mr/config.d-jaguar/angela.mr 160 | !/.config/mr/config.d-jaguar/archlinux.mr 161 | !/.config/mr/config.d-jaguar/aur.mr 162 | !/.config/mr/config.d-jaguar/ccm.mr 163 | !/.config/mr/config.d-jaguar/distro-packaging.mr 164 | !/.config/mr/config.d-jaguar/finances.git 165 | !/.config/mr/config.d-jaguar/fluent.mr 166 | !/.config/mr/config.d-jaguar/freecheck.git 167 | !/.config/mr/config.d-jaguar/grandpa.mr 168 | !/.config/mr/config.d-jaguar/hosts.mr 169 | !/.config/mr/config.d-jaguar/incil.mr 170 | !/.config/mr/config.d-jaguar/ipk.mr 171 | !/.config/mr/config.d-jaguar/lunarmodules.gh 172 | !/.config/mr/config.d-jaguar/onqueacademy.mr 173 | !/.config/mr/config.d-jaguar/pandoc.mr 174 | !/.config/mr/config.d-jaguar/pictures.annex 175 | !/.config/mr/config.d-jaguar/que-sys-base.mr 176 | !/.config/mr/config.d-jaguar/que-sys-desktop.mr 177 | !/.config/mr/config.d-jaguar/sile.mr 178 | !/.config/mr/config.d-jaguar/systems.mr 179 | !/.config/mr/config.d-jaguar/theleagueof.mr 180 | !/.config/mr/config.d-jaguar/tprk.mr 181 | !/.config/mr/config.d-jaguar/tsv.mr 182 | !/.config/mr/config.d-jaguar/userscripts.mr 183 | !/.config/mr/config.d-jaguar/vcsh.git 184 | !/.config/mr/config.d-jaguar/viachristus.mr 185 | !/.config/mr/config.d-jaguar/vim-plugins.mr 186 | !/.config/mr/config.d-jaguar/websites.mr 187 | !/.config/mr/config.d-karabatak 188 | !/.config/mr/config.d-karabatak/ipk.mr 189 | !/.config/mr/config.d-karabatak/pictures.annex 190 | !/.config/mr/config.d-karabatak/que-sys-base.mr 191 | !/.config/mr/config.d-karabatak/que-sys-desktop.mr 192 | !/.config/mr/config.d-karabatak/viachristus.mr 193 | !/.config/mr/config.d-kazarka 194 | !/.config/mr/config.d-kazarka/ahit.mr 195 | !/.config/mr/config.d-kazarka/angela.mr 196 | !/.config/mr/config.d-kazarka/archlinux.mr 197 | !/.config/mr/config.d-kazarka/aur.mr 198 | !/.config/mr/config.d-kazarka/ccm.mr 199 | !/.config/mr/config.d-kazarka/finances.git 200 | !/.config/mr/config.d-kazarka/fluent.mr 201 | !/.config/mr/config.d-kazarka/homebrew.mr 202 | !/.config/mr/config.d-kazarka/hosts.mr 203 | !/.config/mr/config.d-kazarka/ipk.mr 204 | !/.config/mr/config.d-kazarka/lunarmodules.gh 205 | !/.config/mr/config.d-kazarka/lyricue.mr 206 | !/.config/mr/config.d-kazarka/onqueacademy.mr 207 | !/.config/mr/config.d-kazarka/pandoc.mr 208 | !/.config/mr/config.d-kazarka/pictures.annex 209 | !/.config/mr/config.d-kazarka/plaintextaccounting.mr 210 | !/.config/mr/config.d-kazarka/preservim.gh 211 | !/.config/mr/config.d-kazarka/que-sys-base.mr 212 | !/.config/mr/config.d-kazarka/que-sys-desktop.mr 213 | !/.config/mr/config.d-kazarka/sile.mr 214 | !/.config/mr/config.d-kazarka/systems.mr 215 | !/.config/mr/config.d-kazarka/theleagueof.mr 216 | !/.config/mr/config.d-kazarka/tprk.mr 217 | !/.config/mr/config.d-kazarka/tsv.mr 218 | !/.config/mr/config.d-kazarka/userscripts.mr 219 | !/.config/mr/config.d-kazarka/vcsh.git 220 | !/.config/mr/config.d-kazarka/viachristus.mr 221 | !/.config/mr/config.d-kazarka/vim-plugins.mr 222 | !/.config/mr/config.d-kazarka/websites.mr 223 | !/.config/mr/config.d-lobster 224 | !/.config/mr/config.d-lobster/que-sys-base.mr 225 | !/.config/mr/config.d-lobster/que-sys-desktop.mr 226 | !/.config/mr/config.d-oyster 227 | !/.config/mr/config.d-oyster/que-sys-base.mr 228 | !/.config/mr/config.d-oyster/que-sys-desktop.mr 229 | !/.config/mr/config.d-pars 230 | !/.config/mr/config.d-pars/angela.mr 231 | !/.config/mr/config.d-pars/aur.mr 232 | !/.config/mr/config.d-pars/ccm.mr 233 | !/.config/mr/config.d-pars/distro-packaging.mr 234 | !/.config/mr/config.d-pars/finances.git 235 | !/.config/mr/config.d-pars/hosts.mr 236 | !/.config/mr/config.d-pars/incil.mr 237 | !/.config/mr/config.d-pars/ipk.mr 238 | !/.config/mr/config.d-pars/pictures.annex 239 | !/.config/mr/config.d-pars/que-sys-base.mr 240 | !/.config/mr/config.d-pars/que-sys-desktop.mr 241 | !/.config/mr/config.d-pars/sile.mr 242 | !/.config/mr/config.d-pars/systems.mr 243 | !/.config/mr/config.d-pars/theleagueof.mr 244 | !/.config/mr/config.d-pars/tprk.mr 245 | !/.config/mr/config.d-pars/tsv.mr 246 | !/.config/mr/config.d-pars/viachristus.mr 247 | !/.config/mr/config.d-shrimp 248 | !/.config/mr/config.d-shrimp/freecheck.git 249 | !/.config/mr/config.d-shrimp/que-sys-base.mr 250 | !/.config/mr/config.d-shrimp/que-sys-desktop.mr 251 | !/.config/mr/config.d-sincap 252 | !/.config/mr/config.d-sincap/homebrew.mr 253 | !/.config/mr/config.d-sincap/incil.mr 254 | !/.config/mr/config.d-sincap/ipk.mr 255 | !/.config/mr/config.d-sincap/que-sys-base.mr 256 | !/.config/mr/config.d-sincap/que-sys-desktop.mr 257 | !/.config/mr/config.d-sincap/tprk.mr 258 | !/.config/mr/config.d-sincap/userscripts.mr 259 | !/.config/mr/config.d-sincap/viachristus.mr 260 | !/.config/mr/config.d-squid 261 | !/.config/mr/config.d-squid/que-sys-base.mr 262 | !/.config/mr/config.d-squid/que-sys-desktop.mr 263 | !/.config/mr/config.d-squid/que.vcsh 264 | !/.config/mr/config.d-starfish 265 | !/.config/mr/config.d-starfish/que-sys-base.mr 266 | !/.config/mr/config.d-starfish/que-sys-desktop.mr 267 | !/.config/mr/config.d-starfish/que.vcsh 268 | !/.config/mr/config.d-turtle 269 | !/.config/mr/config.d-turtle/que-sys-base.mr 270 | !/.config/mr/config.d-turtle/que.vcsh 271 | !/.config/mr/lib 272 | !/.config/mr/lib/gitlab.zsh 273 | !/.config/nix 274 | !/.config/nix/nix.conf 275 | !/.config/pacman 276 | !/.config/pacman/makepkg.conf 277 | !/.config/tig 278 | !/.config/tig/config 279 | !/.config/tig/molokai-like-theme.tigrc 280 | !/.config/vcsh 281 | !/.config/vcsh/hooks-enabled 282 | !/.config/vcsh/hooks-enabled/post-merge-unclobber 283 | !/.config/vcsh/hooks-enabled/pre-merge-unclobber 284 | !/.config/yay 285 | !/.config/yay/config.json 286 | !/.gitignore 287 | !/.gitignore.d 288 | !/.gitignore.d/que 289 | !/.gnupg 290 | !/.gnupg/gpg.conf 291 | !/.mrconfig 292 | !/README.md 293 | -------------------------------------------------------------------------------- /bin/que-sys-bootstrap.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | : ${STRAP_URL:=https://raw.github.com/alerque/que/master} 4 | 5 | function flunk() { 6 | echo "Fatal Error: $*" 7 | exit 0 8 | } 9 | 10 | # TODO 11 | # * detect laptops and install brightnessctl 12 | # * setup ppd on laptops 13 | # * radeontop 14 | 15 | while [[ $# -gt 0 ]]; do 16 | case $1 in 17 | devel) 18 | ISDEVEL=0 19 | ;; 20 | remote) 21 | ISREMOTE=0 22 | ;; 23 | caleb) 24 | ISCALEB=0 25 | ;; 26 | desktop) 27 | ISDESKTOP=0 28 | ;; 29 | debug) 30 | ISDEBUG=0 31 | ;; 32 | echo) 33 | set -x 34 | ;; 35 | *) 36 | flunk 'Unknown trailing arguments, try (devel|caleb|remote|desktop|debug|echo)' 37 | ;; 38 | esac 39 | shift 40 | done 41 | 42 | set -e 43 | 44 | # This environment variable will be wrong in chroots, fix it using manually set value 45 | export HOSTNAME=$(hostnamectl hostname) 46 | 47 | # Setup stuff 48 | BASEPACKAGES=( 49 | atuin 50 | base 51 | bat 52 | btop 53 | cron 54 | difftastic 55 | dog 56 | dua-cli 57 | duf 58 | etckeeper 59 | eva 60 | exa 61 | exim 62 | fd 63 | git 64 | git-crypt 65 | gnupg 66 | ifplugd 67 | iftop 68 | innernet 69 | jq 70 | keychain 71 | lsof 72 | man 73 | moreutils 74 | mosh 75 | myrepos 76 | neovim 77 | net-tools 78 | nodejs 79 | openssh 80 | pandoc 81 | paru 82 | pcregrep 83 | programmers-turkish-f 84 | ripgrep 85 | rlwrap 86 | s-nail 87 | starship 88 | tldr 89 | tmux 90 | vcsh 91 | wireguard 92 | yq 93 | zoxide 94 | zsh 95 | ) 96 | 97 | DEVELPACKAGES=( 98 | aurutils 99 | base-devel 100 | bc 101 | binaryen 102 | busted 103 | cabal 104 | cargo-deny 105 | cargo-edit 106 | checkmake 107 | ctags 108 | devtools 109 | entr 110 | fzf 111 | fzy 112 | git-absorb 113 | git-cliff 114 | git-delta 115 | git-extras 116 | git-filter-repo 117 | git-lfs 118 | git-revise 119 | git-warp-time 120 | github-cli 121 | glab 122 | gnu-netcat 123 | html-xml-utils 124 | just 125 | just-lsp 126 | ldoc 127 | lua-language-server 128 | luacheck 129 | luarocks 130 | markdown-oxide 131 | marksman 132 | maturin 133 | mlocate 134 | mold 135 | nix 136 | npm 137 | ntp 138 | pdf2svg 139 | pyright 140 | python-pytest 141 | rsync 142 | ruff 143 | rust-analyzer 144 | rustup 145 | sd 146 | stack 147 | strace 148 | stylua 149 | svgo 150 | taplo 151 | tig 152 | tinymist 153 | typos 154 | unrar 155 | unzip 156 | uv 157 | wasm-pack 158 | wget 159 | yarn 160 | zip 161 | ) 162 | 163 | DESKTOPPACKAGES=( 164 | dmidecode 165 | alacritty 166 | bluez-tools 167 | casile 168 | chromium 169 | cliphist 170 | cups 171 | decasify 172 | dunst 173 | firefox 174 | flameshot 175 | foliate 176 | fuzzel 177 | geeqie 178 | gimp 179 | git-annex 180 | gittyup 181 | gnome 182 | gnome-packagekit 183 | gnome-shell 184 | gpaste 185 | greetd-tuigreet 186 | grim 187 | gvfs 188 | hub 189 | hyprland 190 | inkscape 191 | iwgtk 192 | impala 193 | bluetui 194 | keepassxc 195 | lapce 196 | libreoffice 197 | lite-xl 198 | mplayer 199 | neovide 200 | nextcloud-client 201 | otf-font-awesome 202 | picom 203 | profile-sync-daemon 204 | pulseaudio 205 | qt6-wayland 206 | rofi-lbonn-wayland-git 207 | scribus 208 | sile 209 | slurp 210 | smplayer 211 | ssh-askpass-fullscreen 212 | transmission 213 | tridactyl 214 | ttf-fonts 215 | typst 216 | waybar-git 217 | wev 218 | wl-clipboard 219 | xiphos 220 | zathura 221 | zettlr 222 | ) 223 | 224 | REMOVEPACKAGES=( 225 | aura 226 | bashtop 227 | bpytop 228 | chromium-libpdf 229 | customizepkg 230 | diff-so-fancy 231 | dropbox 232 | emojione-color-font 233 | eww-wayland 234 | firefox-adblock-plus 235 | gnome-defaults-list 236 | gnome-packagekit 237 | google-talkplugin 238 | gpmdp 239 | gtop 240 | gvim 241 | hyprsome-git 242 | keepass 243 | keepassx 244 | owncloud-client 245 | parcellite 246 | powerline-fonts 247 | python-powerline-git 248 | wireguard-dkms 249 | yaourt 250 | yay 251 | ytop 252 | ) 253 | 254 | function add_pkg () { 255 | BASEPACKAGES=(${BASEPACKAGES[@]} $@) 256 | } 257 | 258 | function remove_pkg () { 259 | REMOVEPACKAGES=(${REMOVEPACKAGES[@]} $1) 260 | } 261 | 262 | function distro_pkg () { 263 | BASEPACKAGES=(${BASEPACKAGES[@]/%$1/${*:2}}) 264 | DEVELPACKAGES=(${DEVELPACKAGES[@]/%$1/${*:2}}) 265 | DESKTOPPACKAGES=(${DESKTOPPACKAGES[@]/%$1/${*:2}}) 266 | } 267 | 268 | function skip_pkg () { 269 | if [[ "${BASEPACKAGES[@]}" =~ "$1" ]]; then 270 | BASEPACKAGES=(${BASEPACKAGES[@]/%$1/}) 271 | fi 272 | if [[ "${DEVELPACKAGES[@]}" =~ "$1" ]]; then 273 | DEVELPACKAGES=(${DEVELPACKAGES[@]/%$1/}) 274 | fi 275 | if [[ "${DESKTOPPACKAGES[@]}" =~ "$1" ]]; then 276 | DESKTOPPACKAGES=(${DESKTOPPACKAGES[@]/%$1/}) 277 | fi 278 | } 279 | 280 | function remote_source () { 281 | if [ -f "$DIR/$1" ]; then 282 | source "$DIR/$1" 283 | else 284 | source <(curl -sfSL $STRAP_URL/bin/$1) 285 | fi 286 | } 287 | 288 | is_opt () { 289 | (( ! ${1:-1} )) 290 | } 291 | 292 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )" 293 | 294 | # Detect distro 295 | grep -q -s "^Amazon Linux AMI" /etc/system-release && DISTRO=ala 296 | test -f /etc/arch-release && DISTRO=arch 297 | test -f /etc/fedora-release && DISTRO=fedora 298 | test -f /etc/pld-release && DISTRO=pld 299 | grep -q -s "Ubuntu" /etc/lsb-release && DISTRO=ubuntu 300 | uname -s | grep -q Darwin && DISTRO=osx 301 | test -d /data/data/com.termux && DISTRO=termux 302 | 303 | test -n "$DISTRO" || flunk "unrecognized distro" 304 | 305 | # Detect virtual environments 306 | if hash systemd-detect-virt 2> /dev/null; then 307 | case $(systemd-detect-virt) in 308 | none|container-other) ISMETAL=1 ;; 309 | systemd-nspawn) : ;; 310 | xen) ISEC2=$(uname -r | grep -iq ec2; echo $?) ;; 311 | kvm) ISDO=$(hash digitalocean-synchronize 2> /dev/null; echo $?) ;; 312 | *) flunk "Unknown virtual environment" ;; 313 | esac 314 | fi 315 | ISVBOX=$(hash lspci 2> /dev/null && lspci | grep -iq virtualbox; echo $?) 316 | if is_opt $ISEC2; then 317 | add_pkg ec2-api-tools ec2-metadata 318 | fi 319 | if is_opt $ISDO; then 320 | add_pkg digitalocean-synchronize 321 | fi 322 | 323 | if is_opt $ISMETAL; then 324 | add_pkg gdisk 325 | fi 326 | 327 | # Detect system tools 328 | mount | grep -q btrfs && add_pkg btrfs-du ||: 329 | 330 | WHEEL=wheel 331 | 332 | case $DISTRO in 333 | ala) 334 | : 335 | ;; 336 | arch) 337 | # If we have ever installed devel or desktop stuff, assume them again 338 | pacman -Q ctags 2>&- >&- && ISDEVEL=0 339 | 340 | if grep -q ARM /etc/os-release; then 341 | skip_pkg git-annex 342 | skip_pkg starship 343 | else 344 | add_pkg mkinitcpio-{utils,netconf,dropbear} 345 | add_pkg reflector 346 | fi 347 | 348 | add_pkg pkgstats pacman-contrib 349 | add_pkg paru 350 | 351 | # Distro specific package names 352 | distro_pkg hyprland hyprland hyprpaper hypridle hyprland-qtutils hyprlock hyprpaper hyprsome-git xdg-desktop-portal-hyprland uwsm 353 | distro_pkg brave brave-bin 354 | distro_pkg cron cronie 355 | distro_pkg cups cups cups-filters system-config-printer cups-pk-helper gsfonts gutenprint foomatic-db{,-engine,-nonfree,{,-nonfree,-gutenprint}-ppds} hplip splix cups-pdf 356 | distro_pkg etckeeper etckeeper{,-packages} 357 | distro_pkg firefox firefox{,-i18n-{tr,ru}} 358 | distro_pkg gnome gnome gnome-{extra,themes-extra,tweaks} notification-daemon 359 | distro_pkg gnome-shell gnome-shell chrome-gnome-shell gnome-shell-extension-no-title-bar 360 | # gnome-shell-extension-topicons-redux 361 | distro_pkg gvfs gvfs-{mtp,smb,goa} 362 | distro_pkg libreoffice libreoffice-fresh{,-tr,-ru} unoconv 363 | distro_pkg man{,-db,-pages} 364 | distro_pkg neomutt neomutt goobook-git 365 | distro_pkg nextcloud-client nextcloud-client python-nautilus 366 | distro_pkg pandoc pandoc-sile-git 367 | distro_pkg pcregrep pcre 368 | distro_pkg pulseaudio pa{systray,vucontrol,prefs,mixer,-applet-git} 369 | distro_pkg tmux tmux teamocil 370 | distro_pkg transmission{,-gtk,-cli} 371 | distro_pkg tridactyl firefox-tridactyl{,-native} 372 | distro_pkg ttf-fonts {gentium-plus,inter}-font ttf-{cheapskate,freefont,liberation,hack,amiri,sil-fonts,crimson-pro{,-variable},symbola,joypixels,montserrat} otf-{libertinus,bravura,crimson-text} {awesome-terminal,noto,tex-gyre}-fonts nerd-fonts-hack 373 | distro_pkg wireguard wireguard-tools 374 | distro_pkg zathura zathura{,-pdf-mupdf} 375 | distro_pkg zsh zsh zsh-completions 376 | 377 | # Temporarily broken packages 378 | # skip_pkg ... 379 | 380 | # Arch Linux upstream deprecations 381 | remove_pkg libdmx 382 | remove_pkg libxxf86dga 383 | remove_pkg libxxf86misc 384 | remove_pkg transmission-sequential-{gtk,cli} 385 | 386 | # Renamed packages that didn't properly conflict with their replacements 387 | remove_pkg ttf-gentium-plus 388 | ;; 389 | fedora) 390 | : 391 | ;; 392 | 393 | pld) 394 | distro_pkg git git-core 395 | distro_pkg gnome metapackages-gnome 396 | distro_pkg ruby ruby-modules 397 | distro_pkg zsh zsh-completions 398 | ;; 399 | 400 | ubuntu) 401 | WHEEL=adm 402 | ;; 403 | 404 | osx) 405 | add_pkg rename 406 | distro_pkg chromium '' 407 | distro_pkg cups '' 408 | distro_pkg etckeeper '' 409 | distro_pkg gdisk '' 410 | distro_pkg gimp '' 411 | distro_pkg gnome '' 412 | distro_pkg gnome-packagekit '' 413 | distro_pkg gpaste '' 414 | distro_pkg gvfs '' 415 | distro_pkg keepassx '' 416 | distro_pkg libreoffice '' 417 | distro_pkg myrepos mr 418 | distro_pkg ntp '' 419 | distro_pkg owncloud-client '' 420 | distro_pkg rhythmbox '' 421 | distro_pkg smplayer '' 422 | distro_pkg strace '' 423 | distro_pkg sudo '' 424 | distro_pkg syslog-ng '' 425 | distro_pkg transmission-gtk '' 426 | distro_pkg ttf-fonts '' 427 | distro_pkg unrar '' 428 | distro_pkg unzip '' 429 | distro_pkg xiphos '' 430 | distro_pkg zip '' 431 | ;; 432 | 433 | termux) 434 | ;; 435 | 436 | *) 437 | flunk "Unknown system" 438 | ;; 439 | esac 440 | 441 | # Make sure we are root on linux 442 | case $(uname -o) in 443 | Android) 444 | ;; 445 | GNU/Linux) 446 | test $UID -eq 0 || flunk "Must be root for system bootstrap" 447 | ;; 448 | esac 449 | 450 | # Merge developer package list into base set if this is a dev box 451 | if is_opt $ISDEVEL; then 452 | BASEPACKAGES=(${BASEPACKAGES[@]} ${DEVELPACKAGES[@]}) 453 | fi 454 | 455 | # Merge desktop package list into base set if this is a desktop 456 | if is_opt $ISDESKTOP; then 457 | BASEPACKAGES=(${BASEPACKAGES[@]} ${DESKTOPPACKAGES[@]}) 458 | fi 459 | 460 | # Drop a few things from remote-only hosts 461 | if is_opt $ISREMOTE; then 462 | BASEPACKAGES=(${BASEPACKAGES[@]/programmers-turkish-f}) 463 | fi 464 | 465 | # Import and run init script for this OS 466 | INITSCRIPT="que-sys-init-${DISTRO}.bash" 467 | remote_source $INITSCRIPT 468 | 469 | if [[ ! $DISTRO == Termux ]]; then 470 | # Setup root git user 471 | git config --global user.email root@$HOSTNAME.alerque.com 472 | git config --global user.name $HOSTNAME 473 | 474 | # Setup root SSH 475 | test -f /root/.ssh/id_rsa || ( 476 | ssh-keygen -f /root/.ssh/id_rsa -N '' 477 | cat /root/.ssh/id_rsa.pub | mailx -s "New root SSH key for $HOSTNAME" caleb@alerque.com 478 | ) 479 | 480 | # If we're on a system with etckeeper, make sure it's setup 481 | if command -v etckeeper; then 482 | ( 483 | cd /etc 484 | etckeeper vcs status || etckeeper init 485 | # TODO: setup ssh plus ssh keys and make sure remote pushes have right branch 486 | hostsfile=~/.ssh/known_hosts 487 | gitlab=gitlab.alerque.com 488 | [[ -s $hostsfile ]] || install -Dm644 /dev/null $hostsfile 489 | cat $hostsfile <(ssh-keyscan $gitlab) | sort -u | sponge $hostsfile 490 | etckeeper vcs remote add origin gitlab@$gitlab:hosts/$HOSTNAME.git -m master || 491 | etckeeper vcs remote set-url origin gitlab@$gitlab:hosts/$HOSTNAME.git 492 | sed -i -e 's/^PUSH_REMOTE=""/PUSH_REMOTE="origin"/g' /etc/etckeeper/etckeeper.conf 493 | etckeeper vcs config --local branch.master.remote origin 494 | etckeeper vcs config --local branch.master.merge refs/heads/master 495 | etckeeper vcs config --local branch.master.rebase true 496 | grep -Fx .updated .gitignore || echo .updated > .gitignore 497 | etckeeper commit 'End of que-sys-bootstrap.bash run' || echo "Backup of system config failed, skipping..." 498 | ) 499 | fi 500 | fi 501 | 502 | # Setup my user 503 | if is_opt $ISCALEB; then 504 | useradd -m -k /dev/null caleb ||: 505 | usermod -s $(which zsh) caleb ||: 506 | usermod -c 'Caleb Maclennan' caleb ||: 507 | usermod -aG $WHEEL caleb ||: 508 | fi 509 | 510 | # For convenience show how to setup my home directory 511 | echo -e "Perhaps you want home stuff too?\n passwd caleb\n su - caleb\n zsh <(curl -sfSL $STRAP_URL/bin/que-home-bootstrap.zsh)" 512 | 513 | if is_opt $ISDESKTOP; then 514 | echo 'Reminder: if this is a manually configured system you need to manually install an appropriate video driver and smi library' 515 | fi 516 | --------------------------------------------------------------------------------