Compare commits
10 commits
9ae31dc4be
...
9f8e6edf23
| Author | SHA1 | Date | |
|---|---|---|---|
| 9f8e6edf23 | |||
| e0c33b01b7 | |||
| 8ca04dec25 | |||
| c349ad7738 | |||
| ea09e028d4 | |||
| cf4e828b1b | |||
| 137fcd6e77 | |||
| 7099263341 | |||
| 23f1ca1ada | |||
| 8b0ac14305 |
37 changed files with 198 additions and 80 deletions
|
|
@ -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)
|
||||||
|
|
|
||||||
10
.config/setup/02-install-debian-testing.sh
Executable file
10
.config/setup/02-install-debian-testing.sh
Executable 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
|
||||||
|
|
@ -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[@]}"
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
#! /usr/bin/sh
|
|
||||||
|
|
||||||
resync-git-sync
|
|
||||||
30
.config/setup/06-install-pipx-packages.sh
Executable file
30
.config/setup/06-install-pipx-packages.sh
Executable 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[@]}"
|
||||||
|
|
@ -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'
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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
|
||||||
6
.config/setup/18-install-git-sync.sh
Executable file
6
.config/setup/18-install-git-sync.sh
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
#! /usr/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
IFS=$'\n\t'
|
||||||
|
|
||||||
|
resync-git-sync
|
||||||
|
|
@ -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
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
#! /usr/bin/sh
|
|
||||||
|
|
||||||
ghup
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
#! /usr/bin/sh
|
|
||||||
|
|
||||||
cargo install zellij
|
|
||||||
|
|
@ -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}"
|
||||||
|
|
||||||
6
.config/setup/42-install-github-packages.sh
Executable file
6
.config/setup/42-install-github-packages.sh
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
#! /usr/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
IFS=$'\n\t'
|
||||||
|
|
||||||
|
ghup
|
||||||
|
|
@ -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
|
||||||
6
.config/setup/50-install-cargo-packages.sh
Executable file
6
.config/setup/50-install-cargo-packages.sh
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
#! /usr/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
IFS=$'\n\t'
|
||||||
|
|
||||||
|
cargo install zellij
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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}" ]
|
||||||
|
|
|
||||||
|
|
@ -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}"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
#! /usr/bin/sh
|
#! /usr/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
IFS=$'\n\t'
|
||||||
|
|
||||||
listopts() {
|
listopts() {
|
||||||
echo "⏼ Shut down"
|
echo "⏼ Shut down"
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
"$@"
|
"$@"
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
#! /usr/bin/sh
|
#! /usr/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
IFS=$'\n\t'
|
||||||
|
|
||||||
podman run \
|
podman run \
|
||||||
--rm \
|
--rm \
|
||||||
|
|
|
||||||
|
|
@ -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}" ]
|
||||||
|
|
|
||||||
|
|
@ -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/"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
"list")
|
||||||
while read -r repo_root; do
|
while read -r repo_root; do
|
||||||
list_repos "${repo_root}"
|
list_repos "${repo_root}"
|
||||||
done < "${REPO_ROOT_FILE}"
|
done < "${REPO_ROOT_FILE}"
|
||||||
else
|
;;
|
||||||
|
"sync")
|
||||||
while read -r repo_root; do
|
while read -r repo_root; do
|
||||||
for repo in $(list_repos "${repo_root}"); do
|
for repo in $(list_repos "${repo_root}"); do
|
||||||
sync_repo "${repo}"
|
sync_repo "${repo}"
|
||||||
done
|
done
|
||||||
done < "${REPO_ROOT_FILE}"
|
done < "${REPO_ROOT_FILE}"
|
||||||
fi
|
;;
|
||||||
|
*)
|
||||||
|
echo Unknown option \""$1"\"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
#! /usr/bin/sh
|
#! /usr/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
IFS=$'\n\t'
|
||||||
|
|
||||||
listopts() {
|
listopts() {
|
||||||
echo "📷 Focused monitor"
|
echo "📷 Focused monitor"
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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 \
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue