Files
random-stuff/dotfiles/link_dots.py
T
2026-07-27 18:03:20 +01:00

81 lines
2.1 KiB
Python

from pathlib import Path
import subprocess
import sys
import os
files = {
"config.fish": "~/.config/fish/config.fish",
"dunstrc": "~/.config/dunst/dunstrc",
"fix_gnome.sh": "~/.local/bin/fix_gnome.sh",
"lock": "~/.local/bin/lock",
"run_sway_env": "~/.local/bin/run_sway_env",
"settings.ini": "~/.config/gtk-3.0/settings.ini",
"sway_config": "~/.config/sway/config",
"zed.json": "~/.config/zed/settings.json",
"xkb_custom": "~/.config/xkb/symbols/custom",
"xkb_ty_custom": "~/.config/xkb/types/custom",
"sway_custom.desktop": "/usr/share/wayland-sessions/sway_custom.desktop",
"take-screenshot": "~/.local/bin/take-screenshot",
"take-screenshot-window": "~/.local/bin/take-screenshot-window",
"waybar_config": "~/.config/waybar/config",
"waybar_style.css": "~/.config/waybar/style.css",
"kitty.conf": "~/.config/kitty/kitty.conf",
"mpris_smart_toggle.py": "~/.local/bin/mpris_smart_toggle.py",
"project_jail.py": "~/.local/bin/project-jail"
}
packages = [
"sway",
"waybar",
"firefox",
"zed",
"ttc-iosevka",
"otf-font-awesome",
"dunst",
"slurp",
"grim",
"kitty",
"ttf-fira-code",
"network-manager-applet",
"kanshi",
"bemenu-wayland",
"pavucontrol",
"swaylock",
"jq",
"fish",
"zoxide",
"atuin",
"papirus-icon-theme",
"breeze-icons",
"magic-wormhole",
"syncthing",
"zoxide",
"libqalculate",
"base-devel",
"mpv",
"mpv-mpris",
"python-mpris2",
"zed",
"jq",
"pipewire-jack",
"tailscale",
"pipewire-pulse",
"swayidle",
"rofi",
"htop"
]
subprocess.run(["sudo", "pacman", "-S", *packages, "--confirm"])
this = Path(sys.argv[0]).parent
print(this)
for src, trg in files.items():
real_src = this / src
real_trg = Path(trg).expanduser()
os.makedirs(real_trg.parent, exist_ok=True)
if not real_trg.exists():
subprocess.run(["sudo", "ln", "-s", real_src.absolute(), real_trg])
subprocess.run(["sudo", "chown", "osmarks:osmarks", real_trg])
print(real_trg)