I’ve been suggested to use a tiling window manager like Sway since it allows for controlling windows with hotkeys, but I’m having trouble getting started. I installed it in Fedora and tried logging back in with SwayFX (since it has features like blurring) but after I’m just shown a wallpaper with a top bar, the top left shows a 1
and the top right shows the time. I don’t know what to do there. I tried looking up guides but didn’t find anything, can you link me some if you know of any?
If you are the person asking the floating window question from the other day as JustAnotherKay spotted, then this is how I set a window to floating in my config;
for_window [title="www.youtube.com" app_id="firefox"] floating enable, resize set 1280 720 , opacity 1
What this is doing is selecting any firefox app that has www.youtube.com anywhere in the title and make that floating, with a set size, and remove any opacity (transparency) that might be applied to the window.
You can add move absolute position 0 0 on the end if you want to set the absolute location for the window.
You can force a window to a particular workspace by:
assign [class="discord"] workspace number $ws2
and that workspace to a particular monitor with:
workspace $ws2 output DP-1
If I wanted to do this for all firefox windows I would just remove the title= part from the selection.
How do you get the titles and other components? Using swaymsg as follows:
swaymsg -t get_tree
this will output all your open windows per monitor, for each app you want to manage you are looking for something like:
#15: con "#tech-talk🖥 | 40% Keyboards - Discord" (xdg_shell, pid: 6260, app_id: "discord")
from here you its simple to pick up what you can use for a unique select, so app_id:=“discord” in this case.
If you reload your config file, then reopen the app, it should reflect the changes you made to the config file. Logging on and off in the worst case will restart it.
You’re learning a new workflow, it’s gonna take a second. Don’t get discouraged, you’re just fighting habits from your old work flow, it’ll be buttery smooth once you’ve built new habits.
That out of the way, you need to learn your hotkeys. Super+enter is gonna get you into a terminal by default, from there you want to get into your configs (check out /etc if it’s not in .config yet) to find your Sway config. That little dude is your best friend now, it’s your Options window from a desktop environment.
I haven’t double checked your account, but I assume you’re the tiling/floating poster from the other day? In which case I would suggest doing some research into class and appid filters within the config, this is how you’re going to define windows to automatically float AFAIK
To open an app launcher press Win+D, then type the name of a program you want to launch and press enter. Boom, you’re using Sway. Here are the default key bindings: https://wiki.garudalinux.org/en/sway-cheatsheet
The first thing to do when you start using
sway
is to copy the configuration file, which is normally in/etc/sway/config
, into your home directory.mkdir ~/.config/sway copy /etc/sway/config ~/.config/sway/
It has some basic settings already set, but you’ll probably want to change some of them later.
The basic keybind for running a terminal emulator, which by default is
foot
, is Super+Enter (Super is the name for what is otherwise called the Windows key or the Command key, depending on your keyboard).Super+D starts the launcher app (
wmenu-run
by default).If you want to change them to something else (i use
fuzzel
as the launcher), change the variables at the top of the config file and press Super+Shift+C to makesway
reload it.Super+Shift+E is used to exit the session.
As for the top bar that says “1”, it displays a list of your workspaces. You can switch between workspaces by pressing Super + the number of that workspace, or move the current window to a new workspace by pressing Super + Shift + number. You can also click on the workspace’s label in the bar to move to it, or use the mouse wheel to go to the next/previous one.
The timer at the top right is
sway
’s status bar. By default it shows only the current time, but it’s compatible with thei3bar
protocol and can show a variety of statuses. Programs likei3blocks
,i3status
orswayrbar
can be set up to display a variety of data in the status bar, or even to create widgets that respond to clicks.As already suggested, take a look at i3 Window Manager’s docs: https://i3wm.org/docs/userguide.html because Sway (works on Wayland) is a port of i3 (works on X11).
This is the way. It may have a steep learning curve but the i3 docs cover everything you may need. There will be some different counterparts on Wayland though.
I think this wiki cheetsheet will explain some of the defaults. Pretty much everything is controlled with a keybind using the meta/super (windows) key.
Mod + d
should open the launcher, I only used dmenu but yours might be something else. The launcher will let you launch applications by name. If you just want a terminal,Mod + Enter
will open one.You will want to look at your config. It should live in
~/.config/sway/config
. If it’s not there thenmkdir ~/.config/sway/ && cp /etc/sway/config ~/.config/sway/
. That should list the keybinds you have set. You can look up the options in the man page for sway.Once you can do some basic window control, you might want to customise the status bar. The config should tell you what bar is being used, but there are a huge array of statusbars to choose from - I used i3status-rust but try searching for i3/sway statusbars to see what’s out there.
For a more user friendly tiling desktop environment, you should have a look at COSMIC. It is still im alpha, but I use it as a daily driver…
It looks really good but I wonder if it is as efficient as niri or paperwm https://blog.system76.com/post/cosmic-de-tiling-redesign-and-libcosmic-rebasing
Check out any results for i3 wm use, they’re quite interchangeable.
Second advice is to check config examples and change or identify your meta key (I think default is ctrl, but I like alt).
Within the config file you can see many key combos for using Sway, but if you find new terminal, launcher, and workspace navigation (that’s your 1) you should be off to the races.
I think the above would be shift-meta-return, meta-D, and shift-meta-1,2 (to move a window to a workspace) and meta-1,2,3 (to go to a workspace). But I’m just on my phone and my memory gets mixed up because I have more memory from scrotwm/spectrwm and I might be mixing things up.
The sway man pages are really helpful. I prefer waybar and bemenu to round out my core environment tools.
Check out cosmic