How to Install & Configure Zsh

Bash: the default shell preinstalled in most Linux distributions is rock solid and industry standard for many years. There is not much to complain about Bash. It does the job and is the default shell on almost all Linux distributions. All the Linux tutorials and blogs assume you are using Bash. However, there are other shells to explore, including the famous ZSH and Fish shells. However, Bash is not customizable as ZSH or Fish. The more you can customize your shell, the more you can tailor it for your needs and be productive.


Why not Fish?

Some time ago, I tried ZSH, but it was too slow to open. Spending more time to open the terminal than running the actual command didn't justify using ZSH. That's when I decided to try Fish. Though Fish offers even more customization than ZSH, it breaks compatibility with Bash. From simple export commands to complex Bash scripts won't work in Fish out of the box. Every time I copy-paste some CLI commands from a website, I had to change the syntax to Fish almost every time I copy commands from the internet. It defeats the purpose of Fish. I installed Fish to boost my productivity, but it was counterproductive when writing shell scripts.

How to Install & Configure Zsh

Once again, I switched back to ZSH to give it a try. Surprisingly it is as snappy as Bash and Fish this time. The slowness of ZSH could come from an older version, an extension I used, or due to my years-old hardware. However, after installing ZSH with all the necessary plugins, it runs as smoothly as Bash without sacrificing the features I love in Fish.

Solaar: Logitech Device Manager for Linux

Solaar: Logitech Device Manager for Linux

 I am a long-term fan of Logitech keyboards and mouses. Their build quality is unbeatable. Currently, I own the ergonomic MX Vertical Wireless Mouse and ERGO K860 wireless keyboard. Even though the build quality is exceptional, Linux users are left behind in software support as usual. This article introduces Solaar: an open-source device manager for Logitech devices.

Solaar is an open-source tool developed by reverse engineering Logitech's connection protocols to provide some basic functionalities to Linux users. It can be used from pairing multiple devices to the same unified receiver to configuring your devices.

Since it is not an official tool, do not expect it to support all the bells and whistles packed in Logitech devices.

As of writing this article, Solaar has the following features for the supported devices:

  • Pairing and unpairing devices with the receiver
  • Displaying the current battery level and basic information about the device
  • Change some settings

To install the latest Solaar on Ubuntu, Linux Mint, or any other derivatives, use the following command:

sudo apt-add-repository ppa:solaar-unifying/stable
sudo apt update
sudo apt install solaar


Arch users can install the latest version from the AUR:

yay -S solaar

Fedora has the latest Solaar in its official software repository:

sudo dnf install solaar

For other Linux distributions, check the GitHub profile to see the pre-built packages.

After installing Solaar, you may have to unplug and plug the receivers to let them detected by Solaar. Any customization other than pairing may not be persisted by the device if turned off. Solaar remembers any such changes and apply them every time you start Solaar. Therefore, if you are using Solaar to change any device settings, make sure to start Solaar at the startup to keep the changes alive.

Linux and the Curse of Fragmentation

  Before jumping into the article, let me define myself. I'm a Linux user and I develop FOSS applications during my free time. I'm using Linux Mint but love all other distributions. I truly wish for the success of desktop Linux.  I love using my computer and it's more like my virtual home. I want everything in my system to play together to give a unified experience. This is why I try my best to install only the GTK apps packaged natively so that they all align with my system theme.

Let's come to the topic. With the recent libadwaita conflicts, the Budgie desktop team has announced to create a new Desktop environment with EFL. According to "The FACTS about GNOME’s plans for THEMES" video from Nick, Elementary OS supports this decision and stressed the idea of treating each distribution as a specific OS. The latest news is from System76 regarding their experiment on a new desktop environment from the ground. This article is not about System76's choice but about the idea of treating each distribution as a separate operating system with its app ecosystem. Already Elementary OS has built its own development SDK and there are plenty of applications built using their SDK. While it is easy for the distribution maintainer and the developer to target a specific distribution, those apps do not blend well in other distributions. It is completely fine and I accept it's the developer's choice on how he/she want to develop the application and who are the target audience. It also makes sense from a distribution perspective because the more users get vendor locked the more beneficial for the distribution.

However, from an end user's point of view, it creates more fragmentation. As a newbie, a Linux beginner has plenty of choices: Debian, Arch, Fedora, OpenSUSE, Elementary, Zorin, other derivatives, etc with GNOME, KDE, Cinnamon, XFCE, LXQT, Mate, Deepin,  etc.

If Linus is confused with choosing a distribution to install, think about your grandma.

Choosing a desktop environment can be fallen into two main categories: whether you are using a Qt-based distribution or GTK based distribution. There aren't that many QT-based distributions other than KDE and LXQT. However, most other distributions are written using GTK. Therefore, for an app developer who wants to write software for all Linux users, there are two primary technologies to choose from: QT or GTK. I have chosen GTK because that will make my application native-looking in my system running Linux Mint. As of writing this article, my application looks good on all other distributions using GTK. In KDE though, it may not feel and look similar to other KDE apps. Developers using KDE may choose KDE dependencies that are not guaranteed to blend with other GTK apps in a GTK based distribution.

 What if every Linux distribution follows the path of Elementary OS? I mean they all have their SDK and the apps developed using those SDKs will look like aliens in other platforms. It will be easy for developers to develop for a specific distribution but it will further fragmentize the apps available for Linux. You will see apps developed for targetted distributions and Linux users have to choose the platform that has most of the apps they want; or else they can choose Windows or Mac where they can get every app they need already. Another question to answer is what will happen to the famous apps like LibreOffice and GIMP? I don't expect them to be ported to every distribution so I hope from the distribution side there will be some effort put in to make them look native.

I like to see GTK still being in place as it has been so far but GTK is developed and controlled by GNOME. If other distribution maintainers do not like the way GNOME takes, it is a no-brainer for other distributions to choose different frameworks. However, it would be great if all get together and fork GTK or choose a common framework (like QT) and maintain it without injecting their distribution-specific philosophies. If Linux kernel can be maintained without conflicting with all those stakeholders, maintaining a GUI framework is feasible too. However, in reality, coding is easier than coordinating with all other distribution maintainers on common ground.

Comming to System76's decision on writing a new distribution from the ground, I am all in for a new distribution. If we said "why another distribution?", we wouldn't have Budgie, Mate, Cinnamon, or any other amazing distributions. I'm glad System76 decided to go with GTK. I wish other distributions conflicting with the libadwaita issue also to share some core technology to avoid fragmenting Linux apps.

As a FOSS developer, I am already packaging my application for different distributions; please don't make me put more effort to make my application look native in all distributions. At the same time as a Linux user, I want all applications I am using to look the same in my system.

Easily Switch Audio Devices on Linux

Those working from home on a Linux machine might have already noticed the pain of switching between input and output audio devices. You may want to quickly switch from one headset to another or from the speaker to the headset and vice versa. Opening the settings dialog every time you want to change the sound device is not very productive. Some desktop distributions like Cinnamon provide out-of-the-box solutions to change the audio device with a couple of clicks. For Gnome, there is an extension that enables this feature. This article covers such options to switch between different audio devices with less effort.


In the Cinnamon desktop environment, right-click on the Sound applet and choose the output device. You can individually select the output device and input device so that you can listen to the sound on one device while using a mic from another device.

Easily Switch Audio Devices on Cinnamon

The Input device selection will appear only if there is an application actively using a Mic. Otherwise, you will have the Output device selection only.


Gnome doesn't provide a similar option as in Cinnamon. However, the "Sound Input & Output Device Chooser" Gnome extension fills the gap by enabling the exact shortcut in Gnome. All you need to do is, installing this extension and enable it from the GNOME Extensions app.

Easily Switch Audio Devices on Gnome

Use the following button to install the extension:

All Linux Distributions

Sound Switcher Indicator is a simple application to change the input and output audio from the tray icon. Unlike the first two options, this application is not limited to a particular distribution. If you don't like the long hardware names, the application also provides an option to rename any detected devices for your convenience.

Easily Switch Audio Devices on Linux

To install the "Sound Switcher Indicator" from PPA, run the following command:

sudo apt-add-repository ppa:yktooo/ppa
sudo apt update
sudo apt install indicator-sound-switcher

Arch users can use the following command to install the app:
yay -S indicator-sound-switcher

On any other distributions, you can either install it from the Snap or the source.

sudo snap install indicator-sound-switcher

Make Gnome Look Like Mac (with the notch)

 You might have seen hundreds of YouTube videos on how to make Gnome looks like a Mac. Apart from some similarities (inspirations!) Gnome does have its own workflow in contrast to apple, but there are ways to mimic the exact Mac appearance with Gnome by installing some extensions and customizing the theme. Wait, did I say "exact Mac appearance"?  Not after the release of the latest MacBook Pro 14" and 16". Now Apple has a notch on the screen. It is not enough to change the Linux logo to an Apple logo for true diehard Apple fans like me. We want the new innovative notch on the screen. Go home Linux you don't have it.

However, Linux gives the freedom to achieve anything. That's what made Alynx Zhou develop a super useful extension for Gnome that introduces a notch to your screen. What does it do? Nothing just adds a virtual notch on your screen that mimics Apple's notch in all the way. It hides your cursor if you move the cursor below it. It shows a fake camera to be more secure than an actual camera. (Thanks to the developer for being mindful otherwise we might end up with an extension with an actual camera). There are a lot of FAQ answered in the official GitHub repository that you may wanna checkout for a good laugh.


Use the button below to install extension from Gnome Extensions site:


Now with a perfect theme and wallpaper, you can experience a true Mac feeling. Apart from all the fun, I do admire M1 chips. I am actually planning to get a MacBook Air in the near future, but the notch? I'm not a big fan of it. If everything Apple introduces is innovative and fault-proof, the touch bar should have been there forever and the MagSafe, SD card slot, and the HDMI port shouldn't have returned. While I understand the reason behind notch, it interrupts the Human-Computer-Interraction (HCI), especially if the menu is too long. Regardless, Linux has once again proved to be fun to use.

To get a Mac like Gnome, check this video out form Linux Scoop.

Dark Mode in Cinnamon Desktop Environment

Dark Mode in Cinnamon Desktop Environment

Some desktop environments like Gnome and Pantheon provide a dedicated system setting to switch between dark and light modes. In Cinnamon, you have to change the themes for Window borders, Icons, Controls, and the Desktop to achieve the same thing. Something can be done necessarily doesn't mean that is enough. I developed a new applet to switch between light and dark mode with a single click. The idea behind this applet is simple: change the system theme according to the mode.

Installation and Configuration

As with any other applet, open the Applets dialog and switch to the Download section. Search the "Dark Mode" applet and install it.

Dark Mode in Cinnamon Desktop Environment

Once installed, add the applet to your panel and configure the light mode and dark mode themes. If you do not want to change a particular theme with the light and dark modes, you can either leave that option empty or select the same theme for both the light and dark modes. For example, I use the same Icon theme and Desktop theme regardless of the system mode. In addition you can also choose a folder with mode specific wallpapers as the desktop background location. The applet will randomly choose a picture from the folder and set it as the desktop background while changing the mode. Currently the applet only supports: .jpg, .jpeg and .png files.

Dark Mode in Cinnamon Desktop Environment

After defining the themes, you can enable/disable the dark mode using the configuration dialog or from the applet menu.

Dark Mode in Cinnamon Desktop Environment

You can also enable the automatic mode switch and set the time for light mode and dark mode. The applet will switch the system theme automatically based on the defined time. Even with the automatic mode switch enabled, you can switch to your preferred mode at any time using the applet menu.

Dark Mode in Cinnamon Desktop Environment

If you like this applet and/or if you have any suggestions, please comment below. I will include them in the upcoming versions.

KDE Connect for iPhone

Good news for iPhone users using Linux is revealed by the KDE community. KDE Connect: the famous tool to integrate Android with your Linux desktop now supports iPhone too. For those who haven't heard about KDE Connect, it's a KDE application that lets you seamlessly bridge your Android device with your desktop Linux operating system. Though it was developed by the KDE community, there is an extension for the Gnome desktop environment. Zorin OS has its fork of the Gnome extension and the Android application. Other distribution users can still install KDE Connect if they don't mind installing some additional KDE dependencies. KDE Connect desktop application is also available for Windows and Mac (experimental).

I mainly use KDE connect to share the clipboard between my phone and PC, but it can do more than that.

  • Receive your phone notifications on your desktop computer and reply to messages
  • Control music playing on your desktop from your phone
  • Use your phone as a remote control for your desktop
  • Run predefined commands on your PC from connected devices. See the list of example commands for more details.
  • Check your phones battery level from the desktop
  • Ring your phone to help find it
  • Share files and links between devices
  • Browse your phone from the desktop
  • Control the desktop's volume from the phone



A demo video released by the KDE community shows:

  • How to connect two devices
  • The ability to view battery status and device info
  • Shared clipboard
  • File sharing
  • Slideshow control
  • Remote input

However still the app is under development and not polished as Android version. For example, as of writing this article, the KDE Connect iOS requires iOS 15 or the latest, but the developer said they are working on backward compatibility by fixing some SwiftUI widgets. It also doesn't support iMessage yet. These issues will be fixed soon according to the developer. Dear iOS users, you can receive your iPhone notifications in Linux very soon and it will be a milestone in integrating the proprietary echo system with the free world.

Use the following link to install the testing version of KDE Connect on your iPhone via TestFlight. You can find more information about the development, at the official GitHub repository.

If you find any bugs while testing this version, please report them at KDE Bugzilla to improve the product.


© all rights reserved