Compare commits
29 Commits
4bf3764855
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 3ec778781d | |||
| 30425fa1e4 | |||
| b55b45f25e | |||
| 6bb29b7539 | |||
| 3481125919 | |||
| 798ecf40a2 | |||
| eabcc3de6b | |||
| bf9d570ff3 | |||
| 2c3c58e92d | |||
| bc2c508969 | |||
| 8b12bc3a3b | |||
| e628456780 | |||
| 3c463300b5 | |||
| 984027efcb | |||
| 1c12506728 | |||
| 568a81a94d | |||
| 9ee3da3100 | |||
| fab1c53cb3 | |||
| f29cf5e920 | |||
| 3ef8420a21 | |||
| 7805b3c98d | |||
| ccb5b1ab96 | |||
| c65c286606 | |||
| 34ce514c75 | |||
| 6e6376eee9 | |||
| d3617c3866 | |||
| 378cc51cc3 | |||
| 1bd5bebcda | |||
| d96970bc8d |
@@ -3,5 +3,6 @@
|
|||||||
"python.defaultInterpreterPath": "/sbin/python3.14",
|
"python.defaultInterpreterPath": "/sbin/python3.14",
|
||||||
"git.autofetch": true,
|
"git.autofetch": true,
|
||||||
"explorer.confirmDelete": false,
|
"explorer.confirmDelete": false,
|
||||||
"git.confirmSync": false
|
"git.confirmSync": false,
|
||||||
|
"editor.fontSize": 12
|
||||||
}
|
}
|
||||||
@@ -54,11 +54,11 @@ animations {
|
|||||||
animation = windowsOut, 1, 4, breeze, slidefade
|
animation = windowsOut, 1, 4, breeze, slidefade
|
||||||
|
|
||||||
# Workspaces: airy glide, finishes fast
|
# Workspaces: airy glide, finishes fast
|
||||||
animation = workspaces, 1, 5, overshoot, slidefade
|
animation = workspaces, 1, 4, overshoot, slidefade
|
||||||
|
|
||||||
# Subtle polish
|
# Subtle polish
|
||||||
animation = fade, 1, 4, breeze
|
animation = fade, 1, 4, breeze
|
||||||
animation = windowsMove, 1, 3, breeze
|
animation = windowsMove, 1, 1, breeze
|
||||||
animation = border, 1, 3, breeze
|
animation = border, 1, 3, breeze
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
5
.config/hypr/hypridle.conf
Normal file
5
.config/hypr/hypridle.conf
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
general {
|
||||||
|
lock_cmd = pidof hyprlock || hyprlock
|
||||||
|
before_sleep_cmd = loginctl lock-session
|
||||||
|
}
|
||||||
|
|
||||||
@@ -9,10 +9,15 @@ $browser = brave
|
|||||||
exec-once = /usr/lib/xdg-desktop-portal-hyprland &
|
exec-once = /usr/lib/xdg-desktop-portal-hyprland &
|
||||||
exec-once = /usr/lib/xdg-desktop-portal &
|
exec-once = /usr/lib/xdg-desktop-portal &
|
||||||
exec-once = hyprpaper
|
exec-once = hyprpaper
|
||||||
|
exec-once = hypridle
|
||||||
exec = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" # for GTK4 apps
|
exec = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" # for GTK4 apps
|
||||||
exec = gsettings set org.gnome.desktop.interface gtk-theme "adw-gtk3-dark" # for GTK3 apps
|
exec = gsettings set org.gnome.desktop.interface gtk-theme "adw-gtk3-dark" # for GTK3 apps
|
||||||
|
|
||||||
misc:initial_workspace_tracking=1
|
misc {
|
||||||
|
force_default_wallpaper = 0
|
||||||
|
disable_hyprland_logo = true
|
||||||
|
initial_workspace_tracking = 1
|
||||||
|
}
|
||||||
|
|
||||||
#############################
|
#############################
|
||||||
### ENVIRONMENT VARIABLES ###
|
### ENVIRONMENT VARIABLES ###
|
||||||
@@ -25,9 +30,9 @@ env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
|||||||
env = NVD_BACKEND,direct
|
env = NVD_BACKEND,direct
|
||||||
env = QT_QPA_PLATFORMTHEME,qt6ct # for Qt apps# Theme
|
env = QT_QPA_PLATFORMTHEME,qt6ct # for Qt apps# Theme
|
||||||
|
|
||||||
exec-once = waybar
|
|
||||||
exec-once = nextcloud
|
exec-once = nextcloud
|
||||||
exec-once = hyprctl setcursor Breeze 24
|
exec-once = waybar
|
||||||
|
exec-once = hyprctl setcursor breeze 24
|
||||||
|
|
||||||
source = ~/.config/hypr/input.conf
|
source = ~/.config/hypr/input.conf
|
||||||
source = ~/.config/hypr/keybinds.conf
|
source = ~/.config/hypr/keybinds.conf
|
||||||
|
|||||||
@@ -1 +1,3 @@
|
|||||||
splash = false
|
splash = false
|
||||||
|
preload = ~/.wallpapers/liminal.png
|
||||||
|
wallpaper = ,~/.wallpapers/liminal.png
|
||||||
|
|||||||
@@ -7,20 +7,25 @@ input {
|
|||||||
|
|
||||||
follow_mouse = 1
|
follow_mouse = 1
|
||||||
accel_profile = flat
|
accel_profile = flat
|
||||||
force_no_accel=2
|
|
||||||
|
|
||||||
sensitivity = 1
|
sensitivity = 0.75
|
||||||
|
|
||||||
touchpad {
|
touchpad {
|
||||||
natural_scroll = true
|
natural_scroll = true
|
||||||
scroll_factor = 0.2
|
scroll_factor = 0.45
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
device {
|
device {
|
||||||
name = logitech-usb-receiver
|
name = logitech-pro-x-1
|
||||||
sensitivity = 0
|
sensitivity = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
gesture = 3, horizontal, workspace
|
gestures {
|
||||||
|
workspace_swipe_cancel_ratio = 0
|
||||||
|
workspace_swipe_min_speed_to_force = 10
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
gesture = 3, horizontal, scale: 0.1, workspace
|
||||||
gesture = 3, down, fullscreen
|
gesture = 3, down, fullscreen
|
||||||
|
|||||||
@@ -47,16 +47,18 @@ bindel = $mainMod, L, exec, brightnessctl -e4 -n2 set 5%+
|
|||||||
bindel = $mainMod, K, exec, brightnessctl -e4 -n2 set 5%-
|
bindel = $mainMod, K, exec, brightnessctl -e4 -n2 set 5%-
|
||||||
|
|
||||||
# Volume
|
# Volume
|
||||||
bindl = , F4, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
bindl = , F6, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||||
bindl = , F5, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
|
bindl = , F7, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
|
||||||
bindl = , F6, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
bindl = , F8, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||||
bindl = , F7, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
bindl = , F9, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||||
|
|
||||||
# Playback (requires playerctl)
|
# Playback (requires playerctl)
|
||||||
bindl = , F2, exec, playerctl previous
|
bindl = , F3, exec, playerctl previous
|
||||||
bindl = , F1, exec, playerctl play-pause
|
bindl = , F4, exec, playerctl play-pause
|
||||||
bindl = , F3, exec, playerctl next
|
bindl = , F5, exec, playerctl next
|
||||||
|
|
||||||
|
bindl = , switch:on:Lid Switch, exec, hyprctl dispatch dpms off
|
||||||
|
bindl = , switch:off:Lid Switch, exec, hyprctl dispatch dpms on
|
||||||
|
|
||||||
bind = SUPER CTRL, left, swapwindow, l
|
bind = SUPER CTRL, left, swapwindow, l
|
||||||
bind = SUPER CTRL, right, swapwindow, r
|
bind = SUPER CTRL, right, swapwindow, r
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
"modules-right": [
|
"modules-right": [
|
||||||
"tray",
|
"tray",
|
||||||
"pulseaudio",
|
"pulseaudio",
|
||||||
|
"bluetooth",
|
||||||
"custom/micmute",
|
"custom/micmute",
|
||||||
"battery",
|
"battery",
|
||||||
"custom/power"
|
"custom/power"
|
||||||
@@ -62,6 +63,16 @@
|
|||||||
"on-click-right": "pavucontrol"
|
"on-click-right": "pavucontrol"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"bluetooth": {
|
||||||
|
"format": " {num_connections}",
|
||||||
|
"format-connected": " {num_connections}",
|
||||||
|
"format-disabled": "",
|
||||||
|
"tooltip-format-connected": "{device_enumerate}",
|
||||||
|
"tooltip-format-enumerate-connected": " {device_alias} ({device_battery_percentage}%)",
|
||||||
|
"on-click": "blueman-manager",
|
||||||
|
"on-click-right": "bluectl power toggle"
|
||||||
|
},
|
||||||
|
|
||||||
"battery": {
|
"battery": {
|
||||||
"interval":2,
|
"interval":2,
|
||||||
"states": {
|
"states": {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
"label" : "logout",
|
"label" : "logout",
|
||||||
"action" : "loginctl terminate-user $USER",
|
"action" : "hyprctl dispatch exit",
|
||||||
"text" : "Logout",
|
"text" : "Logout",
|
||||||
"keybind" : "e"
|
"keybind" : "e"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,10 @@
|
|||||||
[user]
|
[user]
|
||||||
email = dylanseandefaoite@gmail.com
|
email = dylanseandefaoite@gmail.com
|
||||||
name = Dylan De Faoite
|
name = Dylan De Faoite
|
||||||
|
[filter "lfs"]
|
||||||
|
clean = git-lfs clean -- %f
|
||||||
|
smudge = git-lfs smudge -- %f
|
||||||
|
process = git-lfs filter-process
|
||||||
|
required = true
|
||||||
|
[core]
|
||||||
|
autocrlf = input
|
||||||
|
|||||||
235
bootstrap.sh
Executable file → Normal file
235
bootstrap.sh
Executable file → Normal file
@@ -1,8 +1,235 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
# =============================================================================
|
||||||
|
# birch-dots bootstrap.sh
|
||||||
|
# Goes from a bare Arch install to a fully configured Hyprland desktop.
|
||||||
|
# Run as your normal user (with sudo access), NOT as root.
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
## SDDM Confs
|
set -euo pipefail
|
||||||
|
|
||||||
|
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
PKG_DIR="$REPO_ROOT/packages"
|
||||||
|
|
||||||
|
# Colours
|
||||||
|
GREEN='\033[0;32m'
|
||||||
|
YELLOW='\033[1;33m'
|
||||||
|
RED='\033[0;31m'
|
||||||
|
NC='\033[0m'
|
||||||
|
|
||||||
|
log() { echo -e "${GREEN}==>${NC} $*"; }
|
||||||
|
warn() { echo -e "${YELLOW}[!]${NC} $*"; }
|
||||||
|
die() { echo -e "${RED}[✗]${NC} $*"; exit 1; }
|
||||||
|
|
||||||
|
# Guard: must not run as root
|
||||||
|
[[ "$EUID" -ne 0 ]] || die "Run as your normal user, not root."
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# 1. SYSTEM SETUP
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
log "Setting locale (en_IE.UTF-8)"
|
||||||
|
sudo sed -i 's/^#en_IE.UTF-8 UTF-8/en_IE.UTF-8 UTF-8/' /etc/locale.gen
|
||||||
|
sudo locale-gen
|
||||||
|
echo "LANG=en_IE.UTF-8" | sudo tee /etc/locale.conf > /dev/null
|
||||||
|
|
||||||
|
log "Setting keymap (uk)"
|
||||||
|
echo "KEYMAP=uk" | sudo tee /etc/vconsole.conf > /dev/null
|
||||||
|
|
||||||
|
log "Setting timezone (Europe/Dublin)"
|
||||||
|
sudo ln -sf /usr/share/zoneinfo/Europe/Dublin /etc/localtime
|
||||||
|
sudo hwclock --systohc
|
||||||
|
|
||||||
|
log "Setting hostname"
|
||||||
|
read -rp " Enter hostname [dylanvm]: " HOSTNAME
|
||||||
|
HOSTNAME="${HOSTNAME:-dylanvm}"
|
||||||
|
echo "$HOSTNAME" | sudo tee /etc/hostname > /dev/null
|
||||||
|
sudo tee /etc/hosts > /dev/null <<EOF
|
||||||
|
127.0.0.1 localhost
|
||||||
|
::1 localhost
|
||||||
|
127.0.1.1 $HOSTNAME.localdomain $HOSTNAME
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# 2. NETWORKING
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
log "Enabling NetworkManager"
|
||||||
|
sudo systemctl enable --now NetworkManager
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# 3. PACMAN SETUP
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
log "Configuring pacman (colour + parallel downloads)"
|
||||||
|
sudo sed -i 's/^#Color/Color/' /etc/pacman.conf
|
||||||
|
sudo sed -i 's/^#ParallelDownloads.*/ParallelDownloads = 5/' /etc/pacman.conf
|
||||||
|
|
||||||
|
log "Enabling multilib repo"
|
||||||
|
sudo sed -i '/\[multilib\]/,/Include/s/^#//' /etc/pacman.conf
|
||||||
|
|
||||||
|
log "Updating mirrors and syncing package database"
|
||||||
|
sudo pacman -Sy --noconfirm reflector 2>/dev/null || true
|
||||||
|
sudo reflector --country Ireland,Germany --age 12 --protocol https \
|
||||||
|
--sort rate --save /etc/pacman.d/mirrorlist 2>/dev/null \
|
||||||
|
|| warn "reflector failed, using existing mirrorlist"
|
||||||
|
sudo pacman -Syyu --noconfirm
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# 4. PACMAN PACKAGES
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
log "Installing pacman packages"
|
||||||
|
for file in "$PKG_DIR"/pacman/*.txt; do
|
||||||
|
log " → $(basename "$file")"
|
||||||
|
while IFS= read -r pkg; do
|
||||||
|
[[ -z "$pkg" || "$pkg" == \#* ]] && continue
|
||||||
|
sudo pacman -S --needed --noconfirm "$pkg" \
|
||||||
|
|| warn " Skipping pacman package not found: $pkg"
|
||||||
|
done < "$file"
|
||||||
|
done
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# 5. ZSH AS DEFAULT SHELL
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
log "Setting zsh as default shell"
|
||||||
|
chsh -s /bin/zsh
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# 6. YAY (AUR HELPER)
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
log "Installing yay"
|
||||||
|
if ! command -v yay &>/dev/null; then
|
||||||
|
tmpdir=$(mktemp -d)
|
||||||
|
git clone https://aur.archlinux.org/yay.git "$tmpdir/yay"
|
||||||
|
pushd "$tmpdir/yay" > /dev/null
|
||||||
|
makepkg -si --noconfirm
|
||||||
|
popd > /dev/null
|
||||||
|
rm -rf "$tmpdir"
|
||||||
|
else
|
||||||
|
log " yay already installed, skipping"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# 7. AUR PACKAGES
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
log "Installing AUR packages"
|
||||||
|
for file in "$PKG_DIR"/aur/*.txt; do
|
||||||
|
log " → $(basename "$file")"
|
||||||
|
while IFS= read -r pkg; do
|
||||||
|
[[ -z "$pkg" || "$pkg" == \#* ]] && continue
|
||||||
|
yay -S --needed --noconfirm "$pkg" \
|
||||||
|
|| warn " Skipping AUR package not found: $pkg"
|
||||||
|
done < "$file"
|
||||||
|
done
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# 8. POWERLEVEL10K
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
log "Installing Powerlevel10k"
|
||||||
|
if [[ ! -d "$HOME/powerlevel10k" ]]; then
|
||||||
|
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git \
|
||||||
|
"$HOME/powerlevel10k"
|
||||||
|
else
|
||||||
|
log " powerlevel10k already present, skipping"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# 9. DOTFILES
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
log "Deploying dotfiles from repo into HOME"
|
||||||
|
# Copy everything except git internals, system/, packages/, bootstrap.sh
|
||||||
|
rsync -av --exclude='.git' \
|
||||||
|
--exclude='system/' \
|
||||||
|
--exclude='packages/' \
|
||||||
|
--exclude='bootstrap.sh' \
|
||||||
|
--exclude='README.md' \
|
||||||
|
--exclude='dotfiles_log.txt' \
|
||||||
|
"$REPO_ROOT/" "$HOME/"
|
||||||
|
|
||||||
|
# Make scripts executable
|
||||||
|
find "$HOME/.config" -name "*.sh" -exec chmod +x {} \;
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# 10. SYSTEM CONFIG FILES (SDDM etc.)
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
log "Applying SDDM configuration"
|
||||||
sudo mkdir -p /etc/sddm.conf.d
|
sudo mkdir -p /etc/sddm.conf.d
|
||||||
sudo cp -a system/sddm.conf.d /etc/
|
sudo cp -a "$REPO_ROOT/system/sddm.conf.d/." /etc/sddm.conf.d/
|
||||||
sudo cp -a system/sddm /etc/
|
sudo cp -a "$REPO_ROOT/system/sddm/." /etc/sddm/
|
||||||
sudo chown -R root:root /etc/sddm.conf.d /etc/sddm
|
sudo chown -R root:root /etc/sddm.conf.d /etc/sddm
|
||||||
sudo chmod -R 644 /etc/sddm.conf.d /etc/sddm
|
sudo chmod 644 /etc/sddm.conf.d/*.conf
|
||||||
|
sudo chmod +x /etc/sddm/scripts/Xsetup 2>/dev/null || true
|
||||||
|
|
||||||
|
log "Enabling SDDM"
|
||||||
|
sudo systemctl enable sddm
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# 11. SERVICES
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
log "Enabling system services"
|
||||||
|
sudo systemctl enable bluetooth
|
||||||
|
sudo systemctl enable docker
|
||||||
|
sudo usermod -aG docker "$USER"
|
||||||
|
sudo systemctl enable earlyoom 2>/dev/null || true
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# 12. MONITOR CONFIG (machine-specific)
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
MONITORS_CONF="$HOME/.config/hypr/monitors.conf"
|
||||||
|
if [[ ! -f "$MONITORS_CONF" ]]; then
|
||||||
|
warn "No monitors.conf found — creating a safe default (single monitor)"
|
||||||
|
cat > "$MONITORS_CONF" <<'EOF'
|
||||||
|
# Auto-generated default — replace with your actual monitor config.
|
||||||
|
# See: https://wiki.hyprland.org/Configuring/Monitors/
|
||||||
|
monitor = , preferred, auto, 1
|
||||||
|
EOF
|
||||||
|
warn "Edit ~/.config/hypr/monitors.conf before starting Hyprland."
|
||||||
|
else
|
||||||
|
log "monitors.conf already exists, skipping"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# 13. VSCODE EXTENSIONS
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
EXTENSIONS_FILE="$HOME/.config/Code/User/extensions.txt"
|
||||||
|
if command -v code &>/dev/null && [[ -f "$EXTENSIONS_FILE" ]]; then
|
||||||
|
log "Installing VS Code extensions"
|
||||||
|
while IFS= read -r ext; do
|
||||||
|
code --install-extension "$ext" --force 2>/dev/null || true
|
||||||
|
done < "$EXTENSIONS_FILE"
|
||||||
|
else
|
||||||
|
warn "VS Code not found or extensions.txt missing — skipping"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# 14. WALLPAPER DIRECTORY
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
log "Creating wallpaper directory"
|
||||||
|
mkdir -p "$HOME/.wallpapers"
|
||||||
|
warn "Add wallpapers to ~/.wallpapers/ for hyprpaper + wofi selector to work."
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# DONE
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "${GREEN}============================================${NC}"
|
||||||
|
echo -e "${GREEN} Bootstrap complete!${NC}"
|
||||||
|
echo -e "${GREEN}============================================${NC}"
|
||||||
|
echo ""
|
||||||
|
echo " Next steps:"
|
||||||
|
echo " 1. Edit ~/.config/hypr/monitors.conf for your display layout"
|
||||||
|
echo " 2. Add wallpapers to ~/.wallpapers/"
|
||||||
|
echo " 3. Run p10k configure after first zsh launch"
|
||||||
|
echo " 4. Reboot"
|
||||||
|
echo ""
|
||||||
|
|||||||
21
common-issues.md
Normal file
21
common-issues.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Creating a new user
|
||||||
|
1) Login to root account
|
||||||
|
2) Type `useradd -m -G wheel -s /bin/bash <NAME>`
|
||||||
|
3) Install `sudo` and `nvim`
|
||||||
|
4) Type `EDITOR=nvim visudo`
|
||||||
|
5) Uncomment the line `# %wheel ALL=(ALL:ALL) ALL`
|
||||||
|
- Towards the end of the file
|
||||||
|
|
||||||
|
# Broken Internet Access on VM
|
||||||
|
- This works for a VM with `enp1s0` link.
|
||||||
|
```
|
||||||
|
ip addr add 192.168.122.100/24 dev enp1s0
|
||||||
|
ip route add default via 192.168.122.1
|
||||||
|
echo "nameserver 8.8.8.8" > /etc/resolv.conf
|
||||||
|
ping 8.8.8.8
|
||||||
|
```
|
||||||
|
- Then install dhcpcd
|
||||||
|
```
|
||||||
|
pacman -S dhcpcd
|
||||||
|
systemctl enable --now dhcpcd@enp1s0
|
||||||
|
```
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
brave-bin
|
brave-bin
|
||||||
play-timer
|
play-timer
|
||||||
spotify
|
spotify
|
||||||
zoom
|
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ pipewire-jack
|
|||||||
pipewire-pulse
|
pipewire-pulse
|
||||||
wireplumber
|
wireplumber
|
||||||
xdg-desktop-portal-hyprland
|
xdg-desktop-portal-hyprland
|
||||||
xdg-desktop-portal-wlr
|
|
||||||
qt5ct
|
qt5ct
|
||||||
qt6ct
|
qt6ct
|
||||||
qt6-wayland
|
qt6-wayland
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
git
|
git
|
||||||
|
git-lfs
|
||||||
neovim
|
neovim
|
||||||
tmux
|
tmux
|
||||||
fzf
|
fzf
|
||||||
@@ -18,7 +19,7 @@ jdk21-openjdk
|
|||||||
maven
|
maven
|
||||||
openmpi
|
openmpi
|
||||||
docker
|
docker
|
||||||
docker-compose-plugin
|
docker-compose
|
||||||
postgresql
|
postgresql
|
||||||
postgresql-libs
|
postgresql-libs
|
||||||
nmap
|
nmap
|
||||||
@@ -26,3 +27,4 @@ ncdu
|
|||||||
ufw
|
ufw
|
||||||
sshfs
|
sshfs
|
||||||
nvidia-container-toolkit
|
nvidia-container-toolkit
|
||||||
|
rsync
|
||||||
|
|||||||
@@ -5,3 +5,4 @@ obs-studio
|
|||||||
gpu-screen-recorder
|
gpu-screen-recorder
|
||||||
gpu-screen-recorder-ui
|
gpu-screen-recorder-ui
|
||||||
wf-recorder
|
wf-recorder
|
||||||
|
yt-dlp
|
||||||
|
|||||||
Reference in New Issue
Block a user