Posted on Leave a comment

Fedora’s gaggle of desktops

There are 38 different desktops or window managers in Fedora 31. You could try a different one every day for a month, and still have some left over. Some have very few features. Some have so many features they are called a desktop environment. This article can’t go into detail on each, but it’s interesting to see the whole list in one place.

Criteria for desktops

To be on this list, the desktop must show up on the desktop manager’s selection list. If the desktop has more than one entry in the desktop manager list, they are counted just as that one desktop. An example is “GNOME”, “GNOME Classic” and “GNOME (Wayland).” These all show up on the desktop manager list, but they are still just GNOME.

List of desktops

9wm

Emulation of the Plan 9 window manager 8 1/2 dnf install 9wm

awesome

Highly configurable, framework window manager for X. Fast, light and extensible https://fedoramagazine.org/5-cool-tiling-window-managers/ dnf install awesome

blackbox

Very small and fast Window Manager Fedora uses the maintained fork on github dnf install blackbox

bspwm

A tiling window manager based on binary space partitioning https://github.com/windelicato/dotfiles/wiki/bspwm-for-dummies dnf install bspwm

byobu

Light-weight, configurable window manager built upon GNU screen dnf install byobu

Cinnamon

Cinnamon provides a desktop with a traditional layout, advanced features, easy to use, powerful and flexible. https://projects.linuxmint.com/cinnamon/ https://opensource.com/article/19/12/cinnamon-linux-desktop dnf group install "Cinnamon Desktop"

cwm

Calm Window Manager by OpenBSD project https://steemit.com/technology/@jamesdeagle/the-calm-window-manager-cwm-a-quick-start-guide dnf install cwm

Deepin

Deepin desktop is the desktop environment released with deepin (the linux distribution). It aims at being elegant and easy to use. dnf group install "Deepin Desktop" (optional) dnf group install "Deepin Desktop Office" "Media packages for Deepin Desktop"

dwm

Dynamic window manager for X https://fedoramagazine.org/lets-try-dwm-dynamic-window-manger/ https://fedoramagazine.org/5-cool-tiling-window-managers/ dnf install dwm (optional) dnf install dwm-user

enlightenment

Enlightenment window manager https://opensource.com/article/19/12/linux-enlightenment-desktop dnf install enlightenment

e16

The Enlightenment window manager, DR16 dnf install e16 (optional) dnf install e16-epplets e16-keyedit e16-themes

fluxbox

Window Manager based on Blackbox dnf install fluxbox (optional) dnf install fluxbox-pulseaudio fluxbox-vim-syntax

fvwm

Highly configurable multiple virtual desktop window manager http://www.fvwm.org/ https://opensource.com/article/19/12/fvwm-linux-desktop dnf install fvwm

GNOME

GNOME is a highly intuitive and user friendly desktop environment. * both X11 and wayland https://opensource.com/article/19/12/gnome-linux-desktop https://fedoramagazine.org/3-simple-and-useful-gnome-shell-extensions/ dnf group install "GNOME" (optional but large) dnf group install "Fedora Workstation"

herbstluftwm

A manual tiling window manager https://opensource.com/article/19/12/herbstluftwm-linux-desktop dnf install herbstluftwm (optional) dnf install herbstluftwm-zsh herbstluftwm-fish

i3

Improved tiling window manager https://fedoramagazine.org/getting-started-i3-window-manager/ https://fedoramagazine.org/using-i3-with-multiple-monitors/ dnf install i3 (optional) dnf install i3-doc i3-ipc

icewm

Window manager designed for speed, usability, and consistency https://fedoramagazine.org/icewm-a-really-cool-desktop/ dnf install icewm (optional) dnf install icewm-minimal-session

jwm

Joe's Window Manager https://opensource.com/article/19/12/joes-window-manager-linux-desktop dnf install jwm

KDE Plasma Desktop

The KDE Plasma Workspaces, a highly-configurable graphical user interface which includes a panel, desktop, system icons and desktop widgets, and many powerful KDE applications. * both X11 and wayland https://opensource.com/article/19/12/linux-kde-plasma https://fedoramagazine.org/installing-kde-plasma-5/ dnf group install "KDE Plasma Workspaces" (optional) dnf group install "KDE Applications" "KDE Educational applications" "KDE Multimedia support" "KDE Office" "KDE Telepathy" (optional for wayland) dnf install kwin-wayland plasma-workspace-wayland

lumina

A lightweight, portable desktop environment https://opensource.com/article/19/12/linux-lumina-desktop dnf install lumina-desktop (optional) dnf install lumina-*

LXDE

LXDE is a lightweight X11 desktop environment designed for computers with low hardware specifications like netbooks, mobile devices or older computers. https://opensource.com/article/19/12/lxqt-lxde-linux-desktop dnf group install "LXDE Desktop" (optional) dnf group install "LXDE Office" "Multimedia support for LXDE"

LXQt

LXQt is a lightweight X11 desktop environment designed for computers with low hardware specifications like netbooks, mobile devices or older computers. https://opensource.com/article/19/12/lxqt-lxde-linux-desktop dnf group install "LXQt Desktop" (optional) dnf group install "LXQt Office" "Multimedia support for LXQt"

MATE

MATE Desktop is based on GNOME 2 and provides a powerful graphical user interface for users who seek a simple easy to use traditional desktop interface. https://opensource.com/article/19/12/mate-linux-desktop https://fedoramagazine.org/installing-another-desktop/ dnf group install "MATE Desktop" (optional) dnf group install "MATE Applications"

musca

A simple dynamic window manager fox X dnf install musca

openbox

A highly configurable and standards-compliant X11 window manager https://opensource.com/article/19/12/openbox-linux-desktop https://fedoramagazine.org/openbox-fedora/ dnf install openbox (optional) dnf install openbox-kde openbox-theme-mistral-thin-dark

Pantheon

The Pantheon desktop environment is the DE that powers elementaryOS. https://github.com/elementary https://opensource.com/article/19/12/pantheon-linux-desktop dnf group install "Pantheon Desktop" (optional) dnf install elementary-capnet-assist elementary-greeter elementary-shortcut-overlay

pekwm

A small and flexible window manager https://opensource.com/article/19/12/pekwm-linux-desktop dnf install pekwm

qtile

A pure-Python tiling window manager https://fedoramagazine.org/5-cool-tiling-window-managers/ dnf install qtile

ratpoison

Minimalistic window manager https://opensource.com/article/19/12/ratpoison-linux-desktop dnf install ratpoison

sawfish

An extensible window manager for the X Window System dnf install sawfish (optional) dnf install sawfish-pager

spectrwm

Minimalist tiling window manager written in C dnf install spectrwm

Sugar

A software playground for learning about learning. * Possibly the most unique desktop of this list. dnf group install "Sugar Desktop Environment" (optional) dnf group install "Additional Sugar Activities"

sway

i3-compatible window manager for Wayland * Wayland only https://fedoramagazine.org/setting-up-the-sway-window-manager-on-fedora/ https://fedoramagazine.org/5-cool-tiling-window-managers/ dnf install sway

twm

X.Org X11 twm window manager https://en.wikipedia.org/wiki/Twm https://opensource.com/article/19/12/twm-linux-desktop dnf install xorg-x11-twm

WindowMaker

A fast, feature rich Window Manager https://opensource.com/article/19/12/linux-window-maker-desktop dnf install WindowMaker (optional) dnf install WindowMaker-extra

wmx

A really simple window manager for X dnf install wmx

XFCE

A lightweight desktop environment that works well on low end machines. https://opensource.com/article/19/12/xfce-linux-desktop dnf group install "Xfce Desktop" (optional) dnf group install "Applications for the Xfce Desktop" "Extra plugins for the Xfce panel" "Multimedia support for Xfce" "Xfce Office"

xmonad

A tiling window manager dnf install xmonad (optional) dnf install xmonad-mate

Photo by Annie Spratt on Unsplash.

Posted on Leave a comment

Setting up the sway window manager on Fedora

Sometimes during a critical activity, working with overlapping windows becomes counterproductive. You might find a tiled window manager like sway to be a good alternative.

Sway is a tiling Wayland compositor. It has the advantage of compatibility with an existing i3 configuration, so you can use it to replace i3 and use Wayland as the display protocol.

Installing sway

To setup sway, open a new terminal and type the following command

sudo dnf install sway

Once the installation is completed, log out of your user session. At the login screen, select your user account. Before you enter your password, choose Sway from the menu, as shown in the following image.

After login, your desktop looks like this:

Configuration

To begin configuration, copy the default config into your user directory. Do that using the following commands.

mkdir -p .config/sway
cp /etc/sway/config ~/.config/sway/

Sway is highly configurable. It’s suggested you read the project’s wiki page to fine tune your settings. For example, to change the keyboard layout, open a new terminal and run this command:

$ swaymsg -t get_inputs
[george@mrwhite ~]$ swaymsg -t get_inputs Input device: VirtualPS/2 VMware VMMouse Type: Mouse Identifier: 2:19:VirtualPS/2_VMware_VMMouse Product ID: 19 Vendor ID: 2 Libinput Send Events: enabled Input device: VirtualPS/2 VMware VMMouse Type: Mouse Identifier: 2:19:VirtualPS/2_VMware_VMMouse Product ID: 19 Vendor ID: 2 Libinput Send Events: enabled Input device: AT Translated Set 2 keyboard Type: Keyboard Identifier: 1:1:AT_Translated_Set_2_keyboard Product ID: 1 Vendor ID: 1 Active Keyboard Layout: Portuguese (Brazil) Libinput Send Events: enabled

Copy the identifier keyboard code. Open your ~/.config/sway/config file with your text editor and edit the configuration accordingly:

## Input configuration
input "1:1:AT_Translated_Set_2_keyboard" { xkb_layout br
}

Save the settings. To reload the configurations, press Super+Shift+c. (Typically the Super key is mapped to the logo key on a PC.)

Waybar

Sway’s default status bar may not have all the functions you want. Fortunately Waybar is a good replacement. To install, run the follow commands. (Note, however, that COPR is not an official Fedora repository and not supported by the Fedora Project.)

sudo dnf copr enable alebastr/waybar sudo dnf install waybar 

Open your ~/.config/sway/config file. Edit the bar configuration like this:

bar { swaybar_command waybar
}

Reload the configuration and you’ll now see the waybar in action, as shown below.

To customize the waybar, you can visit this wiki page for more details and ideas.

Alacritty

Alacritty is a terminal emulator that uses the GPU for rendering, and a good replacement for urxvt. To install run the following lines

sudo dnf copr enable pschyska/alacritty
sudo dnf install alacritty

To enable it as default terminal emulator edit your ~/.config/sway/config. Change this line:

set $term urxvt256c-ml

To:

set $term alacritty

Reload your configuration.

When you open a new terminal with Super+C, alacritty will be open as seen in the following image:


Photo by Ivan Vranić on Unsplash.

Posted on Leave a comment

Manage your passwords with Bitwarden and Podman

You might have encountered a few advertisements the past year trying to sell you a password manager. Some examples are LastPass, 1Password, or Dashlane. A password manager removes the burden of remembering the passwords for all your websites. No longer do you need to re-use passwords or use easy-to-remember passwords. Instead, you only need to remember one single password that can unlock all your other passwords for you.

This can make you more secure by having one strong password instead of many weak passwords. You can also sync your passwords across devices if you have a cloud-based password manager like LastPass, 1Password, or Dashlane. Unfortunately, none of these products are open source. Luckily there are open source alternatives available.

Open source password managers

These alternatives include Bitwarden, LessPass, or KeePass. Bitwarden is an open source password manager that stores all your passwords encrypted on the server, which works the same way as LastPass, 1Password, or Dashlane. LessPass is a bit different as it focuses on being a stateless password manager. This means it derives passwords based on a master password, the website, and your username rather than storing the passwords encrypted. On the other side of the spectrum there’s KeePass, a file-based password manager with a lot of flexibility with its plugins and applications.

Each of these three apps has its own downsides. Bitwarden stores everything in one place and is exposed to the web through its API and website interface. LessPass can’t store custom passwords since it’s stateless, so you need to use their derived passwords. KeePass, a file-based password manager, can’t easily sync between devices. You can utilize a cloud-storage provider together with WebDAV to get around this, but a lot of clients do not support it and you might get file conflicts if devices do not sync correctly.

This article focuses on Bitwarden.

Running an unofficial Bitwarden implementation

There is a community implementation of the server and its API called bitwarden_rs. This implementation is fully open source as it can use SQLite or MariaDB/MySQL, instead of the proprietary Microsoft SQL Server that the official server uses.

It’s important to recognize some differences exist between the official and the unofficial version. For instance, the official server has been audited by a third-party, whereas the unofficial one hasn’t. When it comes to implementations, the unofficial version lacks email confirmation and support for two-factor authentication using Duo or email codes.

Let’s get started running the server with SELinux in mind. Following the documentation for bitwarden_rs you can construct a Podman command as follows:

$ podman run -d \ 
--userns=keep-id \
--name bitwarden \
-e SIGNUPS_ALLOWED=false \
-e ROCKET_PORT=8080 \
-v /home/egustavs/Bitwarden/bw-data/:/data/:Z \
-p 8080:8080 \
bitwardenrs/server:latest

This downloads the bitwarden_rs image and runs it in a user container under the user’s namespace. It uses a port above 1024 so that non-root users can bind to it. It also changes the volume’s SELinux context with :Z to prevent permission issues with read-write on /data.

If you host this under a domain, it’s recommended to put this server under a reverse proxy with Apache or Nginx. That way you can use port 80 and 443 which points to the container’s 8080 port without running the container as root.

Running under systemd

With Bitwarden now running, you probably want to keep it that way. Next, create a unit file that keeps the container running, automatically restarts if it doesn’t respond, and starts running after a system restart. Create this file as /etc/systemd/system/bitwarden.service:

[Unit]
Description=Bitwarden Podman container
Wants=syslog.service

[Service]
User=egustavs
Group=egustavs
TimeoutStartSec=0
ExecStart=/usr/bin/podman run 'bitwarden'
ExecStop=-/usr/bin/podman stop -t 10 'bitwarden'
Restart=always
RestartSec=30s
KillMode=none

[Install]
WantedBy=multi-user.target

Now, enable and start it using sudo:

$ sudo systemctl enable bitwarden.service && sudo systemctl start bitwarden.service
$ systemctl status bitwarden.service
bitwarden.service - Bitwarden Podman container
Loaded: loaded (/etc/systemd/system/bitwarden.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2019-07-09 20:23:16 UTC; 1 day 14h ago
Main PID: 14861 (podman)
Tasks: 44 (limit: 4696)
Memory: 463.4M

Success! Bitwarden is now running under system and will keep running.

Adding LetsEncrypt

It’s strongly recommended to run your Bitwarden instance through an encrypted channel with something like LetsEncrypt if you have a domain. Certbot is a bot that creates LetsEncrypt certificates for us, and they have a guide for doing this through Fedora.

After you generate a certificate, you can follow the bitwarden_rs guide about HTTPS. Just remember to append :Z to the LetsEncrypt volume to handle permissions while not changing the port.


Photo by CMDR Shane on Unsplash.