+
Skip to content

Animations #7

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 12 commits into from
Apr 21, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
123 changes: 123 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,6 @@ libc = "0.2.171"
freedesktop-file-parser = "0.1.3"
strsim = "0.11.1"
dirs = "6.0.0"
which = "7.0.3"
meval = "0.2.0"
tree_magic_mini = "3.1.6"
38 changes: 25 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
# Worf
# Worf - Wayland Optimized Run Facilitator

Worf is yet another style launcher, heavily inspired by wofi, rofi and walker.
Worf is written in Rust on top of GTK4.

It aims to be a drop in replacement for wofi in most part, so it is (almost) compatible with its
configuration and css files. See below for differences


Worf is yet another dmenu style launcher, heavily inspired by wofi but written in Rust on top of GTK4.
It supports a lot of things the same way wofi does, so migrating to worf is easy, but things I did not
deemed necessary where dropped from worf. See breaking changes section for details.

## Setup

Expand All @@ -13,33 +17,41 @@ Allow blur for Worf
layerrule = blur, worf
```

## Additional functionality compared to Wofi (planed)
## Additional functionality compared to Wofi
* Support passing 'hidden' parameters that are not visible in the launcher but will be returned to the application
* Window switcher for hyprland
* All arguments expect show are supported by config and args

### New config / command line options
* fuzzy-length: Defines how long a string must be to be considered for fuzzy match
* row-box-orientation: Allows aligning values vertically to place the label below the icon
* text wrapping
* configurable animations

### New Styling options
* `label`: Allows styling the label
* `row`: Allows styling to row, mainly used to disable hover effects

## Library

The launcher and UI can be used to build any launcher, as the ui, config and run logic is available as a separate crate.
This library is not available publicly yet as the interface is not stable enough.


## Breaking changes to Wofi
* Runtime behaviour is not guaranteed to be the same and won't ever be, this includes error messages and themes.
* Themes in general are mostly compatible. Worf is using the same entity ids,
because worf is build on GTK4 instead of GTK3 there will be differences in the look and feel.
* Configuration files are not 100% compatible, Worf is using toml files instead, for most part this only means strings have to be quoted
* Color files are not supported
* `mode` dropped, use show
* `D` argument dropped. Arguments are the same as config in worf, no need to have have this flag.
* `line_wrap` is now called `line-wrap`
* Wofi has a C-API, that is not and won't be supported.

## Dropped arguments
* `mode`, use show
* `dmenu`, use show
* `D`, arguments are the same as config in worf, no need to have this flag.

## Dropped configuration options
### Dropped configuration options
* stylesheet -> use style instead
* color / colors -> GTK4 does not support color files



## Not supported
* Wofi has a C-API, that is not and won't be supported.
12 changes: 12 additions & 0 deletions examples/dmenu.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/bash

# A list of options, one per line
options="Option 1
Option 2
Option 3"

# Pipe options to wofi and capture the selection
selection=$(echo "$options" | cargo run -- --show dmenu)

# Do something with the selection
echo "You selected: $selection"
Loading
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载