diff --git a/bashscripts/wsl_theme.sh b/bashscripts/wsl_theme.sh new file mode 100644 index 0000000..51eba02 --- /dev/null +++ b/bashscripts/wsl_theme.sh @@ -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 + diff --git a/nixos/neovim.nix b/nixos/neovim.nix index f4e77c5..0eda250 100644 --- a/nixos/neovim.nix +++ b/nixos/neovim.nix @@ -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