Add possibility to edit rclone commands in Settings
Pre-Submission checklist
- [x] There is no existing issue that already asks for this feature.
If no, please add a +1, and maybe a comment if you have more to add. - [x] The feature already exists in rclone (on your PC or in Termux)
- [ ] I am prepared to help make this feature
What version of RCX are you using (About -> App version)?
RCX ver. 1.11.4
What problem are you trying to solve?
I'm currently using RCX as a middle man to stream my music folder in Google Drive to foobar2000 on Android, by using "rclone serve ftp" and connecting foobar2000 to it. I have already been testing this on my PC, and i have found that changing specific commands will speed up streaming process by a ton (mainly --transfers and --vfs-cache), so i would like to add them to the app's rclone serve command.
What should RCX be able to do differently to help this problem?
It would be really great to have in Settings the possibility to read and edit commands for each rclone command within the app (maybe under a "do this at your own risk" message, so unexperienced people won't mess with those settings), so that whoever has a specific command they use on their pc they can easily use it on their phone.
Either that, or adding an "Advanced Settings" option within each sync/serve/clone/etc. option that will show the plain command would also be a nice idea.
Hope the feature isn't too hard to implement, it would really make this app perfect for my needs. Thank you in advance!
Great idea. I was also thinking about this some time ago, but I was unsure as to how specific this would need to be in order to be useful (and how complicated, as a result).
How granular do you need to configure options? Global, by remote name, by command or all of them? I'm asking this because flags are process-global currently, and your proposal would mean much increased memory and CPU usage because we need to spin up a new rclone process for each command invocation.
What if we allow adding custom commands instead of modifying the core command set? E.g. something like this:

Still some complexity, but much less potential for breakage.
The possibility of adding a custom command would be a great alternative for me, and if it allows for a simpler implementation without breaking the app, i'm all for it!
The ability to modify a sync or copy command would be extremely useful.
Actually, is there a way to view the output of the sync and copy commands to see exactly which options are used?
Currently, the commands are defined in Rclone.java. You can see the actually used command lines by enabling rclone logging in the settings, and then retrieve the log file.
Is there a reason why the transfers are set to 1?
A way to increase it would be great too. For small files 1 transfer is too low, I tend to use 14.
@1024mb
Is there a reason why the transfers are set to 1?
I can only speculate about that - it was a deliberate choice by Patryk (the original developer). Maybe it was to limit re-transmission in case of flaky networks, since rclone does not support resuming transfers. Maybe the test device had slow local I/O.
A way to increase it would be great too. For small files 1 transfer is too low, I tend to use 14.
I agree. Could you submit a specific feature request?
@x0b Done, issue created.
@xob @1024mb I think the reason that transfers are set to 1 is that everything else makes parsing the output for the notification very hard. This is the sample of a sync:
Transferred: 7.949M / 7.949 MBytes, 100%, 1.163 MBytes/s, ETA 0s
Errors: 0
Checks: 0 / 0, -
Transferred: 2 / 2, 100%
Elapsed time: 6.8s
Transferring:
* File.msi: 41% /84.594M, 1.580M/s, 31s
When transfers are more, they get added below and then it get's hard to put everything in a notification.
On a sidenote: i changed the way the command "stack" is created (ArrayList instead of Arrays with fixed size). That should allow for more easy configuration of parameters, however, i am not sure if we should expose the ability to add arbitrary commands. When we allow that, we would need to make sure that nothing breaks somewhere down the road, eg. Notifications when the log output is not what we expect. This could become a nightmare to maintain. I think it would be better to find out what is actually most needed and add that as an option somewhere to be enabled or disabled.
i am not sure if we should expose the ability to add arbitrary commands.
Yeah, that's also not my idea of RCX. My goal for RCX are users with much less technical experience than rclone, i.e. somebody's grandparents should be able to use the app (and should not be able to misconfigure RCX into a non-working state). That being said, I still think that custom commands are a good way to provide more options for advanced users.
Here is a use case for the ability to edit commands: adding --update, (or --ignore-checksums or --ignore-times) is critical to get sync or copy to work correctly and efficiently on WebDAV backends. I've not found a workaround.
Adding custom commands would solve things in the most generic way, but I do see the associated maintenance complexities. Adding the --update as an option would solve my current problem.
Thanks for creating and sharing RCX, by the way. It's fantastic, and I use it several times every day!