Changes are marked with E
the following situation: I'm a college student who obviously needs to travel to college almost every day where I have a lot of downtime. At the moment, I own a pretty strong computer with a 4k display which is obviously too much to carry around with me, so I will buy a laptop.
However, and this is where my trouble begins, I absolutely despise having to mess with multiple systems that basically do the same job where I can avoid it. I know it's common practice to just have a laptop with its own system and files and copy over whatever you need whenever you need it, but everything on the laptop would basically just be a copy of the stuff on the computer which I'd have to maintain separately. E I'm especially talking about several IDE's I'm running at the moment which all need setup and all the projects I need to download and get running twice rather than just being good to go already. I know, mostly you can just copy over a config directory for each piece of software, but what about local testing databases. What about game saves that aren't stored in the home directoy and cannot be found easily.
So to sum it up, I've got better things to do with my time, so I'm looking for a solution to this. Here are a few ideas I've come up with so far and I'd love some thoughts from experienced users who might have valuable input or experience with setups like the following. A few things to add before I go:
- I won't use the machines at the same time. Never. And if I do, I'm just going to read files, not change anything
- I don't have the laptop yet, so I'm free to choose there
- battery life is important to me, this will come in later in the mobile first idea
- I'm on Linux and this is only meant for solutions for Linux. I won't switch, too much is good about the system as I have it right now
- E as this is my private computer, I do the usual browsing, limited gaming (that doesn't have to be portable though) and document editing
- I'm also a programmer though who (has to run) / (is running) 4 different IDEs regularly plus local webserver, database and what not
E Last note: I am a curious person which is the main reason I want to try this, not necessarily because it brings a whole lot of benefit over just running two systems and copying as needed. I want to see how efficient I can get it without breaking anything major and test the limits of what is doable right now. I'm partly inspired by an article from a source I can't remember where they talked about how it shouldn't matter where you're working, you should always get what you were working on last (which is obviously not completely doable right now, but this is one step towards that feeling).
Install separate systems on both machines and just set up a shared drive of some kind to synchronize the home folder. If you go with a rolling release system, you could have the system quite similar without synchronizing it by hand, it'll just take the initial setup time to do both.
- not much setup time
- no experiments, this has been used a lot
- system maintenance has to be done twice
- I guess the shared drive would be on the computer, so I can't access files on the laptop when I don't have a good internet connection (on the train)
Honestly, I haven't looked into this a lot, but I think I get the basic idea. People have suggested xpra, will update here as soon as I've tested it.
- You absolutely completely totally only work on one system, the laptop system is more or less just an expedient to connect to the computer
- You can get away with a very cheap laptop
- Well, it's a remote session, it's probably slow
- no internet, no working. With a shared drive you can at least do something in a temporary directory
System on a stick
The idea here is to combine any of the techniques listed here with a movable system. You install a system on a 16gb stick and get the files from somewhere else (maybe just mount the home directory and leave everything else on the stick or just have one directory remotely hosted with big files and backups).
- Well, it's only one system. Hurray.
- technically you don't even need a laptop if there are computers where you're going
- stupid thing hanging out of and blocking one USB port at all times. How dare you pull it out when I'm working. How dare I forget it somewhere and never get my system back.
- you still need a backup system on both machines in case this one gets lost or something
Get a powerful laptop and just buy a monitor and maybe peripherals to work more comfortably at home. No second machine altogether.
- Probably less expensive
- really cool solution with few technical problems
- if you already own a good PC like me, you might not feel like spending another 1000+ bucks on a laptop in order not to downgrade too far
- well, good laptops have bad battery life. That's not something for me
VCS (parts of) your file system
This would probably require some kind of version control system with which you control which files where changed. Those files are "committed" (synchronized) as soon as you're in the same network or as soon as you have enough bandwidth available. E People in the answer said this is very well doable using a git server / ownclowd combined with a proper cronjob to not have to worry about it.
- complete mirror, always have everything with you, even without internet, you can synch later
- no double maintenance, only the git repo
- well, you have to synch a lot back and forth.
- git server setup, git repo maintenance
Put the software you need on all computers in a VM (or one each) and either move them between machines or host them online.
- very fine control over the versioning of the software
- almost guaranteed data integrity
- a lot of overhead (not only but mostly disk space) because you're at least installing 2 systems on each machine - the host and the VM. Also, extra startup time, depending on how you set it up
- if I can trust my experience, this will take some time to set up if you're into live debugging on your phone for example because you'll need to forward the USB ports and stuff
Sooo, thanks for reading thus far. The four ideas are ordered by which I think would probably the best model. All of these are not really perfect in my opinion, but hey, what's perfect in this world. As I said, I'm happy about any input.