The sidebar now has two tabs, notifications and chat. The chat is a frontend for whatever endpoint API the user sets in Config.llm.endpoint. Currently hardcoded-ish for llama.cpp endpoints but will generalize.
Tools
The chat has these tools defined:
WebFetch (self-explanatory)
New nightlight shader
Hyprland plugin + C++ QML extension combo to support a custom shader implementation for nightlight which hooks Hyprland's render pipeline to insert itself after the buffer has been mirrored, meaning the shader doesn't shouldn't show up in screen captures.
New config options
Config.display.nightlight.useNative
Config.display.nightlight.fadeDuration
Fade duration is not available when useNative == false due to insufficient support from hyprsunset.
Backend config migration
We now have a reliable way to migrate objects in the config file, preserving the user's values cleanly. Can be found in Plugins/ZShell/Config/migration.{c,h}pp.
Once migrated, rules are a no-op and can stay indefinitely (though they shouldn't.)
Related issue
No response
Type
New feature
Tested
Build succeeds
Existing tests pass
Manually verified
Breaking changes?
No response
Checklist
CI passes (format, lint, typecheck)
Clean commits
No new warnings
Docs updated if needed
### What & why
## New chat interface in sidebar
The sidebar now has two tabs, notifications and chat. The chat is a frontend for whatever endpoint API the user sets in `Config.llm.endpoint`. Currently hardcoded-ish for `llama.cpp` endpoints but will generalize.
### Tools
The chat has these tools defined:
- WebFetch (self-explanatory)
## New nightlight shader
Hyprland plugin + C++ QML extension combo to support a custom shader implementation for nightlight which hooks Hyprland's render pipeline to insert itself after the buffer has been mirrored, meaning the shader ~~doesn't~~ shouldn't show up in screen captures.
New config options
- `Config.display.nightlight.useNative`
- `Config.display.nightlight.fadeDuration`
Fade duration is not available when `useNative == false` due to insufficient support from hyprsunset.
## Backend config migration
We now have a reliable way to migrate objects in the config file, preserving the user's values cleanly. Can be found in `Plugins/ZShell/Config/migration.{c,h}pp`.
### Usage
```cpp
// migration.cpp
const QList<ConfigMigrationRule>& ConfigMigrations::rules() {
static const QList<ConfigMigrationRule> s_rules = {
migrate("old.object.path", "new.object.path"),
};
return s_rules;
}
```
Once migrated, rules are a no-op and can stay indefinitely (though they shouldn't.)
### Related issue
_No response_
### Type
New feature
### Tested
- [x] Build succeeds
- [ ] Existing tests pass
- [x] Manually verified
### Breaking changes?
_No response_
### Checklist
- [ ] CI passes (format, lint, typecheck)
- [x] Clean commits
- [ ] No new warnings
- [x] Docs updated if needed
My main concern would be if the chat window is an opt-in setting. I would personally think many users are not waiting for an llm integration into a quickshell project; I know I am not.
Will this be an opt-in feature? Meaning that the user would need to go into settings or the config file to enable the front-end to even show the chat window.
Build failure
It seems build is failing due to missing libcmark-gfm. I'm not sure what package this is as in artix repo + arch extra and multilib as I can't find it. I cannot find it in https://archlinux.org/packages or https://aur.archlinux.org either.
### AI concern
My main concern would be if the chat window is an opt-in setting. I would personally think many users are not waiting for an llm integration into a quickshell project; I know I am not.
Will this be an opt-in feature? Meaning that the user would need to go into settings or the config file to enable the front-end to even show the chat window.
### Build failure
It seems build is failing due to missing `libcmark-gfm`. I'm not sure what package this is as in artix repo + arch extra and multilib as I can't find it. I cannot find it in https://archlinux.org/packages or https://aur.archlinux.org either.
There will be a config option to disable it, like everything else. It'll most likely be enabled by default though so that users can see that it exists without going deep into settings and stumble upon it.
I would personally think many users are not waiting for an llm integration into a quickshell project; I know I am not.
I disagree with that statement wholeheartedly, I don't think that LLM integration and Quickshell projects are mutually exclusive, in fact there's already multiple Quickshell configs that implement an LLM chat interface.
The package is just called cmark.
There will be a config option to disable it, like everything else. It'll most likely be enabled by default though so that users can see that it exists without going deep into settings and stumble upon it.
>I would personally think many users are not waiting for an llm integration into a quickshell project; I know I am not.
I disagree with that statement wholeheartedly, I don't think that LLM integration and Quickshell projects are mutually exclusive, in fact there's already multiple Quickshell configs that implement an LLM chat interface.
The package is just called `cmark`.
I meant to say opt-out, not opt-in. I'd prefer opt-in personally.
I mean to say that a general user using a desktop environment or a desktop like shell would unlikely want llm chat integration. There are no statistics I have found of this, but reading people leaving windows generally do not like AI. Granted; Microsoft shoves Copilot everywhere in Windows.
It's up to you. I'm okay with it so long it can be hidden completely (apart from the setting to be able to toggle it to enable the feature). Since it is a config option, all good for me.
I meant to say opt-out, not opt-in. I'd prefer opt-in personally.
I mean to say that a general user using a desktop environment or a desktop like shell would unlikely want llm chat integration. There are no statistics I have found of this, but reading people leaving windows generally do not like AI. Granted; Microsoft shoves Copilot everywhere in Windows.
It's up to you. I'm okay with it so long it can be hidden completely (apart from the setting to be able to toggle it to enable the feature). Since it is a config option, all good for me.
c9f7856982 fixes the missing dependencies in the Dockerfile. Issue is that the build still fails, maybe related to ci/CMakeLists mismatch with new dependencies.
[c9f7856982](https://git.zach-dev.cc/zach/z-bar-qt/commit/c9f7856982d970955ac87db29098ac6eb929f81d) fixes the missing dependencies in the Dockerfile. Issue is that the build still fails, maybe related to ci/CMakeLists mismatch with new dependencies.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What & why
New chat interface in sidebar
The sidebar now has two tabs, notifications and chat. The chat is a frontend for whatever endpoint API the user sets in
Config.llm.endpoint. Currently hardcoded-ish forllama.cppendpoints but will generalize.Tools
The chat has these tools defined:
New nightlight shader
Hyprland plugin + C++ QML extension combo to support a custom shader implementation for nightlight which hooks Hyprland's render pipeline to insert itself after the buffer has been mirrored, meaning the shader
doesn'tshouldn't show up in screen captures.New config options
Config.display.nightlight.useNativeConfig.display.nightlight.fadeDurationFade duration is not available when
useNative == falsedue to insufficient support from hyprsunset.Backend config migration
We now have a reliable way to migrate objects in the config file, preserving the user's values cleanly. Can be found in
Plugins/ZShell/Config/migration.{c,h}pp.Usage
Once migrated, rules are a no-op and can stay indefinitely (though they shouldn't.)
Related issue
No response
Type
New feature
Tested
Breaking changes?
No response
Checklist
AI concern
My main concern would be if the chat window is an opt-in setting. I would personally think many users are not waiting for an llm integration into a quickshell project; I know I am not.
Will this be an opt-in feature? Meaning that the user would need to go into settings or the config file to enable the front-end to even show the chat window.
Build failure
It seems build is failing due to missing
libcmark-gfm. I'm not sure what package this is as in artix repo + arch extra and multilib as I can't find it. I cannot find it in https://archlinux.org/packages or https://aur.archlinux.org either.There will be a config option to disable it, like everything else. It'll most likely be enabled by default though so that users can see that it exists without going deep into settings and stumble upon it.
I disagree with that statement wholeheartedly, I don't think that LLM integration and Quickshell projects are mutually exclusive, in fact there's already multiple Quickshell configs that implement an LLM chat interface.
The package is just called
cmark.I meant to say opt-out, not opt-in. I'd prefer opt-in personally.
I mean to say that a general user using a desktop environment or a desktop like shell would unlikely want llm chat integration. There are no statistics I have found of this, but reading people leaving windows generally do not like AI. Granted; Microsoft shoves Copilot everywhere in Windows.
It's up to you. I'm okay with it so long it can be hidden completely (apart from the setting to be able to toggle it to enable the feature). Since it is a config option, all good for me.
24593472e3toc9f7856982c9f7856982 fixes the missing dependencies in the Dockerfile. Issue is that the build still fails, maybe related to ci/CMakeLists mismatch with new dependencies.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.