diff --git a/quickshell/matugen/configs/codium.toml b/quickshell/matugen/configs/codium.toml deleted file mode 100644 index 2c8bb4d1..00000000 --- a/quickshell/matugen/configs/codium.toml +++ /dev/null @@ -1,11 +0,0 @@ -[templates.dmscodiumdefault] -input_path = 'SHELL_DIR/matugen/templates/vscode-color-theme-default.json' -output_path = '~/.vscode-oss/extensions/local.dynamic-base16-dankshell-0.0.1/themes/dankshell-default.json' - -[templates.dmscodiumdark] -input_path = 'SHELL_DIR/matugen/templates/vscode-color-theme-dark.json' -output_path = '~/.vscode-oss/extensions/local.dynamic-base16-dankshell-0.0.1/themes/dankshell-dark.json' - -[templates.dmscodiumlight] -input_path = 'SHELL_DIR/matugen/templates/vscode-color-theme-light.json' -output_path = '~/.vscode-oss/extensions/local.dynamic-base16-dankshell-0.0.1/themes/dankshell-light.json' diff --git a/quickshell/matugen/configs/vscode.toml b/quickshell/matugen/configs/vscode.toml deleted file mode 100644 index ab4947ec..00000000 --- a/quickshell/matugen/configs/vscode.toml +++ /dev/null @@ -1,11 +0,0 @@ -[templates.dmsvscodedefault] -input_path = 'SHELL_DIR/matugen/templates/vscode-color-theme-default.json' -output_path = '~/.vscode/extensions/local.dynamic-base16-dankshell-0.0.1/themes/dankshell-default.json' - -[templates.dmsvscodedark] -input_path = 'SHELL_DIR/matugen/templates/vscode-color-theme-dark.json' -output_path = '~/.vscode/extensions/local.dynamic-base16-dankshell-0.0.1/themes/dankshell-dark.json' - -[templates.dmsvscodelight] -input_path = 'SHELL_DIR/matugen/templates/vscode-color-theme-light.json' -output_path = '~/.vscode/extensions/local.dynamic-base16-dankshell-0.0.1/themes/dankshell-light.json' diff --git a/quickshell/matugen/dynamic-base16-dankshell.vsix b/quickshell/matugen/dynamic-base16-dankshell.vsix new file mode 100644 index 00000000..64f754dc Binary files /dev/null and b/quickshell/matugen/dynamic-base16-dankshell.vsix differ diff --git a/quickshell/matugen/templates/vscode-vsixmanifest.xml b/quickshell/matugen/templates/vscode-vsixmanifest.xml deleted file mode 100644 index 3552fc7e..00000000 --- a/quickshell/matugen/templates/vscode-vsixmanifest.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - Dynamic Base16 DankShell - Dynamic Material You theme with base16 terminal colors - Themes - - - - - - - - - - - - - diff --git a/quickshell/matugen/vsix-build/CHANGELOG.md b/quickshell/matugen/vsix-build/CHANGELOG.md new file mode 100644 index 00000000..c6dc1971 --- /dev/null +++ b/quickshell/matugen/vsix-build/CHANGELOG.md @@ -0,0 +1,5 @@ +# Changelog + +## 1.0.0 + +- Initial release diff --git a/quickshell/matugen/vsix-build/LICENSE b/quickshell/matugen/vsix-build/LICENSE new file mode 100644 index 00000000..bf720643 --- /dev/null +++ b/quickshell/matugen/vsix-build/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 DankLinux + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/quickshell/matugen/vsix-build/README.md b/quickshell/matugen/vsix-build/README.md new file mode 100644 index 00000000..3a47bfff --- /dev/null +++ b/quickshell/matugen/vsix-build/README.md @@ -0,0 +1,17 @@ +# Dynamic Base16 DankShell Theme + +A VSCode theme for [DankMaterialShell](https://github.com/EverydayCodeAlchemy/DankMaterialShellGit). + +## How It Works + +1. Install this extension +2. Select one of the "Dynamic Base16 DankShell" themes in VSCode +3. DankMaterialShell automatically updates the theme files when you change themes. + +The theme files are located in your VSCode extensions directory and are updated by matugen when generating new colors. + +## Themes + +- **Dynamic Base16 DankShell** - Follows your current light/dark mode +- **Dynamic Base16 DankShell (Dark)** - Always dark variant +- **Dynamic Base16 DankShell (Light)** - Always light variant diff --git a/quickshell/matugen/templates/vscode-package.json b/quickshell/matugen/vsix-build/package.json similarity index 67% rename from quickshell/matugen/templates/vscode-package.json rename to quickshell/matugen/vsix-build/package.json index c6c1b6df..0ee84edb 100644 --- a/quickshell/matugen/templates/vscode-package.json +++ b/quickshell/matugen/vsix-build/package.json @@ -1,6 +1,7 @@ { "name": "dynamic-base16-dankshell", "displayName": "Dynamic Base16 DankShell", + "description": "Dynamic Material You theme with base16 terminal colors - auto-updated by DankMaterialShell", "publisher": "local", "version": "0.0.1", "engines": { @@ -9,6 +10,18 @@ "categories": [ "Themes" ], + "keywords": [ + "theme", + "material", + "material you", + "base16", + "dynamic", + "dankshell" + ], + "repository": { + "type": "git", + "url": "https://github.com/AvengeMedia/DankMaterialShellGit" + }, "contributes": { "themes": [ { diff --git a/quickshell/matugen/vsix-build/themes/dankshell-dark.json b/quickshell/matugen/vsix-build/themes/dankshell-dark.json new file mode 100644 index 00000000..20528536 --- /dev/null +++ b/quickshell/matugen/vsix-build/themes/dankshell-dark.json @@ -0,0 +1,36 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "Dynamic Base16 DankShell", + "colors": { + "editor.background": "#1a1a2e", + "editor.foreground": "#e4e4e7", + "editorLineNumber.foreground": "#71717a", + "editorLineNumber.activeForeground": "#e4e4e7", + "editorCursor.foreground": "#a78bfa", + "editor.selectionBackground": "#4c1d95", + "activityBar.background": "#1a1a2e", + "activityBar.foreground": "#e4e4e7", + "activityBarBadge.background": "#a78bfa", + "activityBarBadge.foreground": "#1a1a2e", + "sideBar.background": "#1a1a2e", + "sideBar.foreground": "#e4e4e7", + "statusBar.background": "#1a1a2e", + "statusBar.foreground": "#e4e4e7", + "titleBar.activeBackground": "#1a1a2e", + "titleBar.activeForeground": "#e4e4e7" + }, + "tokenColors": [ + { + "scope": ["comment"], + "settings": { "foreground": "#71717a", "fontStyle": "italic" } + }, + { + "scope": ["keyword"], + "settings": { "foreground": "#a78bfa" } + }, + { + "scope": ["string"], + "settings": { "foreground": "#34d399" } + } + ] +} diff --git a/quickshell/matugen/vsix-build/themes/dankshell-default.json b/quickshell/matugen/vsix-build/themes/dankshell-default.json new file mode 100644 index 00000000..20528536 --- /dev/null +++ b/quickshell/matugen/vsix-build/themes/dankshell-default.json @@ -0,0 +1,36 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "Dynamic Base16 DankShell", + "colors": { + "editor.background": "#1a1a2e", + "editor.foreground": "#e4e4e7", + "editorLineNumber.foreground": "#71717a", + "editorLineNumber.activeForeground": "#e4e4e7", + "editorCursor.foreground": "#a78bfa", + "editor.selectionBackground": "#4c1d95", + "activityBar.background": "#1a1a2e", + "activityBar.foreground": "#e4e4e7", + "activityBarBadge.background": "#a78bfa", + "activityBarBadge.foreground": "#1a1a2e", + "sideBar.background": "#1a1a2e", + "sideBar.foreground": "#e4e4e7", + "statusBar.background": "#1a1a2e", + "statusBar.foreground": "#e4e4e7", + "titleBar.activeBackground": "#1a1a2e", + "titleBar.activeForeground": "#e4e4e7" + }, + "tokenColors": [ + { + "scope": ["comment"], + "settings": { "foreground": "#71717a", "fontStyle": "italic" } + }, + { + "scope": ["keyword"], + "settings": { "foreground": "#a78bfa" } + }, + { + "scope": ["string"], + "settings": { "foreground": "#34d399" } + } + ] +} diff --git a/quickshell/matugen/vsix-build/themes/dankshell-light.json b/quickshell/matugen/vsix-build/themes/dankshell-light.json new file mode 100644 index 00000000..20528536 --- /dev/null +++ b/quickshell/matugen/vsix-build/themes/dankshell-light.json @@ -0,0 +1,36 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "Dynamic Base16 DankShell", + "colors": { + "editor.background": "#1a1a2e", + "editor.foreground": "#e4e4e7", + "editorLineNumber.foreground": "#71717a", + "editorLineNumber.activeForeground": "#e4e4e7", + "editorCursor.foreground": "#a78bfa", + "editor.selectionBackground": "#4c1d95", + "activityBar.background": "#1a1a2e", + "activityBar.foreground": "#e4e4e7", + "activityBarBadge.background": "#a78bfa", + "activityBarBadge.foreground": "#1a1a2e", + "sideBar.background": "#1a1a2e", + "sideBar.foreground": "#e4e4e7", + "statusBar.background": "#1a1a2e", + "statusBar.foreground": "#e4e4e7", + "titleBar.activeBackground": "#1a1a2e", + "titleBar.activeForeground": "#e4e4e7" + }, + "tokenColors": [ + { + "scope": ["comment"], + "settings": { "foreground": "#71717a", "fontStyle": "italic" } + }, + { + "scope": ["keyword"], + "settings": { "foreground": "#a78bfa" } + }, + { + "scope": ["string"], + "settings": { "foreground": "#34d399" } + } + ] +} diff --git a/quickshell/scripts/matugen-worker.sh b/quickshell/scripts/matugen-worker.sh index fa92d437..87c33e54 100755 --- a/quickshell/scripts/matugen-worker.sh +++ b/quickshell/scripts/matugen-worker.sh @@ -73,6 +73,27 @@ append_config() { echo "" >> "$cfg_file" } +append_vscode_config() { + local name="$1" ext_dir="$2" cfg_file="$3" + [[ ! -d "$ext_dir" ]] && return + local template_dir="$SHELL_DIR/matugen/templates" + cat >> "$cfg_file" << EOF +[templates.dms${name}default] +input_path = '$template_dir/vscode-color-theme-default.json' +output_path = '$ext_dir/themes/dankshell-default.json' + +[templates.dms${name}dark] +input_path = '$template_dir/vscode-color-theme-dark.json' +output_path = '$ext_dir/themes/dankshell-dark.json' + +[templates.dms${name}light] +input_path = '$template_dir/vscode-color-theme-light.json' +output_path = '$ext_dir/themes/dankshell-light.json' + +EOF + log "Added $name theme config (extension found at $ext_dir)" +} + build_merged_config() { local mode="$1" run_user="$2" cfg_file="$3" @@ -107,8 +128,12 @@ EOF append_config "alacritty" "alacritty.toml" "$cfg_file" append_config "wezterm" "wezterm.toml" "$cfg_file" append_config "dgop" "dgop.toml" "$cfg_file" - append_config "code" "vscode.toml" "$cfg_file" - append_config "codium" "codium.toml" "$cfg_file" + + append_vscode_config "vscode" "$HOME/.vscode/extensions/local.dynamic-base16-dankshell-0.0.1" "$cfg_file" + append_vscode_config "codium" "$HOME/.vscode-oss/extensions/local.dynamic-base16-dankshell-0.0.1" "$cfg_file" + append_vscode_config "codeoss" "$HOME/.config/Code - OSS/extensions/local.dynamic-base16-dankshell-0.0.1" "$cfg_file" + append_vscode_config "cursor" "$HOME/.cursor/extensions/local.dynamic-base16-dankshell-0.0.1" "$cfg_file" + append_vscode_config "windsurf" "$HOME/.windsurf/extensions/local.dynamic-base16-dankshell-0.0.1" "$cfg_file" if [[ "$run_user" == "true" && -f "$CONFIG_DIR/matugen/config.toml" ]]; then awk '/^\[templates\]/{p=1} p' "$CONFIG_DIR/matugen/config.toml" >> "$cfg_file" @@ -167,66 +192,6 @@ refresh_gtk() { gsettings set org.gnome.desktop.interface gtk-theme "adw-gtk3-${mode}" 2>/dev/null || true } -setup_vscode_extension() { - local cmd="$1" ext_dir="$2" config_dir="$3" - command -v "$cmd" >/dev/null 2>&1 || return - [[ ! -d "$config_dir" ]] && return - local theme_dir="$ext_dir/themes" - mkdir -p "$theme_dir" - cp "$SHELL_DIR/matugen/templates/vscode-package.json" "$ext_dir/package.json" 2>/dev/null || true - cp "$SHELL_DIR/matugen/templates/vscode-vsixmanifest.xml" "$ext_dir/.vsixmanifest" 2>/dev/null || true - update_vscode_extensions_json "$config_dir/extensions" "$ext_dir" -} - -update_vscode_extensions_json() { - local ext_list_dir="$1" ext_dir="$2" - local ext_json="$ext_list_dir/extensions.json" - [[ ! -f "$ext_json" ]] && return - grep -q "dynamic-base16-dankshell" "$ext_json" && return - cp "$ext_json" "$ext_json.bak" - local entry - entry=$(cat < "$ext_json" - else - echo "${content%]}, $entry]" > "$ext_json" - fi -} - signal_terminals() { pgrep -x kitty >/dev/null 2>&1 && pkill -USR1 kitty pgrep -x ghostty >/dev/null 2>&1 && pkill -USR2 ghostty @@ -308,8 +273,6 @@ build_once() { fi refresh_gtk "$mode" - setup_vscode_extension "code" "$HOME/.vscode/extensions/local.dynamic-base16-dankshell-0.0.1" "$HOME/.vscode" - setup_vscode_extension "codium" "$HOME/.vscode-oss/extensions/local.dynamic-base16-dankshell-0.0.1" "$HOME/.vscode-oss" signal_terminals return 0