From 9a088dae4b3b6d2982515af40bbf8caaf3d901ab Mon Sep 17 00:00:00 2001 From: Kendall Whitman Date: Tue, 3 Feb 2026 16:06:40 -0600 Subject: [PATCH] config updates --- install-arch.py | 77 ------------------------- nvim/.config/nvim/lua/plugins/mason.lua | 1 + setup/arch/config.py | 37 ++++++++++++ setup/arch/install.py | 54 +++++++++++++++++ 4 files changed, 92 insertions(+), 77 deletions(-) delete mode 100644 install-arch.py create mode 100644 setup/arch/config.py create mode 100644 setup/arch/install.py diff --git a/install-arch.py b/install-arch.py deleted file mode 100644 index 0c7604d..0000000 --- a/install-arch.py +++ /dev/null @@ -1,77 +0,0 @@ -from pathlib import Path -import subprocess - -def sym_link_folders() -> void: - target_folder = input("Specify the path to the target folder (full path must be used): ") - - FOLDERS = [ - 'Documents', - 'Downloads', - 'Music', - 'Pictures', - 'Repos', - 'Videos', - ] - - for folder in FOLDERS: - if not Path(f"{Path.home()}/{folder}").is_dir() and not Path(f"{Path.home()}/{folder}").is_symlink(): - Path(f"{Path.home()}/{folder}").symlink_to(f"{target_folder}/{folder}") - - if Path(f"{Path.home()}/{folder}").is_dir() and not Path(f"{Path.home()}/{folder}").is_symlink(): - Path(f"{Path.home()}/{folder}").rmdir() - Path(f"{Path.home()}/{folder}").symlink_to(f"{target_folder}/{folder}") - - if Path(f"{Path.home()}/Templates").is_dir(): - Path(f"{Path.home()}/Templates").rmdir() - - if Path(f"{Path.home()}/Public").is_dir(): - Path(f"{Path.home()}/Public").rmdir() - - -def install_apps() -> void: - APPS = [ - 'brave-bin', - 'element-desktop', - 'flatpak', - 'libreoffice-fresh', - 'neovim-git', - 'proton-mail-bin', - 'proton-vpn-gtk-app', - 'rtorrent', - 'steam', - 'stow', - 'tmux', - 'wl-clipboard', - ] - - for app in APPS: - subprocess.run(['sudo', 'pacman', '-S', f"{app}", '--noconfirm']) - - subprocess.run([ - "fish", "-c", "fisher install jorgebucaran/nvm.fish" - ], check=True) - - subprocess.run([ - "fish", "-c", "nvm install lts" - ], check=True) - - -def stow_dot_files() -> void: - DOTFILES = [ - 'alacritty', - 'fish', - 'nvim', - 'rtorrent', - 'tmux', - 'tmuxp', - ] - - for dotfile in DOTFILES: - subprocess.run(['stow', f"{dotfile}", '--adopt']) - - subprocess.run(['git', 'checkout', '--', '.']) - - -sym_link_folders() -install_apps() -stow_dot_files() diff --git a/nvim/.config/nvim/lua/plugins/mason.lua b/nvim/.config/nvim/lua/plugins/mason.lua index b88f311..7b20adc 100644 --- a/nvim/.config/nvim/lua/plugins/mason.lua +++ b/nvim/.config/nvim/lua/plugins/mason.lua @@ -6,6 +6,7 @@ require('mason-lspconfig').setup({ 'html', 'cssls', 'jsonls', + 'pylsp', }, handlers = { function(server_name) diff --git a/setup/arch/config.py b/setup/arch/config.py new file mode 100644 index 0000000..a607bb1 --- /dev/null +++ b/setup/arch/config.py @@ -0,0 +1,37 @@ +DIRECTORIES = [ + 'Documents', + 'Downloads', + 'Music', + 'Pictures', + 'Repos', + 'Videos', +] + +DIRECTORIES_TO_REMOVE = [ + 'Templates', + 'Public', +] + +APPS = [ + 'brave-bin', + 'element-desktop', + 'flatpak', + 'libreoffice-fresh', + 'neovim-git', + 'proton-mail-bin', + 'proton-vpn-gtk-app', + 'rtorrent', + 'steam', + 'stow', + 'tmux', + 'wl-clipboard', +] + +DOTFILES = [ + 'alacritty', + 'fish', + 'nvim', + 'rtorrent', + 'tmux', + 'tmuxp', +] diff --git a/setup/arch/install.py b/setup/arch/install.py new file mode 100644 index 0000000..ece4925 --- /dev/null +++ b/setup/arch/install.py @@ -0,0 +1,54 @@ +import subprocess +from pathlib import Path +from arch import config + + +def sym_link_dir(): + confirm_link = input("Do you want to link home directories to external storage?(Y/n): ") + + if confirm_link.lower == "y" or confirm_link.lower == '': + target_dir = input("Specify the full path to the external storage: ") + + def home_dir_item(item): + return Path(f"{Path.home()}/{item}") + + for dir in config.DIRECTORIES: + HOME_DIR_PATH = home_dir_item(dir) + TARGET_SYMLINK_DIR = f"{target_dir}/{dir}" + HAS_HOME_DIR = HOME_DIR_PATH.is_dir() + IS_SYMLINK = HOME_DIR_PATH.is_symlink() + + if HAS_HOME_DIR: + HOME_DIR_PATH.rmdir() + + if not IS_SYMLINK: + HOME_DIR_PATH.symlink_to(TARGET_SYMLINK_DIR) + + for dir in config.DIRECTORIES_TO_REMOVE: + if home_dir_item(dir).is_dir(): + home_dir_item(dir).rmdir() + + +def install_apps(): + for app in config.APPS: + subprocess.run(['sudo', 'pacman', '-S', f"{app}", '--noconfirm']) + + subprocess.run([ + "fish", "-c", "fisher install jorgebucaran/nvm.fish" + ], check=True) + + subprocess.run([ + "fish", "-c", "nvm install lts" + ], check=True) + + +def stow_dot_files(): + for dotfile in config.DOTFILES: + subprocess.run(['stow', f"{dotfile}", '--adopt']) + + subprocess.run(['git', 'checkout', '--', '.']) + + +sym_link_dir() +install_apps() +stow_dot_files()