SwAS git · main
SwAS - app switcher for sway (SVG/PNG icons, themeable)
C 97.5% Markdown 1.6%git clone https://git.christianimmanuel.de/sway/SwAS.gitwget https://git.christianimmanuel.de/sway/SwAS/archive/SwAS.tar.gzconfig.example raw
# swas config — ~/.config/swas/config
# One key=value per line. '#' starts a comment. Blank lines are ignored.
# Every key here also works on the command line (key=value or --key=value);
# command-line values win over the file. See `swas --help` for the full list.
# The values below are the built-in defaults, so this file changes nothing
# until you edit it.
# --- window ---
width=900
height=900
fullscreen=1 # cover the screen as a borderless overlay (0 = 900x900 window)
close_on_focus_loss=0 # 1 = quit when the window loses focus (dmenu-style)
# --- ring layout & paging ---
slots=11 # wide, easy-to-hit slots across the TOP arc
arc=240 # degrees of the ring used for apps (rest = paging zone)
radius=0.44 # wheel size, as a fraction of the shorter screen side
y_offset=0.10 # nudge the wheel down (apps sit up top, so this centers it)
page_ms=110 # base ms per paged step at the SLOW end. Bigger = calmer
# start. Paging eases in: slow where you enter the bottom
# zone, fast toward straight-down.
# --- rendering ---
ssaa=2 # full-scene supersampling 1..4 (smooths edges). alias: aa
animate=1 # subtle settle animation when the search results change
anim_ms=90 # its duration (0 or animate=0 to turn it off)
icons=1 # show .desktop icons if found (PNG/SVG/JPG/BMP)
icon_px=46 # icon size (before ui_scale)
# --- text ---
ui_scale=1.0 # master text size. 1.3 = bigger, 0.85 = smaller.
# aliases: font_scale, text_scale
label_px=24 # app labels on the wheel (all four are multiplied by
title_px=25 # selected app name (center) ui_scale, so tweak one or all)
search_px=20 # the text you type (search box)
count_px=20 # the "3 / 42" counter
# By default swas uses your desktop's configured font (via fontconfig).
# Set a .ttf path or a family name to override, e.g. font=JetBrains Mono
# font=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf
font_px=50 # glyph atlas height; the sharpness ceiling for big text
# --- dropping an app onto a workspace ---
# Drag an app out of the wheel and let go over a workspace: it starts there,
# and the wheel stays open. Needs swov on PATH — it supplies the workspace
# list and moves the window once it appears.
drop=1 # 0 = off, the wheel then only launches
drop_shrink=0.55 # how small the wheel goes while you drag
drop_size=132 # how wide the wheel is while you drag, in pixels. It is
# scaled, not redrawn, so it looks the same, just small.
# 0 = use drop_shrink as a fraction of the screen instead
drop_bg=0d1117d9 # a disc behind the wheel while it is small, so it does not
# get lost over the overview. Alpha 00 for none
drop_corner=center # where it sits while dragging: center, top-left,
# top-right, bottom-left, bottom-right. Letting go over the
# wheel cancels wherever it is
drop_ms=130 # how long that takes
drop_px=10 # movement before a press turns into a drag
drop_assign=1 # the app is assigned to its workspace before it opens, so
# sway puts it there as it maps. Set 0 if a toolkit comes
# out the wrong size: it then opens on the workspace you
# are on — where it can see the output and its scale — and
# is moved afterwards
drop_focus=0 # 1 = also switch to that workspace
drop_close_here=0 # the wheel stays open after every drop, so you can keep
# filling workspaces. 1 = close when you drop on the
# workspace you are on, where the app would otherwise
# open behind the wheel
overview=0 # 1 = draw swov behind the wheel and drop onto the real
# workspaces instead of the plain tiles. Needs sway rules:
# no_focus [app_id="swov-backdrop"]
# for_window [app_id="swov-backdrop"] floating enable, border none
overview_debug=0 # 1 = print the conversation with the backdrop to stderr
# swov=swov # the binary to ask (a path works too)
# --- launching / ordering ---
# swas logs every app you launch to the history file below and shows the
# most-recently-opened ones first. This is the default (center_first=1 # the app you used last sits at the top of the arc, and
# distance from the top is how long ago you used it: second
# to the right, third to the left, fourth to the right, and
# so on. Past the end of the history the rest carry on
# outwards in alphabetical order.
# 0 = fill the arc from the left, oldest layout
sort=recent).
sort=recent # recent = most-recently-opened first (DEFAULT) | alpha = A-Z
launcher=sh # sh = run Exec= ; gtk-launch = launch by desktop id
terminal=xterm # used for Terminal=true entries when launcher=sh
# history=~/.cache/swas/history # the opened-apps log (auto-created)
# which apps show / in what order (an id is the .desktop filename without
# the extension; run `swas --list` to see them):
# dirs=~/.local/share/applications:/usr/share/applications
# include=firefox,code,gimp # show ONLY these ids, in this exact order
# exclude=htop,xterm # hide these (matches id OR Name)
# --- colors: #rrggbb or #rrggbbaa ---
# bg alpha < ff => transparent window background (needs a compositor)
bg=0d111700
ring=1e2733f2
ring2=26313ff2
hl=cb9b00ff # highlighted slot
text=e8e8e8ff # normal slot text
hltext=141414ff # text on the highlighted slot
center=0d1117e6 # hub disc (keep some alpha so search text stays legible)
accent=89afc4ff # typed query text + active paging chevrons
dim=5a6b7aff # hints / counters / idle chevrons