dotfiles

dot files
git clone git://git.rr3.xyz/dotfiles | git clone gits://git.rr3.xyz/dotfiles
Log | Files | Refs | Submodules

commit b9fec83ae3d1a611e50b721f19698f53ef84db90
parent 108b4f4aed545baa86512a0d1d603a453868bec2
Author: Robert Russell <robert@rr3.xyz>
Date:   Sun, 26 Jul 2026 23:00:56 -0700

Turn X config into graft package

Diffstat:
M.gitmodules | 12++++++++++++
D.xinitrc | 16----------------
Rkeyboard/custom.xkb -> keyboard/keymap.xkb | 0
Mshell/.config/shinit.d/10-util.sh | 9+++++++++
Ax/.graft.sh | 27+++++++++++++++++++++++++++
Ax/.local/share/keymap.xkb | 2++
Ax/.xinitrc | 8++++++++
Ax/README | 1+
Ax/dmenu | 1+
Ax/dwm | 1+
Ax/slock | 1+
Ax/status | 1+
12 files changed, 63 insertions(+), 16 deletions(-)

diff --git a/.gitmodules b/.gitmodules @@ -1,3 +1,15 @@ [submodule "z/z"] path = z/z url = https://github.com/rupa/z.git +[submodule "x/dwm"] + path = x/dwm + url = gits://git.rr3.xyz/dwm +[submodule "x/dmenu"] + path = x/dmenu + url = gits://git.rr3.xyz/dmenu +[submodule "x/slock"] + path = x/slock + url = gits://git.rr3.xyz/slock +[submodule "x/status"] + path = x/status + url = gits://git.rr3.xyz/status diff --git a/.xinitrc b/.xinitrc @@ -1,16 +0,0 @@ -error() { - echo "$1" 1>&2 - exit 1 -} - -xkbcomp "$HOME"/dotfiles/keyboard/custom.xkb $DISPLAY || error "failed to set keymap" - -[ -f ~/.Xresources ] && xrdb -merge ~/.Xresources -xhost +local: - -while true; do statusupd; sleep 5; done & - -pipewire & -pipewire-pulse & -dunst & -exec dbus-run-session dwm diff --git a/keyboard/custom.xkb b/keyboard/keymap.xkb diff --git a/shell/.config/shinit.d/10-util.sh b/shell/.config/shinit.d/10-util.sh @@ -7,6 +7,15 @@ have() { command -v "$1" >/dev/null 2>&1 } +echo_lines() { + [ $# -ge 1 ] && printf "%s\n" "$@" +} + +fail() { + echo_lines "$@" >&2 + exit 1 +} + is_interactive() { if [ $# -ne 0 ]; then echo "Usage: is_interactive" >&2 diff --git a/x/.graft.sh b/x/.graft.sh @@ -0,0 +1,27 @@ +make_install_submodule() { + local err + if ! err="$(git submodule update --init "$1")"; then + msg_error "failed to fetch $1" "$err" + return 1 + fi + if ! err="$(cd "$1" && make)"; then + msg_error "failed to build $1" "$err" + return 1 + fi + if ! err="$(cd "$1" && make install DESTDIR="$ROOT" PREFIX=/.local)"; then + msg_error "failed to install $1" "$err" + return 1 + fi + msg green "" "installed $1" +} + +make_install_submodule dmenu +make_install_submodule dwm +make_install_submodule status +make_install_submodule slock +msg_note "you must adjust slock with root:" \ + "chown root:root $ROOT/.local/bin/slock" \ + "chmod u+s $ROOT/.local/bin/slock" + +link .local/share/keymap.xkb +link .xinitrc diff --git a/x/.local/share/keymap.xkb b/x/.local/share/keymap.xkb @@ -0,0 +1 @@ +../../../keyboard/keymap.xkb +\ No newline at end of file diff --git a/x/.xinitrc b/x/.xinitrc @@ -0,0 +1,8 @@ +xkbcomp "$HOME"/.local/share/keymap.xkb "$DISPLAY" || fail "failed to set keymap" +[ -f "$HOME"/.Xresources ] && xrdb -merge "$HOME"/.Xresources +xhost +local: + +have status_update && while true; do status_update; sleep 1; done & +have pipewire && pipewire & pipewire-pulse & +have dunst && dunst & +exec dbus-run-session dwm diff --git a/x/README b/x/README @@ -0,0 +1 @@ +TODO: Move status into this repo? diff --git a/x/dmenu b/x/dmenu @@ -0,0 +1 @@ +Subproject commit a1f417186cb8a1315e4de7a7e3450aaab4608b84 diff --git a/x/dwm b/x/dwm @@ -0,0 +1 @@ +Subproject commit 3c1a3e29b66f61451b6f357b23ea40986ec55579 diff --git a/x/slock b/x/slock @@ -0,0 +1 @@ +Subproject commit dc0fa4dbf1d619403cb78013102704e6790e9761 diff --git a/x/status b/x/status @@ -0,0 +1 @@ +Subproject commit 65203fb7b682742eed931360cd255070c5ef8845