2
2
3
3
A wayland native krunner-like runner, made with customizability in mind.
4
4
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
6
18
7
19
- Style customizability with GTK+ CSS
8
20
- More info in [ Styling] ( #Styling )
@@ -19,9 +31,9 @@ A wayland native krunner-like runner, made with customizability in mind.
19
31
- GTK layer shell for overlaying the window
20
32
- data-control for managing the clipboard
21
33
22
- # Usage
34
+ ## Usage
23
35
24
- ## Dependencies
36
+ ### Dependencies
25
37
26
38
Anyrun mainly depends various GTK libraries, and rust of course for building the
27
39
project. Rust you can get with [ rustup] ( https://rustup.rs ) . The rest are
@@ -41,24 +53,28 @@ build & run it:
41
53
42
54
### Nix
43
55
44
- You can use the flake:
56
+ You can use the provided flake:
45
57
46
58
``` nix
47
59
# flake.nix
48
60
{
49
61
inputs = {
50
62
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
+ };
53
67
};
54
68
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 {
58
71
# ...
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
+ ];
62
78
# ...
63
79
};
64
80
};
@@ -67,35 +83,31 @@ You can use the flake:
67
83
68
84
The flake provides multiple packages:
69
85
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
82
98
83
99
#### Home-Manager module
84
100
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:
87
105
88
106
``` nix
89
107
{
90
108
programs.anyrun = {
91
109
enable = true;
92
110
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
- ];
99
111
x = { fraction = 0.5; };
100
112
y = { fraction = 0.3; };
101
113
width = { fraction = 0.3; };
@@ -106,8 +118,18 @@ You use it in your system like this:
106
118
closeOnClick = false;
107
119
showResultsImmediately = false;
108
120
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
+ ];
109
128
};
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 */ ''
111
133
.some_class {
112
134
background: red;
113
135
}
@@ -124,12 +146,12 @@ You use it in your system like this:
124
146
}
125
147
```
126
148
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.
128
151
129
152
``` nix
130
153
nix.settings = {
131
154
builders-use-substitutes = true;
132
- # extra substituters to add
133
155
extra-substituters = [
134
156
"https://anyrun.cachix.org"
135
157
];
@@ -140,19 +162,32 @@ nix.settings = {
140
162
};
141
163
```
142
164
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
+
143
170
### Manual installation
144
171
145
172
Make sure all of the dependencies are installed, and then run the following
146
173
commands in order:
147
174
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
156
191
```
157
192
158
193
## Plugins
@@ -176,7 +211,7 @@ list of plugins in this repository is as follows:
176
211
- Rotate and resize; quickly change monitor configurations on the fly.
177
212
- TODO: Only supports Hyprland, needs support for other compositors.
178
213
- [ Stdin] ( plugins/stdin/README.md )
179
- - Turn Anyrun into a dmenu like fuzzy selector.
214
+ - Turn Anyrun into a dmenu- like fuzzy selector.
180
215
- Should generally be used exclusively with the ` --plugins ` argument.
181
216
- [ Dictionary] ( plugins/dictionary/README.md )
182
217
- Look up definitions for words
@@ -189,12 +224,12 @@ The default configuration directory is `$HOME/.config/anyrun` the structure of
189
224
the config directory is as follows and should be respected by plugins:
190
225
191
226
```
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>
198
233
```
199
234
200
235
The [ default config file] ( examples/config.ron ) contains the default values, and
0 commit comments