Skip Navigation
InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)DA
Posts
36
Comments
10
Joined
2 yr. ago
Free and Open Source Software @beehaw.org
darkhz @lemm.ee

bluetuith-org/bluerestd: A cross-platform Bluetooth daemon with a REST API interface.

This is part of the cross-platform work for bluetuith, and is essentially a demo of the bluetooth-classic library.

This daemon provides a REST API interface to control Bluetooth Classic functions.

Features are:

  • Pairing (with authentication)
  • Connection (automatic and manual profile based connection)
  • Object Push (Send and receive files)

And currently only on Linux, it additionally supports:

  • Bluetooth network tethering (PANU/DUN)
  • Media playback control (AVRCP)

It also provides an interactive API viewer (courtesy of Scalar Docs) via the "/docs" endpoint. Also, it provides an openapi command to output the entire OpenAPI specification of the REST API.

This is currently in preview (i.e. alpha).

Any feedback is appreciated.

Opensource @programming.dev
darkhz @lemm.ee

A cross-platform Bluetooth daemon with a REST API interface.

This is part of the cross-platform work for bluetuith, and is essentially a demo of the bluetooth-classic library.

This daemon provides a REST API interface to control Bluetooth Classic functions.

Features are:

  • Pairing (with authentication)
  • Connection (automatic and manual profile based connection)
  • Object Push (Send and receive files)

And currently only on Linux, it additionally supports:

  • Bluetooth network tethering (PANU/DUN)
  • Media playback control (AVRCP)

It also provides an interactive API viewer (courtesy of Scalar Docs) via the "/docs" endpoint. Also, it provides an openapi command to output the entire OpenAPI specification of the REST API.

This is currently in preview (i.e. alpha).

Any feedback is appreciated.

Open Source @lemmy.ml
darkhz @lemm.ee

A cross-platform Bluetooth daemon with a REST API interface.

This is part of the cross-platform work for bluetuith, and is essentially a demo of the bluetooth-classic library.

This daemon provides a REST API interface to control Bluetooth Classic functions.

Features are:

  • Pairing (with authentication)
  • Connection (automatic and manual profile based connection)
  • Object Push (Send and receive files)

And currently only on Linux, it additionally supports:

  • Bluetooth network tethering (PANU/DUN)
  • Media playback control (AVRCP)

It also provides an interactive API viewer (courtesy of Scalar Docs) via the "/docs" endpoint. Also, it provides an openapi command to output the entire OpenAPI specification of the REST API.

This is currently in preview (i.e. alpha).

Any feedback is appreciated.

commandline @programming.dev
darkhz @lemm.ee

A cross-platform Bluetooth daemon with a REST API interface.

This is part of the cross-platform work for bluetuith, and is essentially a demo of the bluetooth-classic library.

This daemon provides a REST API interface to control Bluetooth Classic functions.

Features are:

  • Pairing (with authentication)
  • Connection (automatic and manual profile based connection)
  • Object Push (Send and receive files)

And currently only on Linux, it additionally supports:

  • Bluetooth network tethering (PANU/DUN)
  • Media playback control (AVRCP)

It also provides an interactive API viewer (courtesy of Scalar Docs) via the "/docs" endpoint. Also, it provides an openapi command to output the entire OpenAPI specification of the REST API.

This is currently in preview (i.e. alpha).

Any feedback is appreciated.

Open Source @lemmy.ml
darkhz @lemm.ee

bluetuith-shim-windows: A shim and command-line tool to use Bluetooth Classic features on Windows.

Hello Lemmy,

This is an extension of the bluetuith TUI Bluetooth Manager project, which was initially developed for Linux, and is now being ported to Windows as well. This will allow the TUI to manage Bluetooth on Windows. Note that this is just a shim, the TUI will be ported to adapt with this shim later.

This tool offers a simple command-line interface and a socket-based interface (as an interprocess communication layer) to control Bluetooth Classic based functions, like:

  • Getting adapter information, performing device discovery, setting power states
  • Getting device information, pairing/unpairing a device
  • Connection to a device using various Bluetooth profiles
    • The supported profiles are A2DP, MAP, PBAP and OPP
    • Each connectable profile appears as a subcommand of the connect command
    • Every subcommand has multiple functions. View the documentation for more information.

This is currently alpha stage, so do expect bugs. Any bugs can be reported in the issue tracker.

commandline @programming.dev
darkhz @lemm.ee

bluetuith-shim-windows: A shim and command-line tool to use Bluetooth Classic features on Windows.

Hello Lemmy,

This is an extension of the bluetuith TUI Bluetooth Manager project, which was initially developed for Linux, and is now being ported to Windows as well. This will allow the TUI to manage Bluetooth on Windows. Note that this is just a shim, the TUI will be ported to adapt with this shim later.

This tool offers a simple command-line interface and a socket-based interface (as an interprocess communication layer) to control Bluetooth Classic based functions, like:

  • Getting adapter information, performing device discovery, setting power states
  • Getting device information, pairing/unpairing a device
  • Connection to a device using various Bluetooth profiles
    • The supported profiles are A2DP, MAP, PBAP and OPP
    • Each connectable profile appears as a subcommand of the connect command
    • Every subcommand has multiple functions. View the documentation for more information.

This is currently alpha stage, so do expect bugs. Any bugs can be reported in the issue tracker.

  • It's not about the size of the stacks IMO, the Bluetooth stack is notoriously difficult to interact with since the implementation varies wildly across different platforms and maybe architectures, and communicating with those different stacks is difficult, in a way. And within each stack you may find many features that are sparsely or not documented at all.

    Just saying, but if it were easy, cross-platform libraries would have been developed long ago, but to this day most libraries have implementations where some functions are either finicky or not implemented. In no way am I trying to criticize the authors of those libraries, IMO it is a commendable achievement that they have understood the standard and the different stacks and have attempted make it cross-platform friendly and easy-to-use, but that's just the state of Bluetooth these days.

  • I would like to be involved in the development as much as I can, but I cannot work on rust since I have no experience with it, unlike with Go and Java (a little). Also, cross-platform libraries tend to have more limitations and caveats as to what is implemented and usable. But please, do link the rust library here so I can check it out.

    I think platform specific binaries is the way due to more flexibility, although we can debate about that. My objectives are to provide a standard API for any bluetooth client to use, and to retain bluetuith's existing features. If you are willing to contribute to the MacOS part of it, it would be great, and we can have further discussions via DM.

  • Ask Experienced Devs @programming.dev
    darkhz @lemm.ee

    Proposals about developing a cross platform Bluetooth manager/daemon

    cross-posted from: https://lemm.ee/post/33211685

    Hello Lemmy,

    I am the author of bluetuith, an open-source TUI-based bluetooth manager for Linux only. I have been working on this project for over 2 years on and off, and I was wondering about extending support to other platforms as well.

    To begin with, the Bluetooth Classic (BR/EDR) implementation on Linux is fairly standardized (via bluez APIs), but on other platforms, especially windows, Bluetooth APIs are finicky, and tricky to deal with, and also there is no standardized management in general.

    I would like to start creating a centralized Bluetooth server or a daemon for other platforms (natively maybe), mainly Windows and Linux, which can expose relevant APIs so that clients can use them to handle Bluetooth-based operations. I know this is quite an uphill task, but I would like suggestions on how to implement it, or if anyone has a better idea, please do suggest that as well.

    To summarize,

    Open Source @lemmy.ml
    darkhz @lemm.ee

    Proposals about developing a cross platform Bluetooth manager/daemon

    cross-posted from: https://lemm.ee/post/33211685

    Hello Lemmy,

    I am the author of bluetuith, an open-source TUI-based bluetooth manager for Linux only. I have been working on this project for over 2 years on and off, and I was wondering about extending support to other platforms as well.

    To begin with, the Bluetooth Classic (BR/EDR) implementation on Linux is fairly standardized (via bluez APIs), but on other platforms, especially windows, Bluetooth APIs are finicky, and tricky to deal with, and also there is no standardized management in general.

    I would like to start creating a centralized Bluetooth server or a daemon for other platforms (natively maybe), mainly Windows and Linux, which can expose relevant APIs so that clients can use them to handle Bluetooth-based operations. I know this is quite an uphill task, but I would like suggestions on how to implement it, or if anyone has a better idea, please do suggest that as well.

    To summarize,

    Linux @lemmy.ml
    darkhz @lemm.ee

    Proposals about developing a cross platform Bluetooth manager/daemon

    Hello Lemmy,

    I am the author of bluetuith, an open-source TUI-based bluetooth manager for Linux only. I have been working on this project for over 2 years on and off, and I was wondering about extending support to other platforms as well.

    To begin with, the Bluetooth Classic (BR/EDR) implementation on Linux is fairly standardized (via bluez APIs), but on other platforms, especially windows, Bluetooth APIs are finicky, and tricky to deal with, and also there is no standardized management in general.

    I would like to start creating a centralized Bluetooth server or a daemon for other platforms (natively maybe), mainly Windows and Linux, which can expose relevant APIs so that clients can use them to handle Bluetooth-based operations. I know this is quite an uphill task, but I would like suggestions on how to implement it, or if anyone has a better idea, please do suggest that as well.

    To summarize, my current plan is this:

    • Create bluetooth serv
    commandline @programming.dev
    darkhz @lemm.ee

    invidtui - An opensource cross-platform Invidious client v0.4.3 is released

    Hello Lemmy,

    invidtui is a TUI-based Invidious client, which can:

    • Search for and browse videos, playlists and channels
    • Play audio or video from any instance
    • View, open, edit and save m3u8 playlists
    • Download video/audio in any format
    • Authenticate with the preferred instance, and show user feed, playlists and subscriptions

    This release contains the following new features/fixes:


    Embedded Recommendations tab

    Recommendations for the video that is currently being played is now shown in a separate tab within the queue.

    A demo and instructions are posted here


    YouTube timestamps

    Timestamps found within Youtube URIs are now seeked to on playback.

    A demo and instructions are posted here


    Custom seeking

    A separate modal is shown to modify the playback position. Positions can be seeked to relatively/absolutely.

    A demo and instructions are posted [here](https://

    Open Source @lemmy.ml
    darkhz @lemm.ee

    invidtui - An opensource cross-platform Invidious client v0.4.3 is released

    Hello Lemmy,

    invidtui is a TUI-based Invidious client, which can:

    • Search for and browse videos, playlists and channels
    • Play audio or video from any instance
    • View, open, edit and save m3u8 playlists
    • Download video/audio in any format
    • Authenticate with the preferred instance, and show user feed, playlists and subscriptions

    This release contains the following new features/fixes:


    Embedded Recommendations tab

    Recommendations for the video that is currently being played is now shown in a separate tab within the queue.

    A demo and instructions are posted here


    YouTube timestamps

    Timestamps found within Youtube URIs are now seeked to on playback.

    A demo and instructions are posted here


    Custom seeking

    A separate modal is shown to modify the playback position. Positions can be seeked to relatively/absolutely.

    A demo and instructions are posted [here](https://

    Linux @lemmy.ml
    darkhz @lemm.ee

    invidtui - An opensource cross-platform Invidious client v0.4.3 is released

    Hello Lemmy,

    invidtui is a TUI-based Invidious client, which can:

    • Search for and browse videos, playlists and channels
    • Play audio or video from any instance
    • View, open, edit and save m3u8 playlists
    • Download video/audio in any format
    • Authenticate with the preferred instance, and show user feed, playlists and subscriptions

    This release contains the following new features/fixes:


    Embedded Recommendations tab

    Recommendations for the video that is currently being played is now shown in a separate tab within the queue.

    A demo and instructions are posted here


    YouTube timestamps

    Timestamps found within Youtube URIs are now seeked to on playback.

    A demo and instructions are posted here


    Custom seeking

    A separate modal is shown to modify the playback position. Positions can be seeked to relatively/absolutely.

    A demo and instructions are posted [here](https://

    Golang @programming.dev
    darkhz @lemm.ee

    invidtui - An opensource cross-platform Invidious client v0.3.8 is released

    Hello Lemmy,

    invidtui is a TUI-based Invidious client, which can:

    • Search for and browse videos, playlists and channels
    • Play audio or video from any instance
    • View, open, edit and save m3u8 playlists
    • Download video/audio in any format
    • Authenticate with the preferred instance, and show user feed, playlists and subscriptions

    This release contains the following new features/fixes:


    Dynamic theming

    Themes can now be applied from theme files dynamically within the application as well as from command-line and configuration options.

    A demo and instructions are posted here


    Channel 'Releases' tab

    A new 'releases' tab is added to the channel page, to show new content from channel authors.


    Enhanced configuration handling

    Configuration handling is now done in the most cross-platform way as possible.


    I hope you enjoy this release, and any feedback is appreciated.

    commandline @programming.dev
    darkhz @lemm.ee

    invidtui - An opensource cross-platform Invidious client v0.3.8 is released

    Hello Lemmy,

    invidtui is a TUI-based Invidious client, which can:

    • Search for and browse videos, playlists and channels
    • Play audio or video from any instance
    • View, open, edit and save m3u8 playlists
    • Download video/audio in any format
    • Authenticate with the preferred instance, and show user feed, playlists and subscriptions

    This release contains the following new features/fixes:


    Dynamic theming

    Themes can now be applied from theme files dynamically within the application as well as from command-line and configuration options.

    A demo and instructions are posted here


    Channel 'Releases' tab

    A new 'releases' tab is added to the channel page, to show new content from channel authors.


    Enhanced configuration handling

    Configuration handling is now done in the most cross-platform way as possible.


    I hope you enjoy this release, and any feedback is appreciated.

    Open Source @lemmy.ml
    darkhz @lemm.ee

    invidtui - An opensource cross-platform Invidious client v0.3.8 is released

    Hello Lemmy,

    invidtui is a TUI-based Invidious client, which can:

    • Search for and browse videos, playlists and channels
    • Play audio or video from any instance
    • View, open, edit and save m3u8 playlists
    • Download video/audio in any format
    • Authenticate with the preferred instance, and show user feed, playlists and subscriptions

    This release contains the following new features/fixes:


    Dynamic theming

    Themes can now be applied from theme files dynamically within the application as well as from command-line and configuration options.

    A demo and instructions are posted here


    Channel 'Releases' tab

    A new 'releases' tab is added to the channel page, to show new content from channel authors.


    Enhanced configuration handling

    Configuration handling is now done in the most cross-platform way as possible.


    I hope you enjoy this release, and any feedback is appreciated.

    Linux @lemmy.ml
    darkhz @lemm.ee

    invidtui - An opensource cross-platform Invidious client v0.3.8 is released

    Hello Lemmy,

    invidtui is a TUI-based Invidious client, which can:

    • Search for and browse videos, playlists and channels
    • Play audio or video from any instance
    • View, open, edit and save m3u8 playlists
    • Download video/audio in any format
    • Authenticate with the preferred instance, and show user feed, playlists and subscriptions

    This release contains the following new features/fixes:


    Dynamic theming

    Themes can now be applied from theme files dynamically within the application as well as from command-line and configuration options.

    A demo and instructions are posted here


    Channel 'Releases' tab

    A new 'releases' tab is added to the channel page, to show new content from channel authors.


    Enhanced configuration handling

    Configuration handling is now done in the most cross-platform way as possible.


    I hope you enjoy this release, and any feedback is appreciated.

    Golang @programming.dev
    darkhz @lemm.ee

    invidtui - An opensource cross-platform Invidious client v0.3.7 is released

    Hello Lemmy,

    invidtui is a TUI-based Invidious client, which can:

    • Search for and browse videos, playlists and channels
    • Play audio or video from any instance
    • View, open, edit and save m3u8 playlists
    • Download video/audio in any format
    • Authenticate with the preferred instance, and show user feed, playlists and subscriptions

    A new demo video has been uploaded here.

    This release contains the following new features/fixes:


    Redesigned Media Queue

    The queue is now completely managed by invidtui, with MPV being used only for playback. This change resulted in a big reduction in CPU usage, especially when loading large playlists.

    • Shuffle mode is on-demand, with a focus on not playing the same item more than once in a single cycle.
    • Media statuses (fetching/loading/playing) are shown for the currently selected item
    • Dynamic audio/video switching of any item in the queue
    • Media items are fetched from the selected instanc
    Open Source @lemmy.ml
    darkhz @lemm.ee

    invidtui - An opensource cross-platform Invidious client v0.3.7 is released

    Hello Lemmy,

    invidtui is a TUI-based Invidious client, which can:

    • Search for and browse videos, playlists and channels
    • Play audio or video from any instance
    • View, open, edit and save m3u8 playlists
    • Download video/audio in any format
    • Authenticate with the preferred instance, and show user feed, playlists and subscriptions

    A new demo video has been uploaded here.

    This release contains the following new features/fixes:


    Redesigned Media Queue

    The queue is now completely managed by invidtui, with MPV being used only for playback. This change resulted in a big reduction in CPU usage, especially when loading large playlists.

    • Shuffle mode is on-demand, with a focus on not playing the same item more than once in a single cycle.
    • Media statuses (fetching/loading/playing) are shown for the currently selected item
    • Dynamic audio/video switching of any item in the queue
    • Media items are fetched from the selected instanc
    Golang @programming.dev
    darkhz @lemm.ee

    invidtui - An opensource cross-platform Invidious client v0.3.6 is released

    Hello Lemmy,

    invidtui is a TUI-based Invidious client, which can:

    • Search for and browse videos, playlists and channels
    • Play audio or video from any instance
    • View, open, edit and save m3u8 playlists
    • Download video/audio in any format
    • Authenticate with the preferred instance, and show user feed, playlists and subscriptions

    This release contains the following new features/fixes:


    • Playlists are downloadable as well, with progress display in the "Downloads" page. Deleted/private videos are stored separately from the public ones. To use this feature:
      • Select a playlist with the i key, wait for the playlist to load
      • Press Ctrl+S to initialize the download
      • To view the progress of the download, press Y

    • Optimizations to the playlist file loading and queue rendering (reduced CPU usage)
      • Updating the queue only for new/updated items
      • Rate limiting the calls to MPV
      • Cancellable loading of playlist entries
        • Open the queue and press x to cance
    Open Source @lemmy.ml
    darkhz @lemm.ee

    invidtui - An opensource cross-platform Invidious client v0.3.6 is released

    Hello Lemmy,

    invidtui is a TUI-based Invidious client, which can:

    • Search for and browse videos, playlists and channels
    • Play audio or video from any instance
    • View, open, edit and save m3u8 playlists
    • Download video/audio in any format
    • Authenticate with the preferred instance, and show user feed, playlists and subscriptions

    This release contains the following new features/fixes:


    • Playlists are downloadable as well, with progress display in the "Downloads" page. Deleted/private videos are stored separately from the public ones. To use this feature:
      • Select a playlist with the i key, wait for the playlist to load
      • Press Ctrl+S to initialize the download
      • To view the progress of the download, press Y

    • Optimizations to the playlist file loading and queue rendering (reduced CPU usage)
      • Updating the queue only for new/updated items
      • Rate limiting the calls to MPV
      • Cancellable loading of playlist entries
        • Open the queue and press x to cance
  • You have quite an interesting situation here. You could use a good Bluetooth adapter, pair all your devices to it, and maybe use pulseaudio/pipewire (depending on what your system uses) to manage audio inputs/outputs?

  • Ah, I apologize for not documenting the quit key correctly.

    The quit keybinding has been an issue (albeit a very silly one), which could be easily corrected, but somehow escapes my attention during the release phase. I will correct the documentation.

    Do note that since the keybindings are customisable, you can modify the quit behavior to a keybinding of your choice. See the "Configuration" section of the documentation for more details.