diff --git a/home/pomp/.config/OpenTabletDriver/settings.json b/home/.config/OpenTabletDriver/settings.json similarity index 100% rename from home/pomp/.config/OpenTabletDriver/settings.json rename to home/.config/OpenTabletDriver/settings.json diff --git a/home/pomp/.config/VSCodium/User/settings.json b/home/.config/VSCodium/User/settings.json similarity index 100% rename from home/pomp/.config/VSCodium/User/settings.json rename to home/.config/VSCodium/User/settings.json diff --git a/home/pomp/.config/VSCodium/product.json b/home/.config/VSCodium/product.json similarity index 100% rename from home/pomp/.config/VSCodium/product.json rename to home/.config/VSCodium/product.json diff --git a/home/pomp/.config/alacritty/alacritty.yml b/home/.config/alacritty/alacritty.yml similarity index 100% rename from home/pomp/.config/alacritty/alacritty.yml rename to home/.config/alacritty/alacritty.yml diff --git a/home/pomp/.config/autostart/codium.desktop b/home/.config/autostart/codium.desktop similarity index 100% rename from home/pomp/.config/autostart/codium.desktop rename to home/.config/autostart/codium.desktop diff --git a/home/pomp/.config/autostart/discord.desktop b/home/.config/autostart/discord.desktop similarity index 100% rename from home/pomp/.config/autostart/discord.desktop rename to home/.config/autostart/discord.desktop diff --git a/home/pomp/.config/autostart/gwe.desktop b/home/.config/autostart/gwe.desktop similarity index 100% rename from home/pomp/.config/autostart/gwe.desktop rename to home/.config/autostart/gwe.desktop diff --git a/home/pomp/.config/autostart/ignore-lid-switch-tweak.desktop b/home/.config/autostart/ignore-lid-switch-tweak.desktop similarity index 100% rename from home/pomp/.config/autostart/ignore-lid-switch-tweak.desktop rename to home/.config/autostart/ignore-lid-switch-tweak.desktop diff --git a/home/pomp/.config/autostart/io.optimus_manager.OptimusManagerQt.desktop b/home/.config/autostart/io.optimus_manager.OptimusManagerQt.desktop similarity index 100% rename from home/pomp/.config/autostart/io.optimus_manager.OptimusManagerQt.desktop rename to home/.config/autostart/io.optimus_manager.OptimusManagerQt.desktop diff --git a/home/pomp/.config/autostart/librewolf.desktop b/home/.config/autostart/librewolf.desktop similarity index 100% rename from home/pomp/.config/autostart/librewolf.desktop rename to home/.config/autostart/librewolf.desktop diff --git a/home/pomp/.config/autostart/nvidia-preferred-mode.desktop b/home/.config/autostart/nvidia-preferred-mode.desktop similarity index 100% rename from home/pomp/.config/autostart/nvidia-preferred-mode.desktop rename to home/.config/autostart/nvidia-preferred-mode.desktop diff --git a/home/pomp/.config/autostart/pomky.desktop b/home/.config/autostart/pomky.desktop similarity index 100% rename from home/pomp/.config/autostart/pomky.desktop rename to home/.config/autostart/pomky.desktop diff --git a/home/.config/user-dirs.dirs b/home/.config/user-dirs.dirs new file mode 100644 index 0000000..6be06ad --- /dev/null +++ b/home/.config/user-dirs.dirs @@ -0,0 +1,9 @@ +# XDG_DESKTOP_DIR="$HOME/Desktop" +# XDG_PUBLICSHARE_DIR="$HOME/Public" +# XDG_TEMPLATES_DIR="$HOME/Templates" + +XDG_DOCUMENTS_DIR="/media/pomp/data/Documents" +XDG_DOWNLOAD_DIR="/media/pomp/data/Downloads" +XDG_MUSIC_DIR="/media/pomp/data/Music" +XDG_PICTURES_DIR="/media/pomp/data/Pictures" +XDG_VIDEOS_DIR="/media/pomp/data/Videos" diff --git a/home/pomp/.local/bin/pomky b/home/.local/bin/pomky similarity index 100% rename from home/pomp/.local/bin/pomky rename to home/.local/bin/pomky diff --git a/home/.local/share/flatpak/overrides/com.github.Eloston.UngoogledChromium b/home/.local/share/flatpak/overrides/com.github.Eloston.UngoogledChromium new file mode 100644 index 0000000..7c0aa1b --- /dev/null +++ b/home/.local/share/flatpak/overrides/com.github.Eloston.UngoogledChromium @@ -0,0 +1,2 @@ +[Context] +filesystems=home diff --git a/home/pomp/.nvidia-preferred-mode.sh b/home/.nvidia-preferred-mode.sh similarity index 100% rename from home/pomp/.nvidia-preferred-mode.sh rename to home/.nvidia-preferred-mode.sh diff --git a/home/pomp/.vimrc b/home/.vimrc similarity index 100% rename from home/pomp/.vimrc rename to home/.vimrc diff --git a/home/pomp/.zshrc b/home/.zshrc similarity index 100% rename from home/pomp/.zshrc rename to home/.zshrc diff --git a/src/constants.py b/src/constants.py index 7fe36f7..0e81554 100644 --- a/src/constants.py +++ b/src/constants.py @@ -2,6 +2,8 @@ # this variable may be altered by the script # most notably by `src/interface/choose_action.py` +from os import environ + content_dir = "/tmp/com.developomp.setup" tmp_dir = content_dir -home_dir = "/home/pomp" +home_dir = environ.get("HOME") diff --git a/src/setup/apps/alacritty.py b/src/setup/apps/alacritty.py index f05b7c2..890b98f 100644 --- a/src/setup/apps/alacritty.py +++ b/src/setup/apps/alacritty.py @@ -1,5 +1,4 @@ from src.util import paru_install, copy_file -from src.constants import content_dir, home_dir name = "Alacritty terminal" @@ -10,7 +9,4 @@ def setup() -> None: paru_install("alacritty") # copy configuration file - copy_file( - f"{content_dir}{home_dir}/.config/alacritty/alacritty.yml", - "~/.config/alacritty/alacritty.yml", - ) + copy_file("home/.config/alacritty/alacritty.yml") diff --git a/src/setup/apps/discord.py b/src/setup/apps/discord.py index 8adce72..750bff6 100644 --- a/src/setup/apps/discord.py +++ b/src/setup/apps/discord.py @@ -1,5 +1,4 @@ from src.util import flatpak_install, paru_install, copy_file -from src.constants import content_dir, home_dir from src import log from os import system @@ -54,10 +53,7 @@ def setup(): flatpak_install("com.discordapp.Discord") paru_install("betterdiscordctl-git") - copy_file( - f"{content_dir}{home_dir}/.config/autostart/discord.desktop", - "~/.config/autostart/discord.desktop", - ) + copy_file("home/.config/autostart/discord.desktop") for id in PLUGINS: url = f"https://betterdiscord.app/Download?id={id}" diff --git a/src/setup/apps/osu_lazer.py b/src/setup/apps/osu_lazer.py index 085b344..5dfc8ab 100644 --- a/src/setup/apps/osu_lazer.py +++ b/src/setup/apps/osu_lazer.py @@ -1,7 +1,6 @@ from os.path import exists from os import system -from src.constants import content_dir, home_dir from src.util import flatpak_install, paru_install, copy_file, silent_system from src.setup.system import system76_scheduler @@ -26,10 +25,7 @@ def setup(): paru_install("opentabletdriver-git") # apply settings - copy_file( - f"{content_dir}{home_dir}/.config/OpenTabletDriver/settings.json", - "~/.config/OpenTabletDriver/settings.json", - ) + copy_file("home/.config/OpenTabletDriver/settings.json") # disable built-in kernel modules modules_to_disable = [ diff --git a/src/setup/dev/vscodium.py b/src/setup/dev/vscodium.py index 3e1ade5..b453d3a 100644 --- a/src/setup/dev/vscodium.py +++ b/src/setup/dev/vscodium.py @@ -1,8 +1,8 @@ -from src.util import paru_install, copy_file -from src.constants import content_dir, home_dir - from os import system +from src.util import paru_install, copy_file + + name = "Vscodium" @@ -55,19 +55,10 @@ def setup(): system(f"codium --install-extension {extension} --force") # autostart vscodium - copy_file( - f"{content_dir}{home_dir}/.config/autostart/codium.desktop", - "~/.config/autostart/codium.desktop", - ) + copy_file("home/.config/autostart/codium.desktop") # vscodium settings - copy_file( - f"{content_dir}{home_dir}/.config/VSCodium/User/settings.json", - "~/.config/VSCodium/User/settings.json", - ) + copy_file("home/.config/VSCodium/User/settings.json") # enable vscode extension store - copy_file( - f"{content_dir}{home_dir}/.config/VSCodium/product.json", - "~/.config/VSCodium/product.json", - ) + copy_file("home/.config/VSCodium/product.json") diff --git a/src/setup/system/system76_scheduler.py b/src/setup/system/system76_scheduler.py index 273e6af..365b415 100644 --- a/src/setup/system/system76_scheduler.py +++ b/src/setup/system/system76_scheduler.py @@ -1,5 +1,5 @@ from src.util import paru_install, copy_file -from src.constants import content_dir + name = "system76 scheduler" @@ -10,7 +10,6 @@ def setup(): # using the git version because "system76-scheduler" builds from source too anyway paru_install("system76-scheduler-git") copy_file( - f"{content_dir}/etc/system76-scheduler/assignments/osu.ron", - "/etc/system76-scheduler/assignments/osu.ron", + "etc/system76-scheduler/assignments/osu.ron", sudo=True, ) diff --git a/src/setup/system/zsh.py b/src/setup/system/zsh.py index f5293a4..846c4fb 100644 --- a/src/setup/system/zsh.py +++ b/src/setup/system/zsh.py @@ -35,7 +35,7 @@ def setup(): ) # apply zshrc configuration - copy_file(f"{content_dir}{home_dir}/.zshrc", f"{home_dir}/.zshrc") + copy_file("home/.zshrc") # set the default terminal to zsh system("chsh -s /bin/zsh") diff --git a/src/util.py b/src/util.py index e31aba3..eb3451d 100644 --- a/src/util.py +++ b/src/util.py @@ -55,21 +55,32 @@ def remove_directory(path): raise err -def copy_file(src: str, dst: str, mode="644", sudo=False): +def copy_file(src_file: str, mode="644", sudo=False): """ - Copies src to dst. - Automatically creates parent directory/directories of dst if it does not exist already. + Copies a file in the repo to the system. + If the `src_file` starts with `home/`, it maps to $HOME. + Otherwise, it maps to `/`. + This function automatically creates parent directories if they do not exist already. parameters: - src: A path-like object or string pointing to a file. - dst: A path-like object or string pointing to a file. - mode: Permission mode (as in chmod). Defaults to 644 (rw-r--r--) + - src_file: A path-like object or string pointing to a file. + - mode: Permission mode (as in chmod). Defaults to 644 (rw-r--r--). + - sudo: Whether to run command as sudo or not. """ - if sudo: - system(f"sudo install -Dm{mode} {src} {dst}") + dst_file = str(src_file) + + if dst_file.startswith("home/"): + dst_file = src.constants.home_dir + dst_file[4:] else: - system(f"install -Dm{mode} {src} {dst}") + dst_file = "/" + dst_file + + command = f"install -Dm{mode} {src.constants.content_dir}/{src_file} {dst_file}" + + if sudo: + system(f"sudo {command}") + else: + system(command) def copy_directory(src: str, dst: str):