machineconfig 5.15__py3-none-any.whl → 5.17__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.

Files changed (28) hide show
  1. machineconfig/__init__.py +0 -28
  2. machineconfig/scripts/python/devops.py +2 -2
  3. machineconfig/scripts/python/interactive.py +2 -2
  4. machineconfig/setup_linux/apps.sh +69 -0
  5. machineconfig/setup_linux/apps_desktop.sh +113 -0
  6. machineconfig/setup_linux/apps_gui.sh +74 -0
  7. machineconfig/setup_linux/openssh_all.sh +24 -0
  8. machineconfig/setup_linux/openssh_wsl.sh +38 -0
  9. machineconfig/setup_linux/repos.sh +48 -0
  10. machineconfig/setup_linux/ve.sh +20 -0
  11. machineconfig/setup_windows/apps.ps1 +61 -0
  12. machineconfig/setup_windows/openssh-server.ps1 +39 -0
  13. machineconfig/setup_windows/openssh-server_add-sshkey.ps1 +32 -0
  14. machineconfig/setup_windows/openssh-server_add_identity.ps1 +11 -0
  15. machineconfig/setup_windows/openssh_all.ps1 +22 -0
  16. machineconfig/setup_windows/quirks.ps1 +7 -0
  17. machineconfig/setup_windows/repos.ps1 +39 -0
  18. machineconfig/setup_windows/symlinks.ps1 +5 -0
  19. machineconfig/setup_windows/symlinks2linux.ps1 +1 -0
  20. machineconfig/setup_windows/ve.ps1 +11 -0
  21. machineconfig/setup_windows/wsl_refresh.ps1 +8 -0
  22. machineconfig/setup_windows/wt_and_pwsh.ps1 +9 -0
  23. machineconfig/utils/installer.py +20 -0
  24. {machineconfig-5.15.dist-info → machineconfig-5.17.dist-info}/METADATA +1 -1
  25. {machineconfig-5.15.dist-info → machineconfig-5.17.dist-info}/RECORD +28 -9
  26. {machineconfig-5.15.dist-info → machineconfig-5.17.dist-info}/WHEEL +0 -0
  27. {machineconfig-5.15.dist-info → machineconfig-5.17.dist-info}/entry_points.txt +0 -0
  28. {machineconfig-5.15.dist-info → machineconfig-5.17.dist-info}/top_level.txt +0 -0
machineconfig/__init__.py CHANGED
@@ -1,29 +1 @@
1
- from __future__ import annotations
2
1
 
3
- from importlib.metadata import PackageNotFoundError, version as _pkg_version
4
- from pathlib import Path
5
- import tomllib
6
-
7
-
8
- def _get_version() -> str:
9
- name: str = "machineconfig"
10
- try:
11
- return _pkg_version(name)
12
- except PackageNotFoundError:
13
- pass
14
-
15
- root: Path = Path(__file__).resolve().parents[2]
16
- pyproject: Path = root / "pyproject.toml"
17
- if pyproject.is_file():
18
- with pyproject.open("rb") as f:
19
- data: dict[str, object] = tomllib.load(f)
20
- project = data.get("project")
21
- if isinstance(project, dict):
22
- version = project.get("version")
23
- if isinstance(version, str) and version:
24
- return version
25
- return "0.0.0"
26
-
27
-
28
- __version__: str = _get_version()
29
- __all__: list[str] = ["__version__"]
@@ -4,11 +4,11 @@ import machineconfig.utils.installer_utils.installer as installer_entry_point
4
4
  import machineconfig.scripts.python.share_terminal as share_terminal
5
5
  import machineconfig.scripts.python.repos as repos
6
6
 
7
- from machineconfig import __version__
7
+ from machineconfig.utils.installer import get_machineconfig_version
8
8
  import typer
9
9
 
10
10
 
11
- app = typer.Typer(help=f"🛠️ DevOps operations @ machineconfig {__version__}", no_args_is_help=True)
11
+ app = typer.Typer(help=f"🛠️ DevOps operations @ machineconfig {get_machineconfig_version()}", no_args_is_help=True)
12
12
  app.command(name="install", help="📦 Install essential packages")(installer_entry_point.main)
13
13
  app.command(name="share-terminal", help="📡 Share terminal via web browser")(share_terminal.main)
14
14
  app.add_typer(repos.app, name="repos", help="📁 Manage git repositories")
@@ -34,7 +34,8 @@ console = Console()
34
34
 
35
35
 
36
36
  def display_header() -> None:
37
- header_text = Text("MACHINE CONFIGURATION", style="bold magenta")
37
+ from machineconfig.utils.installer import get_machineconfig_version
38
+ header_text = Text(f"MACHINE CONFIGURATION {get_machineconfig_version()}", style="bold magenta")
38
39
  subtitle_text = Text("Interactive Installation Script", style="italic cyan")
39
40
  console.print(Panel(f"📦 {header_text}\n{subtitle_text}", border_style="blue", padding=(1, 2)))
40
41
  def display_completion_message() -> None:
@@ -188,7 +189,6 @@ Set-Service -Name sshd -StartupType 'Automatic'"""
188
189
 
189
190
 
190
191
  def main() -> None:
191
- """Main function to run the interactive installation."""
192
192
  display_header()
193
193
  selected_options = get_installation_choices()
194
194
  if not selected_options:
@@ -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,7 @@
1
+
2
+ # power and sleep options.
3
+ Powercfg /Change monitor-timeout-ac 60
4
+ Powercfg /Change monitor-timeout-dc 0
5
+ Powercfg /Change standby-timeout-ac 0
6
+ Powercfg /Change standby-timeout-dc 0
7
+
@@ -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,5 @@
1
+
2
+
3
+ . $HOME\code\machineconfig\.venv\Scripts\activate.ps1
4
+ python -m fire machineconfig.profile.create main --choice=all
5
+ deactivate
@@ -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
@@ -0,0 +1,8 @@
1
+
2
+ Write-Host "Currently, there is: "
3
+ wsl -l -v
4
+ wsl --unregister Ubuntu-22.04
5
+ Write-Host "You can install ... "
6
+ wsl --list --online
7
+ wsl --install -d Ubuntu-22.04
8
+ # winget install Canonical.Ubuntu.2004 --source winget
@@ -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
@@ -219,3 +219,23 @@ def install_bulk(installers_data: list[InstallerData], safe: bool = False, jobs:
219
219
 
220
220
 
221
221
 
222
+ def get_machineconfig_version() -> str:
223
+ from importlib.metadata import PackageNotFoundError, version as _pkg_version
224
+ from pathlib import Path
225
+ import tomllib
226
+ name: str = "machineconfig"
227
+ try:
228
+ return _pkg_version(name)
229
+ except PackageNotFoundError:
230
+ pass
231
+ root: Path = Path(__file__).resolve().parents[2]
232
+ pyproject: Path = root / "pyproject.toml"
233
+ if pyproject.is_file():
234
+ with pyproject.open("rb") as f:
235
+ data: dict[str, object] = tomllib.load(f)
236
+ project = data.get("project")
237
+ if isinstance(project, dict):
238
+ version = project.get("version")
239
+ if isinstance(version, str) and version:
240
+ return version
241
+ return "0.0.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: machineconfig
3
- Version: 5.15
3
+ Version: 5.17
4
4
  Summary: Dotfiles management package
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -1,4 +1,4 @@
1
- machineconfig/__init__.py,sha256=TO5eByMRXNSfiXaDyiDjJpkNBscUUDYXsbe1JGSi5NM,822
1
+ machineconfig/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
2
2
  machineconfig/logger.py,sha256=XLckvZ8cPDpC5v75ESP3YNTputIrDYuvoYisj0YZtGw,1415
3
3
  machineconfig/cluster/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  machineconfig/cluster/remote/cloud_manager.py,sha256=8f5mIkAnXNjhVswlv49bEgAGLJIv_e_tNbI_wgPBo0Q,26041
@@ -145,7 +145,7 @@ machineconfig/scripts/python/cloud_sync.py,sha256=RWGpAfJ9fnN18yNBSgN44dzA38Hmd4
145
145
  machineconfig/scripts/python/count_lines.py,sha256=ZexMRsV70pe9fhLbGuens9EP5gCf078EwTDRHRZo5A0,15960
146
146
  machineconfig/scripts/python/count_lines_frontend.py,sha256=bIha5lKjWxKiO1OJAbt9gKzVyECXFbWKWIy69bdyaJg,533
147
147
  machineconfig/scripts/python/croshell.py,sha256=zHUhOqWG81AOTeawZoDkpURnV1fAisY2lyZ0apvlmVY,6547
148
- machineconfig/scripts/python/devops.py,sha256=JB4_M6S-nO3yqas8wtAlU2r6jsmHu_nlq7aoEOH-54Y,3486
148
+ machineconfig/scripts/python/devops.py,sha256=mt-WQ51Imwjt1K1WhjwpiJRryV5DEgv_JIwi_YHTT1A,3532
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
151
151
  machineconfig/scripts/python/devops_backup_retrieve.py,sha256=JLJHmi8JmZ_qVTeMW-qBEAYGt1fmfWXzZ7Gm-Q-GDcU,5585
@@ -162,7 +162,7 @@ machineconfig/scripts/python/fire_jobs_streamlit_helper.py,sha256=47DEQpj8HBSa-_
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=gxAaVasW37TbSPswiyli-ImNQLU8jQbCb6Csnk5Igdg,11188
165
+ machineconfig/scripts/python/interactive.py,sha256=BZ8Ly7fffSDaPZd1Bw0zzwT-JOVKGd0jYzhdPuEewB0,11230
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
@@ -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,6 +372,18 @@ 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
@@ -377,7 +396,7 @@ machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py,sha256=ogxJnwpdcpH7N6
377
396
  machineconfig/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
378
397
  machineconfig/utils/accessories.py,sha256=W_9dLzjwNTW5JQk_pe3B2ijQ1nA2-8Kdg2r7VBtzgQs,4340
379
398
  machineconfig/utils/code.py,sha256=Q44GVBgI5wEphGAKsMmXE2wEtzjJngy5pfJV9NCJ8EA,5652
380
- machineconfig/utils/installer.py,sha256=xYM6tyctqLmr2lLXUKWgobTRufGIua31uspMXP4HGjY,9945
399
+ machineconfig/utils/installer.py,sha256=dza-ElJ3I3yu-LBST1EBjj9VDFF4zmTZZsG19948WTk,10680
381
400
  machineconfig/utils/io.py,sha256=ZXB3aataS1IZ_0WMcCRSmoN1nbkvEO-bWYcs-TpngqU,2872
382
401
  machineconfig/utils/links.py,sha256=S0XICdbcFESUqm5RINDrOf3O8G1b7QEADncXXcC8IQc,15520
383
402
  machineconfig/utils/notifications.py,sha256=vvdsY5IX6XEiILTnt5lNyHxhCi0ljdGX2T_67VRfrG4,9009
@@ -408,8 +427,8 @@ machineconfig/utils/schemas/fire_agents/fire_agents_input.py,sha256=pTxvLzIpD5RF
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.15.dist-info/METADATA,sha256=8JyyiMszEzLFyVI_-3rScZA_eBYO8Jd8dPOj3FyGHjQ,8030
412
- machineconfig-5.15.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
413
- machineconfig-5.15.dist-info/entry_points.txt,sha256=2afE1mw-o4MUlfxyX73SV02XaQI4SV_LdL2r6_CzhPU,1074
414
- machineconfig-5.15.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
415
- machineconfig-5.15.dist-info/RECORD,,
430
+ machineconfig-5.17.dist-info/METADATA,sha256=OXk15eigcogzpcDysJF-s-8tdstpLaN3d16MWQm2OOw,8030
431
+ machineconfig-5.17.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
432
+ machineconfig-5.17.dist-info/entry_points.txt,sha256=2afE1mw-o4MUlfxyX73SV02XaQI4SV_LdL2r6_CzhPU,1074
433
+ machineconfig-5.17.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
434
+ machineconfig-5.17.dist-info/RECORD,,