Compare commits

..

3 Commits

Author SHA1 Message Date
Kendall Whitman
9a088dae4b config updates 2026-02-03 16:06:40 -06:00
Kendall Whitman
502905b023 fix indent 2026-02-03 14:54:09 -06:00
Kendall Whitman
0e269f8ba4 fixes 2026-02-03 14:37:38 -06:00
4 changed files with 92 additions and 70 deletions

View File

@@ -1,70 +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 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()

View File

@@ -6,6 +6,7 @@ require('mason-lspconfig').setup({
'html',
'cssls',
'jsonls',
'pylsp',
},
handlers = {
function(server_name)

37
setup/arch/config.py Normal file
View File

@@ -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',
]

54
setup/arch/install.py Normal file
View File

@@ -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()