Setu (सेतु) is Sanskrit for "bridge": the bridge between your laptop and your Bluetooth devices.
setu is bluetooth for Vyom: one keyboard-driven panel that opens instantly, with live data, a preview and a key for everything. It runs on any compositor with the layer-shell protocol (sway, Hyprland, river, niri, Wayfire, labwc…). In Vayu, the desktop it was built for, it replaces bluetooth-picker.py.
#Features
- Your devices, connected first, each with its battery level and the right icon (headphones, mouse, keyboard, phone…).
- Discovers nearby devices while the panel is open; nameless beacons are left out.
Enterconnects or disconnects; a nearby device pairs, trusts and connects in one go.- Remove (unpair), and a Bluetooth on/off switch.
- Keyboard first: every action has a key, shown in the footer; the mouse works too.
- Never freezes the panel: slow commands run in the background.
#Install
#Requirements
- Vyom 0.2 or newer (Python 3.11+, PyGObject, GTK 4, gtk4-layer-shell, a Nerd Font)
bluetoothctl
#Install
git clone https://github.com/Theyashsawarkar/setu ~/.local/share/vyom/plugins/setu
vyom reload # pick it up (or log out and in)
vyom setu # open it; run it again to close
Give it a key in your compositor, e.g. sway:
bindsym $mod+<key> exec vyom setu
#Update and uninstall
git -C ~/.local/share/vyom/plugins/setu pull && vyom reload # update
rm -rf ~/.local/share/vyom/plugins/setu && vyom reload # uninstall
#Usage
Open it with vyom setu (or your key). Type to search; the footer always shows the keys for what's selected.
| Key | Action |
|---|---|
Enter | Connect or disconnect the selected device (pairs a new one) |
Ctrl+P | Pair and trust the selected device |
Ctrl+Backspace | Remove (unpair) the selected device |
Ctrl+B | Turn Bluetooth on or off |
Esc | Close the panel |
Every Vyom panel also has Up/Down (or Ctrl+K/Ctrl+J) to move, Page Up/Page Down to jump and Tab to switch to the next tool.
#Troubleshooting
- Nothing opens.
vyom listshows every installed tool, and why one is skipped (a missing requirement, or a Vyom that's too old). - It opened, then something failed. Look for a
Tracebackin~/.local/state/vyom/daemon.log, and open an issue with it. - No blur or rounded corners. That's the compositor: on SwayFX, add
layer_effects "vyom" { blur enable; corner_radius 20; shadows enable }.
#The Vyom family
Each tool is its own repository, so you install only the ones you want:
| Tool | What it does | |
|---|---|---|
| dvara | द्वार, gateway | The app launcher |
| ganit | गणित, mathematics | The calculator and converter |
| smriti | स्मृति, memory | Clipboard history |
| bhava | भाव, feeling, emotion | The emoji picker |
| tarang | तरंग, wave | Wi‑Fi and the hotspot |
| setu (this one) | सेतु, bridge | Bluetooth |
| doot | दूत, messenger | Your phone, through KDE Connect |
| patra | पात्र, vessel | Docker containers |
| suchana | सूचना, notice | Notifications |
| raga | राग, melody | YouTube music and video |
| mudra | मुद्रा, gesture | Keybinding search |
| urja | ऊर्जा, energy | The battery at a glance |
| vishram | विश्राम, rest | The power menu |
| kendra | केन्द्र, centre | Quick settings |
#Contributing
Bug reports, ideas and pull requests are welcome: see CONTRIBUTING.md for the development setup and the few rules every tool follows, and CHANGELOG.md for what changed in each release. Please report security issues privately (SECURITY.md).
#License
MIT.