Setting up/Configuring Librem PureOS Laptop


#1

If you have just unpacked your Librem and you are a relative newbie to Gnome & GNU/Linux, then this thread will hopefully be of help.

I haven’t had a linux laptop since my days as a college student, I remember it was quite a task to configure and setup your environment and shoftware packages that you needed to get productive.

I unpack my new Librem15v3 a few days ago and have spent the entire past 2 days setting it up to the point where I can start working efficiently on it. I run a small consultancy company and develop a number of WordPress plugins as part of the work I do.

Librem review

There is a nice review of Librem 15v3 by Sean Tiley which is worth a read for you to better understand your machine. Most of it also applies to the Librem 13v3 I believe. Here is an excellent in-depth video review of tge Librem15v2 which is well worth a watch.

So I wanted my laptop to be able to,

  • run a LAMP stack (you can read my post on this forum here).
  • run firefox and chrome (I need to test std html/css/javascript on chrome and firefox), I couldn’t get Iceweasel to work.
  • run skype, I need this to connect with team members/clients.
  • install a github gui client (I still prefer a visual colour highligher to see file changes)
  • generally improve the dekstop appearance and layout to make it visually more communicative. I am not a big fan of the default ‘Activities’ button to keep switching window panes.

Ok, I know that this is not very orthodox, installing skype/chrome on a machine that strives hard to be free, and I apologise to those who might take offence, but pragmatism is a powerful incentive.

So first thing first, PureOS is based on Debian flavour of GNU/Linux, and therefore the way packages (softwares) are bundled, installed and managed differs from other variations of Linux. This is important when you want to install binaries such as firefox/chrome/skype as you need to make sure you download the right files, they have a .deb extension.

Installing external debian pacakges on PureOS

the pureOS repo does not always contains the packages you need. So you can either install another repo source or donwload the debian package and install it using the debian package manager,

sudo dpkg -i <file-name>.deb

doing this will likely results in a partial installation and you will get a wanring message that some dependency library are not installed. I found that the easiest way to fix this is to take the first dependency library the packager is complaining about and try to install it from the pureOS repo using,

sudo apt install <missing-library-name>

at this point you will get more dependency error messages, as the library you are trying to install is itself dependent on other libraries, but you can remedy this by asking the software manager to fix it all for you,

sudo apt --fix-broken install

and voila, the software manager will now install all the libraries required and ensure you debian package installation is complete.

Setting up a development environment

setting up the LAMP stack needed a little bit of juggling and help from google searches, but you can read about it in this thread.

I found various UI clients for gitHub, and settled for giggle which runs on the GTK+ libraries and is integrated with GNOME. Git cola is another one that looked very nice, but it runs on the Qt libraries which do not come pre-installed with PureOS and would mean a heavier memory footprint compared to giggle. My first choise was gitg, but somehow it dind’t work properly and I didn’t want to spend time figuring out why.

I also installed atom.io (debian package) which is the editor I have been using to develop with WordPress. Bluefish is also another excellent editor that is available in teh PureOS repo.

Improving the overall GNOME desktop environment

First of all here is an excellent article that reviews all the various tweak available to improve the desktop to your preferences.

Bottom line, you have 2 UI interfaces to configure your GNOME desktop,

  • the Settings app in your app launcher will allow you to set your backgroud and keymaps. If you use different Workspaces then I recommend you setup your shortkeys to quickly navigate between the workspaces. You can do this in the Settings app, Keyboard -> Navigation section.
  • the GNOME Tweak tool. which is located in the X-GNOME Untilies section of your app launcher.

Tweaking GNOME

the tweak tool is really useful, and powerful as you can extend with 1000s of GNOME shell extensions.

Here is what I setup on my laptop,

  • Appearance: I didn’t change this, I am happy with the white bgs.
  • Desktop: I enableb some icons on my desktop.
  • Extensions: here is a good article review of the top 10 extensions you ought to know about. Dash to Panel, is by far the most powerful transformation in desktop experience. I also installed the clipboard, the screenshot , the pomodoro, and the shutdown timer extensions. To ease the installation of these extensions, i installed the GNOME Shell extension addon in firefox, as well as the chrome-gnome-shell package available in the pureOS repo. This integrates and play nice with firefox, allowing you to browse extensions and simply toggle them on/off from the browser itself.
  • Fonts: on the these HD screens, I find 11 is little hard on the eyes, so I bumped all my fonts sizes to 12.and increased the scaling factor to 1.15
  • Windows: I changed the focus mode to ‘Sloppy’ which I think is one of the most useful and time-saving feature.
  • Workspaces: I have always been a fan of virtual desktops as they were known initially. I set mine a static number of 3 workspaces.

I hope the above research & info helps others to configure their laptops and improve their experience of Librems.

Do you have other configurations/settings which are useful to others? Please share them below.

File Sharing on Home network

Linux has a powerful network sharing software called samba, and it can be quite complex to setup, but I managed to get some basics to work. However, by default it did not come pre-installed on my laptop, so in order to see/share folders across my home network (my mac latop / windows machine) I needed to install samba,

sudo apt install samba smb-client

next I needed to enable file sharing in my settings (Launchpad-Settings->Share). In the Nautilus file explorer (Launchpad->Files) i now have a ‘Share Options’ menu item appearing when I right-click with my mouse on any folder. This is how you select the folder you wish to share with others on the network. However, for some reason my user account isn’t given access to samba’s usershares folder configuration and therefore I get an error when trying to share a folder. To overcome this, I had to add my account username to the sambashare group,

sudo usermod -a -G sambashare

where is your account username. You’ll need to logout/login from your account for the permissions to be granted. I was then able to share my folder on the network.

However, although I could see my laptop on other machines and even connect as guest (mas OSX) i still could not see my shared folder. What I did achieve though was to see any folders I shared on my macbook/windows on my librem laptop. so it was a partial success only.

[EDIT] (I am adding some additional information below as and when they come up from the conversation below so that someone reading this post does not to go hunting through all the subsequent threads).

Hunspell dictionaries. (see this post)

setting up an HP Wifi enabled printer (see this post).


PDF of Quick Start Guide for the Librem laptops?
Librem 15v3 won't boot
This will definitely help convert more Windows users to Linux (Deepin)
USB 3 not working
Librem15 won’t finish installation
Missing apt repo's? (git, firefox, etc)
Can't set up VPN
Help with updating Librem 13v2
Librem 13 v3 / Font size too small or too large
#2

This is awesome, thanks for sharing. :slight_smile:

One thing I want to do is get my Librem to a known-good state and then take a snapshot so if I mess up the system (or something goes haywire) I can easily get it back to where I want it. Can you (or anyone!) elaborate on how to backup/restore PureOS (or Linux in general)?


#3

Deja-dup is the backup tool that I use; I found it to be the most reliable/easy-to-use backup solution in GNU/Linux. I think that it’s installed in PureOS by default, but if not, simply run this command:

 sudo apt-get install deja-dup

Simply open the program; choose the folders you want to save; choose the directory where you want to save them; choose whether or not you want automatic, incremental backups (e.g., daily, weekly, monthly), and then start the backup. It will also give you the option for encrypting the backup with a password.


#4

Nice @ezs777, does it also backup the system files/package database? Or do you have to choose those folders yourself?


#5

Hey @danj, glad you enjoy this, unfrtunately I haven’t really been woking on a linux laptop for a while and therefore I don’t have a ready answer to your question. I too would love to find a good/easy solution to system snapshot and incremental backup.


#6

So, you can choose which directories you back up, and back up your system files (to do so, you would need to run the application as root), but there is no built-in option in deja-dup to back up the package database.

For this purpose, I recommend trying to use the aptik package; although, it is unavailable in the repository, so you would have to download it from here. Also, I have been unable to get it to work with PureOS.


#7

Found a nice deja-dup review article.

However, deja-dub is fine for backing up your HOME folder, but isn’t recommended to do a snapshot of your system. I tried to do one with deja-dub and it complains about not being able to backup root files as I run the deja-dub from my account rather than as root. I am not sure how to go about using deja-dub as a root user, nor do I think it is a good idea.

So I am going to use it to make incremental backups of my /home folder only and look for something better suited for the system backup.

I found a good review on Ubuntu Wiki pages of the state of linux backup tools.

rsync & dd

So from reading around I found that these are probably the most tried and tested. rsync is a tool to sync files across devices and has been used as a backup tool, while dd is a tool that backups your entire partition, but I don’t think its possible to do incremental with it.

Back in Time

I found a promising tool with a UI interface that uses a rsync in the back-end and creates cron jobs for you to do automated and incremental backups.

However, you need to figure which folders you want to backup. I found a some answers online, and am going to start with,

/var
/opt
/etc

and ignore within these,

/var/log/
/var/tmp/
/var/cache/ (see reason why here)

Most important in any backup solution is to test that it works, and for this the easiest is to restore your backup in a Virtual Machine to make sure you are satisfied it works.

I am going to experiment a little more on the above and come back with more details at a later date.


Déjà Dup errors
#8

Found a nice little tit-bit of handy information to share with other linux noobs like myself…

I couldn’t understand why I would not run graphical interfaces as root using the command line sudo,

sudo gedit

for example, even though I can run a graphical interface using my own account instead of root. I tried to install gksudo which the GTK+ graphical equivalent of sudo and that too didn’t work.

Today I came across this thread which points out that launching graphical interfaces from an xterm under Gnome Wayland is not allowed for user other than the current session author. Gnome Wayland is a recent replacement for the X protocol for displaying windows on linux systems, and it turns out that one can grant permission for additional user to run graphical interfaces using the command,

xhost +SI:localuser:root

magic! Now I can run gedit as root using sudo gedit :slight_smile:


#9

I recently fixed another issue on my Librem 15v3 which I will post here for the sake of recording these solutions.

I managed to get my librem to connect to my HP 3510 Deskjet WiFi printer.

To do this I had to use the hp-setup configuration tool that comes pre-installed with PureOS.

However, this is a CLI tool that needs to run in its UI form to enable Wifi setup, by default the CLI options only give you usb/net/parallel port.

To run hp-setup in UI mode, you need to ensure that you have hplip-gui installed,

sudo apt install hplip-gui

connect the laptop to the printer using the usb cable the, and run the hp-setup from your xterm window and now you will see the wifi optoin, select it and follow the wizard instructions. You will be required to select your network wifi (the one you connect to normally, not the printer’s wifi) and finally the printer will connect to the network.

Note, when you click ‘Next’ or Continue on the wizard, there is no indication that anything is happening and it takes 30 sec or so before the setup completes and moves to the next step,

Finally when the setup is complete, just close / cancel the hp-setup tool and you will be required to run it once more with the printer IP. Check which IP was allocated to your printer (on the printer screen press the wifi button to see the IP) and run the command again,

hp-setup <the IP address>

this will now re-open the hp-setup tool but this time it will allow you to set up a new printer queue on your machine which will be accessible to any of your print command UIs.


#10

Only the default en_US locale is installed, yet if like me you setup your laptop to use a different locale then you will need to install the hunspell dictionaries for spell-check to work in many GNU/Linux editors.

sudo apt install hunspell-gb-en

these get installed under /usr/share/hunspell/ which you might require to setup in your application settings. This was the case for the atom IDE I use for code development.


#11

hi @vrata - you had the right idea about creating a thread about configuration.

i’m currently waiting for my librem 15 v5 to arrive and i’m worried about my ethernet pppoe connection. i don’t have a wireless router and i prefer not to use any exisiting wifi connections unless i absolutely have to.

what i want to ask is if you have any experience with using a wired internet connection on you librem device (hardware and software). will i need to purchase a usb/ethernet hub nic for one of my usb 3 ports in order to use the pppoe connection ? does the included hardware nic only support wifi/bt connections or is it that it does wired as well just not have room for a dedicated ethernet port on the side of the chasis ? i’m asking this in order to know if i should buy just a usb 3 to rj-45 addapter or do i need a full blown wired nic usb3/hub ? my connection is a dsl-broadband 300mbit/s pppoe username and password authentication required. my ethernet wire goes straight to the firewall/router outside the flat where the isp maintenance panel is.

if anyone else can help please feel free to jump in. thanks !


#12

not really. I use a wifi router a home most of the time. when I am travelling I used a tethered usb connection to my phone (which has a 3G connection). However, my usb tether get registered as a Wired Connection on my Internet configuration tab…

…yes I should think this is the way to go, or through the usb-c port. However, I can’t give you any further pointers as I have never used one on a linux machine. Do keep us posted of your progress if you decided to try this :slight_smile:


#13

#14

sadly Purism devices will have to wait a little longer for me since that non-hotswapable battery is a deal breaker for me. i returned mine shortly after i found out about it and i felt really sad about having to do so.


#15

Yeah for me just having a swappable battery period was enough. :+1:


#18

It is pretty hard to find laptops with hot-swappable batteries now-a-days. For current models you can get a Thinkpad T480, T580 or P52s or a Dell Rugged. If you want something smaller and lighter, then you have to look for a used Thinkpad T440s, T450s, X240, X250, X260 or X270.


#19

Thanks for the great post!

I’d add some caretaking for the default disk encryption. I wrote about it in this thread.