Compare commits

..

10 commits

37 changed files with 198 additions and 80 deletions

View file

@ -8,6 +8,11 @@
(zerop (call-process "git" nil nil nil (zerop (call-process "git" nil nil nil
"-C" dirname "ls-files" "--error-unmatch" filename)))) "-C" dirname "ls-files" "--error-unmatch" filename))))
(defun should-auto-save-current-buffer-p ()
"Check whether the current buffer should be autosaved."
(when buffer-file-name
(git-tracked-file-p buffer-file-name)))
(defun find-init-file () (defun find-init-file ()
"Find the user's init file" "Find the user's init file"
(interactive) (interactive)
@ -42,7 +47,7 @@
; keep-sorted start ; keep-sorted start
(auto-save-interval 20) (auto-save-interval 20)
(auto-save-visited-mode t) (auto-save-visited-mode t)
(auto-save-visited-predicate (lambda () (git-tracked-file-p buffer-file-name))) (auto-save-visited-predicate #'should-auto-save-current-buffer)
(column-number-mode t) (column-number-mode t)
(dired-dwim-target 'dired-dwim-target-next) (dired-dwim-target 'dired-dwim-target-next)
(display-time-24hr-format t) (display-time-24hr-format t)

View file

@ -0,0 +1,10 @@
#! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
sudo cp "$(systemd-path user-configuration)"/setup/sources.list.d/debian.sources /etc/apt/sources.list.d/
sudo rm /etc/apt/sources.list
sudo apt update
sudo apt --yes full-upgrade

View file

@ -10,6 +10,7 @@ DEB_PKGS=(
audacity audacity
avahi-daemon avahi-daemon
awscli awscli
blueman
bluez bluez
borgbackup borgbackup
build-essential build-essential
@ -53,6 +54,7 @@ DEB_PKGS=(
mesa-utils mesa-utils
minicom minicom
mpv mpv
network-manager-applet
network-manager-openvpn network-manager-openvpn
nmap nmap
ntfs-3g ntfs-3g
@ -104,33 +106,5 @@ META_PKGS=(
# keep-sorted end # keep-sorted end
) )
PIPX_PKGS=(
# keep-sorted start
python-lsp-server
rshell
ruff
# keep-sorted end
)
sudo DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --yes "${DEB_PKGS[@]}" sudo DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --yes "${DEB_PKGS[@]}"
sudo DEBIAN_FRONTEND=noninteractive apt-get install --install-recommends --yes "${META_PKGS[@]}" sudo DEBIAN_FRONTEND=noninteractive apt-get install --install-recommends --yes "${META_PKGS[@]}"
echo 'kernel.perf_event_paranoid=1' | sudo tee '/etc/sysctl.d/51-enable-perf-events.conf'
if (( "${#PIPX_PKGS[@]}" != 0 )); then
pipx install "${PIPX_PKGS[@]}"
fi
PYLSP_PLUGINS=(
# keep-sorted start
fs
podman
pydantic
pylsp-mypy
pylsp-rope
pytest
types-pyxdg
# keep-sorted end
)
pipx inject python-lsp-server "${PYLSP_PLUGINS[@]}"

View file

@ -1,3 +0,0 @@
#! /usr/bin/sh
resync-git-sync

View file

@ -0,0 +1,30 @@
#! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
PIPX_PKGS=(
# keep-sorted start
python-lsp-server
rshell
ruff
# keep-sorted end
)
if (( "${#PIPX_PKGS[@]}" != 0 )); then
pipx install "${PIPX_PKGS[@]}"
fi
PYLSP_PLUGINS=(
# keep-sorted start
fs
podman
pydantic
pylsp-mypy
pylsp-rope
pytest
types-pyxdg
# keep-sorted end
)
pipx inject python-lsp-server "${PYLSP_PLUGINS[@]}"

View file

@ -1,4 +1,7 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
systemctl --user enable --now syncthing.service systemctl --user enable --now syncthing.service
@ -7,3 +10,5 @@ mkdir --parents ~/Pictures/screenshots
pre-commit install pre-commit install
sudo usermod --append --groups dialout "${USER}" sudo usermod --append --groups dialout "${USER}"
echo 'kernel.perf_event_paranoid=1' | sudo tee '/etc/sysctl.d/51-enable-perf-events.conf'

View file

@ -1,4 +1,7 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
# keep-sorted start # keep-sorted start
systemctl --user enable --now backup.timer systemctl --user enable --now backup.timer

View file

@ -1,4 +1,7 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
sudo cp "$(systemd-path user-configuration)"/setup/sources.list.d/tor.sources /etc/apt/sources.list.d/ sudo cp "$(systemd-path user-configuration)"/setup/sources.list.d/tor.sources /etc/apt/sources.list.d/
sudo chmod 644 /etc/apt/sources.list.d/tor.sources sudo chmod 644 /etc/apt/sources.list.d/tor.sources

View file

@ -0,0 +1,6 @@
#! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
resync-git-sync

View file

@ -1,4 +1,7 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
curl --location --output-dir /tmp --remote-name https://zoom.us/client/latest/zoom_amd64.deb curl --location --output-dir /tmp --remote-name https://zoom.us/client/latest/zoom_amd64.deb
sudo apt-get install --no-install-recommends --yes /tmp/zoom_amd64.deb sudo apt-get install --no-install-recommends --yes /tmp/zoom_amd64.deb

View file

@ -1,3 +0,0 @@
#! /usr/bin/sh
ghup

View file

@ -1,3 +0,0 @@
#! /usr/bin/sh
cargo install zellij

View file

@ -1,6 +1,9 @@
#! /usr/bin/sh #! /usr/bin/bash
sudo mkdir -p "${BORG_REPO}" set -euo pipefail
IFS=$'\n\t'
sudo mkdir --parents "${BORG_REPO}"
sudo chown "${USER}":"${USER}" "${BORG_REPO}" sudo chown "${USER}":"${USER}" "${BORG_REPO}"
sudo chmod 700 "${BORG_REPO}" sudo chmod 700 "${BORG_REPO}"

View file

@ -0,0 +1,6 @@
#! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
ghup

View file

@ -1,8 +1,11 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
projdir="$(systemd-path user)"/Projects projdir="$(systemd-path user)"/Projects
mkdir -p "${projdir}" mkdir --parents "${projdir}"
rm -rf "${projdir}/lilypond" rm --force --recursive "${projdir}/lilypond"
cd "${projdir}" || exit cd "${projdir}" || exit
git clone --depth=1 https://github.com/lilypond/lilypond git clone --depth=1 https://github.com/lilypond/lilypond
cd lilypond || exit cd lilypond || exit

View file

@ -0,0 +1,6 @@
#! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
cargo install zellij

View file

@ -294,6 +294,9 @@ bar {
} }
} }
exec blueman-applet
exec nm-applet
workspace_layout tabbed workspace_layout tabbed
for_window [class="."] inhibit_idle fullscreen for_window [class="."] inhibit_idle fullscreen
for_window [app_id="."] inhibit_idle fullscreen for_window [app_id="."] inhibit_idle fullscreen

View file

@ -1,7 +1,10 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
STATE_DIR="$(systemd-path user-state-private)"/github-versions STATE_DIR="$(systemd-path user-state-private)"/github-versions
mkdir -p "${STATE_DIR}" mkdir --parents "${STATE_DIR}"
github_update() { github_update() {
package="$1" package="$1"

View file

@ -1,4 +1,7 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
rebase_marker="$(git rev-parse --show-toplevel)/.git/rebase-merge/done" rebase_marker="$(git rev-parse --show-toplevel)/.git/rebase-merge/done"
while [ -f "${rebase_marker}" ] while [ -f "${rebase_marker}" ]

View file

@ -1,3 +1,6 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
zellij delete-session --force "${ZELLIJ_SESSION_NAME}" zellij delete-session --force "${ZELLIJ_SESSION_NAME}"

View file

@ -1,4 +1,7 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
listopts() { listopts() {
echo "⏼ Shut down" echo "⏼ Shut down"

View file

@ -1,8 +1,11 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
TS_DIR="$(systemd-path user-state-private)"/backup TS_DIR="$(systemd-path user-state-private)"/backup
mkdir -p "${TS_DIR}" mkdir --parents "${TS_DIR}"
backup () { backup () {
target=$1 target=$1

View file

@ -1,4 +1,7 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
sudo sysctl net.ipv6.conf.all.disable_ipv6=1 sudo sysctl net.ipv6.conf.all.disable_ipv6=1
"$@" "$@"

View file

@ -1,4 +1,7 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
WATCHLIST="$(systemd-path user-shared)"/package-alert/watchlist WATCHLIST="$(systemd-path user-shared)"/package-alert/watchlist

View file

@ -1,4 +1,7 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
podman run \ podman run \
--rm \ --rm \

View file

@ -1,4 +1,7 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
REPO_DIR="$(systemd-path user-state-private)"/git-sync REPO_DIR="$(systemd-path user-state-private)"/git-sync
if [ -d "${REPO_DIR}" ] if [ -d "${REPO_DIR}" ]

View file

@ -1,4 +1,7 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
export BORG_REPO="/media/backup/" export BORG_REPO="/media/backup/"

View file

@ -1,4 +1,7 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
REPO_ROOT_FILE="$(systemd-path user-state-private)"/repo-roots/repo-roots REPO_ROOT_FILE="$(systemd-path user-state-private)"/repo-roots/repo-roots
@ -16,14 +19,21 @@ sync_repo () {
echo echo
} }
if [ "list" = "$1" ]; then case "${1:-sync}" in
while read -r repo_root; do "list")
list_repos "${repo_root}" while read -r repo_root; do
done < "${REPO_ROOT_FILE}" list_repos "${repo_root}"
else done < "${REPO_ROOT_FILE}"
while read -r repo_root; do ;;
for repo in $(list_repos "${repo_root}"); do "sync")
sync_repo "${repo}" while read -r repo_root; do
done for repo in $(list_repos "${repo_root}"); do
done < "${REPO_ROOT_FILE}" sync_repo "${repo}"
fi done
done < "${REPO_ROOT_FILE}"
;;
*)
echo Unknown option \""$1"\"
exit 1
;;
esac

View file

@ -1,4 +1,7 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
listopts() { listopts() {
echo "📷 Focused monitor" echo "📷 Focused monitor"

View file

@ -1,4 +1,7 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
# Documentation available in https://github.com/chubin/wttr.in # Documentation available in https://github.com/chubin/wttr.in
curl --http1.1 --show-error --silent 'https://wttr.in/?0&m&q&T&format=3' > /tmp/weather-report.txt curl --http1.1 --show-error --silent 'https://wttr.in/?0&m&q&T&format=3' > /tmp/weather-report.txt

View file

@ -1,4 +1,7 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
apt_update() { apt_update() {
sudo --reset-timestamp sudo --reset-timestamp

View file

@ -1,4 +1,7 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
podman --transient-store run --rm -ti \ podman --transient-store run --rm -ti \
--env WAYLAND_DISPLAY \ --env WAYLAND_DISPLAY \

View file

@ -1,4 +1,7 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
package=dolt package=dolt
repo=dolthub/dolt repo=dolthub/dolt

View file

@ -1,4 +1,7 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
package=kingfisher package=kingfisher
repo=mongodb/kingfisher repo=mongodb/kingfisher

View file

@ -1,4 +1,7 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
package=minikube package=minikube
repo=kubernetes/minikube repo=kubernetes/minikube

View file

@ -1,4 +1,7 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
package=rust-analyzer package=rust-analyzer
repo=rust-lang/rust-analyzer repo=rust-lang/rust-analyzer

View file

@ -1,4 +1,7 @@
#! /usr/bin/sh #! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
package=uv package=uv
repo=astral-sh/uv repo=astral-sh/uv