Skip to content
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

Merged
merged 6 commits into from
Apr 26, 2023
Merged

feat: provide default themes #2307

merged 6 commits into from
Apr 26, 2023

Conversation

jaeheonji
Copy link
Member

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
  • system location (Perhaps, /etc/zellij/themes or /usr/share/zellij/themes. I'm not sure yet)

@jaeheonji
Copy link
Member Author

Hi, @imsnif! If you have time, could you give me your opinion on this proposal?

@imsnif
Copy link
Member

imsnif commented Mar 28, 2023

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:
Maybe in addition to what you wrote above, we can do with themes what we do with the config file?
We have a default config file included in the Zellij binary, so when Zellij runs it looks for a config file on the hard drive (eg. in ~/.config/zellij), if it finds one it uses it, if not it uses the one included in the binary.

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?

@jaeheonji
Copy link
Member Author

Thank you, @imsnif!

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?

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.

@jaeheonji jaeheonji temporarily deployed to cachix April 8, 2023 15:06 — with GitHub Actions Inactive
@jaeheonji jaeheonji temporarily deployed to cachix April 17, 2023 13:03 — with GitHub Actions Inactive
@jaeheonji jaeheonji temporarily deployed to cachix April 17, 2023 14:41 — with GitHub Actions Inactive
@jaeheonji jaeheonji marked this pull request as ready for review April 17, 2023 14:42
@jaeheonji jaeheonji temporarily deployed to cachix April 26, 2023 14:53 — with GitHub Actions Inactive
@jaeheonji jaeheonji merged commit ff36798 into zellij-org:main Apr 26, 2023
haunt98 added a commit to haunt98/dotfiles that referenced this pull request May 2, 2023
renovate bot referenced this pull request in scottames/dots Jun 19, 2023
[![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://togithub.com/aquaproj/aqua-registry)
| minor | `v4.19.0` -> `v4.20.0` |
| [zellij-org/zellij](https://togithub.com/zellij-org/zellij) | minor |
`v0.36.0` -> `v0.37.0` |

---

### Release Notes

<details>
<summary>aquaproj/aqua-registry</summary>

###
[`v4.20.0`](https://togithub.com/aquaproj/aqua-registry/releases/tag/v4.20.0)

[Compare
Source](https://togithub.com/aquaproj/aqua-registry/compare/v4.19.0...v4.20.0)


[Issues](https://togithub.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.20.0)
| [Pull
Requests](https://togithub.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av4.20.0)
| aquaproj/aqua-registry@v4.19.0...v4.20.0

#### 🎉 New Packages


[#&#8203;13132](https://togithub.com/aquaproj/aqua-registry/issues/13132)
[segmentio/golines](https://togithub.com/segmentio/golines): A golang
formatter that fixes long lines
[@&#8203;iwata](https://togithub.com/iwata)

#### Fixes


[#&#8203;13143](https://togithub.com/aquaproj/aqua-registry/issues/13143)
[terraform-linters/tflint](https://togithub.com/terraform-linters/tflint):
Support old versions

</details>

<details>
<summary>zellij-org/zellij</summary>

###
[`v0.37.0`](https://togithub.com/zellij-org/zellij/releases/tag/v0.37.0)

[Compare
Source](https://togithub.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
[@&#8203;pedromfedricci](https://togithub.com/pedromfedricci) in
[https://github.com/zellij-org/zellij/pull/2368](https://togithub.com/zellij-org/zellij/pull/2368)
- feat: Add layout configuration to exclude panes from tab sync by
[@&#8203;on3iro](https://togithub.com/on3iro) in
[https://github.com/zellij-org/zellij/pull/2314](https://togithub.com/zellij-org/zellij/pull/2314)
- Fix 2205 - Support cwd by
[@&#8203;Kangaxx-0](https://togithub.com/Kangaxx-0) in
[https://github.com/zellij-org/zellij/pull/2290](https://togithub.com/zellij-org/zellij/pull/2290)
- feat(plugins): reload plugin at runtime by
[@&#8203;imsnif](https://togithub.com/imsnif) in
[https://github.com/zellij-org/zellij/pull/2372](https://togithub.com/zellij-org/zellij/pull/2372)
- Update architecture doc by
[@&#8203;Kangaxx-0](https://togithub.com/Kangaxx-0) in
[https://github.com/zellij-org/zellij/pull/2371](https://togithub.com/zellij-org/zellij/pull/2371)
- feat(themes): add nightfox themes by
[@&#8203;EdenEast](https://togithub.com/EdenEast) in
[https://github.com/zellij-org/zellij/pull/2384](https://togithub.com/zellij-org/zellij/pull/2384)
- feat: provide default themes by
[@&#8203;jaeheonji](https://togithub.com/jaeheonji) in
[https://github.com/zellij-org/zellij/pull/2307](https://togithub.com/zellij-org/zellij/pull/2307)
- feat(plugins): update and render plugins asynchronously by
[@&#8203;imsnif](https://togithub.com/imsnif) in
[https://github.com/zellij-org/zellij/pull/2410](https://togithub.com/zellij-org/zellij/pull/2410)
- feat(layout): Support environment variables in cwd
([#&#8203;2288](https://togithub.com/zellij-org/zellij/issues/2288)) by
[@&#8203;shahamran](https://togithub.com/shahamran) in
[https://github.com/zellij-org/zellij/pull/2291](https://togithub.com/zellij-org/zellij/pull/2291)
- Add file path context to all IO errors in ConfigError by
[@&#8203;Imberflur](https://togithub.com/Imberflur) in
[https://github.com/zellij-org/zellij/pull/2412](https://togithub.com/zellij-org/zellij/pull/2412)
- fix(e2e): fix flaky locked mode test by
[@&#8203;imsnif](https://togithub.com/imsnif) in
[https://github.com/zellij-org/zellij/pull/2413](https://togithub.com/zellij-org/zellij/pull/2413)
- Fix error loading non-existant themes directory and use default themes
as the base when merging by
[@&#8203;Imberflur](https://togithub.com/Imberflur) in
[https://github.com/zellij-org/zellij/pull/2411](https://togithub.com/zellij-org/zellij/pull/2411)
- improve build/ci times by
[@&#8203;tlinford](https://togithub.com/tlinford) in
[https://github.com/zellij-org/zellij/pull/2396](https://togithub.com/zellij-org/zellij/pull/2396)
- Do not unwrap() the sticky bit setting! by
[@&#8203;valpackett](https://togithub.com/valpackett) in
[https://github.com/zellij-org/zellij/pull/2424](https://togithub.com/zellij-org/zellij/pull/2424)
- Use rust 1.67 by [@&#8203;har7an](https://togithub.com/har7an) in
[https://github.com/zellij-org/zellij/pull/2375](https://togithub.com/zellij-org/zellij/pull/2375)
- Fix issue 2421 - Update config file output by
[@&#8203;Kangaxx-0](https://togithub.com/Kangaxx-0) in
[https://github.com/zellij-org/zellij/pull/2443](https://togithub.com/zellij-org/zellij/pull/2443)
- feat(plugins): Plugin workers and strider by
[@&#8203;imsnif](https://togithub.com/imsnif) in
[https://github.com/zellij-org/zellij/pull/2449](https://togithub.com/zellij-org/zellij/pull/2449)
- fix: cwd of newtab action by
[@&#8203;onichandame](https://togithub.com/onichandame) in
[https://github.com/zellij-org/zellij/pull/2455](https://togithub.com/zellij-org/zellij/pull/2455)
- feat(wasm-plugin-system): major overhaul and some goodies by
[@&#8203;imsnif](https://togithub.com/imsnif) in
[https://github.com/zellij-org/zellij/pull/2510](https://togithub.com/zellij-org/zellij/pull/2510)
- feat(plugins): extensive plugin api by
[@&#8203;imsnif](https://togithub.com/imsnif) in
[https://github.com/zellij-org/zellij/pull/2516](https://togithub.com/zellij-org/zellij/pull/2516)
- fix: runtime panic because of local cache by
[@&#8203;jaeheonji](https://togithub.com/jaeheonji) in
[https://github.com/zellij-org/zellij/pull/2522](https://togithub.com/zellij-org/zellij/pull/2522)
- fix(output): do not hide cursor on a render that does not include
visual assets by [@&#8203;imsnif](https://togithub.com/imsnif) in
[https://github.com/zellij-org/zellij/pull/2528](https://togithub.com/zellij-org/zellij/pull/2528)
- fix(screen): focus tab as well as pane when launching existing plugin
by [@&#8203;imsnif](https://togithub.com/imsnif) in
[https://github.com/zellij-org/zellij/pull/2530](https://togithub.com/zellij-org/zellij/pull/2530)
- fix(strider): clear search term on ESC by
[@&#8203;imsnif](https://togithub.com/imsnif) in
[https://github.com/zellij-org/zellij/pull/2531](https://togithub.com/zellij-org/zellij/pull/2531)
- fix(plugins): only listen to hd if a plugin is subscribed to hd events
by [@&#8203;imsnif](https://togithub.com/imsnif) in
[https://github.com/zellij-org/zellij/pull/2529](https://togithub.com/zellij-org/zellij/pull/2529)
- fix(logs): suppress debug logs when not debugging by
[@&#8203;imsnif](https://togithub.com/imsnif) in
[https://github.com/zellij-org/zellij/pull/2532](https://togithub.com/zellij-org/zellij/pull/2532)
- fix(plugins): allow loading relative urls by
[@&#8203;imsnif](https://togithub.com/imsnif) in
[https://github.com/zellij-org/zellij/pull/2539](https://togithub.com/zellij-org/zellij/pull/2539)
- feat(plugins): plugin pane state events by
[@&#8203;imsnif](https://togithub.com/imsnif) in
[https://github.com/zellij-org/zellij/pull/2545](https://togithub.com/zellij-org/zellij/pull/2545)
- performance(plugins): use a debounced fs watcher by
[@&#8203;imsnif](https://togithub.com/imsnif) in
[https://github.com/zellij-org/zellij/pull/2546](https://togithub.com/zellij-org/zellij/pull/2546)
- feat(plugins): more plugin api methods by
[@&#8203;imsnif](https://togithub.com/imsnif) in
[https://github.com/zellij-org/zellij/pull/2550](https://togithub.com/zellij-org/zellij/pull/2550)
- refactor(plugins): improve api by
[@&#8203;imsnif](https://togithub.com/imsnif) in
[https://github.com/zellij-org/zellij/pull/2552](https://togithub.com/zellij-org/zellij/pull/2552)
- feat(plugins): strider improvements by
[@&#8203;imsnif](https://togithub.com/imsnif) in
[https://github.com/zellij-org/zellij/pull/2551](https://togithub.com/zellij-org/zellij/pull/2551)
- docs(plugins): document the zellij-tile events and commands api by
[@&#8203;imsnif](https://togithub.com/imsnif) in
[https://github.com/zellij-org/zellij/pull/2554](https://togithub.com/zellij-org/zellij/pull/2554)
- docs(plugins): better zellij-tile-docs by
[@&#8203;imsnif](https://togithub.com/imsnif) in
[https://github.com/zellij-org/zellij/pull/2560](https://togithub.com/zellij-org/zellij/pull/2560)

#### New Contributors

- [@&#8203;on3iro](https://togithub.com/on3iro) made their first
contribution in
[https://github.com/zellij-org/zellij/pull/2314](https://togithub.com/zellij-org/zellij/pull/2314)
- [@&#8203;Kangaxx-0](https://togithub.com/Kangaxx-0) made their first
contribution in
[https://github.com/zellij-org/zellij/pull/2290](https://togithub.com/zellij-org/zellij/pull/2290)
- [@&#8203;EdenEast](https://togithub.com/EdenEast) made their first
contribution in
[https://github.com/zellij-org/zellij/pull/2384](https://togithub.com/zellij-org/zellij/pull/2384)
- [@&#8203;shahamran](https://togithub.com/shahamran) made their first
contribution in
[https://github.com/zellij-org/zellij/pull/2291](https://togithub.com/zellij-org/zellij/pull/2291)
- [@&#8203;Imberflur](https://togithub.com/Imberflur) made their first
contribution in
[https://github.com/zellij-org/zellij/pull/2412](https://togithub.com/zellij-org/zellij/pull/2412)
- [@&#8203;valpackett](https://togithub.com/valpackett) made their first
contribution in
[https://github.com/zellij-org/zellij/pull/2424](https://togithub.com/zellij-org/zellij/pull/2424)
- [@&#8203;onichandame](https://togithub.com/onichandame) made their
first contribution in
[https://github.com/zellij-org/zellij/pull/2455](https://togithub.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://togithub.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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants