first commit
This commit is contained in:
11
.gitignore
vendored
Normal file
11
.gitignore
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
.DS_Store
|
||||
*.log
|
||||
*.tmp
|
||||
*.bak
|
||||
*.swp
|
||||
*.swo
|
||||
restore.local.sh
|
||||
|
||||
# Runtime state that should never be committed
|
||||
config/fish/fish_variables
|
||||
config/**/.DS_Store
|
||||
54
README.md
Normal file
54
README.md
Normal file
@@ -0,0 +1,54 @@
|
||||
# dotfiles
|
||||
|
||||
Curated public-friendly dotfiles extracted from `~/.config`.
|
||||
|
||||
## Layout
|
||||
|
||||
- `config/`: files that belong under `~/.config`
|
||||
- `home/`: files that belong under `$HOME`
|
||||
- `restore.sh`: creates backups, then installs symlinks
|
||||
- `install-pkg.sh`: installs official and AUR packages from list files
|
||||
- `packages-official.txt`: explicitly installed repository packages
|
||||
- `packages-aur.txt`: explicitly installed AUR packages
|
||||
|
||||
## Restore
|
||||
|
||||
```bash
|
||||
./restore.sh
|
||||
./install-pkg.sh
|
||||
```
|
||||
|
||||
By default the script:
|
||||
|
||||
- creates timestamped backups for existing non-symlink targets
|
||||
- creates symlinks from this repository into `~/.config`
|
||||
- skips targets that already point to this repo
|
||||
|
||||
## Package Install
|
||||
|
||||
```bash
|
||||
./install-pkg.sh
|
||||
./install-pkg.sh --official-only
|
||||
./install-pkg.sh --aur-only
|
||||
```
|
||||
|
||||
The installer uses:
|
||||
|
||||
- `pacman` for `packages-official.txt`
|
||||
- `yay` or `paru` for `packages-aur.txt`
|
||||
|
||||
## Excluded on purpose
|
||||
|
||||
These were intentionally not pulled in because they usually contain secrets, device-specific state, caches, databases, logs, or personal browsing/session data:
|
||||
|
||||
- `gh/`
|
||||
- `mozilla/`
|
||||
- `pulse/`
|
||||
- `go/telemetry/`
|
||||
- `obs-studio/`
|
||||
- `Throne/`
|
||||
- `dconf/user`
|
||||
- `session/`
|
||||
- `fish/fish_variables`
|
||||
|
||||
Review everything once more before publishing.
|
||||
10
config/dolphinrc
Normal file
10
config/dolphinrc
Normal file
@@ -0,0 +1,10 @@
|
||||
[General]
|
||||
Version=202
|
||||
ViewPropsTimestamp=2026,6,18,11,12,27.447
|
||||
|
||||
[KFileDialog Settings]
|
||||
Places Icons Auto-resize=false
|
||||
Places Icons Static Size=22
|
||||
|
||||
[MainWindow]
|
||||
MenuBar=Disabled
|
||||
3
config/filetypesrc
Normal file
3
config/filetypesrc
Normal file
@@ -0,0 +1,3 @@
|
||||
[EmbedSettings]
|
||||
embed-image/x-canon-cr2=false
|
||||
embed-video/mp4=false
|
||||
7
config/fish/config.fish
Normal file
7
config/fish/config.fish
Normal file
@@ -0,0 +1,7 @@
|
||||
source /usr/share/cachyos-fish-config/cachyos-config.fish
|
||||
|
||||
# overwrite greeting
|
||||
# potentially disabling fastfetch
|
||||
#function fish_greeting
|
||||
# # smth smth
|
||||
#end
|
||||
1
config/hypr/hypr
Symbolic link
1
config/hypr/hypr
Symbolic link
@@ -0,0 +1 @@
|
||||
/home/hexdev/hexdots/hypr
|
||||
1
config/hypr/hyprland
Symbolic link
1
config/hypr/hyprland
Symbolic link
@@ -0,0 +1 @@
|
||||
/home/hexdev/hexdots/hypr/hyprland
|
||||
1
config/hypr/hyprland.conf
Symbolic link
1
config/hypr/hyprland.conf
Symbolic link
@@ -0,0 +1 @@
|
||||
/home/hexdev/hexdots/hypr/hyprland.conf
|
||||
6
config/hypr/hyprland.lua
Normal file
6
config/hypr/hyprland.lua
Normal file
@@ -0,0 +1,6 @@
|
||||
require("hyprland.monitors")
|
||||
require("hyprland.inputs")
|
||||
require("hyprland.keybinds")
|
||||
require("hyprland.autostart")
|
||||
require("hyprland.appearance")
|
||||
require("hyprland.window-rules")
|
||||
1
config/hypr/hyprlock.conf
Symbolic link
1
config/hypr/hyprlock.conf
Symbolic link
@@ -0,0 +1 @@
|
||||
/home/hexdev/hexdots/hypr/hyprlock.conf
|
||||
1
config/hypr/hyprpaper.conf
Symbolic link
1
config/hypr/hyprpaper.conf
Symbolic link
@@ -0,0 +1 @@
|
||||
/home/hexdev/hexdots/hypr/hyprpaper.conf
|
||||
1
config/kitty/kitty.conf
Symbolic link
1
config/kitty/kitty.conf
Symbolic link
@@ -0,0 +1 @@
|
||||
/home/hexdev/hexdots/kitty/kitty.conf
|
||||
8
config/mimeapps.list
Normal file
8
config/mimeapps.list
Normal file
@@ -0,0 +1,8 @@
|
||||
[Added Associations]
|
||||
image/x-canon-cr2=nomacs.desktop;
|
||||
video/mp4=vlc-2.desktop;
|
||||
|
||||
[Default Applications]
|
||||
image/x-canon-cr2=nomacs.desktop;
|
||||
video/mp4=vlc-2.desktop;
|
||||
x-scheme-handler/throne=throne-url-handler.desktop
|
||||
1
config/nvim
Symbolic link
1
config/nvim
Symbolic link
@@ -0,0 +1 @@
|
||||
/home/hexdev/hexdots/nvim
|
||||
9
config/pavucontrol.ini
Normal file
9
config/pavucontrol.ini
Normal file
@@ -0,0 +1,9 @@
|
||||
[window]
|
||||
width=500
|
||||
height=400
|
||||
sinkInputType=1
|
||||
sourceOutputType=1
|
||||
sinkType=0
|
||||
sourceType=1
|
||||
showVolumeMeters=1
|
||||
hideUnavailableCardProfiles=0
|
||||
1
config/rofi
Symbolic link
1
config/rofi
Symbolic link
@@ -0,0 +1 @@
|
||||
/home/hexdev/hexdots/rofi
|
||||
1
config/swaync
Symbolic link
1
config/swaync
Symbolic link
@@ -0,0 +1 @@
|
||||
/home/hexdev/hexdots/swaync
|
||||
16
config/user-dirs.dirs
Normal file
16
config/user-dirs.dirs
Normal file
@@ -0,0 +1,16 @@
|
||||
# This file is written by xdg-user-dirs-update
|
||||
# If you want to change or add directories, just edit the line you're
|
||||
# interested in. All local changes will be retained on the next run.
|
||||
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
|
||||
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
|
||||
# absolute path. No other format is supported.
|
||||
#
|
||||
XDG_DESKTOP_DIR="$HOME/Desktop"
|
||||
XDG_DOWNLOAD_DIR="$HOME/Downloads"
|
||||
XDG_TEMPLATES_DIR="$HOME/Templates"
|
||||
XDG_PUBLICSHARE_DIR="$HOME/Public"
|
||||
XDG_DOCUMENTS_DIR="$HOME/Documents"
|
||||
XDG_MUSIC_DIR="$HOME/Music"
|
||||
XDG_PICTURES_DIR="$HOME/Pictures"
|
||||
XDG_VIDEOS_DIR="$HOME/Videos"
|
||||
XDG_PROJECTS_DIR="$HOME/Projects"
|
||||
1
config/user-dirs.locale
Normal file
1
config/user-dirs.locale
Normal file
@@ -0,0 +1 @@
|
||||
en_US
|
||||
1
config/waybar
Symbolic link
1
config/waybar
Symbolic link
@@ -0,0 +1 @@
|
||||
/home/hexdev/hexdots/waybar
|
||||
66
install-pkg.sh
Executable file
66
install-pkg.sh
Executable file
@@ -0,0 +1,66 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
repo_root=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)
|
||||
official_file="$repo_root/packages-official.txt"
|
||||
aur_file="$repo_root/packages-aur.txt"
|
||||
|
||||
install_official=true
|
||||
install_aur=true
|
||||
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
--official-only)
|
||||
install_official=true
|
||||
install_aur=false
|
||||
;;
|
||||
--aur-only)
|
||||
install_official=false
|
||||
install_aur=true
|
||||
;;
|
||||
--help|-h)
|
||||
cat <<'EOF'
|
||||
Usage: ./install-pkg.sh [--official-only | --aur-only]
|
||||
|
||||
Installs packages listed in:
|
||||
- packages-official.txt via pacman
|
||||
- packages-aur.txt via yay or paru
|
||||
EOF
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
printf 'Unknown argument: %s\n' "$arg" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
read_packages() {
|
||||
local file=$1
|
||||
mapfile -t packages < <(grep -vE '^\s*($|#)' "$file")
|
||||
}
|
||||
|
||||
if [[ "$install_official" == true ]]; then
|
||||
read_packages "$official_file"
|
||||
if (( ${#packages[@]} > 0 )); then
|
||||
sudo pacman -S --needed --noconfirm -- "${packages[@]}"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "$install_aur" == true ]]; then
|
||||
helper=
|
||||
if command -v yay >/dev/null 2>&1; then
|
||||
helper=yay
|
||||
elif command -v paru >/dev/null 2>&1; then
|
||||
helper=paru
|
||||
else
|
||||
printf 'AUR helper not found. Install yay or paru first.\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
read_packages "$aur_file"
|
||||
if (( ${#packages[@]} > 0 )); then
|
||||
"$helper" -S --needed --noconfirm -- "${packages[@]}"
|
||||
fi
|
||||
fi
|
||||
4
packages-aur.txt
Normal file
4
packages-aur.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
lazyssh-bin
|
||||
nomacs
|
||||
throne-bin
|
||||
ttf-league-spartan
|
||||
205
packages-official.txt
Normal file
205
packages-official.txt
Normal file
@@ -0,0 +1,205 @@
|
||||
accountsservice
|
||||
alacritty
|
||||
alsa-firmware
|
||||
alsa-plugins
|
||||
alsa-utils
|
||||
awesome-terminal-fonts
|
||||
base
|
||||
base-devel
|
||||
bash-completion
|
||||
bind
|
||||
bluez
|
||||
bluez-hid2hci
|
||||
bluez-libs
|
||||
bluez-obex
|
||||
bluez-utils
|
||||
btop
|
||||
btrfs-assistant
|
||||
btrfs-progs
|
||||
cachyos-fish-config
|
||||
cachyos-hello
|
||||
cachyos-hooks
|
||||
cachyos-kernel-manager
|
||||
cachyos-keyring
|
||||
cachyos-micro-settings
|
||||
cachyos-mirrorlist
|
||||
cachyos-packageinstaller
|
||||
cachyos-plymouth-bootanimation
|
||||
cachyos-plymouth-theme
|
||||
cachyos-rate-mirrors
|
||||
cachyos-settings
|
||||
cachyos-snapper-support
|
||||
cachyos-v3-mirrorlist
|
||||
cachyos-v4-mirrorlist
|
||||
cachyos-wallpapers
|
||||
cachyos-zsh-config
|
||||
cantarell-fonts
|
||||
chwd
|
||||
code
|
||||
cpupower
|
||||
cryptsetup
|
||||
device-mapper
|
||||
diffutils
|
||||
dmidecode
|
||||
dmraid
|
||||
dnsmasq
|
||||
dolphin
|
||||
dosfstools
|
||||
duf
|
||||
e2fsprogs
|
||||
efibootmgr
|
||||
efitools
|
||||
egl-wayland
|
||||
ethtool
|
||||
exfatprogs
|
||||
f2fs-tools
|
||||
fastfetch
|
||||
ffmpegthumbnailer
|
||||
firefox
|
||||
flatpak
|
||||
fsarchiver
|
||||
geeqie
|
||||
git
|
||||
github-cli
|
||||
glances
|
||||
gst-libav
|
||||
gst-plugin-pipewire
|
||||
gst-plugins-bad
|
||||
gst-plugins-ugly
|
||||
gst-plugin-va
|
||||
hdparm
|
||||
hwdetect
|
||||
hwinfo
|
||||
hyprland
|
||||
hyprlock
|
||||
hyprpaper
|
||||
hyprpicker
|
||||
hyprshot
|
||||
hyprshutdown
|
||||
inetutils
|
||||
intel-media-driver
|
||||
intel-media-sdk
|
||||
intel-ucode
|
||||
iwd
|
||||
jfsutils
|
||||
kitty
|
||||
less
|
||||
lib32-nvidia-utils
|
||||
lib32-opencl-nvidia
|
||||
lib32-vulkan-icd-loader
|
||||
lib32-vulkan-intel
|
||||
libdvdcss
|
||||
libgsf
|
||||
libopenraw
|
||||
libva-nvidia-driver
|
||||
limine
|
||||
limine-mkinitcpio-hook
|
||||
limine-snapper-sync
|
||||
linux-cachyos
|
||||
linux-cachyos-headers
|
||||
linux-cachyos-lts
|
||||
linux-cachyos-lts-headers
|
||||
linux-cachyos-lts-nvidia-open
|
||||
linux-cachyos-nvidia-open
|
||||
linux-firmware
|
||||
logrotate
|
||||
lsb-release
|
||||
lsscsi
|
||||
lvm2
|
||||
man-db
|
||||
man-pages
|
||||
mdadm
|
||||
meld
|
||||
mesa-utils
|
||||
micro
|
||||
mkinitcpio
|
||||
modemmanager
|
||||
mtools
|
||||
nano
|
||||
nano-syntax-highlighting
|
||||
neovim
|
||||
netctl
|
||||
networkmanager
|
||||
networkmanager-openvpn
|
||||
nfs-utils
|
||||
nilfs-utils
|
||||
noto-fonts
|
||||
noto-fonts-cjk
|
||||
noto-fonts-emoji
|
||||
nss-mdns
|
||||
nvidia-settings
|
||||
nvidia-utils
|
||||
obs-studio
|
||||
opencl-nvidia
|
||||
opencode
|
||||
openssh
|
||||
os-prober
|
||||
pacman-contrib
|
||||
paru
|
||||
pavucontrol
|
||||
perl
|
||||
pipewire-alsa
|
||||
pipewire-pulse
|
||||
pkgfile
|
||||
playerctl
|
||||
plocate
|
||||
plymouth
|
||||
polkit-kde-agent
|
||||
poppler-glib
|
||||
power-profiles-daemon
|
||||
prismlauncher
|
||||
pv
|
||||
pyenv
|
||||
python
|
||||
python-defusedxml
|
||||
python-packaging
|
||||
rebuild-detector
|
||||
reflector
|
||||
ripgrep
|
||||
rofi
|
||||
rsync
|
||||
sddm
|
||||
sg3_utils
|
||||
shelly
|
||||
smartmontools
|
||||
s-nail
|
||||
snapper
|
||||
sof-firmware
|
||||
sudo
|
||||
swaync
|
||||
sysfsutils
|
||||
texinfo
|
||||
ttf-bitstream-vera
|
||||
ttf-dejavu
|
||||
ttf-go-nerd
|
||||
ttf-jetbrains-mono-nerd
|
||||
ttf-liberation
|
||||
ttf-meslo-nerd
|
||||
ttf-opensans
|
||||
ufw
|
||||
ufw-extras
|
||||
unrar
|
||||
unzip
|
||||
upower
|
||||
usb_modeswitch
|
||||
usbutils
|
||||
uwsm
|
||||
vim
|
||||
vlc
|
||||
vlc-plugins-all
|
||||
vulkan-icd-loader
|
||||
vulkan-intel
|
||||
waybar
|
||||
wget
|
||||
which
|
||||
wireplumber
|
||||
wl-clipboard
|
||||
wofi
|
||||
wpa_supplicant
|
||||
xdg-desktop-portal-hyprland
|
||||
xdg-user-dirs
|
||||
xfsprogs
|
||||
xl2tpd
|
||||
xorg-xinput
|
||||
xorg-xwayland
|
||||
yay
|
||||
48
restore.sh
Executable file
48
restore.sh
Executable file
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
repo_root=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)
|
||||
backup_root=${XDG_STATE_HOME:-"$HOME/.local/state"}/dotfiles-backups/$(date +%Y%m%d-%H%M%S)
|
||||
|
||||
link_path() {
|
||||
local source_path=$1
|
||||
local target_path=$2
|
||||
|
||||
mkdir -p "$(dirname "$target_path")"
|
||||
|
||||
if [[ -L "$target_path" ]]; then
|
||||
local resolved
|
||||
resolved=$(readlink -f "$target_path")
|
||||
if [[ "$resolved" == "$source_path" ]]; then
|
||||
printf 'skip %s\n' "$target_path"
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -e "$target_path" && ! -L "$target_path" ]]; then
|
||||
local backup_path="$backup_root/${target_path#$HOME/}"
|
||||
mkdir -p "$(dirname "$backup_path")"
|
||||
mv "$target_path" "$backup_path"
|
||||
printf 'backup %s -> %s\n' "$target_path" "$backup_path"
|
||||
elif [[ -L "$target_path" ]]; then
|
||||
rm "$target_path"
|
||||
fi
|
||||
|
||||
ln -s "$source_path" "$target_path"
|
||||
printf 'link %s -> %s\n' "$target_path" "$source_path"
|
||||
}
|
||||
|
||||
while IFS= read -r entry; do
|
||||
[[ -z "$entry" ]] && continue
|
||||
link_path "$repo_root/config/$entry" "$HOME/.config/$entry"
|
||||
done < <(cd "$repo_root/config" && printf '%s\n' *)
|
||||
|
||||
if [[ -d "$repo_root/home" ]]; then
|
||||
while IFS= read -r entry; do
|
||||
[[ -z "$entry" ]] && continue
|
||||
link_path "$repo_root/home/$entry" "$HOME/$entry"
|
||||
done < <(cd "$repo_root/home" && printf '%s\n' .[^.]* *)
|
||||
fi
|
||||
|
||||
printf '\nDone. Backups, if any, are in %s\n' "$backup_root"
|
||||
Reference in New Issue
Block a user