All Projects → taffybar → Taffybar

taffybar / Taffybar

Licence: bsd-3-clause
A gtk based status bar for tiling window managers such as XMonad

Programming Languages

haskell
3896 projects

Projects that are alternatives of or similar to Taffybar

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 (+43.23%)
Mutual labels:  gtk, x11, tiling-window-manager
Dewm
A pure go autotiling window manager written with literate programming
Stars: ✭ 225 (-55.18%)
Mutual labels:  x11, tiling-window-manager
Frankenwm
🖼️ Fast dynamic tiling X11 window manager
Stars: ✭ 209 (-58.37%)
Mutual labels:  x11, tiling-window-manager
Kime
Korean IME
Stars: ✭ 208 (-58.57%)
Mutual labels:  gtk, x11
Imv
Image viewer for X11/Wayland
Stars: ✭ 652 (+29.88%)
Mutual labels:  x11, tiling-window-manager
shod
mouse-based window manager that can tile windows inside floating containers
Stars: ✭ 126 (-74.9%)
Mutual labels:  x11, tiling-window-manager
Xinput Gui
A simple GUI for Xorg's Xinput tool.
Stars: ✭ 143 (-71.51%)
Mutual labels:  gtk, x11
Xsuspender
👀 💻 💤 🔋 Save battery by auto-suspending unfocused X11 applications.
Stars: ✭ 53 (-89.44%)
Mutual labels:  x11, tiling-window-manager
gtk-sni-tray
A StatusNotifierHost widget written using the gtk+3 bindings for haskell provided by gi-gtk.
Stars: ✭ 24 (-95.22%)
Mutual labels:  gtk, dbus
Jde
Linux desktop environment built with HTML5, CSS, JavaScript and Python.
Stars: ✭ 591 (+17.73%)
Mutual labels:  dbus, gtk
Linux notification center
A notification daemon/center for linux
Stars: ✭ 545 (+8.57%)
Mutual labels:  dbus, gtk
Wmderland
🌳 X11 tiling window manager using space partitioning trees
Stars: ✭ 341 (-32.07%)
Mutual labels:  x11, tiling-window-manager
shod-old
hybrid (floating and tiling) tabbed window manager
Stars: ✭ 56 (-88.84%)
Mutual labels:  x11, tiling-window-manager
Wxwidgets
wxWidgets is a free and open source cross-platform C++ framework for writing advanced GUI applications using native controls.
Stars: ✭ 3,994 (+695.62%)
Mutual labels:  gtk, x11
Nigui
Cross-platform desktop GUI toolkit written in Nim
Stars: ✭ 430 (-14.34%)
Mutual labels:  gtk
Under The Hood Reactjs
Entire React code base explanation by visual block schemes (Stack version)
Stars: ✭ 4,794 (+854.98%)
Mutual labels:  stack
Rfx Stack
RFX Stack - Universal App
Stars: ✭ 427 (-14.94%)
Mutual labels:  stack
Akira
Native Linux App for UI and UX Design built in Vala and GTK
Stars: ✭ 4,597 (+815.74%)
Mutual labels:  gtk
Workspacer
a tiling window manager for Windows
Stars: ✭ 486 (-3.19%)
Mutual labels:  tiling-window-manager
Coding Interview Gym
leetcode.com , algoexpert.io solutions in python and swift
Stars: ✭ 451 (-10.16%)
Mutual labels:  stack

Taffybar Build Status Hackage Commits Stackage LTS Stackage Nightly Help Wanted Gitter chat License BSD3

https://github.com/taffybar/taffybar/blob/master/doc/screenshot.png

Taffybar is a gtk+3 (through gi-gtk) based desktop information bar, intended primarily for use with XMonad, though it can also function alongside other EWMH compliant window managers. It is similar in spirit to xmobar, but it differs in that it gives up some simplicity for a reasonable helping of eye candy.

Before Installing

Taffybar's installation procedure varies depending on whether or not you intend to setup a new haskell project and use startTaffybar or use the dyreTaffybar with a global haskell installation . It is important for you to read this section so you can understand what all of that means before you decide how you want to install taffybar.

Taffybar is a library

As with window managers like XMonad and dwm, taffybar is most appropriately described as a library that allows you to build an executable that is customized to your tastes. This means that taffybar must be installed alongside a haskell compiler (ghc) that can compile the user's configuration source file.

The taffybar binary and startTaffybar vs dyreTaffybar

Taffybar can be started from your configuration file in two different ways:

dyreTaffybar

The dyreTaffybar entry point to taffybar uses the dyre library to automatically recompile your taffybar configuration whenever it detects that it has changed. The binary that is distributed with taffybar does nothing more than call this entry point. The main downside of this approach is that it does not allow the user to use any sort of project files for their configuration, and they must have any packages that are necessary for compilation of their configuration available in their global ghc environment.

startTaffybar

The startTaffybar entry point to taffybar simply starts taffybar with the provided configuration. The user binary will not be automatically recompiled when source files change. The advantage of using startTaffybar directly is that you can use that in the main function of a cabal project.

Distribution Packaging

Several linux distributions package taffybar (nixos, arch/aur, debian). Of these, only the NixOS distribution is officially supported by the maintainers. Using any of the others should be pretty similar to using a bare cabal installation of taffybar.

NixOS

If you wish to use the NixOS package for taffybar, make sure that you are using the module, and not simply the haskellPackage for taffybar. If you need to add additional haskell packages to the environment that compiles your taffybar.hs you will need to invoke that module and use the packages parameter to allow this.

It is also possible to run/use taffybar on NixOS without using this module by using a standalone haskell project for the taffybar configuration.

Using the overlay.nix when taffybar is broken in nixpkgs

The taffybar haskell package in nixpkgs has been broken in the unstable channel from time to time. This repository provides a nix overlay file which can be used to build taffybar with current versions of nixpkgs. See this comment for details on how to use the overlay.

Installation From Hackage/Source

Prerequisites

If you are not using distribution packaging of taffybar or the nix package manager (it will handle getting all the necessary packages for you), you will need to install all of taffybar's non-haskell dependencies manually.

Start by making sure you have installed everything that is needed for haskell-gi. Taffybar also needs the equivalent of libdbusmenu-gtk3-dev and libgirepository1.0-dev on Debian.

You can also get some idea of what the necessary dependencies are by looking at the nix section of the stack.yaml file in the taffybar repository.

Cabal

Cabal installation is a simple matter of installing taffybar from hackage:

cabal install taffybar

You do not need to do this if you are using the project approach with cabal.

The project approach

The project approach to installing/using taffybar involves maintaining a small haskell project that produces the users taffybar binary. No matter which package manager you choose to use you will need to make a .cabal file for this project. It is recommended that you use this example as a template. In that example, the users configuration resides in the file taffybar.hs in the same directory, but that can be changed as needed. As of right now, dyreTaffybar is incompatible with this approach because dyre simply calls ghc directly.

Cabal

Simply run cabal new-install to install the binary.

Stack

With stack, you will also need to maintain a stack.yaml file. Run stack install to install the binary. See this example

Nix

You will need to add default.nix file to your package. See this example

You may also need to use the overlay provided by this repository. See this comment for details.

Overlay

The taffybar haskell package is currently broken in nixpkgs, because some of its dependencies are not compiling correctly/are not sufficiently new. The environment.nix file in this repository fixes these build issues with an overlay. The overlay.nix file extends the environment overlay so that it overrides the taffybar package's build description to build the nix taffybar package from the repository source directory. An example of how to set up nixpkgs to use the taffybar overlay can be found here.

Configuration

Like xmobar and XMonad, taffybar is configured in haskell. Taffybar depends on dyre to automatically detect changes to its configuration file ($XDG_CONFIG_HOME/taffybar/taffybar.hs) and recompile when appropriate.

For more details about how to configure taffybar, see the full documentation. You can find a list of available widgets here

FAQ

For the time being, taffybar's frequently asked questions page lives in this github issue.

Contributing

Taffybar desperately needs contributors. If you want to help, but don't know where to get started you can check out our "help wanted" and "easy" labels:

Help Wanted Help Wanted

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].