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