add dark/light mode control from wsl

This commit is contained in:
DannyDannyDanny 2025-01-25 16:00:49 +00:00
parent e3886bbc91
commit 7b9f231771
2 changed files with 70 additions and 14 deletions

52
bashscripts/wsl_theme.sh Normal file
View file

@ -0,0 +1,52 @@
color_scheme=$1
# write a file with the current theme here:
nvim_color_theme_path=~/.local/share/nvim_color_scheme
# validate user input
if [[ "$color_scheme" != "dark" && "$color_scheme" != "light" ]]; then
echo "Error: Color scheme must be 'dark' or 'light'" >&2
exit 1
else
echo $color_scheme > $nvim_color_theme_path
fi
# check that all relevant files exist
windows_username=$(powershell.exe '$env:UserName' | tr -d '\r\n')
dark_mode_config_path=~/python-projects/24_alacritty_windows_setup/gruvbox_material_medium_dark.toml
light_mode_config_path=~/python-projects/24_alacritty_windows_setup/gruvbox_material_medium_light.toml
if [ ! -f $light_mode_config_path ]; then
echo "error: light_mode_config_path missing"
echo "expected: $light_mode_config_path"
exit 1
fi
if [ ! -f $dark_mode_config_path ]; then
echo "error: dark_mode_config_path missing"
echo "expected: $dark_mode_config_path"
exit 1
fi
windows_alacritty_config_path="/mnt/c/Users/${windows_username}/AppData/Roaming/alacritty/alacritty.toml"
echo 'overwriting windows alacritty config'
if [ $color_scheme = 'dark' ]; then
echo "going dark"
cp $dark_mode_config_path $windows_alacritty_config_path
# explorer, browser etc
powershell.exe -Command "Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name AppsUseLightTheme -Value 0"
# taskbar and start menu
powershell.exe -Command "Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name SystemUsesLightTheme -Value 0"
fi
if [ $color_scheme = 'light' ]; then
echo "going light"
cp $light_mode_config_path $windows_alacritty_config_path
# explorer, browser etc
powershell.exe -Command "Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name AppsUseLightTheme -Value 1"
# taskbar and start menu
powershell.exe -Command "Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name SystemUsesLightTheme -Value 1"
fi

View file

@ -13,20 +13,24 @@
set nohlsearch
lua << EOF
local hkey_current_user_path = 'HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize'
local ps_cmd = 'Get-ItemProperty -Path ' .. hkey_current_user_path .. ' -Name AppsUseLightTheme'
local parent_cmd = 'powershell.exe -Command "' .. ps_cmd .. '"'
local handle = io.popen(parent_cmd)
local result = handle:read("*a")
handle:close()
local apps_use_light_theme = string.match(result, "AppsUseLightTheme%s*:%s*(%d+)")
local use_dark_bg = apps_use_light_theme == '0'
print('use dark:', use_dark_bg)
if use_dark_bg then
vim.cmd("set bg=dark")
else
vim.cmd("set bg=light")
local config_file = os.getenv("HOME")..'/.local/share/nvim_color_scheme'
local f=io.open(config_file, "r")
if f~=nil then
local system_theme = f:read()
-- f:close()
io.close(f)
if system_theme == 'dark' then
vim.cmd("set bg=dark")
elseif system_theme == 'light' then
vim.cmd("set bg=light")
else
print('warning: expected value "light" or "dark"')
print(' got:', system_theme)
print(' expected path:', file)
end
else
print('warning: nvim color scheme not found')
print(' expected path:', file)
end
EOF