machineconfig 5.14__py3-none-any.whl → 5.16__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of machineconfig might be problematic. Click here for more details.
- machineconfig/scripts/python/count_lines_frontend.py +2 -2
- machineconfig/scripts/python/croshell.py +2 -2
- machineconfig/scripts/python/fire_jobs.py +2 -2
- machineconfig/scripts/python/interactive.py +26 -42
- machineconfig/scripts/python/share_terminal.py +2 -2
- machineconfig/setup_linux/apps.sh +69 -0
- machineconfig/setup_linux/apps_desktop.sh +113 -0
- machineconfig/setup_linux/apps_gui.sh +74 -0
- machineconfig/setup_linux/openssh_all.sh +24 -0
- machineconfig/setup_linux/openssh_wsl.sh +38 -0
- machineconfig/setup_linux/repos.sh +48 -0
- machineconfig/setup_linux/ve.sh +20 -0
- machineconfig/setup_windows/apps.ps1 +61 -0
- machineconfig/setup_windows/openssh-server.ps1 +39 -0
- machineconfig/setup_windows/openssh-server_add-sshkey.ps1 +32 -0
- machineconfig/setup_windows/openssh-server_add_identity.ps1 +11 -0
- machineconfig/setup_windows/openssh_all.ps1 +22 -0
- machineconfig/setup_windows/quirks.ps1 +7 -0
- machineconfig/setup_windows/repos.ps1 +39 -0
- machineconfig/setup_windows/symlinks.ps1 +5 -0
- machineconfig/setup_windows/symlinks2linux.ps1 +1 -0
- machineconfig/setup_windows/ve.ps1 +11 -0
- machineconfig/setup_windows/web_shortcuts/interactive.ps1 +1 -0
- machineconfig/setup_windows/wsl_refresh.ps1 +8 -0
- machineconfig/setup_windows/wt_and_pwsh.ps1 +9 -0
- machineconfig/utils/code.py +1 -1
- machineconfig/utils/files/headers.py +16 -9
- machineconfig/utils/installer_utils/installer.py +2 -2
- machineconfig/utils/terminal.py +1 -1
- {machineconfig-5.14.dist-info → machineconfig-5.16.dist-info}/METADATA +1 -1
- {machineconfig-5.14.dist-info → machineconfig-5.16.dist-info}/RECORD +34 -15
- {machineconfig-5.14.dist-info → machineconfig-5.16.dist-info}/WHEEL +0 -0
- {machineconfig-5.14.dist-info → machineconfig-5.16.dist-info}/entry_points.txt +0 -0
- {machineconfig-5.14.dist-info → machineconfig-5.16.dist-info}/top_level.txt +0 -0
|
@@ -8,8 +8,8 @@ def analyze_repo_development(repo_path: str = typer.Argument(..., help="Path to
|
|
|
8
8
|
count_lines_path = Path(count_lines.__file__)
|
|
9
9
|
# --project $HOME/code/machineconfig
|
|
10
10
|
cmd = f"""uv run --python 3.13 --with machineconfig[plot] {count_lines_path} analyze-over-time {repo_path}"""
|
|
11
|
-
from machineconfig.utils.code import
|
|
12
|
-
|
|
11
|
+
from machineconfig.utils.code import run_shell_script
|
|
12
|
+
run_shell_script(cmd)
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
if __name__ == "__main__":
|
|
@@ -145,8 +145,8 @@ from pathlib import Path
|
|
|
145
145
|
else: profile = ""
|
|
146
146
|
fire_line = f"uv run --python 3.13 --with machineconfig[plot] {interpreter} {interactivity} {profile} {str(pyfile)}"
|
|
147
147
|
|
|
148
|
-
from machineconfig.utils.code import
|
|
149
|
-
|
|
148
|
+
from machineconfig.utils.code import run_shell_script
|
|
149
|
+
run_shell_script(fire_line)
|
|
150
150
|
|
|
151
151
|
|
|
152
152
|
def arg_parser() -> None:
|
|
@@ -221,8 +221,8 @@ python -m machineconfig.cluster.templates.cli_click --file {choice_file} """
|
|
|
221
221
|
command = "$ErrorActionPreference = 'SilentlyContinue';\n" + command + "\nStart-Sleep -Seconds 0.5"
|
|
222
222
|
else:
|
|
223
223
|
raise NotImplementedError(f"Platform {platform.system()} not supported.")
|
|
224
|
-
from machineconfig.utils.code import
|
|
225
|
-
|
|
224
|
+
from machineconfig.utils.code import run_shell_script
|
|
225
|
+
run_shell_script(command)
|
|
226
226
|
|
|
227
227
|
|
|
228
228
|
def main(
|
|
@@ -27,27 +27,23 @@ from questionary import Choice
|
|
|
27
27
|
from rich.console import Console
|
|
28
28
|
from rich.panel import Panel
|
|
29
29
|
from rich.text import Text
|
|
30
|
-
from machineconfig.utils.code import
|
|
30
|
+
from machineconfig.utils.code import run_shell_script
|
|
31
31
|
|
|
32
32
|
_ = cast
|
|
33
33
|
console = Console()
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
def display_header() -> None:
|
|
37
|
-
"""Display the script header."""
|
|
38
37
|
header_text = Text("MACHINE CONFIGURATION", style="bold magenta")
|
|
39
38
|
subtitle_text = Text("Interactive Installation Script", style="italic cyan")
|
|
40
39
|
console.print(Panel(f"📦 {header_text}\n{subtitle_text}", border_style="blue", padding=(1, 2)))
|
|
41
40
|
def display_completion_message() -> None:
|
|
42
|
-
"""Display completion message."""
|
|
43
41
|
completion_text = Text("INSTALLATION COMPLETE", style="bold green")
|
|
44
42
|
subtitle_text = Text("System setup finished successfully", style="italic green")
|
|
45
43
|
console.print(Panel(f"✨ {completion_text}\n{subtitle_text}\n\n🎉 Your system has been configured successfully!\n🔄 You may need to reboot to apply all changes.", border_style="green", padding=(1, 2)))
|
|
46
44
|
def display_dotfiles_instructions() -> None:
|
|
47
|
-
"""Display instructions for dotfiles migration."""
|
|
48
45
|
header_text = Text("DOTFILES MIGRATION", style="bold yellow")
|
|
49
46
|
subtitle_text = Text("Configuration transfer options", style="italic yellow")
|
|
50
|
-
|
|
51
47
|
instructions = """
|
|
52
48
|
🖱️ [bold blue]Method 1: USING MOUSE WITHOUT KB OR BROWSER SHARE[/bold blue]
|
|
53
49
|
On original machine, run:
|
|
@@ -65,32 +61,9 @@ def display_dotfiles_instructions() -> None:
|
|
|
65
61
|
[dim]cd ~
|
|
66
62
|
cloud_copy SHARE_URL . --config ss[/dim]
|
|
67
63
|
(requires symlinks to be created first)"""
|
|
68
|
-
|
|
69
64
|
console.print(Panel(f"📂 {header_text}\n{subtitle_text}\n\n{instructions}", border_style="yellow", padding=(1, 2)))
|
|
70
65
|
|
|
71
66
|
|
|
72
|
-
def install_windows_desktop_apps() -> bool:
|
|
73
|
-
"""Install Windows desktop applications using winget."""
|
|
74
|
-
if system() != "Windows":
|
|
75
|
-
console.print("❌ This function is only available on Windows systems.", style="bold red")
|
|
76
|
-
return False
|
|
77
|
-
console.print("🔧 Installing Nerd Fonts", style="bold cyan")
|
|
78
|
-
try:
|
|
79
|
-
from machineconfig.jobs.installer.custom_dev.nerfont_windows_helper import install_nerd_fonts
|
|
80
|
-
install_nerd_fonts()
|
|
81
|
-
console.print("✅ Nerd Fonts installed successfully", style="bold green")
|
|
82
|
-
except Exception as e:
|
|
83
|
-
console.print(f"❌ Error installing Nerd Fonts: {e}", style="bold red")
|
|
84
|
-
console.print("🔧 Setting Windows Terminal settings", style="bold cyan")
|
|
85
|
-
try:
|
|
86
|
-
from machineconfig.setup_windows.wt_and_pwsh.set_wt_settings import main as set_wt_settings_main
|
|
87
|
-
set_wt_settings_main()
|
|
88
|
-
console.print("✅ Windows Terminal settings configured successfully", style="bold green")
|
|
89
|
-
except Exception as e:
|
|
90
|
-
console.print(f"❌ Error setting Windows Terminal settings: {e}", style="bold red")
|
|
91
|
-
return True
|
|
92
|
-
|
|
93
|
-
|
|
94
67
|
def get_installation_choices() -> list[str]:
|
|
95
68
|
"""Get user choices for installation options."""
|
|
96
69
|
choices = [
|
|
@@ -114,11 +87,15 @@ def get_installation_choices() -> list[str]:
|
|
|
114
87
|
|
|
115
88
|
|
|
116
89
|
def execute_installations(selected_options: list[str]) -> None:
|
|
117
|
-
"""Execute the selected installation options."""
|
|
118
90
|
if system() == "Windows":
|
|
119
|
-
|
|
91
|
+
from machineconfig import setup_windows as module
|
|
92
|
+
script_path = Path(module.__file__).parent / "ve.ps1"
|
|
93
|
+
run_shell_script(script_path.read_text(encoding="utf-8"))
|
|
120
94
|
else:
|
|
121
|
-
|
|
95
|
+
from machineconfig import setup_linux as module
|
|
96
|
+
script_path = Path(module.__file__).parent / "ve.sh"
|
|
97
|
+
run_shell_script(script_path.read_text(encoding="utf-8"))
|
|
98
|
+
|
|
122
99
|
for maybe_a_group in selected_options:
|
|
123
100
|
if maybe_a_group in ("ESSENTIAL", "DEV", "ESSENTIAL_SYSTEM", "DEV_SYSTEM", "TerminalEyeCandy"):
|
|
124
101
|
console.print(Panel("⚡ [bold bright_yellow]CLI APPLICATIONS[/bold bright_yellow]\n[italic]Command-line tools installation[/italic]", border_style="bright_yellow"))
|
|
@@ -129,21 +106,25 @@ def execute_installations(selected_options: list[str]) -> None:
|
|
|
129
106
|
console.print("✅ CLI applications installed successfully", style="bold green")
|
|
130
107
|
except Exception as e:
|
|
131
108
|
console.print(f"❌ Error installing CLI applications: {e}", style="bold red")
|
|
132
|
-
|
|
109
|
+
run_shell_script(". $HOME/.bashrc")
|
|
133
110
|
|
|
134
111
|
if "upgrade_system" in selected_options:
|
|
135
112
|
if system() == "Windows":
|
|
136
113
|
console.print("❌ System upgrade is not applicable on Windows via this script.", style="bold red")
|
|
137
114
|
elif system() == "Linux":
|
|
138
115
|
console.print(Panel("🔄 [bold magenta]SYSTEM UPDATE[/bold magenta]\n[italic]Package management[/italic]", border_style="magenta"))
|
|
139
|
-
|
|
116
|
+
run_shell_script("sudo nala upgrade -y")
|
|
140
117
|
else:
|
|
141
118
|
console.print(f"❌ System upgrade not supported on {system()}.", style="bold red")
|
|
142
119
|
if "install_repos" in selected_options:
|
|
143
120
|
console.print(Panel("🐍 [bold green]PYTHON ENVIRONMENT[/bold green]\n[italic]Virtual environment setup[/italic]", border_style="green"))
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
121
|
+
if system() == "Windows":
|
|
122
|
+
from machineconfig import setup_windows as module
|
|
123
|
+
script_path = Path(module.__file__).parent / "repos.ps1"
|
|
124
|
+
else:
|
|
125
|
+
from machineconfig import setup_linux as module
|
|
126
|
+
script_path = Path(module.__file__).parent / "repos.sh"
|
|
127
|
+
run_shell_script(script_path.read_text(encoding="utf-8"))
|
|
147
128
|
|
|
148
129
|
if "install_ssh_server" in selected_options:
|
|
149
130
|
console.print(Panel("🔒 [bold red]SSH SERVER[/bold red]\n[italic]Remote access setup[/italic]", border_style="red"))
|
|
@@ -152,9 +133,9 @@ def execute_installations(selected_options: list[str]) -> None:
|
|
|
152
133
|
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
|
|
153
134
|
Start-Service sshd
|
|
154
135
|
Set-Service -Name sshd -StartupType 'Automatic'"""
|
|
155
|
-
|
|
136
|
+
run_shell_script(f'powershell -Command "{powershell_script}"')
|
|
156
137
|
else:
|
|
157
|
-
|
|
138
|
+
run_shell_script("sudo nala install openssh-server -y")
|
|
158
139
|
|
|
159
140
|
if "install_shell_profile" in selected_options:
|
|
160
141
|
console.print(Panel("🐚 [bold green]SHELL PROFILE[/bold green]\n[italic]Shell configuration setup[/italic]", border_style="green"))
|
|
@@ -179,8 +160,8 @@ Set-Service -Name sshd -StartupType 'Automatic'"""
|
|
|
179
160
|
console.print("✅ Symlinks created successfully", style="bold green")
|
|
180
161
|
except Exception as e:
|
|
181
162
|
console.print(f"❌ Error creating symlinks: {e}", style="bold red")
|
|
182
|
-
|
|
183
|
-
|
|
163
|
+
run_shell_script("sudo chmod 600 $HOME/.ssh/*")
|
|
164
|
+
run_shell_script("sudo chmod 700 $HOME/.ssh")
|
|
184
165
|
else:
|
|
185
166
|
console.print("⏭️ Skipping symlink creation - finish dotfiles transfer first", style="yellow")
|
|
186
167
|
|
|
@@ -200,7 +181,10 @@ Set-Service -Name sshd -StartupType 'Automatic'"""
|
|
|
200
181
|
console.print(f"❌ Error retrieving backup data: {e}", style="bold red")
|
|
201
182
|
|
|
202
183
|
if "install_windows_desktop" in selected_options:
|
|
203
|
-
|
|
184
|
+
from machineconfig.jobs.installer.custom_dev.nerfont_windows_helper import install_nerd_fonts
|
|
185
|
+
install_nerd_fonts()
|
|
186
|
+
from machineconfig.setup_windows.wt_and_pwsh.set_wt_settings import main as set_wt_settings_main
|
|
187
|
+
set_wt_settings_main()
|
|
204
188
|
|
|
205
189
|
|
|
206
190
|
def main() -> None:
|
|
@@ -210,7 +194,7 @@ def main() -> None:
|
|
|
210
194
|
if not selected_options:
|
|
211
195
|
console.print("❌ No options selected. Exiting...", style="bold red")
|
|
212
196
|
sys.exit(0)
|
|
213
|
-
console.print(f"\n✅ Selected options: {'
|
|
197
|
+
console.print(f"\n✅ Selected options: {'\n'.join(selected_options)}", style="bold green")
|
|
214
198
|
proceed = questionary.confirm("🚀 Proceed with installation?", default=True).ask()
|
|
215
199
|
if not proceed:
|
|
216
200
|
console.print("❌ Installation cancelled.", style="bold red")
|
|
@@ -132,8 +132,8 @@ def main(
|
|
|
132
132
|
#!/bin/bash
|
|
133
133
|
ttyd --writable -t enableSixel=true {ssl_args} --port {port} --credential "{username}:{password}" -t 'theme={{"background": "black"}}' {start_command}
|
|
134
134
|
"""
|
|
135
|
-
from machineconfig.utils.code import
|
|
136
|
-
|
|
135
|
+
from machineconfig.utils.code import run_shell_script
|
|
136
|
+
run_shell_script(code)
|
|
137
137
|
|
|
138
138
|
|
|
139
139
|
def main_with_parser():
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
# --GROUP:ESSENTIAL_SYSTEM:git,nano,net-utils,wget,curl,nala,nvm,nodejs
|
|
5
|
+
echo "🔄 Updating apt package lists..."
|
|
6
|
+
echo "📥 Installing nala package manager..."
|
|
7
|
+
echo "📥 Installing essential network tools..."
|
|
8
|
+
echo "📥 Installing Node Version Manager (NVM)..."
|
|
9
|
+
sudo apt update -y || true
|
|
10
|
+
sudo apt install nala -y || true
|
|
11
|
+
sudo nala install curl wget gpg lsb-release apt-transport-https -y || true
|
|
12
|
+
sudo nala install git net-tools htop nano -y || true
|
|
13
|
+
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
|
|
14
|
+
echo "🔧 Configuring NVM environment..."
|
|
15
|
+
export NVM_DIR="$HOME/.nvm"
|
|
16
|
+
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
|
17
|
+
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
|
|
18
|
+
echo "📥 Installing latest Node.js..."
|
|
19
|
+
nvm install node || true
|
|
20
|
+
|
|
21
|
+
# --GROUP:TerminalEyeCandy:fortune,toilet,sl,aafire,cmatrix,hollywood,chafa
|
|
22
|
+
echo "📥 Installing fortune - random wisdom generator..."
|
|
23
|
+
echo "📥 Installing toilet - large ASCII text generator..."
|
|
24
|
+
echo "📥 Installing sl - steam locomotive animation..."
|
|
25
|
+
echo "📥 Installing aafire - ASCII art fire animation..."
|
|
26
|
+
echo "📥 Installing cmatrix - Matrix-style terminal animation..."
|
|
27
|
+
echo "📥 Installing hollywood - Hollywood hacker terminal effect..."
|
|
28
|
+
echo "📥 Installing chafa - terminal image viewer..."
|
|
29
|
+
sudo nala install cowsay -y || true
|
|
30
|
+
sudo nala install lolcat -y || true
|
|
31
|
+
sudo nala install boxes -y || true
|
|
32
|
+
sudo nala install figlet -y || true
|
|
33
|
+
sudo nala install fortune -y || true
|
|
34
|
+
sudo nala install toilet -y || true
|
|
35
|
+
sudo nala install chafa -y
|
|
36
|
+
sudo nala install sl -y || true
|
|
37
|
+
sudo nala install libaa-bin -y
|
|
38
|
+
echo 'keyboard-configuration keyboard-configuration/layout select US English' | sudo debconf-set-selections
|
|
39
|
+
echo 'keyboard-configuration keyboard-configuration/layoutcode string us' | sudo debconf-set-selections
|
|
40
|
+
sudo DEBIAN_FRONTEND=noninteractive nala install -y cmatrix
|
|
41
|
+
sudo nala install hollywood -y || true
|
|
42
|
+
|
|
43
|
+
# --GROUP:NetworkTools: sshfs,samba,fuse3,nfs-common
|
|
44
|
+
echo "📥 Installing sshfs - mount remote filesystems over SSH..."
|
|
45
|
+
echo "📥 Installing Samba - LAN-based file sharing..."
|
|
46
|
+
sudo nala install sshfs
|
|
47
|
+
sudo nala install samba
|
|
48
|
+
sudo nala install fuse3 -y || true
|
|
49
|
+
sudo nala install nfs-common -y || true
|
|
50
|
+
|
|
51
|
+
# --GROUP:DEV_SYSTEM: graphviz,make,rust,libssl-dev,sqlite3,postgresql-client,redis-tools
|
|
52
|
+
echo "📥 Installing Graphviz - graph visualization software..."
|
|
53
|
+
echo "📥 Installing make - build automation tool..."
|
|
54
|
+
echo "📥 Installing SSL development libraries for Rust..."
|
|
55
|
+
echo "📥 Installing Rust programming language and toolchain..."
|
|
56
|
+
sudo nala install graphviz -y || true
|
|
57
|
+
sudo nala install ffmpeg -y || true # Required by some dev tools
|
|
58
|
+
sudo nala install make -y || true # Required by LunarVim and SpaceVim
|
|
59
|
+
(curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh) || true
|
|
60
|
+
sudo nala install libssl-dev -y
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
# --GROUP:DATABASES: sqlite3,postgresql-client,redis-tools
|
|
64
|
+
echo "📥 Installing SQLite - lightweight SQL database..."
|
|
65
|
+
echo "📥 Installing PostgreSQL client..."
|
|
66
|
+
echo "📥 Installing Redis command-line tools..."
|
|
67
|
+
sudo nala install sqlite3 -y || true
|
|
68
|
+
sudo nala install postgresql-client -y || true
|
|
69
|
+
sudo nala install redis-tools -y || true
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
#!/usr/bin/bash
|
|
2
|
+
#=======================================================================
|
|
3
|
+
# 🖥️ DESKTOP APPLICATIONS INSTALLATION SCRIPT
|
|
4
|
+
#=======================================================================
|
|
5
|
+
# This script installs desktop applications for a Linux workstation
|
|
6
|
+
|
|
7
|
+
echo """#=======================================================================
|
|
8
|
+
🌐 WEB BROWSERS | Installing browser applications
|
|
9
|
+
#=======================================================================
|
|
10
|
+
"""
|
|
11
|
+
# Google Chrome installation (commented reference)
|
|
12
|
+
# echo "📥 Installing Google Chrome..."
|
|
13
|
+
# wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
|
|
14
|
+
# sudo dpkg -i google-chrome-stable_current_amd64.deb
|
|
15
|
+
|
|
16
|
+
echo """#=======================================================================
|
|
17
|
+
📝 TEXT EDITORS | Installing Neovim editor
|
|
18
|
+
#=======================================================================
|
|
19
|
+
"""
|
|
20
|
+
echo "📥 Installing Neovim via Homebrew..."
|
|
21
|
+
/home/linuxbrew/.linuxbrew/bin/brew install neovim
|
|
22
|
+
|
|
23
|
+
echo """#=======================================================================
|
|
24
|
+
📧 EMAIL CLIENT | Installing Thunderbird
|
|
25
|
+
#=======================================================================
|
|
26
|
+
"""
|
|
27
|
+
echo "📥 Installing Thunderbird via Flatpak..."
|
|
28
|
+
flatpak install flathub org.mozilla.Thunderbird
|
|
29
|
+
|
|
30
|
+
echo """#=======================================================================
|
|
31
|
+
🖲️ TERMINAL EMULATOR | Installing WezTerm
|
|
32
|
+
#=======================================================================
|
|
33
|
+
"""
|
|
34
|
+
echo "📥 Installing WezTerm via Flatpak..."
|
|
35
|
+
flatpak install flathub org.wezfurlong.wezterm
|
|
36
|
+
echo "🚀 Launching WezTerm..."
|
|
37
|
+
flatpak run org.wezfurlong.wezterm
|
|
38
|
+
|
|
39
|
+
echo """#=======================================================================
|
|
40
|
+
✏️ SCREEN ANNOTATION | Installing Gromit-MPX
|
|
41
|
+
#=======================================================================
|
|
42
|
+
"""
|
|
43
|
+
echo "📥 Installing Gromit-MPX via Flatpak..."
|
|
44
|
+
flatpak install net.christianbeier.Gromit-MPX
|
|
45
|
+
|
|
46
|
+
echo """#=======================================================================
|
|
47
|
+
📋 CLIPBOARD MANAGERS | Installing CopyQ
|
|
48
|
+
#=======================================================================
|
|
49
|
+
"""
|
|
50
|
+
echo "📥 Installing CopyQ via Flatpak..."
|
|
51
|
+
flatpak install flathub com.github.hluk.copyq --noninteractive
|
|
52
|
+
|
|
53
|
+
echo """#=======================================================================
|
|
54
|
+
🔗 REMOTE DESKTOP | Installing Remmina
|
|
55
|
+
#=======================================================================
|
|
56
|
+
"""
|
|
57
|
+
echo "📥 Installing Remmina and RDP plugin..."
|
|
58
|
+
sudo nala install remmina remmina-plugin-rdp -y
|
|
59
|
+
|
|
60
|
+
# Alternative Remmina installation via flatpak (reference)
|
|
61
|
+
# echo "📥 Setting up Flatpak repositories..."
|
|
62
|
+
# flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
|
63
|
+
# flatpak install org.freedesktop.Platform
|
|
64
|
+
# flatpak install org.freedesktop.Platform.openh264
|
|
65
|
+
# flatpak install --user flathub org.remmina.Remmina
|
|
66
|
+
# flatpak run --user org.remmina.Remmina
|
|
67
|
+
|
|
68
|
+
echo """#=======================================================================
|
|
69
|
+
🚀 APPLICATION LAUNCHER | Installing Rofi
|
|
70
|
+
#=======================================================================
|
|
71
|
+
"""
|
|
72
|
+
echo "📥 Installing Rofi application launcher..."
|
|
73
|
+
sudo nala install rofi -y
|
|
74
|
+
|
|
75
|
+
echo """#=======================================================================
|
|
76
|
+
📎 CLIPBOARD HISTORY | Installing Greenclip
|
|
77
|
+
#=======================================================================
|
|
78
|
+
"""
|
|
79
|
+
# Session type detection (reference)
|
|
80
|
+
# session_type=$(echo $XDG_SESSION_TYPE)
|
|
81
|
+
# if [ "$session_type" == "x11" ]; then
|
|
82
|
+
# echo "Detected X11 session. Installing X11-related packages and tools..."
|
|
83
|
+
# sudo nala install xdotool xsel xclip -y
|
|
84
|
+
# elif [ "$session_type" == "wayland" ]; then
|
|
85
|
+
# echo "Detected Wayland session. Installing Wayland-related packages and tools..."
|
|
86
|
+
# sudo nala install wl-copy wtype -y
|
|
87
|
+
# else
|
|
88
|
+
# echo "Unknown session type: $session_type"
|
|
89
|
+
# exit 1
|
|
90
|
+
# fi
|
|
91
|
+
|
|
92
|
+
echo "📥 Downloading and installing Greenclip clipboard manager..."
|
|
93
|
+
wget -P ~/Downloads https://github.com/erebe/greenclip/releases/download/v4.2/greenclip
|
|
94
|
+
chmod +x ~/Downloads/greenclip
|
|
95
|
+
sudo mv ~/Downloads/greenclip /usr/bin/
|
|
96
|
+
|
|
97
|
+
echo "ℹ️ Usage instructions:"
|
|
98
|
+
echo "- Start daemon: greenclip daemon &"
|
|
99
|
+
echo "- With Rofi: rofi -modi \"clipboard:greenclip print\" -show clipboard -run-command '{cmd}'"
|
|
100
|
+
echo "- For emoji picker: rofi -modi \"emoji:rofimoji\" -show emoji"
|
|
101
|
+
echo "- Application launcher: rofi -show drun"
|
|
102
|
+
|
|
103
|
+
echo """#=======================================================================
|
|
104
|
+
🔄 APPLICATION LINKING | Linking applications to user space
|
|
105
|
+
#=======================================================================
|
|
106
|
+
"""
|
|
107
|
+
echo "🔗 Creating application symlinks..."
|
|
108
|
+
ln -s /home/$USER/.nix-profile/share/applications/* /home/$USER/.local/share/applications/
|
|
109
|
+
|
|
110
|
+
echo """#=======================================================================
|
|
111
|
+
✅ INSTALLATION COMPLETE | Desktop applications have been installed
|
|
112
|
+
#=======================================================================
|
|
113
|
+
"""
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
#=======================================================================
|
|
3
|
+
# 🖥️ GUI APPLICATIONS AND DESKTOP ENVIRONMENT SETUP SCRIPT
|
|
4
|
+
#=======================================================================
|
|
5
|
+
# This script installs graphical user interfaces and desktop environments
|
|
6
|
+
|
|
7
|
+
echo """#=======================================================================
|
|
8
|
+
📦 INSTALLING GUI COMPONENTS | Setting up desktop environment
|
|
9
|
+
#=======================================================================
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
# echo "📥 Installing Nautilus file manager..."
|
|
13
|
+
# sudo nala install nautilus -y # 📂 graphical file manager
|
|
14
|
+
# sudo nala install x11-apps # 🎨 few graphical test apps like xeyes
|
|
15
|
+
|
|
16
|
+
echo "📥 Installing XRDP - Remote Desktop Protocol server..."
|
|
17
|
+
sudo nala install xrdp -y # 🔌 remote desktop protocol
|
|
18
|
+
|
|
19
|
+
# echo "📥 Installing X.Org server and components..."
|
|
20
|
+
# sudo nala install xorg -y # 🎯 xorg server
|
|
21
|
+
# sudo nala install xinit -y # 🚀 xorg init
|
|
22
|
+
# sudo nala install xserver-xorg -y # 🖼️ xorg server
|
|
23
|
+
|
|
24
|
+
echo "📥 Installing XFCE4 desktop environment..."
|
|
25
|
+
sudo nala install xfce4 -y # 🏠 xfce4 desktop environment
|
|
26
|
+
|
|
27
|
+
echo "📥 Installing XFCE4 additional components..."
|
|
28
|
+
sudo nala install xfce4-goodies -y # ✨ xfce4 desktop environment extras
|
|
29
|
+
|
|
30
|
+
echo """#=======================================================================
|
|
31
|
+
🔧 CONFIGURING XRDP | Setting up Remote Desktop service
|
|
32
|
+
#=======================================================================
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
# Back up original configuration
|
|
36
|
+
echo "📄 Creating backup of XRDP configuration..."
|
|
37
|
+
sudo cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.bak
|
|
38
|
+
|
|
39
|
+
# Change default port to avoid conflict with Windows RDP
|
|
40
|
+
echo "🔢 Changing XRDP port to 3391..."
|
|
41
|
+
sudo sed -i 's/3389/3391/g' /etc/xrdp/xrdp.ini
|
|
42
|
+
|
|
43
|
+
# Configure color depth and display settings
|
|
44
|
+
echo "🎨 Configuring display quality settings..."
|
|
45
|
+
sudo sed -i 's/max_bpp=32/#max_bpp=32\nmax_bpp=128/g' /etc/xrdp/xrdp.ini
|
|
46
|
+
sudo sed -i 's/xserverbpp=24/#xserverbpp=24\nxserverbpp=128/g' /etc/xrdp/xrdp.ini
|
|
47
|
+
|
|
48
|
+
# Set default session
|
|
49
|
+
echo "🖥️ Setting up default XFCE4 session..."
|
|
50
|
+
echo xfce4-session > ~/.xsession
|
|
51
|
+
|
|
52
|
+
# Configure startup window manager
|
|
53
|
+
echo "🚀 Configuring window manager startup..."
|
|
54
|
+
sudo sed -i 's/test/#test/g' /etc/xrdp/startwm.sh
|
|
55
|
+
sudo sed -i 's/exec/#exec/g' /etc/xrdp/startwm.sh
|
|
56
|
+
echo "startxfce4" | sudo tee -a /etc/xrdp/startwm.sh
|
|
57
|
+
|
|
58
|
+
echo """#=======================================================================
|
|
59
|
+
🚀 STARTING SERVICES | Initializing XRDP service
|
|
60
|
+
#=======================================================================
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
echo "🔄 Starting XRDP service..."
|
|
64
|
+
sudo /etc/init.d/xrdp start
|
|
65
|
+
|
|
66
|
+
echo """#=======================================================================
|
|
67
|
+
✅ SETUP COMPLETE | GUI environment has been configured
|
|
68
|
+
#=======================================================================
|
|
69
|
+
"""
|
|
70
|
+
echo "ℹ️ Connect to this machine via Remote Desktop using port 3391"
|
|
71
|
+
# Alternative commands:
|
|
72
|
+
# sudo systemctl restart xrdp
|
|
73
|
+
# sudo service xrdp restart
|
|
74
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/usr/bin/bash
|
|
2
|
+
# 🔐 OpenSSH Server Setup and Configuration
|
|
3
|
+
|
|
4
|
+
# Common pitfalls:
|
|
5
|
+
# 🚫 Wrong line endings (LF/CRLF) in config files
|
|
6
|
+
# 🌐 Network port conflicts (try 2222 -> 2223) between WSL and Windows
|
|
7
|
+
|
|
8
|
+
# 📁 Setup SSH directory and permissions
|
|
9
|
+
mkdir -p ~/.ssh
|
|
10
|
+
echo $pubkey_string >> ~/.ssh/authorized_keys
|
|
11
|
+
sudo chmod 600 ~/.ssh/*
|
|
12
|
+
sudo chmod 700 ~/.ssh
|
|
13
|
+
echo "✅ FINISHED modifying .ssh folder attributes."
|
|
14
|
+
|
|
15
|
+
# 🔄 Clean install OpenSSH server
|
|
16
|
+
sudo nala purge openssh-server -y
|
|
17
|
+
sudo nala install openssh-server -y
|
|
18
|
+
echo "✅ FINISHED installing openssh-server."
|
|
19
|
+
|
|
20
|
+
# 📝 Additional commands if needed:
|
|
21
|
+
# sudo service ssh status
|
|
22
|
+
# sudo nano /etc/ssh/sshd_config
|
|
23
|
+
# sudo service ssh restart
|
|
24
|
+
# For tunnels see: https://www.youtube.com/watch?v=Wp7boqm3Xts
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
#!/usr/bin/bash
|
|
2
|
+
# 🐧 WSL2 SSH Configuration for LAN Access 🌐
|
|
3
|
+
# Purpose: Enable SSH access to WSL2 from LAN (requires wsl_server.ps1 in Windows)
|
|
4
|
+
# Common pitfall: sshd fails after config changes due to wrong line endings/permissions
|
|
5
|
+
|
|
6
|
+
# 🔍 Check if running in WSL
|
|
7
|
+
if [[ $(uname -a) == *"icrosoft"* ]]; then
|
|
8
|
+
echo "✅ Running inside WSL"
|
|
9
|
+
else
|
|
10
|
+
echo "❌ Not running inside WSL, no need for this script"
|
|
11
|
+
exit 0
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
# 🔢 Set SSH port
|
|
15
|
+
if [ -z "$port" ]; then
|
|
16
|
+
port=2222
|
|
17
|
+
echo "📝 Port variable not defined, setting it to $port"
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
# 🛠️ Configure SSH
|
|
21
|
+
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
|
|
22
|
+
sudo sed -i 's/#Port 22/Port '$port'/g' /etc/ssh/sshd_config
|
|
23
|
+
sudo sed -i 's/#ListenAddress 0.0.0.0/ListenAddress 0.0.0.0/g' /etc/ssh/sshd_config
|
|
24
|
+
sudo sed -i 's/#PubkeyAuthentication yes/PubkeyAuthentication yes/g' /etc/ssh/sshd_config
|
|
25
|
+
sudo sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
|
|
26
|
+
|
|
27
|
+
# 🔑 Generate host keys and restart service
|
|
28
|
+
sudo service ssh start
|
|
29
|
+
sudo ssh-keygen -A
|
|
30
|
+
sudo service ssh --full-restart
|
|
31
|
+
sudo service ssh status
|
|
32
|
+
|
|
33
|
+
echo "✨ FINISHED configuring SSH in WSL2."
|
|
34
|
+
|
|
35
|
+
# 📚 References:
|
|
36
|
+
# Service startup: https://superuser.com/questions/1701853/how-to-enable-a-service-to-start-with-wsl2
|
|
37
|
+
# WSL config: https://learn.microsoft.com/en-us/windows/wsl/networking#accessing-a-wsl-2-distribution-from-your-local-area-network-lan
|
|
38
|
+
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
#!/usr/bin/bash
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
echo """
|
|
5
|
+
#=======================================================================
|
|
6
|
+
🔄 REPOSITORIES SETUP | Cloning project codebases
|
|
7
|
+
#=======================================================================
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
echo """📥 Setting up repositories...
|
|
11
|
+
🐊 crocodile - Main utility package
|
|
12
|
+
🔧 machineconfig - System configuration tools
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
mkdir -p $HOME/code
|
|
16
|
+
cd $HOME/code
|
|
17
|
+
# Setup crocodile repository
|
|
18
|
+
if [ -d "crocodile" ]; then
|
|
19
|
+
echo """🔄 crocodile directory exists, updating...
|
|
20
|
+
"""
|
|
21
|
+
cd crocodile
|
|
22
|
+
git reset --hard
|
|
23
|
+
git pull
|
|
24
|
+
cd ..
|
|
25
|
+
else
|
|
26
|
+
echo """⏳ Cloning crocodile repository...
|
|
27
|
+
"""
|
|
28
|
+
git clone https://github.com/thisismygitrepo/crocodile.git --depth 4
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
# Setup machineconfig repository
|
|
32
|
+
cd $HOME/code
|
|
33
|
+
if [ -d "machineconfig" ]; then
|
|
34
|
+
echo """🔄 machineconfig directory exists, updating...
|
|
35
|
+
"""
|
|
36
|
+
cd machineconfig
|
|
37
|
+
git reset --hard
|
|
38
|
+
git pull
|
|
39
|
+
cd ..
|
|
40
|
+
else
|
|
41
|
+
echo """⏳ Cloning machineconfig repository...
|
|
42
|
+
"""
|
|
43
|
+
git clone https://github.com/thisismygitrepo/machineconfig --depth 4 # Choose browser-based authentication.
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
cd $HOME/code/machineconfig
|
|
47
|
+
$HOME/.local/bin/uv sync --no-dev
|
|
48
|
+
$HOME/.local/bin/uv cache clean
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/usr/bin/bash
|
|
2
|
+
|
|
3
|
+
if [ ! -f "$HOME/.local/bin/uv" ]; then
|
|
4
|
+
echo """📦 uv binary not found
|
|
5
|
+
⏳ Installing uv package manager..."""
|
|
6
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
7
|
+
else
|
|
8
|
+
echo """🔄 Updating uv package manager..."""
|
|
9
|
+
$HOME/.local/bin/uv self update
|
|
10
|
+
fi
|
|
11
|
+
# Add uv to PATH if not already there
|
|
12
|
+
if ! command -v uv &> /dev/null; then
|
|
13
|
+
echo """🔍 uv command not found in PATH
|
|
14
|
+
➕ Adding uv to system PATH...
|
|
15
|
+
"""
|
|
16
|
+
export PATH="$HOME/.local/bin:$PATH"
|
|
17
|
+
fi
|
|
18
|
+
echo """✅ uv is installed and ready to use."""
|
|
19
|
+
|
|
20
|
+
$HOME/.local/bin/uv python install 3.13
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
|
|
2
|
+
# to get exact version of an app in winget, head to: https://winget.run
|
|
3
|
+
|
|
4
|
+
# --GROUP:ESSENTIAL_SYSTEM:WT+Brave+VSCode+WezTerm+OhMyPosh+Powershell+Starship+Git+Neovim+GNU Nano+Terminal-Icons+PSFzf
|
|
5
|
+
winget install --no-upgrade --name "Windows Terminal" --Id "Microsoft.WindowsTerminal" --source winget --scope user --accept-package-agreements --accept-source-agreements # Terminal is is installed by default on W 11
|
|
6
|
+
winget install --no-upgrade --name "Brave" --Id "Brave.Brave" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
7
|
+
winget install --no-upgrade --name "Microsoft Visual Studio Code" --Id "Microsoft.VisualStudioCode" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
8
|
+
winget install --no-upgrade --name "WezTerm" --Id "wez.wezterm" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
9
|
+
winget install --no-upgrade --name "Oh My Posh" --Id "JanDeDobbeleer.OhMyPosh" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
10
|
+
winget install --no-upgrade --name "Powershell" --Id "Microsoft.PowerShell" --source winget --scope user --accept-package-agreements --accept-source-agreements # powershell require admin
|
|
11
|
+
winget install --no-upgrade --name "Starship" --Id "Starship.Starship" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
12
|
+
winget install --no-upgrade --name "Git" --Id "Git.Git" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
13
|
+
winget install --no-upgrade --name "Neovim" --Id "Neovim.Neovim" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
14
|
+
winget install --no-upgrade --name "GNU Nano" --Id "GNU.Nano" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
15
|
+
Install-Module -Name Terminal-Icons -Repository PSGallery -Force -AcceptLicense -PassThru -Confirm # -RequiredVersion 2.5.10
|
|
16
|
+
Install-Module -Name PSFzf -SkipPublisherCheck # -AcceptLicense -PassThru -Confirm # -RequiredVersion 2.5.10
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
# --GROUP:DEV_SYSTEM:VSRedistrib+VSBuildTools+Codeblocks+GnuWin32: Make+GnuPG+graphviz+WinFsp+SSHFS-win+xming+Node.js+Rustup+Cloudflare+Cloudflare WARP+Microsoft Garage Mouse without Borders
|
|
20
|
+
winget install --no-upgrade --name "VSRedistrib" --Id "Microsoft.VC++2015-2022Redist-x64" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
21
|
+
winget install --no-upgrade --name "VSBuildTools" --Id "Microsoft.VisualStudio.2022.BuildTools" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
22
|
+
winget install --no-upgrade --name "Codeblocks" --Id "Codeblocks.Codeblocks" --source winget --scope user --accept-package-agreements --accept-source-agreements # IDE for C/C++
|
|
23
|
+
winget install --no-upgrade --name "GnuWin32: Make" --Id "GnuWin32.Make" --source winget --scope user --accept-package-agreements --accept-source-agreements # required for building some python packages with native extensions, like dlib
|
|
24
|
+
winget install --no-upgrade --name "GnuPG" --Id "GnuPG.GnuPG" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
25
|
+
winget install --no-upgrade --name "graphviz" --Id "Graphviz.Graphviz" --source winget --scope user --accept-package-agreements --accept-source-agreements # required by pygraphviz. Used in Base.viz_object_hirarchy and Model.plot_model()
|
|
26
|
+
winget install --no-upgrade --name "WinFsp" --Id "WinFsp.WinFsp" --source winget --scope user --accept-package-agreements --accept-source-agreements # mount remote filesystems and required by rclone
|
|
27
|
+
winget install --no-upgrade --name "SSHFS-win" --Id "SSHFS-Win.SSHFS-Win" --source winget --scope user --accept-package-agreements --accept-source-agreements # mount remote filesystems # as per https://github.com/winfsp/sshfs-win
|
|
28
|
+
winget install --no-upgrade --name "xming" --Id "xming.xming" --source winget --scope user --accept-package-agreements --accept-source-agreements # X11 server. you need this while using wsl with gui, otherwise plt.show() returns: ImportError: Cannot load backend 'TkAgg' which requires the 'tk' interactive framework, as 'headless' is currently running
|
|
29
|
+
winget install --no-upgrade --name "Node.js" --Id "OpenJS.NodeJS" --source winget --scope user --accept-package-agreements --accept-source-agreements # ncessary for nvim plugins.
|
|
30
|
+
winget install --no-upgrade --name "Rustup" --Id "Rustlang.Rustup" --source winget --scope user --accept-package-agreements --accept-source-agreements # rust compiler, necessary for some nvim plugins
|
|
31
|
+
winget install --no-upgrade --name "Cloudflare" --Id "Cloudflare.cloudflared" --source winget --scope user --accept-package-agreements --accept-source-agreements # cloudflare tunnel client, alternative to ngrok
|
|
32
|
+
winget install --no-upgrade --name "Cloudflare WARP" --Id "Cloudflare.Warp" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
33
|
+
winget install --no-upgrade --name "Microsoft Garage Mouse without Borders" --Id "Microsoft.MouseWithoutBorders" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
# --GROUP:OTHER_WINDOWS:nu+Chrome+ChromeRemoteDesktop+Zoom+7zip+Firefox+Thunderbird+StreamlabsOBS+OBSStudio+MiKTeX+TexMaker+notepad+++Lapce+TesseractOCR+perl+DB Browser for SQLite+sql server management studio+Adobe Acrobat Reader DC+julia+Chafa+bottom+onefetch+Just+hyperfine+AWS CLI
|
|
37
|
+
winget install --no-upgrade --name "nu" --Id "Nushell.Nushell" --source winget --scope user --accept-package-agreements --accept-source-agreements # add to userpath C:\Program Files\nu\bin, done in symlinks
|
|
38
|
+
winget install --no-upgrade --name "Google Chrome" --Id "Google.Chrome" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
39
|
+
winget install --no-upgrade --name "Chrome Remote Desktop Host" --Id "Google.ChromeRemoteDesktop" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
40
|
+
winget install --no-upgrade --name "Zoom" --Id "Zoom.Zoom" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
41
|
+
winget install --no-upgrade --name "7-zip" --Id "7zip.7zip" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
42
|
+
winget install --no-upgrade --name "Mozilla Firefox" --Id "Mozilla.Firefox" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
43
|
+
winget install --no-upgrade --name "Mozilla Thunderbird (en-US)" --Id "Mozilla.Thunderbird" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
44
|
+
winget install --no-upgrade --name "StreamlabsOBS" --Id "Streamlabs.StreamlabsOBS" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
45
|
+
winget install --no-upgrade --name "OBSStudio" --Id "OBSProject.OBSStudio" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
46
|
+
winget install --no-upgrade --name "MiKTeX" --Id "MiKTeX.MiKTeX" --source winget --scope user # library / lanugage
|
|
47
|
+
winget install --no-upgrade --name "TexMaker" --Id "Texmaker.Texmaker" --source winget --scope user # IDE better than simple TexWorks shipped with MikTex. IDE is basically GUI for cmd interface of Tex
|
|
48
|
+
winget install --no-upgrade --name "notepad++" --Id "Notepad++.Notepad++" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
49
|
+
winget install --no-upgrade --name "Lapce" --Id "Lapce.Lapce" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
50
|
+
winget install --no-upgrade --name "TesseractOCR" --Id "UB-Mannheim.TesseractOCR" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
51
|
+
winget install --no-upgrade --name "perl" --Id "StrawbgnogerryPerl.StrawberryPerl" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
52
|
+
winget install --no-upgrade --name "DB Browser for SQLite" --Id "DBBrowserForSQLite.DBBrowserForSQLite" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
53
|
+
winget install --no-upgrade --name "sql server management studio" --Id "Microsoft.SQLServerManagementStudio" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
54
|
+
winget install --no-upgrade --name "Adobe Acrobat Reader DC" --Id "Adobe.Acrobat.Reader.64-bit" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
55
|
+
winget install --no-upgrade --name "julia" --Id "Julialang.Julia" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
56
|
+
winget install --no-upgrade --name "Chafa" --Id "hpjansson.Chafa" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
57
|
+
winget install --no-upgrade --name "bottom" --Id "Clement.bottom" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
58
|
+
winget install --no-upgrade --name "onefetch" --Id "o2sh.onefetch" --source winget --scope user # repo-version of system fastfetch, see also tokei
|
|
59
|
+
winget install --no-upgrade --name "Just" --Id "Casey.Just" --source winget --scope user # commandline runner
|
|
60
|
+
winget install --no-upgrade --name "hyperfine" --Id "sharkdp.hyperfine" --source winget --scope user # benchmarking tool
|
|
61
|
+
winget install --no-upgrade --name "AWS Command Line Interface" --Id "Amazon.AWSCLI" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
|
|
2
|
+
$ErrorActionPreference = "Stop"
|
|
3
|
+
# ALL of the following require admin priviliages:
|
|
4
|
+
Set-ExecutionPolicy Bypass
|
|
5
|
+
# PowerShell.exe -ExecutionPolicy Bypass -File "C:\bypass\prompt\standard.ps1" 2>&1>$null
|
|
6
|
+
|
|
7
|
+
# Install SSH-Server on a windows machine. see this one below if this one didn't work:
|
|
8
|
+
# to install: winget install --Id Microsoft.OpenSSH.Preview --source winget --scope user # from: https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH
|
|
9
|
+
# the result is installed in C:\Program Files\OpenSSH as opposed to C:\Windows\System32\OpenSSH which is the case if openssh is added as a feature/capability to windows
|
|
10
|
+
# However, notice the new path is not in PATH as is the cases with system variant, so it needs to be added manually.
|
|
11
|
+
# finally, ssh config files are always @ "$env:ProgramData\ssh" irrespective of installation method.
|
|
12
|
+
# if ssh key is created on windows, it doesn't work on linux and gives a cryptlib error. It must be read again and saved in non DOS format.
|
|
13
|
+
|
|
14
|
+
Add-WindowsCapability -Online -Name OpenSSH.Server
|
|
15
|
+
Add-WindowsCapability -Online -Name OpenSSH.Client
|
|
16
|
+
|
|
17
|
+
#New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH SSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 -Program "%WINDIR%\System32\OpenSSH\sshd.exe"
|
|
18
|
+
|
|
19
|
+
# Must Enable ssh-agent before starting. But even before that, one need to update path so that same shell has access to the NEWLY added ssh program
|
|
20
|
+
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
|
|
21
|
+
|
|
22
|
+
Set-Service -Name sshd -StartupType Automatic
|
|
23
|
+
|
|
24
|
+
#Get-Service -Name ssh-agent | Set-Service -StartupType Automatic
|
|
25
|
+
|
|
26
|
+
#Set-Service -Name ssh-agent -StartupType Automatic
|
|
27
|
+
#Start-Service ssh-agent
|
|
28
|
+
# Starting the service for the first time will populate the directory with config files.
|
|
29
|
+
Start-Service sshd
|
|
30
|
+
|
|
31
|
+
# Next up, change default shell to powershell, becuse CMD is lame
|
|
32
|
+
# following: https://github.com/PowerShell/Win32-OpenSSH/wiki/DefaultShell
|
|
33
|
+
$shell = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" # "C:\Windows\System32\wsl.exe"
|
|
34
|
+
# $shell = "C:\Program Files\PowerShell\7\pwsh.exe" # it slows SSH down because of startup time, one can still use it by running it explicitly
|
|
35
|
+
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value $shell -PropertyType String -Force
|
|
36
|
+
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShellCommandOption -Value "/c" -PropertyType String -Force
|
|
37
|
+
|
|
38
|
+
cd ~
|
|
39
|
+
mkdir .ssh -ErrorAction SilentlyContinue
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
|
|
2
|
+
# This script adds a public key to the authorized_keys file for the sshd service
|
|
3
|
+
# as a result, a remote can connet to the machine if they got the corresponding private key (identity).
|
|
4
|
+
|
|
5
|
+
# https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagement
|
|
6
|
+
# http://woshub.com/using-ssh-key-based-authentication-on-windows/
|
|
7
|
+
|
|
8
|
+
$ErrorActionPreference = "Stop"
|
|
9
|
+
$sshd_dir = "$env:ProgramData\ssh"
|
|
10
|
+
|
|
11
|
+
$sshfile = "$env:USERPROFILE\.ssh\pubkey.pub" # this directory is for normal users, not admins.
|
|
12
|
+
# Once they are populated, we can create administrators_authorized_keys
|
|
13
|
+
|
|
14
|
+
Get-Content $sshfile >> "$sshd_dir\administrators_authorized_keys"
|
|
15
|
+
|
|
16
|
+
# set appropirate persmissions for this file
|
|
17
|
+
Set-Location $sshd_dir
|
|
18
|
+
icacls administrators_authorized_keys /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
|
|
19
|
+
|
|
20
|
+
# Lastly, enabling public key authentication.
|
|
21
|
+
$sshd_config = "$sshd_dir\sshd_config"
|
|
22
|
+
(Get-Content $sshd_config) -replace '#PubkeyAuthentication', 'PubkeyAuthentication' | Out-File -encoding ASCII $sshd_config
|
|
23
|
+
#(Get-Content $sshd_dir\sshd_config) -replace 'AuthorizedKeysFile __PROGRAMDATA__', '#AuthorizedKeysFile __PROGRAMDATA__' | Out-File -encoding ASCII $sshd_config
|
|
24
|
+
#(Get-Content $sshd_dir\sshd_config) -replace 'Match Group administrators', '#Match Group administrators' | Out-File -encoding ASCII $sshd_config
|
|
25
|
+
#cat C:\ProgramData\ssh\sshd_config
|
|
26
|
+
|
|
27
|
+
# to load the fresh settings, we need to restart the service:
|
|
28
|
+
Restart-Service sshd -Force
|
|
29
|
+
|
|
30
|
+
#Write-Host "Use this to Login/test Now"
|
|
31
|
+
#write-host ssh $env:UserName@localhost
|
|
32
|
+
# debug tip: use nano editor to inspect files above, if unreadable max-text format is used, ssh won't work.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
|
|
2
|
+
# on the side of the local machine, you need to sort out the following:
|
|
3
|
+
# if the $sshfile doesn't have a standard name, you will need to explicitly specify the identity while SSHing (e.g. ssh u@s -i ~/.ssh/my_id)
|
|
4
|
+
# However, this must be done every time. For permanent solutions, use .ssh/config
|
|
5
|
+
|
|
6
|
+
$sshfile = "$env:USERPROFILE\.ssh\id_rsa"
|
|
7
|
+
|
|
8
|
+
Set-Service ssh-agent -StartupType Manual # allow the service to be started manually
|
|
9
|
+
ssh-agent # start the service
|
|
10
|
+
ssh-add.exe $sshfile # add the key to the agent
|
|
11
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
|
|
2
|
+
# install server (sshd).
|
|
3
|
+
Invoke-WebRequest https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/openssh-server.ps1 | Invoke-Expression
|
|
4
|
+
|
|
5
|
+
if (!$pubkey_string) {
|
|
6
|
+
$pubkey_url = 'https://github.com/thisismygitrepo.keys' # (CHANGE APPROPRIATELY)
|
|
7
|
+
$pubkey_string = (Invoke-WebRequest $pubkey_url).Content
|
|
8
|
+
} else {
|
|
9
|
+
Write-Output "pubkey_string is already defined."
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
cd ~
|
|
13
|
+
echo $null >> .ssh/authorized_keys # powershell way of touching a file if it doesn't exist
|
|
14
|
+
echo $pubkey_string >> .ssh/authorized_keys
|
|
15
|
+
echo $pubkey_string > .ssh/pubkey.pub
|
|
16
|
+
Invoke-WebRequest https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/openssh-server_add-sshkey.ps1 | Invoke-Expression
|
|
17
|
+
|
|
18
|
+
ipconfig.exe
|
|
19
|
+
|
|
20
|
+
echo "Done"
|
|
21
|
+
echo "USE: ssh $env:USERNAME@$env:COMPUTERNAME -p 22"
|
|
22
|
+
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
|
|
2
|
+
cd ~
|
|
3
|
+
mkdir code -ErrorAction SilentlyContinue
|
|
4
|
+
cd ~\code
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
if (-not (Get-Command git.exe -ErrorAction SilentlyContinue)) {
|
|
8
|
+
winget install --no-upgrade --name "Git" --Id Git.Git --source winget --accept-package-agreements --accept-source-agreements --scope user
|
|
9
|
+
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
# Setup crocodile repository
|
|
13
|
+
if (Test-Path "crocodile") {
|
|
14
|
+
Write-Host "🔄 crocodile directory exists, updating..."
|
|
15
|
+
Set-Location crocodile
|
|
16
|
+
git reset --hard
|
|
17
|
+
git pull
|
|
18
|
+
Set-Location ..
|
|
19
|
+
} else {
|
|
20
|
+
Write-Host "⏳ Cloning crocodile repository..."
|
|
21
|
+
git clone https://github.com/thisismygitrepo/crocodile.git --depth 4
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
# Setup machineconfig repository
|
|
25
|
+
if (Test-Path "machineconfig") {
|
|
26
|
+
Write-Host "🔄 machineconfig directory exists, updating..."
|
|
27
|
+
Set-Location machineconfig
|
|
28
|
+
git reset --hard
|
|
29
|
+
git pull
|
|
30
|
+
Set-Location ..
|
|
31
|
+
} else {
|
|
32
|
+
Write-Host "⏳ Cloning machineconfig repository..."
|
|
33
|
+
git clone https://github.com/thisismygitrepo/machineconfig --depth 4 # Choose browser-based authentication.
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
cd $HOME\code\machineconfig
|
|
38
|
+
& "$HOME\.local\bin\uv.exe" sync --no-dev
|
|
39
|
+
echo "Finished setting up repos"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
if (-not (Test-Path -Path "$HOME\.local\bin\uv.exe")) {
|
|
4
|
+
Write-Output "uv binary not found, installing..."
|
|
5
|
+
irm https://astral.sh/uv/install.ps1 | iex
|
|
6
|
+
} else {
|
|
7
|
+
Write-Output "uv binary found, updating..."
|
|
8
|
+
& "$HOME\.local\bin\uv.exe" self update
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
& "$HOME\.local\bin\uv.exe" python install 3.13
|
|
@@ -10,3 +10,4 @@ Invoke-WebRequest -Uri "https://raw.githubusercontent.com/thisismygitrepo/machin
|
|
|
10
10
|
rm ve.ps1
|
|
11
11
|
|
|
12
12
|
uv run --python 3.13 --with machineconfig devops interactive
|
|
13
|
+
# uv run --python 3.13 --with machineconfig https://raw.githubusercontent.com/thisismygitrepo/machineconfig/ee4f69e838e1acbb275bfb5a3d3faee23345f2a8/src/machineconfig/scripts/python/devops.py
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
|
|
2
|
+
# apps
|
|
3
|
+
winget install --no-upgrade --name "Windows Terminal" --Id "Microsoft.WindowsTerminal" --source winget --scope user # Terminal is is installed by default on W 11
|
|
4
|
+
winget install --no-upgrade --name "Powershell" --Id "Microsoft.PowerShell" --source winget --scope user # powershell require admin
|
|
5
|
+
|
|
6
|
+
. $HOME\code\machineconfig\.venv\Scripts\activate.ps1
|
|
7
|
+
python -m fire machineconfig.setup_windows.wt_and_pwsh.install_nerd_fonts main
|
|
8
|
+
python -m fire machineconfig.setup_windows.wt_and_pwsh.set_wt_settings main
|
|
9
|
+
deactivate
|
machineconfig/utils/code.py
CHANGED
|
@@ -98,7 +98,7 @@ def print_code(code: str, lexer: str, desc: str, subtitle: str = ""):
|
|
|
98
98
|
console.print(Panel(Syntax(code=code, lexer=lexer), title=f"📄 {desc}", subtitle=subtitle), style="bold red")
|
|
99
99
|
|
|
100
100
|
|
|
101
|
-
def
|
|
101
|
+
def run_shell_script(program: str):
|
|
102
102
|
import tempfile
|
|
103
103
|
if platform.system() == "Windows":
|
|
104
104
|
suffix = ".ps1"
|
|
@@ -6,21 +6,28 @@ import random
|
|
|
6
6
|
from pathlib import Path
|
|
7
7
|
from rich import pretty
|
|
8
8
|
from rich.console import Console
|
|
9
|
-
from rich.text import Text
|
|
10
9
|
from typing import Optional
|
|
11
10
|
|
|
12
11
|
|
|
13
12
|
def print_header():
|
|
14
13
|
console = Console()
|
|
15
14
|
pretty.install()
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
15
|
+
|
|
16
|
+
# Environment Information Panel
|
|
17
|
+
from rich.panel import Panel
|
|
18
|
+
from rich.table import Table
|
|
19
|
+
|
|
20
|
+
table = Table(show_header=False, show_edge=False, pad_edge=False)
|
|
21
|
+
table.add_column("Label", style="cyan", no_wrap=True)
|
|
22
|
+
table.add_column("Value", style="white")
|
|
23
|
+
|
|
24
|
+
table.add_row("Python Version", platform.python_version())
|
|
25
|
+
table.add_row("Operating System", platform.system())
|
|
26
|
+
table.add_row("Virtual Environment", os.getenv('VIRTUAL_ENV', 'None'))
|
|
27
|
+
table.add_row("Running @", str(Path.cwd()))
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
console.print(Panel(table, title="[bold blue]✨ 🐊 Crocodile Shell 14.5 ✨ Made with 🐍 | Built with ❤️[/bold blue]", border_style="blue"))
|
|
24
31
|
def print_logo(logo: str):
|
|
25
32
|
from machineconfig.utils.files.ascii_art import font_box_color, character_color, character_or_box_color
|
|
26
33
|
if platform.system() == "Windows":
|
|
@@ -125,12 +125,12 @@ def install_group(package_group: PACKAGE_GROUPS):
|
|
|
125
125
|
else:
|
|
126
126
|
options_system = get_installers_system_groups()
|
|
127
127
|
from machineconfig.utils.schemas.installer.installer_types import get_normalized_arch, get_os_name
|
|
128
|
-
from machineconfig.utils.code import
|
|
128
|
+
from machineconfig.utils.code import run_shell_script
|
|
129
129
|
for an_item in options_system:
|
|
130
130
|
if an_item["appName"] == package_group:
|
|
131
131
|
program = an_item["fileNamePattern"][get_normalized_arch()][get_os_name()]
|
|
132
132
|
if program is not None:
|
|
133
|
-
|
|
133
|
+
run_shell_script(program)
|
|
134
134
|
break
|
|
135
135
|
|
|
136
136
|
|
machineconfig/utils/terminal.py
CHANGED
|
@@ -147,7 +147,7 @@ class Terminal:
|
|
|
147
147
|
return os.getuid() == 0 # Check for root on Posix
|
|
148
148
|
'''
|
|
149
149
|
|
|
150
|
-
# def
|
|
150
|
+
# def run_shell_script(self, script: str, shell: SHELLS = "default", verbose: bool = False):
|
|
151
151
|
# if self.machine == "Linux":
|
|
152
152
|
# script = "#!/bin/bash" + "\n" + script # `source` is only available in bash.
|
|
153
153
|
# script_file = PathExtended.tmpfile(name="tmp_shell_script", suffix=".ps1" if self.machine == "Windows" else ".sh", folder="tmp_scripts")
|
|
@@ -143,8 +143,8 @@ machineconfig/scripts/python/cloud_mount.py,sha256=GwcXbd5ohoHGESfX5edtCEl2-umDD
|
|
|
143
143
|
machineconfig/scripts/python/cloud_repo_sync.py,sha256=8dnlHbQqRymPRU0v01pNIuaIvFeY4fReP7ewNSSCt34,9765
|
|
144
144
|
machineconfig/scripts/python/cloud_sync.py,sha256=RWGpAfJ9fnN18yNBSgN44dzA38Hmd4879JL5r2pcyrM,3514
|
|
145
145
|
machineconfig/scripts/python/count_lines.py,sha256=ZexMRsV70pe9fhLbGuens9EP5gCf078EwTDRHRZo5A0,15960
|
|
146
|
-
machineconfig/scripts/python/count_lines_frontend.py,sha256=
|
|
147
|
-
machineconfig/scripts/python/croshell.py,sha256=
|
|
146
|
+
machineconfig/scripts/python/count_lines_frontend.py,sha256=bIha5lKjWxKiO1OJAbt9gKzVyECXFbWKWIy69bdyaJg,533
|
|
147
|
+
machineconfig/scripts/python/croshell.py,sha256=zHUhOqWG81AOTeawZoDkpURnV1fAisY2lyZ0apvlmVY,6547
|
|
148
148
|
machineconfig/scripts/python/devops.py,sha256=JB4_M6S-nO3yqas8wtAlU2r6jsmHu_nlq7aoEOH-54Y,3486
|
|
149
149
|
machineconfig/scripts/python/devops_add_identity.py,sha256=wvjNgqsLmqD2SxbNCW_usqfp0LI-TDvcJJKGOWt2oFw,3775
|
|
150
150
|
machineconfig/scripts/python/devops_add_ssh_key.py,sha256=BXB-9RvuSZO0YTbnM2azeABW2ngLW4SKhhAGAieMzfw,6873
|
|
@@ -155,14 +155,14 @@ machineconfig/scripts/python/fire_agents_help_launch.py,sha256=1ymWiszfjCyPv3ofi
|
|
|
155
155
|
machineconfig/scripts/python/fire_agents_help_search.py,sha256=qIfSS_su2YJ1Gb0_lu4cbjlJlYMBw0v52NTGiSrGjk8,2991
|
|
156
156
|
machineconfig/scripts/python/fire_agents_helper_types.py,sha256=zKu8Vr6iucaGSkCm_Tkt_WrYU7-6Nript3coYyzTXzY,295
|
|
157
157
|
machineconfig/scripts/python/fire_agents_load_balancer.py,sha256=mpqx3uaQdBXYieuvhdK-qsvLepf9oIMo3pwPj9mSEDI,1079
|
|
158
|
-
machineconfig/scripts/python/fire_jobs.py,sha256=
|
|
158
|
+
machineconfig/scripts/python/fire_jobs.py,sha256=VIZZOjnE0u1g7U1jmYN3YUTFsLt8MM4_z67U951oEm4,15907
|
|
159
159
|
machineconfig/scripts/python/fire_jobs_args_helper.py,sha256=-gl5I-26Op12nToIpAA-YEpvn8MMkNlI5XjhUbj50I0,4273
|
|
160
160
|
machineconfig/scripts/python/fire_jobs_route_helper.py,sha256=EFWsg6F9TeSAtYQec57WtPopUbm2euGZTUZv6J4RhNE,3026
|
|
161
161
|
machineconfig/scripts/python/fire_jobs_streamlit_helper.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
162
162
|
machineconfig/scripts/python/ftpx.py,sha256=QfQTp-6jQP6yxfbLc5sKxiMtTgAgc8sjN7d17_uLiZc,9400
|
|
163
163
|
machineconfig/scripts/python/get_zellij_cmd.py,sha256=e35-18hoXM9N3PFbvbizfkNY_-63iMicieWE3TbGcCQ,576
|
|
164
164
|
machineconfig/scripts/python/gh_models.py,sha256=3BLfW25mBRiPO5VKtVm-nMlKLv-PaZDw7mObajq6F6M,5538
|
|
165
|
-
machineconfig/scripts/python/interactive.py,sha256=
|
|
165
|
+
machineconfig/scripts/python/interactive.py,sha256=gxAaVasW37TbSPswiyli-ImNQLU8jQbCb6Csnk5Igdg,11188
|
|
166
166
|
machineconfig/scripts/python/mount_nfs.py,sha256=aECrL64j9g-9rF49sVJAjGmzaoGgcMnl3g9v17kQF4c,3239
|
|
167
167
|
machineconfig/scripts/python/mount_nw_drive.py,sha256=iru6AtnTyvyuk6WxlK5R4lDkuliVpPV5_uBTVVhXtjQ,1550
|
|
168
168
|
machineconfig/scripts/python/mount_ssh.py,sha256=k2fKq3f5dKq_7anrFOlqvJoI_3U4EWNHLRZ1o3Lsy6M,2268
|
|
@@ -176,7 +176,7 @@ machineconfig/scripts/python/repos_helper_record.py,sha256=dtnnInQPn00u1cyr0oOgJ
|
|
|
176
176
|
machineconfig/scripts/python/repos_helper_update.py,sha256=AYyKIB7eQ48yoYmFjydIhRI1lV39TBv_S4_LCa-oKuQ,11042
|
|
177
177
|
machineconfig/scripts/python/scheduler.py,sha256=rKhssuxkD697EY6qaV6CSdNhxpAQLDWO4fE8GMCQ9FA,3061
|
|
178
178
|
machineconfig/scripts/python/sessions.py,sha256=e8gL0fVWOZ5WcJsA3ZWfqJBc5c7g-rMlVf0SF63rIaU,8547
|
|
179
|
-
machineconfig/scripts/python/share_terminal.py,sha256=
|
|
179
|
+
machineconfig/scripts/python/share_terminal.py,sha256=D9zwPZk4cV2ix5f-fHDfp0awtMsI5C5ANlfv1vW-VKE,5336
|
|
180
180
|
machineconfig/scripts/python/snapshot.py,sha256=aDvKeoniZaeTSNv9zWBUajaj2yagAxVdfuvO1_tgq5Y,1026
|
|
181
181
|
machineconfig/scripts/python/start_slidev.py,sha256=FAJ1_WkAQ7KcbRZ3cSN_72NDgV_flRrwxmXv1imyulI,4897
|
|
182
182
|
machineconfig/scripts/python/start_terminals.py,sha256=DRWbMZumhPmL0DvvsCsbRNFL5AVQn1SgaziafTio3YQ,6149
|
|
@@ -357,6 +357,13 @@ machineconfig/settings/zellij/layouts/st.kdl,sha256=QXLRK7Wx05aKbKRHVmm4RspLYzPm
|
|
|
357
357
|
machineconfig/settings/zellij/layouts/st2.kdl,sha256=1FKTH3qQWYMWp_wPMreP7fKOTlVd4cfBy3J8fv4zCBc,1489
|
|
358
358
|
machineconfig/settings/zellij/layouts/stacked_panes.kdl,sha256=usY8kKKwX1KUMXnWDivPg0i0drpM1Biw-tOnNZVjiZU,163
|
|
359
359
|
machineconfig/setup_linux/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
360
|
+
machineconfig/setup_linux/apps.sh,sha256=0PdPojpj2B-wOxE6ryvguKwBvL6vEt-43A1NdnwJumM,3198
|
|
361
|
+
machineconfig/setup_linux/apps_desktop.sh,sha256=nBt_24tbdgKYK68w15ZiktgcEEJ7ytLoPWIrDluTkIQ,5077
|
|
362
|
+
machineconfig/setup_linux/apps_gui.sh,sha256=ufsCqmShc8G3XyKBmchD1tJ85FZYjSDY2yiE_0Rl7v4,3031
|
|
363
|
+
machineconfig/setup_linux/openssh_all.sh,sha256=11eguvmuF3zM4lPIdI9TLnNHivmylBnrqz8KCP1AJJA,756
|
|
364
|
+
machineconfig/setup_linux/openssh_wsl.sh,sha256=1eeRGrloVB34K5z8yWVUMG5b9pV-WBfHgV9jqXiYgCQ,1398
|
|
365
|
+
machineconfig/setup_linux/repos.sh,sha256=kPBhhBmUAgB_9xwBQGyoL6_m0E4mlonnSqTEzi2gH9Q,1215
|
|
366
|
+
machineconfig/setup_linux/ve.sh,sha256=yHxDzRoiAkEmLvUHNHUZksyOWpwiirLJruM_tgsuwYs,579
|
|
360
367
|
machineconfig/setup_linux/nix/cli_installation.sh,sha256=AQ_wRmldeD1tPqCmU7qgz9ZrZFly4OYwBJDGRpb9IJ0,5470
|
|
361
368
|
machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh,sha256=F5dbg0n9RHsKGPn8fIdZMn3p0RrHEkb8rWBGsdVGbus,1207
|
|
362
369
|
machineconfig/setup_linux/others/openssh-server_add_pub_key.sh,sha256=UiJcD1o4UekKKtp5YJKRq135PpqdTLXy7M6HvQ-Qum4,1993
|
|
@@ -365,18 +372,30 @@ machineconfig/setup_linux/web_shortcuts/croshell.sh,sha256=X9-B1cVptbaFWaWTA-2EL
|
|
|
365
372
|
machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=3bQr-0Gtly7lx6LPXtCUCs49jiCCozv3T1idHK678EY,463
|
|
366
373
|
machineconfig/setup_linux/web_shortcuts/ssh.sh,sha256=k6BAY-zAWsi1beOMiZODxw4VOjZCTABZu__gxSET1eU,1924
|
|
367
374
|
machineconfig/setup_windows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
375
|
+
machineconfig/setup_windows/apps.ps1,sha256=wr8QvyiYyFUUY6JyI4kD-fBuR4xDVkhQpFp6uaZP6KQ,11030
|
|
376
|
+
machineconfig/setup_windows/openssh-server.ps1,sha256=7FopRdNn8hQbst4Cq_T1qoU_Q397Q_O6B2JgH2FdZxE,2531
|
|
377
|
+
machineconfig/setup_windows/openssh-server_add-sshkey.ps1,sha256=qiNC02kzUZi6KBV7O-nRQ7pQ0OGixbq-rUvSCQ7TVxc,1656
|
|
378
|
+
machineconfig/setup_windows/openssh-server_add_identity.ps1,sha256=b8ZXpmNUSw3IMYvqSY7ClpdWPG39FS7MefoWnRhWN2U,506
|
|
379
|
+
machineconfig/setup_windows/openssh_all.ps1,sha256=hxYrqV4YjZBxqVVHWP0Cx10zmVLpC0Nunvtyv7Fm3iY,850
|
|
380
|
+
machineconfig/setup_windows/quirks.ps1,sha256=c7Hn94jBD5GWF29CxMhmNpuM0hgXTQgVJmIRR_7sdcY,182
|
|
381
|
+
machineconfig/setup_windows/repos.ps1,sha256=_JBVfW4UZPM3iGIIXjHr7e7f8RkDm4Zpu2uceFV_xtc,1257
|
|
382
|
+
machineconfig/setup_windows/symlinks.ps1,sha256=88zEzGQOGHOx3DlKsb4wDlCweY763E3wCFGNVJDSvAc,129
|
|
383
|
+
machineconfig/setup_windows/symlinks2linux.ps1,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
384
|
+
machineconfig/setup_windows/ve.ps1,sha256=a0Vk7BJfp_dY5GpDYC20WrJbqZHIWWbCZ9hDpKobMDk,311
|
|
385
|
+
machineconfig/setup_windows/wsl_refresh.ps1,sha256=0h-w1lB1H7WyKjJVSRfGA31NpxZo8BMI3XYZ1W-T5i4,216
|
|
386
|
+
machineconfig/setup_windows/wt_and_pwsh.ps1,sha256=BvgWrpMXLAOTjaJep9hsN0pfPVr1J9rlocssrFh5YdI,525
|
|
368
387
|
machineconfig/setup_windows/others/docker.ps1,sha256=M8NfsSxH8YlmY92J4rSe1xWOwTW8IFrdgb8cI8Riu2E,311
|
|
369
388
|
machineconfig/setup_windows/others/obs.ps1,sha256=2andchcXpxS3rqZjGaMpY5VShxTAKWvw6eCrayjuaLo,30
|
|
370
389
|
machineconfig/setup_windows/web_shortcuts/all.ps1,sha256=L03JJ4Jua_bzgtF3kuDOkuQ-Nqaj_ZcV3CFEkCHD1WI,908
|
|
371
390
|
machineconfig/setup_windows/web_shortcuts/ascii_art.ps1,sha256=pUVTtgKHOdgaK3hxz7JoMZzTyQ7vm2RfE_OJgB7e4cw,1270
|
|
372
391
|
machineconfig/setup_windows/web_shortcuts/croshell.ps1,sha256=cTQnegGLGYhuFY3YuuAj2ortN__adA2dznk2E737h4A,644
|
|
373
|
-
machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256
|
|
392
|
+
machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=RMUq_GNf0FCD_o4g4BEbBRg098VOyUEh9ezL2rRNEOI,714
|
|
374
393
|
machineconfig/setup_windows/web_shortcuts/ssh.ps1,sha256=Tj9axEugJE7I3AQ0w1eUGLPb8ufME5jvU5S7VUjlLJE,424
|
|
375
394
|
machineconfig/setup_windows/wt_and_pwsh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
376
395
|
machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py,sha256=ogxJnwpdcpH7N6dFJu95UCNoGYirZKQho_3X0F_hmXs,6791
|
|
377
396
|
machineconfig/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
378
397
|
machineconfig/utils/accessories.py,sha256=W_9dLzjwNTW5JQk_pe3B2ijQ1nA2-8Kdg2r7VBtzgQs,4340
|
|
379
|
-
machineconfig/utils/code.py,sha256=
|
|
398
|
+
machineconfig/utils/code.py,sha256=Q44GVBgI5wEphGAKsMmXE2wEtzjJngy5pfJV9NCJ8EA,5652
|
|
380
399
|
machineconfig/utils/installer.py,sha256=xYM6tyctqLmr2lLXUKWgobTRufGIua31uspMXP4HGjY,9945
|
|
381
400
|
machineconfig/utils/io.py,sha256=ZXB3aataS1IZ_0WMcCRSmoN1nbkvEO-bWYcs-TpngqU,2872
|
|
382
401
|
machineconfig/utils/links.py,sha256=S0XICdbcFESUqm5RINDrOf3O8G1b7QEADncXXcC8IQc,15520
|
|
@@ -389,7 +408,7 @@ machineconfig/utils/scheduler.py,sha256=pOzpOowapfC6Fl_k82JbESmLS8eh-zk4FyjJyUX1
|
|
|
389
408
|
machineconfig/utils/scheduling.py,sha256=RF1iXJpqf4Dg18jdZWtBixz97KAHC6VKYqTFSpdLWuc,11188
|
|
390
409
|
machineconfig/utils/source_of_truth.py,sha256=GnjcVkKm11RyZFHGnPbne5YDEBYoZ5yryBNkpfGC7O4,854
|
|
391
410
|
machineconfig/utils/ssh.py,sha256=KTUp42nT4Vuh350_EvArQoR2N5iVXrc2BFld93fRUX4,20919
|
|
392
|
-
machineconfig/utils/terminal.py,sha256=
|
|
411
|
+
machineconfig/utils/terminal.py,sha256=IlmOByfQG-vjhaFFxxzU5rWzP5_qUzmalRfuey3PAmc,11801
|
|
393
412
|
machineconfig/utils/upgrade_packages.py,sha256=H96zVJEWXJW07nh5vhjuSCrPtXGqoUb7xeJsFYYdmCI,3330
|
|
394
413
|
machineconfig/utils/ve.py,sha256=L-6PBXnQGXThiwWgheJMQoisAZOZA6SVCbGw2J-GFnI,2414
|
|
395
414
|
machineconfig/utils/ai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -397,19 +416,19 @@ machineconfig/utils/ai/generate_file_checklist.py,sha256=ajbmhcBToRugl75c_KZRq2X
|
|
|
397
416
|
machineconfig/utils/cloud/onedrive/setup_oauth.py,sha256=ZTVkqgrwbV_EoPvyT8dyOTUE0ur3BW4sa9o6QYtt5Bo,2341
|
|
398
417
|
machineconfig/utils/cloud/onedrive/transaction.py,sha256=m-aNcnWj_gfZVvJOSpkdIqjZxU_3nXx2CA-qKbQgP3I,26232
|
|
399
418
|
machineconfig/utils/files/ascii_art.py,sha256=cNJaJC07vx94fS44-tzgfbfBeCwXVrgpnWGBLUnfC38,5212
|
|
400
|
-
machineconfig/utils/files/headers.py,sha256=
|
|
419
|
+
machineconfig/utils/files/headers.py,sha256=L54G11DfLadyZGyQXSQ7y8UI_tNvlld7zqP4qEAWL88,3647
|
|
401
420
|
machineconfig/utils/files/read.py,sha256=dyf-DDkLnCKgwmRH0Af4UtBIZh6iMUaYmjgJtdSGRFg,4744
|
|
402
421
|
machineconfig/utils/installer_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
403
422
|
machineconfig/utils/installer_utils/github_release_bulk.py,sha256=WJf_qZlF02SmIc6C7o1h4Gy4gAaJAfeAS8O9s2Itj-k,6535
|
|
404
|
-
machineconfig/utils/installer_utils/installer.py,sha256=
|
|
423
|
+
machineconfig/utils/installer_utils/installer.py,sha256=H9wukQBSZDLlpB6Xn4Sa2hSV8iCUr9UQChcgOa3u-L8,9278
|
|
405
424
|
machineconfig/utils/installer_utils/installer_abc.py,sha256=VTHe5O3jA6k6rnUnXhgnEf6mVvkVQlEuXjzYLEDgEAs,11140
|
|
406
425
|
machineconfig/utils/installer_utils/installer_class.py,sha256=fN4Nfqn4tlSfQGW52A_Ipi6GT6utC30ZuSj5WM_yxIY,20252
|
|
407
426
|
machineconfig/utils/schemas/fire_agents/fire_agents_input.py,sha256=pTxvLzIpD5RF508lUUBBkWcc4V1B10J4ylvVgVGkcM0,2037
|
|
408
427
|
machineconfig/utils/schemas/installer/installer_types.py,sha256=QClRY61QaduBPJoSpdmTIdgS9LS-RvE-QZ-D260tD3o,1214
|
|
409
428
|
machineconfig/utils/schemas/layouts/layout_types.py,sha256=TcqlZdGVoH8htG5fHn1KWXhRdPueAcoyApppZsPAPto,2020
|
|
410
429
|
machineconfig/utils/schemas/repos/repos_types.py,sha256=ECVr-3IVIo8yjmYmVXX2mnDDN1SLSwvQIhx4KDDQHBQ,405
|
|
411
|
-
machineconfig-5.
|
|
412
|
-
machineconfig-5.
|
|
413
|
-
machineconfig-5.
|
|
414
|
-
machineconfig-5.
|
|
415
|
-
machineconfig-5.
|
|
430
|
+
machineconfig-5.16.dist-info/METADATA,sha256=QLDF21ufCMJ5ndIuNZfcg6L2ISE6XnhPPqo6YsDqCcs,8030
|
|
431
|
+
machineconfig-5.16.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
432
|
+
machineconfig-5.16.dist-info/entry_points.txt,sha256=2afE1mw-o4MUlfxyX73SV02XaQI4SV_LdL2r6_CzhPU,1074
|
|
433
|
+
machineconfig-5.16.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
|
|
434
|
+
machineconfig-5.16.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|