It’s hard to believe it’s already been a year since I wrote about My First Week of Librem 5 Convergence:
I talked at length in my article Investing in Real Convergence about my decades-long wish to have a single computer I could carry with me that had all of my files, ran all of my favorite programs, and that I could use as a mobile computer, laptop, or desktop. This past week I have finally realized that dream.
I put away my personal Librem 13v1 and tested out whether I could replace it with a Librem 5, USB-C hub, and Nexdock 2 laptop dock. I also spent a couple hours most work days trying it out for work as well (including writing this article from the Librem 5). In this article I will talk about my setup, experiences and impressions from the past week.
That week-long experiment has now turned into a year-long reality for me. Over the past year I have been using my Librem 5 with a laptop dock instead of my personal Librem 13v1. In that time I’ve made a number of tweaks and have tried out a few different laptop docks along the way. In this post I’ll talk about my impressions after using a Librem 5 for my personal laptop for over a year.
In addition to my Librem 5, the most important piece of hardware is a laptop dock. A laptop dock doesn’t have computing resources of its own. It’s just a screen, keyboard, mouse, and battery put in a laptop form factor. When you connect a phone to it, it’s like plugging a phone or laptop into a docking station. The phone can use the keyboard, mouse, and extra display and gets charged from the dock itself. The applications you see on the screen are running off of the phone.
The advantage of using a Librem 5 with a convergent OS like PureOS, is once you dock it, all the adaptive applications become the same full-sized Linux desktop applications you would see on a Librem 14 laptop. Also, all of the applications that haven’t yet been updated to fit on the phone screen well, work just fine on the larger screen.
The advantage of using a laptop dock is that I’ve been able to experiment with a few different models that each give me different capabilities, while my Librem 5 itself remains the same. I started with a Nexdock 2 without touch features using a USB docking station:
Currently I’m using a Nexdock 360 that has a touch screen and can rotate the screen between laptop and tablet modes (more on that later). Instead of having a USB hub on the side, I added a generic magnetic mount that is designed for smartphones to the back of my laptop dock so the Librem 5 is mounted right next to my laptop screen.
Because laptop docks are relatively inexpensive compared to a laptop, it’s more tempting to buy the latest model when it comes out. Plus having more than one dock can come in handy if you use your laptop in different locations as you can leave a laptop dock in each place. If you commute, that might mean leaving one dock in your office and another next to your your favorite spot on the sofa, so you only have to carry your phone with you.
I should start by saying that not everyone could swap out their laptop for a phone. It all depends heavily on your use cases and while you can run Blender and video editors on the Librem 5 just like on a Librem 14, it’s not the ideal platform compared to a laptop with more resources. As I outlined in my original post, my needs for my personal laptop are relatively simple. The bulk of the time I just check email, check social media, chat, browse the web, listen to podcasts, and watch videos.
On a typical day in the morning before I start work I’ll check the news (Feeds), check social media (Tootle, Cawbird), chat with friends (Axolotl Signal client, Chatty), and might listen to a news podcast (gPodder + VLC) over my Bluetooth headphones. Then throughout the day during breaks I might check social media or respond to chat messages, like most people do with their phones. After work I might dock my phone and watch a few videos from vloggers I follow using gPodder, which conveniently creates a local cache of all the videos on my phone.
As I mention in my post I (Finally) Fired Google, the Librem 5 has been my “daily driver” phone for some time now. Over the last year the Librem 5 has become more capable as we make improvements in the OS and more software becomes adaptive, and my workflows between “phone mode” and “laptop mode” have become very smooth. I actually find myself using the phone in “phone mode” more often than not, not because “laptop mode” isn’t useful, but instead because “phone mode” has become more useful over time. These days I mostly find myself switching to laptop mode if I want to type out long sentences (I’ve never been a big fan of thumb typing), if I want to browse a website that doesn’t offer a good mobile experience, or I want to multi-task in a way that benefits from extra screen space, such as watching a video while I also browse the web or check social media.
The nice thing about convergence is that the transition between phone mode and laptop mode is seamless. You don’t have to reboot or restart applications, you just dock and now you have two screens for your apps. Sometimes I’m sitting on the sofa typing a reply to an email or chat message and realize it’s going to be longer than I thought and won’t be much fun to type with my thumbs. I can just dock the phone, finish typing my full reply, and then decide at that point whether I want to stay docked or not for the rest of my computing session.
Phosh (the desktop shell on the Librem 5) supports tiling windows and provides shortcuts to move apps between screens and tile them side-by-side on the larger screen. It’s become second nature for me to dock my phone, and either use the touch screen or alt-tab to cycle through the applications so I can then hit Super-Shift-right to move it to my laptop screen and Super-right or Super-left to tile it appropriately. I might leave an adaptive app like gPodder maximized on the phone screen, while on the laptop screen I’ll have two apps that benefit from the extra real estate such as a web browser and video player tiled on either side. The Feeds news app works well on the phone screen, and when you drag it over to the laptop screen the single pane of news expands to two panes: the left pane showing the list of articles and the right showing the content from the article you’ve selected.
Web browsing deserves a special mention when using the Librem 5 as a laptop, not because of convergence issues (both Gnome Web and Firefox work well in that regard), but resource constraints. The Librem 5 comes with 3Gb RAM, which for the most part is plenty for my use case. Firefox can take advantage of the Librem 5 GPU so scrolling websites is generally pretty smooth. That said, it’s amazing just how RAM-hungry some modern websites can be. I typically browse the web using Firefox, and I’ve added the Mobile View Switcher plugin to it so that I always request the mobile versions of websites. This not only ensures websites without responsive design work well on the phone screen, the mobile version typically uses less RAM and overall resources. Combined with the uBlock Origin ad blocker and NoScript plugins, I can also block the bloated and resource-hungry ads so many sites load.
All that said, early on I noticed some websites were so RAM hungry that they actually triggered Linux’s Out of Memory killer when loaded! This was especially true when I was running multiple web browsers at the same time, which I do to isolate some web applications into their own containers. I experimented with a few different tweaks to tune Firefox’s RAM usage, but ultimately I found a great long-term solution by extending the Librem 5’s RAM using zram technology.
Zram is a feature built into the Linux kernel that allows you to trade some CPU resources for RAM. With zram, you allocate a certain amount of your RAM for the purpose, and the kernel then transparently compresses that RAM on the fly using a fast compression algorithm. The result in my case is a system that looks and acts like it has 1.5Gb of extra RAM available as a swap partition, but one that is faster than using a local swap file.
To set this up, first I installed the zram-tools package. Then I edited the /etc/default/zramswap file to enable the compression algorithm that worked well on my Librem 5 and to tell it to use fifty percent of my available RAM as zram:
Then after a reboot (or just restarting the zramswap service), I had an extra 1.5Gb of RAM. Ever since I enabled zram I haven’t run into any Out of Memory Killer situations and the overall system including web browsing has worked well.
One of the more exciting use cases for my Librem 5 recently has been as a tablet. The Nexdock 360 supports a “tablet mode” when you fold the keyboard behind the screen. Normally the magnetic mount might get in the way of folding the keyboard backwards, but I positioned the magnetic phone mount on the back of the Nexdock upside down so the thickest part was near the top of the screen. When in tablet mode the phone rests securely at the top and still acts like a second screen.
For tablet mode to work I needed to do two things. First I needed to let Gnome know that the touchscreen wasn’t simply another mouse because at first, touchscreen events were being sent to the Librem 5 screen. Fixing this meant running the following gsettings command:
gsettings set org.gnome.desktop.peripherals.touchscreen:/org/gnome/desktop/peripherals/touchscreens/27c0:0819/ output "['Unknown', 'NexDock', '8R33926O00Q']"
After running this command, all the touch events on the touchscreen from that point on showed up on that screen like you’d expect so I could scroll, tap, and do everything else you’d want on a tablet screen.
The second thing I needed to do was script a convenient way to switch to tablet mode. While the Librem 5 itself will automatically rotate when it detects a change in orientation, the tablet doesn’t. Originally that meant each time I wanted to go to tablet mode, I needed to go into Gnome Settings and tell it about the change in the display orientation. I decided to write up a quick script in /home/purism/bin/toggle_tablet that automated all of that and toggles back and forth between tablet mode and regular mode:
#!/bin/bash if [ -e /tmp/toggle_tablet ]; then rm /tmp/toggle_tablet wlr-randr --output DP-1 --transform normal --pos 360,0 wlr-randr --output DSI-1 --transform normal --pos 0,0 else # tablet mode touch /tmp/toggle_tablet wlr-randr --output DP-1 --transform 90 --pos 0,720 wlr-randr --output DSI-1 --transform 90 --pos 196,0 fi
Then I created a desktop entry in /home/purism/local/share/applications/toggle_tablet.desktop for this script so that an icon showed up on my desktop:
Comment=Toggle Tablet Mode
While I still prefer reading physical books, I’ve found the big, bright screen ideal for reading digital versions of magazines.
I’m a year into using my Librem 5 as my personal laptop and I don’t see going back. This setup does everything I need my personal laptop to do, and it’s nice to have all of my applications and files available on my phone (and in my pocket) at all times. When I need a laptop, I just dock the phone and all the apps adapt to the new screen. I’ve been wanting an all-in-one Linux desktop in my pocket for years, and this combination is everything I wanted.
(Made in USA)
|10 business days|
|Librem Mini||In Stock|
|10 business days|
|Librem 5||In Stock|
|10 business days|
(Made in USA Electronics)
|10 business days|
|Librem 11||In Stock|
|3 business weeks|
|Librem 14||In Stock|
|3 business weeks|
|Librem Server||In Stock|
|10 business days|