I3wm. The best window manager for Linux

Attention! This article does not contain guides for setting up a particular window manager. It explains some of the general theoretical and practical aspects of using window managers. For instructions, refer to the specific window manager article on this wiki or post a question on the forum

A window manager is an application that is responsible for placing, decorating windows, interacting with windows - resizing, maximizing, minimizing, closing. The window manager interacts with the X11 graphics server, which handles interaction with the video card and input/output devices (keyboard, mouse, and monitor).

The window manager can work both together with the desktop environment (Gnome, KDE, XFCE), and separately from it. The functionality provided by window managers can vary quite a lot.

Window manager in desktop environment

So, the desktop environment already includes a window manager. In the case of Gnome it is Metacity, in the case of KDE it is kwin, XFCE uses xfwm4 by default. The LXDE desktop environment uses the openbox window manager - unlike other DEs that use window managers written specifically for them, LXDE includes a window manager that is developed independently from the rest of the environment.

In each of these environments, the default window manager may be replaced by another for one reason or another.

Perhaps two of the most significant examples for Ubuntu are the replacement of the standard Metacity window manager with Compiz to enable various special effects, or with Openbox to reduce resource consumption and provide more precise window management (more efficient use of hotkeys, placing windows in different layers (Always on top ) etc.)

Actually, there are no barriers to using the kwin window manager in the Gnome desktop environment, or vice versa.

In the event that the window manager is replaced as part of the working environment, the following actions are usually sufficient:

    Adding a command to replace the window manager in autorun using the session control utilities of this environment (textbook compiz –replace)

    If you want to transfer control over the desktop to the window manager (for example, in order to make the Openbox menu appear when you right-click on the desktop), disable the desktop control function in the settings of the application that does this by default. In the case of Ubuntu, this is Nautilus.

When you replace the window manager as part of the working environment, the latter continues to perform a number of important functions for you - session control, mounting removable media, managing the clipboard and network, associating files with applications. You change only and exclusively the window and desktop management mechanism.

Window manager without desktop environment

Suppose, in order to reduce the consumption of RAM and processor power, for self-education or for aesthetic reasons, you decide to independently deploy a working environment based on some kind of window manager.

What has provided you with a working environment so far? What do you now have to configure yourself? What tasks are performed by most window managers, and which are performed using third-party utilities?

Let's take it in order.

    Autostart and session control. If in the desktop environment you could add an application to autorun through the graphical interface, now you will most likely have to register such applications in the configuration file of your window manager. Looking ahead, I’ll say that most likely you will need to add a tray and / or panel, a keyboard layout switcher, a utility for managing network connections, a utility for mounting removable media, a utility for drawing wallpaper, an email client and an Internet messenger, a torrent client .

When adding apps to autostart, be aware of the order in which they start. For example, if you want to run the manager network connections or a torrent client, they will most likely need a tray, so they should start after the tray, possibly with some delay (use the sleep command)

    Network connection management. The desktop environment provides you with a network connection manager, in the case of a window manager, you will need to take care of this yourself. You can connect to the network before starting the graphical server, or after starting the window manager and running the tray nm-applet or wicd-client.

    Clipboard. You may notice that pasting a piece of text from the browser into a text editor is now only possible when the "donor" application is running. Install and add a clipboard manager to autostart, for example, parcellite.

    Switching keyboard layouts. It has disappeared!

The most versatile solution:

Setxkbmap -layout "us,ru(winkeys)" -model "pc105" -option "grp:ctrl_shift_toggle,grp_led:scroll"

It also needs to be added to autorun. For more fine-tuning of switching layouts, use the utilities xxkb or xneur

    Perhaps you need panels and/or trays. The window manager can include a panel, as is the case with fluxbox, but you can use any other - undemanding to resources tint2 or functional gnome-panel or xfce-panel

    Power management. If you are using a laptop, you may need to manage power profiles. Can be used gnome-power-manager or xfce-power-manager

    Wallpaper. Most window managers will show you a black screen instead of wallpaper. In order to change and show the wallpaper, you need a separate utility, a special wallpaper manager is suitable nitrogen or image viewer feh

    Desktop icons. If you need them at all, then you can use a file manager that can draw them. Nautilus, pcmanfm or rox-filer fit. Nautilus - to a lesser extent - it tends to take full control of the desktop and can get in the way of your window manager.

    Mounting removable media. It is possible to transfer this function to file manager or configure the mount with udev

    Application appearance. Fonts, icons, desktop themes, cursor themes. Now you need to configure them yourself. Create hidden .icons and .themes folders in your home folder, in the first one you can add icon and cursor themes, in the second - GTK themes. Attention! Watch out for the folder hierarchy! Themes will only be configured if the theme path looks like this: ~/.themes/ topic_name/gtk-2.0. Some authors make packs of themes, and in the "Theme" folder there may be subfolders "Light Theme" and "Dark Theme". A handy tool for customizing gtk themes, icons, fonts and cursor themes - lxappearance. Don't forget that gtk themes require so-called "theme engines" to work correctly, which a freshly installed minimal system most likely doesn't have. You can install them from the repositories, you can see what engines are in the repository like this: aptitude search gtk-engines

    Shutting down the computer other than via halt/shutdown from the console. If your window manager does not have a shutdown utility, then you will have to resort to third-party shutdown dialogs, and in doing so edit sudoers only using visudo to allow your user to shutdown and restart the computer without entering a password

    A utility for quickly launching applications by entering a command. Try for these purposes gmrun

    Compositing, also known as "transparency and cube". Since compiz itself is a window manager, it is unfortunately not possible to combine it with openbox or fvwm. There are, however, composite managers who are not engaged in window rendering, but exclusively in special effects - cairocompmgr and a bunch xcompmgr And transfer- both allow you to add some simple compositing special effects (shadows, transparency), but nothing more.

Keyboard shortcuts, window decorations, virtual desktops, and menus are typically provided by the window manager and configured in the latter's configuration file.

Hello! Having recently read an article about window managers in Linux, I wanted to tell everyone about the manager that was mentioned there - "awesome".
This is a tiling windows manager for unix (linux, freebsd, openbsd, netbsd).

Description

Awesome WM - tiling wm, with the ability to be composite. This is one of its features, often users need compactness (the tiling side of this WM), but sometimes you can work in normal mode (composite). It is very light, does not load the processor, and the screen space is used very measuredly and there are no empty spaces left (in tiling mode).
It is configured using a configuration file, in the Lua scripting language. There is support for plugins, which, in turn, are also written in Lua.

Installation

Installing it is very easy, for example on Arch Linux just write
sudo pacman -S awesome vicious
Or on Debian based
sudo apt-get install awesome awesome-extra
The vicious package contains basic plugins that you can use later.

Next, you need to register its loading when loading the X Window System. This is written in a file located in the home directory, ".xinitrc".
#!/bin/sh exec awesome
We reboot and this wm appears.

First meeting



This is what your session looks like when you first turn it on. It would seem, how to work in this and what to do here? In fact, everything is simple when you understand her system. All actions with windows are performed using hotkeys. By default they are as follows (all this can be read in "man awesome", the text itself is taken from the gentoo wiki):

super + number transition to another tag, where the tag is the key number, or rather its position (drawing an analogy with other wm, tag = virtual desktop).
super + shift + number move the current window to another tag.
super+j, super+k transition between windows.
super + shift + j or super + shift + k swap two windows.
super + space changing window display. (In awesome there are a lot of types of displays - tiling: vertically, horizontally; composite - you can drag the mouse; the application is in focus on the whole screen, etc.)
super + Enter start terminal.
super + r program launch.
super+shift+c close a window.
super+shift+r restart awesome.
super+shift+q exit awesome.

Undoubtedly, they are not convenient for someone. But we can change everything! So let's move on to the configuration file.

Configuration file

Warning, you need at least some programming or scripting skills to edit it.
The global config file is located in the system in "/etc/xdg/awesome/rc.lua", but it is better not to change it, because if it is not correct, then wm will not start. So let's make our own.
mkdir ~/.config/awesome cp /etc/xdg/awesome/rc.lua ~/.config/awesome/rc.lua
And we will change it directly.
First of all, I would like to change some keys.
Hotkeys are in the section
"-(((Key bindings "
It's easy to change everything.
modkey is our super key (with the windows logo on the keyboard).
For example:
awful.key(( modkey, "Shift" ), "q", awesome.quit),
This line says that super + Shift + q will force awesome to close.
Let's say we want to leave the same thing, but without shift, then it will be
awful.key(( modkey, ), "q", awesome.quit), Or just the Esc key (This is just an example!)
awful.key((), "Esc", awesome.quit), I think the logic is clear.
So, we figured out the keys. Now it's time to set up global variables.
This section is at the beginning. (The following are my own settings, which you can of course change)
terminal = "terminal" browser = "chromium-dev" editor = os.getenv("vim") or "vim" editor_cmd = terminal .. " -e " .. editor
I think we figured out the "insides", it's time to take on appearance.

A little more about the setting

We continue to work in the configuration file in the same way.
First, instead of just numbers, we would like to rename our tags. It's in the section
"--- ((( Tags"
Instead of numbers, just write names.
For example I have:
tags[s] = awful.tag(( "All", "IM", "Work", "Etc", "Media"), s, layouts)
In general, I won’t be able to write well about the configuration, because this is a personal matter. The best place to read about it is on the awesome wiki. In general, by adding the config, you will feel a new ease of working with windows. A large number of goodies can be found.

Instead of a conclusion

I want to note that this wm is ideal for people who often keep several windows in focus. It is also suitable for weak machines and lightweight systems, and machines with small screens (laptops)
Having memorized (at first), and then on a whim by pressing hotkeys, you will no longer think about how, where, what to do with the window, how to place it.
For example, in awesome, you can keep certain windows in one tag. For example, I have Skype and Pidgin in my IM tag.
But what words! Screenshots!


Full size latest screenshot
My wallpaper, at the request of workers.
As well as a video demonstrating the work of WM.

I also attach an archive with my config + plugins.

I hope I got you interested in this cool (from English awesome) WM, and you will try it in action! And I'm happy to answer and help in the comments.

In Linux, there are a lot of Windows Managers, such as KDE, GNOME, Unity, but not all of them suit, for example - for sure, if you work with code, you want maximum comfort when working with the OS, without any graphic excesses and bells and whistles. Tiled window managers are a real savings in screen area. at least due to the absence of roundings in the corners of the screen, massive forms. In addition, the use of graphic resources, computer memory - is minimized. So let's move on to the review of the best window managers in my opinion.

How to change the graphical interface (graphical\window environment)

To change the graphical interface, at startup or login in account Ubuntu click on this button:

Then choose a pre-installed graphic design.

So, the review

1. Window manager - i3

In appearance - - just a fairy tale for those who absolutely do not need graphic drawings and who have enough small windows without frames, short description loading the machine and other things, so, a screenshot from the official site:

As you can see - everything is interesting and extremely tempting - we can easily climb in the code and watch the movie in the background and, moreover, read the news on the right) very interesting. In addition, on the site you can find hot keys for simplified control of this window manager:

Well, as usual, I am attaching a picture in order to smooth out my guilt for the hard-to-read written text (otherwise I can’t at the moment)

2. Window manager - Awersome

- as in translation from English - a wonderful tiled window manager in my opinion. Perhaps one of the most convenient from this list - there is a well-documented code, if you suddenly want to fix or add something :) and of course, a bunch of hot keys that make menu navigation simple.

Screenshot from the site:

3. Window Manager - DWM

- Dynamic window manager. At the same time, it combines not only the "tiled" style of window design, but also in various styles - selected if necessary, this is its main difference from the above described window managers. Keyboard shortcuts are just as easy to understand, remember and manage :) so, screenshot:

As we can see - more saturated with colors, interesting window frames :)

Conclusions, conclusions

Of course, these options are not suitable for everyone and are more acceptable for people working with code than for ordinary users. But, and an ordinary user who needs windows to occupy only a real place without any frames - will also not be a bad option. Each window manager is quite functional and has hotkeys for quick control. Try it, see - installation in most cases is extremely simple and worth looking for Ubuntu applications enter a name and click on the install button.

Linux window managers manage the system windows that invoke an application. Let's clarify this with an example:

When you normally run one application, you get a manager for your window, which usually runs in the background, and they are responsible for the look and feel.

Don't confuse your Linux window managers with your desktop environment because the desktop manager is what basically contains the windows toolbars, wallpapers, desktop widget, folders and icons and they usually provide you with a set of applications and some libraries so that you can manage your computer in a related way. The desktop environment has its own manager in which the compositing window manager allows you to draw and create a window separately.

Best Linux Window Managers

Awesome WM

One of the best Linux window managers that allows you to port the asynchronous XCB library instead of XLib. Multiple tags are allowed for workspace organization with Awesome WM, and it is fully extensible with LUA. It can be customized, skinned and keyboard friendly along with a shortcut feature.

The default configuration is designed and it supports multiple workspaces. Rearranging and resizing panels is also available with the mouse. You can easily change anything during setup.

Download it from this site https://awesomewm.org/download/

i3

It is a heavily documented Linux Window Manager that is fully customizable. This manager can be customized in any way you like, from hosting an open application to custom keyboard shortcuts. It is customizable in every way. Simple text configurations are easy to read and don't require any Haskell or LUA.

Switching and managing floating windows is also easy as they can be switched with $ mod + shift + space. The development process is normal, errors are prevented, and you can also use the terminal to be notified of the actions taken.

You can download it from the official site https://i3wm.org/downloads/

open box

It is very lightweight, one of the famous Linux Window Manager for your system. The download will use about 100 MB of RAM. It is highly customizable and easy to implement. You can easily edit several configuration files of this manager, which will also fit perfectly with traditional desktop elements such as panels, menu buttons, and more.

Try it out by downloading it from the official site http://openbox.org/wiki/Openbox:Download

XMonad

It may also work for you. With it, you will not be limited to any pre-programmed actions or layout, rather, you will be allowed to program anything in the configuration. Basic settings are easy to change and codes are usually kept clean and secure. It's also lightweight and fast, and you can run it on any slow system.

With this manager, you can also manage multiple monitor settings. It's the perfect desktop window manager and you'll get everything you need.

You will get all the additional information on installing it at https://xmonad.org/download.html

Gala

This Linux window manager works with the Gtk client side. Has an elegant design.

It is very easy to use for beginners Linux users. Being incredibly customizable, Gala has shortcuts for ease of use. Hot corners are useful for multitasking or any custom commands. 4 super-easy keyboard shortcuts are added to the controls.

Animations and fancy effects are also included. You will get the benefit of dynamic workspace management by adding or removing anything according to your requirements. Gala is very fast and usually runs on some resource constrained devices like Chromebooks or older netbooks. The stability is great too. It is considered one of the most famous Linux window managers.

Download it https://github.com/elementary/gala

DWM

This Linux window manager is part of the suckles suite and usually it can prompt the user to customize and extend it with code changes. dwm is also very light on your system and you will get the hang of it without any problems. It is simple in design and is a low resource manager.

The dwm's simple configuration, functionality, and keybindings are incredibly well thought out, making it one of the best Linux window managers. Hotkeys such as ALT + TAB are available.

You can use paradigm design to help you group clients or applications that can be brought into the workspace. This will allow you to get multiple clients and help you assign and reassign tags. The dwm status bar is informative which shows you wifi signal, wifi strength, volume level and battery notification.

You can use it by going to the site https://dl.suckless.org/

Fluxbox

If you are looking for the best Linux window manager that is super lightweight then Fluxbox will be one of the best options for you. It will run fast on any system. It is convenient for users, and its configuration is much simpler than others.

It has its own panel and also contains a set of wallpapers, which makes it the best window manager. The menu is simple and is controlled by the mouse. Clicking the right mouse button will help you open the main menu.

With Fluxbox, you don't need to know any programming language and it makes editing and window management easy. Includes various themes and configuration options.

Download and use it at the convenience of http://fluxbox.org/download/

KWin

This highly customizable window manager can be easily tailored to your needs. The compositing manager is integrated and you can change the way it is done with some simple steps in the settings.

People these days are moving towards touch interfaces. KWin is still the same DE that might be ideal for desktop users. The interface is great and includes an attractive desktop effect. KWin also offers window shadows/glow or wobbly windows.

spectrwm

Includes a plain text setting that can be reloaded while it's running. This will allow you to see the results of configuration editing without logging out. The defaults are the same and any user can enjoy the simplicity of this Linux window manager.
It's very simple as it includes a basic set of options and doesn't require any language during setup. Spectrwm is ideal for beginners and offers support for built-in keyboard shortcuts. It will be the best choice if you are not familiar with Haskell.

You can download it from https://github.com/conformal/spectrwm

muscle

The musca interface is intuitive. The default values ​​of this window manager are also considered simple and straightforward. It saves space as it has zero panels, as window decorations like tabs and icons can take up huge screen real estate, musca avoids this element (installing separate apps can also add them). The grouping system of this manager is close to virtual desktops.

Windows are mostly hosted in different named groups, and they can be very efficient if they are used in the same way as virtual desktops. You can add or remove groups on the fly as each group will contain a different frame layout. It supports multiple screens and can create groups automatically. It can handle floating windows and contains highlighted frames.

mob_info