parent
55519b7087
commit
5132ce6902
137
bootstrap.sh
137
bootstrap.sh
|
@ -1,8 +1,12 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
DOTS_REPO="https://git.snaile.de/luca/dotfiles"
|
DOTS_REPO="https://git.snaile.de/luca/dotfiles"
|
||||||
DOTS_BRANCH="main"
|
DOTS_BRANCH="main"
|
||||||
STOW_DIR=".local/share/stow"
|
STOW_DIR=".local/share/stow"
|
||||||
DOTS_PACKAGE="dots"
|
DOTS_PACKAGE="dots"
|
||||||
|
CONFIG_FILE="./config.yml"
|
||||||
|
|
||||||
USER_GROUPS="wheel,floppy,audio,video,cdrom,optical,kvm,xbuilder,users,docker" # Comma separated list
|
USER_GROUPS="wheel,floppy,audio,video,cdrom,optical,kvm,xbuilder,users,docker" # Comma separated list
|
||||||
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
|
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
|
||||||
|
@ -42,31 +46,34 @@ warn() {
|
||||||
|
|
||||||
print_buffer() {
|
print_buffer() {
|
||||||
buffer_size=$1
|
buffer_size=$1
|
||||||
|
line_length=$2
|
||||||
for i in $(seq 1 "$((buffer_size))"); do
|
for i in $(seq 1 "$((buffer_size))"); do
|
||||||
|
# shellcheck disable=SC2016
|
||||||
if [ "$trim" = "y" ]; then
|
if [ "$trim" = "y" ]; then
|
||||||
eval "printf '%-${line_length}s\n' \"\$buffer${i}\""
|
template='%-${line_length}s\n'
|
||||||
else
|
else
|
||||||
eval "printf '%-${line_length}.${line_length}s\n' \"\$buffer${i}\""
|
template='%-${line_length}.${line_length}s\n'
|
||||||
fi
|
fi
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
eval '[ -z "${buffer'"$i"':-}" ] || {
|
||||||
|
printf "'"$template"'" "${buffer'$i'}"
|
||||||
|
}'
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
push_buffer() {
|
push_buffer() {
|
||||||
line=$1
|
line=$1
|
||||||
buffer_size=$2
|
buffer_size=$2
|
||||||
for i in $(seq 1 $((buffer_size))); do
|
for i in $(seq 1 $((buffer_size - 1))); do
|
||||||
eval "buffer$i=\$buffer$((i + 1))"
|
eval 'buffer'"$i"'="${buffer'$((i + 1))':-}"'
|
||||||
done
|
done
|
||||||
|
|
||||||
# shellcheck disable=SC2034
|
eval 'buffer'"$buffer_size"'=''''"$line"'''''
|
||||||
eval "buffer${buffer_size}='$line'"
|
|
||||||
# buffer1="$line"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
scroll() {
|
scroll() {
|
||||||
buffer_size=$1 # int
|
buffer_size=$1 # int
|
||||||
trim=${2:-y} # 'y' | 'n'
|
trim=${2:-y} # 'y' | 'n'
|
||||||
|
|
||||||
line_length=$(tput cols)
|
line_length=$(tput cols)
|
||||||
trap 'line_length=$(tput cols)' WINCH
|
trap 'line_length=$(tput cols)' WINCH
|
||||||
|
|
||||||
|
@ -75,41 +82,20 @@ scroll() {
|
||||||
push_buffer "$line" "$buffer_size"
|
push_buffer "$line" "$buffer_size"
|
||||||
|
|
||||||
tput sc
|
tput sc
|
||||||
print_buffer "$buffer_size"
|
print_buffer "$buffer_size" "$line_length"
|
||||||
tput rc
|
tput rc
|
||||||
|
|
||||||
sleep 0.5
|
|
||||||
done
|
done
|
||||||
tput cnorm
|
tput cnorm
|
||||||
|
|
||||||
for i in $(seq 1 $((buffer_size))); do
|
for i in $(seq 1 $((buffer_size))); do
|
||||||
eval "buffer$i=''"
|
eval "unset buffer$i"
|
||||||
done
|
done
|
||||||
print_buffer "$buffer_size"
|
print_buffer "$buffer_size" "$line_length"
|
||||||
trap - WINCH
|
trap - WINCH
|
||||||
}
|
}
|
||||||
|
|
||||||
_loop_wrapper() {
|
|
||||||
unset n
|
|
||||||
unset total
|
|
||||||
file=$1
|
|
||||||
message=$2
|
|
||||||
command=$3
|
|
||||||
|
|
||||||
skip_regex="^(#.*)?$"
|
|
||||||
total=$(grep -cvP "$skip_regex" "$file")
|
|
||||||
|
|
||||||
while read -r x; do
|
|
||||||
echo "$x" | grep -qvP "$skip_regex" || continue
|
|
||||||
n=$((n + 1))
|
|
||||||
eval "info \"(${n}/${total}) $message\""
|
|
||||||
eval "$command"
|
|
||||||
done <"$file" | scroll 7
|
|
||||||
}
|
|
||||||
|
|
||||||
check_root() {
|
check_root() {
|
||||||
[ "$(id -u)" != "0" ] &&
|
[ "$(id -u)" = "0" ] || error "This script needs root!"
|
||||||
error "This script needs root!"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setup() {
|
setup() {
|
||||||
|
@ -118,7 +104,12 @@ setup() {
|
||||||
|
|
||||||
if ! xbps-query ntp >/dev/null 2>&1; then
|
if ! xbps-query ntp >/dev/null 2>&1; then
|
||||||
info "Installing ntp..."
|
info "Installing ntp..."
|
||||||
xbps-install -y ntp >/dev/null 2>&1
|
progs="ntp jq yq git stow"
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
xbps-install -y $progs >/dev/null 2>&1
|
||||||
|
for prog in $progs; do
|
||||||
|
command -v "${prog}" 1>/dev/null 2>&1 || error "${prog} isn't installed even though it should be!"
|
||||||
|
done
|
||||||
|
|
||||||
info "Synchronizing time..."
|
info "Synchronizing time..."
|
||||||
ntpdate "pool.ntp.org" >/dev/null 2>&1 || warn "Failed to synchronize time!"
|
ntpdate "pool.ntp.org" >/dev/null 2>&1 || warn "Failed to synchronize time!"
|
||||||
|
@ -128,10 +119,16 @@ setup() {
|
||||||
}
|
}
|
||||||
|
|
||||||
install_packages() {
|
install_packages() {
|
||||||
#shellcheck disable=SC2016,SC2046
|
IFS='
|
||||||
{ sed '/^[[:space:]]*#/d;/^$/d' "${SCRIPT_DIR}/packages.txt" | xargs -r xbps-install -y || error "Invalid package in packages.txt"; } | grep -v 'already installed'
|
'
|
||||||
command -v git 1>/dev/null 2>&1 || error "git isn't installed even though it should be!"
|
for p in $(yq -c '.packages.[]' <config.yml); do
|
||||||
command -v stow 1>/dev/null 2>&1 || error "stow isn't installed even though it should be!"
|
flags=$(echo "$p" | yq -r '.command[1:].[]')
|
||||||
|
packages=$(echo "$p" | yq -r '.list[]')
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
[ -n "${packages}" ] && echo $flags $packages |
|
||||||
|
xargs "$(echo "$p" | yq -r '.command[0]')"
|
||||||
|
done | scroll 7
|
||||||
|
|
||||||
info "Done!"
|
info "Done!"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,19 +140,6 @@ install_files() {
|
||||||
info "Done!"
|
info "Done!"
|
||||||
}
|
}
|
||||||
|
|
||||||
create_symlinks() {
|
|
||||||
#shellcheck disable=SC2016
|
|
||||||
_loop_wrapper "${SCRIPT_DIR}/symlinks.txt" \
|
|
||||||
'Creating symlink $(echo $x | cut -d',' -f1) -> $(echo $x | cut -d',' -f2)' \
|
|
||||||
'
|
|
||||||
source=$(echo $x | cut -d"," -f2)
|
|
||||||
target=$(echo $x | cut -d"," -f1)
|
|
||||||
[ -L $target ] && rm $target
|
|
||||||
ln -s $source $target
|
|
||||||
'
|
|
||||||
info "Done!"
|
|
||||||
}
|
|
||||||
|
|
||||||
create_user() {
|
create_user() {
|
||||||
failed=false
|
failed=false
|
||||||
while ! echo "$username" | grep "^[a-z_][a-z0-9_-]*$" | grep -qv "root"; do
|
while ! echo "$username" | grep "^[a-z_][a-z0-9_-]*$" | grep -qv "root"; do
|
||||||
|
@ -192,18 +176,21 @@ create_user() {
|
||||||
|
|
||||||
create_directories() {
|
create_directories() {
|
||||||
#shellcheck disable=SC2016
|
#shellcheck disable=SC2016
|
||||||
_loop_wrapper "${SCRIPT_DIR}/directories.txt" \
|
directories=$(yq -c '[].directories' <${CONFIG_FILE})
|
||||||
'Creating directory $(echo $x | cut -d"," -f1)' \
|
counter=1
|
||||||
'
|
num_dirs=$(echo "$directories" | wc -l)
|
||||||
set -e
|
|
||||||
dir=$(echo $x | cut -d"," -f1)
|
for entry in $directories; do
|
||||||
mod=$(echo $x | cut -d"," -f2)
|
path=$(echo "$entry" | jq -r '.path')
|
||||||
[ "$dir" = "$mod" ] && mod="755"
|
mode=$(echo "$entry" | jq -r '.mode')
|
||||||
[ -d "${user_home}/${dir}" ] || mkdir -p "${user_home}/${dir}"
|
[ "$mode" = "null" ] && mode="0755"
|
||||||
sudo -u "$username" mkdir -p "${user_home}/${dir}"
|
|
||||||
chmod "${mod}" "${user_home}/${dir}"
|
info "Creating directory ${counter} of ${num_dirs}: ~/${path}"
|
||||||
set +e
|
[ -d "${user_home}/${path}" ] || sudo -u "$username" mkdir -m "${mode}" -p "${user_home}/${path}"
|
||||||
'
|
|
||||||
|
counter=$((counter + 1))
|
||||||
|
done
|
||||||
|
|
||||||
info "Done!"
|
info "Done!"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -231,13 +218,21 @@ select_keymap() {
|
||||||
}
|
}
|
||||||
|
|
||||||
enable_services() {
|
enable_services() {
|
||||||
|
services=$(yq -r '.services[]' <config.yml)
|
||||||
|
counter=1
|
||||||
|
num_services=$(echo "$services" | wc -l)
|
||||||
|
|
||||||
|
info "Removing old services..."
|
||||||
for sv in /var/service/*; do
|
for sv in /var/service/*; do
|
||||||
grep -qx "$(basename "$sv")" "${SCRIPT_DIR}/services.txt" || rm "$sv"
|
echo "$services" | grep -qx "$(basename "$sv")" || rm "$sv"
|
||||||
done
|
done
|
||||||
# shellcheck disable=2016
|
|
||||||
_loop_wrapper "${SCRIPT_DIR}/services.txt" \
|
info "Enabling services..."
|
||||||
'Enabling ${x} service' \
|
for service in $services; do
|
||||||
'[ ! -L /var/service/${x} ] && ln -s "/etc/sv/${x}" "/var/service/"'
|
info "Enabling service ${counter} of ${num_services}: ${service}"
|
||||||
|
[ ! -L "/var/service/${service}" ] && ln -s "/etc/sv/${service}" "/var/service/"
|
||||||
|
done
|
||||||
|
|
||||||
info "Done!"
|
info "Done!"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -245,7 +240,7 @@ finalize() {
|
||||||
gid=$(getent passwd "$username" | cut -d ':' -f 4)
|
gid=$(getent passwd "$username" | cut -d ':' -f 4)
|
||||||
groupname=$(getent group "$gid" | cut -d ':' -f 1)
|
groupname=$(getent group "$gid" | cut -d ':' -f 1)
|
||||||
info "Setting ownership of home directories..."
|
info "Setting ownership of home directories..."
|
||||||
chown "$username:$groupname" -R "$user_home"
|
chown -v "$username:$groupname" -R "$user_home" 2>&1 | scroll 7
|
||||||
info "Done!"
|
info "Done!"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -258,8 +253,8 @@ check_root
|
||||||
emphasize "-- Copying Files --"
|
emphasize "-- Copying Files --"
|
||||||
install_files
|
install_files
|
||||||
|
|
||||||
emphasize "-- Creating Symlinks --"
|
# emphasize "-- Creating Symlinks --"
|
||||||
create_symlinks
|
# create_symlinks
|
||||||
|
|
||||||
emphasize "-- Preparing Installation --"
|
emphasize "-- Preparing Installation --"
|
||||||
setup
|
setup
|
||||||
|
|
|
@ -0,0 +1,233 @@
|
||||||
|
---
|
||||||
|
services:
|
||||||
|
- ngetty
|
||||||
|
- bluetoothd
|
||||||
|
- crond
|
||||||
|
- cupsd
|
||||||
|
- dbus
|
||||||
|
- docker
|
||||||
|
- elogind
|
||||||
|
- nanoklogd
|
||||||
|
- NetworkManager
|
||||||
|
- pcscd
|
||||||
|
- polkitd
|
||||||
|
- smbd
|
||||||
|
- socklog-unix
|
||||||
|
- tlp
|
||||||
|
- udevd
|
||||||
|
|
||||||
|
directories:
|
||||||
|
- path: ".cache"
|
||||||
|
- path: ".config"
|
||||||
|
- path: ".config/dwm/autorun.d"
|
||||||
|
- path: ".local/libexec/"
|
||||||
|
- path: ".local/log"
|
||||||
|
- path: ".local/share/"
|
||||||
|
- path: ".local/state"
|
||||||
|
- path: ".local/sv"
|
||||||
|
- path: "Desktop"
|
||||||
|
- path: "Documents/dev"
|
||||||
|
- path: "Downloads"
|
||||||
|
- path: "Pictures/Screenshots"
|
||||||
|
- path: "Videos"
|
||||||
|
- path: ".ssh"
|
||||||
|
mode: "0700"
|
||||||
|
|
||||||
|
packages:
|
||||||
|
- command: ["xbps-install", "-y"]
|
||||||
|
list:
|
||||||
|
- 7zip
|
||||||
|
- ImageMagick
|
||||||
|
- NetworkManager
|
||||||
|
- Signal-Desktop
|
||||||
|
- ansible
|
||||||
|
- apache-htpasswd
|
||||||
|
- arandr
|
||||||
|
- atool
|
||||||
|
- bandwhich
|
||||||
|
- base-devel
|
||||||
|
- base-system
|
||||||
|
- bat
|
||||||
|
- bind-utils
|
||||||
|
- binutils
|
||||||
|
- blueman
|
||||||
|
- bluez
|
||||||
|
- bottom
|
||||||
|
- breeze-icons
|
||||||
|
- cargo
|
||||||
|
- catdoc
|
||||||
|
- chafa
|
||||||
|
- clipmenu
|
||||||
|
- cpanminus
|
||||||
|
- cronie
|
||||||
|
- cups
|
||||||
|
- cups-filters
|
||||||
|
- cups-pdf
|
||||||
|
- curl
|
||||||
|
- dbus
|
||||||
|
- delta
|
||||||
|
- dmenu-custom
|
||||||
|
- docker
|
||||||
|
- docker-buildx
|
||||||
|
- docker-compose
|
||||||
|
- dragon
|
||||||
|
- dua-cli
|
||||||
|
- dunst
|
||||||
|
- dwm-custom
|
||||||
|
- dwmblocks-custom
|
||||||
|
- elogind
|
||||||
|
- fd
|
||||||
|
- ffmpeg
|
||||||
|
- ffmpegthumbnailer
|
||||||
|
- firefox
|
||||||
|
- font-firacode-nf-ttf
|
||||||
|
- fswatch
|
||||||
|
- fzf
|
||||||
|
- git
|
||||||
|
- git-lfs
|
||||||
|
- github-cli
|
||||||
|
- glib
|
||||||
|
- glow
|
||||||
|
- gnome-keyring
|
||||||
|
- gnumeric
|
||||||
|
- gnupg2-scdaemon
|
||||||
|
- gpgme
|
||||||
|
- htop
|
||||||
|
- jq
|
||||||
|
- just
|
||||||
|
- k9s
|
||||||
|
- kdash
|
||||||
|
- kubectl
|
||||||
|
- kubernetes-helm
|
||||||
|
- lazygit
|
||||||
|
- lf
|
||||||
|
- libspa-bluetooth
|
||||||
|
- lm_sensors
|
||||||
|
- lsof
|
||||||
|
- lynx
|
||||||
|
- maim
|
||||||
|
- man-db
|
||||||
|
- mediainfo
|
||||||
|
- mime-types
|
||||||
|
- moreutils
|
||||||
|
- mpv
|
||||||
|
- mtr
|
||||||
|
- ncpamixer
|
||||||
|
- neofetch
|
||||||
|
- neovim
|
||||||
|
- nmap
|
||||||
|
- noto-fonts-cjk
|
||||||
|
- noto-fonts-emoji
|
||||||
|
- noto-fonts-ttf
|
||||||
|
- noto-fonts-ttf-extra
|
||||||
|
- nsxiv
|
||||||
|
- ntp
|
||||||
|
- odt2txt
|
||||||
|
- openjdk21
|
||||||
|
- pamixer
|
||||||
|
- pcsc-ccid
|
||||||
|
- picom
|
||||||
|
- pinentry-gnome
|
||||||
|
- pipewire
|
||||||
|
- playerctl
|
||||||
|
- pnpm
|
||||||
|
- polkit
|
||||||
|
- poppler
|
||||||
|
- progress
|
||||||
|
- psmisc
|
||||||
|
- pulsemixer
|
||||||
|
- pv-migrate
|
||||||
|
- pwgen
|
||||||
|
- python3-ansible-lint
|
||||||
|
- python3-devel
|
||||||
|
- python3-neovim
|
||||||
|
- python3-pip
|
||||||
|
- ranger
|
||||||
|
- rbw
|
||||||
|
- ripgrep
|
||||||
|
- rlwrap
|
||||||
|
- rsync
|
||||||
|
- ruby-asciidoctor
|
||||||
|
- rust
|
||||||
|
- rust-analyzer
|
||||||
|
- rust-src
|
||||||
|
- rust-std
|
||||||
|
- seahorse
|
||||||
|
- shellcheck
|
||||||
|
- shfmt
|
||||||
|
- simple-mtpfs
|
||||||
|
- smbclient
|
||||||
|
- socat
|
||||||
|
- socklog-void
|
||||||
|
- st-custom
|
||||||
|
- stow
|
||||||
|
- strace
|
||||||
|
- syncthing
|
||||||
|
- syncthingtray
|
||||||
|
- system-config-printer
|
||||||
|
- tcpdump
|
||||||
|
- terraform
|
||||||
|
- thunderbird
|
||||||
|
- tlp
|
||||||
|
- tmux
|
||||||
|
- tokyonight-theme
|
||||||
|
- trash-util
|
||||||
|
- tree-sitter-devel
|
||||||
|
- unclutter-xfixes
|
||||||
|
- vault
|
||||||
|
- velero
|
||||||
|
- virtualenvwrapper
|
||||||
|
- void-repo-nonfree
|
||||||
|
- vpsm
|
||||||
|
- vsv
|
||||||
|
- wget
|
||||||
|
- wireplumber
|
||||||
|
- xcape
|
||||||
|
- xclip
|
||||||
|
- xdg-user-dirs
|
||||||
|
- xdg-utils
|
||||||
|
- xdotool
|
||||||
|
- xinit
|
||||||
|
- xmenu
|
||||||
|
- xorg
|
||||||
|
- xournalpp
|
||||||
|
- xscreensaver
|
||||||
|
- xsecurelock
|
||||||
|
- xsel
|
||||||
|
- xss-lock
|
||||||
|
- xtools
|
||||||
|
- xwallpaper
|
||||||
|
- xxd
|
||||||
|
- xz
|
||||||
|
- ykpers
|
||||||
|
- yt-dlp
|
||||||
|
- yubikey-manager
|
||||||
|
- zathura
|
||||||
|
- zathura-pdf-mupdf
|
||||||
|
- zk
|
||||||
|
- zsh
|
||||||
|
- zsh-autosuggestions
|
||||||
|
- zsh-completions
|
||||||
|
- zsh-syntax-highlighting
|
||||||
|
- command: ["pnpm", "install", "-g"]
|
||||||
|
list:
|
||||||
|
- "neovim"
|
||||||
|
- command: ["cargo", "install", "-j", "-2"]
|
||||||
|
list:
|
||||||
|
- "oatmeal"
|
||||||
|
- "gpg-tui"
|
||||||
|
- command: ["composer", "global", "require"]
|
||||||
|
list: []
|
||||||
|
- command: ["gem", "install"]
|
||||||
|
list:
|
||||||
|
- asciidoctor
|
||||||
|
- asciidoctor-pdf
|
||||||
|
- asciidoctor
|
||||||
|
- asciidoctor-diagram
|
||||||
|
- pygments.rb
|
||||||
|
- neovim
|
||||||
|
- command: ["cpanm"]
|
||||||
|
list:
|
||||||
|
- Neovim::Ext
|
||||||
|
- command: ["pipx", "--global", "install"]
|
||||||
|
list: []
|
|
@ -1,14 +0,0 @@
|
||||||
.cache
|
|
||||||
.config
|
|
||||||
.config/dwm/autorun.d
|
|
||||||
.local/libexec/
|
|
||||||
.local/log
|
|
||||||
.local/share/
|
|
||||||
.local/state
|
|
||||||
.local/sv
|
|
||||||
Desktop
|
|
||||||
Documents/dev
|
|
||||||
Downloads
|
|
||||||
Pictures/Screenshots
|
|
||||||
Videos
|
|
||||||
.ssh,700
|
|
179
packages.txt
179
packages.txt
|
@ -1,179 +0,0 @@
|
||||||
7zip
|
|
||||||
ansible
|
|
||||||
apache-htpasswd
|
|
||||||
arandr
|
|
||||||
atool
|
|
||||||
bandwhich
|
|
||||||
base-devel
|
|
||||||
base-system
|
|
||||||
bat
|
|
||||||
bind-utils
|
|
||||||
binutils
|
|
||||||
blueman
|
|
||||||
bluez
|
|
||||||
bottom
|
|
||||||
breeze-icons
|
|
||||||
cargo
|
|
||||||
catdoc
|
|
||||||
chafa
|
|
||||||
clipmenu
|
|
||||||
cronie
|
|
||||||
cups
|
|
||||||
cups-filters
|
|
||||||
cups-pdf
|
|
||||||
curl
|
|
||||||
dbus
|
|
||||||
delta
|
|
||||||
dmenu-custom
|
|
||||||
docker
|
|
||||||
docker-buildx
|
|
||||||
docker-compose
|
|
||||||
dragon
|
|
||||||
dua-cli
|
|
||||||
dunst
|
|
||||||
dwm-custom
|
|
||||||
dwmblocks-custom
|
|
||||||
elogind
|
|
||||||
fd
|
|
||||||
ffmpeg
|
|
||||||
ffmpegthumbnailer
|
|
||||||
firefox
|
|
||||||
font-firacode-nf-ttf
|
|
||||||
fswatch
|
|
||||||
fzf
|
|
||||||
git
|
|
||||||
git-lfs
|
|
||||||
github-cli
|
|
||||||
glib
|
|
||||||
glow
|
|
||||||
gnome-keyring
|
|
||||||
gnumeric
|
|
||||||
gnupg2-scdaemon
|
|
||||||
gpgme
|
|
||||||
htop
|
|
||||||
ImageMagick
|
|
||||||
jq
|
|
||||||
just
|
|
||||||
k9s
|
|
||||||
kdash
|
|
||||||
kubectl
|
|
||||||
kubernetes-helm
|
|
||||||
lazygit
|
|
||||||
lf
|
|
||||||
libspa-bluetooth
|
|
||||||
lm_sensors
|
|
||||||
lsof
|
|
||||||
lynx
|
|
||||||
maim
|
|
||||||
man-db
|
|
||||||
mediainfo
|
|
||||||
mime-types
|
|
||||||
moreutils
|
|
||||||
mpv
|
|
||||||
mtr
|
|
||||||
ncpamixer
|
|
||||||
neofetch
|
|
||||||
neovim
|
|
||||||
NetworkManager
|
|
||||||
nmap
|
|
||||||
noto-fonts-cjk
|
|
||||||
noto-fonts-emoji
|
|
||||||
noto-fonts-ttf
|
|
||||||
noto-fonts-ttf-extra
|
|
||||||
nsxiv
|
|
||||||
ntp
|
|
||||||
odt2txt
|
|
||||||
openjdk21
|
|
||||||
pamixer
|
|
||||||
pcsc-ccid
|
|
||||||
picom
|
|
||||||
pinentry-gnome
|
|
||||||
pipewire
|
|
||||||
playerctl
|
|
||||||
pnpm
|
|
||||||
polkit
|
|
||||||
poppler
|
|
||||||
progress
|
|
||||||
psmisc
|
|
||||||
pulsemixer
|
|
||||||
pv-migrate
|
|
||||||
pwgen
|
|
||||||
python3-ansible-lint
|
|
||||||
python3-devel
|
|
||||||
python3-pip
|
|
||||||
python3-neovim
|
|
||||||
ranger
|
|
||||||
rbw
|
|
||||||
ripgrep
|
|
||||||
rlwrap
|
|
||||||
rsync
|
|
||||||
ruby-asciidoctor
|
|
||||||
rust
|
|
||||||
rust-analyzer
|
|
||||||
rust-src
|
|
||||||
rustup
|
|
||||||
seahorse
|
|
||||||
shellcheck
|
|
||||||
shfmt
|
|
||||||
Signal-Desktop
|
|
||||||
simple-mtpfs
|
|
||||||
smbclient
|
|
||||||
socat
|
|
||||||
socklog-void
|
|
||||||
st-custom
|
|
||||||
stow
|
|
||||||
strace
|
|
||||||
syncthing
|
|
||||||
syncthingtray
|
|
||||||
system-config-printer
|
|
||||||
tcpdump
|
|
||||||
terraform
|
|
||||||
thunderbird
|
|
||||||
tlp
|
|
||||||
tmux
|
|
||||||
tokyonight-theme
|
|
||||||
trash-util
|
|
||||||
tree-sitter-devel
|
|
||||||
unclutter-xfixes
|
|
||||||
vault
|
|
||||||
velero
|
|
||||||
virtualenvwrapper
|
|
||||||
void-repo-nonfree
|
|
||||||
vpsm
|
|
||||||
vsv
|
|
||||||
wget
|
|
||||||
wireplumber
|
|
||||||
xcape
|
|
||||||
xclip
|
|
||||||
xdg-user-dirs
|
|
||||||
xdg-utils
|
|
||||||
xdotool
|
|
||||||
xinit
|
|
||||||
xmenu
|
|
||||||
xorg
|
|
||||||
xournalpp
|
|
||||||
xscreensaver
|
|
||||||
xsecurelock
|
|
||||||
xsel
|
|
||||||
xss-lock
|
|
||||||
xtools
|
|
||||||
xwallpaper
|
|
||||||
xxd
|
|
||||||
xz
|
|
||||||
ykpers
|
|
||||||
yt-dlp
|
|
||||||
yubikey-manager
|
|
||||||
zathura
|
|
||||||
zathura-pdf-mupdf
|
|
||||||
zk
|
|
||||||
zsh
|
|
||||||
zsh-autosuggestions
|
|
||||||
zsh-completions
|
|
||||||
zsh-syntax-highlighting
|
|
||||||
|
|
||||||
# TODO: npm install prettier, @fsouza/prettierd neovim
|
|
||||||
# TODO: cargo install oatmeal, bandwhich, gpg-tui
|
|
||||||
# TODO: composer install php-cs-fixer
|
|
||||||
# TODO: gem install asciidoctor asciidoctor-pdf asciidoctor asciidoctor-diagram pygments.rb neovim
|
|
||||||
# TODO: cpanm install Neovim::Ext
|
|
||||||
# TODO: pipx install
|
|
20
services.txt
20
services.txt
|
@ -1,20 +0,0 @@
|
||||||
agetty-tty1
|
|
||||||
agetty-tty2
|
|
||||||
agetty-tty3
|
|
||||||
agetty-tty4
|
|
||||||
agetty-tty5
|
|
||||||
agetty-tty6
|
|
||||||
bluetoothd
|
|
||||||
crond
|
|
||||||
cupsd
|
|
||||||
dbus
|
|
||||||
docker
|
|
||||||
elogind
|
|
||||||
nanoklogd
|
|
||||||
NetworkManager
|
|
||||||
pcscd
|
|
||||||
polkitd
|
|
||||||
smbd
|
|
||||||
socklog-unix
|
|
||||||
tlp
|
|
||||||
udevd
|
|
Loading…
Reference in New Issue