Skip to content

Commit

Permalink
Update README and CONTRIBUTING
Browse files Browse the repository at this point in the history
  • Loading branch information
dandels committed Dec 19, 2024
1 parent 4116677 commit 53730c8
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 25 deletions.
48 changes: 25 additions & 23 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,57 +10,59 @@ I'm open to ideas, feedback, and kind words.

### General
- [x] Contextual keybinds
- [ ] Overlayfs support.
- [ ] Some method to mount/umount the overlayfs. This could be as simple as
a hotkey, or could be handled by an external program based on `load_order.txt`.
- [ ] Decide between regular and/or fuse overlayfs
- [ ] In-app mod search, display and downloading (downloads for premium users only)?
- [ ] Automatically sort table items
- [ ] Manually sort table items
- [ ] Remember table order.
- [x] Remember order of installed mods (can currently only be sorted in a text editor).
- The same order will be used by the overlayfs
- [ ] Color configuration?
- [ ] Implement Home, End and Page Up/Down keys.
- [ ] Consider which columns need showing, and perhaps add a way to configure what is shown.
- The current UI is designed for small screens.

### File updates
- [x] Important: use the API to query mods that have been updated in the past 1 month, combined with a timestamp for last update check
- Freezes UI, Needs threading a bit earlier in the code
- [x] The displayed columns are arbitrary and not so relevant
- [x] Important: use the API to query mods that have been updated in the past 1
month, combined with a timestamp for last update check
- [ ] Freezes UI during updates (does it still?). Needs threading a bit earlier in the code
- [x] Show details of currently selected file in the UI. The border of the UI block can be rendered on.
- [ ] Permanently ignore updates (trivial to implement with a new enum variant)
- [ ] Show archive connected to mod and vice versa
- [x] Show archive connected to mod and vice versa
- [ ] Delete metadata if file is no longer tracked
- [x] The update lists can be quite long (13k lines in one case) and shouldn't be loaded to memory all the time.
- [x] Needs compression on disk
- Fixed. Unnecessary data is no longer kept.
- Fixed. Unnecessary data is no longer stored at all.

### Archives
- [x] Extraction using libarchive
- [x] Popup dialog that asks for directory name
- [x] Configurable extract location
- [ ] Confirmation dialog (for overwriting when extracting and file deletion).
- [ ] Show which mod a file belongs to
- [ ] Import archives to dmodman using md5search.
- [x] Show which mod a file belongs to
- [ ] Import archives to dmodman using the md5search API.
- [ ] Fomod installer support
- [ ] Integrate into the tracked mods/updating UI
- [ ] Create metadata files into extracted directories (high prio)
- [x] Create metadata files into extracted directories (high prio)
- [ ] Allow extracting directly into the game data dir. This is a destructive operation and not allowed by default.

### Downloads
- [ ] Daemon that (un)mounts the overlayfs automatically
- [ ] Delete cached download links when no longer valid/needed
- [ ] Query download urls without visiting the Nexus (Premium users only).

### Cache
- [x] Compression (zstd?) for the cache, easy to implement
- [ ] A lot of stuff is needlessly kept around
- Prune old data from update lists when downloading them
- [x] Only a fraction of the fields of FileDetails are ever read
- [ ] Some unneeded data is still kept around needlessly
- [x] Prune old data from update lists when downloading them
- [x] Avoid serializing unnecessary fields in FileDetails

### Log
- [ ] Needs line wrapping. Depends on a WIP issue in the TUI library.

### Command line interface
- [x] Basic support for running in the background as a downloader. Can't run at the same time as the TUI,
since they would listen to the same socket.
- [x] Basic support for running in the background as a downloader.
- [ ] Can't run at the same time as the TUI, since they would listen to the same socket. Fixing this would
probably require a client/server architecture
- [ ] Set settings/profile from the CLI (the config uses the builder pattern so this is easy to implement)
- [ ] Help text (generated by clap?)

### Other things
- [ ] Overlayfs support? This is needed by complex mod setups where files can overwrite each other.
- [ ] Requires a way to reorder UI items (or implement as a text file with rows for directory order).
- [ ] Decide between regular and/or fuse overlayfs
- [ ] In-app mod search, display and downloading (downloads for premium users only)?
- [ ] Help text (generated by a CLI-library?)
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
dmodman is a Linux-native TUI mod manager for [Nexus Mods](https://www.nexusmods.com/), written in Rust.
It functions as a handler for the nxm:// protocol, removing the need for manual downloads.

The readme is slightly ahead of the latest release. The brave and impatient can build from git.

![The TUI with a list of mod files, a completed download, some files that could be updated, and some
messages. On the top is a bar with keybindings.](/screenshot.png)

Expand Down

0 comments on commit 53730c8

Please sign in to comment.