about summary refs log tree commit diff
path: root/overlays/patches/nixpkgs-wayland/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'overlays/patches/nixpkgs-wayland/README.md')
-rw-r--r--overlays/patches/nixpkgs-wayland/README.md167
1 files changed, 167 insertions, 0 deletions
diff --git a/overlays/patches/nixpkgs-wayland/README.md b/overlays/patches/nixpkgs-wayland/README.md
new file mode 100644
index 000000000000..486d613994f8
--- /dev/null
+++ b/overlays/patches/nixpkgs-wayland/README.md
@@ -0,0 +1,167 @@
+# flake-wayland-apps
+*nee nixpkgs-wayland*
+
+[![builds.sr.ht status](https://builds.sr.ht/~colemickens/nixpkgs-wayland.svg)](https://builds.sr.ht/~colemickens/nixpkgs-wayland?)
+
+- [flake-wayland-apps](#flake-wayland-apps)
+  - [Warning](#warning)
+  - [Overview](#overview)
+  - [Usage](#usage)
+      - [Flakes Usage](#flakes-usage)
+      - [Example Usage](#example-usage)
+  - [Packages](#packages)
+  - [Tips](#tips)
+      - [`sway`](#sway)
+      - [`obs-studio` + `wlrobs`](#obs-studio--wlrobs)
+  - [Development Guide](#development-guide)
+
+## Warning
+* This repo may be renamed soon. (~`nixos-wayland-apps`, maybe)
+  * `wayland-nix` (ala `sops-nix`)?
+  * `nixos-wayland` ?
+  * keep `nixpkgs-wayland`?
+* The primary cache server may change soon.
+
+## Overview
+
+Automated, pre-built packages for Wayland (sway/wlroots) tools for NixOS.
+
+There is also now flake support: `.#packages` contain a package list, `.#overlay` is the full set as an overlay.
+
+(related: [nixpkgs-chromium](https://github.com/colemickens/nixpkgs-chromium) - Chromium with native Wayland support)
+
+## Usage
+
+The [NixOS Wiki page on Overlays](https://nixos.wiki/wiki/Overlays)
+shows how to activate the overlay.
+
+The [Cachix landing page for `nixpkgs-wayland`](https://nixpkgs-wayland.cachix.org) shows how to utilize the binary cache. Packages from this overlay are regularly built against `nixos-unstable` and pushed to this cache.
+
+#### Flakes Usage
+
+```bash
+nix build "github:colemickens/nixpkgs-wayland#waybar" # builds waybar
+
+nix build "github:colemickens/nixpkgs-wayland" # builds all packages
+```
+
+#### Example Usage
+
+```nix
+{ config, lib, pkgs, ... }:
+let
+  rev = "master"; # could be a git rev, to pin the overlay (not usually recommended)
+  url = "https://github.com/colemickens/nixpkgs-wayland/archive/${rev}.tar.gz";
+  waylandOverlay = (import (builtins.fetchTarball url));
+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:
+```nix
+{ config, lib, pkgs, ... }:
+  {
+    # ...
+    imports = [
+      # ...
+      ./wayland.nix
+    ];
+  }
+```
+
+Or you can integrate those few lines into your own configuration.
+
+## Packages
+
+These packages were mostly recently built (and cached) against:
+<!--nixpkgs-->
+| Channel | Last Channel Commit Time |
+| ------- | ------------------------ |
+<!--nixpkgs-->
+
+<!--pkgs-->
+| Package | Last Updated (UTC) | Description |
+| ------- | ------------------ | ----------- |
+| [aml](https://github.com/any1/neatvnc) | 2020-07-26 14:57:11Z | liberally licensed VNC server library that's intended to be fast and neat |
+| [bspwc](https://git.sr.ht/~bl4ckb0ne/bspwc) | 2020-01-18 03:54:38Z (pinned) | Binary space partitioning wayland compositor |
+| [cage](https://www.hjdskes.nl/projects/cage/) | 2020-08-02 15:43:05Z | A Wayland kiosk |
+| [clipman](https://github.com/yory8/clipman) | 2020-06-29 21:10:10Z | A basic clipboard manager for Wayland, with support for persisting copy buffers after an application exits |
+| [drm_info](https://github.com/ascent12/drm_info) | 2020-07-04 07:46:47Z | Small utility to dump info about DRM devices. |
+| [emacs](https://www.gnu.org/software/emacs/) | 2020-08-14 17:17:14Z | The extensible, customizable GNU text editor |
+| [gebaar-libinput](https://github.com/Coffee2CodeNL/gebaar-libinput) | 2019-04-05 13:27:03Z | Gebaar, A Super Simple WM Independent Touchpad Gesture Daemon for libinput |
+| [glpaper](https://bitbucket.org/Scoopta/glpaper) | 2020-03-29 19:46:07 | GLPaper is a wallpaper program for wlroots based wayland compositors such as sway that allows you to render glsl shaders as your wallpaper |
+| [grim](https://github.com/emersion/grim) | 2020-07-21 18:11:14Z | Grab images from a Wayland compositor |
+| [gtk-layer-shell](https://github.com/wmww/gtk-layer-shell) | 2020-08-12 19:57:39Z | A library to create panels and other desktop components for Wayland using the Layer Shell protocol |
+| [i3status-rust](https://github.com/greshake/i3status-rust) | 2020-08-14 16:00:22Z | Very resource-friendly and feature-rich replacement for i3status |
+| [imv](https://github.com/eXeC64/imv) | 2020-02-08 00:29:25Z (pinned) | A command line image viewer for tiling window managers |
+| [kanshi](https://github.com/emersion/kanshi) | 2020-08-05 14:50:47Z | Dynamic display configuration |
+| [lavalauncher](https://git.sr.ht/~leon_plickat/lavalauncher) | 2020-08-15 16:16:45Z | A simple launcher for Wayland. |
+| [mako](https://wayland.emersion.fr/mako) | 2020-08-03 16:08:05Z | A lightweight Wayland notification daemon |
+| [neatvnc](https://github.com/any1/neatvnc) | 2020-07-26 13:52:00Z | liberally licensed VNC server library that's intended to be fast and neat |
+| [obs-studio](https://obsproject.com) | 2020-08-10 13:48:20Z | Free and open source software for video recording and live streaming |
+| [obs-wlrobs](https://sr.ht/~scoopta/wlrobs) | 2020-08-12 12:00:28 | wlrobs is an obs-studio plugin that allows you to screen capture on wlroots based wayland compositors |
+| [oguri](https://github.com/vilhalmer/oguri) | 2020-05-27 14:14:43Z | A very nice animated wallpaper tool for Wayland compositors |
+| [redshift-wayland](http://jonls.dk/redshift) | 2019-08-24 15:20:17Z | Screen color temperature manager |
+| [rootbar](https://hg.sr.ht/~scoopta/rootbar) | 2020-04-07 01:06:53 | Root Bar is a bar for wlroots based wayland compositors such as sway and was designed to address the lack of good bars for wayland |
+| [slurp](https://github.com/emersion/slurp) | 2020-08-03 09:44:19Z | Select a region in a Wayland compositor |
+| [sway](https://swaywm.org) | 2020-08-11 22:37:11Z | i3-compatible tiling Wayland compositor |
+| [swaybg](https://github.com/swaywm/swaybg) | 2019-08-08 23:03:44Z | Wallpaper tool for Wayland compositors |
+| [swayidle](https://swaywm.org) | 2020-04-30 10:15:57Z | Sway's idle management daemon |
+| [swaylock](https://swaywm.org) | 2020-07-13 13:49:10Z | Screen locker for Wayland |
+| [waybar](https://github.com/Alexays/Waybar) | 2020-08-15 08:59:12Z | Highly customizable Wayland Polybar like bar for Sway and Wlroots based compositors. |
+| [waybox](https://github.com/wizbright/waybox) | 2020-05-01 03:02:14Z | An openbox clone on Wayland (WIP) |
+| [wayfire](https://wayfire.org/) | 2020-08-15 15:55:56Z | 3D wayland compositor |
+| [waypipe](https://gitlab.freedesktop.org/mstoeckl/waypipe/) | 2020-07-06 00:16:52Z | Network transparency with Wayland |
+| [wayvnc](https://github.com/any1/wayvnc) | 2020-07-31 18:23:25Z | A VNC server for wlroots based Wayland compositors |
+| [wdisplays](https://github.com/cyclopsian/wdisplays) | 2020-05-09 19:42:15Z | GUI display configurator for wlroots compositors |
+| [wev](https://git.sr.ht/~sircmpwn/wev) | 2020-07-07 15:20:53Z | A tool for debugging events on a Wayland window, analagous to the X11 tool xev. |
+| [wf-recorder](https://github.com/ammen99/wf-recorder) | 2020-07-19 12:45:44Z | Utility program for screen recording of wlroots-based compositors |
+| [wl-clipboard](https://github.com/bugaevc/wl-clipboard) | 2020-02-13 16:44:26Z | Select a region in a Wayland compositor |
+| [wl-gammactl](https://github.com/mischw/wl-gammactl) | 2020-02-16 12:53:36Z | Small GTK GUI application to set contrast, brightness and gamma for wayland compositors which support the wlr-gamma-control protocol extension. |
+| [wlay](https://github.com/atx/wlay) | 2019-07-04 17:03:15Z | Graphical output management for Wayland |
+| [wldash](https://wldash.org) | 2020-07-22 10:42:48Z | Wayland launcher/dashboard |
+| [wlfreerdp](http://www.freerdp.com/) | 2020-08-11 12:34:07Z | A Remote Desktop Protocol Client |
+| [wlogout](https://github.com/ArtsyMacaw/wlogout) | 2020-03-14 05:34:47Z | A wayland based logout menu |
+| [wlr-randr](https://github.com/emersion/wlr-randr) | 2020-07-27 14:33:25Z | An xrandr clone for wlroots compositors |
+| [wlroots](https://github.com/swaywm/wlroots) | 2020-08-14 15:57:31Z | A modular Wayland compositor library |
+| [wltrunk](https://git.sr.ht/~bl4ckb0ne/wltrunk) | 2020-03-11 13:38:35Z (pinned) | High-level Wayland compositor library based on wlroots |
+| [wofi](https://hg.sr.ht/~scoopta/wofi) | 2020-08-11 19:07:49 | Wofi is a launcher/menu program for wlroots based wayland compositors such as sway |
+| [wtype](https://github.com/atx/wtype) | 2020-08-05 16:06:59Z | xdotool type for wayland |
+| [xdg-desktop-portal-wlr](https://github.com/emersion/xdg-desktop-portal-wlr) | 2020-08-07 16:33:26Z | xdg-desktop-portal backend for wlroots |
+<!--pkgs-->
+
+</details>
+
+## Tips
+
+#### `sway`
+
+* You will likely want a default config file to place at `$HOME/.config/sway/config`. You can use the upstream default as a starting point: https://github.com/swaywm/sway/blob/master/config.in
+* I recommend using [`home-manager`](https://github.com/rycee/home-manager/). It has options for enabling and
+  configuring Sway.
+* I've recently learned that simply running `sway` at a TTY can be considered insecure. If Sway crashes, the TTY
+  is left in an unlocked state. Running Sway with a DM or as `exec sway` can help mitigate this concern.
+
+#### `obs-studio` + `wlrobs`
+
+* I recommend using [`home-manager`](https://github.com/rycee/home-manager/). It has options for enabling and
+  configuring OBS and `obs-wlrobs`. Enabling this overlay and those options is sufficient.
+
+## Development Guide
+
+* Use `nix-shell`.
+* `./update.sh`:
+  * updates `nixpkgs/<channel>/metadata.nix` per the upstream channel
+  * updates `pkgs/<pkg>/metadata.nix` with the latest commit+hash for each package
+  * calls `nix-build-uncached build.nix` to build uncached packages (see: [nix-build-uncached](https://github.com/Mic92/nix-build-uncached))
+  * pushes to ["nixpkgs-wayland" on cachix](https://nixpkgs-wayland.cachix.org)
+
+Note: in some cases, you may need to manually update `cargoSha256` or `vendorSha256` in `pkgs/<pkg>/metadata.nix` as well.
+
+If for some reason the overlay isn't progressing and you want to help, just clone the repo, run `nix-shell --command ./update.sh`
+and start fixing issues in the package definitions. Sometimes you might need to edit `default.nix` to change the version
+ of `wlroots` a certain package uses.