Compare commits

..

12 Commits

Author SHA1 Message Date
Kendall Whitman
2f0193f173 move proton apps to flatpak 2026-02-18 13:08:17 -06:00
Kendall Whitman
dae7e51cc4 add flatpak app installs 2026-02-18 11:01:51 -06:00
Kendall Whitman
978845ea74 add fprintd 2026-02-08 14:38:59 -06:00
Kendall Whitman
0937aa4e6e fix stow function 2026-02-05 18:10:26 -06:00
Kendall Whitman
b1ad5187f4 update config 2026-02-04 12:04:16 -06:00
Kendall Whitman
d1419177d0 text update 2026-02-04 08:12:29 -06:00
Kendall Whitman
940604658b update app list 2026-02-04 08:08:34 -06:00
Kendall Whitman
65e62cc887 fix condition 2026-02-03 19:13:41 -06:00
Kendall Whitman
b96a80b4f7 update imports 2026-02-03 18:51:08 -06:00
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 106 additions and 70 deletions

45
config.py Normal file
View File

@@ -0,0 +1,45 @@
DIRECTORIES = [
'Documents',
'Downloads',
'Music',
'Pictures',
'Repos',
'Videos',
]
DIRECTORIES_TO_REMOVE = [
'Public',
'Templates',
]
APPS = [
'electrum',
'element-desktop',
'flatpak',
'fprintd',
'freecad',
'libreoffice-fresh',
'librewolf-bin',
'neovim-git',
'rtorrent',
'steam',
'stow',
'tmux',
'torbrowser-launcher',
'vlc',
'wl-clipboard',
]
FLATPAK_APPS = [
'it.mijorus.gearlever',
'me.proton.Mail',
'com.protonvpn.www',
]
DOTFILES = [
'alacritty',
'fish',
'nvim',
'rtorrent',
'tmux',
]

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

60
install.py Normal file
View File

@@ -0,0 +1,60 @@
import subprocess
import config
from pathlib import Path
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 install_flatpak_apps():
for app in config.FLATPAK_APPS:
subprocess.run(['flatpak', 'install', f"{app}"])
def stow_dot_files():
for dotfile in config.DOTFILES:
subprocess.run(['stow', f"{dotfile}", '--adopt'])
subprocess.run(['git', 'checkout', '--', '.'])
sym_link_dir()
install_apps()
install_flatpak_apps()
stow_dot_files()

View File

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