Updates for the void...

This commit is contained in:
2026-06-11 16:32:53 +02:00
parent 24db65b6ed
commit 69527e3d61
9 changed files with 53 additions and 213 deletions
-52
View File
@@ -1,52 +0,0 @@
#!/bin/bash
# ---------------------------------------------------------------------------------
# Bootstrap script for fresh Debian 13 (Trixie) install
# Run this after a minimal install (SSH server + system essentials, no desktop)
# ---------------------------------------------------------------------------------
set -e
echo "🔧 Installing pre-requisites..."
sudo apt install -y curl network-manager nemo pipewire pipewire-pulse wireplumber polkit-kde-agent-1 wl-clipboard
# ---------------------------------------------------------------------------------
# Install DankMaterialShell
# ---------------------------------------------------------------------------------
echo "🎨 Installing DankMaterialShell..."
curl -fsSL https://install.danklinux.com | sh
echo "🔊 Enabling audio and networking services..."
sudo systemctl --user enable --now pipewire pipewire-pulse wireplumber
sudo systemctl enable --now NetworkManager
# ---------------------------------------------------------------------------------
# Fix network interfaces — keep only the loopback interface
# ---------------------------------------------------------------------------------
echo "🌐 Fixing network interfaces..."
echo " Commenting out everything except the lo loopback in /etc/network/interfaces"
sudo sed -i '/^auto\|^iface\|^allow-hotplug/{/lo/!s/^/#/}' /etc/network/interfaces
sudo systemctl restart networking
sudo systemctl restart NetworkManager
sudo systemctl restart dms
# ---------------------------------------------------------------------------------
# Install Helium Browser
# ---------------------------------------------------------------------------------
echo "🌍 Installing Helium Browser..."
curl -fsSL https://raw.githubusercontent.com/imputnet/helium-linux/main/pubkey.asc | sudo gpg --dearmor -o /usr/share/keyrings/helium.gpg
echo "deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/helium.gpg] https://pkg.helium.computer/deb stable main" | sudo tee /etc/apt/sources.list.d/helium.list
sudo apt update && sudo apt install -y helium-bin
# ---------------------------------------------------------------------------------
# Install adw-gtk3 (GTK app theming for DMS)
# ---------------------------------------------------------------------------------
echo "🎨 Installing adw-gtk3..."
curl -s https://julianfairfax.codeberg.page/package-repo/pub.gpg | gpg --dearmor | sudo dd of=/usr/share/keyrings/julians-package-repo.gpg
echo 'deb [ signed-by=/usr/share/keyrings/julians-package-repo.gpg ] https://julianfairfax.codeberg.page/package-repo/debs packages main' | sudo tee /etc/apt/sources.list.d/julians-package-repo.list
sudo apt update && sudo apt install -y adw-gtk3
# ---------------------------------------------------------------------------------
echo ""
echo "✅ Bootstrap complete."
echo ""
-1
View File
@@ -8,7 +8,6 @@ normal = { family = "JetBrainsMono Nerd Font", style = "Regular" }
[window]
padding.x = 10
padding.y = 10
decorations = "None"
[cursor]
style.shape = "Beam"
+3 -4
View File
@@ -5,8 +5,8 @@
set -g fish_greeting
# Core settings
set -gx EDITOR "/usr/local/nvim_012/bin/nvim"
set -gx VISUAL "/usr/local/nvim_012/bin/nvim"
set -gx EDITOR "nvim"
set -gx VISUAL "nvim"
set -gx MANPAGER "nvim +Man!"
set -gx BROWSER firefox
# set -gx TERM xterm-256color
@@ -76,7 +76,6 @@ alias free='free -h'
alias bat='batcat --theme="gruvbox-dark" --paging=never '
# Application shortcuts
alias nvim='/usr/local/nvim_012/bin/nvim'
alias vim='nvim'
alias vi='nvim'
alias v='nvim'
@@ -117,7 +116,7 @@ function pp
set project (echo $project | cut -f2)
cd $project && /usr/local/nvim_012/bin/nvim $project
cd $project && nvim $project
end
# ==============================================================================
+1 -1
View File
@@ -42,7 +42,7 @@ map("v", "<S-Tab>", "<gv")
map("v", "<Tab>" , ">gv")
map("n", "<C-p>", ":find ")
map("n", "<C-e>", ":Lex<CR>")
map("n", "<C-x>", ":bd<CR>")
map("n", "<C-backspace>", ":bd<CR>")
map("i", "<C-h>", vim.lsp.buf.signature_help)
-- -----------------------------
+43 -13
View File
@@ -113,13 +113,47 @@ if [ "$DO_INSTALL" = true ]; then
fi
if [ "$DO_INSTALL" = true ]; then
# -----------------------------------------------------------------------------
## ADD NONFREE REPOS
# -----------------------------------------------------------------------------
echo "📦 Checking nonfree repositories..."
REPO_PACKAGES=(void-repo-nonfree)
# Only add multilib-nonfree on x86_64
if [ "$(uname -m)" = "x86_64" ]; then
REPO_PACKAGES+=(void-repo-multilib-nonfree)
fi
MISSING_REPOS=()
for repo in "${REPO_PACKAGES[@]}"; do
if ! xbps-query -p pkgver "$repo" >/dev/null 2>&1; then
MISSING_REPOS+=("$repo")
fi
done
if [ ${#MISSING_REPOS[@]} -eq 0 ]; then
echo "✅ Nonfree repositories already enabled."
else
echo "📦 Enabling repositories: ${MISSING_REPOS[*]}"
sudo xbps-install -Sy "${MISSING_REPOS[@]}"
fi
echo ""
# -----------------------------------------------------------------------------
## INSTALL REQUIRED PACKAGES
# -----------------------------------------------------------------------------
REQUIRED_PACKAGES=(
# system essentials
wget curl git unzip lf jq alacritty fzf
fd-find direnv ripgrep bat syncthing
build-essential make bear valgrind tree
ca-certificates gnupg libfuse2 rsync fish
fonts-symbola fonts-noto fonts-noto-color-emoji
fd ripgrep bat direnv base-devel make valgrind tree
ca-certificates gnupg fuse rsync fish-shell
noto-fonts-ttf noto-fonts-emoji
# void specific
xdotool wmctrl kanata tree-sitter-cli gitu
# lazydocker
)
MISSING_PACKAGES=()
@@ -127,11 +161,9 @@ if [ "$DO_INSTALL" = true ]; then
echo "🔍 Checking for missing packages..."
echo ""
# Check which packages are missing using dpkg
# Check which packages are missing using xbps-query
for pkg in "${REQUIRED_PACKAGES[@]}"; do
# dpkg-query checks for the installed status.
# We check for a non-zero exit status which indicates the package is NOT installed.
if ! dpkg-query -W -f='${Status}' "$pkg" 2>/dev/null | grep -q "install ok installed"; then
if ! xbps-query -p pkgver "$pkg" >/dev/null 2>&1; then
MISSING_PACKAGES+=("$pkg")
fi
done
@@ -139,13 +171,11 @@ if [ "$DO_INSTALL" = true ]; then
if [ ${#MISSING_PACKAGES[@]} -eq 0 ]; then
echo "✅ All required packages are already installed."
else
echo "📦 Updating package lists..."
# Update package lists before installing
sudo apt update
echo "📦 Syncing repository indexes..."
sudo xbps-install -S
echo "📦 Installing missing packages: ${MISSING_PACKAGES[*]}"
# Use sudo apt install for installing on Debian
sudo apt install "${MISSING_PACKAGES[@]}"
sudo xbps-install -y "${MISSING_PACKAGES[@]}"
fi
echo ""
-30
View File
@@ -1,30 +0,0 @@
#!/bin/bash
# ---------------------------------------------------------------------------------
# Docker install recipe
# ---------------------------------------------------------------------------------
set -e
echo "Removing old Docker packages if present..."
sudo apt-get remove -y docker docker-engine docker.io containerd runc 2>/dev/null || true
echo "Adding Docker signing key..."
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "Adding Docker repository..."
bash -c 'echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null'
echo "Installing Docker..."
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
echo "Adding current user to docker group..."
sudo groupadd docker 2>/dev/null || true
sudo usermod -aG docker $USER
echo ""
echo "✓ Docker install complete."
echo "Log out and back in for group changes to take effect."
-83
View File
@@ -1,83 +0,0 @@
#!/bin/bash
# ---------------------------------------------------------------------------------
# Kanata install recipe
# Downloads the latest Linux binary from GitHub, installs to ~/.local/bin,
# and sets up a systemd user service.
# ---------------------------------------------------------------------------------
set -e
INSTALL_DIR="$HOME/.local/bin"
CONFIG_DIR="$HOME/.config/kanata"
SERVICE_PATH="/lib/systemd/system/kanata.service"
BINARY_NAME="kanata"
# ---------------------------------------------------------------------------------
# Fetch latest release version from GitHub API
# ---------------------------------------------------------------------------------
echo "🔍 Fetching latest Kanata release..."
LATEST_VERSION=$(curl -fsSL "https://api.github.com/repos/jtroo/kanata/releases/latest" | grep '"tag_name"' | head -1 | grep -o 'v[0-9.]*')
if [ -z "$LATEST_VERSION" ]; then
echo "❌ Failed to fetch latest Kanata version."
exit 1
fi
echo "✅ Latest Kanata version: $LATEST_VERSION"
# ---------------------------------------------------------------------------------
# Download binary
# ---------------------------------------------------------------------------------
DOWNLOAD_URL="https://github.com/jtroo/kanata/releases/download/${LATEST_VERSION}/kanata_linux_x64"
echo "📦 Downloading kanata_linux_x64..."
mkdir -p "$INSTALL_DIR"
curl -fsSL "$DOWNLOAD_URL" -o "$INSTALL_DIR/$BINARY_NAME"
chmod +x "$INSTALL_DIR/$BINARY_NAME"
echo "✅ Installed: $INSTALL_DIR/$BINARY_NAME"
# ---------------------------------------------------------------------------------
# Verify a config file exists
# ---------------------------------------------------------------------------------
if [ ! -f "$CONFIG_DIR/kanata.kbd" ]; then
echo "⚠️ No config found at $CONFIG_DIR/kanata.kbd"
echo " Make sure your dotfiles are synced before enabling the service."
fi
# ---------------------------------------------------------------------------------
# Write systemd service file
# ---------------------------------------------------------------------------------
echo "⚙️ Writing systemd service to $SERVICE_PATH..."
sudo tee "$SERVICE_PATH" > /dev/null <<EOF
[Unit]
Description=Kanata keyboard remapper
Documentation=https://github.com/jtroo/kanata
[Service]
Type=simple
ExecStart=$INSTALL_DIR/$BINARY_NAME --cfg $CONFIG_DIR/kanata.kbd
Restart=never
[Install]
WantedBy=default.target
EOF
echo "✅ Service file written."
# ---------------------------------------------------------------------------------
# Enable and start the service
# ---------------------------------------------------------------------------------
echo "🚀 Enabling and starting kanata service..."
sudo systemctl daemon-reload
sudo systemctl enable kanata.service
sudo systemctl start kanata.service
echo ""
echo "✅ Kanata setup complete."
echo " Binary : $INSTALL_DIR/$BINARY_NAME"
echo " Config : $CONFIG_DIR/kanata.kbd"
echo " Service: systemctl status kanata"
+3 -13
View File
@@ -1,32 +1,22 @@
#!/bin/bash
# ---------------------------------------------------------------------------------
# Odin compiler install recipe
# Target: Debian 13 Trixie
# Target: Void Linux
# Builds from source - recommended method on Linux
# ---------------------------------------------------------------------------------
set -e
ODIN_DIR="$HOME/odin"
echo "Installing Odin build dependencies..."
sudo apt-get update
sudo apt-get install -y clang llvm lld
sudo xbps-install -Sy llvm18 llvm18-devel clang18 libstdc++-devel
echo "Cloning Odin repository..."
git clone https://github.com/odin-lang/Odin "$ODIN_DIR"
cd "$ODIN_DIR"
echo "Building Odin compiler..."
./build_odin.sh release
echo "Adding Odin to PATH..."
if ! grep -q 'odin' "$HOME/.bashrc"; then
echo "export PATH=\$PATH:$ODIN_DIR" >> "$HOME/.bashrc"
fi
LLVM_CONFIG=$(command -v llvm-config) make release-native
echo ""
echo "✓ Odin install complete."
echo " Compiler: $ODIN_DIR/odin"
echo ""
echo " Run: source ~/.bashrc (or open a new terminal)"
echo " Then verify with: odin version"
+3 -16
View File
@@ -1,26 +1,13 @@
#!/bin/bash
# ---------------------------------------------------------------------------------
# Raylib-go dependency install recipe
# Target: Debian 13 Trixie
# Installs system libs needed for github.com/gen2brain/raylib-go
# Target: Void Linux
# Installs system libs needed for raylib to run
# ---------------------------------------------------------------------------------
set -e
echo "Installing raylib-go system dependencies..."
sudo apt-get update
sudo apt-get install -y \
build-essential \
pkg-config \
libasound2-dev \
libx11-dev \
libxrandr-dev \
libxi-dev \
libxcursor-dev \
libxinerama-dev \
libgl1-mesa-dev \
libglu1-mesa-dev \
libwayland-dev \
libxkbcommon-dev
sudo xbps-install make alsa-lib-devel libglvnd-devel libX11-devel libXrandr-devel libXi-devel libXcursor-devel libXinerama-devel mesa MesaLib-devel
echo ""
echo "✓ Raylib-go dependencies installed."