1
0
Fork 0
mirror of https://github.com/davatorium/rofi.git synced 2024-11-18 13:54:36 -05:00

[Doc] More small markdown fixes.

This commit is contained in:
Dave Davenport 2023-03-27 12:40:59 +02:00
parent b23fc0fff4
commit 586980aeaf
6 changed files with 112 additions and 115 deletions

View file

@ -2,35 +2,36 @@
## Development
For development no tarball is released. Please follow the [Installation](../INSTALL/) instructions for obtaining and compiling development version.
For development no tarball is released. Please follow the
[Installation](../INSTALL/) instructions for obtaining and compiling
development version.
## [1.7.5](https://github.com/davatorium/rofi/releases/tag/1.7.5)
* [tar.gz](https://github.com/davatorium/rofi/releases/download/1.7.5/rofi-1.7.5.tar.gz)
* [tar.xz](https://github.com/davatorium/rofi/releases/download/1.7.5/rofi-1.7.5.tar.xz)
- [tar.gz](https://github.com/davatorium/rofi/releases/download/1.7.5/rofi-1.7.5.tar.gz)
- [tar.xz](https://github.com/davatorium/rofi/releases/download/1.7.5/rofi-1.7.5.tar.xz)
## [1.7.4](https://github.com/davatorium/rofi/releases/tag/1.7.4)
* [tar.gz](https://github.com/davatorium/rofi/releases/download/1.7.4/rofi-1.7.4.tar.gz)
* [tar.xz](https://github.com/davatorium/rofi/releases/download/1.7.4/rofi-1.7.4.tar.xz)
- [tar.gz](https://github.com/davatorium/rofi/releases/download/1.7.4/rofi-1.7.4.tar.gz)
- [tar.xz](https://github.com/davatorium/rofi/releases/download/1.7.4/rofi-1.7.4.tar.xz)
## [1.7.3](https://github.com/davatorium/rofi/releases/tag/1.7.3)
* [tar.gz](https://github.com/davatorium/rofi/releases/download/1.7.3/rofi-1.7.3.tar.gz)
* [tar.xz](https://github.com/davatorium/rofi/releases/download/1.7.3/rofi-1.7.3.tar.xz)
- [tar.gz](https://github.com/davatorium/rofi/releases/download/1.7.3/rofi-1.7.3.tar.gz)
- [tar.xz](https://github.com/davatorium/rofi/releases/download/1.7.3/rofi-1.7.3.tar.xz)
## [1.7.2](https://github.com/davatorium/rofi/releases/tag/1.7.2)
* [tar.gz](https://github.com/davatorium/rofi/releases/download/1.7.2/rofi-1.7.2.tar.gz)
* [tar.xz](https://github.com/davatorium/rofi/releases/download/1.7.2/rofi-1.7.2.tar.xz)
- [tar.gz](https://github.com/davatorium/rofi/releases/download/1.7.2/rofi-1.7.2.tar.gz)
- [tar.xz](https://github.com/davatorium/rofi/releases/download/1.7.2/rofi-1.7.2.tar.xz)
## [1.7.1](https://github.com/davatorium/rofi/releases/tag/1.7.1)
* [tar.gz](https://github.com/davatorium/rofi/releases/download/1.7.1/rofi-1.7.1.tar.gz)
* [tar.xz](https://github.com/davatorium/rofi/releases/download/1.7.1/rofi-1.7.1.tar.xz)
- [tar.gz](https://github.com/davatorium/rofi/releases/download/1.7.1/rofi-1.7.1.tar.gz)
- [tar.xz](https://github.com/davatorium/rofi/releases/download/1.7.1/rofi-1.7.1.tar.xz)
## [1.7.0](https://github.com/davatorium/rofi/releases/tag/1.7.0)
* [tar.gz](https://github.com/davatorium/rofi/releases/download/1.7.0/rofi-1.7.0.tar.gz)
* [tar.xz](https://github.com/davatorium/rofi/releases/download/1.7.0/rofi-1.7.0.tar.xz)
- [tar.gz](https://github.com/davatorium/rofi/releases/download/1.7.0/rofi-1.7.0.tar.gz)
- [tar.xz](https://github.com/davatorium/rofi/releases/download/1.7.0/rofi-1.7.0.tar.xz)

View file

@ -25,7 +25,8 @@ In the current release, there is a
[fullscreen_preview](https://github.com/davatorium/rofi/blob/next/themes/fullscreen-preview.rasi)
as an example.
In this theme we are going to modify the filebrowser view with a preview widget that we can enable.
In this theme we are going to modify the filebrowser view with a preview widget
that we can enable.
Lets start with the basic theme.
@ -134,7 +135,6 @@ rofi -theme fullscreen-preview.rasi -show filebrowser
We already prepared the place where we are going to add a 2nd widget.
Now lets, at the end of the theme, add the extra element in a media block.
```css
@media ( enabled: env(PREVIEW, false)) {
```
@ -173,7 +173,6 @@ Now if we run it:
REVIEW=true rofi -theme fullscreen-preview.rasi -show filebrowser
```
It looks like this:
![Image preview](2.png)

View file

@ -1,8 +1,7 @@
> This guide is taken from the 1.4.0 release preview posts. The information might
> be outdated, but in general should still be correct and a good starting point
> for writing a plugin. Links have been updated.
> A recent plugin that can be used as example can be found
> [here](https://git.sr.ht/~qball/rofi-ntfy).
> This guide is taken from the 1.4.0 release preview posts. The information
> might be outdated, but in general should still be correct and a good starting
> point for writing a plugin. Links have been updated. A recent plugin that can
> be used as example can be found [here](https://git.sr.ht/~qball/rofi-ntfy).
## Build system
@ -20,8 +19,9 @@ This includes the 2 files for the build system and the C template.
First we are going to update the `configure.ac` file:
```
AC_INIT([rofi-plugin-template], [0.0.1], [https://my-neat-plugin.org//],[],[https://support.my-neat-plugin.org/])
```text
AC_INIT([rofi-plugin-template], [0.0.1],
[https://my-neat-plugin.org//],[],[https://support.my-neat-plugin.org/])
AC_CONFIG_HEADER([config.h])
@ -69,7 +69,7 @@ We need to make a similar change in the `Makefile.am` file, this is important so
each plugin has a unique name. (if they are all called myplugin, it would be
hard to install more then one plugin.)
```
```text
ACLOCAL_AMFLAGS=-I m4
plugindir=@rofi_PLUGIN_INSTALL_DIR@
@ -85,7 +85,7 @@ myplugin_la_LDFLAGS= -module -avoid-version
So we do a search and replace from `myplugin` to `file_browser`:
```
```text
ACLOCAL_AMFLAGS=-I m4
plugindir=${libdir}/rofi/
@ -106,32 +106,36 @@ needed.
Now that we have this setup, it is easy to build:
* Generate the build system:
- Generate the build system:
```bash
autoreconf -i
```
* Create a `build` directory.
- Create a `build` directory.
```bash
mkdir build
cd build
```
* Run `configure`
- Run `configure`
```bash
../configure
```
* build
- build
```bash
make
```
* install
- install
```bash
make install
```
You can now test the plugin by calling:
```bash
@ -142,9 +146,8 @@ If we start changing the template, the name to use will change.
## Edit the C template
The first thing todo is personalize the template. Below I have modified it so it
is called file-browser:
The first thing todo is personalize the template. Below I have modified it so
it is called file-browser:
```c
/**
@ -290,9 +293,6 @@ If we now rebuild the plugin, we need to run the following command:
```bash
rofi -show file_browser -modi file_browser
```
### The mode description
The mode is defined by the `Mode` structure, every mode in rofi has one of the
@ -318,11 +318,9 @@ Mode mode =
};
```
The ABI_VERSION is defined in **rofi** header file, so that **rofi** can detect what
ABI the plugin was compiled against.
Not every function needs to be implemented, in the plugin we show the minimum
set.
The ABI_VERSION is defined in **rofi** header file, so that **rofi** can detect
what ABI the plugin was compiled against. Not every function needs to be
implemented, in the plugin we show the minimum set.
Lets modify each of the above functions to implement something useful.
@ -334,9 +332,9 @@ view.
We want to differentiate between 3 different rows:
* Go one level up
* Directory
* Regular file
- Go one level up
- Directory
- Regular file
So we add an enum:
@ -350,11 +348,13 @@ enum FBFileType {
We need a structure that hold each entry.
* It should have a **name** we are going to show the user. This will hold an
`utf-8` string. (rofi will only display utf-8).
* It should hold the **path** to the entry. This will be in the file-systems
encoding.
* The type it holds.
- It should have a **name** we are going to show the user. This will hold an
`utf-8` string. (rofi will only display utf-8).
- It should hold the **path** to the entry. This will be in the file-systems
encoding.
- The type it holds.
```c
typedef struct {
@ -366,9 +366,9 @@ typedef struct {
Then in the *private* data we hold all the relevant information.
* The current directory to show.
* Array of all the *FBFile* we want to show.
* The length of the array.
- The current directory to show.
- Array of all the *FBFile* we want to show.
- The length of the array.
```c
typedef struct
@ -406,7 +406,6 @@ set this on the mode. Set the current directory to the users home directory and
call `get_file_browser` that will load in the entries. We will discuss this one
later.
### Destroying
On shutdown we want to cleanup, so there is also a destroy function.
@ -569,8 +568,8 @@ static unsigned int file_browser_mode_get_num_entries ( const Mode *sw )
## Filtering the entries
When filtering we want to filter on the file name, we luckily store this entry
in `FBFile::name`.
To use **rofi**'s matching algorithm we can use the `helper_token_match` function.
in `FBFile::name`. To use **rofi**'s matching algorithm we can use the
`helper_token_match` function.
```c
static int file_browser_token_match ( const Mode *sw, GRegex **tokens, unsigned int index )
@ -595,7 +594,6 @@ rofi -show file_browser -modi file_browser
![rofi file browser](rofi-file-browser.png)
## Handling selected entries
This is just an example and can probably be implemented nicer.
@ -688,8 +686,5 @@ We do not support `delete`, just reload.
The `RESET_DIALOG` will clear the input bar and reload the view, `RELOAD_DIALOG`
will reload the view and re-filter based on the current text.
> Note: `rofi_expand_path` will expand `~` and `~me/` into it full absolute path.
> Note: `helper_execute_command` will spawn command.
> Note: `rofi_expand_path` will expand `~` and `~me/` into it full absolute
> path. Note: `helper_execute_command` will spawn command.

View file

@ -12,43 +12,46 @@ The location setting determines the place of the window on the monitor.
The location setting supports the following values:
* north
* northeast
* northwest
* south
* southeast
* southwest
* east
* west
* center
- north
- northeast
- northwest
- south
- southeast
- southwest
- east
- west
- center
This is depicted in the diagram below:
![location](anchors.svg)
## anchor setting
The anchor sets what point of the **rofi** window is placed at the specified *location*.
The anchor sets what point of the **rofi** window is placed at the specified
*location*.
The *anchor* settings supports the same values as the *location* setting.
If you want the middle of the **rofi** window to be always located at the center of the monitor set both *location* and
*anchor* to `center`.
If you want the middle of the **rofi** window to be always located at the
center of the monitor set both *location* and *anchor* to `center`.
If the **rofi** window resizes, its center will stay at the center.
If you set the *anchor* to `north` the top of the **rofi** window is at the center of the monitor, and the window will grow
down.
If the **rofi** window resizes, its center will stay at the center. If you set
the *anchor* to `north` the top of the **rofi** window is at the center of the
monitor, and the window will grow down.
If you set the *anchor* and *location* to `south`, **rofi** is located at the bottom center and the window grows up.
If you set the *anchor* and *location* to `south`, **rofi** is located at the
bottom center and the window grows up.
> Note that if you set the *anchor* to `south` and the *location* to `north` the **rofi** window will be placed above
> the monitor and might not be visible.
> Note that if you set the *anchor* to `south` and the *location* to `north`
> the **rofi** window will be placed above the monitor and might not be
> visible.
> In another blog post we will explain how the dynamic sizing behaviour of
> **rofi** can be tweaked or disabled.
> In another blog post we will explain how the dynamic sizing behaviour of **rofi** can be tweaked or disabled.
So the following theme setting will place the top of the **rofi** window in the center of the monitor:
So the following theme setting will place the top of the **rofi** window in the
center of the monitor:
```css
window {
@ -57,11 +60,13 @@ window {
}
```
As depicted here, RED is the location (center of screen), GREEN is the anchor on **rofi** window (north):
As depicted here, RED is the location (center of screen), GREEN is the anchor
on **rofi** window (north):
![positions](example-pos.png)
> Quick hint, if you want to quickly test out changes to the theme, without editing the file, run **rofi** like:
> Quick hint, if you want to quickly test out changes to the theme, without
> editing the file, run **rofi** like:
```bash
rofi -show run -theme-str "window { location: center; anchor: north;}"

View file

@ -9,7 +9,8 @@ Remember the general widget structure:
![structure](structure.svg)
This means if you set every widget to be 30% transparent on a white background: it will look like:
This means if you set every widget to be 30% transparent on a white background:
it will look like:
![images](rofi-transp.png)
@ -22,7 +23,6 @@ the end it will be less transparent.
rofi -theme-str '@theme "/dev/null" window { background-color: white; }* { padding:5; background-color: rgba(20,20,20,0.5);}' -show run
```
This can sometimes be difficult when creating themes with a nice transparent
background.
The trick to make this work nicely is the following.
@ -46,7 +46,6 @@ window {
Now if you only set the background on widgets you want differently colored, it
nicely works out.
## Transparency on the window
This determines how transparency on the window is handled.
@ -55,9 +54,9 @@ The option takes a string. There are basically 4 options:
### No transparency or "real"
The background of the window is black and fully transparent, and everything is drawn on top of this.
This means that if you have a composite manager (ARGB window), you get a fully transparent
background, otherwise fully black.
The background of the window is black and fully transparent, and everything is
drawn on top of this. This means that if you have a composite manager (ARGB
window), you get a fully transparent background, otherwise fully black.
This is the preferred option if you have a composite manager running.

View file

@ -1,39 +1,37 @@
# Welcome to Rofi Documentation
This website holds the web-version of the manpages for rofi and several guides
that have been published over the past years.
The manpages are grouped on rofi version.
![rofi](images/rofi.png)
* [Downloads](downloads.md)
* [Installation](INSTALL.md)
* [Themes](themes/themes.md)
* [User scripts (wiki)](https://github.com/davatorium/rofi/wiki/User-scripts)
- [Downloads](downloads.md)
- [Installation](INSTALL.md)
- [Themes](themes/themes.md)
- [User scripts (wiki)](https://github.com/davatorium/rofi/wiki/User-scripts)
## Development version
* [Rofi manpage](current/rofi.1.markdown)
* [Themes](current/rofi-theme.5.markdown)
* [Dmenu](current/rofi-dmenu.5.markdown)
* [Script](current/rofi-script.5.markdown)
* [Debugging](current/rofi-debugging.5.markdown)
* [Keys](current/rofi-keys.5.markdown)
- [Rofi manpage](current/rofi.1.markdown)
- [Themes](current/rofi-theme.5.markdown)
- [Dmenu](current/rofi-dmenu.5.markdown)
- [Script](current/rofi-script.5.markdown)
- [Debugging](current/rofi-debugging.5.markdown)
- [Keys](current/rofi-keys.5.markdown)
## Stable
* [Rofi manpage](1.7.5/rofi.1.markdown)
* [Themes](1.7.5/rofi-theme.5.markdown)
* [Dmenu](1.7.5/rofi-dmenu.5.markdown)
* [Script](1.7.5/rofi-script.5.markdown)
* [Debugging](1.7.5/rofi-debugging.5.markdown)
* [Keys](1.7.5/rofi-keys.5.markdown)
- [Rofi manpage](1.7.5/rofi.1.markdown)
- [Themes](1.7.5/rofi-theme.5.markdown)
- [Dmenu](1.7.5/rofi-dmenu.5.markdown)
- [Script](1.7.5/rofi-script.5.markdown)
- [Debugging](1.7.5/rofi-debugging.5.markdown)
- [Keys](1.7.5/rofi-keys.5.markdown)
## Guides
* [Transparency](guides/Transparency/theme3-transparency)
* [Positioning](guides/Positioning/theme3-positioning)
* [Plugins](guides/Plugins/2017-04-19-rofi-140-sneak-preview-plugins.md)
* [Dynamic Theme](guides/DynamicThemes/dynamic_themes.md)
- [Transparency](guides/Transparency/theme3-transparency)
- [Positioning](guides/Positioning/theme3-positioning)
- [Plugins](guides/Plugins/2017-04-19-rofi-140-sneak-preview-plugins.md)
- [Dynamic Theme](guides/DynamicThemes/dynamic_themes.md)