Commit Graph

368 Commits

Author SHA1 Message Date
Michael Carlberg
9479b5abe2 refactor(xwindow): Cleanup 2016-12-23 01:03:38 +01:00
Michael Carlberg
e47e439954 refactor(modules): Replace callbacks with signals
Refs #265
2016-12-22 22:11:30 +01:00
Michael Carlberg
bc9b9f0d12 refactor: Cleanup 2016-12-21 23:22:02 +01:00
Michael Carlberg
185363056a refactor(x11): Cleanup 2016-12-21 15:04:16 +01:00
Michael Carlberg
788a7ca3a3 refactor(modules): Get rid of .inl files 2016-12-21 09:21:35 +01:00
Michael Carlberg
7979f5b3d4 refactor(modules): Handle events using signal_receiver 2016-12-21 08:38:44 +01:00
Michael Carlberg
c01f111e34 refactor(modules): Move setup to constructor 2016-12-21 08:00:09 +01:00
Michael Carlberg
de04fa3eac feat(github): Option to hide notification count if empty 2016-12-20 05:53:45 +01:00
Michael Carlberg
a89c4ef2dd refactor: Move all event handling to the controller 2016-12-20 05:16:04 +01:00
Michael Carlberg
b417c9f812 feat(github): New module
Module used to query the GitHub API for information.
Currently only supports notification count.

Ref #84
2016-12-19 22:12:31 +01:00
Michael Carlberg
519172b6ec feat(xkeyboard): Switch layout group on click
When serveral layout groups are defined for the keyboard
they can be cycled when clicking on the module.

   For example:

   $ setxkbmap -layout us,sv,fr

Ref #84
2016-12-16 11:31:08 +01:00
Michael Carlberg
f50f43af02 refactor: Cleanup 2016-12-16 10:23:54 +01:00
Michael Carlberg
09ea07b750 refactor(battery): Use charge_{now,full} to calculate percentage 2016-12-16 09:58:54 +01:00
Michael Carlberg
a0d485f79d refactor: Initialize data 2016-12-15 09:30:31 +01:00
Michael Carlberg
4870204b4f feat(bspwm,i3): Configurable scroll direction 2016-12-14 17:18:20 +01:00
Michael Carlberg
b156d1bbf4 refactor(bspwm): Cleanup 2016-12-14 11:01:44 +01:00
Michael Carlberg
80a00bd596 refactor(config): Cleanup and minor tweaks 2016-12-14 11:01:44 +01:00
Michael Carlberg
5e2a0bd298 refactor(alsa): Forward alsa structs and split classes 2016-12-14 11:01:44 +01:00
Michael Carlberg
4fca0c89b4 refactor: Object construction 2016-12-14 11:01:44 +01:00
Michael Carlberg
08be86fbe1 wip(refactor): Improve signal and event handling 2016-12-14 11:01:44 +01:00
Michael Carlberg
d45fd76dcd refactor(config): Drop boost::property_tree 2016-12-14 10:57:45 +01:00
Michael Carlberg
3a6ca90fcb refactor(i3): Remove wsname-maxlen 2016-12-14 04:45:34 +01:00
Michael Carlberg
f4529dde99 feat(i3): Conditional wrap around on scroll
Ref #242
2016-12-14 00:46:54 +01:00
Michael Carlberg
891ff6d80a fix(xkeyboard): Use current group number
Ref #230
2016-12-08 18:35:07 +01:00
Michael Carlberg
ebe1998b19 fix(bspwm): Change event strings 2016-12-05 14:02:16 +01:00
Michael Carlberg
ec39859093 feat: Window click handlers
New parameters for defining fallback click handlers
that will be triggered for the whole window unless
a module action is matched.

Parameters added to all [bar/foo] sections:

- `click-left = ...`
- `click-middle= ...`
- `click-right= ...`
- `scroll-up= ...`
- `scroll-down= ...`

Ref #226
2016-12-05 13:17:15 +01:00
Michael Carlberg
7d1092db04 refactor(date): Add label and date/time tokens
Ref #225
2016-12-05 04:52:00 +01:00
NBonaparte
ffbedf4217 feat: Add support for prefix and suffix to formats 2016-12-04 02:33:38 +01:00
Michael Carlberg
604e926924 refactor(script): Format tag <label>
Mark <output> and maxlen as deprecated
2016-12-03 21:10:01 +01:00
Michael Carlberg
d4eaf21052 fix(xworkspaces): Correct desktop index for pinned workspaces
- Use the correct desktop index when only displaying
workspaces for the configured monitor/viewport.

- Wrapping scroll
2016-12-03 13:45:26 +01:00
Michael Carlberg
4776ec49df fix: Use defined event sink priority 2016-12-03 13:00:40 +01:00
Michael Carlberg
9f8dabfc8d refactor(xwindow): Cleanup 2016-12-01 08:35:59 +01:00
Michael Carlberg
24a2febd59 fix(build): GCC name error 2016-11-30 21:17:30 +01:00
Michael Carlberg
6db66896bd refactor(bspwm): Cleanup states 2016-11-30 21:12:47 +01:00
Franklin Delehelle
466e9e212f feat(bspwm): Separate focused/unfocused states
Closes #201
2016-11-30 21:04:22 +01:00
Michael Carlberg
9cadb681d4 feat(i3): Add mode label 2016-11-30 18:23:11 +01:00
Michael Carlberg
f6ae5bd191 fix(build): Optional XKB 2016-11-30 14:26:11 +01:00
Michael Carlberg
d67515d575 fix(xwindow): Look for unicode wm_name
Ref #205
2016-11-30 13:38:41 +01:00
Michael Carlberg
608519363d feat(xkeyboard): New module
New module that uses the X keyboard extension
to show keyboard layout and indicators.

Ref #84, #200
2016-11-30 10:08:44 +01:00
Michael Carlberg
12ff82e913 feat(xworkspaces): Change current desktop 2016-11-26 10:33:32 +01:00
Michael Carlberg
3413c4a463 wip(xworkspaces): Monitor support 2016-11-26 09:38:55 +01:00
Michael Carlberg
b25fa46ac2 wip(xworkspaces): EWMH desktops
Ref #84
2016-11-26 06:30:33 +01:00
Michael Carlberg
9f4638f42c refactor: Cleanup 2016-11-26 06:13:20 +01:00
Michael Carlberg
ff9be848c7 refactor(clang-tidy): Apply fixes 2016-11-25 21:58:49 +01:00
Michael Carlberg
8db3e79919 refactor(clang-format): Apply fixes 2016-11-25 14:17:41 +01:00
Michael Carlberg
9fdc22843b refactor: Cleanup rendering 2016-11-25 04:42:27 +01:00
NBonaparte
199a825494 feat(mpd): Add stop toggle (#191) 2016-11-25 04:33:58 +01:00
Michael Carlberg
5028779528 fix(network): Change default value of udspeed_minwidth 2016-11-22 20:53:14 +01:00
Michael Carlberg
cf22468503 fix(build): Optional module fallback
Ref #176
2016-11-21 01:14:05 +01:00
Michael Carlberg
d616a7d351 fix(build): Move chrono namespace to correct level
Ref #176
2016-11-21 00:19:22 +01:00
Michael Carlberg
c6d85b2b92 refactor: Optimize build 2016-11-20 23:04:31 +01:00
Michael Carlberg
88c8bbd940 refactor: Fwd declare drawtypes
Ref #164
2016-11-19 15:49:06 +01:00
Michael Carlberg
38f9ba81cd feat(battery): Estimated time remaining
Adds a new token %time% that will display an
estimate of the remaining time until fully
charged/discharged
2016-11-19 15:42:31 +01:00
Michael Carlberg
fd57ab0f3d fix: project rename 2016-11-19 06:26:07 +01:00
Michael Carlberg
1b159786f0 fix(xwindow): Ignore xcb timestamp 2016-11-19 04:34:46 +01:00
Michael Carlberg
51d8f289fa feat(xwindow): New module "xwindow"
Add module to display title of active window.
Requires WM with support for the _NET_ACTIVE_WINDOW hint.

Ref #84
2016-11-19 04:05:13 +01:00
Edgard Castro
1ea39e562a feat(bspwm): Additional dimmed states configuration 2016-11-15 04:33:10 -02:00
Michael Carlberg
2301de667b fix(temperature): Calculate percentage value 2016-11-14 17:56:29 +01:00
Michael Carlberg
983963d4e4 feat(network): Accumulate stats from all interfaces
Add config setting that will display accumulated
values for up-/downspeed (accumulate-stats = true)

Closes #144
2016-11-14 12:42:59 +01:00
Michael Carlberg
e3065d0e6c feat(ipc): New ipc module
Add a new module that allow users to configure hooks
on received ipc messages. The hook will execute the defined
shell script and the output of the script will be used
as the module content.

Ref #84
2016-11-14 09:26:40 +01:00
Michael Carlberg
04fac96d78 fix(mpd): Hide module on empty playlist
Closes #149
2016-11-14 01:21:58 +01:00
Michael Carlberg
c8f2a934b1 refactor(fs): Update naming to reflect actual usage
The module currently only handle mounted filesystem
and not block devices or partitions. Change naming
to be more clear.
2016-11-13 08:50:14 +01:00
Michael Carlberg
9a0df75a91 feat(fs): New filesystem module
Module that displays details about
mounted filesystems, #84

Closes #153
2016-11-13 06:14:34 +01:00
Michael Carlberg
42bcfd9fa1 feat(bspwm): Configurable scroll/click actions 2016-11-12 13:37:07 +01:00
Michael Carlberg
f2bbd301f2 feat(xbacklight): Change value on scroll
- Add action handlers for scroll up/down (conf: enable-sroll = true)
- Use xcb_timestamps instead of the throttle util
2016-11-12 13:07:05 +01:00
Michael Carlberg
2740e69a38 refactor(i3): Cleanup and configurable actions
- Do not throw on handle_event failure
- Add settings to disable mouse scroll/click actions
- Add fold markers
- Misc cleanup
2016-11-12 13:07:05 +01:00
Michael Carlberg
1e08aa455b feat(temperature): Support for <ramp> 2016-11-12 13:07:05 +01:00
NBonaparte
fbd957bf33 feat(bspwm): added scrolling 2016-11-11 10:55:37 -08:00
Michael Carlberg
dc2d33ceba fix(bspwm): Remove monitor property
- Use the bar settings stored in the base class.
- Add fold markers
2016-11-11 11:05:22 +01:00
NBonaparte
a06b38f534 feat(temperature): Added temp module and examples 2016-11-10 22:54:07 -08:00
NBonaparte
dce81d4266 feat(volume): Added volume mapping 2016-11-05 14:32:09 -07:00
Michael Carlberg
5f21d7d440 feat(bspwm): Support for multi monitors listing
- All available workspaces can now be listed, grouped
by monitor, by setting the module config `pin-workspaces`
to false

- Adds a new format tag <label-monitor>

- Treat <label-mode> as a normal format tag
2016-11-03 17:56:07 +01:00
Michael Carlberg
a1472dfd0f refactor(battery): Poll values by default
Fixes jaagr/lemonbuddy#140
2016-11-03 15:21:46 +01:00
Michael Carlberg
52c08675e6 fix(battery): Ignore the fake inotify event
Assume fake event if polling flag is set.

Fixes jaagr/lemonbuddy#140
2016-11-03 14:40:12 +01:00
Michael Carlberg
af2289e397 fix(battery): Poll until real inotify event occurs
Fixes jaagr/lemonbuddy#140
2016-11-03 12:56:35 +01:00
Michael Carlberg
e7cb345cec wip: Separate source from definitions 2016-11-03 12:54:32 +01:00
Michael Carlberg
f83dbf19b1 fix(battery): Poll thread requires running module
Closes jaagr/lemonbuddy#140
2016-11-02 18:38:13 +01:00
Michael Carlberg
36d4ee0e67 refactor(battery): Cleanup 2016-10-30 18:47:01 +01:00
Michael Carlberg
d8c309ec35 fix(date): Do not override get_output 2016-10-30 06:18:33 +01:00
Michael Carlberg
e21d084fdd fix(mpd): Connection state broadcasting 2016-10-29 06:52:48 +02:00
Michael Carlberg
1075144b00 refactor(eventloop): Use concurrent queue for events
Events are now enqueued using a thread safe concurrent queue
which makes the previous eventloop locking redundant.
2016-10-29 06:48:51 +02:00
Michael Carlberg
92900e78d6 fix(mpd): Wake up thread when stopping module 2016-10-28 19:52:20 +02:00
Michael Carlberg
fa7e3d4430 fix(script): Terminate running commands
Make sure the previous command has ended before
executing a new command.

This also fixes the execution block that was
caused by the tailing the command output of
action commands.

Fixes jaagr/lemonbuddy#131
2016-10-28 18:54:08 +02:00
Michael Carlberg
1e30e4254a fix(script): Make sure idle is called every iteration 2016-10-28 14:56:11 +02:00
Michael Carlberg
660d06768b fix(script): Set 2s default interval for timed scripts 2016-10-26 12:20:55 +02:00
Michael Carlberg
83ae9f6435 fix(xbacklight): Allow larger property values
Not all backlight values are within 8 bit range
so do not truncate property values
2016-10-25 16:40:01 +02:00
Michael Carlberg
9496e9aa22 feat(logger): trace_x() for verbose trace logging 2016-10-25 13:10:34 +02:00
Michael Carlberg
2776155794 fix(volume): Proper handling of module events
When processing module events, a new instance for each
mixer is created so that the module event loop will receive
the mixer update events.

Closes jaagr/lemonbuddy#116
Closes jaagr/lemonbuddy#89
2016-10-25 08:53:55 +02:00
Michael Carlberg
d2187f44e0 refactor(drawtypes): Cleanup and fixes 2016-10-25 07:10:05 +02:00
Michael Carlberg
a0f0fc8723 refactor: Add module::halt(error) 2016-10-25 07:07:24 +02:00
Michael Carlberg
7905f37462 refactor(di): Move configure_T() to anonymous ns 2016-10-25 01:55:59 +02:00
Michael Carlberg
bcf9249dc7 refactor: Use plain std::function callbacks
Replace fastdelegate with plain std::function's because
of incomplete clang support
2016-10-25 01:51:57 +02:00
Michael Carlberg
56b4657c3f feat: New module xbacklight
Better implementation for showing backlight information.
This one is using the XRandR extension instead of
reading from the raw file handlers.
2016-10-19 14:46:44 +02:00
Michael Carlberg
d879d6d42e fix: Throttle X input events
- Limit the amount of allowed input events
- Yield on lock failure
- Cleanup
2016-10-19 06:03:01 +02:00
Michael Carlberg
1c882508ec fix: Drop superflous prefix when throwing module_error 2016-10-19 02:15:52 +02:00
Michael Carlberg
68f72d69cc refactor: Drop tokenized labels
Handle placeholder tokens inside each label
instead of cloning into a new instance each time
2016-10-19 01:31:17 +02:00
Michael Carlberg
7e960a3966 fix(script): Rerun tail script when done
- Improve handling of command life time proc
- Restart tail command on successful completion
- Should fix jaagr/lemonbuddy#105
2016-10-19 01:31:05 +02:00
Michael Carlberg
01c5dcb6b7 fix: Guarded module teardown 2016-10-18 17:55:34 +02:00
Michael Carlberg
5fd8c50dde fix(i3): Shutdown on socket disconnect 2016-10-18 11:49:13 +02:00
Michael Carlberg
df93cabf22 fix: Acquire lock when stopping modules 2016-10-18 10:35:15 +02:00
Michael Carlberg
5796bde25d fix(network): Acquire lock on cleanup 2016-10-18 10:22:48 +02:00
Michael Carlberg
82f311b695 refactor(network): Code cleanup
- Cleanup of network module and adapter
- Check operstate instead of carrier when testing the
  the current connection state, as suggested by @patrick96 in #44
- Separate signal quality and signal strength
- Log failed attempt to query device driver
2016-10-18 09:41:20 +02:00
Michael Carlberg
3d30aba0e9 fix(volume): Make sure handled event get broadcasted 2016-10-17 03:43:56 +02:00
Michael Carlberg
64d578f23d fix(modules): Generic method for broadcasting handled events 2016-10-17 03:31:14 +02:00
Michael Carlberg
90dd0b2b9a fix(volume): Drop unnecessary lock guard 2016-10-16 02:31:07 +02:00
Michael Carlberg
21d91b0d91 refactor(volume): Support Master only setups 2016-10-16 02:22:47 +02:00
Michael Carlberg
8b91852284 fix(cpu): Core 0 should not be ignored
Closes jaagr/lemonbuddy#98
2016-10-15 23:37:40 +02:00
Michael Carlberg
ba1939f4ca fix(script): Make sure the output is passed through the formatter
Fixes jaagr/lemonbuddy#97
2016-10-15 21:52:52 +02:00
Michael Carlberg
4a49ba340c fix(volume): Do not require speaker/headphone for events
Closes jaagr/lemonbuddy#96
2016-10-15 21:04:03 +02:00
Michael Carlberg
8750894bb3 fix(i3): Ignore ipc read error on shutdown 2016-10-15 14:44:35 +02:00
Michael Carlberg
dc82d0ed57 refactor(script): Make the module behave as intended
Tail script now block execution until there's data
available on the script's output stream.

Running commands are also being terminated properly.
2016-10-15 13:15:56 +02:00
Kevin Morio
069555e3d4 Scroll through workspaces on same monitor only 2016-10-14 23:54:32 +02:00
Kevin Morio
32ac7a5f38 feat(i3): Scrollable workspaces and strip-wsnumber option 2016-10-14 20:41:36 +02:00
Michael Carlberg
9238f56b72 fix(script): Broadcast empty content once 2016-10-14 17:18:29 +02:00
Michael Carlberg
09a797b637 fix(i3): Stop the module on ipc error
Should fix jaagr/lemonbuddy#83
2016-10-14 16:20:58 +02:00
Michael Carlberg
c8def6677d fix(script): Dispatch subthread on setup
Closes jaagr/lemonbuddy#77
2016-10-14 11:36:10 +02:00
Michael Carlberg
6f286055c5 fix(network): Let module fail silently
The network module should not terminate the
application on failure

Closes jaagr/lemonbuddy#81
2016-10-14 10:48:22 +02:00
Michael Carlberg
789345291b fix(date): Use configured locale if defined
Fixes jaagr/lemonbuddy#74
2016-10-12 16:49:53 +02:00
Michael Carlberg
609c2700bf fix(aur): Update package templates 2016-10-12 07:42:22 +02:00
Michael Carlberg
2af0d0845d fix(docs): Updated README and configs
Use dash instead of underscore as parameter name separator
Will break alot of configs but people like to work!
2016-10-12 05:19:31 +02:00
Michael Carlberg
bdb4a0ea1d fix(i3): Avoid conflicting i3 commands 2016-10-12 04:14:58 +02:00
Michael Carlberg
cba62e7b8e feat(i3): Added option to sort by workspaces by index 2016-10-12 04:14:06 +02:00
Michael Carlberg
774dec5d17 refactor(i3): Rewrite of the i3 module 2016-10-12 03:57:22 +02:00
Michael Carlberg
257b73d589 refactor(bspwm): Cleanup 2016-10-11 16:09:18 +02:00
Michael Carlberg
e5d981faf9 refactor(menu): Menu module logic 2016-10-11 15:28:14 +02:00
Michael Carlberg
790059243b feat(network): Configurable min width for up/down speed 2016-10-11 14:08:59 +02:00
Michael Carlberg
c79d8dfea4 fix: Handle unsupported modules 2016-10-11 10:05:23 +02:00
Michael Carlberg
990f2a3074 fix(bspwm): Proper dispatch of ipc commands 2016-10-11 09:27:10 +02:00
Michael Carlberg
89d645539c refactor: Drop modules on failure
If a module error occur, just stop the failing
module and let the application keep running.
2016-10-11 08:13:42 +02:00
Michael Carlberg
9754393c49 refactor(volume): Cleanup 2016-10-11 06:00:53 +02:00
Michael Carlberg
6037947b1d refactor(alsa): Acquire mutex lock for api calls 2016-10-11 05:43:57 +02:00
Michael Carlberg
c687b07cd0 fix: Handle mouse button click/scroll events 2016-10-10 18:05:58 +02:00
Michael Carlberg
d359ab6057 refactor: Application rewrite 2016-10-10 14:52:57 +02:00
Michael Carlberg
f406f1eb9f Cleanup and compiler check fixes 2016-06-29 11:06:44 +02:00
Michael Carlberg
f2999b7272 fix(date): Do not trigger updates when unchanged 2016-06-29 11:05:30 +02:00
Michael Carlberg
35d84ccb8d fix(i3): Release wait lock 2016-06-28 17:16:46 +02:00
Michael Carlberg
b8a1dd628e refactor(bspwm): Better socket handling
- Reconnect on POLLHUP
- Switch desktop using socket instead of std::system()

Fixes jaagr/lemonbuddy#27
2016-06-28 05:11:14 +02:00
Michael Carlberg
99cb53a565 fix(logger): Use local ptr 2016-06-28 04:59:07 +02:00
Michael Carlberg
8b030930af refactor: Better handling of spaces between format tags
Ignore spaces if the previous tag was not outputted
2016-06-28 01:05:48 +02:00
Michael Carlberg
78823fda6d fix(mpd): Broadcast connection state changes once 2016-06-27 22:23:42 +02:00
Michael Carlberg
04bd48d104 fix(volume): Cleanup mixers on early destruct 2016-06-21 16:35:37 +02:00
Michael Carlberg
1e5fc993a4 fix: Revert nested locking in module destruct 2016-06-21 16:35:27 +02:00
Michael Carlberg
2b39fcd7dd fix: Use native wait timeout 2016-06-21 08:26:48 +02:00
Michael Carlberg
fd88c60b97 fix(network): Use local logger 2016-06-21 07:49:15 +02:00
Michael Carlberg
957f2e001c task(mpd): Increased default sync interval 2016-06-21 05:27:37 +02:00
Michael Carlberg
d8a3d7d5f6 feat(mpd): Format tags for back-/forward seek 2016-06-21 05:10:18 +02:00
Michael Carlberg
4366c36704 feat: Const methods for module broadcast throttle 2016-06-21 05:01:45 +02:00
Michael Carlberg
89ea8d9146 fix(battery): Store paths 2016-06-21 04:38:01 +02:00
Michael Carlberg
0c89775b05 feat: Throttle inotify event polling 2016-06-21 04:34:11 +02:00
Michael Carlberg
ec2c27a44b fix: Lock all mutexes on destruct 2016-06-21 04:26:42 +02:00
Michael Carlberg
f48ab45834 feat: Throttle module broadcasts 2016-06-21 04:23:28 +02:00
Michael Carlberg
c506829e4e fix(core): Move non-templated method bodies out of header 2016-06-21 04:23:28 +02:00
Michael Carlberg
e1f8c001dd refactor: Pass by value 2016-06-21 04:23:23 +02:00
Michael Carlberg
ec92ac91ab feat(core): Custom thread sleep
Makes it possible to manually wake up sleeping threads
2016-06-20 22:11:58 +02:00
Michael Carlberg
55f5a6fb70 task: Removed torrent module 2016-06-20 15:08:13 +02:00
Michael Carlberg
3319bd10c5 fix(registry): Fixed duplicate refresh calls 2016-06-15 00:57:20 +02:00
Michael Carlberg
6cae06c4dc refactor(script): Better handling of tail scripts 2016-06-14 12:15:22 +02:00
Michael Carlberg
266705e016 fix: Catch inotify exceptions 2016-06-14 12:15:21 +02:00
Michael Carlberg
f7734de26a feat(script): Option to tail script output 2016-06-13 23:41:59 +02:00
Michael Carlberg
2c74cb06de task(dsl): Replace colons with dashes
Colons break ini syntax highlighters and linters.
2016-06-11 07:49:14 +02:00
Michael Carlberg
0e9900db74 fix(volume): Improve mixer event handling
Fixes jaagr/lemonbuddy#14
2016-06-10 01:09:54 +02:00
Michael Carlberg
f667b739f0 task(mpd): Move connection settings to config
Closes jaagr/lemonbuddy#16
2016-06-09 13:44:01 +02:00
Michael Carlberg
39d3f61497 refactor(core): Clean-up
- use "#pragma once" instead of the regular include guard
- fix errors and warnings reported by cppcheck
2016-06-02 01:32:06 +02:00
Michael Carlberg
9f520dea7a fix(network): Proper handling of connectivity testing 2016-05-31 12:34:49 +02:00
Michael Carlberg
4a6a36f08f fix(battery): Poll capacity level
Some distros doesn't report any inotify event's for
the filesystem where the battery capacity file is located.

Resort to polling for now...
2016-05-31 02:55:08 +02:00
Michael Carlberg
9972d56bb2 fix(build): Dont include old util lib 2016-05-26 23:22:19 +02:00
Michael Carlberg
23b2cc69dd fix(battery): Proper handling of charge animation
Closes jaagr/lemonbuddy#3
2016-05-26 11:50:01 +02:00
Michael Carlberg
eeefb3c610 init(git): Base commit 2016-05-19 20:23:45 +02:00