Pop!_OS Tiling - Always Float

Image
pop_os tiling
Author
Date published

I'm a fan of tiling window managers. Pop!_OS introduced tiling windows, known as Pop Shell, in version 20.04. While the Pop implementation is not as powerful and functional as a tiling windows manager, like i3 or Awesome, it's a great start but needs some improvements. In my post, Pop!_OS Switch Workspaces with Super + Number, I recommend adding keyboard mapping to move between workspaces easier.

Some windows don't work well in tiling mode. The Settings and Calculator applications work better as floating windows.

Image
tiling
Calculator opening in tiling mode

 

Image
floating 2
Calculator opening as a floating window.

The Pop Shell team is working on improvements for managing a combination of floating and tiling windows. [UPDATE: Pop Shell has been update - read more here]. In the meantime, you can define specific windows to open in floating mode by default. The .config/pop-shell/config.json file below defines the Settings window, "Gnome-control-center", and Calculator, "Gnome-calculator", to open in floating mode.

{
  "float": [
    {
      "class": "Gnome-control-center",
      "title": ""
    },
    {
      "class": "Gnome-calculator",
      "title": ""
    }
  ],
  "log_on_focus": false
}

Currently, only the window class is required in config.json.

How to determine the window class

Finding a window class is simple. Open the application (window). Also open the terminal. In the terminal, run the command: xprop | grep WM_CLASS, then click on the window you want the class for. Back in the terminal you will see the class information. Use the second string as the class.

Image
pop_os

My Config

{
  "float": [
    {
      "class": "Gnome-control-center",
      "title": ""
    },
    {
      "class": "Gnome-calculator",
      "title": ""
    },
    {
      "class": "zoom",
      "title": ""
    }, 
{ 

"class": "Org.gnome.Nautilus",       
"title": ""     
}
  ],
  "log_on_focus": false
}

Moving Forward

In the future, I expect a user interface control will be used to update this config.json file. In the meantime, it's easy enough to update it manually.

 

 

Keywords