aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 63a2cb2cd3da86a108c753426399d95081645f53 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# ❄ 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 anywhere
- `rui home/os switch` - Rebuild and switch your home or OS flake configuration
  from anywhere
- `rui home news` - Show the latest news from your Home Manager configuration
  packages

## Installation

### Add to Flake Inputs (for Flakes Users)

```nix
{
  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.

```nix
# ...

inputs.home-manager.lib.homeManagerConfiguration {
  modules = [
    inputs.rui.homeManagerModules.${builtins.currentSystem}.default
  ];
};

# ...
```

### Configure Rui Using Home Manager

```nix
{
  programs.rui = {
    enable = true;

    settings = {
      # Status notifications via `notify-send`
      notify = true;

      # Rui falls back on the `FLAKE_EDITOR` and `EDITOR` environment variables
      editor = "code";

      # Rui falls back on the `FLAKE` environment variable
      flake = "/path/to/your-flake";
    };
  };
}
```

### 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.

```nix
# 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
```

## `--help`

```text
NAME:
   rui - Personal NixOS Flake Manager

USAGE:
   rui [global options] command [command options]

DESCRIPTION:
   Personal NixOS Flake Manager

AUTHOR:
   Fuwn <[email protected]>

COMMANDS:
   home     
   os       
   edit     
   help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h  show help

COPYRIGHT:
   Copyright (c) 2024-2024 Fuwn
```

## Licence

This project is licensed with the [GNU General Public License v3.0](./LICENSE.txt).