Cleanup for KDE and bootstrap for basevoid install

This commit is contained in:
2026-08-12 08:47:37 +02:00
parent 5f930c1f23
commit 65a05f9426
7 changed files with 131 additions and 159 deletions
Executable
+120
View File
@@ -0,0 +1,120 @@
#!/usr/bin/env bash
set -e
if [ "$EUID" -eq 0 ]; then
echo "Please run this script as your normal user, not with sudo."
exit 1
fi
echo "==> Updating system..."
sudo xbps-install -Syu
echo "==> Installing KDE and desktop essentials..."
sudo xbps-install -y \
kde-plasma \
kde-baseapps \
NetworkManager \
sddm \
xorg-minimal \
xorg-server-xwayland \
mesa-dri \
qt6-wayland \
kwayland \
elogind \
pipewire \
alsa-pipewire \
libspa-bluetooth \
bluez \
xdg-desktop-portal \
xdg-desktop-portal-kde \
git \
curl \
neovim
echo "==> Disabling conflicting DHCP service..."
if [ -e /var/service/dhcpcd ]; then
sudo sv down dhcpcd || true
sudo rm -f /var/service/dhcpcd
fi
echo "==> Enabling system services..."
enable_service() {
service="$1"
if [ ! -e "/var/service/$service" ]; then
sudo ln -s "/etc/sv/$service" "/var/service/$service"
fi
}
enable_service dbus
enable_service NetworkManager
enable_service sddm
enable_service bluetoothd
echo "==> Adding user to required groups..."
sudo usermod -aG network,audio,video,bluetooth "$USER"
echo "==> Configuring ALSA for PipeWire..."
sudo mkdir -p /etc/alsa/conf.d
sudo ln -sf \
/usr/share/alsa/alsa.conf.d/50-pipewire.conf \
/etc/alsa/conf.d/50-pipewire.conf
sudo ln -sf \
/usr/share/alsa/alsa.conf.d/99-pipewire-default.conf \
/etc/alsa/conf.d/99-pipewire-default.conf
echo "==> Configuring PipeWire PulseAudio compatibility..."
sudo mkdir -p /etc/pipewire/pipewire.conf.d
sudo ln -sf \
/usr/share/examples/pipewire/20-pipewire-pulse.conf \
/etc/pipewire/pipewire.conf.d/20-pipewire-pulse.conf
echo "==> Enabling PipeWire desktop autostart..."
mkdir -p "$HOME/.config/autostart"
ln -sf \
/usr/share/applications/pipewire.desktop \
"$HOME/.config/autostart/pipewire.desktop"
echo "==> Reconfiguring packages..."
sudo xbps-reconfigure -fa
echo
echo "========================================"
echo " Void KDE bootstrap complete"
echo "========================================"
echo
echo "Installed:"
echo " KDE Plasma"
echo " SDDM"
echo " Plasma Wayland"
echo " NetworkManager"
echo " PipeWire + WirePlumber"
echo " Bluetooth"
echo " XWayland"
echo " Neovim"
echo
echo "Enabled services:"
sudo sv status dbus NetworkManager bluetoothd sddm
echo
echo "NOTE: elogind is installed but intentionally"
echo "not enabled as a runit service."
echo
echo "Reboot, then select 'Plasma (Wayland)' in SDDM."
echo
echo " sudo reboot"
echo
+1 -1
View File
@@ -1,5 +1,5 @@
[font] [font]
size = 13 size = 12
offset = { x = 0, y = 6 } offset = { x = 0, y = 6 }
normal = { family = "JetBrainsMono Nerd Font", style = "Regular" } normal = { family = "JetBrainsMono Nerd Font", style = "Regular" }
-3
View File
@@ -15,10 +15,7 @@ export EDITOR="nvim"
export VISUAL="nvim" export VISUAL="nvim"
export MANPAGER="nvim +Man!" export MANPAGER="nvim +Man!"
export BROWSER="firefox" export BROWSER="firefox"
# export TERM=xterm-256color
export COLORTERM="truecolor" export COLORTERM="truecolor"
export LANG="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"
# Development # Development
export DEBUG=1 export DEBUG=1
-127
View File
@@ -1,127 +0,0 @@
### Sway Config
include ~/.config/sway/noctalia
set $mod Mod4
### Applications
set $term alacritty
set $editor nvim
set $filemanager thunar
### Outputs
output HDMI-A-1 scale 1.21
### Appearance
seat seat0 xcursor_theme oreo_white_cursors 28
corner_radius 10
default_border pixel 4
default_floating_border pixel 4
gaps inner 8
gaps outer 0
focus_follows_mouse yes
### Workspaces
workspace 1
workspace 2
workspace 3
workspace 4
workspace 5
### Window behaviour
floating_modifier $mod
### Focus movement
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
### Move windows
bindsym $mod+Ctrl+h move left
bindsym $mod+Ctrl+j move down
bindsym $mod+Ctrl+k move up
bindsym $mod+Ctrl+l move right
### Resize
mode "resize" {
bindsym h resize shrink width 20px
bindsym j resize grow height 20px
bindsym k resize shrink height 20px
bindsym l resize grow width 20px
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+Shift+r mode "resize"
### Split orientation
bindsym $mod+v splitv
bindsym $mod+b splith
### Layout
bindsym $mod+w layout toggle split
bindsym $mod+Shift+space layout default
### Fullscreen / floating / maximize
bindsym $mod+f fullscreen toggle
bindsym $mod+Ctrl+space floating toggle
bindsym $mod+m fullscreen disable, floating disable
### Kill window
bindsym $mod+q kill
### Window cycling
bindsym $mod+Tab focus next
### Workspace switching
bindsym $mod+1 workspace number 1
bindsym $mod+2 workspace number 2
bindsym $mod+3 workspace number 3
bindsym $mod+4 workspace number 4
bindsym $mod+5 workspace number 5
### Move container to workspace
bindsym $mod+Ctrl+1 move container to workspace number 1
bindsym $mod+Ctrl+2 move container to workspace number 2
bindsym $mod+Ctrl+3 move container to workspace number 3
bindsym $mod+Ctrl+4 move container to workspace number 4
bindsym $mod+Ctrl+5 move container to workspace number 5
### Floating rules
for_window [app_id="pavucontrol"] floating enable
for_window [app_id="blueman-manager"] floating enable
for_window [title="Event Tester"] floating enable
### Launchers / apps
set $ipc noctalia msg
bindsym $mod+Return exec $term
bindsym $mod+e exec $filemanager
# bindsym $mod+t exec $term
# Noctalia Settings
bindsym $mod+s exec $ipc settings-toggle
# Noctalia Panels
bindsym $mod+space exec $ipc panel-toggle launcher
bindsym $mod+n exec $ipc panel-toggle control-center
bindsym $mod+c exec $ipc panel-toggle clipboard
bindsym $mod+grave exec $ipc panel-toggle session
### Screenshot
bindsym $mod+Ctrl+p exec grimshot save area
### Audio keys
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +2%
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -2%
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
### Mouse bindings
bindsym --whole-window $mod+Button1 move
bindsym --whole-window $mod+Button3 resize
### Reload
bindsym $mod+Ctrl+r reload
### Startup
exec pgrep -x noctalia >/dev/null || noctalia
exec pipewire
exec snixembed --fork
-18
View File
@@ -1,18 +0,0 @@
set $primary #a9afbd
set $on_primary #121212
set $secondary #7d8390
set $tertiary #8b909c
set $error #c77b7b
set $surface #121212
set $on_surface #e8e8e8
set $on_surface_variant #b0b0b0
set $outline #616161
## Window Colours
# class border backgr. text indicator child_border
client.focused $primary $surface $on_surface $primary $primary
client.focused_inactive $outline $surface $on_surface_variant $outline $outline
client.unfocused $outline $surface $on_surface_variant $outline $outline
client.urgent $error $surface $on_surface $error $error
client.placeholder $surface $surface $on_surface_variant $surface $surface
client.background $surface
+7 -8
View File
@@ -84,10 +84,9 @@ if [ "$DO_LINKS" = true ]; then
SKIPPED=0 SKIPPED=0
link_file "$DOTFILES_DIR/config/bash/bashrc" "$HOME/.bashrc" link_file "$DOTFILES_DIR/config/bash/bashrc" "$HOME/.bashrc"
link_file "$DOTFILES_DIR/config/alacritty" "$HOME/.config/alacritty"
link_file "$DOTFILES_DIR/config/kanata" "$HOME/.config/kanata" link_file "$DOTFILES_DIR/config/kanata" "$HOME/.config/kanata"
link_file "$DOTFILES_DIR/config/alacritty" "$HOME/.config/alacritty"
link_file "$DOTFILES_DIR/config/nvim" "$HOME/.config/nvim" link_file "$DOTFILES_DIR/config/nvim" "$HOME/.config/nvim"
link_file "$DOTFILES_DIR/config/sway" "$HOME/.config/sway"
link_file "$DOTFILES_DIR/scripts/bin" "$HOME/.local/bin" link_file "$DOTFILES_DIR/scripts/bin" "$HOME/.local/bin"
echo "" echo ""
@@ -150,15 +149,15 @@ if [ "$DO_INSTALL" = true ]; then
# network & download # network & download
wget curl ca-certificates gnupg rsync wget curl ca-certificates gnupg rsync
# core utilities # core utilities
git unzip fd jq fzf ripgrep tree direnv make bat git fd jq fzf ripgrep tree direnv make bat
# modern shell and cli tools ark unzip p7zip tar gzip bzip2 xz kanata
fish-shell alacritty tmux gitu
# build & dev tools # build & dev tools
base-devel valgrind tree-sitter-cli go nodejs alacritty base-devel valgrind tree-sitter-cli go nodejs
# window manager & desktop
swayfx kanata
# fonts # fonts
noto-fonts-ttf noto-fonts-emoji noto-fonts-ttf noto-fonts-emoji
# kde
xdg-desktop-portal xdg-desktop-portal-kde
) )
MISSING_PACKAGES=() MISSING_PACKAGES=()
+3 -2
View File
@@ -5,10 +5,11 @@
# 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 xbps-install -Sy llvm18 llvm18-devel clang18 libstdc++-devel sudo xbps-install -Sy llvm18 llvm18-devel clang18 libstdc++-devel git-lfs
git lfs install
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"