Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GTK/Broadway Contextual Enhancements (aka Broadway Love) #3219

Open
sirjmann92 opened this issue Dec 13, 2024 · 5 comments
Open

GTK/Broadway Contextual Enhancements (aka Broadway Love) #3219

sirjmann92 opened this issue Dec 13, 2024 · 5 comments

Comments

@sirjmann92
Copy link

sirjmann92 commented Dec 13, 2024

When using the Nicotine application in a browser by leveraging the Broadway back end of GTK, there are a number of features that either do not function or are not as useful as using it as a native desktop application. I would like to see these features removed or modified dynamically based on how the application is rendered. This approach is to save the complication of requiring a fork or different version of the application so a single code base can be maintained to handle both scenarios (standalone GTK desktop application and Broadway rendered web application). Removing unnecessary or non-functioning features will provide clarity to users so there are no assumptions of which features should work based solely on their existence.

  1. Native port check - This is covered by Replace opening the port check with an internal procedure #3205
  2. Remove the URL Handlers menu section - In order to limit the size of container images, external applications should not be included. It is generally not recommended to have more than one service per container.
  3. Web links within the application should be hardcoded to their intended destination URL so the host machine can handle them with their default browser. Currently the application throws errors when using N via Broadway (no known URI provider available) for links and execution/opening of files. Examples include the "Website" link in Help -> About Nicotine , the "Report a Bug" help menu item, the "Improve Translations" help menu item, the "Format codes" link in Preferences -> Chat, the "Format codes" link in Preferences -> Logging, Menu -> Soulseek Privileges
  4. Remove "Double click action for downloads" from the "Downloads" menu section - See 2 and 3 above
  5. Remove "Double click action for uploads" from the "Uploads" menu section - See 2 and 3 above
  6. Remove "Now Playing" menu section
  7. Delist incompatible plugins - Due to 2 and 3 above, certain plugins do not work and should not be listed in the Plugins section: examples: MPRIS Now Playing Sender, Now Playing Search
  8. Every MANUAL list change (clear history, clear downloads/uploads, remove files, ban/unban users, etc.) should be written saved immediately. I believe today they are cached and saved on a timer of 3 minutes. This causes the lists to repopulate when a container is restarted after a list or list item is changed and then the container is stopped before the list files are saved.
  9. Create a native "log viewer" for "View Debug Logs" and "View Transfer Logs" within the application to allow ALL users (both Broadway and native) to view logs without swiveling to an external application.
  10. The "Add Plugins" button on the Plugins menu section should open the same file selection dialog as Downloads -> Finished/Incomplete/Received - It currently displays the same "No known URI provider" error. I've created a workaround by mapping the default plugins directory in my Broadway images but this should be available directly in the UI.
@sirjmann92 sirjmann92 changed the title GTK/Broadway Contextual Enhancements GTK/Broadway Contextual Enhancements (aka Broadway Love) Dec 13, 2024
@vctls
Copy link

vctls commented Dec 14, 2024

Huh, this was just opened yesterday? Funny coincidence. I just managed to get the app running on Broadway 2.0. (For some reason, Broadway 1 or whatever version ships with GTK3 just refused to run without an actual display, which isn't very helpful…)

Most features seem to work. Connections and shares are OK. No issues with the main UI, at first glance.
Things get a little bit finicky with the menus and modals. Sometimes they don't register clicks.
There are other things that should probably be disabled. Basically, anything that tries to open another program, like "Open file", "Open in file manager", etc.
But overall, I'm pleasantly surprised by how well it works.
I hope maintaining compatibility with Broadway is not too costly. It's a nice feature to have, for lack of an actual API.

@sirjmann92
Copy link
Author

@vctls - If you don't want to create/maintain your own, you're welcome to use the images I maintain: https://github.com/sirjmann92/nicotineplus-proper

@vctls
Copy link

vctls commented Dec 14, 2024

Ha! I was probably going to end up creating one, you're saving me some trouble. Thanks!

@slook
Copy link
Member

slook commented Dec 15, 2024

  1. Remove "Double click action for downloads" from the "Downloads" menu section - See 2 and 3 above
  2. Remove "Double click action for uploads" from the "Uploads" menu section - See 2 and 3 above

Some items in those lists are still relevant, such as Abort (4), Remove (5), Resume/Retry (6) or Browse (7), so it's only necessary to remove the items which don't work (1 and 2), and set something other than 2 in your config-default file.

@sirjmann92
Copy link
Author

Thanks @slook - I agree. I didn't look that closely at them, TBH, and assumed they were all "execute with an external application" related. I adjusted the config-default of all of my images to #6 for both upload and download and I'm uploading new images as we speak. This won't impact users that have existing configs, but new users will have #6 as their default when they start the container for the first time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

3 participants