SWOv git · main
SWOv - window overview for sway
C 91.5% Markdown 7.6%git clone https://git.christianimmanuel.de/sway/SWOv.gitwget https://git.christianimmanuel.de/sway/SWOv/archive/SWOv.tar.gzconfig.example raw
# swov — example configuration
#
# Copy to ${XDG_CONFIG_HOME:-~/.config}/swov/config and edit.
# Every value below is the built-in default, so an empty file behaves the same.
# Single settings can also be overridden on the command line:
# swov ui_scale=1.2 ssaa=1 (or --ui_scale=1.2, or -s ui_scale=1.2)
# --- rendering ---
ssaa=2 # full-scene supersampling 1..4 (smooths edges *and* text)
# alias: aa. automatically reduced on very large screens
icons=1 # show .desktop icons (PNG/SVG/XPM); 0 = text only
icon_px=40 # icon edge length; shrinks by itself on small cards
shadow=1 # drop shadows under tiles and floating windows
shadow_layers=3 # fewer layers = cheaper, harder edged
track=1 # remember how long each workspace is used, and which one
# you were on per monitor (that is what -b goes back to).
# swov performs every switch itself, so it stamps the time
# as it goes — no background process. 0 = do not record.
back=global # what -b goes back to:
# global = the workspace used last, anywhere. Step to the
# other monitor and -b brings you back to it
# output = the last one on the monitor you are on
# sway = sway's own back_and_forth
usage_dots=1 # dot scale down the left edge of a tile: how much that
# workspace is used, relative to the busiest one. Fills from
# the bottom. alias: usage_bar
dot_count=14 # how many dots the scale has; fewer are drawn if the tile
# is too short for them
dot_px=5 # dot diameter
cpu=1 # a dot scale down the right edge of a tile, mirroring the
cpu_idle=0.01 # usage dots on the left. In cores: 1.0 is one core kept
cpu_min=0.25 # busy, and four fills the scale. Anything alive but under
cpu_full=4 # cpu_min gets one faint dot. swbr measures it and
# leaves it in $XDG_RUNTIME_DIR/swbr-cpu; without swbr
# running there is nothing to show and nothing is drawn
drop_ghosts=1 # --backdrop only: while an app is dragged over the
# overview, offer the free workspace numbers as extra
# tiles, the same as dragging a window inside swov. 0 =
# keep the grid at full size, and no new workspaces from
# a swas drag
outputs_map=1 # with a second screen: a map of the monitors, bottom left,
# in their real arrangement. Click one to look at its
# workspaces. It keeps that place to itself, so it is
# always in the same spot
outputs_map_w=0.18 # how wide, as a share of the tile area
tab=recent # what tab walks: recent = the apps you used last, in that
# order (needs swbr running, which is what keeps the
# order). workspace = previous/next workspace
launcher=swas --replace overview=1
# what `d` opens. swas draws its own backdrop, so swov
# steps aside rather than stacking two overlays
ws_slots=1-10 # the default. These numbers always have a tile, whether sway has the
# workspace yet or not — so the grid is the same shape
# every time you open it. While dragging it reaches one
# further either side, which is how you get to 0 and 11.
# 0 = only the workspaces that exist
all_outputs=1 # every screen's workspaces, not just this one's, with the
# output name in the title. ws_slots already brings them
# in, so this is only about the labels
show_pid=1 # the process id, top right corner of every card
ghost_click=1 # clicking an empty number goes there, and sway makes the
# workspace on the way. 0 = drop target only
rename_icon=1 # a small pencil at the right of each header renames the
# workspace. 0 = no pencil; the middle of the name renames,
# which is easy to hit by accident when grabbing a header
focus_self=1 # ask sway for the keyboard once the window is up. An
# overlay that is not focused does nothing: every key goes
# to whatever is underneath it
snap_ms=1000 # dragging a floating window: hold it still over another
# this long and it snaps into the layout beside it. Moving
# starts the wait again. Without the hold it just moves to
# that workspace, still floating.
# 0 = tile as soon as it is over a window
over_fullscreen=1 # a fullscreen window is above anything a normal window
# can reach, so swov takes it off fullscreen while it is
# open and puts it back on the way out. 0 = open behind it
drop_outputs=1 # while dragging, the other screens' workspaces show up
# alongside this one's, marked with their output name, so
# they can be dropped on directly
map_dwell_ms=0 # dragging anything: hold it over another monitor
# this long and the overview steps onto that screen. The
# plate fills as you hold; moving at all starts the wait
# again. 0 = off
# output=DP-1 # start on that screen instead of the one sway is on
blur=2 # --backdrop only: how soft the overview is drawn while
# something else has the foreground. 0 = off, 3 = softest.
# It sharpens by itself while an app is being dragged over
# it, so you can read the workspace you are aiming at
anim_ms=160 # how long tiles take to glide when the ghost slots come
# and go, in and out. 0 turns the animation off
vsync=1
# --- text ---
ui_scale=1.0 # master text size. 1.3 = bigger, 0.85 = smaller
# aliases: font_scale, text_scale
ws_px=26 # workspace number in the tile header (all four are
label_px=16 # application name on a window card multiplied by
title_px=13 # window title, the long text ui_scale, so
hint_px=14 # header line and the key hints tweak one or all)
# By default swayov uses the desktop font (via fontconfig).
# Set a family name or a .ttf path to override:
# font=Inter
# font=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf
# font_bold=Inter Semibold # defaults to the bold cut of `font`
# --- layout ---
cols=0 # 0 = pick the grid that gives the largest tiles
rows=0 # set e.g. rows=2 if your workspaces are really 2 rows
margin=26 # space around the whole grid
gap=14 # space between tiles
pad=10 # padding inside a tile
win_gap=5 # space between two windows inside a workspace
screen_pad=6 # border kept free between the mini screen and the windows
badge_top=7 # space above the workspace number in a tile corner
float_alpha=0.62 # how solid a floating or fullscreen window is drawn. It is
# further reduced the more of the workspace it covers, so a
# fullscreen window stays a frame you can see through.
# 1.0 = as solid as a tiled window
radius=14 # corner radius
border=3 # tile border thickness
show_empty=1 # keep empty workspaces in the grid (keeps numbering stable)
start_selection=workspace
# what is selected when swov opens:
# workspace = the visible workspace, no window (default)
# none = nothing at all
# window = the first window of the visible workspace
all_outputs=0 # 1 = show every monitor, not just the focused one
show_header=1 # the "DP-1 16 windows on 9 workspaces" line
show_hints=1 # the key hints
header_pos=top-right
hints_pos=bottom-center
# none | top-left | top-center | top-right |
# bottom-left | bottom-center | bottom-right
# when both share a band the hints step aside and, if it
# is still tight, get shortened with an ellipsis
quit_on_focus_loss=1
quit_after_action=0 # 1 = close the overlay after moving windows with 0-9
# --- colors: #rrggbb or #rrggbbaa ---
# bg alpha < ff => transparent overlay (needs a compositor, sway qualifies)
bg=0d1117cc # dims everything behind the overlay, so the workspace you
# are actually on stops competing for attention.
# 0d111700 = fully transparent, 0d1117ff = opaque
tile=1e2733f2 # workspace tile alias: ring
tile_sel=26313ff2 # selected workspace tile alias: ring2
tile_hover=2b3644f2
mini_bg=11171f9e # the inset "screen" inside a tile alias: center
card=33404ff7 # window card
card_hover=46566af7 # the card the cursor is on (mouse or keyboard)
# alias: hover
card_focus=3b4a5bf7 # card of the window sway has focused
hl=cb9b00ff # the orange. Only ever the selection cursor and marks
text=e8e8e8ff # bright text
subtext=b3c0cdff # application names
dim=5a6b7aff # counters and window titles
hint=a7b5c4ff # the header line and the key hints
current=4fb3a5ff # the workspace sway is showing, and the focused window
match=b58ae0ff # windows found by the search ("s")
accent=89afc4ff # hover borders, filter box, tab groups
hltext=141414ff # text on an orange badge
urgent=e0533cff # urgent windows and workspaces
outline=0a0e1499 # thin outlines
shadow_color=00000073