diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 639b22930..3ed378a5c 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -32,6 +32,7 @@ runs: libxkbcommon-dev \ libxkbcommon-dev \ libxkbcommon-x11-dev \ + libgdk-pixbuf-2.0-dev \ ninja-build \ pandoc \ python3-pip \ diff --git a/CONFIG.md b/CONFIG.md index 44cf8f001..76007c824 100644 --- a/CONFIG.md +++ b/CONFIG.md @@ -20,7 +20,8 @@ configuration { } ``` -You can now set the options in the `configuration` block. + +You can now set the options in the `configuration` block. ## Create a configuration file from current setup @@ -35,6 +36,7 @@ This will have all the possible settings and their current value. If a value is the default value, the entry will be commented. For example: + ```css configuration { /* modes: "window,run,ssh,drun";*/ @@ -68,8 +70,8 @@ newlines format are supported. But Unix is preferred. C and C++ file comments are supported. - - Anything after `// ` and before a newline is considered a comment. - - Everything between `/*` and `*/` is a comment. +- Anything after `//` and before a newline is considered a comment. +- Everything between `/*` and `*/` is a comment. Comments can be nested and the C comments can be inline. @@ -124,12 +126,12 @@ For example: #### Number An integer may contain any full number. - -For example: - -```css + +For example: + +```css eh: 2; -``` +``` #### Boolean @@ -144,15 +146,6 @@ show-icons: true; This is equal to the `-show-icons` option on the commandline, and `show-icons: false;` is equal to `-no-show-icons`. -#### Character - -Character value is always surrounded by single quotes (') and should contain a -single character. It supports escaping. - -```css -matching-negate-char: '-'; -``` - #### List This is not supported by the old configuration system, but can be used in the @@ -164,6 +157,7 @@ comma-separated. The entry in the list single ASCII words. ```css combi-modes: [window,drun]; ``` + For older versions you have : ```css diff --git a/COPYING b/COPYING index 0bf135867..cd8c9adf3 100644 --- a/COPYING +++ b/COPYING @@ -1,5 +1,5 @@ MIT/X11 License -Modified 2013-2023 Qball Cow +Modified 2013-2024 Qball Cow Copyright (c) 2012 Sean Pringle Permission is hereby granted, free of charge, to any person obtaining diff --git a/Changelog b/Changelog index 6a3e27145..f15123e64 100644 --- a/Changelog +++ b/Changelog @@ -1,3 +1,5 @@ +For newer release ChangeLogs please see the releasenotes. + v1.7.3: Sturtled! - [Help] Print out the parsed config/theme files in -help output. - [Keybindings] Fix keybindings being modified by -theme-str diff --git a/README.md b/README.md index bc43c5a4f..592bbbeab 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@

Rofi

A window switcher, Application launcher and dmenu replacement.

-https://user-images.githubusercontent.com/84911063/139428874-fe182dd6-82c6-49b8-8da1-920ddda3d1ed.mp4 + **This is a fork of [Rofi](https://github.com/davatorium/rofi) with added support for Wayland via the [layer shell protocol](https://github.com/swaywm/wlr-protocols).** **For more information, see the [Wayland support section](#wayland-support)** @@ -33,15 +33,15 @@ provided by an external script. Rofi is not: -- A UI toolkit. +- A UI toolkit. -- A library to be used in other applications. +- A library to be used in other applications. -- An application that can support every possible use-case. It tries to be +- An application that can support every possible use-case. It tries to be generic enough to be usable by everybody. - - Specific functionality can be added using scripts or plugins, many exists. + - Specific functionality can be added using scripts or plugins, many exists. -- Just a dmenu replacement. The dmenu functionality is a nice 'extra' to +- Just a dmenu replacement. The dmenu functionality is a nice 'extra' to **rofi**, not its main purpose. ## Table of Contents @@ -50,7 +50,7 @@ Rofi is not: - [Modes](#modes) - [Manpages](#manpage) - [Installation](#installation) -- [Quickstart](#quickstart) +- [Quickstart](#quickstart) - [Usage](#usage) - [Configuration](#configuration) - [Themes](#themes) @@ -61,47 +61,47 @@ Rofi is not: Its main features are: -- Fully configurable keyboard navigation +- Fully configurable keyboard navigation -- Type to filter - - Tokenized: type any word in any order to filter - - Case insensitive (togglable) - - Support for fuzzy-, regex-, prefix-, and glob-matching +- Type to filter + - Tokenized: type any word in any order to filter + - Case insensitive (togglable) + - Support for fuzzy-, regex-, prefix-, and glob-matching -- UTF-8 enabled - - UTF-8-aware string collating - - International keyboard support (\`e -> è) +- UTF-8 enabled + - UTF-8-aware string collating + - International keyboard support (\`e -> è) -- RTL language support +- RTL language support -- Cairo drawing and Pango font rendering +- Cairo drawing and Pango font rendering -- Built-in modes: - - Window switcher mode - - EWMH compatible WM - - Work arounds for i3,bspwm +- Built-in modes: + - Window switcher mode + - EWMH compatible WM + - Work arounds for i3,bspwm - - Application launcher + - Application launcher - - Desktop file application launcher + - Desktop file application launcher - - SSH launcher mode + - SSH launcher mode - - File browser + - File browser - - Combi mode, allowing several modes to be merged into one list + - Combi mode, allowing several modes to be merged into one list -- History-based ordering — last 25 choices are ordered on top based on use +- History-based ordering — last 25 choices are ordered on top based on use (optional) -- Levenshtein distance or fzf like sorting of matches (optional) +- Levenshtein distance or fzf like sorting of matches (optional) -- Drop-in dmenu replacement - - Many added improvements +- Drop-in dmenu replacement + - Many added improvements -- Easily extensible using scripts and plugins +- Easily extensible using scripts and plugins -- Advanced Theming +- Advanced Theming ## Modes @@ -111,22 +111,22 @@ extended by scripts (either called from Below is a list of the different modes: -- **run**: launch applications from $PATH, with option to launch in terminal. +- **run**: launch applications from $PATH, with option to launch in terminal. -- **drun**: launch applications based on desktop files. It tries to be +- **drun**: launch applications based on desktop files. It tries to be compliant to the XDG standard. -- **window**: Switch between windows on an EWMH compatible window manager. +- **window**: Switch between windows on an EWMH compatible window manager. -- **ssh**: Connect to a remote host via ssh. +- **ssh**: Connect to a remote host via ssh. -- **filebrowser**: A basic file-browser for opening files. +- **filebrowser**: A basic file-browser for opening files. -- **keys**: list internal keybindings. +- **keys**: list internal keybindings. -- **script**: Write (limited) custom mode using simple scripts. +- **script**: Write (limited) custom mode using simple scripts. -- **combi**: Combine multiple modes into one. +- **combi**: Combine multiple modes into one. **Rofi** is known to work on Linux and BSD. @@ -212,11 +212,11 @@ launcher: ``` The modes to combine in combi mode. -For syntax to `-combi-modes `, see `-modes`. +For syntax to `-combi-modes`, see `-modes`. To get one merge view, of `window`,`run`, and `ssh`: ```bash - rofi -show combi -combi-modes "window,run,ssh" -modes combi + rofi -show combi -combi-modes "window,run,ssh" -modes combi ``` ### Configuration @@ -256,9 +256,9 @@ Default theme: ![default](https://raw.githubusercontent.com/davatorium/rofi/next/releasenotes/1.4.0/rofi-no-fzf.png) -## Wiki +## Wiki -| ❗ **The upstream rofi Wiki is currently unmaintained and might contain outdated data ** | +| ❗ **The upstream rofi Wiki is currently unmaintained and might contain outdated data** | | --- | [Go to upstream rofi wiki](https://github.com/davatorium/rofi/wiki) . diff --git a/configure.ac b/configure.ac index efd630966..78a0cda28 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT([rofi], [1.7.5-dev], [https://github.com/davatorium/rofi/],[],[https://github.com/davatorium/rofi/discussions]) +AC_INIT([rofi], [1.7.7], [https://github.com/davatorium/rofi/],[],[https://github.com/davatorium/rofi/discussions]) AC_CONFIG_SRCDIR([source/rofi.c]) AC_CONFIG_HEADER([config.h]) diff --git a/doc/rofi-keys.5.markdown b/doc/rofi-keys.5.markdown index b6e264dfe..8aeefacc2 100644 --- a/doc/rofi-keys.5.markdown +++ b/doc/rofi-keys.5.markdown @@ -67,169 +67,169 @@ configuration { Paste primary selection -Default: Control+V,Shift+Insert +Default: Control+V,Shift+Insert `kb-secondary-paste` Paste clipboard -Default: Control+v,Insert +Default: Control+v,Insert `kb-secondary-copy` Copy current selection to clipboard -Default: Control+c +Default: Control+c `kb-clear-line` Clear input line -Default: Control+w +Default: Control+w `kb-move-front` Beginning of line -Default: Control+a +Default: Control+a `kb-move-end` End of line -Default: Control+e +Default: Control+e `kb-move-word-back` Move back one word -Default: Alt+b,Control+Left +Default: Alt+b,Control+Left `kb-move-word-forward` Move forward one word -Default: Alt+f,Control+Right +Default: Alt+f,Control+Right `kb-move-char-back` Move back one char -Default: Left,Control+b +Default: Left,Control+b `kb-move-char-forward` Move forward one char -Default: Right,Control+f +Default: Right,Control+f `kb-remove-word-back` Delete previous word -Default: Control+Alt+h,Control+BackSpace +Default: Control+Alt+h,Control+BackSpace `kb-remove-word-forward` Delete next word -Default: Control+Alt+d +Default: Control+Alt+d `kb-remove-char-forward` Delete next char -Default: Delete,Control+d +Default: Delete,Control+d `kb-remove-char-back` Delete previous char -Default: BackSpace,Shift+BackSpace,Control+h +Default: BackSpace,Shift+BackSpace,Control+h `kb-remove-to-eol` Delete till the end of line -Default: Control+k +Default: Control+k `kb-remove-to-sol` Delete till the start of line -Default: Control+u +Default: Control+u `kb-accept-entry` Accept entry -Default: Control+j,Control+m,Return,KP\_Enter +Default: Control+j,Control+m,Return,KP\_Enter `kb-accept-custom` Use entered text as command (in ssh/run modes) -Default: Control+Return +Default: Control+Return `kb-accept-custom-alt` Use entered text as command (in ssh/run modes) -Default: Control+Shift+Return +Default: Control+Shift+Return `kb-accept-alt` Use alternate accept command. -Default: Shift+Return +Default: Shift+Return `kb-delete-entry` Delete entry from history -Default: Shift+Delete +Default: Shift+Delete `kb-mode-next` Switch to the next mode. -Default: Shift+Right,Control+Tab +Default: Shift+Right,Control+Tab `kb-mode-previous` Switch to the previous mode. -Default: Shift+Left,Control+ISO\_Left\_Tab +Default: Shift+Left,Control+ISO\_Left\_Tab `kb-mode-complete` Start completion for mode. -Default: Control+l +Default: Control+l `kb-row-left` Go to the previous column -Default: Control+Page\_Up +Default: Control+Page\_Up `kb-row-right` Go to the next column -Default: Control+Page\_Down +Default: Control+Page\_Down `kb-row-up` Select previous entry -Default: Up,Control+p +Default: Up,Control+p `kb-row-down` Select next entry -Default: Down,Control+n +Default: Down,Control+n `kb-row-tab` @@ -253,235 +253,235 @@ Default: ISO\_Left\_Tab Go to the previous page -Default: Page\_Up +Default: Page\_Up `kb-page-next` Go to the next page -Default: Page\_Down +Default: Page\_Down `kb-row-first` Go to the first entry -Default: Home,KP\_Home +Default: Home,KP\_Home `kb-row-last` Go to the last entry -Default: End,KP\_End +Default: End,KP\_End `kb-row-select` Set selected item as input text -Default: Control+space +Default: Control+space `kb-screenshot` Take a screenshot of the rofi window -Default: Alt+S +Default: Alt+S `kb-ellipsize` Toggle between ellipsize modes for displayed data -Default: Alt+period +Default: Alt+period `kb-toggle-case-sensitivity` Toggle case sensitivity -Default: grave,dead\_grave +Default: grave,dead\_grave `kb-toggle-sort` Toggle filtered menu sort -Default: Alt+grave +Default: Alt+grave `kb-cancel` Quit rofi -Default: Escape,Control+g,Control+bracketleft +Default: Escape,Control+g,Control+bracketleft `kb-custom-1` Custom keybinding 1 -Default: Alt+1 +Default: Alt+1 `kb-custom-2` Custom keybinding 2 -Default: Alt+2 +Default: Alt+2 `kb-custom-3` Custom keybinding 3 -Default: Alt+3 +Default: Alt+3 `kb-custom-4` Custom keybinding 4 -Default: Alt+4 +Default: Alt+4 `kb-custom-5` Custom Keybinding 5 -Default: Alt+5 +Default: Alt+5 `kb-custom-6` Custom keybinding 6 -Default: Alt+6 +Default: Alt+6 `kb-custom-7` Custom Keybinding 7 -Default: Alt+7 +Default: Alt+7 `kb-custom-8` Custom keybinding 8 -Default: Alt+8 +Default: Alt+8 `kb-custom-9` Custom keybinding 9 -Default: Alt+9 +Default: Alt+9 `kb-custom-10` Custom keybinding 10 -Default: Alt+0 +Default: Alt+0 `kb-custom-11` Custom keybinding 11 -Default: Alt+exclam +Default: Alt+exclam `kb-custom-12` Custom keybinding 12 -Default: Alt+at +Default: Alt+at `kb-custom-13` Custom keybinding 13 -Default: Alt+numbersign +Default: Alt+numbersign `kb-custom-14` Custom keybinding 14 -Default: Alt+dollar +Default: Alt+dollar `kb-custom-15` Custom keybinding 15 -Default: Alt+percent +Default: Alt+percent `kb-custom-16` Custom keybinding 16 -Default: Alt+dead\_circumflex +Default: Alt+dead\_circumflex `kb-custom-17` Custom keybinding 17 -Default: Alt+ampersand +Default: Alt+ampersand `kb-custom-18` Custom keybinding 18 -Default: Alt+asterisk +Default: Alt+asterisk `kb-custom-19` Custom Keybinding 19 -Default: Alt+parenleft +Default: Alt+parenleft `kb-select-1` Select row 1 -Default: Super+1 +Default: Super+1 `kb-select-2` Select row 2 -Default: Super+2 +Default: Super+2 `kb-select-3` Select row 3 -Default: Super+3 +Default: Super+3 `kb-select-4` Select row 4 -Default: Super+4 +Default: Super+4 `kb-select-5` Select row 5 -Default: Super+5 +Default: Super+5 `kb-select-6` Select row 6 -Default: Super+6 +Default: Super+6 `kb-select-7` Select row 7 -Default: Super+7 +Default: Super+7 `kb-select-8` Select row 8 -Default: Super+8 +Default: Super+8 `kb-select-9` Select row 9 -Default: Super+9 +Default: Super+9 `kb-select-10` Select row 10 -Default: Super+0 +Default: Super+0 `kb-entry-history-up` @@ -501,43 +501,63 @@ Default: Control+Down Go to the previous column -Default: ScrollLeft +Default: ScrollLeft `ml-row-right` Go to the next column -Default: ScrollRight +Default: ScrollRight `ml-row-up` Select previous entry -Default: ScrollUp +Default: ScrollUp `ml-row-down` Select next entry -Default: ScrollDown +Default: ScrollDown `me-select-entry` Select hovered row -Default: MousePrimary +Default: MousePrimary `me-accept-entry` Accept hovered row -Default: MouseDPrimary +Default: MouseDPrimary `me-accept-custom` Accept hovered row with custom action -Default: Control+MouseDPrimary +Default: Control+MouseDPrimary + +## Mouse key bindings + +The following mouse buttons can be bound: + +* `Primary`: Primary (Left) mouse button click. +* `Secondary`: Secondary (Right) mouse button click. +* `Middle`: Middle mouse button click. +* `Forward`: The forward mouse button. +* `Back`: The back mouse button. +* `ExtraN`: The N'the mouse button. (Depending on mouse support). + +The Identifier is constructed as follow: + +`Mouse