3
18
Fork
You've already forked LibreDJ
6

[Ideas] Improve LibreDJ accessibility #159

Open
opened 2025年12月19日 23:57:04 +01:00 by jeanne-paulette-sartresse · 1 comment

Please tell me what do you think

For testing users

To allow for easier testing, i'd like to add features such as :

  • Generic keyboard layouts, easily selectable
  • A documentation for user, how to integrate libreDJ in a complete setup (how to connect pipewire, equis, libredj)
  • Pre-compiled release package (flatpak, dnf, apt...)
  • Ability to handle config without using CLI (In GUI or Files)

For Devs

To allow for easier collaboration betwen devs, i'd like :

  • Minimal CI-CD to make dev collaboration more fluid & reliable
  • Coding guidelines
  • Fix warnings
  • Better code & architecture documentation (doxygen ? wiki ?)
Please tell me what do you think ## For testing users To allow for easier testing, i'd like to add features such as : - [ ] Generic keyboard layouts, easily selectable - [ ] A documentation for user, how to integrate libreDJ in a complete setup (how to connect pipewire, equis, libredj) - [ ] Pre-compiled release package (flatpak, dnf, apt...) - [ ] Ability to handle config without using CLI (In GUI or Files) ## For Devs To allow for easier collaboration betwen devs, i'd like : - [ ] Minimal CI-CD to make dev collaboration more fluid & reliable - [x] Coding guidelines - [x] Fix warnings - [x] Better code & architecture documentation (doxygen ? wiki ?)

For testing users

Generic keyboard layouts, easily selectable

a) I think adding keyboard bindings for other layouts is good, but can also happen as soon as people drop by
b) Easily selectable could be a good QoL improvement on first start. Maybe something like a setup wizard. But also would put ressources more onto improving jogwheel/waveforms/cadja integration. The user base i'm targetting right now is advanced users that are fine with editing config files until the core features are stableish.

Why targetting advanced users for now?

  1. I want to focus our limited resources on the core features for now. Once they are stable we can start looking into other parts too but for this we need more developers. To get more developers on board i want to appeal to them. So creating good code base that is fun to hack on. Advanced users are fine with using env variables or config files for setting things up or using cadja/other tools to work around parts that libredj doesn't cover yet
  2. LibreDJ has no internal mixing and is linux/jack only, so we anyways focus a bit on advanced djs. Routing through Jack/pipewire is a must for our software. For beginner/less techy people there's also mixxx.
  3. Also i'm still not super settled on egui, it feels like a fine choice for now but probably it makes sense to switch to slint or gpui at some point. Therefore i also want to focus on the corecore features until the dust settles a bit more in rust gui land.
  4. The current backend architecture might need some rethinking if we want to have good mouse support as the whole state of what's focused etc is held in the backend

A documentation for user, how to integrate libreDJ in a complete setup (how to connect pipewire, equis, libredj)

I like this. Would be good.

Pre-compiled release package (flatpak, dnf, apt...)

I think having a flatpak is enough for now. Should be portable enough. I myself don't want to maintain packages for various distros, flatpak will probably be a good amount of work already.

Ability to handle config without using CLI (In GUI or Files)

Low priority for now imo. See user base target.

For Devs

Minimal CI-CD to make dev collaboration more fluid & reliable

Would warmly welcome contributions on this. I think using nix would be good to reuse the flake.nix file for dev environments.

Coding guidelines

We have them already, basically what clippy says. Currently there are still some violations, but mainly in test code.

Fix warnings

I think most of them are fixed now

Better code & architecture documentation (doxygen ? wiki ?)

I would like to keep all documentation in the cargo docs. This way they are easily gittable. We can look into having typst/mermaid integration for graphs/math notation and stuff.

# For testing users > Generic keyboard layouts, easily selectable a) I think adding keyboard bindings for other layouts is good, but can also happen as soon as people drop by b) Easily selectable could be a good QoL improvement on first start. Maybe something like a setup wizard. But also would put ressources more onto improving jogwheel/waveforms/cadja integration. The user base i'm targetting right now is advanced users that are fine with editing config files until the core features are stableish. Why targetting advanced users for now? 1) I want to focus our limited resources on the core features for now. Once they are stable we can start looking into other parts too but for this we need more developers. To get more developers on board i want to appeal to them. So creating good code base that is fun to hack on. Advanced users are fine with using env variables or config files for setting things up or using cadja/other tools to work around parts that libredj doesn't cover yet 2) LibreDJ has no internal mixing and is linux/jack only, so we anyways focus a bit on advanced djs. Routing through Jack/pipewire is a must for our software. For beginner/less techy people there's also mixxx. 3) Also i'm still not super settled on egui, it feels like a fine choice for now but probably it makes sense to switch to slint or gpui at some point. Therefore i also want to focus on the corecore features until the dust settles a bit more in rust gui land. 4) The current backend architecture might need some rethinking if we want to have good mouse support as the whole state of what's focused etc is held in the backend > A documentation for user, how to integrate libreDJ in a complete setup (how to connect pipewire, equis, libredj) I like this. Would be good. > Pre-compiled release package (flatpak, dnf, apt...) I think having a flatpak is enough for now. Should be portable enough. I myself don't want to maintain packages for various distros, flatpak will probably be a good amount of work already. > Ability to handle config without using CLI (In GUI or Files) Low priority for now imo. See user base target. # For Devs > Minimal CI-CD to make dev collaboration more fluid & reliable Would warmly welcome contributions on this. I think using nix would be good to reuse the flake.nix file for dev environments. > Coding guidelines We have them already, basically what clippy says. Currently there are still some violations, but mainly in test code. > Fix warnings I think most of them are fixed now > Better code & architecture documentation (doxygen ? wiki ?) I would like to keep all documentation in the cargo docs. This way they are easily gittable. We can look into having typst/mermaid integration for graphs/math notation and stuff.
Sign in to join this conversation.
No Branch/Tag specified
main
overhaul_libplayer_process_slice
fix_pitch_riding
fixup_seek
feat_better_seek
fix_requested_bigger_frame
fix_player_unreachable
feat_better_vinyl_emulation
rewrite_jogwheel
fix_220
feat_denonsc2000_improvements
fix_self_heal_on_library_worker_crash
fix_multi_deck_relative_tempo_drift
feat_bpm_leader
fix_lofty_crash
update_lofty
better_libplayer_tests
feat_jump_to_next_prev_section
fix_loop_spinback
cleanup_libplayer
fix_alloc_in_denonsc2000
update_egui
cleanup_sample_loading_in_backend
refactor_backend
fix_keybindings_en_us_pitch
fix_library_thread_dying
fix_selector
feat_edit_cover
feat_fps_counter
fix_waveform
fix_close_window
feat_deck_type
feat_ci
v0.6
feat_binding_env
fix_sample_loader
fix_use_no_denormals
fix_formatting
feat_gui_sections
fix_popup_disable
fix_resolve_home
string_cmd
feat_new_playlist
fix_waveform_rendering_pixels
rebranding
fix_small_window_crash
feat_visualize_loop
feat_better_waveform_rendering
fix_mark_played
feat_cover_images
fix_resample_waveform
fix_denon_sc2000_clone_deck
fix_played_marker
feat_mark_played
fix_loop_alignment
resampler_zone
fix_panic_in_get_sample_or_zero
fix_key_handling
feat_better_waveforms
fix_gui_key_event
improve_error_handling
fix_nix_build
remove_tui
improve_edit_metadata
refactor_multiplex_rtrb
feat_gui_edit_metadata
gui_deck_indicator_reposition
fix_keybindings_en_us
fix_gui_deck_overgrowing
gui_deck_indicator
fix_gui_waveform_overview
fix_gui_library
improve_egui_popups2
wgpu_storage_buffer
refactor_units
v0.8.0
v0.7.2
v0.7.1
v0.7.0
v0.6.1
v0.6.0
v0.5.3
v0.5.2
v0.5.1
v0.5.0
v0.4.0
v0.3.0
v0.2.0
v0.1.0
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
OpenDJLab/LibreDJ#159
Reference in a new issue
OpenDJLab/LibreDJ
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?