Join the discussion
Write your take first — we'll ask for email only when you're ready to publish.
- Hacker News
- Is there something similar for wifi?
- nmtui? it should be installed already if you have network managerby nekiwo
- by pythops
- I am using this every day, such a useful little tool!by snowstormsun
- Used this the other day when for whatever reason Gnome's built-in bluetooth GUI refused to connect to my headphones. Very nice and easy to use.by nevon
- Highly recommend on macos blueutil and aliasing these with your bluetooth devices IDs to bluetooth on+connect device in one command, bluetooth off. It’s more user friendly than any GUI workflow for repeat devices.by user3939382
- Ive built a TUI which utilizes blueutil [0].
It displays inline and supports j/k navigation. Also wrote a short post about its creation [1].
by Zaloog - I vibe coded(mostly) a bt tui for linux as well. You can check it out here https://github.com/alator21/bt-tui.by alator21
- I wonder why omarchy isn't using this yet.by kachapopopow
- omarchy is a shitshow. Please stay away from it. It's a disaster waiting to happen. It's the most bloated install script I have ever seen. DHH is fucking liar and taking up all the credit for himself by ripping off of bunch of well established open source projectsby udev4096
- I found out: it used to be a lot less intuitiveby kachapopopow
- Same. First thing I did was replace the action of the bluetooth icon in Waybar with bluetui.by SwiftyBug
- Much better than bluetuith which has weirdly bad UI/keybindings.by hombre_fatal
- This looks very nice!
Is there a non-interactive CLI as well?
I currently use `bluetoothctl` with a wrapper script and `expect` so that I can quickly fire off `bluetooth.sh <device name substring>`, and it does the tedium of ensuring that the connection is established regardless of my audio settings. I do still use `bluetoothctl` for manually scanning and pairing, but once a device is paired, I don't run it directly. So it would be great if I could solve both things with the same tool.
I would only really need an interactive TUI for scanning and pairing. Maybe not even for that. E.g. if I run `bt pair <some device name>` then the tool could scan available devices and try to pair with one that fuzzily matches the provided name. And `scan` could work in a similar way. E.g. `bt scan --duration 10s` could show found devices within a specific time.
I'm not a big fan of interactive UIs if the same can be accomplished non-interactively. This allows the tool to be scripted, and can be much quicker to do what you want.
Does such a tool exist for Bluetooth? I'm tempted to whip something up myself, though I really have enough side projects as it is...
by imiric - Nice work. Ive also build a TUI over blueutil (https://github.com/toy/blueutil) for MacOs:
https://github.com/Zaloog/blueutil-tui
Its written in python using the textual framework and displays the connections inline in your Terminal.
by Zaloog - I don't usually comment on these things. But this is phenomenal. I really like that the person that did this thought about a simple space for connect and enter for disconnect. I use rofi based tool whenever I don't feel like using my mouse and frequently disconnect because I toggled something that was already connecting.
The same happens when connecting or disconnecting from VPN using the nm applet. This is a simple but extremely useful way of separating two states.
by rjzzleep - Bluetui author here Happy to hear that :)by pythops
- Of all the Rust stuff that I've seen on HN, this is the first one that makes me go "maybe I should learn Rust". Not for the performance aspect, but because it seems so neat to be able to compile to a binary. I went to the releases page, I downloaded bluetui-x86_64-linux-gnu, and it works.by ekjhgkejhgk
- You can do it with any language that supports static linking, like C, C++, Go etc. You can also do it with things like Pyinstaller for Python. It's not that big of a deal tbh.
- There's also a program in Go which does almost the same: https://github.com/bluetuith-org/bluetuithby WhyNotHugo
- Why not C, C++, Go or any other compiled language? What made you want ot learn rust?by jimangel2001
- From your comment, I'm assuming you're mostly familiar with interpreted languages. Chances are that you know JS/TS. If that's the case, I suggest that you give Go a go. The learning curve is way softer than Rust's and it's not too uncomfortable to someone who already knows TypeScript. And the advantage of Go over Rust is that the compile time is much, much shorter.by SwiftyBug
- What a coincidence, I just discovered this tool yesterday. It made me really happy how a tool so simple makes such a huge difference in terms of how smooth it is to solve a problem, compared eg with using bluetoothctl.
It also occurred to me that there's a real value to tuis vs guis which is that since they're simpler to build with the same developer effort you can build more tools. I remember the dwarf fortress guys saying this in their interview, that they had at some point a similar game to DF but in 3d, but at some point they realized that by not wasting effort building the graphics part of the game they saved time to focus on what mattered.
If I have one tiny criticism about bluetui is the annoying fonts. I understand what they're trying to do: with more glyphs you can increase the density of information. But the thing is it's not really necessary in this case. Like someone else commented, there's plenty of white space. I know to some people it feels like eye candy, but to me the emojis sprinkled in the text are an eye sore.
by bfkwlfkjf - bluetui author here.
> It made me really happy how a tool so simple makes such a huge difference in terms of how smooth it is to solve a problem,
Happy to hear that :)
> if I have one tiny criticism about bluetui is the annoying fonts
You suggest to get rid of the icons ? what if they can be disabled in the config, will that fix the issue for you ?
> there's plenty of white space You can set the window width from the config file (width = positive integer) if you don't want the TUI to be responsive.
by pythops