Cleanup for KDE and bootstrap for basevoid install
This commit is contained in:
Executable
+120
@@ -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,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" }
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -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
@@ -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=()
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user