What is a panel/bar?
A panel/bar is a generic term for program that is used to provide information and status (such as
battery, time, sound volume, running apps, notification, etc.) in a desktop.
Linux ecosystem's modular nature means that we have the ability to customize our own system to suit our unique needs. Example of that would be running a window manager (WM) instead of traditional desktop environment (DE) for simplicity and speed (and also cool points ofc 😄).
Customizing window manager will often need you to compose parts from other programs (such as bar, app runner, notification daemon) to make window managers usable, because oftentimes window manager come bare-bone, no other function other than managing your app window and starting a few program at start/on key press.
One part of a WM setup is a panel/bar to make seeing information easier... A lot of bar programs were made to be customizable, to the point of making your own components, and... that's not so familiar with some people. So...
Another bar program? Well..... yes... But this one is a bit different.
Kitshell aims to be beginner-friendly by making user interfaces that is familiar to common people,
so you don't need to make parts yourself. This program contains most of the functionality you need
to make WM setup ready for daily use, like
- A time and date display
- A notification system (with do not disturb)
- An app menu and running task display
- Quick settings button to change brightness, volume, Wifi, Bluetooth
- WM integration (currently only supports Niri)
- And more soon...
So, all of these benefits, but what does it cost?
To be easier to use, means that this program does not have many customizations. Customization is
done through panel UI, not through configuration text/dotfiles. You can't also make components
yourself (not at this moment). So this program is not for you who want to fully customize the
content of the bar.
This program is currently in heavy development, things might not be stable, so I don't think it is ready to be installed on your system yet...
Those who may have experience can run this program (on its alpha state) with instruction available below:
This panel is built using Flutter (for UI/common business logic) and Rust (for interfacing with the system). Development is done using VSCode, use of other IDE is allowed.
Install these tool first
- Flutter SDK 3.35.0 and up, use FVM (recommended) or use instruction from Flutter's website
- Rust toolchain 1.90.0 and up, use Rustup
- Taskfile, to run code generators easily (recommended)
and then
- Clone this repository to your device
git clone https://github.com/bootloopmaster636/kitshell
and change current directory to newly downloaded repocd ./kitshell
. - Install dependencies with
flutter pub get
. - Run code generation with
task codegen
(orgo-task codegen
if you run Arch Linux). This will generate required Flutter <=> Rust binding, localizations, and other required code. - Run Kitshell with
flutter run --verbose
. Verbose option here is to make Rust compilation message appear, so it is easier to debug.
We have a Discord server you can join here. Please be civil and follow Discord rules.
- Media player and visualization
- More settings in quick settings
- Settings for personalization and theming
- Polishing bugs
- Code documentation and testing
- Requested features: Clipboard managers
- Multi monitor support (when Flutter multi window officially released I suppose)
Thanks to the people(s) behind these project/contribution that helps us in building Kitshell:
- Libraries that made this program possible
- flutter_layer_shell for making Flutter plugin to create Wayland layer shell apps.
- niri-taskbar for how to do Niri IPC
- And you