Why I only have one computer

If you’re here for just the KDE-specific stuff, feel free to skip this post.

I used to have a desktop and a laptop. But in the end I found that having only a single machine greatly simplified everything and increased my productivity. This is it:

Just a regular old Lenovo ThinkPad X1 Yoga laptop

The biggest problem was always keeping files in sync.

Assuming you’re more than just a consumer of online content, you probably have local files for things that are important to you: school work; in-progress projects; creative pursuits; family photos; a personal music collection; source code repos; saved memes–you name it. With more than one computer, you need to figure out a way to keep these files in sync, and good solutions are elusive.

Cloud services are expensive and may compromise your privacy. Free non-cloud local sync services only work when both machines are on the same network. Any FOSS versions of these are unfortunately buggy and a chore to set up and maintain. Even if your chosen sync solution works perfectly (which it never does), you have to deal with the headaches of:

  • Inevitable sync conflicts
  • The set of files on one computer exceeding the storage capacity of another one
  • A necessary delay before you can work on files which the sync service is still updating after you turn on a computer that was turned off while changes were made on another computer
  • Resisting the temptation to pause syncing when something goes wrong, because you will forget to turn it back on, causing each computer’s files to drift out of sync and making reconciliation that much harder later

If you opt to forgo sync services and instead store common or shared files on a server (say, music or movies), this worsens the problem because now you have an additional location of files to manage, and you acquire the challenge of how to either safely access the files when not on the server’s local network, or automatically keep cached local copies in sync.

Giving up and keeping differing sets of files on each computers defeats one of the advantages of having multiple computers, and makes file management a real nightmare because you will somehow never have the file you want on the computer you happen to be using at any given time.

There’s just no good way out here, at least not that I’ve found.

In the end I settled on using a single computer–a powerful, top-of-the-line laptop. This can do everything a desktop can do–albeit more slowly–but it has the portability I need for travel and working from multiple locations. Interestingly, one really nice laptop that doesn’t need an external screen, mouse, or speakers turns out to be generally cheaper than two decent computers with all their associated peripherals. The only problem is finding one, because the range of high-end PC laptops kind of stinks, unfortunately. More on that tomorrow.

29 thoughts on “Why I only have one computer

    1. No, it isn’t. Because as I read syncthing igorates the XATTRS. So all meta information is gone, like tags. bittorrent sync on the other hand can do that.

      I come from Mac and use a lot of tags for files. Am disappointed that this is so poorly supported on Linux. KDE doesn’t seem to be able to do it either. Supposedly Mates file manager (Caja) does not ignoring xattrs. I have not tried that yet.

      Liked by 1 person

    2. Yeah, there’s always some hidden gotcha with every sync solution I tried, which you won’t find until you discover that you’ve lost data.

      Liked by 1 person

    3. I would not like to do without tags, especially when I have hundreds of files already tagged on my Mac.
      You are more flexible and can find things faster. In the file system you can only store a file in one folder or have duplicates or aliases.
      And tags are stored in Xattr. Under macOS I never had any problems with that. Only on other systems you have them, especially if you are not aware of the problem. I hope that this will improve under Linux (especially KDE).

      But my last test was also a while ago

      Liked by 2 people

  1. Agreed, I even find synching the phone a chore. In the end, I decided on one main desktop PC, and then “slave” empty devices that do one thing, and transferring required data from the desktop for each occasion.

    However, I believe that the future of personal computing would be a mainframe (hopefully private) with as many lightweight network connected terminals as needed, such as glasses, watch, phone, tablet, TV, PC, and other not yet popularized form factors.

    Probably that move from Microsoft, with its cloud based Windows is a primitive showcase of what I’m saying, or maybe I’ve just watched too much sci-fi… who knows. ┐( ̄ヮ ̄)┌

    Liked by 3 people

    1. Indeed. I eventually moved back to a paper calendar on the kitchen wall, and it’s been so much better for my family than than trying to use a shared and synced digital calendar that it’s not even funny.

      Liked by 1 person

  2. I have a proposal for you. Buy a desktop PC, install Linux and use VNC and NoVNC o access it remotely, leave it on 24 hours a day. Your apps are always open, ready to use. Using SSH port tunneling you can access it from anywhere in the world. Using one time passwords makes SSH more secure. You will only need SSH client, a web browser and TOTP token generator (mobile app) when accessing your workstation from a remote location.

    Liked by 3 people

    1. You can be more radical and f*** all this kde, wayland, X11 o r even framebuffer. Use SSH and terminal applications. In the mainframes time it was real cloud + thin terminal clients. You don’t need graphical environment and other bloat. For even better experience with ssh over slow connection, use MOSH (it’s ssh wrapper, using UDP, instead of TCP). You can even use GNOME 1.x file manager, called Midnight Commander (instead of bloated Konqueror/Dolphin).

      Terminal FTW!!1!1oneoneone


  3. I had the same problem and to me a Synology NAS with Synology Drive was the solution. It works like Dropbox, you can sync your personal folder via the NAS and it’s native Linux client through all the machines, and there’s no subscription or size limit (other than the capacity of the NAS of course). You’ll have these files on the NAS too, yes, but sync works in both ways, so if I delete something than it will be deleted from the NAS as well. I created symlinks to my home folders and I use this method for years now, without any conflicts or other issue.


    1. I tried something like this for a while but got worried about backup. A second NAS to back up the first one seemed like overkill, so I experimented with a RAID 1 NAS, but RAID 1 isn’t really backup. Then I considered a small PC server used as a DIY NAS with multiple internal disks and a nightly backup job, but in the end the complexity, and hands-on-ness (if that’s not a word, I just invented it) of such a solution discouraged me from continuing.


    2. Although since my router runs Linux and has a USB port, I could probably hook up 2 disks using a hub and just write a simple nightly rsync script to back one up onto the other.

      But then I’d run into problems of network bandwidth since that router only gives me a maximum of 5 Mb/sec over wifi, for some reason. So I guess it’s time for a new router, which means time to go through the hassle of putting Linux on it all over again…


    3. You can use XFS + Rsync or SyncThing.

      OR ZFS/BTRFS and send/receive snapshots. You don’t have to worry then about safety of data (you can have other locaction, or sync NAS to backblaze.
      Snapshots works like GIT diffs, so while first backup takes long time, you send later snapshots, which are incremental and don’t take much space on HDD.

      You must backup your laptop anyway (it can be stolen, SSD dies unexpectledy and other shit happens).
      “There are two kinds of people: those who backup, and those who have never lost all their data.”


    4. Yep, I’m a member of the former group, having been kicked out of the latter group in the past. 🙂

      I admit I don’t trust weird filesystems. When I installed Fedora earlier this year, I wend with EXT4 rather than the default BTRFS. Maybe it’s something I have to get over.

      Liked by 1 person

    5. EXT4 got fantastic fsck tool(because it’s desktop OS), otherwise you should choose battle-tested (developed by RedHat and used on servers) XFS, which is much more performant also. Only downside is that it doesn’t support shrinking (but do you really need it?)

      But you should take a look at CoW filesystems like ZFS, BTRFS and BCacheFS(still WIP) IMHO.
      BTRS is in kernel and it’s perfectly OK for for one-disk setup and it’s best choice if you don’t want out-of-tree ZFS (much more advanced and battle-tested on servers. It’s one on of the two choices for big file-servers(with hundred sipndles), databases and storage VMs. The other is XFS and LVM (Redhat choice)

      COW filesystems fragments more, so are slower on HDDs, but provides many upsides(files are much more safe):

      – block-level checksumming (so in case of bad SATA cable, or HDD/HBA returning garbage or bitrot you got informations about that and never broken files. In case of redundant array[in some laptops you’ve 2 or 3 m.2 nvme slots) filesystem is self healing (when file is read, checksum is checked and in case of checksum mismatch it’s read from other drive or reconstructed).
      In case of traditional filesystems, you can have bitroted files in main-storage and backups for years, without noticing it (until you need that file 😉

      – subvolumes [called datasets in ZFS] – you don’t have to partition drive drive for multiple distros. You can have one big BTRFS/ZFS partition, with multiple subvolumes(which allocates blocks when needed). Only one password for LUKS. GRUB supports LUKS+BTRFS and in case of ZFS, you can use ZBM.

      – snapshots – you can make snapshots of current state of filesystem how often you want.
      You can mount snapshots, recover previus versions or even boot into previous snapshot(helpful if system-upgrade went wrong). Every subvolume/dataset is snapshotted sepearately, so you can roolback system-only, preserving latest /home.
      Snapshots tracks only changed blocks(not whole files), so they don’t take much space, even if big files were slightly changed.
      When you take backups, you send your filesystem (and receive on other end), and later send only snapshots (so only changed blocks). It’s waaay faster than rsync and other backup solutions for traditional filesystems.

      – compression – it not only saves disk space, it also increase performance(even in case of most SSDs battleneck is I/O speed, not CPU) and lowers writes to SSD(so increases it’s life).

      – ZFS has native encryption (every dataset can inherit parent’s dataset encryption key, or got their own. You can change it, without losing data). For BTRFS you must use LUKS unfortunately (but it’s still supported by GRUB and performant). Nearly every (not the lowest tier) of Intel/AMD CPU from last decade got hardware encryption(AES-NI), so it shouldn’t affect performance at all.

      – BCacheFS supports tiering, so files can migrate between faster and slower storage and supports fancy caching, accordng to frequency of usage(it also detects sequential access to big files, and avoid caching in that case). ZFS is not tiered storage per-se, but supports Special Allocation Class devices, so can store most of the data on HDDs, but store metadata and small blocks(for VMs/databases) on dedicated SSDs. It also supports fancy caching, like L2ARC(read cache on SSDs) or ZIL LOG (data journaling on fast SSDs, like Optane).

      ZFS can get complicated, if you want to dive in it. But it’s not needed in your case
      t’s supported out-of-the-box by Ubuntu Desktop, but for NAS/Server you can download and use freely TrueNAS Core(FreeBSD based) or newer TrueNAS Scale (Linux based, so KVM, docker, etc). And all the features trough nice and simple web interface.

      Liked by 2 people

  4. @Nate: You can use mainly mainly one machine(laptop), ZFS and sync-receive (anyway you need backups).

    As for decent laptop and no need for external screen/keyboard you will make one of the biggest mistakes for your spine health, because screen will be to low, or keyboard to high:


    You can use laptop stand/riser and external keyboard as workaround, but if you spend much time in home, then docking station (DP over usb-C) would be way to go.

    Liked by 1 person

    1. That’s a good point about posture and spine health. My wife has been bugging me about this too, and I may end up getting a stand with an external keyboard and mouse that I can work at a lot of the time.

      Liked by 1 person

  5. I’ve been using sync for about 7-8 years now, using 3rd party services (dropbox -> gdrive -> pcloud) and the idea is quite simple, I have Music, Docs, Pictures and other “home” folders inside this Storage Service and I re-map /home/{Documents,Music,Pictures,Templates,} as a soft link to the Storage Service. Some folders are set to be downloaded fully, some, thanks to pCloud fusefs implementation of client are used on demand. In many years I rarely had any problems with that approach. Small changes “go up” instantly after the initial sync is done.

    Some folders are still kept out of sync (git, local apps, downloads, tmp) to avoid huge uploads and git…you know…why? 🙂

    Granted it requires somewhat decent internet, especially for upload, but unless you’re working with gigbytes big files with 1 mbps upload speed, it should be the problem.


  6. I started my IT life as a yougster in DOS times. When starting Uni in 2001, I bought an expensive laptop and had been running off a single (but poweful) laptop for many years. But I grew weary of their high cost for the same return, compared to a PC (plus the reduced number of I/O ports, fan whine and so on). So once I had the money, I built a PC for the heavy stuff, and later a small laptop for on-the-go (actually, a Thinkpad X250).

    Like many before me, I started out with rsync and tried different kinds of other syncing tools. Currently, I’m using unison, and have been doing so for many years now. Unison itself can only sync one directory (unlike e.g. syncthing). But by telling it to follow symlinks—but only on the first directory level—, I can sync as many directories (or individual files) in one run as I like, by making them symlinks inside of a “virtual” sync root. That way I can sync my whole email archive, music library, photo directories and even development files (including git repos) with one command—within seconds! I actually keep three devices in sync, with different sets of sync directories: the PC, the laptop, and a Surface Go tablet that is also running KDE.

    Yes, I need to be careful about conflicts if I edit a file on both ends. This happens occasionally, usually on text files for note-taking. In such a case I simply copy the file to a safe directory, sync it over and then mend it with vim. But consider this – usually you’re not working on two machines at the same time. And if you make it a habit to sync regularly, for instance before you leave the house or right after turning the PC on, then it’s calm waters most of the times.

    Another benefit of this practice: you get a backup of your most important stuff, because you have always-up-to-date copies on each device.


  7. Hi Nate,

    I’ve ended up in a pretty similar place. I had a desktop, but found I wasn’t using it very much, which aggravated the syncing issue. I ended up getting a bigger 1TB drive for my laptop and just relying on that for nearly everything.

    I did turn the desktop into a server with a snapraid array. Having what is basically a glorified NAS has made the whole system workable for me, as I needed a home for all those files it was impractical to carry around with me on the laptop. For me, this is largely old work projects (I run large engineering simulations for work, so have a few TBs worth of old projects that I am not ready to part with just yet), but for others it might be their media library or photo collection. The server allows me to access all my files from anywhere in the house over wifi without digging out an external HDD. It also serves as a place to duplicate/backup files on my laptop. Syncthing does that automatically when I’m on the home network. I can access the files from offsite via a VPN if I’m really desperate.


    1. I do have one, but I don’t use it largely because of those issues. 😦 There are only so many hours in the day for fixing new problems…

      Liked by 1 person

  8. This is why I use one powerful gaming laptop for everything and I don’t own PC. I can’t take PC to my bed for watching movies, I can’t take it on the hammock in summer, I can’t move it easily around the house, etc.
    A gaming laptop may be huge, clunky and heavy, but it’s still mobile – way more than PC could ever been.

    Sometimes I’m tempted about some dedicated gaming PC but in the end, it’s not worth it. I would use it too rarely.

    This approach simplifies everything – one, mobile machine for everything. However, it has some drawbacks. Such a laptop must be really, really powerful and… expensive. At least 1,5k dollars, usually 2k. Then we are stuck with that machine for many, many years when it gets older and older, fixes aren’t cheap too. At some point a new laptop is due and that will hurt a bit ;).

    Liked by 1 person

    1. This is why I’m so psyched for the Framework laptop. I really hope it takes off and re-invigorates the idea of upgradable laptop components.


Leave a comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s