close
  • It chevron_right

    ProtonVPN on Linux Review: An Open-Source VPN Service for Privacy Minded Users

    pubsub.do.nohost.me / ItsFoss · Thursday, 8 July - 06:24 · 7 minutes

ProtonVPN is a popular open-source VPN service available for Linux and other platforms that include Windows, Mac, iOS, and Android. You can also set it up for routers.

In fact, as far as I’m aware, ProtonVPN is one of the few VPN services for Linux that offer a GUI application.

I’ve been using it for a few years now, on and off. Now that it has a proper GUI app for Linux and the command-line tool is reliable enough, let me share some detailed insights on what you can expect from ProtonVPN.

ProtonVPN: Is it Just Another VPN Service?

protonvpn linux

While there are hundreds of VPN providers out there, often linked to common companies. ProtonVPN is a creation by the team behind ProtonMail.

The key highlights of the service include enhanced privacy, ad/tracker blocking capabilities, and open-source apps.

Also, they happen to own some of their servers while keeping them at secure locations, like an underground facility in Ireland.

So, among privacy-oriented VPN services , ProtonVPN deserves some attention, I think.

But, is it worth it? How good is it? Can you use it for free? What exactly does it offer you if you pay?

Before I dive into some details, let me highlight the features that it offers.

Key Highlights of ProtonVPN Service

While many of the features will be common to every other VPN of your choice, some are unique to ProtonVPN:

  • Strict no logs policy
  • All open-source apps and independently audited
  • Secure core servers
  • Adblocker
  • Website tracking protection
  • Forward Secrecy
  • Multiple protocols supported—IKEv2/IPSec, OpenVPN, L2TP, PPTP
  • Full disk encryption servers
  • Swiss-based
  • Tor over VPN support
  • Peer-to-Peer servers

To clarify some of the features:

  • NetShield lets you block advertisements and trackers when you visit websites in the DNS-level.
  • Secure Core server is another layer of protection (connecting any remote VPN server through a VPN server owned by ProtonVPN).

Both of these features are only accessible to paid subscribers.

Now that you know what you can expect from it, let us go through some of the details.

ProtonVPN User Interface & Features

ProtonVPN lets you use the command-line interface (CLI) or the GUI app on Linux. The application is user-friendly, so we’ll start with how useful it is.

protonvpn ui

As you can notice from the screenshot above, it is quite simple, with options to enable features like NetShield, Kill Switch, and Secure Core.

Unfortunately, you do not get a choice to tweak the protocol of your connection with the GUI app.

But, you can choose between TCP/UDP using the command-line interface.

However, it integrates with the system tray, giving you a way to quickly disconnect or connect when needed.

protonvpn system tray

In case you do not use the GUI but prefer the CLI, here’s how that looks:

protonvpn cli

No matter what you use, it will display the load (in percentage) for the server you want to choose.

In other words, the less load displayed, the faster the server can perform.

If you have a free plan, chances are that most of the servers are fully loaded with users and may perform poorly. With paid subscription, you can find more server options that have less load.

Here’s how it looks with the GUI:

protonvpn server load

And, this is what you can expect in the CLI:

protonvpn cli load

Now that we’re done with what the user interface offers, let me show you some of my speedtest results to give a reference to how well it performs.

ProtonVPN Performance

As I mentioned before, the free servers will have a significant impact on your Internet connection speed.

To expect the fastest performance, choose the nearest server and a server with less load.

For this test, I chose a “ Plus ” server from India with 13% load on a 100 Mbps connection with UDP protocol.

Here’s what my speed looks like while being connected to ProtonVPN:

protonvpn india

Of course, the ping is high: 179 ms , which could have been better, but you can try a variety of server locations to see if that improves for you.

The download speed recorded ( 83 Mbps ) is not too bad, but with room for improvement.

However, the upload speed did take a big hit at 50 Mbps .

To give it another go, I tried a Singapore-based server with a similar load and, surprisingly, that performed better than my nearest location.

protonvpn singapore

And, with 86ms ping , 90 Mbps DL / 74 Mbps UL , it is certainly impressive and doable.

This also tells us that you need to try a number of server locations available to find your best fit for performance and privacy.

Undoubtedly, if you opt for Tor over VPN or Secure Core servers, it may have a significant hit on your Internet speed.

This is what I ended up with when choosing a Singapore-based Secure Core server :

300+ ms ping , 80 Mbps DL, and 53 Mbps UL .

It could have been worse, but I think that’s something that you can work with. And it should be comfortable enough to easily utilize torrent clients for Linux as well.

ProtonVPN Server Availability and IP/DNS Protection Test

You get a wide range of server locations from across the globe. And, if you opt for a paid plan, no matter whether it is the “Basic” or “Plus” subscription, you should easily be able to find several server options with minimal load.

I shall highlight the differences in the pricing plans next, but before that, let us test whether ProtonVPN manages to successfully hide the IP address and DNS while using it.

To do that, we’re going to use an effective and popular online tool — IPleak.net

protonvpn ip test

And that looks to be perfectly fine, which is a good thing. Previously (almost a year ago), I did encounter some servers that were leaking IPv6, but looks like that is not a problem anymore.

It is worth noting that ProtonVPN does not support IPv6 and blocks IPv6 traffic by default.

Additionally, you can also try using DNS leak test tool to see if it detects your ISP’s DNS. In my case, it was not leaking any DNS.

ProtonVPN Pricing Plans

ProtonVPN is on the expensive side of VPN services. However, with their transparency through open-source applications and some unique features, it is an attractive offering.

The basic plan starts at $48 per year or $5/month if billed monthly. It gives you access to basic servers, which comes with P2P support and NetShield feature.

It should be good enough for most, but it is limited to just two devices and has no streaming support.

The plus plan starts at $96 per year or $8/month if billed monthly. You get access to Secure Core servers, streaming support, Tor over VPN, and way more server location choices.

With the plus plan, you can actively use it on up to ten devices. Also, if you have a super-fast Internet (say between of 1-10Gbps), you may want to go for the Plus plan to get that kind of speed.

And the visionary plan is for users who just want all the features and support ProtonVPN in the process with extra funds. You will also get access to all ProtonMail paid features with this plan.

Installing and Using ProtonVPN on Linux

First, you need to sign up for ProtonVPN with a valid account. Once done, you need to download the DEB or RPM package available for the suitable distribution.

You should find the packages and the instructions to get it installed in their official FAQ page for Linux .

The GUI and the CLI are not separately available. You will need to install the packages to install ProtonVPN on your Linux machine. And, then choose to use the command-line interface or the GUI.

Using the GUI is easy and to get started with the CLI, all you have to do is type in:

protonvpn-cli connect

And, replace connect with disconnect in the command to drop the VPN connection.

If you are using the command-line, you must enable the NetShield feature and adblocker protection before connecting to the VPN. To do that, just type in:

protonvpn-cli netshield --ads-malware

If you just want to block malware, type in:

protonvpn-cli netshield --malware

Final Thoughts

If you want an enhanced level of privacy protection, transparency of the VPN service, and full-fledged Linux support, ProtonVPN is a fantastic choice.

However, the pricing plan may prove to be expensive if you want to use it on more than two devices compared to other VPN providers.

I think it is worth it if you regularly rely on a VPN connection to hide your IP address, use torrents, unblock geological restrictions, and more. And if you rarely use a VPN, you could look at some of the other VPN options available for Linux .

What do you think about ProtonVPN? Have you tried it yet? Let me know your thoughts in the comments down below.

The article contains affiliate links. Please read our affiliate policy .

  • It chevron_right

    How to Know if Your System Uses MBR or GPT Partitioning [on Windows and Linux]

    pubsub.do.nohost.me / ItsFoss · Tuesday, 6 July - 12:09 · 3 minutes

Knowing the correct partitioning scheme of your disk could be crucial when you are installing Linux or any other operating system.

There are two popular partitioning schemes; the older MBR and the newer GPT. Most computers use GPT these days.

While creating the live or bootable USB, some tools (like Rufus ) ask you the type of disk partitioning in use. If you choose GPT with an MBR disk, the bootable USB might not work.

In this tutorial, I’ll show various methods to check the disk partitioning scheme on Windows and Linux systems.

Check whether your system uses MBR or GPT on Windows systems

While there are several ways to check the disk partitioning scheme in Windows including command line ones, I’ll stick with the GUI methods.

Press the Windows button and search for ‘disk’ and then click on “ Create and format disk partitions “.

disc management windows

In here, right-click on the disk for which you want to check the partitioning scheme. In the right-click context menu, select Properties .

Check disk partitioning scheme in Windows Right click on the disk and select properties

In the Properties, go to Volumes tab and look for Partition style .

Check if disk uses MBR or GPT in Windows In Volumes tab, look for Partition style

As you can see in the screenshot above, the disk is using GPT partitioning scheme. For some other systems, it could show MBR or MSDOS partitioning scheme.

Now you know how to check disk partitioning scheme in Windows. In the next section, you’ll learn to do the same in Linux.

Check whether your system uses MBR or GPT on Linux

There are several ways to check whether a disk uses MBR or GPT partitioning scheme in Linux as well. This includes commands and GUI tools.

Let me first show the command line method and then I’ll show a couple of GUI methods.

Check disk partitioning scheme in Linux command line

The command line method should work on all Linux distributions.

Open a terminal and use the following command with sudo:

sudo parted -l

The above command is actually a CLI-based partitioning manager in Linux . With the option -l, it lists the disks on your system along with the details about those disks. It includes partitioning scheme information.

In the output, look for the line starting with Partition Table :

check if mbr or gpt in linux

In the above screenshot, the disk has GPT partitioning scheme. For MBR , it would show msdos .

You learned the command line way. But if you are not comfortable with the terminal, you can use graphical tools as well.

Checking disk information with GNOME Disks tool

Ubuntu and many other GNOME-based distributions have a built-in graphical tool called Disks that lets you handle the disks in your system.

You can use the same tool for getting the partition type of the disk as well.

Check if MBR or GPT in Linux GUI

Checking disk information with Gparted graphical tool

If you don’t have the option to use GNOME Disks tool, no worries. There are other tools available.

One such popular tool is Gparted. You should find it in the repositories of most Linux distributions. If not installed already, install Gparted using your distribution’s software center or package manager .

In Gparted, select the disk and from the menu select View->Device Information. It will start showing the disk information in the bottom-left area and this information includes the partitioning scheme.

check disk partitioning scheme linux gparted

See, not too complicated, was it? Now you know multiple ways of figuring our whether the disks in your system use GPT or MBR partitioning scheme.

On the same note, I would also like to mention that sometimes disks also have a hybrid partitioning scheme . This is not common and most of the time it is either MBR or GPT.

Questions? Suggestions? Please leave a comment below.

  • It chevron_right

    Element: A Cross-Platform Decentralized Open-Source Messaging App

    pubsub.do.nohost.me / ItsFoss · Monday, 5 July - 04:45 · 5 minutes

There are many open-source messaging applications available, especially if you are looking for WhatsApp replacements on both desktop and mobile.

Element is one of them, which is a decentralized alternative for private messaging that you can use to interact with individuals, communities, or businesses.

Element: Privacy-Friendly Open-Source Messenger Built on Matrix Network

element io

Matrix is an open standard for secure and decentralized communication. And Element is the messaging client that uses that.

Element is also a part of the Matrix.org Foundation — so you will find most of the same team responsible for this.

Originally, it was known as Riot , which we covered back then. But, after the rebranding , it is now known as “Element”, which comes with an improved user experience and constantly focusing on making decentralized communication common for instant messaging.

element ui

Element is not just another open-source messenger, it gives you the ability to do a lot of things.

Here, let me highlight some of the key features along with some details about it that follows as you read on.

Features of Element

element settings

Element is more of an all-in-one messenger than a replacement of something. You could choose it as an open-source alternative to Slack or a private alternative to any instant messenger like Telegram.

Some of the options that you get with it are:

  • End-to-End encryption chat room
  • Public communities (may not be encrypted)
  • Direct voice call
  • Conference call in the community
  • Meet Jitsi integration (one of the open-source alternatives to Zoom )
  • File sharing
  • Emoji and Sticker support
  • Moderation tools for managing communities
  • Extensive anti-spam options
  • Ability to bridge other services like Slack, Discord, IRC, and more
  • Offers paid managed hosting to have control over your data
  • Cross-signed device verification for message privacy/security
  • Fine grained notification settings
  • Email notifications
  • Ability to restore using encryption keys
  • Make yourself discoverable to the entire Matrix network using your email or number

The features offered by Element may sound to be overwhelming for a user who just wants private messaging.

But fortunately, all those features do not get in the way unless you explicitly access/configure them. So that’s a good thing.

First, let me address the installation instructions for Linux and I’ll give you some insights on how my experience with Element was (on both Linux desktop and Android).

Installing Element in Linux

Element officially supports Debian/Ubuntu for installation. You can just add the package repository and install element.

The commands used for this is:

sudo apt install -y wget apt-transport-https

sudo wget -O /usr/share/keyrings/riot-im-archive-keyring.gpg https://packages.riot.im/debian/riot-im-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/riot-im-archive-keyring.gpg] https://packages.riot.im/debian/ default main" | sudo tee /etc/apt/sources.list.d/riot-im.list

sudo apt update

sudo apt install element-desktop

Do note that they are still using Riot.im domain to host packages even after rebranding — so not to be confused with the older Riot messaging app.

You can also find it in AUR for Arch-based distros — but I’m not quite sure about how well it works.

Unfortunately, there’s no Flatpak or Snap package available. So, if you are using a distribution that isn’t officially supported by Element, the best place to explore solutions/raise issues will be their GitHub page .

Now, before you get started using it, let me give you some heads up with my thoughts on it.

Element on Linux and Android: Here’s What You Need to Know

To start with — the user experience is fantastic on both Android and desktop. I tried it on Linux Mint, and it worked flawlessly.

You do not need a mobile number to sign up. Just create a username and add an email account to it, and you’re done.

element sign in

One can opt for a paid homeserver (your own matrix network) or just join the free Matrix homeserver offered.

Keep in mind, if you are signing up for free, you may not get to experience all the features — like the ability to see who’s online. You can only do that with your own server, the free Matrix server restricts certain functionalities like that to be able to accommodate an unlimited number of free users.

When signing in to a mobile device, you will have to verify the session by scanning a QR code prompted on Element’s desktop app.

Once done, you can explore and join public communities available or create your own.

Most of the existing public communities do not have end-to-end encryption enabled. So make sure you know what you are doing before messaging in any of the public communities.

While Element supports bridging IRC, Slack, and others or adding bots to a community — it is just not supported for an encrypted community. So, you need to have an unencrypted community to be able to use bots and bridges.

element bridge bots

A word of caution :

Element is getting popular, and scammers/spammers are attracted to the platform because it does not need any valuable personal information to get started.

So make sure that you do not trust anyone and keep your identity safe by not using your real profile picture or work email, especially if you are joining the public communities.

Element is constantly improving and offers plenty of features for several use-cases. I don’t see a problem with it being an open-source Discord replacement as well (in some way).

I was impressed with the level of notification controls that it gives and an added email notification option (which is enabled by default). You can choose to have notifications based on the keywords that you find interesting, what an exciting feature to have!

element notifications

Overall, Element may not be the perfect replacement for everything you use right now but it is shaping up to be an all-in-one alternative to many proprietary options.

I’ve had a good experience with Element so far and I’m confident about its future. What do you think? Willing to try Element on Linux?

Feel free to let me know your thoughts on this.

  • It chevron_right

    Creating a PKGBUILD to Make Packages for Arch Linux

    pubsub.do.nohost.me / ItsFoss · Thursday, 1 July - 10:23 · 8 minutes

PKGBUILD files are how packages are built and created for Arch Linux and its derivatives such as Manjaro.

You may have even come across them a bit yourself if you’ve ever used the AUR , Arch Linux’s user-curated repository of PKGBUILDs.

But how exactly do you go from a PKGBUILD to an installable package? What exactly is going on between the two, and how can you make them for your own packages? You’ll learn them in this article.

PKGBUILD basics

For those who are familiar with Bash or other shells, you’ll be delighted to know, if you didn’t already, that a PKGBUILD is pretty much just a shell script with some variables.

PKGBUILD files consist of variables and functions, all of which are used to define the package itself, and how to build it.

To create a package from a PKGBUILD, the makepkg command line utility is used. After obtaining a PKGBUILD, you simply run makepkg inside the directory containing the PKGBUILD, and voila, you have an installable package!

PKGBUILD

In this tutorial, you’ll be going over the package I just made, which prints “Hello World!” when run:

PKGBUILD example

Getting set up

To follow along with this tutorial, you need to create a couple of files.

First, you need to make a file called PKGBUILD . If it wasn’t already made clear, this will serve as the “recipe” for building your package.

The other file you’ll need to make is a file called hello-world.sh . I’ll explain its purpose a bit later.

You can create both of these files with a single command as well.

touch PKGBUILD hello-world.sh

You can check that the files were created with the ls command:

PKGBUILD basic guide

And you’re ready to go!

Setting up your PKGBUILD file

Instead of having you copy paste the whole file, I’ll be going over entering every line with you, so you can better understand the purpose of everything that’s happening. If you don’t prefer to learn this way, I’d highly recommend the Arch Wiki article on creating packages for Arch Linux.

This article also doesn’t go over every single option you can set in a PKGBUILD, but rather some commonly used ones so you can get going as quickly as possible.

With that out of the way, open up your text editor, and let’s get straight into it!

pkgname

First things first, the pkgname variable. This is what defines the name of your package when installing, and how Arch Linux’s package manager pacman keeps track of the package.

The format of this variable (and some others) takes the form of variable=value, with the variable name on the left, the value of the variable on the right, separated by an equals sign.

To set the package name, enter the following into the PKGBUILD:

pkgname="hello-world"
  • To set a different package name, replace hello-world with the name of the package.
  • This doesn’t set the command used to run the program. That’s handled a bit below in the package() section.

pkgver

As is stated in the variable name itself, this sets the version of your package (i.e. 1.0.0). This is useful when a user updates their system, as setting a higher version will result in the user being prompted for an upgrade.

To set, enter the following into the PKGBUILD (after the previous line):

pkgver="1.0.0"

pkgrel

This is related to the pkgver variable, and isn’t normally important to know about. Like the pkgver variable though, it will notify users for upgrades if it’s moved to a higher number.

It serves for any changes that require the pkgver to remain the same, such as any changes to the PKGBUILD itself. This would be useful if you’ve created a PKGBUILD for a program you use (and want to keep the version the same as the package’s), and you need to fix a bug in the PKGBUILD itself.

To set the variable, enter the following in the PKGBUILD:

pkgver="1"

This variable should always start at 1, and then move up one at a time. When the pkgver itself moves up, this can (and should) be reset to 1, as the pkgver itself will notify users that upgrades are available.

pkgdesc

This will set the description of the package, which is used to help better identify the package.

To set it, just put the description inside of quotation marks:

pkgdesc="Hello world in your terminal!"

arch

This variable sets the architecture the package is compatible with. It’s fine if you don’t understand what an architecture is, as it’s pretty much useless in most cases.

Regardless, makepkg still needs it to be set so it knows the package is compatible with our system.

This variable supports setting multiple values, so makepkg requires a different syntax as shown below.

To set it, enter the following in the PKGBUILD:

arch=("x86_64")

If you were to set multiple values for this, you would separate each value with a space and quotation marks like so: arch=(“x86_x64” “arm”)

depends

This lists all of the packages that our package needs to function. Like arch , it can also contain multiple values, and thus must use the parenthesis syntax.

Since our package won’t have any dependencies, we don’t have to enter this field in the PKGBUILD. If our package did have dependencies however, we’d just use the same syntax as arch .

optdepends

This lists packages that aren’t required to function, but that are needed for extra functionality.

This follows the same syntax as depends .

conflicts

This tells pacman what packages would cause our package to act up or behave in a way we wouldn’t want.

Any package listed here would be uninstalled before ours is installed.

This follows the same syntax as depends as well.

license

This defines the software license that your program is licensed under. The Arch Wiki has some info if you need help choosing a license. Setting this to custom will work if you don’t know what to set this to.

This takes the same syntax as arch and depends :

license=("custom")

source

This is how makepkg knows what files to use to build our package. This can contain a variety of different kinds of sources, including local files and URLs.

When adding local files, enter the file’s name relative to the PKGBUILD i.e. consider the following directory layout:

PKGBUILD
file.txt
src/file.sh

If you wanted to include file.sh in our PKGBUILD, you would enter src/file.sh as its name.

When entering URLs, you simply enter the full URL, i.e. https://mirrors.creativecommons.org/presskit/logos/cc.logo.large.png.

Your package only needs the hello-world.sh file, and since it’s in the same directory as the PKGBUILD, you just type its name as the value for source .

This variable also uses the same syntax as arch and depends :

source=("hello-world.sh")

sha512sums

This is used to verify that the files in source haven’t been modified or downloaded incorrectly. Information on obtaining the values for this can be found in the Arch Wiki article on PKGBUILDs .

If you’d rather just not set this (or you just don’t need to, i.e. for local files), you can just enter SKIP for every file in the source variable:

sha512sums=("SKIP")

package()

This is the last, and most important part to actually making our package. It’s important to know two variables when working with this:

  • ${srcdir} : This is where makepkg puts the files in the source variable. This is the directory where you can interact with the files, and do any other needed modification to the files.
  • ${pkgdir}: This is where we place the files that will be installed on our system.
    The folder structure for ${pkgdir} is set up as if it was on an actual system (i.e. ${pkgdir}/usr/bin/hello-world would create the file /usr/bin/hello-world when installing with pacman.

package() contains a list of commands used create a package.

So, if (hypothetically) you needed to have a file that reads Linux is superior to Windows at /usr/share/motto.txt, you would run something like this:

package() {
  mkdir -p "${pkgdir}/usr/share"
  echo "Linux is superior to Windows" | tee "${pkgdir}/usr/share/motto.txt"
}

A few notes on the above command:

  • ${pkgdir} contains no directories inside it at first. If you skipped the mkdir command , tee would output an error saying the directory doesn’t exist.
  • When specifying directories, always prepend them with the ${pkgdir} or ${srcdir} variable. Entering something like /usr/share/motto.txt without such would point to the literal directory /usr/share/motto.txt on your currently running system.

For your PKGBUILD, you’re going to place the file hello-world.sh at /usr/bin/hello-world on your target system. You’ll also be making the file say “Hello to you!” when ran.

To do so, enter the following into your PKGBUILD:

package() {
  echo 'Hello to you!' > "${srcdir}/hello-world.sh"
  mkdir -p "${pkgdir}/usr/bin"
  cp "${srcdir}/hello-world.sh" "${pkgdir}/usr/bin/hello-world"
  chmod +x "${pkgdir}/usr/bin/hello-world"
}

And you’re done! Build and install the package with makepkg -si , and then run hello-world in your terminal to see its output.

image 1

Wrapping Up

And just like that, you have made your first PKGBUILD! You’re on your way to making actual packages for yourself, and maybe even the AUR.

Got any questions, or something just not working right? Feel free to post it in the comment section below.

  • It chevron_right

    Fotoxx: An Open Source App for Managing and Editing Large Photo Collection

    pubsub.do.nohost.me / ItsFoss · Monday, 28 June - 11:40 · 3 minutes

When it comes to photo management software in Linux , Shotwell is perhaps the most famous of them all. No wonder it comes preinstalled in many distributions.

But if you are looking for a Shotwell like application which is a bit faster, Fotoxx could be a good choice.

It may not have a modern user interface, but it is fast in handling a large collection of photos. And it matters because indexing and showing thumbnails for thousands of photos could take considerable time and computing resources.

Manage photos and edit them in Linux with Fotoxx

fotoxx interface Fotoxx interface

As you can see in the screenshot above, it is not the nicest interface. Looks more like an application from around 2010. What it lacks in the visual department, it makes up with features and performance.

You can import a huge collection of photos, including RAW images. The images stay where they are. They are not copied or moved. They just get indexed in the application.

You can edit image metadata like tags, geotags, dates, ratings, captions etc. You can search images based on these matadata.

It also has a map feature that groups and displays images belonging to a certain location (based on geotag data on the images).

fotoxx geotag map view Map view

Since it focuses on managing large collection of photos, it has several batch functions to rename, resize, copy/move, convert image format and edit metadata.

You can select images to create albums and slideshows and all this happens without duplicating the images. Photos can be combined to create 360-degree panoramas.

Fotoxx also has several editing functions that can be used to retouch the images, add effect (like sketching, painting), trim, rotate and more.

There is also options for removing red eyes and dust spots from the old, scanned photo prints.

I can go on with the features list but it won’t end. Its website describes its full capabilities and you should check it out.

If it interests you, you can watch this video that demonstrates the features of Fotoxx:

Installing Fotoxx on Linux

Please keep in mind that Fotoxx developer recommends a strong computer with 4+ CPU cores, 16+ GB memory for proper functioning. Lesser computers may be slow or may fail to edit large images.

Fotoxx is available in the repositories of most Linux distributions like Debian, Ubuntu, Fedora and Arch Linux. Just use your distribution’s package manager or software center to search for Fotoxx and install it.

On Ubuntu and Debian based distributions, you can use the apt command to install it like this:

sudo apt install fotoxx

When you first run it, it will ask to search the home directory for images. You may continue with it or limit the search location to selected folders.

fotoxx indexing

I noticed that despite indexing over 4,700 in a minute or so, it didn’t start displaying the images immediately. I had to click on Gallery->All Folders and the select the folder(s) and then it showed the images . So, this is something to keep in mind.

Fotoxx is an extensive tool and it will take some time in getting used to it and explore all its features. Its webapge lists several examples that you should have a look at.

As I said earlier, it is not the prettiest application, but it gets the job done with a huge list of features. If you are a photographer or have a large collection of images, you may give Fotoxx a try and see if it fits your need. And when you do that, please do share your experience with it in the comment section.

  • It chevron_right

    Forgot Linux Password on WSL? Here’s How to Reset it Easily

    pubsub.do.nohost.me / ItsFoss · Sunday, 27 June - 06:43 · 4 minutes

WSL (Windows Subsystem for Linux) is a handy tool for people who want to enjoy the power of Linux command line from the comfort of Windows.

When you install Linux using WSL on Windows , you are asked to create a username and password. This user is automatically logged on when you start Linux on WSL.

Now, the problem is that if you haven’t used it for some time, you may forget the account password of WSL. And this will become a problem if you have to use a command with sudo because here you’ll need to enter the password.

reset wsl password

Don’t worry. You can easily reset it.

Reset forgotten password for Ubuntu or any other Linux distribution on WSL

To reset the Linux password in WSL, you have to:

  • Switch the default user to root
  • Reset the password for the normal user
  • Switch back the default user to the normal user

Let me show you the steps in detail and with screenshots.

Step 1: Switch to root as default user

It will be wise to note down your account’s normal/regular username. As you can see, my regular account’s username is abhishek.

username wsl Note down the account username

The root user in WSL is unlocked and doesn’t have a password set. This means that you can switch to the root user and then use the power of root to reset the password.

Since you don’t remember the account password, switching to the root user is done by changing the configuration of your Linux WSL application and make it use root user by default.

This is done through Windows Command Prompt and you’ll need to know which command you need to run for your Linux distribution.

This information is usually provided in the description of the distribution app in the Windows Store . This is from where you had downloaded your distribution in the first place.

wsl distro command Know the command to run for your distribution app

From the Windows menu, start the command prompt:

Start Command Prompt in windows Start Command Prompt

In here, use your distribution’s command in this fashion. If you were using the Ubuntu app from Windows store, the command would be:

ubuntu config --default-user root

In the screenshot, I am using Ubuntu 20.04 app from the Windows store. So, I have used ubuntu2004 command.

wsl set root as default Set root as default user in Linux app’s configuration

To save you the trouble, I am listing some distributions and their respective commands in this table:

Distribution App Windows Command
Ubuntu ubuntu config –default-user root
Ubuntu 20.04 ubuntu2004 config –default-user root
Ubuntu 18.04 ubuntu1804 config –default-user root
Debian debian config –default-user root
Kali Linux kali config –default-user root

Step 2: Reset the password for the account

Now, if you start the Linux distribution app, you should be logged in as root. You can reset the password for the normal user account.

Do you remember the username in WSL? If not, you can always check the contents of the /home directory. When you have the username, use this command:

passwd username

It will ask you to enter a new password. When you type here, nothing will be displayed on the screen. That’s normal. Just type the new password and hit enter. You’ll have to retype the new password to confirm and once again, nothing will be displayed on the screen while you type the password.

resetting wsl password Reset the password for the regular user

Congratulations. The password for the user account has been reset. But you are done just yet. The default user is still root. You should change it back to your regular account user, otherwise it will keep on logging in as root user.

Step 3: Set regular user as default again

You’ll need the regular account username that you used with the passwd command in the previous step.

Start the Windows command prompt once again. Use your distribution’s command in the similar manner you did in the step 1. However, this time, replace root with the regular user.

ubuntu config --default-user username
set regular user as default wsl Set regular user as default user

Now when you start your Linux distribution app in WSL, you’ll be logged in as the regular user. You have reset the password fresh and can use it to run commands with sudo.

If you forgot the password again in the future, you know the steps to reset it.

If resetting WSL password is this easy, is this not a security risk?

Not really. You need to have physical access to the computer along with access to the Windows account. If someone already has this much access, she/he can do a lot more than just changing the Linux password in WSL.

Were you able to reset WSL password?

I gave you the commands and explained the steps. I hope this was helpful to you and you were able to reset the password of your Linux distribution in WSL.

If you are still facing issues or if you have a question on this topic, please feel free to ask in the comment section.

  • It chevron_right

    How to Convert File Formats With Pandoc in Linux [Quick Guide]

    pubsub.do.nohost.me / ItsFoss · Saturday, 26 June - 04:11 · 4 minutes

In an earlier article, I covered the procedure to batch convert a handful of Markdown files to HTML using pandoc. In that article, multiple HTML files were created, but pandoc can do much more. It has been called “the Swiss army knife” of document conversion – and with good reason. There isn’t a lot that it can’t do.

Pandoc can covert .docx, .odt, .html, .epub, LaTeX, DocBook, etc. to these and other formats, such as JATS, TEI Simple, AsciiDoc, and more.

Yes, this means that pandoc can convert .docx files to .pdf and .html, but you may be thinking: “Word can export files to .pdf and .html too. Why would I need pandoc?”

You would have a good point there, but since pandoc can convert so many formats, it could well become your go-to tool for all of your conversion tasks. For example, many of us know that Markdown editors can export its Markdown files to .html. With pandoc, Markdown files can be converted to numerous other formats as well.

I rarely have Markdown export to HTML; I normally let pandoc do it.

Converting File Formats with Pandoc

pandoc quick guide

Here, I will convert Markdown files into a few different formats. I do almost all of my writing using Markdown syntax, but I often have to convert to another format: .docx files are usually required for school work, .html for web pages that I create – and for .epub work, .pdf for flyers and handouts, and even an occasional TEI Simple file for a university digital humanities project. Pandoc can handle all of these, and more, easily.

First, you need to install pandoc . Also, to create .pdf files, LaTeX will be needed as well. The package I prefer is TeX Live .

Note : If you would like to try out pandoc before installing it, there is an online try-out page at: http://pandoc.org/try/

Installing pandoc and texlive

Users of Ubuntu and other Debian distros can type the following commands in the terminal:

sudo apt-get update
sudo apt-get install pandoc texlive

Notice on the second line, you are installing pandoc and texlive in one shot. apt-get command will have no problem with this, but go get some coffee; this may take a few minutes.

Getting to Conversion

Once pandoc and texlive are installed, you can burn through some work!

The sample document for this project will be an article that was first published in the North American Review in December of 1894, and is titled: “How To Repel Train Robbers”. The Markdown file that I will be using was created some time ago as part of a restoration project.

The file: how_to_repel_train_robbers.md is located in my Documents directory, in a sub-directory named samples. Here is what it looks like in Ghostwriter.

convert with pandoc ghostwriter Markdown file in Ghostwriter

I want to create .docx, .pdf, and .html versions of this file.

The First Conversion

I’ll start with making a .pdf copy first, since I went through the trouble of installing a LaTeX package.

While in the ~/Documents/samples/ directory, I type the following to create a .pdf file:

pandoc -o htrtr.pdf how_to_repel_train_robbers.md

The above command will create a file called htrtr.pdf from the how_to_repel_train_robbers.md file. The reason I used htrtr as a name was that it is shorter than how_to_repel_train_robbers – htrtr is the first letter of each word in the long title.

Here is a snapshot of the .pdf file once it is made:

convert with pandoc ocular Converted PDF file viewed in Ocular

The Second Conversion

Next, I want to create a .docx file. The command is almost identical to the one I used to create the .pdf and it is:

pandoc -o htrtr.docx how_to_repel_train_robbers.md

In no time, a .docx file is created. Here is what it looks like in Libre Writer:

convert with pandoc libre writer Converted DOCX file viewed in Libre Writer

The Third Conversion

I may want to post this on the web, so a web page would be nice. I will create a .html file with this command:

pandoc -o htrtr.html how_to_repel_train_robbers.md

Again, the command to create it is very much like the last two conversions. Here is what the .html file looks like in a browser:

convert with pandoc firefox Converted HTML file viewed in Firefox

Noticed Anything Yet?

Let’s look at the past commands again. They were:

pandoc -o htrtr.pdf how_to_repel_train_robbers.md
pandoc -o htrtr.docx how_to_repel_train_robbers.md
pandoc -o htrtr.html how_to_repel_train_robbers.md

The only thing different about these three commands is the extension next to htrtr. This gives you a hint that pandoc relies on the extension of the output filename you provide.

Conclusion

Pandoc can do far more than the three little conversions done here. If you write with a preferred format, but need to convert the file to another format, chances are great that pandoc will be able to do it for you.

What would you do with this? Would you automate this? What if you had a web site that had articles for your readers to download? You could modify these little commands to work as a script and your readers could decide which format they would like. You could offer .docx, .pdf, .odt, .epub, or more. Your readers choose, the proper conversion script runs, and your readers download their file. It can be done.

  • It chevron_right

    9 Features in Brave Search That Make it a Great Google Search Alternative

    pubsub.do.nohost.me / ItsFoss · Thursday, 24 June - 11:12 · 5 minutes

Brave Search is an ambitious initiative by Brave Software based on the open-source project Tailcat , which tries to take on the big tech by introducing the ability to search anonymously. Brave Search itself is not open source at the moment .

Of course, there are various other private search engines available out there trying to offer a privacy-focused experience. Even though not every service proves to be better than Google (regarding features), Brave Search seems to be a compelling choice when considering Brave Browser as a successful open-source replacement to Google Chrome.

Here, let me highlight a few features in Brave Search that makes it an interesting alternative to Google Search.

Top 9 Brave Search Features

Brave Search does a few things better than Google and those are worth highlighting as unique feature offerings that sets it apart.

Brave Search is in beta at the time of writing this article. If you notice something different with your experience, there are chances that they may have made an improvement/change. Let me know in the comments below if that’s the case.

1. Anonymous Search

brave search anonymous

Google tracks your search queries, keeps a log of your history (unless you manually delete it or disable recording your activity). Not just the basics, but your IP address and the website you visit from the search result is also recorded in the process.

In contrast, Brave Search does not track the IP, or the search queries made using their search portal.

You stay completely anonymous, along with your search history being private only to yourself.

This could eliminate the need of using a secure VPN service to keep your Internet search activity private.

2. Ad-Free Version (Coming Soon)

brave ad free

All the private search engines include advertisements to make money (which is fair). The advertisements used by Google Search include trackers when you click on it, which is not the case with privacy-focused search engines.

But Brave Search tries to go a little further by offering a choice to the users.

It is a feature that has been planned for addition, but it is worth mentioning. If you want to get rid of the ads, you can opt for the paid version of the search engine where you can explore the web ad-free.

I think that’s a win-win for both Brave and you as a user. They do not lose on making revenue and you get to experience a truly ad-free search engine.

3. Community Curated Search Rankings (Coming Soon)

Users can help spot the quality of a web resource better than an algorithm often.

So, Brave Search aims to work on a community-curated search ranking system, which will be open to all when it is available.

This should improve the collaborative approach of exploring the web, which should be an impressive feature of Brave Search.

4. Independent Index with No Search Algorithm

brave search sample

With most of the other search engines, there’s an algorithm in place to make sure that only the high-quality web pages rank above the rest. Brave Search does not have any special algorithm controlling the search rankings.

And yes, that is a feature in a world where everything depends on algorithms.

Sometimes that algorithm ends up being biased by ranking plagiarism content first, low-quality web pages, along with a few other issues.

Without any special search algorithm, Brave search uses its own Index to fetch results as per your queries.

5. Private Local and Global Search Results

brave local global search

No matter what region you choose for the search results, you get an additional option to filter your results based on your locality (IP address).

Brave explains that the IP address is stored locally on your device and is used to serve you the local feed of results – which sounds useful.

brave anonymous local results

6. Transparency in Search Results

brave search transparency

The web is a vast network. Therefore, to keep the search result quality resourceful, Brave Search fetches some search results anonymously from Google and Bing (which is often less than 10% in my tests).

For the rest of the results, Brave Search relies on its independent index. Brave Search also displays the percent of its independent search index used for your search.

The more users start using Brave Search, the more independent the search results will become. So that’s a good thing.

Considering not all search engines reveal a lot about their search results, Transparency, as a principle, can be a feature to compare with when choosing a search engine.

Brave is a privacy focused web browser

Brave: Open Source Web Browser That Blocks Ads and Tracking By Default

An open source web browser that blocks ads and tracking. A good choice if you are looking for a privacy focused web browser. Here’s how to install Brave on Linux.

7. A Refreshing User Interface

While every other Google search alternative tries to offer a familiar experience, Brave Search is actually refreshing to look at (in my opinion).

brave search ui

The user interface looks well-thought and offers a modern, clean experience. Don’t you think?

I like how DuckDuckGo simplifies things, but Brave certainly makes it up for a better user experience that looks unique and clean.

8. No Anti-Competitive Nature

Unlike some other search engines (especially, Google) do not suggest anything else explicitly, except their own products and services in their search results.

That’s fair but potentially also anti-competitive, being the most popular search engine. They do have their reasons which we don’t have to talk about here, but giving a shout-out to your competitors is something new businesses/services are adopting.

brave search competitors

And Brave Search does an excellent jobat that. While you scroll through the search results, you will find a choice to use other search engines for your search query.

9. Dark Mode & Tweaks

Yes, the dark mode is an important feature (sigh).

brave search dark mode

And from the settings available in Brave Search, you can turn on the dark mode , set links to open in a new tab, and control the language (soon).

brave search settings

Wrapping Up

Brave Search is an interesting private search engine that aims to tackle the Big Tech by offering something new. It should be seamless user experience when using Brave Browser along with it, but you can use it on any browser without any limitations.

I like what I see here, what do you think? Let me know your thoughts in the comments below.