这里列出了一些关于swaywm(或者其他基于wlroots的窗口管理器)的有用的脚本和软件。
注意,几乎所有的GTK和KDE应用程序,如firefox、thunderbird、chromium,甚至emacs(带有puregtk/emacs-28分支)都可以作为本地wayland在sway下运行,所以它们不在这里专门列出。
[WIP] = 工作进行中或alpha状态
登录管理器
:警告: 注意: developers.Sway开发人员并不正式支持登录管理器
- greetd - 一个轻巧且灵活的登录管理器守护程序
- emptty - 基于TTY的简单的要死的CLI显示管理器
- Ly - 一个轻量级的TUI(类ncurses)显示管理器
- autologin - 自动登录到配置的用户; perfect for computers with a single user and another method of startup authentication (like encrypted hard-drive)
APP启动器
如xfce4-appfinder和krunner类似的GTK或KDE通用启动程序可以正常运行,但下面这些更适合于Sway:
- kickoff - application launcher with a focus on performance and low latency
- lavalauncher - simple launcher for Wayland
- nwg-launchers - a set of launchers: application grid, dynamic menu, button bar
- Ulauncher - app launcher
- wldash - A dashboard/launcher/control-panel thing for Wayland
- yofi - minimalistic application launcher for wayland
- gmenu - Desktop application launcher
- mauncher - Mauncher is a GTK-based alternative to dmenu for Wayland which supports display scaling
- fuzzel - application launcher, similar to rofi’s drun mode
- term-dmenu - Replace dmenu with a floating terminal and FZF
- sirula - Simple app launcher for Wayland written in Rust
- wlaunchpad - Minimal mac-launchpad-alike for wlroots-based compositors
菜单
- wofi - A rofi inspired menu and launcher for wlroots compositors
- bemenu - dmenu replacement with Wayland support
- tofi - extremely fast rofi / dmenu replacement for wlroots compositors
- wlogout - A wayland based logout menu wlogout
- wayland fork of rofi - fork of Rofi with added support for Wayland
- dmenu-wl - an efficient dynamic menu for wayland (wlroots).
- sway-launcher-desktop - a TUI-based launcher menu made with bash and the amazing fzf
- sway-menu - menu generated from bindsym for learning sway keystrokes and remembering obscure ones
- wlogoutbar - Minimal logout menu for wlroots-based compositors
- sway-fzfify - a series of scripts which FZFify your sway desktop.
- waylogout - a graphical logout/suspend/reboot/shutdown dialog inspired by oblogout and based on code from swaylock-effects.
显示/输出
- wob - A lightweight overlay volume/backlight/progress/anything bar for Wayland.
- mywob - autostarts wob(1)
- wdisplays - GUI display configurator for wlroots compositors [like arandr(1)] (Mirror since the upstream has been deleted)
- wlr-randr - manage outputs of a Wayland compositor.
- wlay - Graphical output management for Wayland
- kanshi - define output profiles that are automatically enabled and disabled on hotplug. eg, this can be used to turn a laptop’s internal screen off when docked.
- persway - a simple sway ipc daemon
- fade - Have new windows fade in gradually. This script is alpha (get it;)) at best, you may encounter issues.
- way-displays - Manage Your Wayland Displays
- nwg-displays - Output management utility for sway Wayland compositor, inspired by wdisplays and wlay.
图片浏览
- imv - imv is a command line image viewer intended for use with tiling window managers.
- mvi - A command line image viewer utilizing mpv
- ucollage - An extensible command line image viewer inspired by vim.
- swayimg - image viewer for Sway/Wayland
- vimiv - An image viewer with vim-like keybindings.
视频播放
- mpv - Command line video player
通知
- mako - A lightweight notification daemon for Wayland.
- fnott - Keyboard driven and lightweight Wayland notification daemon
- dunst - a highly configurable and lightweight notification daemon.
- wayherb - Wayland notifcation port of herbe - daemon-less notifications without D-Bus. Minimal and lightweight.
- swaync - A simple notification daemon with a notification center built with GTK
- salut - Animated mouse centric notification daemon
工作区
- workstyle - dynamically rename your workspaces to indicate which programs are running in each one.
- sworkstyle - The main difference between this and workstyle is that this supports exact app names instead of only generic titles.
- wsdnames.py - automatically renames workspace title
- swaysome - manage workspaces namespaced on a per-screen basis, like awesome wm.
Overview
- sov - Similar to i3-overview: An overlay that shows schemas for all workspaces to make navigation in sway easier.
布局
- autotiling - switch the layout splith/splitv depending on the currently focused window dimensions.
- swaymonad - an auto-tiler that implements Xmonad-like layouts.
截图
- grim - grab images from a Wayland compositor
- grimshot - script to grab screenshots
- slurp - select a region in a Wayland compositor
- screenshot-bash - screenshot - upload - copy-url pipeline
- snag - snag screenshots and screencasts with Rofi
- swappy - screen snapshot & editor
- swayshot - Print screen helper for sway adds keyboard shortcuts for screenshots
- shotman - simple UI for handling screenshots.
- taiga - an animated screenshot program
- wayshot - A native screenshot tool for wlroots based compositors such as sway and river written in Rust.
- flameshot - Powerful yet simple to use screenshot software
亮度调解
- brightnessctl - control device brightness
- light - control backlights
- clight - a C user daemon utility that aims to fully manage your display (And a GUI for it clight-gui )
- wluma - automatically adjusts screen brightness based on the screen contents and amount of ambient light around you
- wluma-als-emulator - a fake ambient light sensor for those who don’t get one built in their laptop
- brillo - controls the brightness of backlight and LED devices on Linux.
- wlr-brightness - adjust the brightness of your screen
- wl-gammarelay - a daemon with D-Bus interface to control display color temperature and brightness
- wl-gammarelay-rs - a daemon with D-Bus interface to control display color temperature and brightness written in Rust
Gamma
- wl-gammactl - Small GTK GUI application to set contrast, brightness and gamma
- gammastep - Adjust the color temperature of your screen
- wlsunset - Day/night gamma adjustments for Wayland
- wl-gammarelay - a daemon with D-Bus interface to control display color temperature and brightness
- wl-gammarelay-rs - a daemon with D-Bus interface to control display color temperature and brightness written in Rust
Colorscheme
- darkman framework for dark-mode and light-mode transitions, implementing org.freedesktop.appearance.color-scheme
壁纸
- swaybg - Wallpaper tool
- azote - Wallpaper and colour manager for Sway, i3 and some other WMs
- wallutils - wallpaper manager
- glpaper - wallpaper program that allows you to render glsl shaders as your wallpaper
- mpvpaper - wallpaper program that allows you to play videos with mpv as your wallpaper
- qt-video-wlr - Qt5 video player
- oguri - A very nice animated wallpaper daemon
- sunpaper - a linux utility to change wallpaper based on local sunrise and sunset times.
- wpaperd - Wallpaper daemon for Wayland that can change the wallpaper after a fixed time.
- swww - A Solution to your Wayland Wallpaper Woes.
Bars & panels
- swaybar - default bar for sway
- waybar - Highly customizable Wayland bar for Sway
- yambar - is a lightweight and configurable status panel
- rootbar - a bar for wlroots based wayland compositors such as sway
- rwaybar - a bar with configurable widgets and transparent overlay support
- wapanel - Simple panel for Wayland with decent XFCE-like applets
- sfwbar - Sway Floating Window Bar is a taskbar for Sway, focused on a stacking layout workflow
- nwg-shell - a ‘shell’ for wl-roots including various other nwg-* components listed here
- nwg-panel - GTK-based panel, inspired by Waybar and tint2
- nwg-dock - Fully configurable dock featuring pinned buttons, task buttons, the workspace switcher and the launcher button.
- nwg-menu - Menu for nwg-shell
- nwg-drawer - a launcher for nwg-shell
- nwg-bar - a simple button bar for nwg-shell
- nwg-wrapper - display text or images on any layer (eg root)
Bar content generators
- swayrbar - swayrbar is a status command for sway’s swaybar implementing the swaybar-protocol
- i3status - Status bar generator for i3bar, dzen2, xmobar or similar programs
- i3blocks - A feed generator for text based status bars (yes, it works fine with swaybar!)
- luastatus - Universal status bar content generator
- i3status-rs - a feature-rich and resource-friendly replacement for i3status, written in pure Rust. It provides a way to display “blocks” of system information (time, battery status, volume, etc) on the i3 bar. It is also compatible with sway.
- gopsuinfo - prints system usage information as text for Waybar custom modules or icon/text for nwg-panel executors
组件
- Gsimplecal - a lightweight calendar applet written in C++ using GTK.
- wlclock - a digital analog clock for Wayland desktops.
- wlr-sunclock - a desktop widget to show to the sun’s shadows on earth.
键盘/输入
- wev - event debugging similar to xev for X11
- wshowkeys - display keypresses (fork with fixes for recent wlroots versions, original here)
- ydotool - Generic command-line automation tool (no X!) [like xdotool(1)]
- myautotype - Hot-keys using ydotool possibly looking up a key-value pair from ~/.config/myautotype
- wtype - xdotool type for wayland
- clipman - A basic clipboard manager for Wayland, with support for persisting copy buffers after an application exits.
- copyq - full function clipboard manager (but requires the full KDE/Qt stack)
- cliphist - clipboard history “manager” for wayland (including images) - requires golang-1.16 to build
- wl-clipboard - Wayland clipboard utilities, wl-copy and wl-paste, to copy data between the clipboard and Unix pipes, sockets, files etc
- wl-clipboard-history - Wayland clipboard history tracker
- clipmon - preserves the clipboard and notifies when an application pastes (for security)
- swaykbdd - per-window keyboard layout for Sway
- i3keys - lists all the keys that are bound to some action in i3 or sway
- swaynagmode - programmatic control over swaynag, intended for use with keyboard bindings
- sway-alttab - simple daemon that keeps track of your last focused window and switches to it on receiving a SIGUSR1. Automatically binds Alt-Tab to the same action.
- wlrctl - command line utility for miscellaneous wlroots Wayland extensions (similar to xdotool). WARNING: requires sway-1.6+
- waynergy - [WIP] implementation of a synergy client for wlroots compositors
- swayr - A urgent-first/LRU window and workspace switcher usable with launcher/menu programs such as wofi.
- wl-clip-persist - Keep Wayland clipboard even after programs close
输入法引擎
- kime - [WIP] Korean IME
- wlanthy - [WIP] simple Wayland-native Japanese input method. Born as a modification of wlhangul.
- amthywl - [WIP] Japanese input method for sway
- wlhangul - [WIP] A Hangul input method for Wayland.
- wlpinyin - [WIP] experimental minimal wayland IME for Chinese
- wlchewing - [WIP] Wayland Chinese zhuyin input method with libchewing
On-screen快捷键
- squeekboard - Librem5 keyboard
- wvkbd - On-screen keyboard for wlroots that sucks less
锁屏
- swayidle - An idle daemon for wayland compositors
- swaylock - a screen locking utility for Wayland compositors
- Waylock - a simple screenlocker for wayland compositors.
- swaylock-effects - a fork of swaylock which adds built-in screenshots and image manipulation effects like blurring
- mylock - configure swaylock for various use-cases - safe, at-home, movie modes plus auto downloading of images
终端
- Alacritty - A fast, cross-platform, OpenGL terminal emulator
- foot - A fast, lightweight and minimalistic Wayland terminal emulator
- gnome-terminal - gnome’s terminal
- kitty - fast, featureful, GPU based terminal emulator
- Konsole - KDE’s Terminal Emulator
- sakura - Simple but powerful libvte based terminal emulator
- roxterm - terminal emulator intended to provide similar features to gnome-terminal, based on the same VTE library
- wezterm - GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
- Ate - Awesome terminal emulator
- Germinal - Minimalist vte-based terminal emulator
- Havoc - A minimal terminal emulator for Wayland
- wterm - An st fork for wayland
VNC/RDP/SPICE
- wayvnc - VNC server for wlroots
- wlvncc - Wayland VNC Client (WIP)
- connections - Wayland VNC/RDP client - not quite feature complete in released version 3.38 eg no full-screen, buggy config GUI. 3.40 may fix that when released.
- remotely - wayland VNC client - abandoned by author in favour of connections.
- vncviewer - VNC client - fast, full featured, stable - but uses XWayland.
- vinagre - Wayland VNC/RDP client. VNC support is rather slow.
- remmina - Wayland VNC/RDP/SPICE client. VNC support is rather slow.
- krdc - Wayland VNC/RDP client. AVOID - does not support sway workspaces and took my session down!! Version 20.08.1
- freerdp - Wayland RDP client (wlfreerdp) which is pretty fast (but needs the -grab-keyboard option to work with sway). Also xfreerdp, a fast XWayland RDP client. Tested against xrdp X11 server. Is there a ‘wayrdp’ server out there?
远程/录制
See also: Screencast-Compatibility
- waypipe - waypipe is a proxy for Wayland[0] clients. This makes application forwarding similar to ssh -X [1] feasible.
- wf-recorder - Screen recorder for wlroots-based compositors eg swaywm
- cute-sway-recorder - Screen recorder for wlroots-based window managers, mainly Sway (a graphical Qt wrapper for wf-recorder)
- obs-studio - capturing, compositing, encoding, recording, and streaming video content, efficiently (see wlrobs)
- wlrobs - obs-studio plugin that allows you to screen capture on wlroots based wayland compositors
- obs-gnome-screencast - Small source plugin to use GNOME Screen Cast functionality as a source for OBS Studio
- green-recorder - simple desktop recorder for Linux systems
- txproto - A fully scriptable and flexible multimedia streaming/handling program.
- wdomirror - Create a mirror of an output with as little overhead as possible, aspect ratio is not preserved
- wl-mirror - a simple Wayland output mirror client with more useful features.
- ssr-wlroots - A version of SimpleScreenRecorder with support for wlroots-based compositors (more specifically, those that support wlr-screencopy-v1 and xdg-output). Doesn’t support recording area selection and has issues with multiple screens.
- kooha - Capture your screen in a straightforward and painless way without distractions.
Misc. Scripts
- sway-fit-floats - fits floating windows into workspace
- sway-focus - focus an app by name (sway app_id or X11 class)
- sway-prep-xwayland - prepare for Xwayland
- sway-prop - show apps properties (similar to xprop)
- sway-run-or-raise - focus an existing app or run it otherwise
- sway-select-window - use bemenu/rofi/wofi to go to a running app
- sway-start - startup sway from the console
- sway-track-firefox - watch firefox (and other apps) and bind Shift-Ins to paste PRIMARY selection
- sway-track-prev-focus - mark container with _prev for rapid switching between apps
- nmcli-rofi - Wofi script to select wifi and VPNs with nmcli
- sway-fit-floats - manage floaters - fit in w/s; send/bring all to scratchpad; unfloat all (ie tile them)
- sway-new-workspace - create bindings for opening a new workspace, or moving windows to a new workspace
- swaycons - display window icons with font icons
开发
- gtk-layer-shell - A library to write GTK applications that use Layer Shell.
- client toolkit - A toolkit for writing Wayland clients in Rust
- swc - A library for making a simple Wayland compositor
- wlroots - Pluggable, composable, unopinionated modules for building a Wayland compositor
源
- https://www.reddit.com/r/swaywm/
- https://arewewaylandyet.com/
- https://github.com/swaywm/sway/wiki/i3-Migration-Guide
- https://github.com/ammgws/letssway
- https://wiki.archlinux.org/index.php/Sway
- https://gitlab.freedesktop.org/wlroots/wlr-protocols/-/wikis/home
- https://github.com/natpen/awesome-wayland
分发
If you have improvements, please post to r/swaywm
Criteria for inclusion (tentative):
- it’s on one of the source lists
- it’s mentioned on /r/swaywm
- it’s open source ie unencumbered by a restricted licence
- it runs on Linux or BSD
- it adds something to the Sway experience