From b52fc4c1f9bcded2f0b95513f3e1c6a33065e3eb Mon Sep 17 00:00:00 2001 From: Zackarias Montell Date: Thu, 22 Jan 2026 10:34:57 +0100 Subject: [PATCH 1/6] Added proper flags --- requirements.ps1 | 206 ++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 175 insertions(+), 31 deletions(-) diff --git a/requirements.ps1 b/requirements.ps1 index 68c27f3..982120b 100644 --- a/requirements.ps1 +++ b/requirements.ps1 @@ -1,3 +1,124 @@ +param ( + [Alias('h', '?')] + [switch]$Help, + [Alias('no-winget')] + [switch]$NoWinget, + [Alias('only-winget')] + [switch]$OnlyWinget, + [Alias('install-extras')] + [switch]$Extras, + [Alias('only-extras')] + [switch]$OnlyExtras, + [Alias('no-choco')] + [switch]$NoChoco, + [Alias('only-choco')] + [switch]$OnlyChoco, + [Alias('no-powershell')] + [switch]$NoPowershell, + [Alias('only-powershell')] + [switch]$OnlyPowershell, + [Alias('no-pip')] + [switch]$NoPip, + [Alias('only-pip')] + [switch]$OnlyPip, + [Alias('no-npm')] + [switch]$NoNpm, + [Alias('only-npm')] + [switch]$OnlyNpm +) + +if ($Help) +{ + @" +requirements.ps1 – Install system requirements + +USAGE: + requirements.ps1 [options] + +OPTIONS: + -no-winget Disable installation via winget + -no-choco Disable installation via Chocolatey + -no-powershell Disable PowerShell module installation + -no-pip Disable Python pip package installation + -install-extras Install optional / extra components + -help, -h, -? Show this help message and exit + +NOTES: + • Use single-dash options for best compatibility: + -no-winget -no-choco + + • Double-dash options (--no-winget) only work in PowerShell 7+ (pwsh) + +EXAMPLES: + requirements.ps1 -no-winget -no-choco + requirements.ps1 -install-extras + pwsh requirements.ps1 --no-winget --no-pip +"@ + exit 0 +} + +function Write-Divider +{ + Write-Host "################################################################################" +} + +$Flags = [ordered]@{ + WingetEnabled = -not $NoWinget + ExtrasEnabled = $Extras + ChocoEnabled = -not $NoChoco + PowershellEnabled = -not $NoPowershell + PipEnabled = -not $NoPip + NpmEnabled = -not $NoNpm +} + +function Reset-Flags +{ + foreach ($key in @($Flags.Keys)) + { + $Flags[$key] = $false + } +} + +if ($OnlyWinget) +{ + Reset-Flags + $Flags.WingetEnabled = $true +} +if ($OnlyExtras) +{ + Reset-Flags + $Flags.ExtrasEnabled = $true +} +if ($OnlyChoco) +{ + Reset-Flags + $Flags.ChocoEnabled = $true +} +if ($OnlyPowershell) +{ + Reset-Flags + $Flags.PowershellEnabled = $true +} +if ($OnlyPip) +{ + Reset-Flags + $Flags.PipEnabled = $true +} +if ($OnlyNpm) +{ + Reset-Flags + $Flags.NpmEnabled = $true +} + +Write-Host "These providers are enabled:" +foreach ($key in $Flags.Keys) +{ + if ($Flags[$key]) + { + Write-Host $key + } +} + # Install requirements via winget # Important stuff $packages = @( @@ -18,48 +139,71 @@ $packages = @( "7zip.7zip" # nvim "rustlang.rustup" ) - -foreach ($package in $packages) -{ - winget install $package -} - -# Install latest node LTS -fnm install 22 -fnm use 22 - -cd ~ - -npm install # mostly nvim deps - -## Nvim requirements from choco, needs to be run as admin -Start-Process pwsh -Verb RunAs -ArgumentList "-Command", "choco install make unzip ripgrep zig" - -## Nvim requirements from pip -python -m pip install debugpy neovim pillow - -## Git posh -Install-Module posh-git -Scope CurrentUser -Force - -# extras, make flag for these - -$packages = @( +$ExtraPackages = @( "mRemoteNG.mRemoteNG", - "mozilla.firefox.developeredition", "Microsoft.VisualStudio.2022.Community", "JetBrains.Resharper", "Microsoft.powertoys", "spotify.spotify", "microsoft.azuredatastudio", "mozilla.thunderbird", - "yubico.authenticator", "Postman.Postman", "docker.dockerdesktop" ) -# Iterate through each package and install it -foreach ($package in $packages) +if ($Flags.WingetEnabled) { - winget install $package + Write-Divider + Write-Host "Installing Winget Packages" + foreach ($package in $packages) + { + winget install $package + } } +if ($Flags.ExtrasEnabled) +{ + Write-Divider + Write-Host "Installing Extra Winget Packages" + foreach ($package in $ExtraPackages) + { + winget install $package + } +} + +if ($Flags.NpmEnabled) +{ + Write-Divider + Write-Host "Installing Npm Packages" + fnm install 22 + fnm use 22 + Set-Location ~ + npm install +} + +if ($Flags.ChocoEnabled) +{ + Write-Divider + Write-Host "Installing Chocolatey Packages" + ## Nvim requirements from choco, needs to be run as admin + Start-Process pwsh -Verb RunAs -ArgumentList "-Command", "choco install make unzip ripgrep zig" +} + +if ($Flags.PipEnabled) +{ + Write-Divider + Write-Host "Installing pip Packages" + ## Nvim requirements from pip + python -m pip install debugpy neovim pillow +} + +if ($Flags.PowershellEnabled) +{ + Write-Divider + Write-Host "Installing Powershell Packages" + ## Git posh + Install-Module posh-git -Scope CurrentUser -Force +} + +Write-Divider +Write-Host "Done!" From 59ec81605132b74a2081f1d7c41084bbedb694a0 Mon Sep 17 00:00:00 2001 From: Zackarias Montell Date: Thu, 22 Jan 2026 11:06:10 +0100 Subject: [PATCH 2/6] Font installs --- requirements.ps1 | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/requirements.ps1 b/requirements.ps1 index 982120b..6c66119 100644 --- a/requirements.ps1 +++ b/requirements.ps1 @@ -24,7 +24,11 @@ param ( [Alias('no-npm')] [switch]$NoNpm, [Alias('only-npm')] - [switch]$OnlyNpm + [switch]$OnlyNpm, + [Alias('no-fonts')] + [switch]$NoFonts, + [Alias('only-fonts')] + [switch]$OnlyFonts ) if ($Help) @@ -69,6 +73,7 @@ $Flags = [ordered]@{ PowershellEnabled = -not $NoPowershell PipEnabled = -not $NoPip NpmEnabled = -not $NoNpm + FontsEnabled = -not $NoFonts } function Reset-Flags @@ -109,6 +114,11 @@ if ($OnlyNpm) Reset-Flags $Flags.NpmEnabled = $true } +if ($OnlyFonts) +{ + Reset-Flags + $Flags.FontsEnabled = $true +} Write-Host "These providers are enabled:" foreach ($key in $Flags.Keys) @@ -205,5 +215,25 @@ if ($Flags.PowershellEnabled) Install-Module posh-git -Scope CurrentUser -Force } +if ($Flags.FontsEnabled) +{ + Write-Divider + Write-Host "Installing Fonts" + Set-Location ~ + Remove-Item ~\fonts | Out-Null + wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.4.0/JetBrainsMono.zip + mkdir ~\fonts + Copy-Item ~\JetBrainsMono.zip ~\fonts\JetBrainsMono.zip + Set-Location ~\fonts | Out-Null + unzip JetBrainsMono.zip + Remove-Item JetBrainsMono.zip + $UserFonts = "$env:LOCALAPPDATA\Microsoft\Windows\Fonts" + New-Item -ItemType Directory -Path $UserFonts -Force | Out-Null + Get-ChildItem -Filter *.ttf | ForEach-Object { + Invoke-Item $_.FullName + } + Set-Location ~ +} + Write-Divider Write-Host "Done!" From 75e76832ff760e07366edb7f44f18acb070aa135 Mon Sep 17 00:00:00 2001 From: Zackarias Montell Date: Thu, 22 Jan 2026 11:10:55 +0100 Subject: [PATCH 3/6] Better font installation --- requirements.ps1 | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/requirements.ps1 b/requirements.ps1 index 6c66119..d667403 100644 --- a/requirements.ps1 +++ b/requirements.ps1 @@ -220,19 +220,22 @@ if ($Flags.FontsEnabled) Write-Divider Write-Host "Installing Fonts" Set-Location ~ - Remove-Item ~\fonts | Out-Null wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.4.0/JetBrainsMono.zip mkdir ~\fonts Copy-Item ~\JetBrainsMono.zip ~\fonts\JetBrainsMono.zip Set-Location ~\fonts | Out-Null unzip JetBrainsMono.zip Remove-Item JetBrainsMono.zip - $UserFonts = "$env:LOCALAPPDATA\Microsoft\Windows\Fonts" - New-Item -ItemType Directory -Path $UserFonts -Force | Out-Null - Get-ChildItem -Filter *.ttf | ForEach-Object { - Invoke-Item $_.FullName + $FontsPath = "~\fonts" + + $shell = New-Object -ComObject Shell.Application + $fonts = $shell.Namespace(0x14) + + Get-ChildItem $FontsPath -Include *.ttf,*.otf -File | ForEach-Object { + $fonts.CopyHere($_.FullName) } Set-Location ~ + Remove-Item ~\fonts -Force -Recurse| Out-Null } Write-Divider From 267ac0e430f3fcb3488b20e663a1bcf5574e8452 Mon Sep 17 00:00:00 2001 From: Zackarias Montell Date: Thu, 22 Jan 2026 13:15:56 +0100 Subject: [PATCH 4/6] Adding setting of wallpaper --- requirements.ps1 | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/requirements.ps1 b/requirements.ps1 index d667403..8decdd4 100644 --- a/requirements.ps1 +++ b/requirements.ps1 @@ -28,7 +28,11 @@ param ( [Alias('no-fonts')] [switch]$NoFonts, [Alias('only-fonts')] - [switch]$OnlyFonts + [switch]$OnlyFonts, + [Alias('no-wallpaper')] + [switch]$NoWallpaper, + [Alias('only-wallpaper')] + [switch]$OnlyWallpaper ) if ($Help) @@ -74,6 +78,7 @@ $Flags = [ordered]@{ PipEnabled = -not $NoPip NpmEnabled = -not $NoNpm FontsEnabled = -not $NoFonts + WallpaperEnabled = -not $NoWallpaper } function Reset-Flags @@ -119,6 +124,11 @@ if ($OnlyFonts) Reset-Flags $Flags.FontsEnabled = $true } +if ($OnlyWallpaper) +{ + Reset-Flags + $Flags.WallpaperEnabled = $true +} Write-Host "These providers are enabled:" foreach ($key in $Flags.Keys) @@ -238,5 +248,21 @@ if ($Flags.FontsEnabled) Remove-Item ~\fonts -Force -Recurse| Out-Null } +if ($Flags.WallpaperEnabled) +{ + Write-Divider + Write-Host "Setting Wallpaper" + Add-Type @" +using System; +using System.Runtime.InteropServices; +public class Wallpaper { + [DllImport("user32.dll", SetLastError = true)] + public static extern bool SystemParametersInfo( + int uAction, int uParam, string lpvParam, int fuWinIni); +} +"@ -ErrorAction SilentlyContinue + + [Wallpaper]::SystemParametersInfo(20, 0, "$HOME\wallpaper.png", 0x03) | Out-Null +} Write-Divider Write-Host "Done!" From d4ef839a07c6eabb06b860f1a9b7eb5995c43b52 Mon Sep 17 00:00:00 2001 From: Zackarias Montell Date: Tue, 27 Jan 2026 12:38:11 +0100 Subject: [PATCH 5/6] Set line endings to lf for .sh --- .profile.ps1 | 20 ++++++++++++++++++++ AppData/Local/nvim/lua/config/options.lua | 7 +++++++ requirements.ps1 | 5 +++-- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/.profile.ps1 b/.profile.ps1 index ea933c5..f336ed1 100644 --- a/.profile.ps1 +++ b/.profile.ps1 @@ -17,6 +17,26 @@ Set-Alias -Name python3 -Value python # Functions +function d-up { + docker compose up --build -d +} +function d-bash { + docker exec -it "$1" /bin/bash +} +function d-down { + docker compose down -v +} +function d-down-up { + d-down + d-up +} +function d-logs { + docker compose logs -f -t +} +function d-ps { + docker compose ps -a +} + function cdli { Set-Location "C:\repos\litium" } diff --git a/AppData/Local/nvim/lua/config/options.lua b/AppData/Local/nvim/lua/config/options.lua index c08ef0e..b2be502 100644 --- a/AppData/Local/nvim/lua/config/options.lua +++ b/AppData/Local/nvim/lua/config/options.lua @@ -64,3 +64,10 @@ vim.opt.scrolloff = 10 -- instead raise a dialog asking if you wish to save the current file(s) -- See `:help 'confirm'` vim.opt.confirm = true + +-- set LF instead of CRLF +vim.opt.fileformats = { 'unix', 'dos' } +vim.api.nvim_create_autocmd({ 'BufRead', 'BufNewFile' }, { + pattern = '*.sh', + command = 'setlocal ff=unix', +}) diff --git a/requirements.ps1 b/requirements.ps1 index 8decdd4..aeab961 100644 --- a/requirements.ps1 +++ b/requirements.ps1 @@ -157,7 +157,8 @@ $packages = @( "Python.Python.3.10", # isort "JernejSimoncic.Wget", # nvim "7zip.7zip" # nvim - "rustlang.rustup" + "rustlang.rustup", + "Mozilla.Firefox" ) $ExtraPackages = @( "mRemoteNG.mRemoteNG", @@ -236,7 +237,7 @@ if ($Flags.FontsEnabled) Set-Location ~\fonts | Out-Null unzip JetBrainsMono.zip Remove-Item JetBrainsMono.zip - $FontsPath = "~\fonts" + $FontsPath = "$HOME\fonts" $shell = New-Object -ComObject Shell.Application $fonts = $shell.Namespace(0x14) From 07314d71f7565dd9d191ae09067f541d4090a1f6 Mon Sep 17 00:00:00 2001 From: Zackarias Montell Date: Thu, 29 Jan 2026 10:05:14 +0100 Subject: [PATCH 6/6] Fixed neo tree hidden files and added follow file --- AppData/Local/nvim/lua/config/options.lua | 2 +- .../Local/nvim/lua/kickstart/plugins/neo-tree.lua | 13 +++++++++++++ AppData/Local/nvim/lua/plugins/nvim-lspconfig.lua | 2 ++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/AppData/Local/nvim/lua/config/options.lua b/AppData/Local/nvim/lua/config/options.lua index b2be502..d96fc18 100644 --- a/AppData/Local/nvim/lua/config/options.lua +++ b/AppData/Local/nvim/lua/config/options.lua @@ -68,6 +68,6 @@ vim.opt.confirm = true -- set LF instead of CRLF vim.opt.fileformats = { 'unix', 'dos' } vim.api.nvim_create_autocmd({ 'BufRead', 'BufNewFile' }, { - pattern = '*.sh', + pattern = { '*.sh', '*.xml' }, command = 'setlocal ff=unix', }) diff --git a/AppData/Local/nvim/lua/kickstart/plugins/neo-tree.lua b/AppData/Local/nvim/lua/kickstart/plugins/neo-tree.lua index 4f9c905..aa707d9 100644 --- a/AppData/Local/nvim/lua/kickstart/plugins/neo-tree.lua +++ b/AppData/Local/nvim/lua/kickstart/plugins/neo-tree.lua @@ -23,6 +23,19 @@ return { }, }, filesystem = { + follow_current_file = { + enabled = true, + }, + filtered_items = { + always_show = { + '.gitignore', + '.gitattributes', + }, + always_show_by_pattern = { + '.gitlab*', + '*.env', + }, + }, window = { mappings = { ['\\'] = 'close_window', diff --git a/AppData/Local/nvim/lua/plugins/nvim-lspconfig.lua b/AppData/Local/nvim/lua/plugins/nvim-lspconfig.lua index 72763b4..5202f69 100644 --- a/AppData/Local/nvim/lua/plugins/nvim-lspconfig.lua +++ b/AppData/Local/nvim/lua/plugins/nvim-lspconfig.lua @@ -256,6 +256,8 @@ return { powershell_es = {}, intelephense = {}, bashls = {}, + docker_language_server = {}, + docker_compose_language_service = {}, } -- Ensure the servers and tools above are installed