LMMS / LMMS/lmms

Implement directory watching / auto-refresh for file browser

Open
#2,156 7 comments 0 reactions 0 assignees View on GitHub
enhancement good first issue
Dominant language
C++
Stars
10.4k
Forks
1.3k
Avg merge
2d 13h
Merged PRs (30d)
7

Description

Under linux, there exists a tool called [inotify](https://en.wikipedia.org/wiki/Inotify) which allows an application to watch a directory and be notified whenever something about it changes (new file added/deleted, existing file modified, etc).

A natural way to use such a tool is to monitor all the open folders in the file browser and update the UI in real-time as the folders are modified, saving the user from having to manually refresh the directory view, or forgetting to.

inotify is linux only, but a quick search reveals these equivalent cross-platform tools (though I know little of their reputation/usability):
- [simplefilewatcher](https://code.google.com/p/simplefilewatcher/) (Win/Mac/Linux, poll-based, MIT license)
- [libfswatch](https://github.com/emcrisostomo/fswatch) (Win/Mac/Linux/FreeBSD, callback-based, GPLv3 license)

The latter option looks to be better all-around (more actively developed, doesn't require calling "update()" on a regular basis, and it supports slightly more backends), except for the less-permissive license, but LMMS is licensed under the GPL anyway ( :-1: ) so that's pretty much moot.

Contributor guide

No contributing guide indexed for this repository

Research direction

No files or tests are named. Start by locating the file browser and its existing manual refresh path, then research the cross-platform watcher options mentioned in the issue. Done means open folders update in real time when files are added, removed, or modified across the supported platforms.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.