Config files for Sway a tiling Wayland compositor & Niri a scrollable tiling Wayland compositor.
Currently, as I write this, I am a relatively new user of the Free Open-Source world and GNU/Linux. I started with Ubuntu 25.10 on a Desktop PC, then on a laptop from 2015-2016 with MX Linux. Since then, I have learned and understood many things, and I wanted to try a Wayland Window Managers (WM) like:
Sway/SwayFXNiriMangoWC- More...
This is a personal project, and I hope if anyone reads this, it will be useful and give you new ideas, like me when I looked up for many things. Thanks.
| Component | Purpose |
|---|---|
sway |
A tiling Wayland compositor |
swayidle |
Idle daemon |
swaybg |
Wallpaper utility for Wayland compositor |
swaync |
Notification daemon with a GTK gui for notifications and the control center. |
waybar |
Customizable Wayland bar |
greetd |
Login manager daemon |
gtkgreeter |
GTK based greeter for greetd |
gtklock |
Lock screen |
corrupter |
Image glitcher suitable for producing nice looking backgrounds |
cage |
A Wayland kiosk compositor use to start gtkgreeter |
wezterm/foot/alacritty |
Terminals (wezterm main, foot sway's default, alacritty niri's default) |
thunar |
File manager |
yazi |
TUI file manager |
wofi |
Launcher / more function coming soon |
nala |
Command line frontend for the APT package manager |
nwg-displays |
Output management utility for Wayland compositors |
nwg-look |
GTK3 settings editor for wlroots environments |
baobab |
Disk usage analyzer |
gdu/ncdu |
TUI disk usage analyzer |
gparted |
Partition editor |
lxpolkit |
PolicyKit authentication agent |
gammastep |
Set color temperature of display according to time of day |
pipewire |
Audio and video processing engine |
pavucontrol |
Based volume control tool |
helvum |
GTK patchbay for pipewire |
swappy |
A Wayland native snapshot and editor tool |
cliphist + wl-clipboard |
Clipboard history |
grim + slurp |
Screenshot tools |
gnome-text-editor |
Text editor |
loupe |
Image viewer |
mpv |
Video player |
brightnessctl |
Brightness controler |
tlp |
Optimize laptop battery life |
xdg-desktop-portal/-wlr/-gtk |
Wayland portals for sway |
nmtui |
TUI for controlling NetworkManager |
bluetoothctl |
Bluetooth Control Command Line Tool (rarely used, there are better opt) |
| Key Combo | Action |
|---|---|
Super + T |
Launch terminal (wezterm) |
Super + Q |
Close focused window |
Super + Space |
App launcher (wofi) |
Super + E |
Launch file manager (Thunar) |
Super + X |
Lock screen (gtklock) |
Super + Shift + R |
Reload Sway config |
Super + Shift + W |
Reload waybar |
Super + Shift + Q |
Exit Sway |
Super + arrows |
Move the focus in windows |
Super + H/J/K/L |
Move the focus in windows (vim style) |
Super + Shift + arrows |
Move the focus windows |
Super + Shift + H/J/K/L |
Move the focus windows (vim style) |
Super + Ctrl + arrows |
Resize window |
Super + Ctrl + H/J/K/L |
Resize window (vim style) |
Super + 1-9/0 |
Switch to workspace 1-10 |
Super + Shift + 1-9/0 |
Move focus windows to workspace 1-10 |
Super + B |
Split vertical |
Super + V |
Split horizontal |
Super + W |
Toggle split |
Super + F |
Fullscreen |
Super + Shift + Space |
Floating toggle |
Super + Alt + Space |
Focus between the tiling window and the floating window |
Super + Minus |
Move to scratchpad |
Super + Shift + Minus |
Scratchpad show |
Print |
Take full screenshot |
Super + Print |
Take screenshot of selected area |
Super + Shift + Print |
Take screenshot of focus window |
Ctrl + Print |
Take full screenshot and copy to clipboard |
Ctrl + Super + Print |
Take screenshot of selected area and copy to clipboard |
Ctrl + Alt + Print |
Take screenshot of focus window and copy to clipboard |
Super + Shift + S |
Open Swappy with the screenshot on the clipboard |
Hello there, this section is made to know what the most new feature added, implemented or modified in the dotfiles and in this repository ;]
I made a new section called "What's new", there you will find the most recent work and modification I have done. It is posible you will find a whole explanation of why I did it, how I did it and more, it will depend on what is the new feature.
Gtklock is a lockscreen based in gtkgreet the look is basically the same, is familiar, I didn't want it to have a really different looks and design between the greeter and the locker. I know there are some lighter or more customized options, such as swaylock, waylock, hyprlock, but in the end I decided on gtklock.
Gtklock use a .ini file, .css files, and also use a .xml file to have a layout, this feature is pretty interesting, basically you can have your lockscreen the way you want. I use a layout.xml that is just the design of gnome lockscreen. Why? well I have use Gnome DE and I liked it, so this feature was perfect to me, at least to try it.
The question now is: How did I do it? Luckily, someone had already done it and I found it when I was looking for a lockscreen, I copied the layout.xml and modified just a little.
The repo is https://github.com/tomdewildt/gnome-gtklock-theme/tree/master
I used the layout and style, and modified them to my liking. I created four .css files: two with light styling and two with dark styling, two of them use corrupter, and the other two are "defaults".
I will have to still do some specific 'features' with the default files, but that will be done later.
What is corrupter? https://github.com/r00tman/corrupter
corrupter is a Simple image glitcher suitable for producing nice looking i3lock backgrounds.
It is written in Go and as the name suggests it glitches the image, you provide a normal image (.png), then you have it glitched (.png).
I use it with gtklock using a background image that is glitch by corrupter, I did this with a script called corrupter-lockscreen, but before all of that I had to do a few things.
I had to install Go in my system. You can find many tutorial and also read Go documentation to do this.
Then I cloned corrupter's repository and followed the "Getting Started" section, from there, I could use corrupter without any "problem", except for just a little detail, every time I wanted to use it, I had to specify the path to the binary file. To solve this "problem" I used symbolics link.
ln -s ~/corrupter/corrupter ~/.local/bin/
After all, I could use corrupter without specifying the binary path, just by typing corrupter in the terminal worked. Then I made the bash script corrupter-lockscreen.
Basically what it does is:
- It takes a screenshot with grim in .png and saves it to the
/tmp/directory - Corrupter takes the screenshot and glitches the image
- We convert the glitched pic to grayscale and analyze whether is mostly light or dark
- Depending on the result mostly dark/light we use a specific .css file
- finally we called gtklock with the chosen style and delete the two screenshots
There are some changes I have done it, I 'migrated' or move on from ‘px’ to ‘em’ in the differents pills-like components.
Add an ‘.focused’ state in the workspaces to have better "quality life" and also in the custom-power component.
I changed the way of running scripts, correction I did the right scripts's use and exec.
I have some scripts for different purposes, but I was invoking and running them wrong, I was runnig them directly in the sway's config files, I was running them using the absolute path ~/.config/module/scripts/file.
What I should have done from the start is to use the ~/.local/bin/ directory, so I have some script files in each directory and I made a softlink from each file to ~/.local/bin/.
After all of that, I could use them easier and more comfortable than before, and also it is the right, clean, simple, modular and reusable practice.
- Config gtklock and add some keybind to lock screen
- Compile and use corrupter with gtklock
- Use swaync and config
- Check the gtk-modules (userinfo/powerbar/playerctl)
- Check some logout menus or add funcionality with wofi to use as a logout menu
- Make something to change background with wofi + swaybg and be more automatic
- Make something to have a history with cliphist + wofi
- Consider to add extra sections in the repo like 'What I learnt / Why I did this or use this / What's new'
I have many things to add and do like improving and add the missings things in this repo, also in my systems I have a greeter and lock screen, but it doesn't have a style just default and more missings tools, but step-by-step I will keep going, see you soon.
by now this is a secret ;]