Giter Club home page Giter Club logo

grobi's Introduction

Build Status

grobi

This program watches for changes in the available outputs (e.g. when a monitor is connected/disconnected) and will automatically configure the currently used outputs via RANDR according to configurable profiles.

This Fork

This fork makes a few changes. For one it adds the possibility to specify a display rotation. For details see [doc/grobi.conf].

Installation

Grobi requires Go version 1.11 or newer to compile. To build grobi, run the following command:

$ go build

Afterwards please find a binary of grobi in the current directory:

$ ./grobi --help
Usage:
  grobi [OPTIONS] <command>

Application Options:
  -v, --verbose   Be verbose (false)
  -C, --config=   Read config from this file
  -n, --dry-run   Only print what commands would be executed without actually
                  runnig them
  -i, --interval= Number of seconds between polls, set to zero to disable
                  polling (5)
  -p, --pause=    Number of seconds to pause after a change was executed (2)
  -l, --logfile=  Write log to file

Help Options:
  -h, --help      Show this help message

Available commands:
  apply    apply a rule
  update   update outputs
  version  display version
  watch    watch for changes

Configuration

Have a look at the sample configuration file provided at doc/grobi.conf. By default, grobi uses the XDG directory standard to search for the config file. Most users will probably put the config file to ~/.config/grobi.conf.

If you have any questions, please open an issue on GitHub.

There is also a sample systemd unit file you can run as a user. This requires that the PATH and DISPLAY environment variables can be accessed, so run the following command in e.g. your ~/.xsession file just before starting the window manager:

systemctl --user import-environment DISPLAY PATH

Run the command once to import the environment for the current session, then execute the following commands to install and start the unit:

mkdir ~/.config/systemd/user
cp doc/grobi.service ~/.config/systemd/user
systemctl --user enable grobi
systemctl --user start grobi

You can then use systemctl to check the current status:

systemctl --user status grobi

Compatibility

Grobi follows Semantic Versioning to clearly define which versions are compatible. The configuration file and command-line parameters and user-interface are considered the "Public API" in the sense of Semantic Versioning.

Development

Release New Version

Rough steps for releasing a new version:

  • Update version number in cmd_version.go, remove the -dev suffix
  • Commit and tag version
  • Add -dev suffix to version in cmd_version.go

grobi's People

Contributors

clonejo avatar edanbe avatar fd0 avatar jojonas avatar rad4day avatar rtpt-alexanderneumann avatar yaunj avatar zcalusic 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.