Add desktop widgets and streamline documentation
This commit is contained in:
1 parent
c63af64d87
commit
8dc895448d
25 files changed
+2724
-3686
No files matched your search
@@ -4,37 +4,30 @@
|
||||
|
||||
<h1 align="center">Ferese</h1>
|
||||
|
||||
<p align="center">An animation-first scrolling Wayland desktop.</p>
|
||||
<p align="center">Just another Wayland window manager with sensible defaults.</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="docs/installation.md">Install</a> ·
|
||||
<a href="docs/configuration.md">Configure</a> ·
|
||||
<a href="#try-it">Try it</a> ·
|
||||
<a href="#development">Develop</a>
|
||||
<a href="docs/desktop-widgets.md">Widgets</a>
|
||||
</p>
|
||||
|
||||
Ferese combines a scrolling window manager with its own menu bar, control center
|
||||
and native Settings app. Built in Rust on Smithay, it brings configurable motion
|
||||
and a cohesive desktop interface to a keyboard-driven workflow.
|
||||
Ferese is built in Rust on Smithay, with its own menu bar, control center
|
||||
and native Settings app.
|
||||
|
||||
## A desktop that moves with you
|
||||
## Features
|
||||
|
||||
- **Scrolling columns:** a horizontal window strip with configurable widths and
|
||||
focus behavior. Tree tiling is available per workspace.
|
||||
- **Coordinated motion:** animated focus, resize, workspace transitions and
|
||||
overview, with adjustable speed and reduced-motion support.
|
||||
- **An integrated shell:** workspace selector, status popovers, notification
|
||||
controls and a compact control center.
|
||||
- **Native Settings:** appearance, wallpaper, input, motion and more, with
|
||||
automatic saving, validation and undo.
|
||||
- **Your own look:** solid or translucent shell surfaces, backdrop blur,
|
||||
rounded corners, soft shadows and optional gradient focus rings.
|
||||
- **Multiple displays:** per-output workspaces, fractional scaling, monitor
|
||||
hotplug and laptop-lid workspace migration.
|
||||
- **Live configuration:** update TOML without restarting the desktop.
|
||||
Invalid changes keep the last working configuration.
|
||||
- **Session locking:** `ext-session-lock-v1` with swaylock or swaylock-effects
|
||||
through `ferese-lock`.
|
||||
- Scrolling columns, tree tiling and floating windows
|
||||
- Workspace overview
|
||||
- Configurable animations
|
||||
- Built-in bar and control center
|
||||
- Native Settings app
|
||||
- Desktop widgets
|
||||
- Themes, blur and gradient borders
|
||||
- Multi-monitor support and fractional scaling
|
||||
- Live configuration reload
|
||||
- Background services and session locking
|
||||
|
||||
## Try it
|
||||
|
||||
@@ -46,9 +39,17 @@ target/release/ferese --backend nested --grant-effects --grant-shell-control --
|
||||
target/release/ferese-shell
|
||||
```
|
||||
|
||||
Use a recent Rust toolchain (1.93 or newer for the shell), Smithay's native
|
||||
build dependencies, and `foot` for the default terminal. Settings wallpaper
|
||||
browsing uses `zenity`; entering an image path works without it.
|
||||
Requirements (Fedora package names):
|
||||
|
||||
- Rust 1.93+ and Cargo.
|
||||
- Build tools: `gcc`, `gcc-c++`, `cmake`, `make`, `pkgconf-pkg-config`.
|
||||
- Wayland and input: `wayland-devel`, `libxkbcommon-devel`, `libinput-devel`.
|
||||
- Graphics: `libdrm-devel`, `mesa-libgbm-devel`, `mesa-libEGL-devel`.
|
||||
- Session and fonts: `systemd-devel`, `libseat-devel`, `fontconfig-devel`.
|
||||
- Installation: `desktop-file-utils`, `dbus`.
|
||||
- Default terminal: `foot` (or configure another terminal).
|
||||
- Optional: `zenity` for wallpaper browsing, `swayidle` for idle actions,
|
||||
and `swaylock` or `swaylock-effects` for locking.
|
||||
|
||||
For a login-screen session alongside your existing desktop:
|
||||
|
||||
@@ -64,7 +65,7 @@ session logs and rollback.
|
||||
|
||||
## Get around
|
||||
|
||||
These are built-in defaults; your configuration can override them.
|
||||
Built-in defaults (your configuration can override them):
|
||||
|
||||
| Shortcut | Action |
|
||||
| --- | --- |
|
||||
@@ -82,22 +83,9 @@ These are built-in defaults; your configuration can override them.
|
||||
|
||||
Open **Control Center → Settings**, or run `ferese-settings`.
|
||||
Advanced options live in `~/.config/ferese/config.toml` (or under
|
||||
`$XDG_CONFIG_HOME`). Start with the [example config](packaging/config.toml).
|
||||
|
||||
```toml
|
||||
[scrolling]
|
||||
default_column_width = 0.5
|
||||
focus_strategy = "paged"
|
||||
|
||||
[[window_rules]]
|
||||
app_id = "dev.ferese.Settings"
|
||||
floating = true
|
||||
```
|
||||
|
||||
Saving the file reloads it automatically. Run `feresectl reload-config`
|
||||
for an explicit reload with validation feedback. The
|
||||
[configuration reference](docs/configuration.md) covers themes, window rules,
|
||||
bindings, output profiles, session services and locking.
|
||||
`$XDG_CONFIG_HOME`). Changes reload automatically. The complete
|
||||
[configuration reference](docs/configuration.md) covers every supported option;
|
||||
the [example config](packaging/config.toml) is a starting point.
|
||||
|
||||
## Development
|
||||
|
||||
@@ -109,15 +97,5 @@ cargo fmt --all --check
|
||||
Use release builds when evaluating animation and startup performance.
|
||||
`RUST_LOG=ferese=debug` enables detailed logs;
|
||||
`FERESE_TRACE_PERFORMANCE=1` enables per-output performance summaries.
|
||||
Development probes under `tools/` are local-only and are not part of the
|
||||
published Cargo workspace.
|
||||
|
||||
- [Architecture and window-manager specification](docs/ferese-window-manager-spec.md)
|
||||
- [Shell design](docs/ferese-shell-design.md)
|
||||
- [Theme and UI specification](docs/ferese-theme-ui-spec.md)
|
||||
- [Animation validation](docs/animation-validation.md)
|
||||
- [Nested resize testing](docs/nested-resize-testing.md)
|
||||
- [Native-client soak testing](docs/native-soak-testing.md)
|
||||
|
||||
Test hardware behavior on your own setup, especially suspend/resume and locking.
|
||||
Keep a working desktop session available while testing changes.
|
||||
Reference in new issue
Block a user