Versions |
0.1.0, 0.1.1, 0.1.2, 0.1.3, 0.2.0, 0.2.1, 0.3.0, 0.4.0, 0.4.1, 0.4.2, 0.4.3, 0.4.4, 0.4.5, 0.4.6, 1.0.0, 1.0.1, 1.0.2, 2.0.0, 2.1.0, 2.1.1, 2.1.2, 3.0.0, 3.1.0, 3.1.1, 3.1.2, 3.2.0, 3.2.1, 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.3.0, 4.0.0, 4.0.1, 4.0.2, 4.0.3 |
Change log |
CHANGELOG.md |
Dependencies |
ansi-terminal, base (>3 && <5), broadcast-chan (>=0.2.0.2), bytestring, ConfigFile, containers, dbus (>=1.2.1 && <2.0.0), dbus-hslogger (>=0.1.0.1 && <0.2.0.0), directory, dyre (>=0.8.6 && <0.9), either (>=4.0.0.0), enclosed-exceptions (>=1.0.0.1), filepath, gi-cairo, gi-cairo-connector, gi-cairo-render, gi-gdk, gi-gdkpixbuf (>=2.0.18), gi-gdkx11, gi-glib (>=2.0.17), gi-gtk, gi-gtk-hs, gi-pango, gtk-sni-tray (>=0.1.5.0), gtk-strut (>=0.1.2.1), haskell-gi (>=0.22.6), haskell-gi-base (>=0.22.2), hslogger, HStringTemplate (>=0.8 && <0.9), http-client (>=0.5), http-client-tls, http-types, multimap (>=1.2.1), network (<3), network-uri (<3), old-locale, optparse-applicative, parsec (>=3.1), process (>=1.0.1.1), rate-limit (>=1.1.1), regex-compat, safe (>=0.3 && <1), scotty (>=0.11.0 && <0.12.0), split (>=0.1.4.2), status-notifier-item (>=0.3.0.1), stm, taffybar, template-haskell, text, time (>=1.8 && <2.0), time-locale-compat (>=0.1 && <0.2), time-units (>=1.0.0), transformers (>=0.3.0.0), transformers-base (>=0.4), tuple (>=0.3.0.2), unix, utf8-string, X11 (>=1.5.0.1), xdg-basedir (>=0.2 && <0.3), xml, xml-helpers, xmonad [details] |
License |
BSD-3-Clause |
Author |
Ivan Malison |
Maintainer |
IvanMalison@gmail.com |
Category |
System |
Home page |
http://github.com/taffybar/taffybar
|
Source repo |
head: git clone git://github.com/taffybar/taffybar.git |
Uploaded |
by eyevanmalicesun at 2019-06-18T00:56:51Z |
Taffybar
![https://github.com/taffybar/taffybar/blob/master/doc/screenshot.png](https://raw.githubusercontent.com/taffybar/taffybar/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
The installation method, and procedure that must be followed depends on whether
or not you intend to setup a new haskell project and use startTaffybar
, or if
you want to use the dyreTaffybar
approach. 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.
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
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: