Tune

Backup Files

Accessibility

Active Directory

Auto-Mount Second Hard Drive

Back Up Files

Change User Password

Containers on Linux

Changing your Desktop Environment

Customize Dock

Disk Encryption Passwords (multiple)

Encrypt Extra Drive

File Sharing (Pop!_OS)

Format Your Drive

Graphics Switching (Pop!_OS)

HDMI Audio Configuration

HiDPI Multi-Monitor Support

Install Pop!_OS in VirtualBox

Install/Use VPN

Keep PPAs Enabled when Upgrading

Manage Repositories (Pop!_OS)

Manage Repositories (Ubuntu)

OpenVPN Install

Pop!_OS Customization

System76 Driver Install

Upgrade (Pop!_OS)

Update System Firmware

Upgrade (Ubuntu)

User Management Email (ProtonMail/Gmail/iCloud/Fast)

Using Legacy Status Icons in Pop!_OS

Using Pop Shell on other Gnome Desktops

Improve Battery Life

Set Battery Threshholds

Disable Touchpad While Typing

Mouse Customizations

Microphone Use

Printer Setup (Pop!_OS)

Printer Setup (Ubuntu)

Configure/Disable Touchpad

Login with Yubikey Backup Files

There are many ways to back up important files on your computer. It's a personal choice which one to use based on habits, preferences, and what is being backed up. We will outline a few options here, but the final solution may be a mix of several of these options.

Data Policy

The key to good backups is having the data automatically backed up, accessible, secure, and distributed. All backup solutions should be evaluated against these 4 criteria:

Automatic: Data is automatically backed up. Manual copies work well in some cases, but

automatic backups makes sure it's always fresh, and that nothing is lost if a manual backup

isn't performed.

Accessible: Data needs to be retrievable and easily restorable if the original is lost.

Secure: Data needs to be accessible only by the owner. Cloud solutions are convenient, but

additional steps may be required to make sure the data is private.

Distributed: Data needs to be in multiple places. If all the copies are in one location, the risk

for data loss increases (for example, if your data is saved to a USB disk in your house, but

there is a fire, both the computer and the backup disk could potentially be lost at the same

time.)

NOTE Good practice to prevent data loss is to ensure that any important files

“are backed up in at least three (3) places. Two (2) copies on-site, and one (1)

copy off-site. This off-site backup could be through a cloud storage solution, or a

drive that's kept at a relative's house, or in a safety deposit box. User Files

User files are the most common data to back up. This includes documents, pictures, and other personal files. Typically, these documents are all saved in your home directory ( /home/username ).

Deja Dup

Déjà Dup is a popular, straightforward backup option. It can be used to back up user data locally, remotely, or to a cloud server. It can also be set up to run automatically on a regular basis.

Installation

To install Deja Dup, search for it in the Pop!_Shop, Ubuntu Software or run this command:

sudo apt install deja-dup

Once Deja Dup is installed, it will be labeled as "Backups" in the Activities overview.

Selecting Data to Backup

With Deja Dup (Backups) open, you can select the folders you wish to save or ignore using the pages listed on the left. By default, Deja Dup will backup your entire home directory, which includes your Documents, Pictures, Music, and Videos folders. It ignores your Downloads folder and any items in the Trash. Use the plus and minus buttons as needed to modify both categories.

Choosing a Backup Location

On the Storage location page, you can configure the location where your backup will be stored.

The available options are:

Local Folder - Back up data to an internal or external hard drive, SSD, or USB flash drive. Pros: Easy to set up, automatic, accessible, and secure. Backups typically happen quickly because they're using a high-speed direct connection.

Cons: Single point of failure. If the computer is lost or if both drives fail, the data is lost.

Network Server - Back up data to another computer or storage device (NAS) on your network.

Pros: Same advantages as the local backup, but with less of a single point of failure.

Cons: Requires some networking knowledge and the ability to set up another computer or storage device to hold the data. Backups typically take longer because of slower transfer speeds over the network (but still faster than internet storage.)

Google Drive - Back up to Google's cloud service.

Pros: Remote (off-site) location provides geographical redundancy, and is accessible anywhere there is an internet connection.

Cons: Requires a Google account. Your data could be accessible by Google or third parties

(including law enforcement.) Will be slower to back up (depending on your internet speed), and uses your data transfer/bandwidth.

Scheduling Regular Backups

To schedule backups to run automatically, select Scheduling from the list on the left, then flip the switch to enable automatic backups. Schedule the backup for a time when you know the location will be available (for example, when you know you'll have the USB drive plugged in). Many people choose to let their backups run overnight or on weekends.

Restoring Your Data

To restore your data with Deja Dup, select the Overview page, then click the Restore... button.

This will allow you to select the location containing the Deja Dup backup folder, and will copy the data from the most recent backup to its original location.

Cloud Desktop Clients Many online services offer small amounts of free storage and desktop clients with automatic synchronization. A few examples of companies that offer cross-platform cloud storage are:

Dropbox

Mega.nz

Box.com (CLI only)

Google Drive does not have a native Linux client, but there is built-in support within Pop!_OS and

Ubuntu. However, the built-in support does not automatically copy and keep files locally as the above desktop clients do.

One solution to keep the data from being read by cloud storage providers is to keep all of the files in password-protected archives. A .zip or .7z file with a password is encrypted, and can't be easily accessed by anyone without the password.

Another option is Nextcloud. Nextcloud is an open-source cloud solution that is completely controlled by the user. The remote server needs to be set up manually (or a trusted third party could be paid to set up and maintain the server.)

Copy Data Manually Using the Files App

With an external drive attached, data can be manually copied to an external drive. Use the file browser to copy data from the internal drive to the external drive.

Pros: Easy and straightforward to copy data from one place to another.

Cons: Because the process is manual, updates and changes to the data may be missed over time.

No geographic redundancy.

Terminal Only (Advanced)

In certain situations, you may only have access to a command-line interface. The command-line rsync program verifies data integrity and avoids re-copying files that are already backed up.

An example of the rsync command would be: rsync -a ~/ OUTPUT_DIRECTORY

...where -a tells rsync to output as an archive, ~/ refers to your home directory as the source location, and OUTPUT_DIRECTORY should be replaced with the location of your external disk or your remotely mounted server.

E-mail

If you access your email through a web browser, manual backup is likely unnecessary, as the data is always being held on a remote computer. If you use a local client such as Thunderbird or

Evolution, then the data may be stored in multiple locations (such the email server and other client devices), or only in one. If the IMAP protocol is used, the data is synchronized between all clients; if the POP protocol is used, then the data is only stored on the client where the email was viewed.

Web Browser

Pros: All data is always on a remote server.

Cons: Requires internet access. Email providers may have access to data.

IMAP

Pros: Data is synchronized between the remote server and local devices. No single point of failure.

Cons: Requires internet access. Email providers may have access to data.

POP/POP3

Pros: Data is more secure, as it's only in one location at any time.

Cons: The client storing data is a single point of failure. User Configuration Files

Most user configuration files are stored in the home folder. These can generally be copied and saved just like any other file, but restoring these files may not always work. Occasionally, programs change how, where, or in what format their configuration files are stored. This means they won't always be restorable, or may not function as intended. It's recommended to back these up as needed, but remember that they may not restore correctly.

Most user configuration files can be found in the home directory, and begin with a period (for example, the .config directory.)

Programs

Because programs are readily available online (usually through software repositories), we don't recommend backing them up. They are spread throughout the file system and are difficult to restore properly. To back up programs, we recommend keeping a list of package names for the programs that you use so they can be reinstalled with a single package manager command, like so:

sudo apt install -tweak-tool mousepad aptitude thunar

Program Configuration Files

System-wide program configuration files can be found in many locations of the OS. The most common location is the /etc folder. Most of these can be backed up in the same ways that user configuration files can, with the same caveat about changes in configuration format when restoring these files. (Unless you have modified system-wide configuration files manually, most configuration is usually stored per-user in the home directory.) Accessibility

Pop!_OS shares many of the same accessibility options as Gnome. These accessibility options allow for Pop!_OS to be used by as many people in the community as possible. If there are additional tools or options that you would like to see added to Pop!_OS in the future please let us know and we will see if implementation is possible.

Additional information can be found on GNOME accessibility web page here.

Screen Readers

For visual impairments Orca is a screen reading tool for low sighted and blind users.

Orca is a free, open source, flexible, and extensible screen reader that provides access to the graphical desktop via speech and refreshable braille.

In Pop!_OS using the GNOME desktop environment, Orca can be launched automatically via the

Universal Access Control Center under the Seeing section.

• To toggle Orca on and off press Super + Alt +S Once engaged you will hear a voice confirmation

“screen reader on” and it will begin reading the text on the screen through your speakers.

• You can also type ‘orca’ along with optional parameters in the terminal and press Return.

Orca can also be enabled during installation by using the Super + Alt + S keys.

Universal Access Options GNOME provides many accessibility tools within the Universal Access panel. You can access the

Universal Access panel by opening Activities and typing 'Universal Access'. From within Universal

Access panel there is a toggle to ‘Always Show Universal Access Menu’ to help you navigate back to this section easier in the future.

Once Universal Access is open you will have options for the following sections.

1. Seeing. This section contains options for visual accessibility including:

High Contrast toggle

Large Text toggle

Cursor Size selector

Zoom menu: includes many additional features including magnification adjustment

and magnification position settings. It also includes tabs for crosshair adjustment

and color effects.

Screen Reader toggle

Sound Keys toggle: sound keys provides a beep when Num Lock or Caps lock are

turned on or off.

2. Hearing. This section contains option for visual alerts. The two options include:

Visual alerts on and off toggle

Flash the window title or flash the entire screen

3. Typing. This section contains options for typing assistance including:

Screen Keyboard toggle

Repeat Keys toggle and menu to adjust delay and speed

Cursor Blinking Frequency Slider

Typing Assist menu using (AccessX): includes toggle for on and off along with

options for Sticky Keys, Slow Keys, and Bounce keys.

4. Pointing & Clicking. This section contains options for mouse and clicking enhancements

including:

Mouse Keys toggle

Click Assist menu with options for adjusting simulated secondary click and hover click.

Double-Click Delay Slider

Keyboard Shortcuts & Modifiers

Pop!_OS also provides many keyboard shortcuts to help users with navigating their system from the keyboard. The documentation for the keyboard shortcuts can be found by clicking this link here

. Active Directory

Pop!_OS and Ubuntu can be joined to an Active Directory domain, which allows users to log in with their existing network credentials.

1. Install the necessary packages:

sudo apt install sssd heimdal-clients msktutil

While installing those packages, you will be prompted for the following information. These

are sample responses. Our domain is called "system76.local" and our Active Directory

server is called "adserver" in this example:

Forest name: SYSTEM76

Domain controller hostname: ADSERVER.system76.local

Administrative server for your Kerberos realm: ADSERVER.system76.local

2. Move the default Kerberos configuration file to a backup, and create a fresh file to use:

sudo mv /etc/krb5.conf /etc/krb5.conf.default

sudo nano /etc/krb5.conf

Edit the /etc/krb5.conf file with the following contents:

[libdefaults]

default_realm = SYSTEM76.LOCAL

rdns = no

dns_lookup_kdc = true

dns_lookup_realm = true

[realms]

SYSTEM76.LOCAL = {

kdc = ADSERVER.system76.local

admin_server = ADSERVER.system76.local

}

3. Initialize Kerberos and generate a keytab file. The first command requires the username of a domain administrator, and our computer's hostname is "pop-os" in this example:

kinit administrator

klist

msktutil -N -c -b 'CN=COMPUTERS' -s POP-OS/pop-os.system76.local -k my-keytab.keytab

‑‑computer-name POP-OS ‑‑upn POP-OS$ ‑‑server adserver.system76.local ‑‑user-creds-

only

msktutil -N -c -b 'CN=COMPUTERS' -s POP-OS/pop-os -k my-keytab.keytab ‑‑computer-

name POP-OS ‑‑upn POP-OS$ ‑‑server adserver.system76.local ‑‑user-creds-only

kdestroy

4. Move the keytab to the /etc/sssd directory, and configure SSSD:

sudo mv my-keytab.keytab /etc/sssd/my-keytab.keytab

sudo nano /etc/sssd/sssd.conf

The SSSD configuration file should contain the following: [sssd]

services = nss, pam

config_file_version = 2

domains = system76.local

[nss]

entry_negative_timeout = 0

#debug_level = 5

[pam]

#debug_level = 5

[domain/system76.local]

#debug_level = 10

enumerate = false

id_provider = ad

auth_provider = ad

chpass_provider = ad

access_provider = ad

dyndns_update = false

ad_hostname = pop-os.system76.local

ad_server = adserver.system76.local

ad_domain = system76.local

ldap_schema = ad

ldap_id_mapping = true

fallback_homedir = /home/%u

default_shell = /bin/bash

ldap_sasl_mech = gssapi

ldap_sasl_authid = POP-OS$

krb5_keytab = /etc/sssd/my-keytab.keytab

ldap_krb5_init_creds = true

After saving, set the appropriate permissions on that configuration file:

sudo chmod 0600 /etc/sssd/sssd.conf

5. Configure PAM:

sudo nano /etc/pam.d/common-session

Look for the line that contains "session required pam_unix.so" and add this line immediately below it:

session required pam_mkhomedir.so skel=/etc/skel umask=0077

After saving that file, restart SSSD:

sudo systemctl restart sssd

6. Add the domain administrator to the local sudo group:

sudo adduser administrator sudo

Then, test a login with the domain administrator:

su -l administrator

7. Reboot the computer. At the login screen, you can click the "Not listed?" link, and type

the username of any domain user. After logging in with a domain user for the first time,

that user will appear on the login screen's user list. Auto-Mount Second Hard Drive

If you've added a second drive to your computer when you originally ordered it, then it came pre- formatted and ready for use; no additional setup is required. The drive will be made available when you first open it up after each time you start your computer, and will remain mounted until the next start/boot or until you click the eject (⏏) icon. If you prefer to have the drive made available (mounted) automatically every time you start your computer, this is possible with some configuration changes.

Auto-mounting is a per user configuration, and is optional. Extra drives can always be accessed by clicking on them in the file explorer, which will mount the drive if not currently mounted.

Create Mount Point

Extra drives require a folder on your primary drive where the drive's contents will be made available. This folder is called a mount point. You'll need to create an empty folder in your home folder to serve as this mount point. Navigate to a location for the mount point (e.g. your

Documents folder), then right click and choose New Folder, then name the folder appropriately; something like ExtraDrive would work. It's recommended not to include any spaces in your mount point name.

Copy Mount Point Location Once you've made a mount point, double click it to open it and ensure that it is empty. Any contents within the mount point will be inaccessible while the drive is mounted. Press Ctrl + L on your keyboard, then select all of the text in the location bar that appears and press Ctrl + C to copy it. We'll need it later.

Locate The Drive

Press the Super Key and then type in Disks and press Enter. It should open up a window similar to the one below:

Click on your extra drive in the list. You can identify it by size, or by the label; the extra drive is usually /dev/sdb or /dev/sdc .

(Optionally) Format The Drive

If this is a new drive, and it is not formatted, it will need to be formatted before use. If the drive has formatting from the manufacturer, it is usually best to format it to the standard format (Ext4).

First, delete the existing partition by clicking the minus button. Then click the plus icon, change the type to (Ext4), give your drive a name, such as Extra Drive, and click Create.

Open Extra Drive Mount Options

Press the Super key and then type in Disks and press Enter. Click on the Extra Drive Partition under "Volumes", then click on the Gear icon to open the options menu for the Volume. Then click on Edit Mount Options.

Set Mount Options

Turn off the Automatic Mount Options switch, then set the fields as follows:

OptionValue Mount Checked at ☑ startup

Show in Checked user ☑ interface

Require additional Unchecked authorization ☐ to mount

Display{leave Name blank}

Icon {leave Name blank}

Symbolic {leave Icon blank} Name

nosuid,nodev,nofail,x- {unlabeled - field} show

/home/... Mount {from Point step 2}

Identify /dev/disk/by- As uuid/...

Filesystemext4 Type *

* This will match the default settings. Set accordingly if you reformatted your extra partition with a different filesystem type.

The red box shows the item we don't want to change and the green box shows the item we want to change. Save And Restart

Once the mount options are set up correctly, click OK to save the changes and then restart your computer. After the computer starts back up, ensure that there are no error messages during the boot, and that the drive is mounted when booting. You can check this by opening your home folder and ensure that you see the eject icon (⏏) next to the drive before you click on the drive. Back Up Files

There are many ways to back up important files on your computer. It's a personal choice which one to use based on habits, preferences, and what is being backed up. We will outline a few options here, but the final solution may be a mix of several of these options.

Data Policy

The key to good backups is having the data automatically backed up, accessible, secure, and distributed. All backup solutions should be evaluated against these 4 criteria:

Automatic: Data is automatically backed up. Manual copies work well in some cases, but

automatic backups makes sure it's always fresh, and that nothing is lost if a manual backup

isn't performed.

Accessible: Data needs to be retrievable and easily restorable if the original is lost.

Secure: Data needs to be accessible only by the owner. Cloud solutions are convenient, but

additional steps may be required to make sure the data is private.

Distributed: Data needs to be in multiple places. If all the copies are in one location, the risk

for data loss increases (for example, if your data is saved to a USB disk in your house, but

there is a fire, both the computer and the backup disk could potentially be lost at the same

time.)

NOTE Good practice to prevent data loss is to ensure that any important files

“are backed up in at least three (3) places. Two (2) copies on-site, and one (1)

copy off-site. This off-site backup could be through a cloud storage solution, or a

drive that's kept at a relative's house, or in a safety deposit box. User Files

User files are the most common data to back up. This includes documents, pictures, and other personal files. Typically, these documents are all saved in your home directory ( /home/username ).

Deja Dup

Déjà Dup is a popular, straightforward backup option. It can be used to back up user data locally, remotely, or to a cloud server. It can also be set up to run automatically on a regular basis.

Installation

To install Deja Dup, search for it in the Pop!_Shop, Ubuntu Software or run this command:

sudo apt install deja-dup

Once Deja Dup is installed, it will be labeled as "Backups" in the Activities overview.

Selecting Data to Backup

With Deja Dup (Backups) open, you can select the folders you wish to save or ignore using the pages listed on the left. By default, Deja Dup will backup your entire home directory, which includes your Documents, Pictures, Music, and Videos folders. It ignores your Downloads folder and any items in the Trash. Use the plus and minus buttons as needed to modify both categories.

Choosing a Backup Location

On the Storage location page, you can configure the location where your backup will be stored.

The available options are:

Local Folder - Back up data to an internal or external hard drive, SSD, or USB flash drive. Pros: Easy to set up, automatic, accessible, and secure. Backups typically happen quickly because they're using a high-speed direct connection.

Cons: Single point of failure. If the computer is lost or if both drives fail, the data is lost.

Network Server - Back up data to another computer or storage device (NAS) on your network.

Pros: Same advantages as the local backup, but with less of a single point of failure.

Cons: Requires some networking knowledge and the ability to set up another computer or storage device to hold the data. Backups typically take longer because of slower transfer speeds over the network (but still faster than internet storage.)

Google Drive - Back up to Google's cloud service.

Pros: Remote (off-site) location provides geographical redundancy, and is accessible anywhere there is an internet connection.

Cons: Requires a Google account. Your data could be accessible by Google or third parties

(including law enforcement.) Will be slower to back up (depending on your internet speed), and uses your data transfer/bandwidth.

Scheduling Regular Backups

To schedule backups to run automatically, select Scheduling from the list on the left, then flip the switch to enable automatic backups. Schedule the backup for a time when you know the location will be available (for example, when you know you'll have the USB drive plugged in). Many people choose to let their backups run overnight or on weekends.

Restoring Your Data

To restore your data with Deja Dup, select the Overview page, then click the Restore... button.

This will allow you to select the location containing the Deja Dup backup folder, and will copy the data from the most recent backup to its original location.

Cloud Desktop Clients Many online services offer small amounts of free storage and desktop cliens with automatic synchronization. A few examples of companies that offer cross-platform cloud storage are:

Dropbox

Mega.nz

Box.com (CLI only)

Google Drive does not have a native Linux client, but there is built-in support within Pop!_OS and

Ubuntu. However, the built-in support does not automatically copy and keep files locally as the above desktop clients do.

One solution to keep the data from being read by cloud storage providers is to keep all of the files in password-protected archives. A .zip or .7z file with a password is encrypted, and can't be easily accessed by anyone without the password.

Another option is Nextcloud. Nextcloud is an open-source cloud solution that is completely controlled by the user. The remote server needs to be set up manually (or a trusted third party could be paid to set up and maintain the server.)

Copy Data Manually Using the Files App

With an external drive attached, data can be manually copied to an external drive. Use the file browser to copy data from the internal drive to the external drive.

Pros: Easy and straightforward to copy data from one place to another.

Cons: Because the process is manual, updates and changes to the data may be missed over time.

No geographic redundancy.

Terminal Only (Advanced)

In certain situations, you may only have access to a command-line interface. The command-line rsync program verifies data integrity and avoids re-copying files that are already backed up.

An example of the rsync command would be: rsync -a ~/ OUTPUT_DIRECTORY

...where -a tells rsync to output as an archive, ~/ refers to your home directory as the source location, and OUTPUT_DIRECTORY should be replaced with the location of your external disk or your remotely mounted server.

E-mail

If you access your email through a web browser, manual backup is likely unnecessary, as the data is always being held on a remote computer. If you use a local client such as Thunderbird or

Evolution, then the data may be stored in multiple locations (such the email server and other client devices), or only in one. If the IMAP protocol is used, the data is synchronized between all clients; if the POP protocol is used, then the data is only stored on the client where the email was viewed.

Web Browser

Pros: All data is always on a remote server.

Cons: Requires internet access. Email providers may have access to data.

IMAP

Pros: Data is synchronized between the remote server and local devices. No single point of failure.

Cons: Requires internet access. Email providers may have access to data.

POP/POP3

Pros: Data is more secure, as it's only in one location at any time.

Cons: The client storing data is a single point of failure. User Configuration Files

Most user configuration files are stored in the home folder. These can generally be copied and saved just like any other file, but restoring these files may not always work. Occasionally, programs change how, where, or in what format their configuration files are stored. This means they won't always be restorable, or may not function as intended. It's recommended to back these up as needed, but remember that they may not restore correctly.

Most user configuration files can be found in the home directory, and begin with a period (for example, the .config directory.)

Programs

Because programs are readily available online (usually through software repositories), we don't recommend backing them up. They are spread throughout the file system and are difficult to restore properly. To back up programs, we recommend keeping a list of package names for the programs that you use so they can be reinstalled with a single package manager command, like so:

sudo apt install gnome-tweak-tool mousepad aptitude thunar

Program Configuration Files

System-wide program configuration files can be found in many locations of the OS. The most common location is the /etc folder. Most of these can be backed up in the same ways that user configuration files can, with the same caveat about changes in configuration format when restoring these files. (Unless you have modified system-wide configuration files manually, most configuration is usually stored per-user in the home directory.) Change User Password

If you can't log into your computer, you can follow these instructions to reset the password for any user. Pop!_OS and Ubuntu allow for the root user to reset the password for any user account. In order to get to the root user, we need to restart the computer and use what's called "single user mode", which is the low level repair system for the computer.

Pop!_OS 18.04 and Later

On a fresh install Pop!_OS 18.04 and later, systemd-boot is used rather than GRUB. Please follow these instructions to reset your password. If your operating system is anything other than Pop!_OS

18.04 and later, please use the GRUB section.

First, bring up the systemd-boot menu by holding down SPACE or the ESC key. On the menu, choose Recovery Mode.

Once the recovery operating system boots, close out of the installation window or choose “try demo mode” (be sure not to choose any install or repair options, as this could result in data loss).

Ubuntu

If you are using Ubuntu we can boot from a live disk and here are instructions for creating the live disk. Once the live disk has been created refer to this article for booting from the live disk.

Mounting the Installed OS

Press Super+T to open a terminal, and type in these commands: lsblk

This will show what the main internal drive is named, which will have 4 partitions on it. We will be working with the 3rd partition. If the main drive is an NVMe drive, it will be /dev/nvme0n1p3 and if the drive is a SATA or regular M.2 drive, it will be /dev/sda3 .

Next, run this command:

sudo mount /dev/sda3 /mnt

If the command fails and says mount: /mnt: unknown filesystem type 'crypto_LUKS' , then the hard drive has been encrypted, and additional commands are needed to unlock it. If the command succeeds (no output), then skip these next steps:

sudo cryptsetup luksOpen /dev/sda3 volume

sudo lvscan

sudo vgchange -ay

Take note as to what the volume group is called, substituting the correct info into this command.

Make sure that '-root' is on the end:

sudo mount /dev/mapper/data-root /mnt

Next, regardless of whether the drive is encrypted or not, run these commands:

sudo chroot /mnt

ls /home

Take note of the users on this computer, then run this command to change a user's password:

passwd john

Type in your new password, and then enter these commands:

exit

reboot Now, enter the original passphrase. Here you will be prompted for the new passphrase, and then to confirm the new passphrase. Containers on Linux

Sometimes an older version of a library or libraries for an application is needed for development. It is faster and easier to use LXC/LXD to setup a Container of that release and work in that Container.

Software

First open a terminal like so:

Pop!_OS: Super+T

Ubuntu : CTRL+ALT+T

Install the software with this command in the terminal.

sudo apt install lxd lxd-client

Setup

Tell LXD what storage and network is needed with this command:

sudo lxd init

Create a container

Now create our first container with this command:

lxc launch ubuntu:16.04 first This will create a container based on Ubuntu 16.04 with the name 'first'.

List and confirm that the container was created with this command:

lxc list

The container can be stopped with this command:

lxc stop first

Or the container can be deleted:

lxc delete first

Enter the container

Enter the container with this command:

lxc exec first -- /bin/bash

Or just one command can be issued without entering the container:

lxc exec first -- apt update

Sharing files

For pushing a file to the container:

lxc file push filename first/tmp/

For pulling a file from the container: lxc file pull first/tmp/filename . Changing your Desktop Environment

Pop!_OS and Ubuntu both include the GNOME desktop environment by default. A desktop environment is responsible for the look and feel of the graphical desktop, and includes many of the key programs that get used every day.

You can install an alternative desktop environment using the instructions below. If you run into trouble while using an alternative desktop environment, you may wish to revert to the default environment. To ensure the default GNOME desktop environment is installed in Pop!_OS, install the pop-desktop package:

sudo apt install pop-desktop

For Ubuntu, install the ubuntu-desktop package instead:

sudo apt install ubuntu-desktop

The desktop environment is basically the top graphical layer of the OS. The desktop environment is launched by a display manager; Pop!_OS and Ubuntu both use GDM (GNOME Display Manager) by default.

If multiple desktop environments are installed, GDM will display a gear icon, which will allow you to select the desktop environment you want to launch. You will need to either reboot or restart your display manager using sudo systemctl restart gdm before a newly-installed desktop environment will show up in the list of options.

Different Desktop Environments MATE

MATE is a simple and attractive desktop using traditional concepts. MATE is a fork of GNOME 2.

This command will install MATE and its dependencies:

sudo apt install -desktop-environment mate-desktop-environment-extras ubuntu-mate-themes

Cinnamon

Cinnamon is used in Linux Mint by default. Cinnamon strives to provide a traditional experience and is a fork of GNOME 3.

Cinnamon is installed with:

sudo apt install cinnamon-desktop-environment

GNOME

While Pop and Ubuntu contain GNOME by default, both include a number of customizations to

GNOME. You can also install a vanilla GNOME session to get the upstream GNOME experience.

You can install the vanilla GNOME session using this command:

sudo apt install gnome-session

KDE Plasma

The KDE Plasma desktop environment is a familiar working environment and looks similar to

Windows' desktop. It is highly customizable and looks clean. The KDE Plasma desktop and its dependencies can be installed with this command:

sudo apt install kde-standard

While installing KDE, you'll be prompted to choose a display manager:

Press Enter to select the OK option. (If the OK option is not selected, press Tab to select it.) At the list, press Enter again to keep gdm3 as your display manager:

UKUI

UKUI is a lightweight desktop environment based on a pluggable framework for Linux and other

UNIX-like distributions. It provides a simple experience for browsing, searching, and managing your computer. It is developed using GTK and Qt.

UKUI can be installed with:

sudo apt install ukui-desktop-environment

XFCE

XFCE embodies the traditional UNIX philosophy of modularity and re-usability. This environment provides a good amount of conformity for the programs written for it. XFCE also provides a highly customizable environment, while being leaner on resources.

You can install XFCE and its dependencies with this command:

sudo apt install xfce4 xfce4-goodies

While installing XFCE, you'll see a prompt to select your default display manager:

Press Enter to select the OK option. (If the OK option is not selected, press Tab to select it.) At the list, press Enter again to keep gdm3 as your display manager: LXDE

The Lightweight X11 Desktop Environment is a fast and energy-saving desktop environment. It looks similar to older versions of Windows. This is a lean desktop environment and can help extend battery life in laptops.

LXDE can be installed with:

sudo apt install lxde

While installing LXDE, you'll see a prompt to select your default display manager:

Press Enter to select the OK option. (If the OK option is not selected, press Tab to select it.) At the list, press Enter again to keep gdm3 as your display manager:

LXQt

LXQt is a lightweight Qt desktop environment. It's being developed as a successor to LXDE. It is focused on being a classic desktop with a modern look and feel.

LXQt can be installed with:

sudo apt install lxqt

Troubleshooting

Desktop environments can interfere with each other or change system-wide settings. Issues with a desktop environment's appearance can generally be fixed by changing the theme in the

Appearance control panel. Customize Notification Dialog

Xfce will change the notification dialog to its own. It can be configured with this command:

xfce4-notifyd-config

Remove Duplicate Options From Login Screen

Some desktop environments provide more than one session. For example, Cinnamon provides both a 2D and a 3D session. The options available at login are located in the /usr/share/xessions directory, and unneeded options can be removed by deleting the corresponding files. For example, to remove Cinnamon's extra option:

sudo rm /usr/share/xsessions/cinnamon2d.desktop

Change Automatic Startup Programs

Some desktop environments configure additional programs to start at boot. To change them, run the Startup Applications program and turn off any unwanted startup programs.

Double Lock Screen Passwords

GNOME does not use a screensaver (only a lock screen), but other desktop environments may install the classic GNOME screensaver package as a dependency. If you're being prompted for a password twice after suspending or locking the screen, disable the second prompt with this command:

gsettings set org.gnome.desktop.screensaver lock-enabled false

Or, if that doesn't stop the second prompt, uninstall the redundant screensaver with this command: sudo apt purge gnome-screensaver

Enable Cinnamon Lock Screen

If Cinnamon's desktop lock screen isn't functioning, this command will re-enable it:

gsettings set org.cinnamon.desktop.lockdown disable-lock-screen false

Removing Desktop Environments

If you no longer want to use a desktop environment, it can be removed by using:

sudo apt autoremove --purge ...

For example, to remove KDE:

sudo apt autoremove --purge kde-standard Customize Dock

Pop!_OS and Ubuntu both contain an application dock on the left side of the screen. In Pop!_OS, the dock is only visible when the Activities menu is open. In Ubuntu, the dock is always visible. By installing a GNOME extension called Dash to Dock, you can adjust this preference, move the dock to the bottom of the screen, and more.

Dash to Dock on Pop!_OS

To install Dash to Dock on Pop!_OS, visit the extension's page in Firefox.

If you see a purple message at the top about GNOME Shell integration, click the link to install the

Firefox browser extension, then click the blue "Continue to Installation" button, and finally the blue

"Add" button.

After refreshing the web page, you should see an On/Off switch at the top right of the page. Click the switch to toggle it to the "On" position.

On the resulting pop-up, click Install to download and install the extension.

At this point, Firefox can be closed. The dock will display on the left side of the screen.

To customize the dock's settings, right-click on the "Show Applications" button and click "Dash to

Dock Settings."

In the Dash to Dock Settings window, you can choose which screen edge to display the launcher on, such as the bottom of the screen:

You can also choose to extend the dock into "Panel mode," which looks similar to Ubuntu:

Dash to Dock on Ubuntu

Ubuntu includes a lightweight version of Dash to Dock, which is why the dock already displays on the left side of the screen by default. When you enable the full version of Dash to Dock, it will override the built-in version.

To install Dash to Dock on Ubuntu, you will first need to install the "native host connector," which allows Firefox to install and remove GNOME Shell extensions. This component is installed by default in Pop!_OS, but it is not installed by default in Ubuntu. Open a terminal and run this command to install the native host connector:

sudo apt install chrome-gnome-shell

Enter your password and press "y" to confirm if necessary.

Next, visit the extension's page in Firefox.

If you see a purple message at the top about GNOME Shell integration, click the link to install the

Firefox browser extension, then click the blue "Continue to Installation" button, and finally the blue

"Add" button.

After refreshing the web page, you should see an On/Off switch at the top right of the page. Click the switch to toggle it to the "On" position.

On the resulting pop-up, click Install to download and install the extension.

At this point, Firefox can be closed. The dock will now display on the left side of the screen, but not in Panel mode.

To customize the dock's settings, right-click on the "Show Applications" button and click "Dash to

Dock Settings."

In the Dash to Dock Settings window, you can choose which screen edge to display the dock on, such as the bottom of the screen: Moving the Application Launcherin Ubuntu 16.04 LTS

Ubuntu 16.04 LTS includes its own dock as part of the Unity desktop environment. If you'd like to put the dock at the bottom of the screen in 16.04, enter this command in a terminal:

gsettings set com.canonical.Unity.Launcher launcher-position 'Bottom'

This will set the dock to the bottom of the screen:

To reset the position of the dock to the left, run this command:

gsettings set com.canonical.Unity.Launcher launcher-position 'Left' Disk Encryption Passwords (multiple)

With Full Disk Encryption more than one password to decrypt the drive may be needed if more then one person is using the computer. In this situation seven extra passwords can be added with the instructions below.

List Partitions

First let's list the partitions of all of the installed drives:

lsblk -f

The output may be different based on the drive setup and partition table. You can see the root partition at mountpoint '/'. From there we can use that output to run this command:

sudo cryptsetup luksDump /dev/sda3

Replacing '/dev/sda3' with the location of the root partition on your system. With the output of this command we can see the seven extra slots that we have for passwords to decrypt the drive. Slots

1-7 are the open ones and Slot 0 is the current one the system has set.

Set Extra Password

Following the partition scheme from the previous command we can form the next command to add a new key to the open Key Slot:

sudo cryptsetup luksAddKey /dev/sda3

This command will require the current encryption password before new password can be added. Confirm The Password

Let's run this command again to confirm that the additional password is set:

sudo cryptsetup luksDump /dev/sda3

You should see that Key Slot 1 is now enabled so this confirms the new password is set. Encrypt Extra Drive

The Disks application can be used to encrypt the extra drive and it comes pre-installed on Pop!_OS and Ubuntu.

In this screenshot the extra drive can be seen and then select the Gear icon under Volumes. Then select the Format Partition... option to open the 'Format Volume' window.

Then use the 'Format Volume' window to format the volume with the options to name the volume and use the Ext4 partition with LUKS.

Decrypt on Login

If we would like to decrypt the drive on login into the system there are settings for the encryption.

In the Disks application on the drive that is encrypted then click on the LUKS partition and then the

Gear icons on the bottom of the Volumes table. Then click on Edit Encryption Options... then unclick User Session Defaults. Now enter the Passphrase for the encrypted drive and hit OK button. It will ask for your password and once it is entered the drive will be decrypted on login.

Editing Mount Options

The Extra Drive article goes over changing the mounting options for the drive. File Sharing (Pop!_OS)

Install the needed package

First let's open a terminal using either CTRL+ALT+T (Ubuntu) Super+T (Pop_OS).

Then run this command:

sudo apt install gnome-user-share

Enable File Sharing

Next we will open the Settings application and go to Sharing. Then click the toggle to the right of

'Sharing' to turn on sharing. Now click File Sharing, turn it on and make sure the network you want to share it with is enabled.

Connecting to the Public Folder

On the computer that you want to share to, open the Files application (Nautilus) and click on

Other Locations on the left side panel. In this example you will see the machine that we are using as "system76's public files on pop-os". Click the name that matches the name of the computer that you are sharing from and you will see the folders and files that are on the other computer's Public Folder. Format Your Drive

Live Disk or Pop Recovery

In order to format the drive that has your OS on it we will need to boot from either a live disk or the Pop Recovery partition.

NOTE Formatting the entire OS drive (including the Recovery partition) requires booting from a live disk or another drive.

Disks application

The Disks application can be used to format the drive to remove any personal data. Disks comes pre-installed on Pop!_OS and Ubuntu.

In this screenshot the drive is a USB Flash Drive, though the concept is the same for any drive, including the drive where your OS is installed. First left-click on the drive on the left side then left- click on the top right menu with three dots (three lines on older releases).

Now select the Format Disk... option then make sure to have the 'Compatible with modern systems and hard drives > 2TB (GPT)' selected (you can use either the Quick option or the Slow option). Graphics Switching (Pop!_OS)

Many laptops these days have switchable graphics, which allow users to switch between several

GPU modes spanning power use and performance. The following System76 laptops have these switchable graphics capabilities:

Adder WS (addw1, addw2)

Galago Pro (galp5 - NVIDIA models only)

Gazelle (gaze14, gaze15)

Oryx Pro (oryp4, oryp4-b, oryp5, oryp6, oryp7)

Pop!_OS includes utilities for switching between these modes, which you can learn more about below.

Graphics modes

Integrated

Integrated graphics mode uses the integrated GPU only and turns off the NVIDIA GPU. This mode uses less power, leading to a longer battery life and less fan noise.

NVIDIA

NVIDIA graphics mode uses the discrete NVIDIA GPU only. This provides a better graphical experience, but reduces battery life. Most external display ports on System76 laptops are connected to the NVIDIA GPU only. (Some models, such as the Gazelle, may also have external ports connected to the integrated GPU.) Hybrid

Hybrid graphics mode uses both the integrated GPU and the discrete NVIDIA GPU. Applications will use the integrated GPU unless explicitly requested to use the discrete GPU.

Vulkan applications must be launched with this command to be rendered on the dGPU (NVIDIA):

__NV_PRIME_RENDER_OFFLOAD=1

GLX applications must be launched with this command to be rendered on the dGPU (NVIDIA):

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia

Hybrid graphics mode is available on 19.10 and later.

Compute

Compute graphics mode uses the integrated GPU for all rendering. The NVIDIA GPU is left available, allowing it to be used as a compute node.

Switch graphics

Pop!_OS by System76 includes the system76-power package, which includes the ability to switch between integrated, NVIDIA, and hybrid graphics modes.

From GNOME Desktop

Click the system menu in the top right corner of your screen to access graphics switching.

Click on NVIDIA, Integrated, Hybrid, or Compute depending on your use case.

Once you select a mode, you will be prompted to reboot. From the command line

If you are not using the GNOME Desktop Environment, you can use the system76-power command line tool. You can see the options with this command:

system76-power help

For seeing which graphics mode the system is using:

sudo system76-power graphics

For switching to NVIDIA graphics:

sudo system76-power graphics nvidia

For switching to integrated graphics:

sudo system76-power graphics integrated

For switching to hybrid graphics:

sudo system76-power graphics hybrid

For switching to compute mode:

sudo system76-power graphics compute

Sources

The source code for the system76-power utility and the GNOME Shell extension can be found on

GitHub: system76-power gnome-shell-extension-system76-power HDMI Audio Configuration

If you're using an HDMI display with its own built-in speakers, you can configure your system to output audio over the HDMI connection. (These steps should also work for DisplayPort connections.)

Using the Sound Settings

To make all sound play over HDMI, open the menu in the top right of the screen, then click the cog icon in the bottom left of the menu.

Choose the Sound page using the left sidebar.

Under the "Output" section, click the dropdown box to display a list of output devices, then select the HDMI device you wish to use for audio output.

After selecting the appropriate device, sound should play through the HDMI connection. You can use the "Test" button to test the HDMI-connected speakers.

Using PulseAudio Volume Control

The PulseAudio Volume Control utility also allows you to change the sound output. In addition to changing the default output device, you can also set the output device (and volume) on a per- application basis.

PulseAudio Volume Control can be installed using this command:

sudo apt install pavucontrol Then, open the utility by running pavucontrol in a terminal, or by opening the PulseAudio Volume

Control app using the Activities menu.

On the "Output Devices" tab, the output device with the green checkmark selected is the default

(or "fallback") audio device.

You can set a device as default by clicking the green checkmark next to it.

On the "Playback" tab, each application that's playing audio will be listed. You can change which output device a specific application is using by selecting it under the drop-down box next to that application. HiDPI Multi-Monitor Support

What Is HiDPI?

With 4K monitors becoming more prominent in the marketplace, it's crucial to define the difference between a high resolution display and a true HiDPI display. There's a great series of articles explaining the difference between high resolution and HiDPI.

In short, HiDPI refers to pixel doubling: drawing an image with twice as many physical pixels in each dimension than requested in virtual pixels. For example, an icon or image might be 64 virtual pixels tall, but on a HiDPI display, it’s drawn with 128 physical pixels. This makes the icon twice as crisp in any angles or curves, or allows for twice as much detail in the photo.

So, why pixel doubling and not just increasing the density on a 15" display from, say, 1080p to something like 2880×1620? To get you user interface at the same physical size as on the 1080p display, you would have to scale it by 1.5×. That means a dot that is requested to be drawn at 1 virtual pixel now has to be drawn at 1.5 physical pixels.

Half pixels don’t exist, so the software would have to compensate with aliasing. Aliasing = blurring. So with a higher resolution display, you get a blurry UI. Fonts do have mechanisms to deal with this, so it’s not an issue there, but UI elements like icons and strokes around buttons will end up looking worse on a 1.5× display than a 1× display.

For a fantastic explanation on HiDPI, please read Cassidy's full series of articles available here.

Handling HiDPI And LoDPI Simultaneously

While HiDPI displays work well, things can get a little funny when using both HiDPI and LoDPI displays together. Generally, it's best to make all displays match the same scaling factor (all HiDPI or all LoDPI). The System76 driver takes care of this automatically on HiDPI laptops.

When you connect a non-HiDPI display to your HiDPI laptop, the System76 driver will set the resolution of the internal display to half of its native resolution and adjust the scaling factor (from 2x to 1x) to match the external monitor. This makes the picture a little fuzzier than normal but keeps most applications looking the right size on both displays.

This dialog appears whenever the driver detects a new mixed-DPI configuration:

You can keep the changes or revert if you'd prefer to keep each display at its native resolution.

Most of the time you'll want to Keep Changes, but there are a few cases where the Revert option is useful....

Big/Tiny Applications

Some applications won't recognize the change in scaling factor until they're restarted. This includes LibreOffice, Chrome/Chromium, and applications using the QT toolkit. With a few exceptions like GIMP and , apps will pick up the right scaling if you close and restart them.

(Don't forget to save your work!)

If you don't want to restart these applications right now, you can choose the Revert button in the dialog, and the System76 driver will set the HiDPI monitors back to their native resolution and scaling. They will still look big on the non-HiDPI monitors, but will look normal on the HiDPI displays.

NVIDIA Issues

Using the Displays panel in the System Settings center to change resolution or layout can cause problems on NVIDIA systems because of the way scaling is handled. Please use the NVIDIA X

Server Settings application if you have an NVIDIA GPU.

Disable HiDPI Daemon

Ubuntu/Pop!_OS 18.04 and up

gsettings set com.system76.hidpi enable false

You can also open Gnome Control Center and go to the Displays panel under the Devices section. In the HiDPI Daemon section, set the Enabled switch to off. The content for the "What is HiDPI" section of this article was borrowed from Cassidy James Blaede under the CC BY-SA 3.0 US license. Links provided where appropriate. Install Pop!_OS in VirtualBox

This is a quick tutorial on getting Pop!_OS to run on a virtual machine. Especially useful if you want to play around with Pop!_OS and see what it can do without having to commit to installing it somewhere.

First things first. Please ensure that you have:

Downloaded the Pop!_OS ISO

Installed the VirtualBox package on your favorite Linux based OS and the guest OS

extensions.

Once you have that accomplished run VirtualBox.

Step 1

This is the initial screen of VirtualBox after freshly installing on your OS. Click on the "New" button on the top left corner. It should be clearly marked with a colorful blue icon.

Step 2

Once you click on the new, button you should have the screen where you can name the VM and what kind of operating system. We use Pop!_OS, of course, but you can use whatever you like. Set your type to "Linux" and the version to "Ubuntu (64 bit)". Your screen should look like the screenshot above. Click "Next" button to move to the next screen.

Step 3

Set the memory to 2048 MB. The default value of 1024 MB is not enough to run Ubuntu and you will have problems. You can of course set it to as high as you like. Click "Next" button to the next screen. Step 4

Pop!_OS will need at least 15GB but it is recommended to give it 20GB if possible. After adjusting storage, feel free to accept the defaults and click the "Create" button.

Step 5

You can accept the default value here as well and click on the "Next" button.

Step 6

This dialog tells you how you want to grow the disk as you put content on it. The default is the correct answer here as you don't really want to allocate space that you will not actually use. Click on the "Next" button to the next screen.

Step 7

Feel free to just pick the defaults here and click on the "Create" button.

Step 8

You should be all ready to run! Hit the "Start" button, the green arrow on the toolbar at the top.

Step 9

In order to run, it needs a startup disk, in this case the Pop!_OS iso file that you downloaded and probably in your Downloads directory. Using the above dialog, click on the little icon with the folder and the green up arrow.

Go to your Downloads area and select the ISO image you downloaded and click "Open". Step 10

Click on the Start button on the toolbar. It is the icon with the green arrow.

That's it! You're done! Visit our Pop!_OS page and please give us feedback on how Pop!_OS is working for you!

"The screen resolution is too small!"

If you notice that the installer for Pop!_OS is too large to fit into the default screen resolution in

VirtualBox, try this:

Move the installation window slightly (but not completely) out of the way, right-click on the desktop and select "Display Settings". From here you will be able to change the virtual machine's screen resolution. Increase the virtual machine resolution from the default 800x600 to 1024x768 or above, then click Apply in the top right-hand corner.

You will now be able to continue with the installation. Install/Use VPN

Install ProtonVPN Graphical Client

Download the .deb package from their website

Once signed in click the Downloads tab on the left side of the website and click on the Download button for GNU/Linux.

Click the Download .deb button for Ubuntu and Pop!_OS.

Next be sure to leave Open with Eddy (default) selected so that the next window pops up.

Installing the .deb package

Now click the Install button to install ProtonVPN using Eddy. Once that is down close the Eddy window.

Install the package

Open a Terminal window to install the actual package as the .deb file that we installed added the repository so that our system knows where to find the real ProtonVPN package.

On Pop!_OS:

Press Super+T on your keyboard. A Terminal window should open.

On Ubuntu: Press Ctrl+Alt+T on your keyboard. A Terminal window should open.

Next enter the following commands followed by Enter:

sudo apt update

sudo apt install protonvpn

Using the Graphical Client

Open the ProtonVPN client by clicking Activites on the top left of your desktop and search for

ProtonVPN in the search box. Enter your login information which should be the same as the information that you used to sign into the ProtonVPN website. If that doesn't work you will need to reach out to ProtonVPN support.

Now that we are signed into the service with the ProtonVPN client we can connect to any server that we have access to in our plan though ProtonVPN.

From this window we can see our Upload and Download speeds including the load that the server is under (how much it is being used currently) and our IP address.

Install a VPN using OpenVPN files

Open Terminal

If you are on Pop!_OS:

Press Super+T on your keyboard. A Terminal window should open.

If you are on Ubuntu:

Press Ctrl+Alt+T on your keyboard. A Terminal window should open.

Install Packages Enter the following command followed by Enter:

sudo apt install network-manager-openvpn-gnome

Open Network Settings

Access OpenVPN setting in the Settings application (GNOME Control Center)

Getting an OpenVPN (.ovpn) file

OpenVPN uses .ovpn files for setting up the VPN on your system and includes the servers to contact. Most VPN providers will provide .ovpn files such as the following:

ProtonVPN

Private Internet Access

Using an OpenVPN (.ovpn) file

After getting the .ovpn (OpenVPN file type) click the plus icon to the right of the VPN section. A dialog will as show will open. Click 'Import from file...'

Select the .ovpn file downloaded from your VPN provider. Keep PPAs Enabled when Upgrading

Normally, all Personal Package Archives (PPAs) and third-party repositories are disabled when updating to a new release of the operating system. This helps keep upgrades simpler and prevents

PPAs that haven't been properly updated for the new release from breaking the upgrade.

There are two ways to tell update-manager to keep PPAs enabled. The AllowThirdParty = yes configuration option tells update-manager to keep all third-party software repositories (repos) enabled. While useful for some users, this option is quite dangerous for a PPA maintainer to use, since it's impossible to test all combinations of repos a user may have added.

The other option, which until now has been little documented, is to add the repo you want to keep enabled in the [ThirdPartyMirrors] configuration section. This is useful for PPA and third-party repo maintainers who want or need to keep it enabled through upgrades. Be careful to test your

PPA/repo and packages upgrade to make sure everything transitions correctly. Turning this on when your PPA/repo doesn't properly support the new release can break the upgrade.

Creating Your Config File

Create a file in /etc/update-manager/release-upgrades.d/ with a .cfg extension. You should give it a descriptive and unique name since other packages may provide their own config files.

Enable All PPAs/Repos on Upgrade

Users who want to keep all PPAs/repos enabled can put the following into their .cfg file:

“ [Sources]

AllowThirdParty = yes

Enable One Specific PPA/Repo

To keep one specific ppa/repo enabled, create a key = value pair inside a [ThirdPartyMirrors] section:

[ThirdPartyMirrors]

“myppa = http://ppa.launchpad.net/myppa/stable/ubuntu/

The key can be any string as long as it's unique within the section. The value is the url of the ppa you want to keep enabled. You can find this url in the .list file for the PPA, which can be found in

/etc/apt/sources.list.d/ . Manage Repositories (Pop!_OS)

Accessing Repoman

Pop!_OS' tool for adding, removing and editing repositiories is called Repoman which is a part of the Pop!_Shop.

Click on the gear icon in the top right of the Pop!_Shop window. Once Repoman is opened, click on the Extra Sources tab there will be options to add repositories with the Plus button (on the bottom left). Select a repository from the list and then click on the Edit button (next to the Plus button) to edit the selected repository.

Repoman can be also be used to add, remove and edit Flatpak Sources starting with Pop!_OS

20.04 LTS. For command-line use of Flatpak the following commands can be used:

flatpak remotes

This is used to list the remote/sources configured on your system.

flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

This command is used to add a remote/source if it doesn't exist on your system and in this example the Flathub remove/source is being added.

flatpak remote-delete flathub

If we want to remove a remote/source the following command can be used.

flatpak search inkscape This command is used to search for a certain package (inkscape in this case) in the coufigured remotes/sources on this system.

flatpak install flathub org.inkscape.Inkscape

Here we are installing inkscape using the Flathub remote/source.

flatpak uninstall org.inkscape.Inkscape

This will remove the inkscape package from this system.

flatpak run org.inkscape.Inkscape

This command will run inkscape once it is installed on the system.

flatpak update

This will update all of your installed Flatpak applications and runtimes to their latest versions.

flatpak list

This will list all of the installed applications and runtimes.

For more information about Flatpak commands look here. Manage Repositories (Ubuntu)

Accessing Software & Updates

Ubuntu's tool for adding, removing and editing repositories is called Software & Updates.

Once Software & Updates is opened, click on Other Software tab. Under this tab, add repositories with the Add... button. Select a repository from the list and then click on the Edit... button (next to the Add... button) to edit the selected repository. OpenVPN Install

Open A Terminal

Pop!_OS

Press Super+T on your keyboard. A Terminal window should open.

Ubuntu

Press Ctrl+Alt+T on your keyboard. A Terminal window should open.

Install Packages

Enter the following command followed by Enter:

sudo apt install network-manager-openvpn-gnome

Open Network Settings

Access OpenVPN setting in the Settings application (GNOME Control Center)

Getting a .ovpn file

OpenVPN uses .ovpn files for setting up the VPN on your system and includes the servers to contact. Most VPN providers will provide a .ovpn file such as the following: ProtonVPN

Private Internet Access

Using a .ovpn file

After getting a .ovpn (OpenVPN file type) click the plus icon to the right of the VPN section. A dialog will as show will open. Click 'Import from file...'

Select the .ovpn file downloaded from your VPN provider. Pop!_OS Customization

The GNOME desktop environment is highly customizable. With a few extensions, the desktop can look and feel like many other operating system's desktops. Launcher bars can be added, window lists can be used, and the overall look and feel of the desktop can be changed.

To install a customization, simply head to extensions.gnome.org to install, remove, and configure currently installed customizations. A web browser plugin is needed to interact with the site, and it will prompt for installation if needed. Remember to refresh the page after the plugin is installed.

We will share some of the more popular extensions, but there are many more to choose from! If one is found and it isn't currently working, or breaks with an update, then try a different extension to see if it works better.

User Themes

User Themes

This extension allows for the desktop to be themed in further ways than default. Many themes and extensions can be installed from opendesktop.org, among others. This extension is installed by default in Pop!_OS, and can be added to Ubuntu 18.04.

Dash to Dock

Dash to Dock

This extension brings a launcher similar to the Unity launcher on the left side, or the macOS launcher on the bottom. It is high customizable and allows for different locations, styles, sizes, and layouts. This is included by default in Ubuntu 18.04 and can be added to Pop!_OS.

Backslide

Backslide

This extension is a wallpaper slideshow for your desktop. After choosing a folder of pictures, they will be rotated automatically at a predefined time period.

Window List

Window List

This extension adds a window list to the bottom of the monitors. This shows what windows are open, and allows for them to be minimized, maximized, and closed from the bar, similar to

Microsoft Window's window list.

Gnomenu

Gnomenu

This extension adds a traditionally styled, full featured menu to GNOME. This menu is similar to a traditional Window's Start Menu, and is highly customizable for how it looks and functions. Appindicator Support and TopIcons Plus

Appindicator Support

Top Icons

Appindicator Support and TopIcons Plus both serve to add the ability for programs to use an indicator icon to show they are running. This functionality has been removed in recent versions of

GNOME, and an extension is needed for the functionality. These 2 programs work slightly differently, and work better in some setups vs. others. If one doesn't work, try the other one.

See blogs.gnome.org for more background on the removal of the support from default GNOME environment.

Internet Radio

Internet Radio

Internet Radio adds a quick menu integration to play various radios stations found online. A few default stations are included, and many more can be found at www.internet-radio.com. Simply right-click on the .m3u file and choose 'Copy link address', and add that as a station to the

Internet Radio icon at the top right of the menu bar. Sound Output Device Chooser

Sound Output Device Chooser

The Sound Output Chooser adds a quick change option to the system menu in the top right of the screen. This allows for changing audio inputs and outputs and adjusting volume levels quickly.

CPU Power Manager

CPU Power Manager

CPU power meter allows for quick switching of various CPU frequency settings.

Extension Update Notifier

Extension Update Notifier

This extension will check the various installed extensions and present a notification that there is an update to the extensions. Extensions are not automatically updated, so this extension provides the next best option.

Lock Keys Lock keys

The lock keys extension notifies you when you press the Caps Lock or the Num Lock and let's you know at all times if you have either button active. System76 Driver Install

This guide will show you how to add the System76 software repository and install the driver on

Ubuntu.

Please note these steps are not necessary in Pop!_OS, which includes the repository and the appropriate drivers installed by default.

Adding the Apt Preferences File

If you are running Ubuntu 19.10 or later, you will need to manually add an apt preferences file to

"pin" the System76 repository. This will tell apt to prefer System76 packages over standard

Ubuntu packages. Installing the System76 Driver will not be possible until this step is completed.

Create the apt preferences file here:

sudo /etc/apt/preferences.d/system76-apt-preferences

Add the following six lines (seven if you count the space in the middle):

Package: *

Pin: release o=LP-PPA-system76-dev-stable

Pin-Priority: 1001

Package: *

Pin: release o=LP-PPA-system76-dev-pre-stable

Pin-Priority: 1001

Save the file. Now you should be able to install the System76 Driver as described below. Installing the Driver

To install our Driver you need to run the following commands in the Terminal:

sudo apt-add-repository -y ppa:system76-dev/stable

sudo apt-get update

sudo apt install system76-driver

This installs the System76 driver and related utilities which are needed to enable full functionality for your system.

Install System76 Driver on Other Operating Systems

DISCLAIMER: This section explains how to install the System76 Driver on Arch and Fedora.

Except in some rare cases, System76 QA and Engineering teams do not test other OSes on our hardware. This section is provided for informational purposes only. System76 encourages users to take ownership of their machines and install whatever software or operating systems they prefer.

However, System76 does not guarantee the success or quality of experience when installing other

Operating Systems. Support typically makes best-efforts to offer direction or troubleshooting for other distributions.

We may determine that troubleshooting has exceeded the scope of support. If that's the case, further questions should be referred to those Operating System(s)' support forums.

Arch

First let's install some packages needed for the build process of the System76 Firmware Daemon and the System76 Driver: sudo pacman -S --needed base-devel git linux-headers

Run these commands in a Terminal to clone, build and install the System76 Firmware Daemon:

git clone https://aur.archlinux.org/system76-firmware.git

cd system76-firmware

makepkg -srcif

sudo systemctl enable --now system76-firmware-daemon

Now the System76 Driver can be cloned, built and installed using these commands:

git clone https://aur.archlinux.org/system76-driver.git

cd system76-driver

makepkg -srcif

sudo systemctl enable --now system76

Fedora

Run these commands in a Terminal to enable the community Fedora COPR and install the

System76 Driver :

sudo dnf copr enable szydell/system76

sudo dnf install system76-driver

Installing the System76 NVIDIA Driver for Systems with NVIDIA GPUs

If your system has an NVIDIA graphics card, you will want to go ahead and use this command to install the System76 Driver with NVIDIA graphics drivers built-in: sudo apt-get install system76-driver-nvidia

In addition to the standard packages, that will pull in the latest NVIDIA drivers as packaged by

System76, and all related packages needed to take full advantage of your dedicated NVIDIA graphics card. Upgrade (Pop!_OS)

When Should I Upgrade?

Before upgrading, it can be helpful to ask yourself the following environment questions:

1. Do I have a backup of my data (see next section).

YES? - Proceed.

NO? - Make a Backup.

2. Is this a mission critical machine?

YES? - Wait until upgrading will not stop work.

NO? - Proceed.

3. Do I have a backup/alternate machine if this one goes down temporarily?

YES? - Proceed.

NO? - Make a backup, assess your comfort level, proceed if comfortable.

4. How recently was this upgrade issued? Have any stability issues been reported?

YES? - Wait a week (or two), check again, then upgrade.

NO? - Proceed.

Backing Up Your Data

IMPORTANT NOTE: The upgrade process will leave your files in place, but no matter which system version you are running, we always recommend first creating a good backup of your files, just to be on the safe side should anything unexpected happen during the upgrade. Please read our article on how to backup your files for helpful instructions.

Upgrade Pop!_OS

Pop!_OS 21.04 was released on June 29, 2021.

Pop!_OS 20.10 was released October 23, 2020.

Upgrading Pop!_OS to 21.04 from 20.10

NOTE: For all other operating system versions scroll down to the instructions

“for upgrading from an earlier release

First, make sure you have applied all updates to your system. You can do this through the

Pop!_Shop, or through the terminal:

sudo apt update

sudo apt full-upgrade

Once the updates are applied, a notification should appear at the top of your screen saying that an upgrade is available. Click on this notification, or go to Settings -> OS Upgrade & Recovery. The

System76 upgrade package will display a message that Pop!_OS 21.04 is available with a

Download button.

1. Click the Update button to update the Recovery partition.

2. Click the Download button and the download will begin. Once the download is complete,

you will receive a second notification saying the upgrade is ready.

3. Click on the notification and your computer will restart to the upgrade screen.

After the upgrade is finished, you will be taken back to the login page, and voila! Your system is now running Pop!_OS 21.04! Advanced Install (Terminal)

Use the Terminal to apply the upgrade may do so by running the following commands:

sudo apt update

You'll be prompted to enter your system password, but when you type it, the letters won't show.

Just continue typing the password and press Enter.

sudo apt full-upgrade

Update the Recovery partition with this command:

pop-upgrade recovery upgrade from-release

Once updates have been applied (including the Recovery partition), initiate the upgrade with this command:

pop-upgrade release upgrade

Please check the terminal window at different times during the update process to make sure you answer any prompts asking you to type Y or Enter. Some of the prompts to expect are described below.

If you have 3rd party sources enabled, you will be prompted about the sources being disabled during the upgrade. Press Enter to continue.

Type Y and press enter when prompted about starting the upgrade.

If you have your lock screen set to enabled, you will receive a prompt about the screen being disabled during the update. Press Enter to continue.

Near the end of the upgrade process, you'll be prompted to remove obsolete packages. Type Y and press Enter when prompted.

You may receive a notice about the keyboard layout and the option to use the package maintainer's version of a certain package. If you haven't specifically made a change to a configuration file in your system, go ahead and press Y to use the package maintainer's version. If you have made a change you would like to keep, press N to use the local version, or press D to inspect the changes and see which version you would like to use.

Finally, you will get a notice to restart your computer to complete the upgrade. Make sure all files are saved and any open programs are closed. You can reboot via the terminal by typing [sudo] reboot and pressing Enter. If you prefer, you can also use the graphical interface to reboot.

Once restarted, the computer will be on the newly upgraded system! If you run into any issues, check out our troubleshooting section below.

Upgrading older releases

Upgrading Pop!_OS 17.10 (artful) 18.10 (cosmic), 19.04 (disco) or 19.10 (eoan) will require upgrading to Pop!_OS 20.04 (focal) LTS before upgrading to the current Pop!_OS 21.04 (hirsute).

These older Pop!_OS releases are now unsupported and no new updates are available. After unsupported versions have been removed from the archive and mirror network, you will need to change where your system checks for un-applied updates to be able to upgrade. Open a terminal and follow the next set of instructions to upgrade from Pop!_OS 18.10, 19.04, or 19.10.

1. Get your current system fully updated

sudo sed -i 's/us.archive/old-releases/g' /etc/apt/sources.list

sudo apt update -m

sudo dpkg --configure -a

sudo apt install -f

sudo apt full-upgrade

sudo apt install pop-desktop

2. Move any PPA additions out of the way, and get all of the sources pointed at the 20.04 versions

sudo mkdir -p /etc/apt/backup

sudo mv /etc/apt/sources.list.d/* /etc/apt/backup

sudo apt-add-repository -yn ppa:system76-dev/stable

sudo apt-add-repository -yn ppa:system76/pop

sudo sed -i 's/old-releases/us.archive/g' /etc/apt/sources.list

sudo sed -Ei 's/cosmic|eoan|disco/focal/g' /etc/apt/sources.list /etc/apt/sources.list.d/*

.list

Note: to change 'disco' to your release that you are trying to update from

3. Now, do the upgrade

This will have a three phases and once the download is complete, you can't change your mind.

This works from a new install of 19.04, but some packages may add complications, so make sure you have a backup of important data before moving forward. There may be a question about restarting services, and it is safe to answer "Yes". There may be some questions about using

"maintainer" version of configuration files and using the that new version is also very likely what you want to do (and the default answer will work):

sudo apt update

sudo apt install dpkg apt

sudo apt full-upgrade | tee ~/upgrade.log

4. Now put the PPAs back

You will want to take a look at the files that end in "list" in "/etc/apt/backup" to see if you want to enable that again by moving them back to the /etc/apt/sources.list.d/ directory.

5. After the 20.04 Pop upgrade is complete, reboot

6. Run the command to upgrade to Pop 21.04

pop-upgrade release upgrade

Troubleshooting

Most upgrades proceed without a hitch, but occasionally things go wrong. If your system hangs on the upgrade process or if it reboots and won't start, then the following steps can help repair your broken OS.

Stuck Upgrades

If your upgrade appears to hang in place for an extended period of time, click on the Terminal item to expand the terminal section. Check what action is available there, then complete the steps to unhang your upgrade. For help, contact support and we'll be able to provide assistance.

Broken Upgrade

If the upgrade fails it will most likely be due to a package manager issue. First, run an alternative upgrade manager with this command, and see if it will manage further:

do-release-upgrade

If it fails again, the package manager will need to be repaired manually. Please follow the steps as outlined in this document about repairing the package manager Make sure to get the package manager to a fully upgraded status before rebooting your computer.

You should see this line after running all 6 of the repair package manager commands:

0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. “ Update System Firmware

These instructions are for System76 owners who have been prompted for a firmware update.

Firmware updates may be issued to fix security vulnerabilities or to improve hardware functionality.

Before You Begin

Make sure the laptop is plugged into the AC Adapter for the entire firmware updating

process. USB Type-C charging is not supported during firmware updates on the following

models: Galago Pro (galp3-c, galp4), Darter Pro (darp5, darp6)

Disconnect external devices, including any displays or USB devices.

Take a picture of these instructions or pull up s76.co/sfu on a phone or other device for

reference.

During the firmware updating process, the system will restart several times. Prompts

will occasionally ask for user involvement.

Take a picture of these instructions or pull up s76.co/sfu on a phone or other device for

reference.

Starting the Update (GUI)

In Pop!_OS, you can check for firmware updates using Settings -> Firmware.

In Ubuntu, you can check for firmware updates using the Firmware Manager application.

If a green Update button is present, then a firmware update is available. Click the Update button, then click Reboot and Install to begin the update.

Starting the Update (CLI)

The command-line firmware utility can be installed using these commands:

sudo apt update sudo apt install system76-firmware

Once installed, the following command can be used to schedule a firmware update for the next reboot (if the firmware is already up-to-date, this command will schedule a re-installation of the current firmware):

sudo system76-firmware-cli schedule

If you are able not able to schedule the update and receive error messages similar to these:

configuring bootloader error: command failed with exit status: exit code: 5

errored while installing system: command failed with exit status: exit code: 5

calling Schedule method failed: "failed to add boot entry: exit code: 5

system76-firmware: failed to schedule: failed to add boot entry: exit code: 5

Please refer to this support article. If you see the message below then you can reboot the system using sudo systemctl reboot to proceed with the update, or use sudo system76-firmware-cli unschedule to cancel the update.

Firmware update scheduled. Reboot your machine to install.

Performing the Update

The System76 Firmware Updater will start on the next boot. Once it has initialized, you'll be prompted to press Enter to commence flashing.

Depending on the model, the system may reboot at this point. The system's fans may spin at full speed while the new firmware is being written. Once the firmware update process is complete, you may see a prompt to press any key to shut down.

After the system powers off, press the power button to turn it back on. It may be necessary to power on more than once after a firmware update. On machines running Open Firmware, the system should then boot normally.

Disabling the ME

For laptops not running Open Firmware, a few extra steps may be required after an update to ensure the Intel ME is disabled.

Depending on the model, two blue boxes may appear in succession with a message about the

CMOS. Press Enter to dismiss each one. The system may also power off and on again at this point.

On some laptops, the UEFI menu will display automatically. (If it doesn't, you can also access this menu by holding down F2 during boot.) Select Setup Utility to enter the UEFI setup utility.

Navigate to the Advanced section in the left sidebar, then select Advanced Chipset Control.

If there is an ME State option at the bottom of the list, select it, then select Disabled to ensure the ME is disabled.

Navigate to the Exit section in the left sidebar, then select Exit Saving Changes and Yes to save and exit the setup utility. The system may power off and back on again, then it should boot normally.

Updating on Other OS's

If your system is running another Linux-based OS installed with an EFI System Partition (ESP), then you can update your firmware using a live disk of Pop!_OS. First, create a live disk using this article.

After creating the live disk, access the boot menu and select it from the list of options. Once the desktop appears, open a terminal ( Super+T) and use this command to list the partitions on your system:

lsblk Identify the EFI partition in the list. (The EFI partition is usually the first partition on one of the drives, and is around 512MB in size or slightly smaller.) Once you have identified the EFI partition, use the following commands to set up the system for a firmware update:

For NVMe Drives

sudo apt install system76-driver

sudo mkdir -p /boot/efi

sudo mount /dev/nvme0n1p1 /boot/efi

gnome-control-center firmware

Where /dev/nvme0n1p1 is the EFI system partition.

For SATA Drives

sudo apt install system76-driver

sudo mkdir -p /boot/efi

sudo mount /dev/sda1 /boot/efi

gnome-control-center firmware

After the above commands are ran depending on the drive that the OS is installed on, you can use the above instructions to update your firmware.

Firmware Notifications for Laptops

If you’re receiving the firmware update notification after a firmware update, then your system’s

Intel ME may be turned on. Let’s reboot the laptop and hold F2 to get to the BIOS. Then go to

Advanced -> Advanced Chipset Control and make sure that the ME is disabled, then go to the Exit tab and save. That should stop the notifications about a firmware update and you're all set.

Where /dev/sda1 is the EFI system partition.

After the System76 Driver is installed and the EFI partition has been mounted using the above commands, you can use the above instructions to update the firmware normally.

Switching Between Proprietary Firmware and System76 Open Firmware

If you would like to transition from proprietary firmware to System76 Open Firmware (on a supported model), please view this article. Upgrade (Ubuntu)

First, we recommend having Ubuntu installation media (a DVD or USB drive) handy before starting

any upgrades in case something goes wrong. You'll need to download a copy of Ubuntu from

ubuntu.com.

Create Install Media

CreateCreate an an InstallationInstallation USB DVD

Using Using

UbuntuUbuntu

Using Using

WindowsWindows

Using Using

Mac Mac

OS OS

X X

Next, we recommend backing up all important files from your computer. The upgrade process will

leave your files intact, but it's best to be safe in case something goes wrong. We have a support

article that goes over creating backups here.

Upgrade Open Software Updater

Open the Activities Overview by clicking on the Activities button in the top left and then search for

Software Updater.

Configure Version Updates

Click on Settings… and then select Updates. You can choose to receive all updates or only LTS updates using the drop-down menu at the bottom, labeled "Notify me of a new Ubuntu version".

OptionResult

Will show For both any Standard new and version LTS updates.

For Will long- show term only supportLTS versionsupdates. OptionResult

Will prevent upgrades Never to newer versions.

Changing this option will require your user password. After selecting your update preference, close the window.

Check For Updates

The system will automatically check for updates. You may need to update (and sometimes, restart) before continuing with the upgrade process. If you have to restart after installing updates, launch the updater again as described above. Install The Upgrade

A message will appear informing you of the availability of the new release. Click Yes, Upgrade

Now or Upgrade… depending on the window that you have and follow the on-screen instructions.

Install The System76 Driver Once you've upgraded Ubuntu, you'll need to download and install the current System76 Driver.

Open the Terminal app (search Terminal from the Activities Overview or press Ctrl+Alt+T), then enter the following commands:

sudo apt-add-repository ppa:system76-dev/stable

sudo apt update

sudo apt install system76-driver

For NVIDIA Graphics: If you ordered a system with a discrete NVIDIA graphics card, you will need to manually install the closed source drivers for your card to get the optimum performance. Please run the following command:

sudo apt install system76-driver-nvidia

Once the process is finished, restart your computer for the changes to take effect.

Done

Once restarted the computer will be on the newly upgraded system! If you run into any issues, check out Troubleshooting below.

If you use any third-party packages, you'll need to re-enable them in the Software & Updates app on the Other Software tab. Check any sources that you might need, then close the window. Information

For more information about releases and how long they are supported for, please see the Ubuntu

Release Wiki.

For more information about what end of life means, please see the End of Life document.

For more information on LTS support and the Hardware Enablement Stack, please see the HWE

Wiki.

Troubleshooting

Most upgrades proceed without a hitch, but occasionally things go wrong. If your system hangs on the upgrade process or if it reboots and won't start, then these steps can help repair your broken OS.

Most upgrades proceed without issues, but occasionally things go wrong. If your system hangs on the upgrade process or if it reboots and won't start, then these steps can help repair your broken

OS.

Stuck Upgrades

If your upgrade appears to hang in place for an extended period of time, click on the Terminal item to expand the terminal section. Check what action is available there, then complete the steps to unhang your upgrade. For help, contact support and we'll be able to provide assistance.

Broken Upgrade

Please see the steps above to create bootable media. Restart your computer and use the keys above to start your computer from the bootable media. When given the option, choose Try

Ubuntu.

Next, follow the steps to repair grub first:

Repair Bootloader

And then the steps to repair the package manager next:

Repair Package Manager

And continue the upgrade with this command:

do-release-upgrade

After that, if all of the grub, apt package manager, and release upgrade commands successfully complete, the computer should be able to boot normally. User Management

There are a few reasons to have more then one account on your system. They include allowing the system to be used by other people in your home or office or troubleshooting issues with your user account.

In order to add another user to the system follow these steps:

1. Navigate to Settings -> Users

2. Click the "Unlock" button and enter your password

3. Click on the "Add User" button at the top of the window

Be sure to set the new user as an Administrator so that you can make system-wide

changes.

4. Close Settings and Log Out of your current session

5. Log into the newly created user

You can also create a new account using the command below if the issue is causing you to only be able to access the TTY/Terminal:

sudo adduser bob

Then add the user to the Administrator group:

usermod -aG sudo bob

If the new user doesn't have any of the issues as your main user then log out of the new account and then back into the original account. From there open a Terminal and run this command:

mv ~/.config ~/.config.bk

Then log out and back into the main account. Geary Email (ProtonMail/Gmail/iCloud/Fast)

Gmail

1. Add the account to Geary

Select the Gmail option in the window below.

Enter your Gmail address and your password.

Now sign into your Gmail account again using the same Gmail address and password to

add your account to Geary.

ProtonMail

NOTE: Using ProtonMail with a 3rd Party Email Client is only supported on Paid

“plans

1. Download the ProtonMail Bridge from here.

2. Install Protonmail Bridge

Once the .deb file has been opened by Eddy click the Install button to install the

application.

3. Setup Protonmail Bridge

Once you open Protonmail Bridge from the Activities menu (in the top left) you will see

the screen below. From here, enter your username and password that you using to sign

into the ProtonMail website.

Once signed in, you can review the configuration steps for Thunderbird at the link in the

Protonmail Bridge . The steps for Thunderbird will work in Geary.

Click on the arrow to the left of your username and then click on the Mailbox

Configuration button to open the Email Settings window. This window will have your

password (which is different then your ProtonmMail password), port numbers for IMAP

and SMTP, as well as the security method for both IMAP and SMTP.

4. Add the account to Geary

Once signed into Protonmail Bridge click the menu icon in the top left of Geary then click

Accounts.

Next click the Other email providers button to add the ProtonMail account.

Now enter the information from the Mailbox Configuration window and note that we

are entering the hostname IP address, followed by the port number like this:

127.0.0.1:1143 .

Once that has been entered and the Create button has been pressed (you may need to

do that a few times for the Connection security dropdown to show) you will see the

window below. Finally click the Always Trust This Server button then the Create

button again to add the account.

NOTE: You may need to close Geary and reopen it a bit later before

“your email starts showing up in Geary.

Fastmail

1. Click the menu icon in the top left of Geary then click Accounts.

2. Click the Other email providers button to add the Fastmail account.

3. Next create an App password using the Fastmail website here.

NOTE: Save the App password in your Password Manager as you may

“not be able to see it again after creating it for security.

4. Take note of the IMAP/POP, SMTP addresses and the port numbers from the Fastmail

website for the next window as well.

5. Add the new App password, IMAP/POP, SMTP address and their port numbers in the next

Geary window. iCloud Mail

Apple publishes the server settings for linking your iCloud email to other mail clients (see screenshot below).

Photo source: https://support.apple.com/en-us/HT202304

1. Click the menu icon in the top left of Geary then click Accounts.

2. Click the Other email providers button to add the iCloud account.

3. Next create an App password using the steps on this Apple Support page:

https://support.apple.com/en-us/HT204397

NOTE: Step 3 will also require you to sign into your Apple ID Account

“page. You'll need to have two-factor authentication enabled to create

an app-specific password. Once the app-specific password is created, it

won't be shown again. Be sure to write it down or add it to your

password manager.

4. Take note of the IMAP/POP, SMTP addresses and the port numbers from Apple Article

HT202304 (above) for the next window.

5. Add the new App password, IMAP, SMTP address, and in the next Geary window.

NOTE: You will need to adjust the settings on this server login page.

“Change the drop down in "Sending" to "Use a different login" even

though the information will be the same. It's likely you'll receive an

error at first. If that's the case, switch TLS to StartTLS.

6. Finally, click the Create button and your iCloud account will be added to Geary. Using Legacy Status Icons in Pop!_OS

Pop!_OS uses GNOME Shell for launching apps, switching windows, managing workspaces, etc.

Ubuntu and previous versions of GNOME Shell supported "status icons" or "AppIndicators" where installed apps could add arbitrary icons to the shell. In GNOME Shell 3.26, this functionality was removed in favor of other APIs. This extension was added into the default install of Pop!_OS starting with 20.04 LTS.

If you are running a Pop!_OS version older than 20.04, some apps you use (like Dropbox) might not have been updated and thus might depend on being able to draw a status icon. Fortunately it is easy to add legacy status icon support with a GNOME Shell extension.

Install

The extension gnome-shell-extension-appindicator works well for this and is what we recommend users of Pop!_OS install if they need status icons. To install, open the Terminal app ( Super+T) and type:

sudo apt install gnome-shell-extension-appindicator

…and press Enter. If prompted, type your password and press Enter. The extension is now installed, but you need to enable it.

Enable

In the Terminal app or from the Enter a command dialog (Alt+F2), type: gnome-shell-extension-prefs

…and press Enter. In the Shell Extensions window that comes up, turn on the

KStatusNotifierItem/AppIndicator Support switch.

Lastly, you may need to log out and back in for icons to show up. When you do, any app's status icons will show up at the right-side of the top panel, next to the system menu. Using Pop Shell on other Gnome Desktops

For Ubuntu-Based Distros

In order to build Pop Shell from source, we'll first need to install the build dependencies and git to clone the repository:

sudo apt install git node-typescript make

Note: these instructions assume an Ubuntu-based distro; other distributions (see examples below) will use different package managers, and may have different package names.

Next we'll clone the repository using this command:

git clone https://github.com/pop-os/shell.git

Now we'll enter the directory for Pop Shell (called "shell") and build the package:

cd shell

make local-install

For Fedora-based distros

Pop Shell is already packaged in the Fedora repostitories:

sudo dnf install gnome-shell-extension-pop-shell

For Arch Pop Shell is packaged in the AUR, but for the keyboard shortcuts to work, you will need to build it from source like we did above.

In order to build Pop Shell from source we'll first need to install the build dependencies and git to clone the repository:

sudo pacman -S git typescript make

Next we'll clone the repository using this command:

git clone https://github.com/pop-os/shell.git

Now we'll enter the directory for Pop Shell (called "shell") and build the package:

cd shell

make local-install

For Manjaro

Pop Shell is already installed by default on the Manjaro GNOME edition but it needs to be enabled in the Extenstions application.

To learn about Pop Shell's keyboard shortcuts you can view this support article. You can also view

Pop Shell's source code here. Improve Battery Life

Every running program consumes the battery. This could be a program that is part of the operating system, or a program currently in use like Firefox or Libre Office. We recommend using

TLP to quickly reduce overall power consumption and using powertop to check what software is consuming the battery.

The biggest consumer of power is the display backlight. Up to 10% more battery life can be gained by reducing display brightness. Our laptops don't currently have an ambient light sensor and brightness needs manual adjustment with Fn+F8 and Fn+F9.

Power Profiles

With the system76-power package there are Power Profiles that can be accessed in the System

Menu in the image below.

Useful Programs

TLP is an excellent program for increasing battery life on all of our laptops. TLP is a pure command line tool with automated background tasks and does not contain a GUI. Its default settings are excellent for most situations and require little tuning. TLP will take care of most of the settings that

Powertop autotuning would, and with less trial and error.

To install TLP, run this command:

sudo apt install tlp tlp-rdw --no-install-recommends

TLP will take effect upon restart. To see current configuration settings, run this command:

sudo tlp-stat The program is highly configurable by editing the settings file. Run this command to edit the file:

sudo gedit /etc/default/tlp

Starting with TLP 1.3 the default configuration file has changed so the command for that version is below:

sudo gedit /etc/tlp.conf

The /etc/tlp.conf file is for user configuration while /etc/tlp.d/*.conf file is for drop-in customization snippets.

All of the info about the program can be found with these 2 commands:

man tlp

man tlp-stat

To install powertop, please open a terminal and run this command:

sudo apt install powertop

After installing the program, reboot your computer and calibrate the readings on battery power with this command:

sudo powertop -c

This will take about 15 minutes to run the calibration. The system will turn the display off a few times, and you won't be able to do anything else on the PC during the process. Powertop can be run just by itself to see what is using resources on your system. It needs to be left open for a little amount of time to gather statistics, and be more accurate. Run it with this command:

powertop

Powertop can also generate HTML reports with this command: sudo powertop --html=report

Open the report located at ~/report.html to see the results.

It's useful to create a baseline by running powertop after a cold startup, without opening any applications, and then run it a few more times throughout the day to get a comparison of different workloads. Make sure to specify a different filename each time for comparison. Look at running software and see if programs can be uninstalled or if the settings of high resource using programs can be changed.

Tuning

After looking at running software, head over to the 'Tuning' tab. We recommend install TLP first, and then seeing if powertop finds any other tuning suggestions. powertop provides many suggestions to increase battery life. To test enabling of all of the suggested tunings, please run this command:

sudo powertop --auto-tune

Please test the settings and make sure they don't introduce any instability or oddities. The above command will only last until reboot. The most likely problem with the auto-tune command is that external USB devices have delays after inactivity. To make the new settings persist after reboot, please edit the /etc/rc.local file with this command:

sudo gedit /etc/rc.local

And add:

sudo powertop --auto-tune “

above the 'exit 0' line, or add the individual tuning options. Do not do this without testing! Several auto-tune settings will create system instability!

Disable Ethernet

If Ethernet is never used, or is only used irregularly, then it can be disabled to save power. Please run this command:

ifconfig

And note the name of the interface. It will probably be enp4s0f2 or similar. Disable it by running this command:

sudo gedit /etc/network/interfaces

And add this line to the file:

iface enp4s0f2 inet manual “

This new configuration will take effect after a reboot. To disable the interface immediately, run this command:

sudo ifconfig enp4s0f2 down

Then, if Ethernet needs to be used, this command can be run to enable it for the session:

sudo ifconfig enp4s0f2 up

Useful Commands

upower -d This will show the information that your computer can read about the battery.

sudo rm /var/lib/upower/*

If the battery life indicator is inaccurate, this will remove the stored statistics. After a few charge/discharge cycles the indicator should be more accurate. Set Battery Threshholds

Charging thresholds allow your System76 laptop to avoid charging the battery until it has dropped below a lower bound (the start threshold), and to stop charging when it reaches an upper bound

(the end threshold). This is useful when your laptop is plugged into an AC power adapter for extended periods of time, as it prevents unnecessary micro-charging that would reduce battery longevity.

To determine if your laptop has Open Firmware or proprietary firmware, see this article. (If a system has Open Firmware, then it must also have Open EC to work with charging thresholds.) See

Charging Thresholds for Open Firmware systems or FlexiCharger for proprietary firmware systems.

Configuring Charging Thresholds (Open Firmware)

Note: This feature is not currently finished. Currently, the thresholds are reset when the EC is reset (which happens when the system is shut down and the power is unplugged.) Once the feature is complete, the thresholds will be persistent and a GUI will be available to set them. To work around this limitation in the short term, you can use systemd to set thresholds at boot.

Using the terminal

You can see the thresholds that are currently set using this command:

system76-power charge-thresholds

You can list the available charging profiles using this command:

system76-power charge-thresholds --list-profiles Then, you can select a profile using one of these commands:

system76-power charge-thresholds --profile full_charge

system76-power charge-thresholds --profile balanced

system76-power charge-thresholds --profile max_lifespan

You can also set custom thresholds without using a profile. For example, this command will set the start threshold to 40 and the end threshold to 80 :

Charging thresholds allow your System76 laptop to avoid charging the battery until it has dropped below a lower bound (the start threshold), and to stop charging when it reaches an upper bound

(the end threshold). This is useful when your laptop is plugged into an AC power adapter for extended periods of time, as it prevents unnecessary micro-charging that would reduce battery longevity.

To determine if your laptop has Open Firmware or proprietary firmware, see this article. (If a system has Open Firmware, then it must also have Open EC to work with charging thresholds.) See

Charging Thresholds for Open Firmware systems or FlexiCharger for proprietary firmware systems.

Configuring Charging Thresholds (Open Firmware)

Note: This feature is not currently finished. Currently, the thresholds are reset when the EC is reset (which happens when the system is shut down and the power is unplugged.) Once the feature is complete, the thresholds will be persistent and a GUI will be available to set them. To work around this limitation in the short term, you can use systemd to set thresholds at boot.

Using the terminal

You can see the thresholds that are currently set using this command: system76-power charge-thresholds

You can list the available charging profiles using this command:

system76-power charge-thresholds --list-profiles

Then, you can select a profile using one of these commands:

system76-power charge-thresholds --profile full_charge

system76-power charge-thresholds --profile balanced

system76-power charge-thresholds --profile max_lifespan

You can also set custom thresholds without using a profile. For example, this command will set the start threshold to 40 and the end threshold to 80 :

system76-power charge-thresholds 40 80

Via sysfs

Charging thresholds are exposed by the firmware through ACPI, and the system76_acpi kernel module makes them available through standard sysfs entries:

/sys/class/power_supply/BAT0/charge_control_start_threshold /sys/class/power_supply/BAT0/charge_control_end_threshold

The thresholds can be controlled by reading from and writing to these sysfs files.

At boot

To work around the limitation in open firmware causing the thresholds to be reset when the system is shut down and unplugged, you can set the thresholds at boot via systemd. To do so, create a file called /etc/systemd/system/charge-thresholds.service with the following contents: [Unit]

Description=Set the charge threshold at startup.

After=default.target

[Service]

Type=simple

ExecStart=system76-power charge-thresholds 40 80

[Install]

WantedBy=default.target

Then, enable the service using this command:

sudo systemctl enable charge-thresholds.service

Finally, start the service using sudo systemctl start charge-thresholds.service or reboot to apply the thresholds.

Configuring FlexiCharger (proprietary firmware)

FlexiCharger is an implementation of charging thresholds in proprietary firmware, made available as a UEFI setting.

To adjust the thresholds, reboot the computer and enter the UEFI setup utility by holding down F2 and selecting Setup Utility . Navigate to Advanced, then Advanced Chipset Control, and set

FlexiCharger to Enabled. Two new options will appear where you can set the start and stop thresholds. Once configured, save and exit the setup utility. The thresholds can be disabled at any time by setting FlexiCharger back to Disabled.

system76-power charge-thresholds 40 80

Via sysfs

Charging thresholds are exposed by the firmware through ACPI, and the system76_acpi kernel module makes them available through standard sysfs entries:

/sys/class/power_supply/BAT0/charge_control_start_threshold /sys/class/power_supply/BAT0/charge_control_end_threshold

The thresholds can be controlled by reading from and writing to these sysfs files.

At boot

To work around the limitation in open firmware causing the thresholds to be reset when the system is shut down and unplugged, you can set the thresholds at boot via systemd. To do so, create a file called /etc/systemd/system/charge-thresholds.service with the following contents:

[Unit]

Description=Set the charge threshold at startup.

After=default.target

[Service]

Type=simple

ExecStart=system76-power charge-thresholds 40 80

[Install]

WantedBy=default.target

Then, enable the service using this command:

sudo systemctl enable charge-thresholds.service

Finally, start the service using sudo systemctl start charge-thresholds.service or reboot to apply the thresholds.

Configuring FlexiCharger (proprietary firmware)

FlexiCharger is an implementation of charging thresholds in proprietary firmware, made available as a UEFI setting.

To adjust the thresholds, reboot the computer and enter the UEFI setup utility by holding down F2 and selecting Setup Utility . Navigate to Advanced, then Advanced Chipset Control, and set

FlexiCharger to Enabled. Two new options will appear where you can set the start and stop thresholds. Once configured, save and exit the setup utility. The thresholds can be disabled at any time by setting FlexiCharger back to Disabled. Disable Touchpad While Typing

To disable the touchpad while typing, a built-in program needs run. It's best to add it to the startup items to run every time your computer starts. Search for and open Startup Applications from the

Dash by pressing the Super Key, and then click Add.

Field Value

Name: Syndaemon

syndaemon -i 1.0 Command: -K -t -d

Disable touchpad Comment: while typing

The -i 1.0 parameter sets the idle time of the keyboard to 1 second.

The -K ignores the Modifier keys.

The -t only disables tapping and scrolling (leave out to disable all mouse movement).

The -d runs it as a daemon (in the background).

Click Add and then Close. Reboot your computer to enable this setting.

Note: This is a per user setting, so repeat this process for all user accounts. Mouse Customizations

Graphical Software

Piper

Piper is a frontend to the libratbag backend for setting custom actions to mouse buttons like the

Logitech MX Master 3 (sold by System76). In this section we will be using that mouse as an example for using Piper. You can see the source code of Piper here.

In this window the button that has been clicked can be reassigned to a differet function like changing the Left-click to the Right-click or swapping the Forward button to the Back button for web pages.

Solaar

Solaar is a graphical tool for adding more devices to your Logitech USB Unify receiver. It also provides information on the following:

Battery life

Firmware and Bootloader version

Serial number

Sensitivity (DPI) settings

You can find the source code of Solaar here and more information about Solaar here.

Command Line Software xbindkeys

For using xbindkeys open a terminal with the following keys:

Pop!_OS : Super+T

Ubuntu : CTRL+ALT+T

Then install the following packages:

sudo apt install xbindkeys xautomation

Then create the default config file for xbindkeys with this command:

xbindkeys --defaults > $HOME/.xbindkeysrc

Setting custom actions

Now let's open the config file with this command:

gedit ~/.xbindkeysrc

Then scroll down to the bottom of the file right below this line:

"xbindkeys_show"

control+shift + q

From here you can add your own custom actions like the ones below.

Examples

Below are some examples that you can do: # Refresh

"xte 'key F5'"

b:9 + control

This will cause the forward mouse button and the Ctrl key to emulate pressing the F5 key. This is useful for refreshing a web page without moving your hand off the mouse.

# Workspace Up

"xte 'keydown Control_L' 'keydown Super_L' 'key Up' 'keyup Super_L' 'keyup Control_L'"

b:9

# Workspace Down

"xte 'keydown Control_L' 'keydown Super_L' 'key Down' 'keyup Super_L' 'keyup Control_L'"

b:8

This will cause the forward and back mouse button to emulate pressing the Ctrl+Super+Up/Down.

This is useful for switching workspaces very quickly while leaving your hand on the mouse.

Changes

If any changes are made to the config file then xbindkeys need to be restarted with these commands:

killall xbindkeys

xbindkeys

By default xbindkeys does not start on reboot and you will need to add it using the Startup

Application Preferences.

Once the application is opened then click the Add button then name the program to something like 'xbindkeys', enter the command for the application which is 'xbindkeys'. Now click the Add button and your done! Caveats xbindkeys while browsing the web

Once the mouse buttons for forward and back are set to a different action they will no longer work in a web browser for going back and forth between web pages. Microphone Use

Press the Super Key and search for Sound, then click on Sound. Scroll down to the Input section and make sure that the correct audio device is selected. Adjust the volume until you see activity under the Input Device drop-down box. Printer Setup (Pop!_OS)

Most printers will be automatically added to the computer. If not, to add a printer to your

System76 Computer, press the super key and type the word Printers, then choose the Printers application in the search box. In the Printers Application, click the Add a Printer... button and a box will pop up with different options. Wait a few seconds for printers to appear in the Device List.

Select the correct printer and click Add.

HP and Epson Printers

HP printers are supported with the hplip package, which is installed by default in Pop!OS

sudo apt install hplip

If you would like to use a guided GUI application from HP, you will need to install a python dependency:

sudo apt install python3-pyqt5

hp-setup

Epson printer drivers are in the printer-driver-escpr package and is also installed by default. You may need to install the lsb package for some printer versions:

sudo apt install lsb printer-driver-escpr

Automatically installed printers will work fine, but if you need to make changes to the configuration of the printers, you will need to add your user to the 'lpadmin' group. To do that run the following command: sudo usermod -aG lpadmin $USER

Brother Printers

Search for your printer on this page https://www.brother-usa.com/brother-support/driver-downloads

Once you find your printer, click the downloads link, and select the "Linux" option under "Select OS

Family"

Select Linux (deb) for your "OS Version"

Click the Driver Install Tool under utilities on that page.

Click "Agree to the EULA and Download"

Click Activities in the top left of your display, and search "Terminal" then click the Terminal application to open it.

Change directory to where you downloaded the driver, then unzip it. This is usually the downloads directory.

cd Downloads

gunzip linux-brprinter-installer-*.*.*-*.gz

After this, run the installer, but with your printer model appended to the end. For this example, we will use the model HL-L5000D. Note that your installer version may differ from this guide. It is best to type the first portion of the installer name, and then hit TAB to complete the installer name.

sudo bash linux-brprinter-installer

When typing the above command, hit TAB after that for the installer name to be autocompleted, and then add your printer name, after a space, at the end.

Example: sudo bash linux-brprinter-installer-2.2.2-2 HL-L5000D

If you are asked for your "DeviceURI", you can find that by opening up Settings > Printers >

Additional Printer Settings, then right click your printer and click Properties. In the resulting window, you'll be able to find your Device URI, as shown in the screenshot below.

Troubleshooting

If the printer stops working, open the Printers Application again and click the gear icon, and select

Remove Printer to remove the printer and its settings. Repeat the steps above to add the printer and try printing the test page again. This process usually resolves many printing issues.

To look at the CUPS (Common Unix Printing System) configuration and status window, please open this webpage: localhost:631

The status window will show current print jobs, detected printers, and other information about the printing system. If you would like to share this printer with others on your local network, click on the 'Admin' link, under Server, click on the "Share printers connected to this system" and save the changes. Other computers on your network should than see that printer. When there is a prompt for your username and password, use your user name, and password used to login.

Useful Commands

sudo apt install --reinstall cups cups-client

This will reinstall CUPS, the main printing software, which can help with generic issues.

sudo apt install --reinstall ~n^system-config-printer

This will reinstall the system control panel if the settings are not available. Printer Setup (Ubuntu)

To add a printer to your System76 Computer, click the Ubuntu icon at the top left of your screen and type the word Printers then choose the Printers application in the search box. In the Printers

Application, click the Add button and a box will pop up with different options. Wait a few seconds for printers to appear in the Device List.

Select the correct printer and click Forward. The computer will search for the correct Drivers to enable the printer. A box may come up that says 'Installable Options' which you can select any other options available for your printer and then click Forward again. Name your printer in the next dialogue box and click Apply. A prompt to print a test page will appear next.

HP and Epson Printers

First in the Software & Updates settings go to the Other Software tab, and check the first item,

Canonical Partners. Then, after closing the Software & Updates program, add the driver with this command for HP:

sudo apt install hplip

If you would like to use a guided GUI application from HP, you will need to install a python dependency:

sudo apt install python3-pyqt5

hp-setup

Epson printer drivers are in the printer-driver-escpr package and is also installed by default. You may need to install the lsb package for some printer versions:

sudo apt install lsb printer-driver-escpr

Automatically installed printers will work fine, but if you need to make changes to the configuration of the printers, you will need to add your user to the 'lpadmin' group. To do that run the following command:

sudo usermod -aG lpadmin $USER

And when adding the printer, select type of connection as DNS-SD, and then Forward, and then

ESC/P-R.

Troubleshooting

If the printer stops working, open the Printers Application again and right-click on the printer and select Delete to remove the printer and its settings. Repeat the steps above to add the printer and try printing the test page again. This process usually resolves many printing issues.

To look at the CUPS (Common Unix Printing System) configuration and status window, please open this webpage: localhost:631

The status window will show current print jobs, detected printers, and other information about the printing system. If you would like to share this printer with others on your local network, click on the 'Admin' link, under Server, click on the "Share printers connected to this system" and save the changes. Other computers on your network should than see that printer.

Useful Commands

sudo apt install --reinstall cups cups-client

This will reinstall CUPS, the main printing software, which can help with generic issues.

sudo apt install --reinstall ~n^system-config-printer This will reinstall the system control panel if the settings are not available. Configure/Disable Touchpad

Press Fn+F1 to turn your laptop touchpad on/off.

To configure your touchpad, press the Super Key then type Mouse & Touchpad and click on the result. The touchpad settings are under the Touchpad tab.

GNOME Tweaks has a few other options for the touchpad like disabling it while typing, the acceleration profile and mouse click emulation.

GNOME Tweaks can be installed from the Pop!_Shop (Pop!_OS), Ubuntu Software Center (Ubuntu) or from the Terminal with this command:

sudo apt install gnome-tweaks Login with Yubikey

If you have a Yubikey, you can use it to login or unlock your system.

To do this you must install the yubikey-luks package, configure a challenge-response slot on the

Yubikey, and then configure the necessary PAM modules.

NOTE: This guide assumes you are running Pop!_OS

Install Packages

To install the necessary packages, run:

sudo apt install -y libpam-yubico yubikey-personalization

You may get a question about the PAM configuration line. If so, enter this line:

mode=challenge-response

Don't enable any PAM modules yet. We'll do that at the end.

If you have already installed the package or want to reconfigure it, use this command:

sudo dpkg-reconfigure libpam-yubico

Configure Challenge-Response for your Yubikey

To enable challenge-response on your Yubikey, type the following command: ykpersonalize -2 -ochal-resp -ochal-hmac -ohmac-lt64 -oserial-api-visible

This configures slot 2 for challenge-response, and leaves slot 1 alone.

Next we need to create some challenge response files, move them to a system wide directory, and secure those files:

sudo mkdir /var/yubico

sudo chown root.root /var/yubico

sudo chmod 700 /var/yubico

ykpamcfg -2 -v

You should receive a message similar to:

Stored initial challenge and expected response in '$HOME/.yubico/challenge-123456'.

You should receive a unique challenge-123456 in your output.

Now, to finish up:

sudo mv ~/.yubico/challenge-123456 /var/yubico/alice-123456

sudo chown root.root /var/yubico/alice-123456

sudo chmod 600 /var/yubico/alice-123456

Pay close attention when copying/pasting the commands above. The challenge-123456 and alice-123456 needs to match whatever your output is.**

Configure Plugable Authentication Modules

Before making any changes to the files listed below, I highly recommend backing up each file, and having a sudo/root session open in case you need to roll-back.

You need to add the following line to each of the files listed below: auth sufficient pam_yubico.so mode=challenge-response chalresp_path=/var/yubico

This configures your system to accept your Yubikey as an acceptable login alternative. In other words, you can login without a password, just plug the key into a USB port. You can still use your password to login with this setup.

If you want your Yubiky to be required to login, then you need to change sufficient to required.

For example:

auth required pam_yubico.so mode=challenge-response chalresp_path=/var/yubico

There a a number of other options for PAM. Check the man pages for more information. Also, the

Yubico PAM module page has a pretty good breakdown.

/etc/pam.d/common-auth

/etc/pam.d/login

/etc/pam.d/gdm-password

/etc/pam.d/common-auth

At a minimum you need to modify this file.

Add the auth line to the top of this file (after the comment block).

You may need to run pam-auth-update afterwards.

/etc/pam.d/login

Modifying this file is optional. This allows you to authenticate to the Linux terminal with your

Yubikey.

Add the auth line to the top of this file (after the comment block).

/etc/pam.d/gdm-password

Modifying this file is also optional. If you want to login to your Desktop Environment, (e.g. GNOME), you will need to add the auth line to the /etc/pam.d/gdm-password file.

Add the auth line immediately below the @include common-auth line.

NOTE: This will allow you to login to your desktop without a password, but you may still be asked to use a password to unlock your keyring. This prompt should only appear once upon initial login.

References

The following sites were used to build this guide:

Authentication Using Challenge Response (From Yubikey).

Yubico PAM Module (From Yubikey).