• Stars
    star
    126
  • Rank 284,543 (Top 6 %)
  • Language
    Go
  • License
    BSD 2-Clause "Sim...
  • Created about 9 years ago
  • Updated about 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Automatically configure monitors/outputs for Xorg via RANDR

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.

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

More Repositories

1

machma

Easy parallel execution of commands with live feedback
Go
487
star
2

rabin-cdc

Fast implementation of Content Defined Chunking (CDC) based on a rolling Rabin Checksum in C.
C
46
star
3

fnordlicht

fnordlicht firmware in C, next generation
C
31
star
4

hackrf-one-pictures

Pictures of the final hardware version of hackrf
30
star
5

lbfs

Mirror of the original lbfs (Low Bandwidth File System) cvs repository at http://www.fs.net/cvs/lbfs/ (404)
C++
28
star
6

build-go

build.go - Program for building Go binaries without a GOPATH
Go
21
star
7

foodloader

Atmel ATmega serial bootloader
C
16
star
8

go-iptables

Bindings for some functions of libiptc
Go
11
star
9

split

Split large files into smaller ones using deterministic Content Defined Chunking
Go
10
star
10

jawbreaker-pictures

Pictures of the hackrf jawbreaker beta board
7
star
11

psha

Go
6
star
12

vmail

command-line for managing mailboxes and aliases for mail server setups based on the howto (English) (German) by Thomas Leister
Go
6
star
13

dab

Module-based dotfiles manager
Go
6
star
14

avrdude

git mirror (with own extensions) of the avrdude svn
C
4
star
15

talk-intro-go

Introduction to Go (in German)
Go
4
star
16

toothrotd

Daemon that listens for and logs rogue packets received (described via pcap filter expression)
C
4
star
17

serialclient

Program for debugging serial communication (eg with microcontrollers)
C
4
star
18

uens

Call scripts which run within the user's X session on ACPI or systemd events
Shell
4
star
19

randall

Go
3
star
20

ergodox-tmk

Firmware for the ErgoDox keyboard based on tmk
C
3
star
21

erpel

A better logcheck replacement
Go
3
star
22

dachs

Compare outputs, send report
Go
3
star
23

usbload

software usb bootloader for various projects
C
3
star
24

termstatus

Go
3
star
25

kahuna

Firmware for kahuna usbasp compatible Atmel AVR programmer
C
2
star
26

lasso

Go
2
star
27

simpleproxy

Go
2
star
28

distriproxy

Go
1
star
29

ghm

Go
1
star
30

diva

Go
1
star
31

tdt-with-state

Go
1
star
32

elmo

Go
1
star