-
-
Notifications
You must be signed in to change notification settings - Fork 681
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: provide default themes #2307
Conversation
Hi, @imsnif! If you have time, could you give me your opinion on this proposal? |
Hi @jaeheonji - sorry it took me so long to get to this! I think this is a good solution, but I want to suggest another thing: I think you did something very similar in the previous PR and I liked it. Maybe we just need to adjust it a little so that it behaves like the config? I think what you did here with moving the example themes to the asset folder is a good start. What do you think? |
Thank you, @imsnif!
Yes. The previous way also has many advantages. So, I'll include the theme in the binary as before, but with a bit more stability. |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [aquaproj/aqua-registry](https://github.com/aquaproj/aqua-registry) | minor | `v4.19.0` -> `v4.20.0` | | [zellij-org/zellij](https://github.com/zellij-org/zellij) | minor | `v0.36.0` -> `v0.37.0` | --- ### Release Notes <details> <summary>aquaproj/aqua-registry</summary> ### [`v4.20.0`](https://github.com/aquaproj/aqua-registry/releases/tag/v4.20.0) [Compare Source](https://github.com/aquaproj/aqua-registry/compare/v4.19.0...v4.20.0) [Issues](https://github.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.20.0) | [Pull Requests](https://github.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av4.20.0) | aquaproj/aqua-registry@v4.19.0...v4.20.0 #### 🎉 New Packages [#​13132](https://github.com/aquaproj/aqua-registry/issues/13132) [segmentio/golines](https://github.com/segmentio/golines): A golang formatter that fixes long lines [@​iwata](https://github.com/iwata) #### Fixes [#​13143](https://github.com/aquaproj/aqua-registry/issues/13143) [terraform-linters/tflint](https://github.com/terraform-linters/tflint): Support old versions </details> <details> <summary>zellij-org/zellij</summary> ### [`v0.37.0`](https://github.com/zellij-org/zellij/releases/tag/v0.37.0) [Compare Source](https://github.com/zellij-org/zellij/compare/v0.36.0...v0.37.0) In this release we've done a lot of work on our WebAssembly / WASI plugin system and are very excited to invite adventurous Rust developers to come pioneer our plugin system with us. To read more, please see the official [Plugin Documentation](https://zellij.dev/documentation/plugins.html). Please also drop by our Discord or Matrix and show us the plugins you're working on! #### Other Highlights - Some basic themes are now included with the release, give it a try by starting Zellij with `zellij options --theme catppuccin-mocha` - Layouts now support environment variables and tilde expansions - We can now provide a `--cwd` option when starting Zellij #### All changes - fix(plugin): respect hide session option on compact-bar by [@​pedromfedricci](https://github.com/pedromfedricci) in [https://github.com/zellij-org/zellij/pull/2368](https://github.com/zellij-org/zellij/pull/2368) - feat: Add layout configuration to exclude panes from tab sync by [@​on3iro](https://github.com/on3iro) in [https://github.com/zellij-org/zellij/pull/2314](https://github.com/zellij-org/zellij/pull/2314) - Fix 2205 - Support cwd by [@​Kangaxx-0](https://github.com/Kangaxx-0) in [https://github.com/zellij-org/zellij/pull/2290](https://github.com/zellij-org/zellij/pull/2290) - feat(plugins): reload plugin at runtime by [@​imsnif](https://github.com/imsnif) in [https://github.com/zellij-org/zellij/pull/2372](https://github.com/zellij-org/zellij/pull/2372) - Update architecture doc by [@​Kangaxx-0](https://github.com/Kangaxx-0) in [https://github.com/zellij-org/zellij/pull/2371](https://github.com/zellij-org/zellij/pull/2371) - feat(themes): add nightfox themes by [@​EdenEast](https://github.com/EdenEast) in [https://github.com/zellij-org/zellij/pull/2384](https://github.com/zellij-org/zellij/pull/2384) - feat: provide default themes by [@​jaeheonji](https://github.com/jaeheonji) in [https://github.com/zellij-org/zellij/pull/2307](https://github.com/zellij-org/zellij/pull/2307) - feat(plugins): update and render plugins asynchronously by [@​imsnif](https://github.com/imsnif) in [https://github.com/zellij-org/zellij/pull/2410](https://github.com/zellij-org/zellij/pull/2410) - feat(layout): Support environment variables in cwd ([#​2288](https://github.com/zellij-org/zellij/issues/2288)) by [@​shahamran](https://github.com/shahamran) in [https://github.com/zellij-org/zellij/pull/2291](https://github.com/zellij-org/zellij/pull/2291) - Add file path context to all IO errors in ConfigError by [@​Imberflur](https://github.com/Imberflur) in [https://github.com/zellij-org/zellij/pull/2412](https://github.com/zellij-org/zellij/pull/2412) - fix(e2e): fix flaky locked mode test by [@​imsnif](https://github.com/imsnif) in [https://github.com/zellij-org/zellij/pull/2413](https://github.com/zellij-org/zellij/pull/2413) - Fix error loading non-existant themes directory and use default themes as the base when merging by [@​Imberflur](https://github.com/Imberflur) in [https://github.com/zellij-org/zellij/pull/2411](https://github.com/zellij-org/zellij/pull/2411) - improve build/ci times by [@​tlinford](https://github.com/tlinford) in [https://github.com/zellij-org/zellij/pull/2396](https://github.com/zellij-org/zellij/pull/2396) - Do not unwrap() the sticky bit setting! by [@​valpackett](https://github.com/valpackett) in [https://github.com/zellij-org/zellij/pull/2424](https://github.com/zellij-org/zellij/pull/2424) - Use rust 1.67 by [@​har7an](https://github.com/har7an) in [https://github.com/zellij-org/zellij/pull/2375](https://github.com/zellij-org/zellij/pull/2375) - Fix issue 2421 - Update config file output by [@​Kangaxx-0](https://github.com/Kangaxx-0) in [https://github.com/zellij-org/zellij/pull/2443](https://github.com/zellij-org/zellij/pull/2443) - feat(plugins): Plugin workers and strider by [@​imsnif](https://github.com/imsnif) in [https://github.com/zellij-org/zellij/pull/2449](https://github.com/zellij-org/zellij/pull/2449) - fix: cwd of newtab action by [@​onichandame](https://github.com/onichandame) in [https://github.com/zellij-org/zellij/pull/2455](https://github.com/zellij-org/zellij/pull/2455) - feat(wasm-plugin-system): major overhaul and some goodies by [@​imsnif](https://github.com/imsnif) in [https://github.com/zellij-org/zellij/pull/2510](https://github.com/zellij-org/zellij/pull/2510) - feat(plugins): extensive plugin api by [@​imsnif](https://github.com/imsnif) in [https://github.com/zellij-org/zellij/pull/2516](https://github.com/zellij-org/zellij/pull/2516) - fix: runtime panic because of local cache by [@​jaeheonji](https://github.com/jaeheonji) in [https://github.com/zellij-org/zellij/pull/2522](https://github.com/zellij-org/zellij/pull/2522) - fix(output): do not hide cursor on a render that does not include visual assets by [@​imsnif](https://github.com/imsnif) in [https://github.com/zellij-org/zellij/pull/2528](https://github.com/zellij-org/zellij/pull/2528) - fix(screen): focus tab as well as pane when launching existing plugin by [@​imsnif](https://github.com/imsnif) in [https://github.com/zellij-org/zellij/pull/2530](https://github.com/zellij-org/zellij/pull/2530) - fix(strider): clear search term on ESC by [@​imsnif](https://github.com/imsnif) in [https://github.com/zellij-org/zellij/pull/2531](https://github.com/zellij-org/zellij/pull/2531) - fix(plugins): only listen to hd if a plugin is subscribed to hd events by [@​imsnif](https://github.com/imsnif) in [https://github.com/zellij-org/zellij/pull/2529](https://github.com/zellij-org/zellij/pull/2529) - fix(logs): suppress debug logs when not debugging by [@​imsnif](https://github.com/imsnif) in [https://github.com/zellij-org/zellij/pull/2532](https://github.com/zellij-org/zellij/pull/2532) - fix(plugins): allow loading relative urls by [@​imsnif](https://github.com/imsnif) in [https://github.com/zellij-org/zellij/pull/2539](https://github.com/zellij-org/zellij/pull/2539) - feat(plugins): plugin pane state events by [@​imsnif](https://github.com/imsnif) in [https://github.com/zellij-org/zellij/pull/2545](https://github.com/zellij-org/zellij/pull/2545) - performance(plugins): use a debounced fs watcher by [@​imsnif](https://github.com/imsnif) in [https://github.com/zellij-org/zellij/pull/2546](https://github.com/zellij-org/zellij/pull/2546) - feat(plugins): more plugin api methods by [@​imsnif](https://github.com/imsnif) in [https://github.com/zellij-org/zellij/pull/2550](https://github.com/zellij-org/zellij/pull/2550) - refactor(plugins): improve api by [@​imsnif](https://github.com/imsnif) in [https://github.com/zellij-org/zellij/pull/2552](https://github.com/zellij-org/zellij/pull/2552) - feat(plugins): strider improvements by [@​imsnif](https://github.com/imsnif) in [https://github.com/zellij-org/zellij/pull/2551](https://github.com/zellij-org/zellij/pull/2551) - docs(plugins): document the zellij-tile events and commands api by [@​imsnif](https://github.com/imsnif) in [https://github.com/zellij-org/zellij/pull/2554](https://github.com/zellij-org/zellij/pull/2554) - docs(plugins): better zellij-tile-docs by [@​imsnif](https://github.com/imsnif) in [https://github.com/zellij-org/zellij/pull/2560](https://github.com/zellij-org/zellij/pull/2560) #### New Contributors - [@​on3iro](https://github.com/on3iro) made their first contribution in [https://github.com/zellij-org/zellij/pull/2314](https://github.com/zellij-org/zellij/pull/2314) - [@​Kangaxx-0](https://github.com/Kangaxx-0) made their first contribution in [https://github.com/zellij-org/zellij/pull/2290](https://github.com/zellij-org/zellij/pull/2290) - [@​EdenEast](https://github.com/EdenEast) made their first contribution in [https://github.com/zellij-org/zellij/pull/2384](https://github.com/zellij-org/zellij/pull/2384) - [@​shahamran](https://github.com/shahamran) made their first contribution in [https://github.com/zellij-org/zellij/pull/2291](https://github.com/zellij-org/zellij/pull/2291) - [@​Imberflur](https://github.com/Imberflur) made their first contribution in [https://github.com/zellij-org/zellij/pull/2412](https://github.com/zellij-org/zellij/pull/2412) - [@​valpackett](https://github.com/valpackett) made their first contribution in [https://github.com/zellij-org/zellij/pull/2424](https://github.com/zellij-org/zellij/pull/2424) - [@​onichandame](https://github.com/onichandame) made their first contribution in [https://github.com/zellij-org/zellij/pull/2455](https://github.com/zellij-org/zellij/pull/2455) **Full Changelog**: zellij-org/zellij@v0.36.0...v0.37.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/scottames/dots). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMjYuMCIsInVwZGF0ZWRJblZlciI6IjM1LjEyNi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Refer #2223 #2229
Related #2296
History
Currently, zellij does not provide themes by default. If the user wants to apply the theme, they must configure the theme file directly or set it in the config file.
A theme is a very good component for organizing an application's community. In fact, many users add various themes to the
example
folder, but it is not possible to use them directly, and it is inconvenient for users to find them.Therefore, as with other programs, providing themes by default will be very convenient for users.
I previously implemented providing a default theme by including all themes in the zellij binary. However, due to some issues and bugs, it was not included in the current version, and I thought of a better approach instead.
Proposal
First, basic themes are managed in
zellij-utils/assets
.As a way to provide basic theme assets to the system, first, include them in zellij release assets. For this we will need to update our CI build. Other than that, it seems that the task of installing the theme to the system from each package manager should be added. (like #2296)
All zellij has to do is add the lookup to the local folder where the default theme is installed. The location of this local folder is considered the system location.
Conclusion
As a result, the space where all the theme settings are located is as follows:
config.kdl
$HOME/.config/zellij/themes
/etc/zellij/themes
or/usr/share/zellij/themes
. I'm not sure yet)