Skip to content
georgesFoundationPublic

About

Nix Pkgs for Roam

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Roam Nix Package

Build Status License Nix Version

A complete Nix package for Roam, the AI-Powered Virtual HQ platform.

🚀 Quick Start

# Using flakes (recommended)
nix profile add github:georgesFoundation/Roam-nix#roam

# Or locally
git clone https://github.com/georgesFoundation/Roam-nix.git
cd Roam-nix
nix profile add .#roam

# Run Roam
roam

What is Roam?

Roam is an immersive platform that gives remote companies their own virtual HQ for their colleagues, guests, customers, and professional network. It's an entire office building that you can customize for the specific composition of your company or team, consisting of individual offices, conference rooms, team rooms, theaters and more.

📦 Installation

🌟 Using Flakes (Recommended)

Add to your flake inputs:

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    roam-nix.url = "github:georgesFoundation/Roam-nix";
  };

  outputs = { self, nixpkgs, roam-nix }: {
    packages.x86_64-linux = {
      roam = roam-nix.packages.x86_64-linux.roam;
      default = roam-nix.packages.x86_64-linux.roam;
    };
  };
}

Then add to your configuration:

# NixOS configuration.nix
environment.systemPackages = with pkgs; [ roam-nix.packages.x86_64-linux.roam ];

# Home Manager configuration.nix
home.packages = with pkgs; [ roam-nix.packages.x86_64-linux.roam ];

🚀 Direct Installation

# From GitHub (recommended)
nix profile add github:georgesFoundation/Roam-nix#roam

# From local clone
git clone https://github.com/georgesFoundation/Roam-nix.git
cd Roam-nix
nix profile add .#roam

# Traditional Nix (without flakes)
nix-env -if . -A roam

Usage

After installation, you can run Roam with:

roam

Or from your application menu.

❄️ Custom Roam Activity (NixOS ftw)

Roam (since 229) lets you set a custom activity on your avatar through its API. roam-activity sets one, and the included NixOS / Home Manager modules refresh it from a systemd user timer. Activities expire after at most one hour, so the refresh has to keep running.

  1. In Roam settings, create a personal access token. You must pick at least one scope, and any scope works (e.g. "chat read").
  2. Save it to a file only you can read, e.g. ~/.config/roam/token or a sops-nix/agenix secret.
  3. Enable the module:
# flake.nix: add roam-nix.homeManagerModules.default to your Home Manager modules
# (or roam-nix.nixosModules.default to your NixOS modules), then:
services.roam-activity = {
  enable = true;
  tokenFile = "/home/me/.config/roam/token";
  # All optional:
  # userId = "...";          # looked up via token.info when unset
  # emoji = "❄️";
  # title = "NixOS";
  # subtitle = "ftw";
  # color = "purple";
  # interval = "30min";
};

To try it once by hand:

ROAM_TOKEN_FILE=~/.config/roam/token nix run github:georgesFoundation/Roam-nix#roam-activity
nix run github:georgesFoundation/Roam-nix#roam-activity -- help   # all env vars

Package Details

  • Version: 196.0.0-beta001
  • Platform: x86_64-linux
  • Source: Official Roam .deb package
  • License: MIT
  • Based on: AUR package structure and dependencies

Dependencies

This package includes all necessary runtime dependencies based on the official AUR package:

  • gtk3
  • libappindicator-gtk3 (for system tray support)
  • nss
  • xdg-utils
  • at-spi2-core (accessibility)
  • libdrm
  • libgbm
  • libxcb
  • pulseaudio
  • libsecret
  • alsa-lib
  • libXScrnSaver (screen saver support)

🛠️ Development

Build & Test

# Build the package
nix build .#roam

# Run comprehensive tests
./test.sh

# Enter development shell
nix develop

🐛 Troubleshooting

If you encounter library errors, the package includes comprehensive dependency coverage:

  • GTK/GNOME: gtk3, glib, pango, cairo, gdk-pixbuf
  • System Integration: libappindicator-gtk3, libXScrnSaver, xdg-utils
  • Audio: pulseaudio, alsa-lib
  • Security: nss, nspr, libsecret
  • Display: Full X11 stack (libX11, libXext, libXrandr, etc.)
  • Graphics: libdrm, libgbm, libxcb
  • Accessibility: at-spi2-core
  • Other: cups, fontconfig, freetype, dbus, expat, image libraries

🔧 Contributing

  1. Fork this repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes
  4. Run tests: ./test.sh
  5. Commit: git commit -m 'Add amazing feature'
  6. Push: git push origin feature/amazing-feature
  7. Open a Pull Request

Contributing

Feel free to submit issues and pull requests to improve this package.

📋 Package Details

  • Version: 196.0.0-beta001
  • Platform: x86_64-linux
  • Source: Official Roam .deb package
  • License: MIT
  • Based on: AUR package structure and dependencies
  • Build System: Nix flakes + autoPatchelfHook

⚙️ Features

✅ Complete Dependencies: All runtime libraries from AUR + comprehensive Electron stack ✅ Auto Patching: Uses autoPatchelfHook for binary compatibility ✅ Proper Wrapping: Binary wrapped with correct library paths ✅ Desktop Integration: Icons, desktop file, documentation included ✅ AUR Compatible: Follows Arch Linux packaging patterns ✅ Well Tested: Comprehensive test suite included ✅ Modern Nix: Works with flakes and traditional Nix

🔧 Technical Notes

  • Binary Source: Repackages official Roam .deb for Nix compatibility
  • Dependency Resolution: Based on AUR analysis + comprehensive Electron app requirements
  • Library Management: autoPatchelfHook automatically patches ELF binaries
  • Error Handling: Ignores problematic ffmpeg dependency to ensure build success
  • Environment Variables: Properly sets GTK, GDK_PIXBUF, and GIO paths
  • Desktop Files: Installs .desktop file and icons for application menu integration

About

Nix Pkgs for Roam

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages