Home

Awesome

nixpkgs-wayland

Build Update Advance

overview

Automated, pre-built, (potentially) pre-release packages for Wayland (sway/wlroots) tools for NixOS (nixos-unstable channel).

These packages are auto-updated to the latest version available from their upstream source control. This means this overlay and package set will often contain unreleased versions.

Community chat is on Matrix: #nixpkgs-wayland:matrix.org. We are not on Libera.

Started by: @colemickens and co-maintained by @Artturin (🙏).

<!-- TOC --> <!-- /TOC -->

Usage

Binary Cache

The Cachix landing page for nixpkgs-wayland shows how to utilize the binary cache.

Packages from this overlay are regularly built against nixos-unstable and pushed to this cache.

Continuous Integration

We have multiple CI jobs:

  1. Update - this tries to advance nixpkgs and upgrade all packages. If it can successfully build them, the updates are push to master.
  2. Advance - this tries to advance nixpkgs without touching the packages. This can help show when nixpkgs upgrades via nixos-unstable has advanced into a state where we are broken building against it.
  3. Build - this just proves that master was working against nixos-unstable at the point in time captured by whatever is in flake.lock on master.

We don't have CI on Pull Requests, but I keep an eye on it after merging external contributions.

Flake Usage

Install for NixOS (non-flakes, manual import)

If you are not using Flakes, then consult the NixOS Wiki page on Overlays. Also, you can expand this section for a more literal, direct example. If you do pin, use a tool like niv to do the pinning so that you don't forget and wind up stuck on an old version.

<details>
{ config, lib, pkgs, ... }:
let
  rev = "master"; # 'rev' could be a git rev, to pin the overlay.
  url = "https://github.com/nix-community/nixpkgs-wayland/archive/${rev}.tar.gz";
  waylandOverlay = (import "${builtins.fetchTarball url}/overlay.nix");
in
  {
    nixpkgs.overlays = [ waylandOverlay ];
    environment.systemPackages = with pkgs; [ wayvnc ];
    # ...
  }

You could write that to a file ./wayland.nix next to your configuration.nix and then use it like so:

{ config, lib, pkgs, ... }:
  {
    # ...
    imports = [
      # ...
      ./wayland.nix
    ];
  }
</details>

Install for non-NixOS users

Non-NixOS users have many options, but here are two explicitly:

  1. Activate flakes mode, then just run them outright like the first example in this README.

  2. See the following details block for an example of how to add nixpkgs-wayland as a user-level overlay and then install a package with nix-env.

<details>
  1. There are two ways to activate an overlay for just your user:

    1. Add a new entry in ``~/.config/nixpkgs/overlays.nix`:
    let
      url = "https://github.com/nix-community/nixpkgs-wayland/archive/master.tar.gz";
    in
    [
      (import "${builtins.fetchTarball url}/overlay.nix")
    ]
    
    1. Add a new file under a dir, ~/.config/nixpkgs/overlays/nixpkgs-wayland.nix:
    let
      url = "https://github.com/nix-community/nixpkgs-wayland/archive/master.tar.gz";
    in
      (import "${builtins.fetchTarball url}/overlay.nix")
    

Note, this method does not pin nixpkgs-wayland. That's left to the reader. (Just use flakes...)

  1. Then, nix-env will have access to the packages:
nix-env -iA neatvnc
</details>

Packages

<!--pkgs-start-->
PackageDescription
amlAnother main loop
cageA Wayland kiosk that runs a single, maximized application
drm_infoSmall utility to dump info about DRM devices
dunstLightweight and customizable notification daemon
ewwElKowars wacky widgets
eww-waylandElKowars wacky widgets
footA fast, lightweight and minimalistic Wayland terminal emulator
freerdp3A Remote Desktop Protocol Client
gebaar-libinputGebaar, A Super Simple WM Independent Touchpad Gesture Daemon for libinput
glpaperWallpaper program for wlroots based Wayland compositors such as sway that allows you to render glsl shaders as your wallpaper
grimGrab images from a Wayland compositor
gtk-layer-shellA library to create panels and other desktop components for Wayland using the Layer Shell protocol
i3status-rustVery resource-friendly and feature-rich replacement for i3status
imvA command line image viewer for tiling window managers
kanshiDynamic display configuration tool
lavalauncherA simple launcher panel for Wayland desktops
libvncserver_masterVNC server library
makoA lightweight Wayland notification daemon
neatvncA VNC server library
new-wayland-protocolsWayland protocol extensions
obs-wlrobsAn obs-studio plugin that allows you to screen capture on wlroots based wayland compositors
rootbarA bar for Wayland WMs
salutA sleek notification daemon
shotmanThe uncompromising screenshot GUI for Wayland compositors
sirulaSimple app launcher for wayland written in rust
slurpSelect a region in a Wayland compositor
sway-unwrappedAn i3-compatible tiling Wayland compositor
swaybgWallpaper tool for Wayland compositors
swayidleIdle management daemon for Wayland
swaylockScreen locker for Wayland
swaylock-effectsScreen locker for Wayland
swwwEfficient animated wallpaper daemon for wayland, controlled at runtime
waybarHighly customizable Wayland bar for Sway and Wlroots based compositors
waypipeA network proxy for Wayland clients (applications)
waypromptmulti-purpose prompt tool for Wayland
wayvncA VNC server for wlroots based Wayland compositors
wbgWallpaper application for Wayland compositors
wdisplaysA graphical application for configuring displays in Wayland compositors
wevWayland event viewer
wf-recorderUtility program for screen recording of wlroots-based compositors
wl-clipboardCommand-line copy/paste utilities for Wayland
wl-gammactlContrast, brightness, and gamma adjustments for Wayland
wl-gammarelay-rsA simple program that provides DBus interface to control display temperature and brightness under wayland without flickering
wl-screenrecHigh performance wlroots screen recording, featuring hardware encoding
wlayGraphical output management for Wayland
wldashWayland launcher/dashboard
wlogoutA wayland based logout menu
wlr-randrAn xrandr clone for wlroots compositors
wlrootsA modular Wayland compositor library
wlsunsetDay/night gamma adjustments for Wayland
wlvnccA Wayland Native VNC Client
wobA lightweight overlay bar for Wayland
wofiA launcher/menu program for wlroots based wayland compositors such as sway
wshowkeysDisplays keys being pressed on a Wayland session
wtypexdotool type for wayland
xdg-desktop-portal-wlrxdg-desktop-portal backend for wlroots
<!--pkgs-end--> </details>

Tips

General

sway

Nvidia Users

Development Guide

If for some reason the overlay isn't progressing and you want to help, just clone the repo, run nix develop -c ./main.nu update