aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlonkaars <loek@pipeframe.xyz>2024-03-01 16:14:40 +0100
committerlonkaars <loek@pipeframe.xyz>2024-03-01 16:14:40 +0100
commit0e7d5ff96077445aa420bc855a63dfec2087d51a (patch)
treec50e27cfa6149b5b643fa6bcf47f9d3fab436863
parentbdd24709f93f3b496cbe842bf1cd0427a421199a (diff)
big bootstrap overhaul
l---------.config/systemd/user/default.target.wants/etesync-dav.service1
-rwxr-xr-x.config/yadm/bootstrap23
-rwxr-xr-x.config/yadm/install-arch14
-rw-r--r--.config/yadm/packages-arch170
-rw-r--r--readme.md88
5 files changed, 150 insertions, 146 deletions
diff --git a/.config/systemd/user/default.target.wants/etesync-dav.service b/.config/systemd/user/default.target.wants/etesync-dav.service
deleted file mode 120000
index 9a5f7d2..0000000
--- a/.config/systemd/user/default.target.wants/etesync-dav.service
+++ /dev/null
@@ -1 +0,0 @@
-/usr/lib/systemd/user/etesync-dav.service \ No newline at end of file
diff --git a/.config/yadm/bootstrap b/.config/yadm/bootstrap
index 6de9391..9a03f58 100755
--- a/.config/yadm/bootstrap
+++ b/.config/yadm/bootstrap
@@ -1,3 +1,26 @@
#!/bin/sh
+. "$HOME/.profile"
+
+# ensure required packages are installed
+"$XDG_CONFIG_HOME/yadm/install-arch"
+
+# generate templated files
+yadm alt
+
+# create remaining dynamic theme files
~/.local/share/bin/mode dark
+# remove unreachable blobs
+yadm reflog expire --expire-unreachable=now --all
+yadm gc --prune=now
+
+# download and build st (terminal) if not present
+! command -v st > /dev/null && [ ! -e ~/.local/st ] && (
+ mkdir -p ~/.local
+ cd ~/.local
+ git clone https://git.pipeframe.xyz/lonkaars/st
+ cd st
+ make -j
+)
+
+# TODO: create a second repository for system configuration in /etc
diff --git a/.config/yadm/install-arch b/.config/yadm/install-arch
index 35977c2..1246dae 100755
--- a/.config/yadm/install-arch
+++ b/.config/yadm/install-arch
@@ -1,3 +1,13 @@
#!/bin/sh
-[[ `lsb_release -si` -ne "Arch" ]] && exit
-yay --noconfirm --needed -S - < packages-arch
+# ensure we are running on arch linux
+[ ! -e /etc/os-release ] && exit
+. /etc/os-release
+[ "$ID" != 'arch' ] && exit
+
+# resolve files in this script relative to this script's location
+cd "$(dirname "$0")"
+
+# filter comments and pipe package name list to yay
+sed -e 's/#.*//g' -e 's/ //g' -e '/^$/d' packages-arch |\
+ yay --noconfirm --needed -S -
+
diff --git a/.config/yadm/packages-arch b/.config/yadm/packages-arch
index 515d569..258b805 100644
--- a/.config/yadm/packages-arch
+++ b/.config/yadm/packages-arch
@@ -1,121 +1,99 @@
-alsa-utils
-arm-none-eabi-binutils
-arm-none-eabi-gcc
-asciidoc
-autoconf
+# X11 core + window manager
+i3-wm
+xdg-user-dirs
+xf86-input-wacom
+xinit-xsession
+xorg
+
+# directly used in scripts / startup
autocutsel
-biber
-bison
-bitwarden-bin
-bitwarden-rofi
-blueman
-bluez
-bluez-hciconfig
-brave-bin
-chromium
-cmake
-cups
-cups-pdf
-dhcpcd
-discord
-djvulibre
-dmenu
-docker
-docker-compose
+dbus
dunst
-efibootmgr
-etesync-dav
-fakeroot
+fcitx5
+flashfocus
+imagemagick
+jq
+libpulse # for pactl
+maim
+mpd
+nicotine+
+picom
+pipewire
+playerctl
+polkit-gnome
+polybar
+python
+python-pip
+redshift
+rofi
+xbanish
+xbindkeys
+xclip
+xorg-xrdb
+xsettingsd
+
+# system stuff
+cups
+lightdm
+lightdm-gtk-greeter
+ntfs-3g
+ntp
+openssh
+openssl
+sshfs
+usb_modeswitch # required for android usb tethering
+
+# network stuff (TODO)
+# NetworkManager # currently only used on laptop...
+dhcpcd # i am unsure if i need this
+
+# applications
+anki
+brave-bin
+curl
feh
fzf
-gcc
-git
-graphicsmagick
-hplip
+helvum
htop
-i3-gaps
-jdk-openjdk
-jdk8-openjdk
-jmtpfs
-latex-mk
-lib32-libpulse
-libconfig
-libev
-libmpd
-libselinux
-libxdg-basedir
-lightdm
-lightdm-gtk-greeter
-m4
-make
-maven
-meson
mpc
-mpd
mpv
-mtpfs
-nano
-nautilus
ncmpcpp
neovim
-nginx
-ninja
nmap
-ntfs-3g
-openssh
-openssl
-os-prober
-p7zip
pandoc
-patch
+pass
+pass-otp
pavucontrol
-pdftk
-picom-ibhagwan-git
-pkgconf
-playerctl
-playonlinux
-polkit-gnome
-polybar
-python
-python-pip
ranger
restic
-rofi
+rofi-pass-git
scrcpy
-screenkey
scrot
slock
-sshfs
sudo
sxiv
-syncthing
-texlive-lang
-texlive-most
-tk
-tmux
-transmission-cli
-tree
unzip
-uthash
-uwsgi
-vi
-virt-manager
-w3m
wget
which
-wine
-winetricks
-xbindkeys
-xclip
-xdg-user-dirs
-xdo
-xf86-input-wacom
-xfce4-settings
-xinit-xsession
-xorg
-xsettingsd
-yadm
-zathura-git
+zathura
zathura-pdf-mupdf
zip
zsh
+
+# audio
+alsa-utils
+alsa-lib
+alsa-plugins
+alsa-utils
+libpipewire
+libpulse
+pipewire
+pipewire-alsa
+pipewire-audio
+pipewire-jack
+pipewire-pulse
+
+# bluetooth
+bluez
+bluez-utils
+
diff --git a/readme.md b/readme.md
index d5d49d1..203b9d1 100644
--- a/readme.md
+++ b/readme.md
@@ -1,48 +1,42 @@
-# dottydots
+- these dotfiles utilize [yadm][yadm]'s templating functions, and rely on two
+ sepcific hostnames. `superesc` is used on my desktop computer and `thoncc` on
+ my laptop. you can run `yadm config local.hostname <superesc|thoncc>` before
+ `yadm bootstrap` or `yadm alt` to choose which config files should be used if
+ your hostname is something else.
+- the github mirror of this repository still includes some large unreachable
+ blobs (accidentally committed wallpapers). these are automatically removed by
+ the bootstrap script. a smaller mirror of this repository that does not
+ include these blobs by default should be available at
+ <https://git.pipeframe.xyz/lonkaars/dots>.
+
+fresh arch install steps:
+
+- make sure base pacakges are installed (as root)
+ ```
+ # pacman -Sy base-devel git
+ ```
+- install yay
+ ```
+ $ git clone https://aur.archlinux.org/yay
+ $ cd yay
+ $ makepkg -si
+ ```
+- install yadm
+ ```
+ $ yay -S yadm
+ ```
+- get dotfiles
+ ```
+ $ yadm clone https://git.pipeframe.xyz/lonkaars/dots
+ ```
+- override hostname (optional)
+ ```
+ $ yadm config local.hostname <superesc|thoncc>
+ ```
+- do a bunch of setup
+ ```
+ $ yadm bootstrap
+ ```
+
+[yadm]: https://yadm.io/
-these are dotfiles
-
-- zsh
-- nvim + coc
-- i3
-- polybar
-- chromium and it's forks
-- zathura
-- rofi
-- [st](https://github.com/lonkaars/st)
-- xresources
-- fcitx5
-- gtk3
-- neomutt + imapnotify + mbsync
-- mpd + ncmpcpp
-- dunst
-- xfsettingsd
-- discord
-
-i use these dotfiles on a desktop computer (superesc) and a laptop (thoncc).
-use `yadm config local.hostname <superesc|thoncc>` before `yadm alt` to choose
-which config files should be used if your hostname is something else.
-
-## installation
-
-```sh
-# install yay
-git clone https://aur.archlinux.org/yay
-cd yay
-makepkg -si
-
-# install yadm
-yay -S yadm
-
-# get dotfiles
-yadm clone https://github.com/lonkaars/dotfiles
-
-# generate templated files
-yadm alt
-
-# install necessary packages (uses yay)
-~/.config/yadm/install-arch
-
-# generate dynamic color scheme config files
-yadm bootstrap
-```