Skip to content

kianblakley/bomb-shell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

icon bomb-shell icon

Warning

This project is currently in Alpha. If you encounter any bugs please open a GitHub issue.

icon Gallery:

Background Selector
Background Selector
App Drawer
App Drawer
Control Center
Control Center
Flyouts
Flyouts

icon Installation:

1. Install the following dependencies for your distribution:

Note

You only need to complete steps 1. and 2. from fabric's installation guide. Fabric's python package is already included in this project's requirements.txt.

Dependency Used For Installation Guide
niri Window manager niri
fabric GUI toolkit fabric
awww Wallpaper daemon awww

Important

The following steps assume you are in an active niri session.

2. Clone and navigate to the repo:

git clone https://github.com/kianblakley/bomb-shell.git
cd bomb-shell

3. Create a venv and install python dependencies:

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

4. Add the following keybindings to your niri config.kdl:

Tip

Replace ~/bomb-shell with the location at which you cloned this repo.

Mod+D {spawn-sh "~/bomb-shell/venv/bin/python -m fabric execute bombshell \"app.app_drawer.toggle()\""; }
Mod+B {spawn-sh "~/bomb-shell/venv/bin/python -m fabric execute bombshell \"app.bg_selector.toggle()\""; }
Mod+E {spawn-sh "~/bomb-shell/venv/bin/python -m fabric execute bombshell \"app.control_center.toggle()\""; }

5. Add the following layer rules to your niri config.kdl:

layer-rule {
    match namespace="^awww-daemonoverview$"
    place-within-backdrop true
}

// Optional if you wish to enable blur for the shell.
layer-rule {
    match namespace="^fabric$"
    background-effect {
        blur true
        xray false
    }
}

6. Start the wallpaper daemon for the workspaces and overview:

awww-daemon -n workspaces
awww-daemon -n overview

7. Start the shell:

python main.py

icon Autostart:

The simplest method is to add the following lines to your niri config.kdl:

Tip

Replace ~/bomb-shell with the location at which you cloned this repo.

spawn-sh-at-startup "awww-daemon -n workspaces"
spawn-sh-at-startup "awww-daemon -n overview"
spawn-sh-at-startup "~/bomb-shell/venv/bin/python main.py"

Alternatively, if you start niri as a sytemd unit with niri-session or equivalent (recommended, see here for more details) follow these steps:

1. Create a systemd user configuration folder if it doesn't exist already:

mkdir -p ~/.config/systemd/user

2. Adjust and copy the provided .service files to the systemd config folder:

Tip

Replace %h/bomb-shell with the location at which you cloned this repo in bombshell.service.
Replace /usr/bin/awww-daemon with the path to your awww-daemon binary in awww@.service.

cp ~/bomb-shell/systemd/* ~/.config/systemd/user

3. Link the services to niri:

systemctl --user add-wants niri.service bombshell.service
systemctl --user add-wants niri.service awww@workspaces.service
systemctl --user add-wants niri.service awww@overview.service

The shell can now be restarted at anytime with:

systemctl --user restart bombshell.service

icon Configuration:

The config.json file in the root of the project allows for limited configuration:

Key Default Value Function
"wallpapers_path" "~/Pictures/wallpapers/" Set the folder from which the background selector reads wallpapers
"profile_picture" "./assets/penguin.jpg" Set the path to the user's picture displayed in the control center
"transparency" true Allows the user to switch between the default opaque and transparent styles

The shell inherits its icon theme and font from GTK settings, which can be changed by running:

gsettings set org.gnome.desktop.interface icon-theme "Your icon theme"
gsettings set org.gnome.desktop.interface font-name "Your font name"

Note

The icon theme shown in the demo is Papirus, and the font is Jet Brains Mono Nerd Font.
Additionally, the wallpapers shown in the demo can be found in the wallpapers folder.

icon Acknowledgements:

About

A python shell for niri.

Resources

Stars

Watchers

Forks

Contributors