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
cageWayland kiosk that runs a single, maximized application
drm_infoSmall utility to dump info about DRM devices
dunstLightweight and customizable notification daemon
ewwWidget system made in Rust to create widgets for any WM
footFast, 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-shellLibrary to create panels and other desktop components for Wayland using the Layer Shell protocol
i3status-rustVery resource-friendly and feature-rich replacement for i3status
imvCommand line image viewer for tiling window managers
kanshiDynamic display configuration tool
lavalauncherSimple launcher panel for Wayland desktops
libvncserver_masterVNC server library
makoLightweight Wayland notification daemon
neatvncVNC server library
new-wayland-protocolsWayland protocol extensions
obs-wlrobsObs-studio plugin that allows you to screen capture on wlroots based wayland compositors
rootbarBar for Wayland WMs
salutA sleek notification daemon
shotmanUncompromising screenshot GUI for Wayland compositors
sirulaSimple app launcher for wayland written in rust
slurpSelect a region in a Wayland compositor
sway-unwrappedI3-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
waypipeNetwork proxy for Wayland clients (applications)
waypromptmulti-purpose prompt tool for Wayland
wayvncVNC server for wlroots based Wayland compositors
wbgWallpaper application for Wayland compositors
wdisplaysGraphical 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-gammarelay-rsA simple program that provides DBus interface to control display temperature and brightness under wayland without flickering
wlayGraphical output management for Wayland
wldashWayland launcher/dashboard
wlogoutWayland based logout menu
wlr-randrXrandr clone for wlroots compositors
wlrootsModular Wayland compositor library
wlsunsetDay/night gamma adjustments for Wayland
wlvnccA Wayland Native VNC Client
wobLightweight overlay bar for Wayland
wofiLauncher/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