English | Русский
These are the files of my shell, written in Ignis.
Huge thanks to linkfrg for the framework and the reference for the shell.
Important
The shell does not depend on other configurations in this repository.
Except: ../hypr/hyprland/ignis.conf (for Hyprland) and
../niri/ignis.kdl (for niri; optional).
Those files is responsible for
configuring compositor for Ignis (mainly hotkeys).
Requirements:
-
Hyprland / niri
It's possible to run on any Wayland compositor (with Layer Shell protocol support), but the workspace widget depends on Hyprland / niri. In this case, widget will be hidden.
-
Ignis
Currently Ignis is not releasing updates, which means for new features you need to use thegitversion.For more precise information, see the official documentation from Ignis.
Regular installation via AUR.
yay -S python-ignis-gitOr if you use
paru.paru -S python-ignis-gitpip install git+https://github.com/ignis-sh/ignis.git -
SASS Compiler
Installdart-sassorgrass-sass. Without it, Ignis will throw aSassNotFoundError. -
ignis-gvc
ignis-gvcis used for audio handling in Ignis. -
gnome-bluetooth-3.0(optional)
Ignis uses this library for Bluetooth support. The shell will be able to start, but Bluetooth won't work.
To install, simply place these files in ~/.config/ignis/ and install all dependencies.
To run the shell, type in the console (or in your Hyprland configuration) ignis init.
All styles are located in the style.scss file. You can style it however you like.
To find out what CSS classes a widget has, open the GTK inspector with the command ignis inspector.
The main reason for using Ignis is GTK 4 (for libadwaita). For a more detailed comparison, see this issue from the Ignis repository.
GitHub Copilot is used for the shell to: simplify tasks, assist in development/explanations, code review, documentation translation (across the repository), etc.
No vibe-coding whatsoever!
Open control center in the shell, you will see three buttons. To take action, press two times on a button, with the small delay. This is done to protect against accidental clicks.
Suspend button, depend on
systemctl. If you are not using systemd, then edit the command in shell settings.
Run Ignis from the console to view the log: ignis init,
after closing Ignis with the command ignis quit (even if it's not displayed).
Then check the output. An error should be displayed. Report the error by opening an issue. Make sure the error is not related to your changes or environment.
Ignis does not exit on its own. If a Python error occurs, Ignis continues to run and automatically restarts when code changes.
Check the Ignis log as described above.
Based on my experience, it's most likely a Segmentation fault.
It occurs on the C side of libraries used by Ignis (Gtk, NM).
In this case, open an issue as shown above.
Simply install the gnome-bluetooth-3 library from the dependencies above.
Install one of the SASS compilers: dart-sass or grass-sass.