Depending on what I want to do, I used a combination of Unified Remote and LocalSend, both of which are available for Linux. With Unified Remote, I can control my PC on my home network. So if I want to copy over a URL, for example, I could open notepad and paste it remotely from my phone's clipboard (or type it manually), or I could open a new tab on my PC's browser and paste the URL so it's open and ready for me the next time I'm at my PC. I can sit downstairs on the couch and check the status of a project upstairs, open and run new programs upstairs, etc.
My only two complaints are that I need to be at the PC to handle admin messages like "Are you sure you want to install this program?", which I guess is a safety feature but it's still annoying. And secondly, I really wish they had an easier way to toggle between left- and right-mouse-click, it gets annoying.
To send images, actual files or even folders, I use LocalSend. It does require that you click Accept on the device you're sending to, but I can use Unified Remote to do that, and then save the files to wherever I want to (or accept the default).
This may be less streamlined than other options, but what I really like about it is that I can complete a task and then not have to think about it again. I don't have to go back to my desktop and download or save anything, I've already done it, the job's complete. The only exception is when I've put a new URL into my browser, but that's generally because I wanted to look at it on my (much larger than my phone's) desktop screen.
Anyway, it works nicely for me; I hope you find a solution that works for you!