Crates.io | swaycons |
lib.rs | swaycons |
version | 0.3.1 |
source | src |
created_at | 2022-01-18 03:52:37.927475 |
updated_at | 2023-11-29 16:54:25.349546 |
description | swaycons adds nerd font icons to sway window titles |
homepage | |
repository | https://github.com/actuallyallie/swaycons |
max_upload_size | |
id | 515944 |
size | 177,156 |
Window Icons in Sway with Nerd Fonts!
for_window [title="firefox"] title_format {icon} %title
type configs once. That makes it less than ideal for icons in many cases.Go from
to
font pango:FuraCode Nerd Font 11
cargo install swaycons
run swaycons
recommend adding something like exec swaycons
to sway config
swaycons must be restarted after config changes
~/.config/swaycons/config.toml
, but it will look for swaycons/config.toml
in whatever your configured XDG config folder is.app_id
or class
I recommend running swaymsg -t get_tree | less
and using /
to search for the app you're looking for
# global section. all windows will default to these settings
[global]
color = "#FFFFFF" # this must be a valid color
focused_color = "#FFFFFF" # to disable a focused_color set this to ""
icon = "" # to disable a default icon just set this to ""
size = "14pt" # must be a valid pango size value
separator = " " # anything between the icon and window title
# app_id section. This does an exact string comparison to the app_id or
# window_properties.class value reported in swaymsg -t get_tree for the window
# It will be app_id for wayland apps and window_properties.class for X11 apps
[app_id]
chromium = { icon = "", color = "#a1c2fa", size = "13pt" }
firefox = { icon = "", color = "#ff8817" }
foot = { icon = "" }
neovide = { icon = "", color = "#8fff6d" }
# This does a regex match on the window title. Matches from this section
# will take precedence over matches from the app_id section. A very basic
# algorithm is used to select the more exact regex if there are multiple
# matches. If 1 regex contains another it will choose the longer one. For
# instance mail\\.google\\.com and google\\.com/maps will be chosen over
# google\\.com
[title]
# escape . for an exact match. Normally . matches any character
"crates\\.io" = { icon = "", color = "#ffc933" }
"github\\.com" = { icon = "" }
"google\\.com" = { icon = "", color = "#4285f4" }
"google\\.com/maps" = { icon = "", color = "#4caf50" }
"mail\\.google\\.com" = { icon = "", color = "#ad1f1c" }
# use | for or
"sr\\.ht|sourcehut\\.org" = { icon = "" }
# can do an or around just a substring with (a|b)
"travis-ci\\.(com|org)" = { icon = "", color = "#cd324a" }
# The app_id setting means that this will only match if both the title matches
# the regex and the app_id or window_properties.class equals one of the values
# provided in the app_id array
# For example this allows a vim logo in the terminal but keeps a github logo
# when viewing a github page with vim in the repository name
vim = { app_id = ["foot", "Alacritty"], icon = "", color = "#8fff6d" }
This plugin is extremely useful when using sway tabs instead of browser tabs. To get this working properly with Firefox a few steps and plugins are necessary:
Open links in tabs instead of new windows