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:
2026-03-02 13:26:21 -05:00
committed by gitadmin
commit 02a5e0df28
410 changed files with 18546 additions and 0 deletions
+7
View File
@@ -0,0 +1,7 @@
#!/bin/sh -e
pacman -Sy --noconfirm networkmanager
if [[ -x "$(command -v systemctl)" ]]; then
sudo systemctl enable --now NetworkManager.service
fi
+52
View File
@@ -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
+20
View File
@@ -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
+12
View File
@@ -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
+26
View File
@@ -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
+13
View File
@@ -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
+7
View File
@@ -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
+4
View File
@@ -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
+4
View File
@@ -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
+7
View File
@@ -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
+18
View File
@@ -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
+20
View File
@@ -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
+6
View File
@@ -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
+50
View File
@@ -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
+20
View File
@@ -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
+13
View File
@@ -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
+87
View File
@@ -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
+42
View File
@@ -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
+19
View File
@@ -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
+8
View File
@@ -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
+46
View File
@@ -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
+4
View File
@@ -0,0 +1,4 @@
#!/bin/sh -e
${DOTFILE_DIR}/sync-config config/emacs
+16
View File
@@ -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
+7
View File
@@ -0,0 +1,7 @@
#!/bin/sh -e
${DOTFILES_DIR}/sync-config config/fonts
rsync -av ${DOTFILES_DIR}/fonts/ ${HOME}/.local/share/fonts/
fc-cache
+18
View File
@@ -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
+21
View File
@@ -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
+17
View File
@@ -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
+4
View File
@@ -0,0 +1,4 @@
[user]
name = "NAME_PLACEHOLDER"
email = "EMAIL_PLACEHOLDER"
+25
View File
@@ -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"
+16
View File
@@ -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
+22
View File
@@ -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