Sway一些有用的扩展

这里列出了一些关于swaywm(或者其他基于wlroots的窗口管理器)的有用的脚本和软件。

注意,几乎所有的GTK和KDE应用程序,如firefox、thunderbird、chromium,甚至emacs(带有puregtk/emacs-28分支)都可以作为本地wayland在sway下运行,所以它们不在这里专门列出。

[WIP] = 工作进行中或alpha状态

登录管理器

:警告: 注意: developers.Sway开发人员并不正式支持登录管理器

  • greetd - 一个轻巧且灵活的登录管理器守护程序
    • gtkgreet - 一个基于GTK的轻巧的登录管理器
    • qtgreet - 一个花哨的基于qt的登录管理器
    • tuigreet - 一个简单的图形控制台登录管理器
    • wlgreet - wayland登录管理器
  • 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

开发

  • 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

分发

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
Last modified 25/10/2022