diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 26ec077..b545972 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -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?) diff --git a/README.md b/README.md index 8134357..b1b17a5 100644 --- a/README.md +++ b/README.md @@ -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)