All Projects → Drakulix → Fireplace

Drakulix / Fireplace

Licence: mit
Modular wayland window manager written in rust

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Fireplace

swayfire
Sway/I3 inspired tiling window manager for Wayfire
Stars: ✭ 146 (-71.54%)
Mutual labels:  window-manager, tiling-window-manager, wayland
Perceptia
Dynamic window manager with support for Wayland
Stars: ✭ 138 (-73.1%)
Mutual labels:  wayland, window-manager, tiling-window-manager
Imv
Image viewer for X11/Wayland
Stars: ✭ 652 (+27.1%)
Mutual labels:  wayland, tiling-window-manager
Wayfire
3D wayland compositor
Stars: ✭ 810 (+57.89%)
Mutual labels:  wayland, window-manager
Awesome Wayland
A curated list of Wayland code and resources.
Stars: ✭ 219 (-57.31%)
Mutual labels:  wayland, window-manager
Dewm
A pure go autotiling window manager written with literate programming
Stars: ✭ 225 (-56.14%)
Mutual labels:  window-manager, tiling-window-manager
React Mosaic
A React tiling window manager
Stars: ✭ 2,804 (+446.59%)
Mutual labels:  window-manager, tiling-window-manager
Nixpkgs Wayland
Automated, pre-built packages for Wayland (sway/wlroots) tools for NixOS.
Stars: ✭ 178 (-65.3%)
Mutual labels:  wayland, tiling-window-manager
Frames Only Mode
Make emacs play nicely with tiling window managers by setting it up to use frames rather than windows
Stars: ✭ 96 (-81.29%)
Mutual labels:  window-manager, tiling-window-manager
shod-old
hybrid (floating and tiling) tabbed window manager
Stars: ✭ 56 (-89.08%)
Mutual labels:  window-manager, tiling-window-manager
axyl-iso
Axyl is a Linux distro centered on tiling window managers. Choose from i3, bspwm, dwm and more.
Stars: ✭ 348 (-32.16%)
Mutual labels:  window-manager, tiling-window-manager
Durden
Desktop Environment for Arcan
Stars: ✭ 158 (-69.2%)
Mutual labels:  window-manager, tiling-window-manager
Dotfiles
Configuration files for XMonad, Emacs, NixOS, Taffybar and more.
Stars: ✭ 127 (-75.24%)
Mutual labels:  window-manager, tiling-window-manager
River
A dynamic tiling wayland compositor
Stars: ✭ 513 (+0%)
Mutual labels:  wayland, window-manager
Paperwm
Tiled scrollable window management for Gnome Shell
Stars: ✭ 1,364 (+165.89%)
Mutual labels:  window-manager, tiling-window-manager
Workspacer
a tiling window manager for Windows
Stars: ✭ 486 (-5.26%)
Mutual labels:  window-manager, tiling-window-manager
Quicktile
Adds window-tiling hotkeys to any X11 desktop. (An analogue to WinSplit Revolution for people who don't want to use Compiz Grid)
Stars: ✭ 719 (+40.16%)
Mutual labels:  window-manager, tiling-window-manager
shod
mouse-based window manager that can tile windows inside floating containers
Stars: ✭ 126 (-75.44%)
Mutual labels:  window-manager, tiling-window-manager
gobble
Rust rewrite of Devour
Stars: ✭ 23 (-95.52%)
Mutual labels:  window-manager, wayland
Wmderland
🌳 X11 tiling window manager using space partitioning trees
Stars: ✭ 341 (-33.53%)
Mutual labels:  window-manager, tiling-window-manager

Fireplace Crates.io Supported by DesertBit

Old Codebase below!


I am switching the engine. The old und deprecated

wlc Library

gets replaced by the new and shiny all-rust:

Smithay


Active development currently over:

Chatroom on Matrix Chatroom on Gitter

and will continue here soon!


Build instructions for the old codebase:

  • rustup install nightly-2017-03-02
  • cd fireplace
  • rustup override set nightly-2017-03-02
  • cargo build --release

Old ReadMe / Codebase Build Status Crates.io Crates.io

He who wants to warm himself in old age must build a fireplace in his youth.

A modular wayland window manager

Screenshot

Fireplace strives to be as feature-rich as possible without compromising its slim and fast codebase. It is written in Rust and is based on the great wlc library and does its rendering directly in OpenGL.

Structure

This repository is divided into three parts

  • fireplace_lib - The underlying library which can be used to modify fireplace to your personal needs!
  • fireplace - The reference implementation as presented here
  • fireplace_flavors - Alternative implementations and experiments not belonging to the core library or binary

This README is about the reference implementation for end-users, if you are interested in learning about its implementation details or contributing, please take a look at one of their README files.

Status

Fireplace just hit 1.0, so it is in a usable state, but a bit limited.

  • [x] BSP-style window tiling
  • [x] Floating windows
  • [x] Basic UI rendering with statusbar
  • [x] Screenshots
  • [x] ... and many more!

But it still missed some rather important features for every day use:

  • [ ] Fix some remaining application specific bugs
  • [ ] Lock screen
  • [ ] ...and also many more...

Installation

Binaries are provided on the GitHub Release Page for Linux x86_64

Packages are not provided at it's current state, but will be added to this description once available.

Running

Follow the build instructions and run: ./target/release/fireplace

Starting with an X Server running will run fireplace nested.

For easier start up a session file is provided, just copy it to /usr/share/wayland-sessions/ and fireplace to /usr/bin/ and fireplace should be visible in your desktop manager.

For running as a user process logind is required to optain the required permissions. Alternatively set the suid flag on the executable and fireplace will drop privileges after opening the required hardware devices.

Configuration

Configuration is done in YAML format.

You can see a detailed example at fireplace.yaml

The configuration file should be placed into the $XDG_CONFIG_DIR - if set - or into $HOME/.config otherwise. The name may either be fireplace.yaml or .fireplace.yaml. You can also add a folder called fireplace and store the config file there, if you happen to like folders.

A global configuration can be provided in /etc/fireplace/fireplace.yaml.

Building

fireplace is written in Rust and therefore requires Cargo to build, which is shipped with the rust compiler.

fireplace also needs a current (>=1.17) nightly version of Rust, if you have no idea, where to start, this command should help you to bootstrap a working toolchain:

curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly

Additional dependencies for building & running include:

  • wlc
  • pixman
  • wayland 1.7+
  • wayland-protocols 1.7+
  • libxkbcommon
  • udev
  • libinput
  • libx11 (X11-xcb, Xfixes)
  • libxcb (xcb-ewmh, xcb-composite, xcb-xkb, xcb-image, xcb-xfixes)
  • libgbm (usually provided by mesa in most distros)
  • libdrm
  • libEGL (GPU drivers and mesa provide this)
  • libGLESv2 (GPU drivers and mesa provide this)
  • libfontconfig1
  • libfreetype6

And optionally:

  • dbus (for logind support)
  • systemd (for logind support)

Build Dependencies:

  • fontconfig
  • libclang (>=3.8)

By default wlc is automatically build and statically linked into fireplace as well as wayland-protocols.

Building then is as easy as:

git clone https://github.com/Drakulix/fireplace.git
cd fireplace/fireplace
cargo build --release

Please take note that you cannot build in the root directory. The resulting binary will be at <root>/target/release/fireplace.

To avoid statically linking and disable the optional Ui code use

cargo build --release --no-default-features

If you have libclang in another path then /usr/lib you have to provide it:

LIBCLANG_PATH=/usr/lib64 cargo build --release

For more ways to disable and enable certain features and other quirks see the README of the fireplace binary.

For additional flavors see the READMEs of a specific flavor.

Contributing

Pull requests, feature requests, bug reports, every contribution is highly appreciated, but please note, that I do this in my free time and your request maybe be given a very low priority and postponed for quite some time. The best way to participate is start hacking on the codebase. I will give my best to answer any questions related to documentation and the core library as quickly as possible to assist you! A window manager sounds like a pretty complicated project, but most of the hard work is already done by the underlying wlc library! So believe me when I say: "it's not that hard" :)

Please also make sure to read through CONTRIBUTING.md for some very basic constraints to follow

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].