DEV Community

Natano Ledger
Natano Ledger

Posted on

How to get started with ricing on Linux?

First, let's understand what is ricing. Ricing is the process of customizing your WM(windows manager) or DE(desktop environment). Usually you do this by editing the config of your window manager or compositor. In this article you will learn some basics about ricing and window managers.

What's the difference between a window manager and a desktop environment?

A window manager is a program that manages windows: how they look like, their behavior and keyboard shortcuts. A desktop environment is a set of utilities for graphical experience. Usually it includes a window manager, a file program, a photo viewer, etc. An example of a window manager could be Hyprland or i3, when GNOME and KDE are desktop environments.

What's the difference between different window managers?

All window managers are divided into 3 groups: tiling window managers, stacking and mixed(can be both stacking and tiling)

  • A tiling window manager organizes windows so that each one is a some part of your screen, and the screen get divided into several rectangles, and each rectangle corresponds to one window. You can edit the size of the tiles(rectangles) with keyboard bindings that you configured in the config.

  • In stacking window manager windows are organized like, say, in Microsoft Windows. Each window floats and can overlay other windows, and some space of the screen can remain unused.

  • A mixed window manager can be either a tiling wm either a stacking wm, depending on the configuration.

How do you use a tiling window manager?

Nowadays quite a few people know about tiling window managers, because they are not used neither in Windows, neither in macOS. But that doesn't make them worse that stacking window managers. In a tiling window manager you open an application by pressing a keyboard bind that you can configure in the config. An application launcher pops up. Usually it is something like rofi or wofi. In the launcher you select the desired application and a new tile is being created for it, shrinking some other tiles. You resize, close and drag windows using keyboard bindings. Some multi-layout wms offer different layouts. A layout is a preset of tiles for windows.

How to write configs?

This question fully depends on the wm you are running. You need to locate the config file. Usually it is located in ~/.config/WMname, where WMname is the name of your wm. Every config has it's own syntax, which you can learn in the wm's docs. Usually in the config you can set keybindings for opening specific applications that you use often like terminal, browser, etc., for closing, resizing, dragging windows and actions with the wm itself, such as exiting a session. Also you can create some decorations for windows. The most common ones are rounded corners, outline(stroke), shadow, animations and blur. The possible options are available in the wm docs.

What are the pros of a custom config?

In a custom config you can set absolutely anything as you like, it takes only your time. It is possible to set keybindings for tons of different actions, like changing volume. brightness and so on. When one has a config that one has written for oneself, the system is completely optimized for one. Also you can show off with your system on different communities.

Wayland? X11? XWayland? What is it?

There are several different protocols for window managers. Basically they state which operations are allowed to be done with windows, and which aren't. Also, some applications run better in specific protocols, as they have been coded to fit this specific protocol. For example, Spotify is pixelated on Hyprland.

Where to get inspiration and show off?

There are very many different rices on this reddit community. There you can publish your own rices and like/comment others. Also there are Discord servers of, say, Arch Linux, and there is a thread devoted to theming, you could post there too. There are many, many more communities, perhaps, not as big as the reddit community I mentioned, but the size doesn't matter. What matters is the people in the community.

Top comments (0)