Skip to content
This repository has been archived by the owner on Jan 11, 2020. It is now read-only.

Commit

Permalink
Updated README, updated contributing and ISSUE_TEMPLATE
Browse files Browse the repository at this point in the history
  • Loading branch information
Timidger committed Apr 6, 2018
1 parent 9b70f42 commit de9659e
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 159 deletions.
11 changes: 6 additions & 5 deletions Contributing.md
@@ -1,10 +1,11 @@
# Contributing to Way Cooler

We are always looking for more help to improve Way Cooler. Even if you don't know how to write any Rust code, we always need better documentation, detailed bug reports, and suggestions for more features.
To contribute code, all that is required is that you have an email address and you can send a pull request via Github.

See [here](ways-to-contribute.md) to find out how you can contribute to Way Cooler.
Regardless if you are planning for or looking for something to do, it's best if you reach out via the [IRC channel](https://webchat.freenode.net/?channels=awesome&uio=d4) first.

## Guidelines

Every pull request that adds new functionality / fixes a bug should have tests ensuring that the feature works / the bug can't happen again. If this isn't possible (for example it would require mocking wlc, something that is currently very difficult), exceptions can be made.
# Release Cycle
For pre-1.0 there is no fixed release. Once 1.0 has been released a release cycle will be determined and will probably follow what Awesome does.

# Coding style
Please run rustfmt on your code before submission. That is the easiest way to ensure you follow the code style. To invoke the formatter, simply run `cargo fmt`.
4 changes: 3 additions & 1 deletion ISSUE_TEMPLATE.md
Expand Up @@ -4,7 +4,7 @@

Please provide, at minimum:
* Way Cooler version (obtained via `way-cooler --version`
* Init file
* rc file
* Debug log

You can obtain a debug log like so: `way-cooler 2> log.txt`
Expand All @@ -15,6 +15,8 @@ If the error is a result of a segfault, please also include a backtrace or a cor
If you provide this information as well, I can respond to your request much faster:
* Is the issue reproducible on Sway?
- We share the same backend, so if it's not a Way Cooler specific issue it might affect them too
* Is the issue reproducible on Awesome?
- It may not be a bug, it could be a feature.
* What distro do you run?
* How did you install Way Cooler?
- E.g: build from source? Package manager? Found on a disk by the side of the road?
Expand Down
33 changes: 33 additions & 0 deletions README.html
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>README.html</title>

</head>

<body>

<h1><img src="http://i.imgur.com/OGeL1nN.png" width="60"> Way Cooler <a href="https://crates.io/crates/way-cooler"><img src="https://img.shields.io/crates/v/way-cooler.svg" alt="Crates.io" /></a> <a href="https://crates.io/crates/way-cooler"><img src="https://img.shields.io/crates/d/way-cooler.svg" alt="Downloads" /></a> <a href="https://github.com/way-cooler/way-cooler/"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License" /></a></h1>

<p>Way Cooler is a clone of <a href="https://awesomewm.org/">AwesomeWM</a> written in <a href="https://www.rust-lang.org">Rust</a> for <a href="https://wayland.freedesktop.org/">Wayland</a> using <a href="https://github.com/swaywm/wlroots">wlroots</a>.</p>

<h1>Development</h1>

<p>Way Cooler is under very active development right now. Currently, master is not usable for production. There are old versions of Way Cooler that do work, however:
* They use an old framework, <a href="https://github.com/Cloudef/wlc">wlc</a>, and thus are very limited and buggy.
* Was not designed to emulate Awesome, but instead has [i3][] tiling and its own (very incomplete) Lua libraries.</p>

<p>There will be another release this year, v0.9.0. It will be the last release before 1.0. 1.0 is defined to be 100% compatible with AwesomeWM.</p>

<h1>Contributing</h1>

<p>Check out <a href="Contributing.md">Contributing</a> for more information.</p>

<p>If you find bugs or have questions about the code, please <a href="https://github.com/Immington-Industries/way-cooler/issues/new">submit an issue</a> or ask us on <a href="https://webchat.freenode.net/?channels=awesome&amp;uio=d4">IRC</a>.</p>

</body>
</html>
151 changes: 10 additions & 141 deletions README.md
@@ -1,156 +1,25 @@
# <img src="http://i.imgur.com/OGeL1nN.png" width="60"> Way Cooler [![Crates.io](https://img.shields.io/crates/v/way-cooler.svg)](https://crates.io/crates/way-cooler) [![Downloads](https://img.shields.io/crates/d/way-cooler.svg)](https://crates.io/crates/way-cooler) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/way-cooler/way-cooler/)

Way Cooler is a customizable tiling window manager written in [Rust][] for [Wayland][wayland] and configurable using [Lua][].
Way Cooler is a clone of [AwesomeWM][] written in [Rust][] for [Wayland][] using [wlroots][].

It is heavily inspired by the tiling of [i3][] and the extensibility of [awesome][].

While Lua is used for the runtime configuration (like in [awesome][]), extensions for Way Cooler are implemented as totally separate client programs using [D-Bus][]. Currently we support 3 official extensions:
* [way-cooler-bg](https://github.com/way-cooler/way-cooler-bg): Draws the background for Way Cooler.
* [wc-grab](https://github.com/way-cooler/way-cooler-grab): Allows the user to take pictures of a screen.
* [wc-lock](https://github.com/way-cooler/way-cooler-lock): Locks Way Cooler and requires their password to be entered to unlock.

# Development

Way Cooler is currently in beta. The core features have been added and it is in a usable state, but there will be backwards-incompatible changes in future versions that might require some user intervention.

Once Way Cooler reaches 1.0, we will guarantee backwards compatibility for both the configuration files and the D-Bus interfaces.

Here are some pictures of what Way Cooler looks like today:

[![](http://i.imgur.com/UQAmli3.png)](http://i.imgur.com/UQAmli3.png)
[![](http://i.imgur.com/e89P4hw.png)](http://i.imgur.com/e89P4hw.png)
[![](http://imgur.com/A3V5x28.png)](http://imgur.com/A3V5x28.png)


## Motivation

We wanted to get experience with Rust and we found current X11 window managers to not have all the features we wanted.

Currently there are very few fully-featured tiling window managers in the Wayland ecosystem, as most of the effort has been porting Gnome and KDE over. Although Wayland is still in early-stage development
and is not backwards compatible with existing X11 tools, we wanted to put our stake in and provide for current tiling window manager users in the future.


## Current Features
- i3-style tiling
* Horizontal/Vertical layouts
* Tabbed/Stacked layouts
* Nest containers with different layouts
* Floating windows per workspace
- Client application support via the D-Bus IPC
* See an example application [here](https://github.com/way-cooler/Way-Cooler-Example-Clients). It displays the tree in a somewhat organized format, and is actually really helpful for both debugging the tree and understanding how subcontainers work.
* Enables dynamic configuration at runtime, without having to reload a configuration file
* Allows extensions of the window manager to exist as separate programs talking over the IPC
- A Lua 53 environment designed to make extending Way Cooler simple and easy
* Lua is the configuration format, allowing the user to enhance their window manager in any way they want.
* Utilities library included to aid communicating with Way Cooler
- X programs supported through XWayland
- Borders around containers
- Gaps between containers
- Basic X11 bar support (e.g [lemonbar][], [polybar][])
- Screen grabber / screen shot taker
- Lock screen

## Planned Features

- Notification support
- AwesomeWM compatibility (see [this issue for more info](https://github.com/way-cooler/way-cooler/issues/338))
- A dedicated status bar
* The status bar should be swappable, such that a user can implement their own or use a different one.
- More customization settings

Follow the development of these features in our [issues section] or checkout our [contribution guidelines](#Contributing) if you want to help out.

# Installation

## On the AUR

@vinipsmaker and @timidger maintain our AUR packages:

[way-cooler][way-cooler-aur]

[way-cooler-git][way-cooler-git-aur]

## NixOS

@miltador maintains our [NixOS package](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/window-managers/way-cooler/default.nix).

## openSUSE

@jubalh maintains our [openSUSE package](https://build.opensuse.org/package/show/X11:windowmanagers/way-cooler).
Install with:

```
zypper ar -f obs://X11:windowmanagers windowmanagers
zypper in way-cooler
```

## Installation Script

For users who are not using the above mentioned Linux distributions, we have provided a simple install script that you can run in the terminal in order to install Way Cooler.

Please go to the [download page on our site](http://way-cooler.org/download) in order to download Way Cooler.

## Build from source

You will need the following dependencies installed on your machine to install Way Cooler:
- Wayland
* Including the server and client libraries
- wlc
* Installation instructions can be found on [their github page](https://github.com/Cloudef/wlc)
- Weston (optional)
* The init file defaults to using `weston-terminal` as the default terminal emulator
- Cargo
* The package manager / build system used by Rust
- Cairo

Finally, to install Way Cooler simply run the following cargo command:

```shell
cargo install way-cooler
```

You can try it out while running in an X environment, or switch to a TTY and run it as a standalone.

# Init File

All keyboard shortcuts are configurable through the init file. The recommended strategy is to copy the [default configuration file](https://github.com/way-cooler/way-cooler/blob/master/config/init.lua) to `$XDG_CONFIG_HOME/way-cooler/init.lua` and edit from there.

# Contributors
Way Cooler was started by @Timidger and @SnirkImmington, but these fine people have helped us:

- @Dcelemeno for creating the logo
- @platipo for creating the official backgrounds
- @vinipsmaker created (and maintains) AUR packages
- @miltador created NixOS package
- @starfys created way-cooler desktop file
- @toogley fixed a link
- @paulmenzel fixed a typo
- @thefarwind made kill way-cooler command rebindable
- @bluss for updating our use of `PetGraph` to use `StableGraph`
- @Abdillah
+ fixed background program to have solid colors be variable size at initialization
+ [added modes to the background program (fill, fit, stretch, title)](https://github.com/way-cooler/way-cooler-bg/pull/6#pullrequestreview-32859779)
- @hedning fixed an unsigned underflow in the tiling code
- @jubalh created the openSUSE package
Way Cooler is under very active development right now. Currently, master is not usable for production. There are old versions of Way Cooler that do work, however:
* They use an old framework, [wlc][], and thus are very limited and buggy.
* Was not designed to emulate Awesome, but instead has [i3][] tiling and its own (very incomplete) Lua libraries.

And of course, thanks to the Rust community and the developers of [wlc].
There will be another release this year, v0.9.0. It will be the last release before 1.0. 1.0 is defined to be 100% compatible with AwesomeWM.

# Contributing
Check out [Contributing](Contributing.md) for more information.

If you find bugs or have questions about the code, please [submit an issue] or [ping us on gitter][gitter].
If you find bugs or have questions about the code, please [submit an issue][] or ask us on [IRC][].

[Rust]: https://www.rust-lang.org
[wayland]: https://wayland.freedesktop.org/
[Lua]: https://lua.org/
[Wayland]: https://wayland.freedesktop.org/
[wlc]: https://github.com/Cloudef/wlc
[i3]: https://i3wm.org
[D-Bus]: https://www.freedesktop.org/wiki/Software/dbus/
[awesome]: https://awesomewm.org/
[polybar]: https://github.com/jaagr/polybar
[lemonbar]: https://github.com/LemonBoy/bar
[issues section]: https://github.com/Immington-Industries/way-cooler/issues
[AwesomeWM]: https://awesomewm.org/
[submit an issue]: https://github.com/Immington-Industries/way-cooler/issues/new
[gitter]: https://gitter.im/Immington-Industries/way-cooler?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
[way-cooler-aur]: https://aur.archlinux.org/packages/way-cooler/
[way-cooler-git-aur]: https://aur.archlinux.org/packages/way-cooler-git/
[wlroots]: https://github.com/swaywm/wlroots
[IRC]: https://webchat.freenode.net/?channels=awesome&uio=d4
12 changes: 0 additions & 12 deletions ways-to-contribute.md

This file was deleted.

0 comments on commit de9659e

Please sign in to comment.