Updates for the void...
This commit is contained in:
@@ -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 ""
|
||||
@@ -8,7 +8,6 @@ normal = { family = "JetBrainsMono Nerd Font", style = "Regular" }
|
||||
[window]
|
||||
padding.x = 10
|
||||
padding.y = 10
|
||||
decorations = "None"
|
||||
|
||||
[cursor]
|
||||
style.shape = "Beam"
|
||||
|
||||
@@ -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
|
||||
|
||||
# ==============================================================================
|
||||
|
||||
@@ -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
@@ -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 ""
|
||||
|
||||
@@ -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."
|
||||
@@ -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
@@ -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"
|
||||
|
||||
@@ -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."
|
||||
|
||||
Reference in New Issue
Block a user