Coder Social home page Coder Social logo

swayfx's Introduction

SwayFX: A Beautiful Sway Fork

swayfx_screenshot Sway is an incredible window manager, and certainly one of the most well established wayland window managers. However, it is restricted to only include the functionality that existed in i3. This fork ditches the simple wlr_renderer, and replaces it with our fx_renderer, capable of rendering with fancy GLES2 effects. This, along with a couple of minor changes, expands sway's featureset to include the following:

  • Anti-aliased rounded corners, borders, and titlebars
  • Dim unfocused windows
  • Per application saturation control: Allows the user to set the saturation (Digital Vibrance) for specific applications. Great for some FPS games!
  • Scratchpad treated as minimize: Allows docks, or panels with a taskbar, to correctly interpret minimize / unminimize requests (thanks to LCBCrion)
  • Add a nix flake to the repo: Allows nixos users to easily contribute to and test this project

New Configuration Options

  • Corner radius: corner_radius <val>
  • Smart corner radius: smart_corner_radius on|off
  • Application saturation: for_window [CRITERIA HERE] saturation <set|plus|minus> <val 0.0 <-> 2.0>
  • Window shadows: ONLY ON SWAYFX-GIT, NOT YET RELEASED
    • shadows on|off
    • shadow_blur_radius <integer value 0 - 100>
    • shadow_color <hex color with alpha> ex, #0000007F
  • Dim unfocused windows:
    • dim_inactive <float value 0.0 - 1.0>
    • dim_inactive_colors.unfocused <hex color> ex, #000000FF
    • dim_inactive_colors.urgent <hex color> ex, #900000FF

Roadmap

  • fade in / out animations
  • window movement animations
  • blur

Installation

Nix

If you have Nix installed, you can build and run SwayFX easily:

nix build
./result/bin/sway

You can also bring up a development shell and follow the build instructions below, without installing all of the dependencies manually:

nix develop

Gentoo

If you use gentoo, you can install it from the guru: https://github.com/gentoo/guru/tree/master/gui-wm/swayfx

Compiling from Source

Install dependencies:

  • meson *
  • wlroots
  • wayland
  • wayland-protocols *
  • pcre2
  • json-c
  • pango
  • cairo
  • gdk-pixbuf2 (optional: system tray)
  • [scdoc] (optional: man pages) *
  • git (optional: version info) *

* Compile-time dep

Run these commands:

meson build/
ninja -C build/
sudo ninja -C build/ install

On systems without logind nor seatd, you need to suid the sway binary:

sudo chmod a+s /usr/local/bin/sway

SwayFX will drop root permissions shortly after startup.

Contributing

SwayFX would love to receive any new features that you're willing to build! Generally, we'd like to focus on eye-candy type improvements to keep our scope appropriate. If you'd like to build something that you think may be out of that focus, please raise an issue and we can discuss whether or not it will fit within this project.

Here's a quick outline of where most of our changes lie vs the main sway repository:

  • sway/desktop/render.c: the file that handles calling fx_renderer to render to the screen, handles damage tracking and scaling
  • sway/desktop/fx_renderer.c: the meat and potatoes of this project, structured as similarly to wlr_renderer as possible
  • sway/desktop/shaders: where all of the shaders that fx_renderer uses live

Please join our (for the time being very small) Discord server for development chatter! https://discord.gg/R5hYhC2BFg

swayfx's People

Contributors

1ace avatar acrisci avatar ammgws avatar cedws avatar christophgysin avatar crondog avatar ddevault avatar deathlyfrantic avatar deklov avatar emantor avatar emersion avatar erikreider avatar frsfnrrg avatar hummer12007 avatar ianyfan avatar kennylevinsen avatar lbonn avatar luminarys avatar martinetd avatar mikkeloscar avatar minus7 avatar mstoeckl avatar progandy avatar redsoxfan avatar ryandwyer avatar sce avatar taiyu-len avatar willakat avatar willpower3309 avatar xyene avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.