init: new dotfile configuration
Remove all org files using a new script to more config over, The old org file configuaration were great but required org. This new version only requires the scripts that is included in the repo. The configuration are all done but have not ported the theming system yet. Signed-off-by: Steve Beaulac <steve@sagacity.ca> Change-Id: I14cd7fe058a71c8ba9d6d35397dc8d7e6a6a6964
This commit is contained in:
Executable
+7
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
pacman -Sy --noconfirm networkmanager
|
||||
|
||||
if [[ -x "$(command -v systemctl)" ]]; then
|
||||
sudo systemctl enable --now NetworkManager.service
|
||||
fi
|
||||
Executable
+52
@@ -0,0 +1,52 @@
|
||||
#!/bin/sh -e
|
||||
# SjB TODO:
|
||||
# - install public keys
|
||||
|
||||
sudo pacman -Syu --noconfirm
|
||||
|
||||
if [[ "$(uname -m)" == "x86_64" ]]; then
|
||||
|
||||
if ! pacman-key --list-keys 882DCFE48E2051D48E2562ABF3B607488DB35A47 >/dev/null 2>&1; then
|
||||
sudo pacman-key --recv-key 882DCFE48E2051D48E2562ABF3B607488DB35A47 && sudo pacman-key --lsign-key 882DCFE48E2051D48E2562ABF3B607488DB35A47
|
||||
fi
|
||||
|
||||
if sudo pacman -U --noconfirm https://cdn77.cachyos.org/repo/x86_64/cachyos/cachyos-keyring-20240331-1-any.pkg.tar.zst &&
|
||||
sudo pacman -U --noconfirm https://cdn77.cachyos.org/repo/x86_64/cachyos/cachyos-mirrorlist-22-1-any.pkg.tar.zst; then
|
||||
|
||||
if ! grep -q "^\[cachyos\]" /etc/pacman.conf; then
|
||||
echo -e '\n[cachyos]\nInclude = /etc/pacman.d/cachyos-mirrorlist' | sudo tee -a /etc/pacman.conf >/dev/null
|
||||
fi
|
||||
|
||||
if ! grep -q "^\[multilib\]" /etc/pacman.conf; then
|
||||
sudo sed -i '/^#\[multilib\]/,/^#Include/ s/^#//' /etc/pacman.conf
|
||||
fi
|
||||
|
||||
sudo pacman -Sy --needed --noconfirm chwd || exit 1
|
||||
sudo chwd -a || exit 1
|
||||
else
|
||||
echo "Failed to install Cachyos, so won't include it in pacman config!"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ ! -x "$(command -v paru)" ]]; then
|
||||
sudo pacman -S --noconfirm --needed paru || exit 1
|
||||
fi
|
||||
|
||||
paru -Sy --noconfirm \
|
||||
cachyos-hello \
|
||||
cachyos-hooks \
|
||||
cachyos-kernel-manager \
|
||||
cachyos-keyring \
|
||||
cachyos-mirrorlist \
|
||||
cachyos-nord-gtk-theme-git \
|
||||
cachyos-packageinstaller \
|
||||
cachyos-rate-mirrors \
|
||||
cachyos-settings \
|
||||
cachyos-v3-mirrorlist \
|
||||
cachyos-v4-mirrorlist \
|
||||
cachyos-wallpapers \
|
||||
cachyos-fish-config \
|
||||
linux-cachyos \
|
||||
linux-cachyos-headers \
|
||||
linux-cachyos-sched-ext-headers
|
||||
|
||||
Executable
+20
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v paru)" ]]; then
|
||||
sudo pacman -S --noconfirm --needed paru || exit 1
|
||||
fi
|
||||
|
||||
paru -Sy --needed iptables-nft
|
||||
|
||||
$DOTFILE_DIR/package-installer $DOTFILE_DIR/packages/sjb-base.packages
|
||||
|
||||
if [[ -x "$(command -v systemctl)" ]]; then
|
||||
sudo systemctl enable --now bluetooth.service
|
||||
fi
|
||||
|
||||
echo "default @saved" | sudo tee -a /boot/loader/loader.conf
|
||||
if [[ -f "/etc/sdboot-manage.conf" ]]; then
|
||||
sudo sed -i '/^LINUX_OPTIONS=/ s/splash\"/splash quiet\"/' /etc/sdboot-manage.conf
|
||||
fi
|
||||
|
||||
/usr/bin/sdboot-manage gen
|
||||
Executable
+12
@@ -0,0 +1,12 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
board_vendor=$(cat /sys/class/dmi/id/board_vendor)
|
||||
if [[ $board_vendor != *ASUSTeK* ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ ! -x "$(command -v paru)" ]]; then
|
||||
sudo pacman -S --noconfirm --needed paru || exit 1
|
||||
fi
|
||||
|
||||
paru -Sy --noconfirm --needed asusctl
|
||||
Executable
+26
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ $GID != 0 ]]; then
|
||||
echo "need to be root"
|
||||
exit 0;
|
||||
fi
|
||||
|
||||
MOUNT_DIR=$(mktemp -d)
|
||||
mount $(df --output=source / | tail -n 1) $MOUNT_DIR
|
||||
btrfs subvolume create $MOUNT_DIR/@swap
|
||||
chmod 700 $MOUNT_DIR/\@swap
|
||||
mkdir /swap
|
||||
echo $(df --output=source / | tail -n 1)" /swap btrfs rw,noatime,compress=none,ssd,space_cache,subvol=@swap 0 0" | tee -a /etc/fstab
|
||||
systemctl daemon-reload
|
||||
mount /swap
|
||||
truncate -s 0 /swap/swapfile
|
||||
chattr +C /swap/swapfile
|
||||
# error btrfs property set /swap/swapfile compression none
|
||||
fallocate -l $(free --giga | awk 'NR == 2 {print $2}')G /swap/swapfile
|
||||
chmod 600 /swap/swapfile
|
||||
mkswap /swap/swapfile
|
||||
swapon /swap/swapfile
|
||||
echo "/swap/swapfile none swap defaults 0 0" | tee -a /etc/fstab
|
||||
systemctl daemon-reload
|
||||
umount $MOUNT_DIR
|
||||
rmdir $MOUNT_DIR
|
||||
Executable
+13
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
board_vendor=$(cat /sys/class/dmi/id/board_vendor)
|
||||
if [[ $board_vendor != *LENOVO* ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ ! -x "$(command -v paru)" ]]; then
|
||||
sudo pacman -S --noconfirm --needed paru || exit 1
|
||||
fi
|
||||
|
||||
paru -Sy --noconfirm --needed zcfan
|
||||
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Ensure timezone can be updated without needing to sudo
|
||||
sudo tee /etc/sudoers.d/omarchy-tzupdate >/dev/null <<EOF
|
||||
%wheel ALL=(root) NOPASSWD: /usr/bin/tzupdate, /usr/bin/timedatectl
|
||||
EOF
|
||||
sudo chmod 0440 /etc/sudoers.d/omarchy-tzupdate
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
# Disable USB autosuspend to prevent peripheral disconnection issues
|
||||
if [[ ! -f /etc/modprobe.d/disable-usb-autosuspend.conf ]]; then
|
||||
echo "options usbcore autosuspend=-1" | sudo tee /etc/modprobe.d/disable-usb-autosuspend.conf
|
||||
fi
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Solve common flakiness with SSH
|
||||
echo "net.ipv4.tcp_mtu_probing=1" | sudo tee -a /etc/sysctl.d/99-sysctl.conf
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
sudo mkdir -p /etc/systemd/system.conf.d
|
||||
|
||||
cat <<EOF | sudo tee /etc/systemd/system.conf.d/10-faster-shutdown.conf
|
||||
[Manager]
|
||||
DefaultTimeoutStopSec=5s
|
||||
EOF
|
||||
sudo systemctl daemon-reload
|
||||
Executable
+18
@@ -0,0 +1,18 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
# Allow nothing in, everything out
|
||||
sudo ufw default deny incoming
|
||||
sudo ufw default allow outgoing
|
||||
|
||||
# Allow ports for LocalSend
|
||||
sudo ufw allow 53317/udp
|
||||
sudo ufw allow 53317/tcp
|
||||
|
||||
# Turn on the firewall
|
||||
sudo ufw --force enable
|
||||
|
||||
# Enable UFW systemd service to start on boot
|
||||
sudo systemctl enable ufw
|
||||
|
||||
# Turn on Docker protections
|
||||
sudo ufw reload
|
||||
Executable
+20
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v paru)" ]]; then
|
||||
sudo pacman -S --noconfirm --needed paru || exit 1
|
||||
fi
|
||||
|
||||
paru -Sy --noconfirm \
|
||||
gcr \
|
||||
pcsclite \
|
||||
ccid \
|
||||
opengpg-crd-tools \
|
||||
gnupg
|
||||
|
||||
# Setup GPG configuration with multiple keyservers for better reliability
|
||||
sudo mkdir -p /etc/gnupg
|
||||
sudo cp ${SJB_CONF_DIR}/default/gpg/dirmngr.conf /etc/gnupg/
|
||||
sudo chmod 644 /etc/gnupg/dirmngr.conf
|
||||
sudo gpgconf --kill dirmngr || true
|
||||
sudo gpgconf --launch dirmngr || true
|
||||
sudo systemctl enable pcscd.service --now
|
||||
Executable
+6
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Increase lockout limit to 10 and decrease timeout to 2 minutes
|
||||
sudo sed -i 's|^\(auth\s\+required\s\+pam_faillock.so\)\s\+preauth.*$|\1 preauth silent deny=10 unlock_time=120|' "/etc/pam.d/system-auth"
|
||||
sudo sed -i 's|^\(auth\s\+\[default=die\]\s\+pam_faillock.so\)\s\+authfail.*$|\1 authfail deny=10 unlock_time=120|' "/etc/pam.d/system-auth"
|
||||
sudo sed -i 's/^# deny.*$/deny = 10/' /etc/security/faillock.conf
|
||||
Executable
+50
@@ -0,0 +1,50 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v paru)" ]]; then
|
||||
sudo pacman -S --noconfirm --needed paru || exit 1
|
||||
fi
|
||||
|
||||
if [[ -x "$(command -v xdg-mine)" ]]; then
|
||||
paru -Sy --noconfirm xdg-utils || exit 1
|
||||
fi
|
||||
|
||||
if [[ -x "$(command -v update-desktop-database)" ]]; then
|
||||
paru -Sy --noconfirm desktop-file-utils || exit 1
|
||||
fi
|
||||
|
||||
if [[ -d "~/.local/share/applications" ]]; then
|
||||
update-desktop-database ~/.local/share/applications
|
||||
fi
|
||||
|
||||
# Open all images with imv
|
||||
xdg-mime default imv.desktop image/png
|
||||
xdg-mime default imv.desktop image/jpeg
|
||||
xdg-mime default imv.desktop image/gif
|
||||
xdg-mime default imv.desktop image/webp
|
||||
xdg-mime default imv.desktop image/bmp
|
||||
xdg-mime default imv.desktop image/tiff
|
||||
|
||||
# Open PDFs with the Document Viewer
|
||||
xdg-mime default org.pwmt.zathura.desktop application/pdf
|
||||
|
||||
# Use Chromium as the default browser
|
||||
xdg-settings set default-web-browser firefox.desktop
|
||||
xdg-mime default firefox.desktop x-scheme-handler/http
|
||||
xdg-mime default firefox.desktop x-scheme-handler/https
|
||||
|
||||
# Open video files with mpv
|
||||
xdg-mime default mpv.desktop video/mp4
|
||||
xdg-mime default mpv.desktop video/x-msvideo
|
||||
xdg-mime default mpv.desktop video/x-matroska
|
||||
xdg-mime default mpv.desktop video/x-flv
|
||||
xdg-mime default mpv.desktop video/x-ms-wmv
|
||||
xdg-mime default mpv.desktop video/mpeg
|
||||
xdg-mime default mpv.desktop video/ogg
|
||||
xdg-mime default mpv.desktop video/webm
|
||||
xdg-mime default mpv.desktop video/quicktime
|
||||
xdg-mime default mpv.desktop video/3gpp
|
||||
xdg-mime default mpv.desktop video/3gpp2
|
||||
xdg-mime default mpv.desktop video/x-ms-asf
|
||||
xdg-mime default mpv.desktop video/x-ogm+ogg
|
||||
xdg-mime default mpv.desktop video/x-theora+ogg
|
||||
xdg-mime default mpv.desktop application/ogg
|
||||
Executable
+20
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v paru)" ]]; then
|
||||
sudo pacman -S --noconfirm --needed paru || exit 1
|
||||
fi
|
||||
|
||||
mapfile -t packages < <(grep -v '^#' "$SJB_CONF_DIR/sjb-desktop.packages" | grep -v '^$')
|
||||
paru -S --noconfirm --needed "${packages[@]}"
|
||||
|
||||
|
||||
# Add screen recorder based on GPU
|
||||
if lspci | grep -qi 'nvidia'; then
|
||||
paru -S --noconfirm --needed wf-recorder
|
||||
else
|
||||
paru -S --noconfirm --needed wl-screenrec
|
||||
fi
|
||||
|
||||
if [[ -x "$(command -v systemctl)" ]]; then
|
||||
sudo systemctl enable --now lemurs.service
|
||||
fi
|
||||
Executable
+13
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
# REF: https://wiki.archlinux.org/title/Podman
|
||||
#
|
||||
if [[ ! -x "$(command -v paru)" ]]; then
|
||||
sudo pacman -S --noconfirm --needed paru || exit 1
|
||||
fi
|
||||
|
||||
mapfile -t packages < <(grep -v '^#' "$SJB_CONF_DIR/sjb-dev.packages" | grep -v '^$')
|
||||
paru -S --noconfirm --needed "${packages[@]}"
|
||||
|
||||
cat ${SJB_CONF_DIR}/rules/99-platformio-udev.rules | sudo tee /etc/udev/rules.d/99-platformio-udev.rules
|
||||
sudo systemctl restart systemd-udevd
|
||||
Executable
+87
@@ -0,0 +1,87 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ==============================================================================
|
||||
# Hyprland NVIDIA Setup Script for Arch Linux
|
||||
# ==============================================================================
|
||||
# This script automates the installation and configuration of NVIDIA drivers
|
||||
# for use with Hyprland on Arch Linux, following the official Hyprland wiki.
|
||||
#
|
||||
# Author: https://github.com/Kn0ax
|
||||
#
|
||||
# ==============================================================================
|
||||
|
||||
# --- GPU Detection ---
|
||||
if [ -n "$(lspci | grep -i 'nvidia')" ]; then
|
||||
# --- Driver Selection ---
|
||||
# Turing (16xx, 20xx), Ampere (30xx), Ada (40xx), and newer recommend the open-source kernel modules
|
||||
if echo "$(lspci | grep -i 'nvidia')" | grep -q -E "RTX [2-9][0-9]|GTX 16"; then
|
||||
NVIDIA_DRIVER_PACKAGE="nvidia-open-dkms"
|
||||
else
|
||||
NVIDIA_DRIVER_PACKAGE="nvidia-dkms"
|
||||
fi
|
||||
|
||||
# Check which kernel is installed and set appropriate headers package
|
||||
KERNEL_HEADERS="linux-headers" # Default
|
||||
if pacman -Q linux-zen &>/dev/null; then
|
||||
KERNEL_HEADERS="linux-zen-headers"
|
||||
elif pacman -Q linux-lts &>/dev/null; then
|
||||
KERNEL_HEADERS="linux-lts-headers"
|
||||
elif pacman -Q linux-hardened &>/dev/null; then
|
||||
KERNEL_HEADERS="linux-hardened-headers"
|
||||
fi
|
||||
|
||||
# Enable multilib repository for 32-bit libraries
|
||||
if ! grep -q "^\[multilib\]" /etc/pacman.conf; then
|
||||
sudo sed -i '/^#\[multilib\]/,/^#Include/ s/^#//' /etc/pacman.conf
|
||||
fi
|
||||
|
||||
# force package database refresh
|
||||
sudo pacman -Syu --noconfirm
|
||||
|
||||
# Install packages
|
||||
PACKAGES_TO_INSTALL=(
|
||||
"${KERNEL_HEADERS}"
|
||||
"${NVIDIA_DRIVER_PACKAGE}"
|
||||
"nvidia-utils"
|
||||
"lib32-nvidia-utils"
|
||||
"egl-wayland"
|
||||
"libva-nvidia-driver" # For VA-API hardware acceleration
|
||||
"qt5-wayland"
|
||||
"qt6-wayland"
|
||||
)
|
||||
|
||||
sudo pacman -S --needed --noconfirm "${PACKAGES_TO_INSTALL[@]}"
|
||||
|
||||
# Configure modprobe for early KMS
|
||||
echo "options nvidia_drm modeset=1" | sudo tee /etc/modprobe.d/nvidia.conf >/dev/null
|
||||
|
||||
# Configure mkinitcpio for early loading
|
||||
MKINITCPIO_CONF="/etc/mkinitcpio.conf"
|
||||
|
||||
# Define modules
|
||||
NVIDIA_MODULES="nvidia nvidia_modeset nvidia_uvm nvidia_drm"
|
||||
|
||||
# Create backup
|
||||
sudo cp "$MKINITCPIO_CONF" "${MKINITCPIO_CONF}.backup"
|
||||
|
||||
# Remove any old nvidia modules to prevent duplicates
|
||||
sudo sed -i -E 's/ nvidia_drm//g; s/ nvidia_uvm//g; s/ nvidia_modeset//g; s/ nvidia//g;' "$MKINITCPIO_CONF"
|
||||
# Add the new modules at the start of the MODULES array
|
||||
sudo sed -i -E "s/^(MODULES=\\()/\\1${NVIDIA_MODULES} /" "$MKINITCPIO_CONF"
|
||||
# Clean up potential double spaces
|
||||
sudo sed -i -E 's/ +/ /g' "$MKINITCPIO_CONF"
|
||||
|
||||
sudo mkinitcpio -P
|
||||
|
||||
# Add NVIDIA environment variables to hyprland.conf
|
||||
HYPRLAND_CONF="$HOME/.config/hypr/hyprland.conf"
|
||||
if [ -f "$HYPRLAND_CONF" ]; then
|
||||
cat >>"$HYPRLAND_CONF" <<'EOF'
|
||||
|
||||
# NVIDIA environment variables
|
||||
env = NVD_BACKEND,direct
|
||||
env = LIBVA_DRIVER_NAME,nvidia
|
||||
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||
EOF
|
||||
fi
|
||||
fi
|
||||
Executable
+42
@@ -0,0 +1,42 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v paru)" ]]; then
|
||||
sudo pacman -S --noconfirm --needed paru || exit 1
|
||||
fi
|
||||
|
||||
paru --noconfirm --needed -Sy \
|
||||
cups \
|
||||
cups-filters \
|
||||
cups-pdf \
|
||||
cups-browsed \
|
||||
system-config-printer \
|
||||
avahi \
|
||||
nss-mdns \
|
||||
splix \
|
||||
foomatic-db \
|
||||
foomatic-db-engine \
|
||||
foomatic-db-gutenprint-ppds \
|
||||
foomatic-db-nonfree \
|
||||
foomatic-db-nonfree-ppds \
|
||||
foomatic-db-ppds \
|
||||
gutenprint
|
||||
|
||||
if [[ -x "$(command -v systemctl)" ]]; then
|
||||
sudo systemctl enable --now cups.service
|
||||
fi
|
||||
|
||||
# Disable multicast dns in resolved. Avahi will provide this for better network printer discovery
|
||||
sudo mkdir -p /etc/systemd/resolved.conf.d
|
||||
echo -e "[Resolve]\nMulticastDNS=no" | sudo tee /etc/systemd/resolved.conf.d/10-disable-multicast.conf
|
||||
if [[ -x "$(command -v systemctl)" ]]; then
|
||||
sudo systemctl enable --now avahi-daemon.service
|
||||
fi
|
||||
|
||||
# Enable automatically adding remote printers
|
||||
if ! grep -q '^CreateRemotePrinters Yes' /etc/cups/cups-browsed.conf; then
|
||||
echo 'CreateRemotePrinters Yes' | sudo tee -a /etc/cups/cups-browsed.conf
|
||||
fi
|
||||
|
||||
if [[ -x "$(command -v systemctl)" ]]; then
|
||||
sudo systemctl enable --now cups-browsed.service
|
||||
fi
|
||||
Executable
+19
@@ -0,0 +1,19 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v paru)" ]]; then
|
||||
sudo pacman -S --noconfirm --needed paru | exit 1
|
||||
fi
|
||||
|
||||
# qemu-hw-display-virtio-gpu-pci-gl
|
||||
paru -Sy --noconfirm --needed \
|
||||
virt-manager \
|
||||
qemu-base \
|
||||
qemu-hw-display-virtio-vga-gl \
|
||||
qemu-hw-display-virtio-gpu-gl \
|
||||
qemu-hw-uefi-vars \
|
||||
qemu-audio-spice \
|
||||
swtpm
|
||||
|
||||
sudo usermod -a -G libvirt "$USER"
|
||||
|
||||
sudo systemctl enable --now libvirtd
|
||||
Executable
+8
@@ -0,0 +1,8 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
${DOTFILE_DIR}/sync-config config/btop
|
||||
|
||||
# theme link
|
||||
mkdir -p ~/.config/btop/themes
|
||||
ln -snf ${DOTFILE_DIR}/themes/current/btop.theme ${HOME}/.config/btop/themes/current.theme
|
||||
|
||||
Executable
+46
@@ -0,0 +1,46 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v sjb-orgmode-installer)" ]]; then
|
||||
echo "Error: sjb config script are not installed, run sjb-install.sh" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -x "$(command -v systemctl)" ]]; then
|
||||
systemctl --user enable --now syncthing
|
||||
fi
|
||||
|
||||
sjb-orgmode-installer ${SJB_CONF_DIR}/orgmode-configs/hyprland.org
|
||||
|
||||
sjb-script-installer ${SJB_CONF_DIR}/bin/hyprland-activeworkspace
|
||||
sjb-script-installer ${SJB_CONF_DIR}/bin/hyprland-keybindings
|
||||
sjb-script-installer ${SJB_CONF_DIR}/bin/hyprland-fetch-client
|
||||
sjb-script-installer ${SJB_CONF_DIR}/bin/hyprland-focus-client
|
||||
sjb-script-installer ${SJB_CONF_DIR}/bin/rofi-pass
|
||||
|
||||
sjb-script-installer ${SJB_CONF_DIR}/bin/bing-wallpaper
|
||||
if [[ -x "$(command -v systemctl)" ]]; then
|
||||
sjb-update-config systemd/user/wallpaper.service
|
||||
sjb-update-config systemd/user/wallpaper.timer
|
||||
systemctl --user enable --now wallpaper.timer
|
||||
fi
|
||||
|
||||
#sjb-orgmode-installer ${SJB_CONF_DIR}/orgmode-configs/walker.org
|
||||
sjb-orgmode-installer ${SJB_CONF_DIR}/orgmode-configs/rofi.org
|
||||
|
||||
ln -snf ~/.config/omarchy/current/theme/walker.css ~/.config/walker/themes/default.css
|
||||
|
||||
sjb-orgmode-installer ${SJB_CONF_DIR}/orgmode-configs/mako.org
|
||||
|
||||
# theme link
|
||||
mkdir -p ~/.config/mako
|
||||
ln -snf ~/.config/omarchy/current/theme/mako.ini ~/.config/mako/config
|
||||
|
||||
sjb-orgmode-installer ${SJB_CONF_DIR}/orgmode-configs/ghostty.org
|
||||
|
||||
if [[ -f "${HOME}/.config/ghostty/theme" ]]; then
|
||||
rm ${HOME}/.config/ghostty/theme
|
||||
fi
|
||||
ln -snf ~/.config/omarchy/current/theme/ghostty ~/.config/ghostty/theme
|
||||
|
||||
|
||||
sjb-orgmode-installer ${SJB_CONF_DIR}/orgmode-configs/chromium.org
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
${DOTFILE_DIR}/sync-config config/emacs
|
||||
|
||||
Executable
+16
@@ -0,0 +1,16 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v sjb-orgmode-installer)" ]]; then
|
||||
echo "Error: sjb config script are not installed, run sjb-install.sh" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
${DOTFILE_DIR}/sync-config config/fish
|
||||
|
||||
if [[ -x /usr/bin/fisher ]]; then
|
||||
fisher install franciscolourenco/done
|
||||
fisher install kidonng/zoxide.fish
|
||||
fisher install PatrickF1/fzf.fish
|
||||
fi
|
||||
|
||||
chsh -s /bin/fish $USER
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
${DOTFILES_DIR}/sync-config config/fonts
|
||||
|
||||
rsync -av ${DOTFILES_DIR}/fonts/ ${HOME}/.local/share/fonts/
|
||||
|
||||
fc-cache
|
||||
Executable
+18
@@ -0,0 +1,18 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v git)" ]]; then
|
||||
paru -Sy --needed --noconfirm git
|
||||
fi
|
||||
|
||||
${DOTFILE_DIR}/sync-config config/git
|
||||
|
||||
GIT_CONFIG="${HOME}/.config/git/local"
|
||||
|
||||
# Set identification from install inputs
|
||||
if [[ -n "${SJB_USER_NAME//[[:space:]]/}" ]]; then
|
||||
git config -f ${GIT_CONFIG} user.name "$SJB_USER_NAME"
|
||||
fi
|
||||
|
||||
if [[ -n "${SJB_USER_EMAIL//[[:space:]]/}" ]]; then
|
||||
git config -f ${GIT_CONFIG} user.email "$SJB_USER_EMAIL"
|
||||
fi
|
||||
Executable
+21
@@ -0,0 +1,21 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v jj)" ]]; then
|
||||
paru -Sy --needed --noconfirm jj
|
||||
fi
|
||||
|
||||
${DOTFILE_DIR}/sync-config config/jj
|
||||
|
||||
JJ_CONFIG="${HOME}/.config/jj/conf.d/local.toml"
|
||||
|
||||
mkdir -p "$(dirname ${JJ_CONFIG})"
|
||||
cp ${DOTFILE_DIR}/installer/templates/local.toml.tmpl ${JJ_CONFIG}
|
||||
|
||||
if [[ -n "${SJB_USER_NAME//[[:space:]]/}" ]]; then
|
||||
sed -i "s/NAME_PLACEHOLDER/${SJB_USER_NAME}/g" ${JJ_CONFIG}
|
||||
fi
|
||||
|
||||
if [[ -n "${SJB_USER_EMAIL//[[:space:]]/}" ]]; then
|
||||
sed -i "s/EMAIL_PLACEHOLDER/${SJB_USER_EMAIL}/g" ${JJ_CONFIG}
|
||||
fi
|
||||
|
||||
Executable
+17
@@ -0,0 +1,17 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v nvim)" ]]; then
|
||||
paru -Sy --noconfirm neovim harper tree-sitter-cli
|
||||
fi
|
||||
|
||||
${DOTFILE_DIR}/sync-config config/nvim
|
||||
|
||||
# Set specific app links for current theme
|
||||
PLUGINS_DIR="${HOME}/.config/nvim/lua/plugins"
|
||||
|
||||
mkdir -p ${PLUGINS_DIR}
|
||||
ln -snf ${DOTFILE_DIR}/current/theme/neovim.lua ${PLUGINS_DIR}/theme.lua
|
||||
|
||||
uv tool install vectorcode
|
||||
|
||||
npm_config_prefix="$HOME/.local" npm install -g mcp-hub@latest
|
||||
@@ -0,0 +1,4 @@
|
||||
[user]
|
||||
name = "NAME_PLACEHOLDER"
|
||||
email = "EMAIL_PLACEHOLDER"
|
||||
|
||||
Executable
+25
@@ -0,0 +1,25 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
# Use dark mode for QT apps too (like kdenlive)
|
||||
# Allow icons to match the theme
|
||||
# Prefer dark mode everything
|
||||
if [[ ! -x "$(command -v paru)" ]]; then
|
||||
paru -Sy --needed --noconfirm kvantum-qt5 gnome-themes-extra yaru-icon-theme
|
||||
fi
|
||||
|
||||
if [[ ! -x "$(command -v gsettings)" ]]; then
|
||||
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
|
||||
gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
|
||||
gsettings set org.gnome.desktop.interface icon-theme "Yaru-blue"
|
||||
fi
|
||||
|
||||
${DOTFILES_DIR}/sync-script script/omarchy-theme-bg-next
|
||||
${DOTFILES_DIR}/sync-script script/omarchy-theme-list
|
||||
${DOTFILES_DIR}/sync-script script/omarchy-theme-set
|
||||
|
||||
# Set initial theme
|
||||
THEMES_DIR="$HOME/.local/share/themes"
|
||||
mkdir -p ${THEMES_DIR}
|
||||
ln -snf ${DOTFILES_DIR}/themes/ ${THEMES_DIR}/available
|
||||
omarchy-theme-set "tokyo-night"
|
||||
|
||||
Executable
+16
@@ -0,0 +1,16 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v tmux)" ]]; then
|
||||
paru -Sy --needed --noconfirm tmux git zoxide fzf
|
||||
fi
|
||||
|
||||
${DOTFILES_DIR}/sync-config config/tmux
|
||||
|
||||
ln -snf ${DOTFILES_DIR}/themes/current/tmux ${HOME}/.config/tmux/theme
|
||||
|
||||
# setup tmux
|
||||
if [[ ! -d ~/.config/tmux/plugins/tpm ]]; then
|
||||
git clone https://github.com/tmux-plugins/tpm ${HOME}/.config/tmux/plugins/tpm
|
||||
tmux run-shell ~/.config/tmux/plugins/tpm/bindings/install_plugins
|
||||
fi
|
||||
|
||||
Executable
+22
@@ -0,0 +1,22 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [[ ! -x "$(command -v paru)" ]]; then
|
||||
paru -Sy --needed --noconfirm chromium
|
||||
fi
|
||||
|
||||
${DOTFILES_DIR}/sync-script script/sjb-webapp-installer
|
||||
|
||||
sjb-webapp-installer "WhatsApp" https://web.whatsapp.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/whatsapp.png
|
||||
sjb-webapp-installer "Google Photos" https://photos.google.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-photos.png
|
||||
sjb-webapp-installer "Google Contacts" https://contacts.google.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-contacts.png
|
||||
sjb-webapp-installer "Google Messages" https://messages.google.com/web/conversations https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-messages.png
|
||||
sjb-webapp-installer "ChatGPT" https://chatgpt.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/chatgpt.png
|
||||
sjb-webapp-installer "YouTube" https://youtube.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/youtube.png
|
||||
sjb-webapp-installer "GitHub" https://github.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/github-light.png
|
||||
sjb-webapp-installer "Figma" https://figma.com/ https://www.veryicon.com/download/png/application/app-icon-7/figma-1?s=256
|
||||
sjb-webapp-installer "Discord" https://discord.com/channels/@me https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/discord.png
|
||||
sjb-webapp-installer "Twitch" https://twitch.tv/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/twitch.png
|
||||
sjb-webapp-installer "Team" https://teams.microsoft.com/v2/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/microsoft-teams.svg
|
||||
sjb-webapp-installer "Outlook" https://outlook.office.com/mail/inbox/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/microsoft-outlook.svg
|
||||
sjb-webapp-installer "Slack" https://app.slack.com/client/T09M8T3BB1N/C09KZ5N0ZK9 https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/slack.svg
|
||||
sjb-webapp-installer "Copilot" https://m365.cloud.microsoft https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/microsoft-copilot.svg
|
||||
Reference in New Issue
Block a user