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]
|
[window]
|
||||||
padding.x = 10
|
padding.x = 10
|
||||||
padding.y = 10
|
padding.y = 10
|
||||||
decorations = "None"
|
|
||||||
|
|
||||||
[cursor]
|
[cursor]
|
||||||
style.shape = "Beam"
|
style.shape = "Beam"
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
set -g fish_greeting
|
set -g fish_greeting
|
||||||
|
|
||||||
# Core settings
|
# Core settings
|
||||||
set -gx EDITOR "/usr/local/nvim_012/bin/nvim"
|
set -gx EDITOR "nvim"
|
||||||
set -gx VISUAL "/usr/local/nvim_012/bin/nvim"
|
set -gx VISUAL "nvim"
|
||||||
set -gx MANPAGER "nvim +Man!"
|
set -gx MANPAGER "nvim +Man!"
|
||||||
set -gx BROWSER firefox
|
set -gx BROWSER firefox
|
||||||
# set -gx TERM xterm-256color
|
# set -gx TERM xterm-256color
|
||||||
@@ -76,7 +76,6 @@ alias free='free -h'
|
|||||||
alias bat='batcat --theme="gruvbox-dark" --paging=never '
|
alias bat='batcat --theme="gruvbox-dark" --paging=never '
|
||||||
|
|
||||||
# Application shortcuts
|
# Application shortcuts
|
||||||
alias nvim='/usr/local/nvim_012/bin/nvim'
|
|
||||||
alias vim='nvim'
|
alias vim='nvim'
|
||||||
alias vi='nvim'
|
alias vi='nvim'
|
||||||
alias v='nvim'
|
alias v='nvim'
|
||||||
@@ -117,7 +116,7 @@ function pp
|
|||||||
|
|
||||||
set project (echo $project | cut -f2)
|
set project (echo $project | cut -f2)
|
||||||
|
|
||||||
cd $project && /usr/local/nvim_012/bin/nvim $project
|
cd $project && nvim $project
|
||||||
end
|
end
|
||||||
|
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ map("v", "<S-Tab>", "<gv")
|
|||||||
map("v", "<Tab>" , ">gv")
|
map("v", "<Tab>" , ">gv")
|
||||||
map("n", "<C-p>", ":find ")
|
map("n", "<C-p>", ":find ")
|
||||||
map("n", "<C-e>", ":Lex<CR>")
|
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)
|
map("i", "<C-h>", vim.lsp.buf.signature_help)
|
||||||
|
|
||||||
-- -----------------------------
|
-- -----------------------------
|
||||||
|
|||||||
+43
-13
@@ -113,13 +113,47 @@ if [ "$DO_INSTALL" = true ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$DO_INSTALL" = true ]; then
|
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=(
|
REQUIRED_PACKAGES=(
|
||||||
# system essentials
|
# system essentials
|
||||||
wget curl git unzip lf jq alacritty fzf
|
wget curl git unzip lf jq alacritty fzf
|
||||||
fd-find direnv ripgrep bat syncthing
|
fd ripgrep bat direnv base-devel make valgrind tree
|
||||||
build-essential make bear valgrind tree
|
ca-certificates gnupg fuse rsync fish-shell
|
||||||
ca-certificates gnupg libfuse2 rsync fish
|
noto-fonts-ttf noto-fonts-emoji
|
||||||
fonts-symbola fonts-noto fonts-noto-color-emoji
|
# void specific
|
||||||
|
xdotool wmctrl kanata tree-sitter-cli gitu
|
||||||
|
# lazydocker
|
||||||
)
|
)
|
||||||
|
|
||||||
MISSING_PACKAGES=()
|
MISSING_PACKAGES=()
|
||||||
@@ -127,11 +161,9 @@ if [ "$DO_INSTALL" = true ]; then
|
|||||||
echo "🔍 Checking for missing packages..."
|
echo "🔍 Checking for missing packages..."
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# Check which packages are missing using dpkg
|
# Check which packages are missing using xbps-query
|
||||||
for pkg in "${REQUIRED_PACKAGES[@]}"; do
|
for pkg in "${REQUIRED_PACKAGES[@]}"; do
|
||||||
# dpkg-query checks for the installed status.
|
if ! xbps-query -p pkgver "$pkg" >/dev/null 2>&1; then
|
||||||
# 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
|
|
||||||
MISSING_PACKAGES+=("$pkg")
|
MISSING_PACKAGES+=("$pkg")
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@@ -139,13 +171,11 @@ if [ "$DO_INSTALL" = true ]; then
|
|||||||
if [ ${#MISSING_PACKAGES[@]} -eq 0 ]; then
|
if [ ${#MISSING_PACKAGES[@]} -eq 0 ]; then
|
||||||
echo "✅ All required packages are already installed."
|
echo "✅ All required packages are already installed."
|
||||||
else
|
else
|
||||||
echo "📦 Updating package lists..."
|
echo "📦 Syncing repository indexes..."
|
||||||
# Update package lists before installing
|
sudo xbps-install -S
|
||||||
sudo apt update
|
|
||||||
|
|
||||||
echo "📦 Installing missing packages: ${MISSING_PACKAGES[*]}"
|
echo "📦 Installing missing packages: ${MISSING_PACKAGES[*]}"
|
||||||
# Use sudo apt install for installing on Debian
|
sudo xbps-install -y "${MISSING_PACKAGES[@]}"
|
||||||
sudo apt install "${MISSING_PACKAGES[@]}"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ""
|
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
|
#!/bin/bash
|
||||||
# ---------------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------------
|
||||||
# Odin compiler install recipe
|
# Odin compiler install recipe
|
||||||
# Target: Debian 13 Trixie
|
# Target: Void Linux
|
||||||
# Builds from source - recommended method on Linux
|
# Builds from source - recommended method on Linux
|
||||||
# ---------------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------------
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
ODIN_DIR="$HOME/odin"
|
ODIN_DIR="$HOME/odin"
|
||||||
|
|
||||||
echo "Installing Odin build dependencies..."
|
echo "Installing Odin build dependencies..."
|
||||||
sudo apt-get update
|
sudo xbps-install -Sy llvm18 llvm18-devel clang18 libstdc++-devel
|
||||||
sudo apt-get install -y clang llvm lld
|
|
||||||
|
|
||||||
echo "Cloning Odin repository..."
|
echo "Cloning Odin repository..."
|
||||||
git clone https://github.com/odin-lang/Odin "$ODIN_DIR"
|
git clone https://github.com/odin-lang/Odin "$ODIN_DIR"
|
||||||
cd "$ODIN_DIR"
|
cd "$ODIN_DIR"
|
||||||
|
|
||||||
echo "Building Odin compiler..."
|
echo "Building Odin compiler..."
|
||||||
./build_odin.sh release
|
LLVM_CONFIG=$(command -v llvm-config) make release-native
|
||||||
|
|
||||||
echo "Adding Odin to PATH..."
|
|
||||||
if ! grep -q 'odin' "$HOME/.bashrc"; then
|
|
||||||
echo "export PATH=\$PATH:$ODIN_DIR" >> "$HOME/.bashrc"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "✓ Odin install complete."
|
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"
|
echo " Then verify with: odin version"
|
||||||
|
|||||||
@@ -1,26 +1,13 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# ---------------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------------
|
||||||
# Raylib-go dependency install recipe
|
# Raylib-go dependency install recipe
|
||||||
# Target: Debian 13 Trixie
|
# Target: Void Linux
|
||||||
# Installs system libs needed for github.com/gen2brain/raylib-go
|
# Installs system libs needed for raylib to run
|
||||||
# ---------------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------------
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
echo "Installing raylib-go system dependencies..."
|
echo "Installing raylib-go system dependencies..."
|
||||||
sudo apt-get update
|
sudo xbps-install make alsa-lib-devel libglvnd-devel libX11-devel libXrandr-devel libXi-devel libXcursor-devel libXinerama-devel mesa MesaLib-devel
|
||||||
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
|
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "✓ Raylib-go dependencies installed."
|
echo "✓ Raylib-go dependencies installed."
|
||||||
|
|||||||
Reference in New Issue
Block a user