Skip to content

Commit bdbf377

Browse files
committed
docs: include project status in the README
1 parent 4892cdd commit bdbf377

File tree

1 file changed

+85
-50
lines changed

1 file changed

+85
-50
lines changed

README.md

Lines changed: 85 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,19 @@
22

33
A wayland native krunner-like runner, made with customizability in mind.
44

5-
# Features
5+
<!-- Maintenance Status Notice -->
6+
7+
[@notashelf]: https://github.com/notashelf
8+
9+
> [!NOTE]
10+
> Anyrun is currently in maintenance mode due to the original maintainer taking
11+
> an extended break. For the time being [@notashelf] will be reviewing and
12+
> merging critical bug-fixes or must-have features in the form of pull requests.
13+
> This is _hopefully_ not a permanent status.
14+
15+
<!-- End of Maintenance Status Notice-->
16+
17+
## Features
618

719
- Style customizability with GTK+ CSS
820
- More info in [Styling](#Styling)
@@ -19,9 +31,9 @@ A wayland native krunner-like runner, made with customizability in mind.
1931
- GTK layer shell for overlaying the window
2032
- data-control for managing the clipboard
2133

22-
# Usage
34+
## Usage
2335

24-
## Dependencies
36+
### Dependencies
2537

2638
Anyrun mainly depends various GTK libraries, and rust of course for building the
2739
project. Rust you can get with [rustup](https://rustup.rs). The rest are
@@ -41,24 +53,28 @@ build & run it:
4153

4254
### Nix
4355

44-
You can use the flake:
56+
You can use the provided flake:
4557

4658
```nix
4759
# flake.nix
4860
{
4961
inputs = {
5062
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
51-
anyrun.url = "github:anyrun-org/anyrun";
52-
anyrun.inputs.nixpkgs.follows = "nixpkgs";
63+
anyrun = {
64+
url = "github:anyrun-org/anyrun";
65+
inputs.nixpkgs.follows = "nixpkgs";
66+
};
5367
};
5468
55-
outputs = { self, nixpkgs, anyrun }: let
56-
in {
57-
nixosConfigurations.HOSTNAME = nixpkgs.lib.nixosSystem {
69+
outputs = { self, nixpkgs, anyrun }: {
70+
nixosConfigurations."<your_hostname>" = nixpkgs.lib.nixosSystem {
5871
# ...
59-
60-
environment.systemPackages = [ anyrun.packages.${system}.anyrun ];
61-
72+
modules = [
73+
# Add Anyrun to environment.systemPackages to make it available to
74+
# all system users. You may prefer `users.users.<your_username>.packages`
75+
# to install it for a specified user only.
76+
{environment.systemPackages = [ anyrun.packages.${system}.anyrun ];}
77+
];
6278
# ...
6379
};
6480
};
@@ -67,35 +83,31 @@ You can use the flake:
6783

6884
The flake provides multiple packages:
6985

70-
- anyrun (default) - just the anyrun binary
71-
- anyrun-with-all-plugins - anyrun and all builtin plugins
72-
- applications - the applications plugin
73-
- dictionary - the dictionary plugin
74-
- kidex - the kidex plugin
75-
- randr - the randr plugin
76-
- rink - the rink plugin
77-
- shell - the shell plugin
78-
- stdin - the stdin plugin
79-
- symbols - the symbols plugin
80-
- translate - the translate plugin
81-
- websearch - the websearch plugin
86+
- **anyrun (default)** - the Anyrun binary, without plugins
87+
- **anyrun-with-all-plugins** - Anyrun and all builtin plugins
88+
- **applications** - the applications plugin
89+
- **dictionary** - the dictionary plugin
90+
- **kidex** - the kidex plugin
91+
- **randr** - the randr plugin
92+
- **rink** - the rink plugin
93+
- **shell** - the shell plugin
94+
- **stdin** - the stdin plugin
95+
- **symbols** - the symbols plugin
96+
- **translate** - the translate plugin
97+
- **websearch** - the websearch plugin
8298

8399
#### Home-Manager module
84100

85-
The anyrun flake exposes a Home-Manager module as `homeManagerModules.default`.
86-
You use it in your system like this:
101+
The Anyrun flake exposes a Home-Manager module as `homeManagerModules.default`
102+
which you can use to install and configure Anyrun in your system with ease.
103+
104+
You may use it in your system like this:
87105

88106
```nix
89107
{
90108
programs.anyrun = {
91109
enable = true;
92110
config = {
93-
plugins = [
94-
# An array of all the plugins you want, which either can be paths to the .so files, or their packages
95-
inputs.anyrun.packages.${pkgs.system}.applications
96-
./some_plugin.so
97-
"${inputs.anyrun.packages.${pkgs.system}.anyrun-with-all-plugins}/lib/kidex"
98-
];
99111
x = { fraction = 0.5; };
100112
y = { fraction = 0.3; };
101113
width = { fraction = 0.3; };
@@ -106,8 +118,18 @@ You use it in your system like this:
106118
closeOnClick = false;
107119
showResultsImmediately = false;
108120
maxEntries = null;
121+
122+
plugins = [
123+
# An array of all the plugins you want, which either can be paths to the .so files, or their packages
124+
inputs.anyrun.packages.${pkgs.system}.applications
125+
./some_plugin.so
126+
"${inputs.anyrun.packages.${pkgs.system}.anyrun-with-all-plugins}/lib/kidex"
127+
];
109128
};
110-
extraCss = ''
129+
130+
# Inline comments are supported for language injection into
131+
# multi-line strings with Treesitter! (Depends on your editor)
132+
extraCss = /*css */ ''
111133
.some_class {
112134
background: red;
113135
}
@@ -124,12 +146,12 @@ You use it in your system like this:
124146
}
125147
```
126148

127-
You might also want to use the binary cache to avoid building locally.
149+
Anyrun packages are built and cached automatically. To avoid unnecessary
150+
recompilations, you may use the binary cache.
128151

129152
```nix
130153
nix.settings = {
131154
builders-use-substitutes = true;
132-
# extra substituters to add
133155
extra-substituters = [
134156
"https://anyrun.cachix.org"
135157
];
@@ -140,19 +162,32 @@ nix.settings = {
140162
};
141163
```
142164

165+
> [!WARNING]
166+
> While using the Anyrun flake, overriding the `nixpkgs` input for Anyrun will
167+
> cause cache hits, i.e., you will have to build from source every time. To use
168+
> the cache, do _not_ override the Nixpkgs input.
169+
143170
### Manual installation
144171

145172
Make sure all of the dependencies are installed, and then run the following
146173
commands in order:
147174

148-
```sh
149-
git clone https://github.com/Kirottu/anyrun.git # Clone the repository
150-
cd anyrun # Change the active directory to it
151-
cargo build --release # Build all the packages
152-
cargo install --path anyrun/ # Install the anyrun binary
153-
mkdir -p ~/.config/anyrun/plugins # Create the config directory and the plugins subdirectory
154-
cp target/release/*.so ~/.config/anyrun/plugins # Copy all of the built plugins to the correct directory
155-
cp examples/config.ron ~/.config/anyrun/config.ron # Copy the default config file
175+
```bash
176+
# Clone the repository and move to the cloned location
177+
git clone https://github.com/Kirottu/anyrun.git && cd anyrun
178+
179+
# Build all packages, and install the Anyrun binary
180+
cargo build --release
181+
cargo install --path anyrun/
182+
183+
# Create the config directory and the plugins subdirectory
184+
mkdir -p ~/.config/anyrun/plugins
185+
186+
# Copy all of the built plugins to the correct directory
187+
cp target/release/*.so ~/.config/anyrun/plugins
188+
189+
# Copy the default config file
190+
cp examples/config.ron ~/.config/anyrun/config.ron
156191
```
157192

158193
## Plugins
@@ -176,7 +211,7 @@ list of plugins in this repository is as follows:
176211
- Rotate and resize; quickly change monitor configurations on the fly.
177212
- TODO: Only supports Hyprland, needs support for other compositors.
178213
- [Stdin](plugins/stdin/README.md)
179-
- Turn Anyrun into a dmenu like fuzzy selector.
214+
- Turn Anyrun into a dmenu-like fuzzy selector.
180215
- Should generally be used exclusively with the `--plugins` argument.
181216
- [Dictionary](plugins/dictionary/README.md)
182217
- Look up definitions for words
@@ -189,12 +224,12 @@ The default configuration directory is `$HOME/.config/anyrun` the structure of
189224
the config directory is as follows and should be respected by plugins:
190225

191226
```
192-
- anyrun
193-
- plugins
194-
<plugin dynamic libraries>
195-
config.ron
196-
style.css
197-
<any plugin specific config files>
227+
- anyrun/
228+
- plugins/
229+
- <plugin dynamic libraries>
230+
- config.ron
231+
- style.css
232+
- <any plugin specific config files>
198233
```
199234

200235
The [default config file](examples/config.ron) contains the default values, and

0 commit comments

Comments
 (0)