Language Selection

English French German Italian Portuguese Spanish


Syndicate content It's FOSS
A Linux and Open Source Web Portal
Updated: 1 hour 58 min ago

The New YubiKey 5C NFC Security Key Lets You Use NFC to Easily Authenticate Your Secure Devices

Thursday 10th of September 2020 07:24:42 AM

If you are extra cautious about securing your online accounts with the best possible authentication method, you probably know about Yubico. They make hardware authentication security keys to replace two-factor authentication and get rid of the password authentication system for your online accounts.

Basically, you just plug the security key on your computer or use the NFC on your smartphone to unlock access to accounts. In this way, your authentication method stays completely offline.

Of course, you can always use a good password manager for Linux available out there. But if you own or work for a business or just extra cautious about your privacy and security and want to add an extra layer of security, these hardware security keys could be worth a try. These devices have gained some popularity lately.

Yubico’s latest product – ‘YubiKey 5C NFC‘ is probably something impressive because it can be used both as USB type C key and NFC (just touch your device with the key).

Here, let’s take a look at an overview of this security key.

Please note that It’s FOSS is an affiliate partner of Yubico. Please read our affiliate policy.

Yubico 5C NFC: Overview

YubiKey 5C NFC is the latest offering that uses both USB-C and NFC. So, you can easily plug it in on Windows, macOS, and Linux computers. In addition to the computers, you can also use it with your Android or iOS smartphones or tablets.

Not just limited to USB-C and NFC support (which is a great thing), it also happens to be the world’s first multi-protocol security key with smart card support as well.

Hardware security keys aren’t that common because of their cost for an average consumer. But, amidst the pandemic, with the rise of remote work, a safer authentication system will definitely come in handy.

Here’s what Yubico mentioned in their press release:

“The way that people work and go online is vastly different today than it was a few years ago, and especially within the last several months. Users are no longer tied to just one device or service, nor do they want to be. That’s why the YubiKey 5C NFC is one of our most sought-after security keys — it’s compatible with a majority of modern-day computers and mobile phones and works well across a range of legacy and modern applications. At the end of the day, our customers crave security that ‘just works’ no matter what.”  said Guido Appenzeller, Chief Product Officer, Yubico.

The protocols that YubiKey 5C NFC supports are FIDO2, WebAuthn, FIDO U2F, PIV (smart card), OATH-HOTP and OATH-TOTP (hash-based and time-based one-time passwords), OpenPGP, YubiOTP, and challenge-response.

Considering all those protocols, you can easily secure any online account that supports hardware authentication while also having the ability to access identity access management (IAM) solutions. So, it’s a great option for both individual users and enterprises.

Pricing & Availability

The YubiKey 5C NFC costs $55. You can order it directly from their online store or get it from any authorized resellers in your country. The cost might also vary depending on the shipping charges but $55 seems to be a sweet spot for serious users who want the best-level of security for their online accounts.

It’s also worth noting that you get volume discounts if you order more than two YubiKeys.

Order YubiKey 5C NFC Wrapping Up

No matter whether you want to secure your cloud storage account or any other online account, Yubico’s latest offering is something that’s worth taking a look at if you don’t mind spending some money to secure your data.

Have you ever used YubiKey or some other secure key like LibremKey etc? How is your experience with it? Do you think these devices are worth spending the extra money?

How to Log Out from Ubuntu Session [Beginner’s Tip]

Wednesday 9th of September 2020 06:25:17 AM

How do you log out of Ubuntu?

The answer depends on whether you are using Ubuntu server or desktop. I’ll show you steps for both.

Logout Ubuntu from terminal (for server)

If you are using Ubuntu server and you are confined to the terminal screen, you can use the exit command:


Yes. That’s the way to logout from terminal because there is no logout command in Ubuntu or any Linux distribution. You have commands for shutdown Ubuntu but there is no separate log out command.

Why there is no logout command in Linux?

You may wonder if there is command for shutdown, command for restart then why there is no Linux command for logout?

The answer lies in the way Linux works. You probably know that Linux is only kernel and you need a shell to interact with the kernel. When you use a terminal or if you log in to an Ubuntu system via SSH, you open a shell session.

If you want to logout from your session, you simply exit the shell. This is why the exit command is equivalent to log out command in Linux.

Log out from Ubuntu desktop (GUI method)

If you are using Ubuntu desktop, you have a graphical interface (called desktop environment). You can use your mouse here.

I am showing the screenshot for the default GNOME desktop but if you are using some other Ubuntu desktop variants like Kubuntu, Lubuntu etc, there should also be a logout button or logout option in the power menu.

To log out from Ubuntu desktop session, go to the top right corner and click to bring the system tray. You should see Power Off / Log Out option. Click on it and it will show the Log Out option.

When you click on the Log Out button, it will open a dialogue box and ask for your conformation. If it receives no input from you, you’ll be logged out in 60 seconds.

That’s it. Now that you know how to log off from Ubuntu session let me tell you a secret tip.

You can use Ctrl+Alt+Del keyboard shortcut in Ubuntu to bring the logout menu. Cool, isn’t it?

How to Connect to WiFi from the Terminal in Ubuntu Linux

Tuesday 8th of September 2020 03:04:31 PM

In this tutorial, you’ll learn how to connect to wireless network from the terminal in Ubuntu. This is particularly helpful if you are using Ubuntu server where you don’t have access to the regular desktop environment.

I primarily use desktop Linux on my home computers. I also have multiple Linux servers for hosting It’s FOSS and related websites and open source software like Nextcloud, Discourse, Ghost, Rocket Chat etc.

I use Linode for quickly deploying Linux servers in cloud in minutes. But recently, I installed Ubuntu server on my Raspberry Pi. This is the first time I installed a server on a physical device and I had to do extra stuff to connect Ubuntu server to WiFi via command line.

In this tutorial, I’ll show the steps to connect to WiFi using terminal in Ubuntu Linux. You should

  • not be afraid of using terminal to edit files
  • know the wifi access point name (SSID) and the password
Connect to WiFi from terminal in Ubuntu

It is easy when you are using Ubuntu desktop because you have the GUI to easily do that. It’s not the same when you are using Ubuntu server and restricted to the command line.

Ubuntu uses Netplan utility for easily configuring networking. In Netplan, you create YAML file with the description of network interface and with the help of the netplan command line tool, you generate all the required configuration.

Let’s see how to connect to wireless networking from the terminal using Netplan.

Step 1: Identify your wireless network interface name

There are several ways to identify your network interface name. You can use the ip command, the deprecated ipconfig command or check this file:

ls /sys/class/net

This should give you all the available networking interface (Ethernet, wifi and loopback). The wireless network interface name starts with ‘w’ and it is usually named similar to wlanX, wlpxyz.

abhishek@itsfoss:~$ ls /sys/class/net eth0 lo wlan0

Take a note of this interface name. You’ll use it in the next step.

Step 2: Edit the Netplan configuration file with the wifi interface details

The Netplan configuration file resides in /etc/netplan directory. If you check the contents of this directory, you should see files like 01-network-manager-all.yml or 50-cloud-init.yaml.

If it is Ubuntu server, you should have cloud-init file. For desktops, it should be network-manager file.

The Network Manager on the Linux desktop allows you to choose a wireless network. You may hard code the wifi access point in its configuration. This could help you in some cases (like suspend) where connection drops automatically.

Whichever file it is, open it for editing. I hope you are a tad bit familiar with Nano editor because Ubuntu comes pre-installed with it.

sudo nano /etc/netplan/50-cloud-init.yaml

YAML files are very sensitive about spaces, indention and alignment. Don’t use tabs, use 4 (or 2, whichever is already used in the YAML file) spaces instead where you see an indention.

Basically, you’ll have to add the following lines with the access point name (SSID) and its password (usually) in quotes:

wifis: wlan0: dhcp4: true optional: true access-points: "SSID_name": password: "WiFi_password"

Again, keep the alignment as I have shown or else YAML file won’t be parsed and it will throw an error.

Your complete configuration file may look like this:

# This file is generated from information provided by the datasource. Changes # to it will not persist across an instance reboot. To disable cloud-init's # network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} network: ethernets: eth0: dhcp4: true optional: true version: 2 wifis: wlan0: dhcp4: true optional: true access-points: "SSID_name": password: "WiFi_password"

I find it strange that despite the message that changes will not persist across an instance reboot, it still works.

Anyway, generate the configuration using this command:

sudo netplan generate

And now apply this:

sudo netplan apply

If you are lucky, you should have network connected. Try to ping a website or run apt update command.

However, things may not go as smooth and you may see some errors. Try some extra steps if that’s the case.

Possible troubleshooting

It is possible that when you use the netplan apply command, you see an error in the output that reads something like this:

Failed to start netplan-wpa-wlan0.service: Unit netplan-wpa-wlan0.service not found. Traceback (most recent call last): File "/usr/sbin/netplan", line 23, in <module> netplan.main() File "/usr/share/netplan/netplan/cli/", line 50, in main self.run_command() File "/usr/share/netplan/netplan/cli/", line 179, in run_command self.func() File "/usr/share/netplan/netplan/cli/commands/", line 46, in run self.run_command() File "/usr/share/netplan/netplan/cli/", line 179, in run_command self.func() File "/usr/share/netplan/netplan/cli/commands/", line 173, in command_apply utils.systemctl_networkd('start', sync=sync, extra_services=netplan_wpa) File "/usr/share/netplan/netplan/cli/", line 86, in systemctl_networkd subprocess.check_call(command) File "/usr/lib/python3.8/", line 364, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['systemctl', 'start', '--no-block', 'systemd-networkd.service', 'netplan-wpa-wlan0.service']' returned non-zero exit status 5.

It is possible that wpa_supplicant service is not running. Run this command:

sudo systemctl start wpa_supplicant

Run netplan apply once again. If it fixes the issue well and good. Otherwise, shutdown your Ubuntu system using:

shutdown now

Start your Ubuntu system again, log in and generate and apply netplan once again:

sudo netplan generate sudo netplan apply

It may show warning (instead of error) now. It is warning and not an error. I checked the running systemd services and found that netplan-wpa-wlan0.service was already running. Probably it showed the warning because it was already running and ‘netplan apply’ updated the config file (even without any changes).

Warning: The unit file, source configuration file or drop-ins of netplan-wpa-wlan0.service changed on disk. Run 'systemctl daemon-reload' to reload units.

It is not crtical and you may check that the internet is probably working already by running apt update.

I hope you were able to connect to wifi using the command line in Ubuntu with the help of this tutorial. If you are still facing trouble with it, do let me know in the comment section.

How to Install Ubuntu Server on a Raspberry Pi

Tuesday 8th of September 2020 06:12:42 AM

The Raspberry Pi is the best-known single-board computer. Initially, the scope of the Raspberry Pi project was targeted to the promotion of teaching of basic computer science in schools and in developing countries.

Its low cost, portability and very low power consumption, made the models far more popular than anticipated. From weather station to home automation, tinkerers built so many cool projects using Raspberry Pi.

The 4th generation of the Raspberry Pi, is equipped with features and processing power of a regular desktop computer. But this article is not about using RPi as desktop. Instead, I’ll show you how to install Ubuntu server on Raspberry Pi.

In this tutorial I will use a Raspberry Pi 4 and I will cover the following:

  • Installing Ubuntu Server on a microSD card
  • Setting up a wireless network connection on the Raspberry Pi
  • Accessing your Raspberry Pi via SSH

You’ll need the following things for this tutorial:

  • A micro SD card (8 GB or greater recommended)
  • A computer (running Linux, Windows or macOS) with a micro SD card reader
  • A Raspberry Pi 2, 3 or 4
  • Good internet connection
  • An HDMI cable for the Pi 2 & 3 and a micro HDMI cable for the Pi 4 (optional)
  • A USB keyboard set (optional)
Installing Ubuntu Server on a Raspberry Pi

I have used Ubuntu for creating Raspberry Pi SD card in this tutorial but you may follow it on other Linux distributions, macOS and Windows as well. This is because the steps for preparing the SD card is the same with Raspberry Pi Imager tool.

The Raspberry Pi Imager tool downloads the image of your choice of Raspberry Pi OS automatically. This means that you need a good internet connection for downloading data around 1 GB.

Step 1: Prepare the SD Card with Raspberry Pi Imager

Make sure you have inserted the microSD card into your computer, and install the Raspberry Pi Imager at your computer.

You can download the Imager tool for your operating system from these links:

Despite I use Ubuntu, I won’t use the Debian package that is listed above, but I will install the snap package using the command line. This method can be applied to wider range of Linux distributions.

sudo snap install rpi-imager

Once you have installed Raspberry Pi Imager tool, find and open it and click on the “CHOOSE OS” menu.

Scroll across the menu and click on “Ubuntu” (Core and Server Images).

From the available images, I choose the Ubuntu 20.04 LTS 64 bit. If you have a Raspberry Pi 2, you are limited to the 32bit image.

Important Note: If you use the latest Raspberry Pi 4 – 8 GB RAM model, you should choose the 64bit OS, otherwise you will be able to use 4 GB RAM only.

Select your microSD card from the “SD Card” menu, and click on “WRITE”after.

If it shows some error, try writing it again. It will now download the Ubuntu server image and write it to the micro SD card.

It will notify you when the process is completed.

Step 2: Add WiFi support to Ubuntu server

Once the micro SD card flashing is done, you are almost ready to use it. There is one thng that you may want to do before using it and that is to add Wi-Fi support. If you don’t do it right now, you’ll have to put extra effort later in connecting to wifi from terminal in Ubuntu server.

With the SD card still inserted in the card reader, open the file manager and locate the “system-boot” partition on the card.

The file that you are looking for and need to edit is named network-config.

This process can be done on Windows and MacOS too. Edit the network-config file as already mentioned to add your Wi-Fi credentials.

Firstly, uncomment (remove the hashtag “#” at the beginning) from lines that are included in the rectangular box.

After that, replace myhomewifi with your Wi-Fi network name enclosed in quotation marks, such as “itsfoss” and the “S3kr1t” with the Wi-Fi password enclosed in quotation marks, such as “12345679”.

It may look like this:

wifis: wlan0: dhcp4: true optional: true access-points: "your wifi name": password: "your_wifi_password"

Save the file and insert the micro SD card into your Raspberry Pi. During the first boot, if your Raspberry Pi fails connect to the Wi-Fi network, simply reboot your device.

Step 3: Use Ubuntu server on Raspberry Pi (if you have dedicated monitor, keyboard and mouse for Raspberry Pi)

If you have got an additional set of mouse, keyboard and a monitor for the Raspberry Pi, you can use easily use it like any other computer (but without GUI).

Simply insert the micro SD card to the Raspberry Pi, plug in the monitor, keyboard and mouse. Now turn on your Raspberry Pi. It will present TTY login screen (black terminal screen) and aks for username and password.

  • Default username: ubuntu
  • Default password: ubuntu

When prompted, use “ubuntu” for the password. Right after a successful login, Ubuntu will ask you to change the default password.

Enjoy your Ubuntu Server!

Step 3: Connect remotely to your Raspberry Pi via SSH (if you don’t have monitor, keyboard and mouse for Raspberry Pi)

It is okay if you don’t have a dedicated monitor to be used with Raspberry Pi. Who needs a monitor with a server when you can just SSH into it and use it the way you want?

On Ubuntu and Mac OS, an SSH client is usually already installed. To connect remotely to your Raspberry Pi, you need to discover its IP address. Check the devices connected to your network and see which one is the Raspberry Pi.

Since I don’t have access to a Windows machine, you can access a comprehensive guide provided by Microsoft.

Open a terminal and run the following command:

ssh ubuntu@raspberry_pi_ip_address

You will be asked to confirm the connection with the message:

Are you sure you want to continue connecting (yes/no/[fingerprint])?

Type “yes” and click the enter key.

When prompted, use “ubuntu” for the password as mentioned earlier. You’ll be asked to change the password of course.

Once done, you will be automatically logged out and you have to reconnect, using your new password.

Your Ubuntu server is up and running on a Raspberry Pi!


Installing Ubuntu Server on a Raspberry Pi is an easy process and it comes pre-configured at a great degree which the use a pleasant experience.

I have to say that among all the operating systems that I tried on my Raspberry Pi, Ubuntu Server was the easiest to install. I am not exaggerating. Check my guide on installing Arch Linux on Raspberry Pi for reference.

I hope this guide helped you in installing Ubuntu server on your Raspberry Pi as well. If you have questions or suggestions, please let me know in the comment section.

Zim: A Wiki-Like Note-taking App That Makes Things Easier

Monday 7th of September 2020 02:57:28 PM

Brief: Zim is an impressive note taking app for users who want a wiki-style collection of their notes, tasks, or ideas. Here, we take a look at what it offers.

Zim: A Desktop Wiki

Zim is undoubtedly one of the best note-taking apps for Linux but it’s not just another ordinary note app that lets you add ideas/tasks and save them.

It’s tailored to help you maintain a collection of notes in the form of wiki pages. In other words, you can have a lot of notes (tasks/ideas) and link them to each other that will make it easier to go through what you’ve added in the past.

Here, I’ll give an overview of the features you get with Zim and how to get it installed on Linux.

Features of Zim Wiki

You’ll find a lot of options as you explore, I’ll highlight the key features here:

  • Supports adding tasks
  • You can use it as a journal
  • Easy to keep archive of notes
  • Several Markup types supported
  • Auto-save
  • Easily compatible with other text editors
  • Ability to link other notes to navigate through a collection of pages
  • Ability to open embedded images using native applications
  • Supports embedded equations
  • LaTeX’s equation editor
  • Export notes as HTML to publish them as webpages
  • Easily edit the config files to tweak the color scheme of your editor
  • Keybind support to navigate just using the keyboard
  • Supports plugins to add spell checker and other useful tools
  • Basic formatting support for essential things like subscript, superscript, and so on
  • Ability to save different versions of notes (version control system)
  • Easy to utilize/create templates for quick-use
  • Cross-platform support

The feature-set is definitely impressive and somewhat overwhelming for basic note-taking usage. But, depending on your usage, you should give it a try to make the most out of it.

Installing Zim On Linux

You should find it listed on your software center or app center of your Linux distribution. Just search for it and get it installed.

There is also a Zim Wiki flatpak package iavailable. I’d recommend you to check out our article on using Flatpak on Linux if you don’t know about it.

You should also find it on other repositories like AUR. Also, you can find the source code on GitHub, if you’re curious.

Zim Wiki Wrapping Up

Zim Wiki is definitely a great note-taking app for Linux. You can also use it on your Windows or mac OS system. So, you can have your collection of notes/ideas anywhere you want.

Unlike some other note-taking applications, you won’t find a mobile client for it as far as I’m aware.

Overall, it’s an interesting choice for power users with a lot of notes and ideas to keep track of. What do you think about it? Let me know your thoughts in the comments below.

Linux Jargon Buster: What is a Linux Distribution? Why is it Called a ‘Distribution’?

Sunday 6th of September 2020 06:46:37 AM

In this chapter of the Linux Jargon Buster, let’s discuss something elementary.

Let’s discuss what is a Linux distribution, why it is called a distribution (or distro) and how is it different from the Linux kernel. You’ll also learn a thing or two about why some people insist of calling Linux as GNU/Linux.

What is a Linux distribution?

A Linux distribution is an operating system composed of the Linux kernel, GNU tools, additional software and a package manager. It may also include display server and desktop environment to be used as regular desktop operating system.

The term is Linux distribution (or distro in short form) because an entity like Debian or Ubuntu ‘distributes’ the Linux kernel along with all the necessary software and utilities (like network manager, package manager, desktop environments etc) so that it can be used as an operating system.

Your distributions also takes the responsibility of providing updates to maintain the kernel and other utilities.

So, Linux is the kernel whereas the Linux distribution is the operating system. This is the reason why they are also sometime referred as Linux-based operating systems.

Don’t worry if not all the above makes sense right away. I’ll explain it in a bit more detail.

Linux is just a kernel, not an operating system: What does it mean?

You might have come across that phrase and that’s entirely correct. The kernel is at the core of an operating system and it is close to the actual hardware. You interact with it using the applications and shell.

Linux Kernel Structure

To understand that, I’ll use the same analogy that I had used in my detailed guide on what is Linux. Think of operating systems as vehicles and kernel as engine. You cannot drive an engine directly. Similarly, you cannot use kernel directly.

Operating System Analogy

A Linux distribution can be seen as a vehicle manufacturer like Toyota or Ford that provides you ready to use cars just like Ubuntu or Fedora distributions provide you a ready to use operating systems based on Linux.

What is GNU/Linux?

Take a look at this picture once again. What Linus Torvalds created in 1991 is just the innermost circle, i.e. the Linux kernel.

Linux Kernel Structure

To use Linux even in the most primitive form (without even a GUI), you need a shell. Most commonly, it is Bash shell.

And then, you need to run some commands in the shell to do some work. Can you recall some basic Linux commands? There is cat, cp, mv, grep find, diff, gzip and more.

Technically, not all of these so called ‘Linux commands’ belong to Linux exclusively. A lot of them originate mainly from the UNIX operating system.

Even before Linux came into existence, Richard Stallman had created the GNU (recursive acronym for GNU is not Unix) project, the first of the free software project, in 1983. The GNU project implemented many of the popular Unix utilities like cat, grep, awk, shell (bash) along with developing their own compilers (GCC) and editors (Emacs).

Back in the 80s UNIX was proprietary and super expensive. This is why Linus Torvalds developed a new kernel that was like UNIX. To interact with the Linux kernel, Torvalds used GNU tools which were available for free under their open source GPL license.

With the GNU tools, it also behaved like UNIX. This is the reason why Linux is also termed as UNIX-like operating system.

You cannot imagine Linux without the shell and all those commands. Since Linux integrates deeply with the GNU tools, almost dependent on it, the purists demand that GNU should get its fair share of recognition and this is why they insist on calling it GNU Linux (written as GNU/Linux).


So, what is the correct term? Linux, GNU/Linux, Linux distribution, Linux distro, Linux based operating system or UNIX-like operating system? I say it depends on you and the context. I have provided you enough detail so that you have a better understanding of these related terms.

I hope you are liking this Linux Jargon Buster series and learning new things. Your feedback and suggestions are welcome.

PCLinuxOS Review: This Classic Independent Linux Distribution is Definitely Worth a Look

Saturday 5th of September 2020 04:22:04 AM

Most of the Linux distributions that we cover on It’s FOSS are based on either Ubuntu or Arch.

No, we don’t have any affinity for either Ubuntu or Arch though personally, I love using Manjaro. It’s just that majority of new Linux distributions are based on these two.

While discussing within the team, we thought, why fixate over new distributions. Why not go for the classic distributions? Distributions that don’t belong to DEB/Arch domain.

So, today, we are going to be looking at an independent distro that tends to go against the flow. We’ll be looking at PCLinuxOS.

What is PCLinuxOS?

Back in 2000, Bill Reynolds (also known as Texstar) created a series of packages to improve Mandrake Linux, which later became Mandriva Linux. PCLinuxOS first became a separate distro in 2003 when Texstar forked Mandrake. He said that he made the move because he wanted “to provide an outlet for my crazy desire to package source code without having to deal with egos, arrogance and politics”.

As I said earlier, PCLinuxOS does not follow the rest of the Linux world. PCLinuxOS does not use systemd. Instead, it uses SysV init and “will continue to do so for the foreseeable future“.

It also has one of the oddest package management systems, I have ever encountered. PCLinuxOS uses apt and synaptic to handle RPM packages. Unlike most distros that use either apt or rpm, PCLinuxOS is a rolling distro. It also supports Flatpak.

The PCLinuxOS team offers three different versions: KDE, MATE, and XFCE. The PCLinuxOS community has also created a number of community releases with more desktop options.

PCLinuxOS Updater System requirements for PCLinuxOS

According to the PCLinuxOS wiki, the following hardware is recommended to run PCLinuxOS:

  • Modern Intel or AMD processor.
  • 10 GB or more free space recommended.
  • Minimum 2 GB of memory. – Recommended 4 GB or more.
  • Any modern video card by Nvidia, ATI, Intel, SiS, Matrox, or VIA.
  • 3D desktop support requires a 3D instructions set compatible card.
  • Any Sound Blaster, AC97, or HDA compatible card.
  • A CD or DVD drive.
  • Flash drives can also be used to install, with PCLinuxOS-LiveUSB script just for this purpose.
  • Generally any onboard network card will suffice.
  • A high-speed internet connection is recommended for performing any updates/software installations as necessary.
Experience with PCLinuxOS

I originally encountered PCLinuxOS when I was first entering the Linux world about 7+ years ago. Back then I was trying out distros like crazy. At the time, I didn’t quite understand it and ended up going with Lubuntu.

Recently, I was reminded of the distro when Matt Hartley, community manager at OpenShot mentioned it on the Bryan Lunduke podcast. PCLinuxOS is Hartley’s daily driver and has been for a while. Based on his comments, I decided to take another look at it.

Smooth installation PCLinuxOS installer

The majority of Linux distros use one of three installers, Ubiquity, Anaconda, or Calamares. PCLinuxOS is one of the few that has its own installer, which it inherited from Mandrake. The installation went quickly and without any issue.

After the installation, I booted into the MATE desktop environment (because I had to). A dialog box asked me if I wanted to enable the update notifier. It’s always best to be up-to-date, so I did.

Handy set of utilities

Besides the usual list of utilities, office programs, and web tools, PCLinuxOS has a couple of interesting additions. Both Zoom (a videoconferencing tool) and AnyDesk (a remote desktop application) come pre-installed for your remote working needs. The menu also includes an option to install VirtualBox GuestAdditions (in case you installed PCLinuxOS on VirtualBox).

PCLinuxOS Control Center

PCLinuxOS comes with a control center to handle all of your system admin needs. It covers installing software, file sharing, handles network connections, handles hardware issues, and security.

Create your own custom PCLinuxOS live disk

It also comes with a couple of apps that allow you to download a new PCLinuxOS ISO, write that ISO to a disc or USB, or create your own LiveCD based on your current system.

It is easy to create your own custom PCLinuxOS ISO No sudo in PCLinuxOS

Interestingly, PCLinuxOS doesn’t have sudo installed. According to the FAQ, “Some distros…leaving sudo in a default state where all administrator functions are allowed without the requirement to enter the root password. We consider this an unacceptable security risk.” Whenever you perform a task that requires admin privileges, a window appears asking for your password.

Strong community

One of the cool things about PCLinuxOS is its strong community. That community creates a monthly e-magazine. Each issue contains news, tutorials, puzzles, and even recipes. The only other distro (or family of distros) that has sustained a community publication for over 15 years is Ubuntu with the Full Circle Magazine. Be sure to check it out.

No hardware issues noticed (for my system)

This is one of the last distros I will review on my Dell Latitude D630. (I’m moving up to a newer Thinkpad.) One of the major problems I’ve had in the past was getting the Nvidia GPU to work correctly. I didn’t have any issues with PCLinuxOS. It just worked out of the box.

Final Thoughts PCLinuxOS Desktop

PCLinuxOS also provides an easy way to remaster the system after installation. It allows you to create a live disk of PCLinuxOS with your customization. I

PCLinuxOS feels like part of the past and part of the present. It reflects the pre-systemd days and offers a modern desktop and apps at the same time. The only thing I would complain about is that there are fewer applications available in the repos than more popular distros, but the availability of Flatpak and AppImages should fix that.

PCLinuxOS’ tag line is: “So cool ice cubes are jealous“. It might sound corny, but I think it’s true, especially if you aren’t a fan of the direction the rest of the Linux world has taken. If you find something lacking in the big Linux distros, check out this old-little distro with a great community.

Have you ever used PCLinuxOS? What is your favorite independent distro? Please let us know in the comments below. If you found this article interesting, please take a minute to share it on social media, Hacker News or Reddit.

How to Copy Paste in Linux Terminal [For Absolute Beginners]

Friday 4th of September 2020 06:57:31 AM

I have been using Linux for a decade now and this is why sometimes I take things for granted.

Copy pasting in the Linux terminal is one of such things.

I thought everyone already knew this until one of the It’s FOSS readers asked me this question. I gave the following suggestion to the Ubuntu user:

Use Ctrl+Insert or Ctrl+Shift+C for copying and Shift+Insert or Ctrl+Shift+V for pasting text in the terminal in Ubuntu. Right click and selecting the copy/paste option from the context menu is also an option.

I thought of elaborating on this topic specially when there is no single universal way of copy and paste in the Linux terminal.

How to copy paste text and commands in the Linux terminal

There are several ways to do this.

Method 1: Using keyboard shortcuts for copy pasting in the terminal

On Ubuntu and many other Linux distributions, you can use Ctrl+Insert or Ctrl+shift+C for copying text and Shift+Insert or Ctrl+shift+V for pasting text in the terminal.

The copy pasting also works for the external sources. If you copy a command example from It’s FOSS website (using the generic Ctrl+C keys), you can paste this command into the terminal using the Ctrl+Shift+V into the terminal.

Similarly, you can use Ctrl+shift+C to copy text from the terminal and then use it to paste in a text editor or web browser using the regular Ctrl+V shortcut.

Basically, when you are interacting with the Linux terminal, you use the Ctrl+Shift+C/V for copy-pasting.

Method 2: Using right click context menu for copy pasting in the terminal

Another way of copying and pasting in the terminal is by using the right click context menu.

Select the text in the terminal, right click and select Copy. Similarly, to paste the selected text, right click and select Paste.

Method 3: Using mouse to copy paste in Linux terminal

Another way to copy paste in Linux terminal is by using only the mouse.

You can select the text you want to copy and then press the middle mouse button (scrolling wheel) to paste the copied text.

Please keep in mind that these methods may not work in all the Linux distributions for a specific reason that I explain in the next section.

There is no universal key shortcuts for copy paste in the Linux terminal. Here’s why!

The keybindings for copy-pasting are dependent on the terminal emulator (commonly known as terminal) you are using.

If you didn’t know that already terminal is just an application and you can install other terminals like Guake or Terminator.

Different terminal applications may have their own keybindings for copying and pasting like Alt+C/V or Ctrl+Alt+C/V.

Most Linux terminals use the Ctrl+Shift+C/V keys but if it doesn’t work for you, you may try other key combinations or configure the keys from the preferences of the terminal emulator.

Quick word about Putty

If you use Putty on Linux or Windows, it uses an entire different keybindings. In Putty, selecting a text automatically copies it and you can paste it using right click.

Why Linux terminals do not use the ‘universal’ Ctrl+C and Ctrl+V for

No Linux terminal will give you Ctrl+C for copying the text. This is because by default Ctrl+C keybinding is used for sending an interrupt signal to the command running in foreground. This usually stops the running command.

Using Ctrl+C stops a running command in Linux terminal

This behavior has been existing long before Ctrl+C and Ctrl+V started being used for copy-pasting text.

Since the Ctrl+C keys are ‘reserved’ for stopping a command, it cannot be used for copying.

Used Ctrl+S and hanged the terminal?

Most of us use Ctrl+S keys to save changes made to text, images etc. This key is almost universal for saving same as Ctrl+C is for copying.
However, if you enter Ctrl+S in Linux terminal, it will freeze the terminal. No need to close the terminal and start it again. You can use Ctrl+Q to unfreeze the terminal.
Ctrl+S and Ctrl+Q are shortcut keys for flow control.

I know this is elementary for the Sherlock Holmes of the Linux world but it could still be useful to the Watsons.

New or not, you may always use shortcuts in Linux terminal to make your life easier.

TUXEDO Computers Announces 2 Monstrous Linux Gaming Laptops

Thursday 3rd of September 2020 11:48:24 AM

TUXEDO Computers is one of the best places to get a Linux laptop. They’re also a great option if you’re looking for one of the best Linux based mini PCs.

And, recently, they just unveiled two monstrous Linux laptops perfectly tailored for games. Here, let’s take a look at what they offer.

TUXEDO Polaris 15 & Polaris 17 Pack in A Lot of Power

The Polaris 15 comes in with a Matt black aluminum chassis and a thin bezel for the display. It looks pretty cool (I love Matt color finishes!).

The Polaris 17 comes in with a soft-touch finish and a little on the heavier side weighing 2.5 kg. The 17.3-inch screens should be an attractive variant for users comfortable with a desktop-like experience on their laptop.

With all the clever decisions for its design and build, it offers the choice of both Ryzen 4000 series of processors (Ryzen 5 4600H and Ryzen 7 4800H) and Intel 10th gen processor (i7-10750H).

That’s great for buyers looking for powerful Linux notebooks with the choice of Intel/Ryzen configuration.

In addition to the choice of chipsets, both laptops comes baked in with 62 Wh battery for a good battery life, a 144Hz display, supports up to 64 GB 3200 MHz RAM, M.2 SSD, and a slot for PCIe NVMe SSD (up to 1 TB).

All of this is powered up by either GTX 1650ti or the RTX 2060 — which is great for a Linux laptop enthusiast.

It is worth noting that the Polaris 15 offers 60 Hz display for its base variant and Polaris 17 offers 144 Hz display across all of its variants.

Sounds good on paper so far — but what about the pricing?

Pricing & Availability

The base configurations with Ryzen 5/Intel i7 coupled with 8 GB of RAM along with GTX 1650ti or RTX 2060 will cost you around 1100-1400 Euros excluding shipping charges.

If you stop thinking about the shipping charges, the pricing looks good enough on paper as per the specifications for a Linux gamer who’s a laptop enthusiast.

But, I’m not too confident about their pricing for the base configurations and the choice of 8 GB RAM for a gaming laptop that costs 1000+ EUR. For instance:

  • TUXEDO Polaris 17 with AMD Ryzen 5 4600H | NVIDIA GeForce GTX 1650 Ti | Full-HD IPS mat 144Hz costs 1.174,45 EUR
  • TUXEDO Polaris 15 with AMD Ryzen 5 4600H | NVIDIA GeForce GTX 1650 Ti | Full-HD IPS mat 60Hz 100% sRGB costs 1.124,45 EUR

In this case, I would prefer TUXEDO Polaris 17 and I see no reason, apart from the size, to go for TUXEDO Polaris 15 for a small price gap.

Maybe I’m too picky — but I noticed that thing because the base Polaris 15 variant offers a 60 Hz display as well. So, I’d personally want the pricing to go down or a 144 Hz screen instead.

If that doesn’t bother you, you will be happy to know that it will be in stock from September 15 onwards and it’ll take 10 days in average to assemble your configuration and ship it to you worldwide.

.ugb-dc34eb7-wrapper.ugb-container__wrapper{border-radius:0px !important;padding-top:0 !important;padding-bottom:0 !important;background-color:#f1f1f1 !important}.ugb-dc34eb7-wrapper > .ugb-container__side{padding-top:35px !important;padding-bottom:35px !important}.ugb-dc34eb7-wrapper.ugb-container__wrapper:before{background-color:#f1f1f1 !important}.ugb-dc34eb7-content-wrapper > h1,.ugb-dc34eb7-content-wrapper > h2,.ugb-dc34eb7-content-wrapper > h3,.ugb-dc34eb7-content-wrapper > h4,.ugb-dc34eb7-content-wrapper > h5,.ugb-dc34eb7-content-wrapper > h6{color:#222222}.ugb-dc34eb7-content-wrapper > p,.ugb-dc34eb7-content-wrapper > ol li,.ugb-dc34eb7-content-wrapper > ul li{color:#222222}

Recommended Read:

.ugb-44ea71c .ugb-blog-posts__featured-image{border-radius:0px !important}.ugb-44ea71c .ugb-blog-posts__title a{color:#000000 !important}.ugb-44ea71c .ugb-blog-posts__title a:hover{color:#00b6ba !important}Gaming On Linux: All You Need To Know

Can I play games on Linux? What are the games available for Linux? Where to find Linux games? This comprehensive article answers all your questions on Linux gaming.

Wrapping Up

It is always a good thing to see more Linux based gaming laptops in the market. TUXEDO Polaris series is indeed something impressive but I can’t stop worrying about the pricing fluctuations after NVIDIA RTX 3000 series GPU launch.

If you want a Linux gaming laptop immediately, it’s a decent purchase if not the best. But, if you’re looking for the perfect Linux laptop which is future-proof, I’d suggest you to wait for Intel Tiger Lake chipset powered laptops and NVIDIA RTX 3000 series GPUs for your Linux laptop.

What do you think about the TUXEDO Linux gaming laptops? Let me know your thoughts in the comments below.

Soon You’ll be Able to Convert Any Website into Desktop Application in Linux Mint

Wednesday 2nd of September 2020 06:52:02 AM

Imagine this situation. You are working on a certain topic and you have more than twenty tabs open in your web browser, mostly related to the work.

Some of these tabs are for YouTube or some other music streaming website you are listening to.

You finished the work on the topic and close the browser. Your intent was to close all the work related tabs but it also closed the tabs that you were using for listening to music or some other activities.

Now you’ll have to log in to those websites again and find the track you were listening to or whatever you were doing.

Frustrating, isn’t it? Linux Mint understands your pain and they have an upcoming project to help you out in such scenario.

Linux Mint’s Web App Manager

In a recent post, Linux Mint team revealed that it is working on a new tool called Web App Manager.

The Web App Manager tool will allow you to launch your favorite websites and have them run in their own window as if they were desktop applications.

While adding a website as a Web App, you can give it a custom name and icon. You can also give it a different category. This will help you search this app in the menu.

You may also specify which web browser you want the Web App to be opened in. Option for enabling/disabling navigation bar is also there.

Adding a Web App In Linux Mint

Say, you add YouTube as a Web App:

Web Apps In Linux Mint

If you run this YouTube Web App, YouTube will now run in its own window and in a browser of your choice.

YouTube Web App

The Web App has most of the features you see in a regular desktop application. You can use it in Alt+Tab switcher:

Web App in Alt Tab Switcher

You can even pin the Web App to the panel/taskbar for quick access.

YouTube Web App added to the panel

The Web App Manager is in beta right now but it is fairly stable to use. It is not translation ready right now and this is why it is not released to the public.

If you are using Linux Mint and want to try the Web App Manager, you can download the DEB file for the beta version of this app from the link below:

Download Web App Manager (beta) for Linux Mint Benefits of the web apps

Some readers asked about the benefits of this Web App Manager over other similar feature already available in Chrome and some other web browsers. Let me expand on this topic.

  • You can use a specific part of the URL ( instead of as an app.
  • The possibility of adding custom icons comes handy for websites without a clear fevicon.
  • You can use a lightweight browser without any extension to open the web app instead of the regular web browser like Chrome/Chromium. It should be faster.
  • Your web app is integrated into the application menu. You can search for it like any other application.
Web apps are not new to desktop Linux

This is not something ground breaking from Linux Mint. Web apps have been on the scene for almost a decade now.

If you remember, Ubuntu had added the web app feature to its Unity desktop in 2013-14.

The lightweight Linux distribution PeppermintOS lists ICE (tool for web apps) as its main feature since 2010. In fact, Linux Mint’s Web App manager is based on Peppermint OS’s ICE.

Personally, I like web apps feature. It has its usefulness.

What do you think of Web Apps in Linux Mint? Is it something you look forward to use? Do share your views in the comment section.

Rclone Browser Enables You to Sync Data With Cloud Services in Linux Graphically

Wednesday 2nd of September 2020 03:55:01 AM

Brief: Rclone Browser is an effective GUI program that makes it easy to manage and sync data on cloud storage using Rclone. Here, we take a look at what it offers and how it works.

If you want to use One Drive or Google Drive on Linux natively and effortlessly, you can opt for a premium GUI tool like Insync (affiliate link).

If you can put some effort in the terminal, you can use Rclone to sync with many cloud storage services on Linux. We have a detailed guide on using Rclone for syncing with OneDrive in Linux.

Rclone is a pretty popular and useful command-line tool. A lot of power users will need to use Rclone for its features.

However, not everyone is comfortable using it from the terminal even if it’s useful enough.

So, in this article, I’ll talk about an impressive GUI “Rclone Browser” that makes it easy to manage and sync your data on cloud storage using Rclone.

It is also worth noting that Rclone does offer an experimental web-based GUI — but we are going to focus on Rclone Browser here.

Rclone Browser: An Open-Source GUI for Rclone

Rclone Browser is a GUI that lets you browse, modify, upload/download, list files, and do a lot more stuff that you’d want to do when you want to make the most out of managing a remote storage location.

It offers a simple user interface and works just fine (as per my quick test). Let’s take a detailed look at the features it offers and how to get started using it.

Features of Rclone Browser

It offers a lot of options and control to manage remote storage locations. You may find it feature-rich or overwhelming depending on your use-case. Here they are:

  • Browse and modify rclone remote storage locations
  • Encrypted cloud storage supported
  • Custom location and encryption for configuration supported
  • No extra configuration required. It will use the same rclone configuration files (if you have any).
  • Simultaneous navigation of multiple locations in separate tabs
  • List files hierarchically (by file name, size, and modified date)
  • Rclone commands are executed asynchronously without the GUI freezing
  • You get the ability to upload, download, create new folders, rename, delete files and folders
  • Drag and drop support for dragging files while uploading
  • Streaming media files in player like VLC
  • Mount and unmount folders/cloud drives
  • Ability to calculate size of folder, export list of files, and copy rclone commands to clipboard
  • Supports portable mode
  • Supports shared drivers (if you’re using Google Drive)
  • Gives you the ability to have public link sharing option for remote storage services that offers it
  • Ability to create tasks that you can easily save to run it again or edit it later
  • Dark mode
  • Cross-platform support (Windows, macOS, and Linux)
Installing Rclone Browser on Linux

You need to have rclone installed on your Linux distribution before you use Rclone Browser. Follow the official installation instructions to do that.

You will find an AppImage file available for Rclone Browser from the releases section of its GitHub page. So, you shouldn’t have an issue running it on any Linux distribution.

In case you didn’t know about AppImage, I’ll recommend going through our guide to use AppImage on Linux.

You can also choose to build it as well. The instructions to do that is in the GitHub page.

Rclone Browser Getting Started With Rclone Browser

Here, I’ll just share a few things that you should know to get started using Rclone Browser.

If you had any existing remote locations using rclone in the terminal, it will automatically show up in the GUI. You can also hit the “Refresh” button to get the latest additions.

As shown in the screenshot above, when you click the “Config” button it launches the terminal that lets you easily add a new remote or configure it as you want. Don’t worry when the terminal pops up, Rclone browser executes the commands to do all the necessary tasks, you just have to set up or edit a few things when needed. You don’t need to execute any Rclone commands.

If you have some existing remotes, you can simply open them using the “Open” button and have the cloud storage accessible in a different tab as shown below.

You can easily mount the cloud drive, upload/download files, get the details, share a public link for a folder (if supported), and directly stream media files as well.

If you want to copy, move, or sync data with a remote storage location, you can simply create a task to do it. Just to make sure that you have the right settings, you can perform a dry run or go ahead with running the task.

You can find all the running tasks under the “Jobs” section and you can cancel/stop them if needed.

In addition to all the basic functionalities mentioned above, you can just head to File->Preferences to change the rclone location, mount option, download folder, bandwidth settings, and proxy as well.

To learn more about its usage and features, you might want to check out the GitHub page for all the technical information.

Wrapping Up

Rclone Browser should definitely come in handy for every Linux user looking to use Rclone for its powerful features.

Have you tried it yet? Do you prefer using the GUI or the terminal for using rclone? Let me know your thoughts in the comments below!

From Terminal Master to Grandmaster: Play Chess in Linux Terminal

Tuesday 1st of September 2020 06:02:29 AM

You know Linux terminals can be fun too!

You can run some funny Linux commands for amusement. You can also play games in Linux terminal.

Yes! You heard it right. You can play games in the terminal and in this #TerminalTuesday series, I’ll show you how to play chess in Linux terminal.

You might be thinking, “why would anyone want to play chess in the terminal ?!”. I say, it’s a lot of fun. It is also challenging if you play against Stockfish.

Yes, there’s GNU Chess available, but it is not visually appealing and the chess engine “keeps thinking” for a long time.

I’m talking about an alternative to GNU Chess. Here are a few reasons you might enjoy this one better.

  • You get to play against one of the strongest chess engine, Stockfish. Here are the rankings for all the computer chess engines.
  • Visually looks way better than GNU Chess and is relatively faster as well.
  • You’ll learn how to describe chess moves in algebraic notation.
  • I figured that a pretty good chunk of It’s FOSS readers are geeks/nerds and that you guys would enjoy it.

To install terminal chess you need two components, the Stockfish chess engine and chs which is the UI which plugs into the chess engine.

Installing Chess in Linux terminal with Stockfish and chs

The terminal commands here are for Ubuntu or Ubuntu based distributions since a lot of people use them. These commands were tested on Ubuntu 20.04.

You can use your distribution’s package manager for installing the mentioned software.

sudo apt install stockfish

Running the above command will install the latest version of the Stockfish chess engine.

chs is the UI which plugs into the chess engine. It is written in python3 and you can install it using pip3 the python package manager.

First, install PIP on Ubuntu with this command:

sudo apt install python3-pip

Once you have pip3 installed, run the below command to install chs.

pip3 install chs Cofiguring chs

After installing chs, you’ll see an error message saying chs is not on PATH. At this point if you try to launch chs, the terminal won’t know where to launch it from.

You can use the following command to fix the problem

export PATH="$PATH:$HOME/ .local/bin"

If you try to launch chs from the terminal, you’ll see a “FileNotFoundError”. This is a known bug in chs, it is not able to find the Stockfish chess engine to launch it.

To fix this issue we need to make a small edit in the chs python code. The file we are interested in will be located at /.local/lib/python3.X/site-packages/chs/engine/

Make sure to replace the the 3.X in the python version with the one installed on your computer. You can check the python version using the below command.

python3 -V

For me, it was Python 3.8. You can use Nano editor or your choice of text editor and open up the file.

sudo nano ~/.local/lib/python3.8/site-packages/chs/engine/

In the line 13 of the code you’ll see engine_path = ‘stockfish_10_x64_linux’, you have to replace ‘stockfish_10_x64_linux’ like this

engine_path = "/usr/games/stockfish"

Now you’re finally done with all the setup. Type chs in the terminal to launch the game. This launches chs at level 1 difficulty.

You can specify the level of difficulty of the while launching the game as shown below.

chs level=8 Playing chess in Linux terminal

You play terminal chess using the algebraic notation (the name sounds complicated but it is quite simple) to describe the moves.

I’ll summarize a short version of how to play using algebraic notation, for detailed information you can check out this article. Chess pieces are represented by a single letter.

  • Knight – N
  • Rook – R
  • Queen – Q
  • King – K
  • Bishop – B
  • Pawns – blank, they don’t have an associated letter.

The chess board columns are represented by letters a to h and rows are represented by numbers 18. To move your pawn in the position a2 to a4 you just write a4.

To move your knight(N) from g1 to h3 you would write Nh3.

To capture a pawn you have to add an x in the command. Here I’m trying to capture the bishop(B) which is in the position c4 using my knight(N). The command for this is Nxc4.

The Stockfish engine also gives you suggestions when you type an invalid command or when there are multiple possibilities for a command. You can use the command hint and the chess engine will give you a hint for the next move.

You can also use the back which takes back your last move(s), this will help you cheat or revise the game depending on how you see it.

Closing thoughts

If you find the chessboard to be very tiny, you can scale it up and play around with different fonts. Both Stockfish and chs are open source and you can easily get your hands dirty and mess around with the code for your own projects (if you want).

If you want to try out the good old GNU Chess, you can install it using the command below.

sudo apt install gnuchess

Let me know how your game went in the comment section :)

How to Set Up Facial Recognition to Sign into Ubuntu and Other Linux Distributions

Monday 31st of August 2020 08:56:36 AM

Despite all the concern, facial recognition is getting popular among consumers. Most recent Android and iOS devices have the feature to unlock the device with facial authentication.

Once you get used to the face unlock or fingerprint unlock, typing password feels like a tedious, boring task.

On Windows operating system, Microsoft provides the Windows Hello that allows instant authentication based on your face.

On Linux, face unlock is not a built-in feature. No Linux distribution, as far as I know, provides face unlock feature out of the box.

But as the saying goes, there is a shell, there is a way. In Linux, you’ll often find alternative things and tools that you can configure for a certain task. Remember the tutorial I wrote for sharing mouse and keyboard between Linux and Raspberry Pi devices?

In this tutorial, I’ll show you how to set up face unlock in Ubuntu. You can use the tutorial for other Linux distributions as well.

You need to be comfortable with the terminal and Linux commands because you’ll be using Linux command line tool.

Howdy: A Windows Hello Styled Facial Recognition Authentication System for Linux

Howdy is an open source software that gives you the ability to login to your Linux system with face recognition. Consider it an open source Windows Hello alternative for Linux. Here, your data is stored locally on your computer.

Howdy uses the built-in IR emitters and webcam combination to recognize your face. It is built using OpenCV and Python.

Howdy uses the PAM authentication system which means not only you can login to your system with your face, you can also use it for sudo, su and in most other situations where you need to use your account password. However, in my testing, it could not unlock the keyring in Ubuntu.

In this tutorial, I’ll show you how to install Howdy and how to set it up for facial recognition. The process is not too complicated but you should not be too uncomfortable using the terminal here.

Installing Howdy on Ubuntu and other Linux distributions

The developer of Howdy provides a handy PPA that makes installing Howdy easier to install on Ubuntu-based distributions.

Open a terminal and use the following commands on Ubuntu:

sudo add-apt-repository ppa:boltgolt/howdy sudo apt update sudo apt install howdy

Howdy is a big software and it installs a huge number of software libraries. For me, it showed around 140 MB of download size and 600 MB of disk size requirement after installation.

During the installation, it asks you to choose from Fast, Balanced and Secure authentication type. I chose Balanced at this step because I don’t want to wait too long but don’t want it to be less secure as well.

During the installation, it complains about adding /usr/local/bin in the PATH but for me it was already there. You may verify it for your system.

Installing Howdy on other Linux distributions

For Debian, you can download the DEB file. Arch/Manjaro users can install it from AUR.

Fedora users have the option to use COPR repository:

sudo dnf copr enable luya/howdy sudo dnf install howdy

openSUSE users can find the installation instructions here.

As the last resort, you can get the source code on its GitHub repository.

Since I am using Ubuntu 20.04 in this tutorial, some steps may use apt command but I believe you can use your distribution’s package manager in those steps.

Setting up face unlock on Ubuntu and other Linux with Howdy

Let’s see how to set it up for facial recognition.

Change config file

Before you use Howdy, you should change the configuration file to specify your webcam device.

On most Linux systems, /dev/video0 should be the device for webcam but you should make sure of it using v4l2-ctl command.

Install v4l-utils first:

sudo apt install v4l-utils

Now use the v4l2-ctl command to list your devices

abhishek@itsfoss:~$ v4l2-ctl --list-devices Integrated_Webcam_HD: Integrate (usb-0000:00:14.0-5): /dev/video0 /dev/video1

Why two (or more) video devices? You’ll have to check the capabilities of the device. The device should have Video Capture capability, not just Metadata Capture.

You can check it with a command like v4l2-ctl –device=/dev/video0 –all and then look under the capability section. Most of the time, it should be the first device i.e. /dev/video0.

Now, you need to set the device path in the Howdy config. You can do that by manually opening the /lib/security/howdy/config.ini file for editing or use the command below to open the config file for edit in your default terminal-based text editor:

sudo howdy config

Look for the line starting with device_path. Change its value to /dev/video0 or whatever is the path for your webcam device.

Save and exit the file. You are ready to go now.

Add your face for facial recognition

Howdy is a command line tool. You have to do everything in the terminal.

Now that you have the correct device path set, it is time to add some face in its database for the recognition.

Use the following command to associate a face to the currently logged in user i.e. you.

sudo howdy add

It doesn’t show how your face looks like by opening a camera so you should look into the webcam to get your face captured properly.

It will ask you to add an identifier to the face. You can name it anything you want. I used terms like glasses, with-headphones etc.

I suggest adding a few more variants of your face specially if you wear glasses. Just run the sudo howdy add command each time you want to add a face.

Howdy is ready to use as soon as you add a face. To test it, open a new terminal and run a command with sudo. You’ll notice that your webcam blinks and it tries to detect a face. If the face is not recognized, it will show an error message and ask you to use your password.

To add a face for some other user, you should provide the username as well:

sudo howdy -U username add

You don’t need to worry about starting Howdy after reboot. Howdy starts automatically at each boot.

List all the known face models for a user

You can see what face models are associated to a user with the list option. If you don’t specify the username, it shows the output for the current user.

sudo howdy list Clear some or all face models

When you list all the face models for a user, you can use the remove option to delete a certain face model. You’ll have to provide the ID of the face model, not the label.

sudo howdy remove face_ID

You can remove all the face models with the following command:

sudo howdy clear Disable and re-enable Howdy

You can temporarily disable Howdy using this command:

sudo howdy disable 1

You can re-enable it using the same disable option but with 0 as argument:

sudo howdy disable 0 Removing Howdy from your system

You can use your distribution’s package manager to remove Howdy.

On Ubuntu, use the following command:

sudo apt remove howdy

You should also delete the PPA:

sudo add-apt-repository -r ppa:boltgolt/howdy

For other distributions, use the uninstallation method that corresponds to the installation method you used.


It’s fun to setup face unlock on Linux. I think this could provide base for some good Raspberry Pi projects. It’s a fun weekend exercise to do a thing like this.

However, I won’t recommend setting up it on critical infrastructure or servers. Facial recognition is not very secure.

Using face unlock on your personal Linux system is one thing but please don’t use it on servers or work machines.

I hope you liked this DIY (if I may call it) tutorial. Let me know if you would like to see more such tutorials on It’s FOSS in the future.

Linux Jargon Buster: What is a Display Server in Linux? What is it Used for?

Saturday 29th of August 2020 05:29:59 AM

In Linux related articles, news and discussions, you’ll often come across the term display server, Xorg, Wayland etc.

In this explainer article, I’ll discuss display servers in Linux.

What is display server in Linux?

A display server is a program which is responsible for the input and output coordination of its clients, to and from the rest of the operating system, and among the hardware and the operating system. Basically, thanks to a display server, you can use your computer graphically (GUI). Without the display server, you would only be restricted to a command line interface (TTY).

The display server provides the framework for a graphical environment so that you can use mouse and keyboard to interact with applications.

The display server communicates with its clients over the display server protocol, like X11. The display server is a key component in any graphical user interface, specifically the windowing system.

Don’t confuse display server with desktop environment. The desktop environment uses display server underneath it.

Sounds familiar but it is not fully clear? Let me explain.

Display server communications protocols in Linux

There are three display protocols available in Linux, the X11, Wayland and Mir. I’ll give you a brief introduction for these display servers.


The X11 (also refer as X) is the legacy display server that has been existed for years. It is the most common display server used in Linux distributions.

X Architecture

The X11 communication protocol, uses the Server display server. It receives input events from device drivers and makes them available to one of its clients.

The display server also receives data from its clients, it processes the data and does the compositing and on Linux it passes the data to one of three kernel components – the DRM, gem or KMS driver.

The X.Org Server is a display server that relies on a second program, the compositing window manager, to do the compositing. Examples are Mutter or KWin. GNOME uses Mutter.


As per its website, Wayland is “intended as a simpler replacement for X, easier to develop and maintain”.

And indeed Wayland is the modern display server that is supposed to replace the legacy X display server.

Its adoption is still a work in progress. Ubuntu tried to switch to Wayland as the default display server with version 17.10 but the experiment met with negative feedback.

A lot of GUI applications and their frameworks depend on the X server. These applications didn’t work as intended on Wayland.

This forced Ubuntu to stay on X as default display server. It still provides the option to use Wayland but it is not default anymore.

An overwhelming majority of distributions use X display server by default even today.

Wayland Architecture

Display servers that put into effect the Wayland display server protocol, are called Wayland compositors. Like any X11, a Wayland compositor is responsible for handling input and output for its clients but also does the compositing – in contrast to X11.

A few Wayland compositors are Weston, Mutter, KWin or Enlightenment.


The Mir display server comes with its own Mir display server protocol which differs to those used by X11 and Wayland. It was developed by Canonical, as part of the development of Unity, and was intended to be the display server of choice for Ubuntu.

As of 2017, it has been replaced with the Wayland display server for desktop editions of Ubuntu, although Mir’s development continued for Internet of Things (IoT) applications.

Why are we still using Xorg?

Wayland as it is relatively new, is not very stable yet, compared to Xorg. The programs, which act as clients, in order to communicate with a display server, must know how to do it.

For this reason, many programs might not run when using Wayland. Ubuntu’s experiment to switch to Wayland by default confirmed this.


I hope you have a bit better understanding of display server concept in Linux. I have tried to not go into too much technical details but I could not avoid them altogether.

Your feedback and suggestion is welcome.

Best Free Online Markdown Editors That Are Also Open Source

Friday 28th of August 2020 06:00:56 AM

Markdown is a useful lightweight markup language and a lot of people prefer for writing documentation or web publishing. Many of us at It’s FOSS use markdown for writing our articles.

There are several Markdown editors available for Linux that you can install and use.

But, what if you don’t want to install another program on your system? Perhaps you are using a system temporarily and cannot install an application? Maybe you just want a markdown editor that lets you collaborate in real-time?

No matter what you require, online markdown editors makes a lot of things easy by providing collaboration features, publishing integration, notes synchronization, and some online-only features.

Hence, I’ve compiled a list of the best online markdown editors.

Free Online Markdown Editors

I have tried to keep the focus on online markdown editor with open source code. You may use the official website or deploy them on your server.

Note: The list is in no particular order of ranking.

1. StackEdit

StackEdit is one of the most popular open-source online Markdown editors available.

It provides a great user interface and offers a bunch of useful features. The ability to collaborate, synchronizing capability, and being able to publish/save your files to Blogger, WordPress, GitHub, and a couple other services are some key features that you get with StackEdit.

Not to forget, you also get an extended markdown support some extensions available to support LaTeX mathematical expressions, UML diagrams, and more. It presents a WYSIWYG editor that makes it easy for you to work with Markdown. It also works offline and offers a chrome app and extension — if that’s your requirement.

It’s easy to import/export files on StackEdit as well. You can take a look at its source code on GitHub for more details if you need to host it on your server.

StackEdit 2. Dillinger

Dillinger is yet another interesting open-source online Markdown editor. Similar to StackEdit, you also get the ability to link and save the documents with Dropbox, GitHub, Medium, Google Drive, Bitbucket, and OneDrive.

You can also choose to simply import/export files when needed. The user interface for Dillinger is simpler than what you get on StackEdit — but it gets the job intended. Unlike StackEdit, you may not get extended Markdown support with LaTeX expressions or diagrams but if you just need simple online Markdown editor, this is a good pick.

If you need, you can choose to deploy it in a Docker container on your server. For more technical details on it, you might want to check out its GitHub page.

Dillinger 3. is based on the free and open source software WriteFreely, developed by the same team. So you can simply host it on your own server and start using it for free if you want.

You can also use service as a free online Markdown editor with basic features. To make the most out of it, you may want to choose a subscription. Some paid features include custom themes, newsletters, photo hosting, and multiple blogs.

It supports Markdown and also lets anyone on Mastodon, ActivityPub, and Pleroma to follow and share your blog posts easily.

You can explore more about WriteFreely on its GitHub page or get started using 4.

An interesting open-source Markdown editor that you can also embed on your own web pages if you require.

It supports real-time preview, GitHub flavored markdown, and also presents a WYSIWYG editor along with a bunch of useful features. In addition to the basic Markdown support, it also supports emojis, LaTeX expressions, Flowchart, and more.

You can choose to configure your own by hosting it yourself as well. Take a look at its GitHub page for more information. 5. CodiMD

CodiMD isn’t available as a full-fledged online service from the get-go. But, it is an open-source project that lets you collaborate on documentations or notes in real-time by giving you the ability to host it on your server.

It’s based on HackMD‘s source code and offers a demo instance to test it out. Personally, I like the fact that it also offers a dark mode and it’s easy to use.

For its future release (at the time of writing this), it will be renamed as “HedgeDoc“.

You can find all the relevant information on deploying it on your server through Docker/Kubernetes and other manual configuration options on its GitHub page.

CodiMD 6. is a simple open-source online Markdown editor that’s no longer maintained but it is still active and usable.

It features real-time preview and the options to export or save your notes to Dropbox/Evernote. Considering that it’s not actively maintained — you may not rely on it but it works as expected when I tested it.

You can take a look at its GitHub page or the official site to learn more about it. Honorable Mentions

Here are a few tools that provide markdown access.

Markdown Web Dingus

A simple and free online Markdown editor by the creator of Markdown language. It’s not a full-fledged online editor with integrations or that supports import/export.

But, if you just want an online editor to get a preview for your Markdown source, this could be a great option to use. Not just limited to the editor, but you also get a syntax cheatsheet in the sidebar of the website. So, you can try and learn here as well.

Markdown Web Dingus Markdown Journal

Markdown Journal was an interesting open-source project on GitHub which has been discontinued. It gave you the ability to use its online editor to create journals using Markdown language and save them directly on your Dropbox account. I noticed Internal Server error when I tried to create a journal — but you can take a look at it.


Etherpad is yet another impressive open-source online editor but it doesn’t come with Markdown support out of the box. You might notice some plugins available to enable Markdown editing on your server — but that’s not something that works flawlessly yet. So, you might want to keep an eye out for it. There’s a list of public instances to try it out as well.

Wrapping Up

Considering that a lot of online editors, CMSs, and note-taking services support Markdown, services/applications like WordPress can also be a good option if you want to publish it to the web.

Which one do you prefer to use as a Markdown editor? Did I miss any of your favorites? Let me know in the comments below!

How to Switch Users in Ubuntu and Other Linux Distributions [Quick Beginner Tip]

Thursday 27th of August 2020 05:37:14 AM

It is really simple to switch users in Ubuntu or any other Linux distribution using the terminal.

All you need to do is to know the unsername and its account password and you can switch users with su command:

su another_username

You’ll be asked to enter the password of the user you want to switch to.

As you can see in the screenshot above, I changed to user prakash from user abhishek in the terminal.

There are some minor details with this method that I’ll share with you in a moment. I’ll also share the graphical way of switching users in Linux if you are using desktop Linux.

Switching to root user

If you want to switch to the root user in Ubuntu, you can use the following command:
sudo su
You’ll have to enter your own user password here.

Change user in Linux command line

Let’s see things a bit in detail. To switch users, you need to first know the exact username because tab competition doesn’t work here. You can list all the users in Linux command line by viewing the content of the /etc/passwd file.

You’ll also need to know the password of the user account you want to switch to. This is for security reason, of course.

su another_username

If you are the admin user or have sudo access, you can change account password with passwd command.

You’ll notice that some people use a - between su and the username. There is a specific reason for that.

su - another_username

When you use -, -l or –login option, you start the shell as a login shell. This means that it will initialize the environment variables like PATH and changes to the home directory of the changed user. It will be as if you logged into the terminal as the second user.

Note: though -is more popular, it is advised to use –login option.

Change users in Linux graphically (for desktop Linux)

If you are using desktop Linux, the above method may not be sufficient for you. Why? Because you switch the user in the terminal only. It is confined to the terminal. Nothing is changed outside the terminal.

If you want to switch users so that you can log in as another user and use all the system (browser, applications etc) graphically, you’ll have to log out and then log back in.

Now the screenshots may look different but the steps remain the same. Here’s how to switch users in Ubuntu Linux.

Go to the top right corner and click the Power Off/Log out option to open the dropdown and you can choose either of Switch User or Log Out.

  • Switch User: You get to keep your session active (applications keep on running) for current user. Good for temporarily switching users as you won’t lose your work.
  • Log out: Current session ends (all applications are closed). Good when you want to switch to the other user for a long time.

You can choose whichever option is more suited for your need.

Now, you’ll be at the login screen with all the available users for your system. Choose the user account of your choice.

Clearly, you need to know the password of the user account you want to use.

That’s it. I hope you find this quick beginner tip helpful in changing users in Ubuntu and other Linux distributions. Questions and suggestions are always welcome.

How to Check Dependencies of a Package in Ubuntu/Debian-based Linux Distributions

Wednesday 26th of August 2020 07:20:13 AM

Installing applications via command line is quite easy in Ubuntu/Debian. All you need to do is to use apt install package_name.

But what if you want to know the dependencies of a package before or after installing it?

In this tutorial, I’ll show you various ways to see the dependencies of a package in Ubuntu and other Debian-based Linux distributions that use APT package management system.

What is package dependency in Ubuntu?

If you didn’t know already, when you install a software package in Linux, sometimes, it needs other packages to function properly. These additional packages are called dependencies. If these dependency packages are not installed on the system, it is usually installed automatically with the package.

For example, the GUI tool HandBrake for converting video formats needs FFmpeg, GStreamer. So for HandBrake, FFmpeg and GStreamer are the dependencies.

If you don’t have these packages installed on your system, they will be automatically installed when you install HandBrake on Ubuntu.

Check dependencies of a package in Ubuntu and Debian based distributions

As it often happens in Linux, there are more than one way to achieve the same result. Let’s see various ways to see the dependencies of a package.

Checking dependencies with apt show

You can use the apt show command to display details of a package. Part of this information is dependencies and you can see it in the line starting with Depends.

For example, here’s what it shows for ubuntu-restricted-extras package.

abhishek@itsfoss:~$ apt show ubuntu-restricted-extras Package: ubuntu-restricted-extras Version: 67 Priority: optional Section: multiverse/metapackages Origin: Ubuntu Maintainer: Ubuntu Developers <> Bugs: Installed-Size: 14.3 kB Depends: ubuntu-restricted-addons Recommends: libavcodec-extra, ttf-mscorefonts-installer, unrar Download-Size: 3,200 B APT-Manual-Installed: yes APT-Sources: focal/multiverse amd64 Packages Description: Commonly used media codecs and fonts for Ubuntu This collection of packages includes: - MP3 and other audio codec software to play various audio formats (GStreamer plugins) - software to install the Microsoft Web fonts - the Adobe Flash plugin - LAME, software to create compressed audio files. . This software does not include libdvdcss2, and will not let you play encrypted DVDs. For more information, see . These software packages are from the Multiverse channel, restricted by copyright or legal issues in some countries. For more information, see

As you can see, ubuntu-restricted-extras package depends on ubuntu-restricted-addons package.

Here’s a catch! The dependency package may also depend on some other package and the chain could go on. Thankfully, the APT package manager handles this for you by automatically installing all the dependencies (most of the time).

What is recommended package?

Did you notice the line starting with Recommends in the above output?

Recommended packages are not direct dependencies for the package but they enable additional features.

As you can see, ubuntu-restricted-extras has ttf-mscorefonts-installer as recommended package for installing Microsoft Fonts on Ubuntu.

The recommended packages are also installed by default and if you explicitly want to forbid the installation of recommended package, use the –no-install-recommends flag like this:

sudo apt install –no-install-recommends package_name

Use apt-cache for getting just the dependencies information

The apt show has way too many information. If you want to get the dependencies in a script, the apt-cache command gives you a better and clean output.

apt-cache depends package_name

The output looks much clean, does it not?

Check the dependencies of a DEB file using dpkg

Both apt and apt-cache command work on the packages that are available from the repositories. But if you download a DEB file, these command won’t work.

In this case, you can use the dpkg command with -I or –info option.

dpkg -I path_to_deb_file

The dependencies can be seen in the line starting with Depends.

Checking dependencies and reverse dependencies with apt-rdepends

If you want more details on the dependencies, you can use the apt-rdepends tool. This tool creates the complete dependency tree. So, you get the dependency of a package and the dependencies of the dependencies as well.

It is not a regular apt command and you’ll have to install it from the universe repository:

sudo apt install apt-rdepends

The output is usually quite large depending on the dependency tree.

Reading package lists... Done Building dependency tree Reading state information... Done shutter Depends: procps Depends: xdg-utils imagemagick Depends: imagemagick-6.q16 (>= 8: imagemagick-6.q16 Depends: hicolor-icon-theme Depends: libc6 (>= 2.4) Depends: libmagickcore-6.q16-6 (>= 8: Depends: libmagickwand-6.q16-6 (>= 8: hicolor-icon-theme libc6 Depends: libcrypt1 (>= 1:4.4.10-10ubuntu4) Depends: libgcc-s1 libcrypt1 Depends: libc6 (>= 2.25)

The apt-rdepends tool is quite versatile. It can also calculate the reverse dependencies. Which means, you can see what other packages depend on a certain package.

apt-rdepends -r package_name

The output could be pretty big because it will print the reverse dependency tree.

abhishek@itsfoss:~$ apt-rdepends -r ffmpeg Reading package lists... Done Building dependency tree Reading state information... Done ffmpeg Reverse Depends: ardour-video-timeline (>= 1:5.12.0-3ubuntu4) Reverse Depends: deepin-screen-recorder (5.0.0-1build2) Reverse Depends: devede (4.15.0-2) Reverse Depends: dvd-slideshow ( Reverse Depends: green-recorder (>= 3.2.3)

I hope this quick tutorial was helpful in improving your command line knowledge a bit. Stay tuned for more such tips.

Glances – A Versatile System Monitoring Tool for Linux Systems

Tuesday 25th of August 2020 05:33:00 AM

The most commonly used command line tools for process monitoring on Linux are top and its colorful, feature rich cousin htop .

To monitor temperature on Linux, you can use lm-sensors. Similarly, there are many utilities to monitor other real-time metrics such as Disk I/O, Network Stats and others.

Glances is a system monitoring tool which ties them all together and offers a lot more features. What I like the most is that you can use run Glances on a remote Linux server and monitor the system resources on your local system or monitor it through your web browser.

Here’s what it looks like. The terminal in the below screenshot has been beautified with Pywal tool that automatically changes the color based on wallpaper.

You can also integrate it to a tool like Grafana to monitor the stats in an intuitive dashboard.

It is written in Python which means that it can be used on most platforms with almost all features.

Features of Glances Glances Data In Grafana Dashboard

Let’s have a quick glance over the main feature Glances provides (pun intended).

  • Can monitor 15+ metrics on a system (including docker containers).
  • Flexible usage modes: standalone, client-server, over SSH and web mode.
  • Versatile REST API and XML-RPC available for integrations.
  • Readily supports exporting data to different services and databases.
  • Highly configurable and adaptable to different needs.
  • Very comprehensive Documentation.
Installing Glances on Ubuntu and other Linux distributions

Glances is available in the official repositories of many Linux distributions. This means you can use your distribution’s package manager to install it easily.

On Debian/Ubuntu based distributions, you can use the following command:

sudo apt install glances

You can also install the latest Glances using snap package:

sudo snap install glances

Since Glances is based on Python, you can also use PIP to install it on most Linux distributions. Install PIP first and then use it to install Glances:

sudo pip3 install glances

If nothing else, you can always use the auto install script provided by Glances developer. Though we at It’s FOSS don’t recommend running random scripts directly on your system. It’s entirely your decision.

curl -L | /bin/bash

You can check out other ways to install Glances from their documentation, you can also install it as a docker container.

Using Glances to monitor Linux system resources on local system (standalone mode)

You can easily launch Glances to monitor your local machine by running this command n the terminal.


You can instantly observe that it integrates a lot of different information in one single screen. I like that it shows the public and private IP’s of the computer right at the top.

Glances is also interactive, meaning you can use commands to interact with it while it is running. You can press “s” to bring up the sensors onto the screen; “k” to bring up the TCP connections list; “1” to expand the CPU stats to show individual threads.

You can also use the arrow keys to move around the list of processes and sort the table by different metrics.

You can launch Glances with various command line options. There are plenty more interactive commands as well. You can find the complete list in their comprehensive documentation.

Press Ctrl+C to exit Glances.

Using Glances to monitor remote Linux systems (Client – Server mode)

To monitor a remote computer you can use Glances in client-server mode. You need to have Glances installed on both systems.

On the remote Linux system, you’ll have to launch glances in server mode using the -s option.

glances -s

On the client system, use this command to launch Glances in client mode and connect to the server.

glances -c server_ip_address

You can also SSH into any computer and launch Glances, which works flawlessly. More information about client-server mode here.

Monitor Linux system resources in web browser using Glances (Web Mode)

Glances can also run in web mode. This means that you can use a web browser to access Glances. Unlike the previous client-server mode, you don’t need to install Glances on the client system.

To start Glances in web mode, use the -w option.

glances -w

Keep in mind that it may display “Glances Web User Interface started on” even on a Linux server when it is actually using the server’s IP address.

The main part is that it uses 61208 port number and you can use it to access Glances via web browser. Just type the server’s IP address followed by the port number like

You can also use it on the local system using or https://localhost:61208/.

The web mode also emulates the terminal look. The web version is built with responsive design principles in mind and looks good even on phones.

You may want to protect the web mode with a password so that only authorized people could use it. The default username is glances.

root@localhost:~# glances -w --password Define the Glances webserver password (glances username): Password (confirm): Do you want to save the password? [Yes/No]: n Glances Web User Interface started on

You can find more information on configuring password in the quickstart guide.

Export Glances data to different services

One of the biggest advantage of using Glances is the out of the box support to export data to various databases, services and integration into various data pipelines seamlessly.

You can export to CSV while monitoring with this command.

glances --export csv --export-csv-file /tmp/glances.csv

‘/tmp/glances.csv’ is the location of the file. The data is filled in neatly as time series.

You can export to powerful applications like Prometheus to enable conditional triggers and notifications.

It can directly plug into messaging services like RabbitMQ, MQTT, streaming platforms like Kafka and export time series data to databases like InfluxDB and visualize using Grafana.

You can check out the whole list of services and export options here.

Use REST API to integrate Glances with other services

This is my favorite feature in the whole stack. Glances not only brings together various metrics together, it also exposes them via APIs.

This simple yet powerful feature makes it very easy to build custom applications, services and middleware applications for any specific use cases.

REST API server stars automatically when you launch Glances in web mode. To launch it in API server only mode you can use the following command.

glances -w --disable-webui

The REST API documentation is comprehensive and the responses are easy to integrate with a web application. This makes it easy to build a unified dashboard to monitor multiple servers with a tool like Node-RED.

Glances also provides an XML-RPC server, you can check out the documentation here.

Closing thoughts on Glances

Glances uses the psutil python library to access different system stats. I had built a simple API server using the same library to retrieve CPU usage back in 2017. I was able to monitor all the Raspberry Pi’s in a cluster using a dashboard built with Node-RED.

Glances could have saved me some time while offering way more features, unfortunately I didn’t know about it back then.

I did try to install Glances on my Raspberry Pi’s while writing this article, unfortunately it failed with some errors with all the installation methods. I’ll update the article when I succeed or maybe write another article with steps to install on a Raspberry Pi.

I wish Glances offered a way to kill processes like top or htop. Let’s hope that we get it in upcoming releases.

I hope this gave you a good deal of information on Glances. What system monitoring tools do you guys use? let me know in the comments.

OnionShare: An Open-Source Tool to Share Files Securely Over Tor Network

Monday 24th of August 2020 03:05:31 AM

Brief: OnionShare is a free and open-source tool that utilizes the Tor network to share files securely and anonymously.

You might have already come across a lot of online services to share files securely but it may not be completely anonymous.

Also, you do have to rely on a centralized service to share your files and if the service decides to shut down like Firefox Send — you can’t really depend on it to safely share files all the time.

All things considered, OnionShare is an amazing open-source tool that lets you share files using the Tor Onion service. It should be an amazing alternative to all the cloud file sharing services.

Let’s take a look at what it offers and how it works.

OnionShare: Share files anonymously over Tor

OnionShare is an interesting open-source tool that’s available for Linux, Windows, and macOS.

It lets you securely share files directly from your computer to the receiver without revealing your identity in the process. You don’t have to sign up for any account — nor does it rely on any centralized storage service.

It is basically peer-to-peer over the Tor network. The receiver only needs to have a Tor browser to download/upload files to your computer. I’d also recommend you to go through our Tor guide to explore more about it if you’re curious.

Let’s take a look at the features.

Features of OnionShare

For an average user who just wants security and anonymity, there’s no tweak required. However, you do have some advanced options if you need.

  • Cross-platform support (Windows, macOS, and Linux)
  • Send files
  • Receive files
  • Command-line options
  • Publish onion sites
  • Ability to use bridges (if your tor connection isn’t working)
  • Ability to use a persistent URL for sharing (advanced users)
  • Stealth mode (more secure)

You can go through the official user guide on GitHub to learn more about them.

Installing OnionShare on Linux

You should find OnionShare listed in your software center to get it installed. If it’s not there, you can add the PPA using the commands below on Ubuntu-based distros:

sudo add-apt-repository ppa:micahflee/ppa sudo apt update sudo apt install -y onionshare

If you’re looking to install it on other Linux distributions, you can visit the official website for installation instructions on Fedora and build instructions as well.

Download OnionShare How does OnionShare Work?

After you get it installed, everything is pretty self-explanatory and easy-to-use. But, if you want a heads up, let me show you how it works.

Once, it loads up and connects to the Tor network

Sharing a File

You just have to add the file(s) that you want to share from your computer and then click on “Start sharing“.

Once you’re done, the status at the bottom-right should say “Sharing” and an OnionShare address will be generated (copied to clipboard automatically) as shown in the image below:

All the receiver needs now is the OnionShare address that should look like this:


And, a Tor browser to start downloading the files.

It’s worth noting that once the download completes (file transfer is done), the file sharing stops. You will also be notified of the same when that happens.

So, if you have to share it again or with someone else, you will have to re-share it and send the new OnionShare address to the receiver.

Allow Receiving Files

If you want to generate a URL that lets someone upload files directly to your computer (be careful with whom you share it), you can just click on the Receive Files tab after you launch OnionShare.

You just have to click on the “Start Receive Mode” button to get started. Next, you will get an OnionShare address (just like while sharing a file).

The receiver has to access it using the Tor browser and start uploading files. Here’s how it should look like:

Even though you will be notified of the file transfer when someone is uploading to your computer, you need to manually stop the receiving mode when you’re done.

Downloading/Uploading Files

Considering that you have a Tor browser installed, you just need to hit the OnionShare address in the URL address, confirm log in (press OK) and here’s how it should look like:

Similarly, when you get an address to upload files, it should look like this:

Publish Onion Sites

You can simply add the files to host a static onion website if you want. Of course, just because it’s peer-to-peer connection, it’ll be very slow to load up while it transfers every file from your computer.

I tried using a free template to test it out and it works great (but very slow). So, it may depend on your network connection.

Wrapping Up

In addition to all the features mentioned above, you can also use the command line and opt for some advanced tweaks if needed.

OnionShare is indeed an impressive open-source tool that makes it easy to share files anonymously without needing any special tweaks.

Have you tried OnionShare yet? Is there something similar to this that you know of? Let me know in the comments below!

Linux Jargon Buster: What is Desktop Environment in Linux?

Saturday 22nd of August 2020 06:24:06 AM

One of the most commonly used term in desktop Linux world is Desktop Environment (DE). If you are new to Linux, you should understand this frequently used term.

What is Desktop Environment in Linux?

A desktop environment is the bundle of components that provide you common graphical user interface (GUI) elements such as icons, toolbars, wallpapers, and desktop widgets. Thanks to the desktop environment, you can use Linux graphically using your mouse and keyboard like you do in other operating systems like Windows and macOS.

There are several desktop environments and these desktop environments determines what your Linux system looks like and how you interact with it.

Most of the desktop environments have their own set of integrated applications and utilities so that users get a uniform feel while using the OS. So, you get a file explorer, desktop search, menu of applications, wallpaper and screensaver utilities, text editors and more.

Without a desktop environment, your Linux system will just have a terminal like utility and you’ll have to interact it using commands only.

Screenshot of GNOME Desktop Environment Different desktop environments in Linux

Desktop environment is also referred as DE sometimes.

As I mentioned earlier, there are various desktop environments available for Linux. Why so?

Think of the desktop environments as clothes. The clothes determine what you look like. If you wear skinny jeans and flat shoes, you would look good but running or hiking in those clothes won’t be comfortable.

Some desktop environments such as GNOME focus on a modern look and user experience while desktop like Xfce focus more on using fewer computing resources than on fancy graphics.

Screenshot of Xfce Desktop Environment

Your clothes depend on your need and determine your looks, the same is the case with the desktop environments. You have to decide whether you want something that looks good or something that lets your system run faster.

Some of the popular desktop environments are:

  • GNOME – Uses plenty of system resources but gives you a modern, polished system
  • Xfce – Vintage look but light on resources
  • KDE – Highly customizable desktop with moderate usage of system resources
  • LXDE – The entire focus is on using as few resources as possible
  • Budgie – Modern looks and moderate on system resources
Linux distributions and their DE variants

Same desktop environment can be available on several Linux distributions and a Linux distribution may offer several desktop environments.

For example, Fedora and Ubuntu both use GNOME desktop by default. But both Fedora and Ubuntu offer other desktop environments.

The beauty and flexibility of Linux is that you can install a desktop environment on any Linux distribution by yourself. But most Linux distributions save you this trouble and offer ready-to-install ISO image for different desktop environments.

For example, Manjaro Linux uses Xfce by default but you can also download the ISO of GNOME version if you prefer using GNOME with Manjaro.

.ugb-fe7ff11-wrapper.ugb-container__wrapper{border-radius:0px !important;padding-top:0 !important;padding-bottom:0 !important;background-color:#f1f1f1 !important}.ugb-fe7ff11-wrapper > .ugb-container__side{padding-top:35px !important;padding-bottom:35px !important}.ugb-fe7ff11-wrapper.ugb-container__wrapper:before{background-color:#f1f1f1 !important}.ugb-fe7ff11-content-wrapper > h1,.ugb-fe7ff11-content-wrapper > h2,.ugb-fe7ff11-content-wrapper > h3,.ugb-fe7ff11-content-wrapper > h4,.ugb-fe7ff11-content-wrapper > h5,.ugb-fe7ff11-content-wrapper > h6{color:#222222}.ugb-fe7ff11-content-wrapper > p,.ugb-fe7ff11-content-wrapper > ol li,.ugb-fe7ff11-content-wrapper > ul li{color:#222222}

Recommended Read:

.ugb-5272623 .ugb-blog-posts__featured-image{border-radius:0px !important}.ugb-5272623 .ugb-blog-posts__title a{color:#000000 !important}.ugb-5272623 .ugb-blog-posts__title a:hover{color:#00b6ba !important}The Best Desktop Environments For Linux (We Tested Them So That You Don’t Have To)

A list of the best Linux Desktop Environments with their pros and cons.

In the end…

Desktop environments are crucial part of Linux desktop while Linux servers usually rely on command line interface. It’s not that you cannot install desktop environment on Linux servers but it’s an overkill and waste of important system resources which can be utilized by the applications running on the server.

I hope you have a slightly better understanding of desktop environments in Linux now. I highly recommend reading my explainer article on what is Linux and why there are so many Linux distributions. I have a good feeling that you’ll love the analogy I have used it.

More in Tux Machines