README
¶
❄ Rui
Rui is my personal NixOS flake manager. It isn't very unique to my system at the moment, so anyone can use it.
Useful Commands
rui edit
- Open and edit your flake directory from anywhererui home/os switch
- Rebuild and switch your home or OS flake configuration from anywhererui home news
- Show the latest news from your Home Manager configuration packages
Installation
Add to Flake Inputs (for Flakes Users)
{
inputs.rui = {
url = "github:Fuwn/rui";
inputs.nixpkgs.follows = "nixpkgs"; # Recommended
};
}
Add to Home Manager (Managed Configuration)
This method manages the configuration for you with Nix.
# ...
inputs.home-manager.lib.homeManagerConfiguration {
modules = [
inputs.rui.homeManagerModules.${builtins.currentSystem}.default
];
};
# ...
Configure Rui Using Home Manager
{
programs.rui = {
enable = true; # Defaults to false
settings = {
# Status notifications via `notify-send`; defaults to false
notify = true;
# The command to use for sending notifications, view a cool example below;
# defaults to `notify-send`
notifier = "notify-send";
# Rui falls back on the `FLAKE_EDITOR` and `EDITOR` environment variables
# if `editor` is unset
editor = "code";
# Rui falls back on the `FLAKE` environment variable if `flake` is unset
flake = "/path/to/your-flake";
# Allow unfree packages on the global level; defaults to false
allow-unfree = false;
# Allow insecure packages on the global level; defaults to false
allow-insecure = false;
# Extra arguments to pass to `nixos-rebuild` and `home-manager`; defaults
# to [ ]
extra-args = [ "--impure" ];
};
};
}
Add to System or Home Manager Packages (Manual Configuration)
Using this method, configuration is done manually by the user in the
$HOME/.config/rui/config.json
file.
# For flakes users
rui.packages.${pkgs.system}.default
# For non-flakes users
(import (
pkgs.fetchFromGitHub {
owner = "Fuwn";
repo = "rui";
rev = "..."; # Use the current commit revision hash
hash = "..."; # Use the current commit sha256 hash
}
)).packages.${builtins.currentSystem}.default
Custom Notification Command Example
Rui uses notify-send
by default for sending notifications, but you can set
the notifier
configuration value to any file path. Here's an example of a
distributed notification script that sends notifications to your phone and
your PC. This can easily be adapted to send notifications to any service, e.g.,
Telegram, Discord, other webhook receivers, etc.
This example uses Bark, an extremely simple and easy-to-use notification service for iOS devices.
#!/usr/bin/env dash
# Send a notification to your host PC
notify-send "$1" "$2"
# Send a notification to your iOS device
curl -X "POST" "https://api.day.app/your_bark_api_key" \
-H 'Content-Type: application/json; charset=utf-8' \
--silent \
-d '{
"body": "'"${2}"'",
"title": "'"${1}"'",
"icon": "https://nixos.wiki/images/thumb/2/20/Home-nixos-logo.png/207px-Home-nixos-logo.png"
}'
--help
NAME:
rui - Personal NixOS Flake Manager
USAGE:
rui [global options] command [command options]
DESCRIPTION:
Personal NixOS Flake Manager
AUTHOR:
Fuwn <contact@fuwn.me>
COMMANDS:
home
os
edit
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--allow-unfree (default: false)
--help, -h show help
COPYRIGHT:
Copyright (c) 2024-2024 Fuwn
Licence
This project is licensed with the GNU General Public License v3.0.
Documentation
¶
There is no documentation for this package.