76 Commits

Author SHA1 Message Date
Marc Di Luzio
1ad1f3bbcf Set theme jekyll-theme-midnight 2018-05-16 17:06:43 +01:00
Marc Di Luzio
a9e12325fc Set theme jekyll-theme-hacker 2018-05-16 17:05:34 +01:00
Marc Di Luzio
f270684751 Set theme jekyll-theme-hacker 2018-05-16 17:04:37 +01:00
Marc Di Luzio
596f25d0cf Set theme jekyll-theme-merlot 2018-05-16 17:03:24 +01:00
Marc Di Luzio
0980310e84 Set theme jekyll-theme-merlot 2018-05-16 17:03:22 +01:00
Marc Di Luzio
42d2fda05c Update issue templates
Add some baseline issue templates to help users report bugs or request features.
2018-05-16 17:02:09 +01:00
Marc Di Luzio
21b8ec76dc Restart the service in bootstrap.sh 2018-05-16 08:47:26 +01:00
Marc Di Luzio
fec4732740 Add an example .desktop file
As seen in Issue #45 (thanks OlliC)

This can be placed in ~/.local/share/applications/ to allow easier (re)launching of gamemode, in particular when the DISPLAY param is needed
2018-05-16 08:42:19 +01:00
Marc Di Luzio
bd1f9bc543 Log the version on startup 2018-05-15 17:15:47 +01:00
Marc Di Luzio
678fc9e2a4 Merge branch 'master' of https://github.com/FeralInteractive/gamemode 2018-05-15 17:07:10 +01:00
Marc Di Luzio
5ebc77a0f1 Add defaultgov and desiredgov config settings
Allows users to choose which governor settings they want.

	Should provide some future compatibility for other governor settings.
2018-05-15 17:04:31 +01:00
Marc Di Luzio
20828da140 Refactor getting config values to stop duplicating the rwlock 2018-05-15 17:04:20 +01:00
Marc Di Luzio
1c38a6047e Refactor to store the initial governor state when gamemode is entered
Rather than when gamemoded is started. As see in Issue #52.

	A small refactor here to ensure things stay consistent, especially
	to stop storing a pointer from get_gov_state that might have had
	it's memory changed at some point, confusingly.
2018-05-15 16:37:09 +01:00
Alex Smith-Fanning
2c68ae67e6 added info about overclocking (#49)
* added info about overclocking
2018-05-11 15:12:25 +01:00
Marc Di Luzio
d9072607d9 Label master as 1.2-dev 2018-05-11 14:53:30 +01:00
Marc Di Luzio
5d113b8e9f Correct a comment 1.1 2018-05-11 14:25:02 +01:00
Marc Di Luzio
1dc641ca59 Add a note for dbus-user-session as seen in issues like #48 2018-05-11 08:59:51 +01:00
Marc Di Luzio
9aacadb56b Warn users if no governor is found so they spot issues sooner
See issue 44
2018-05-11 08:53:42 +01:00
Marc Di Luzio
da703ce4c0 Allow execution without any cpu governors to set - for issue #44 2018-05-11 08:51:56 +01:00
Marc Di Luzio
5ee3ab71ce Add to the changelog for commit 8bd9587e8 2018-05-01 15:46:22 +01:00
Marc Di Luzio
907a690e39 Merge branch 'master' into 1.1RC 2018-05-01 15:45:57 +01:00
Marc Di Luzio
808f5c9159 Provide a cascaded merge-overwrite config approach for #6
gamemoded will now load and merge settings from the following locations - arrays will merge and single settings will overwrite.

	1. /usr/share/gamemode/
	2. /etc/
	3. $XDG_CONFIG_HOME or $HOME/.config/
	4. $PWD
2018-05-01 15:42:54 +01:00
Marc Di Luzio
2b1030da0f Merge branch 'master' into 1.1RC 2018-04-27 08:59:53 +01:00
Marc Di Luzio
9359a8551c Build fix for meson 0.40.1 as seen in issue #32 2018-04-27 08:58:55 +01:00
Marc Di Luzio
fb2f3c628a Update to 1.1 ready for release 2018-04-25 15:50:05 +01:00
Marc Di Luzio
eac854b753 Allow failure when finding functions that are new to the API
This allows a game using a newer client header than the installed gamemode to still function
2018-04-25 15:24:07 +01:00
Marc Di Luzio
4f3bc2c9a2 Add gamemode_query_status and teach gamemoded '-s'
This allows the client to query the daemon about the status of gamemode.

	Returns the following:
		 0 if gamemode is inactive
		 1 if gamemode is active
		 2 if gamemode is active and this client is registered
		-1 if the query failed

	Passing -s to gamemoded will simply query and print the current status.

	Allows for more comprehensive testing when using 'gamemoded -r' as well as more reactionary program behaviour
2018-04-25 14:51:38 +01:00
Marc Di Luzio
966c207a33 Teach gamemoded the '-r' option
This allows for easy requesting of gamemode and pausing for any signal

	Primarily useful for simple tests, but also functionally to allow enterning and exiting gamemode manually
2018-04-25 14:46:20 +01:00
Marc Di Luzio
3ac1b681c4 Exclude submodules from the format suggestion 2018-04-25 14:45:51 +01:00
Marc Di Luzio
b370369d80 Update README.md 2018-04-24 17:23:02 +01:00
Marc Di Luzio
d88168d39c Update the current example config file 2018-04-24 17:14:12 +01:00
Marc Di Luzio
a419965061 Fix format check 2018-04-24 17:09:06 +01:00
Marc Di Luzio
db8a70b7ba Add support for user defined local script plugins
A much requested feature, this allows for providing custom scripts in the config file. An example in the man page is below and would trigger both a system notification, and allow control over a background crypto mining script automatically in gamemode.

	[custom]
	; Custom scripts (executed using the shell) when gamemode starts and ends
	start=notify-send "GameMode started"
	    /home/me/bin/stop_ethmining.sh

	end=notify-send "GameMode ended"
	    /home/me/bin/start_ethmining.sh

	Scripts are run with system() and do not have any special privilages, as with the rest of the daemon, custom scripts that require root will need their own permissions set up externally.

	This commit also renames two defines as they needed to be moved to the public interface.
2018-04-24 16:59:17 +01:00
Marc Di Luzio
c45b9f90a4 Refactor the config gathering code to be reusable
This moves adding to lists and getting long values into resuable functions.

	It also fixes a couple other issues in the process:
		1. Logging now goes to the error channel and is labelled
		2. >Max length lines are properly handled, although this should never happen since inih has a 200 limit
2018-04-24 15:21:59 +01:00
Marc Di Luzio
51e1e7203f Add "reaper_freq" config setting in the "general" section
This simply allows control over the reaper thread frequency.

	Defaults to 5 as before.
2018-04-24 14:37:39 +01:00
Marc Di Luzio
9472a71602 Add git to the install dependencies as seen in #36 2018-04-24 13:43:44 +01:00
Marc Di Luzio
53d15292c9 Fix the format check script by applying it to the previous commit
Rather than just to local changes, which doesn't work as intended
2018-04-16 17:52:48 +01:00
Marc Di Luzio
52a99a2102 Apply clang-format to commit d26ac60 2018-04-16 17:46:32 +01:00
Marc Di Luzio
d9727e9d38 Rename variables and functions that had an underscore prefix
Ensures we conform better to C standards
2018-04-16 17:42:54 +01:00
Leonard
752d877196 Minor C cleanup (#27)
* Minor C cleanup

 - some symbols can be made static:
    1. set_gov_state
    2. everything in gamemode_client.h
 - daemonize() can also take a const char*, since the name is only
   passed to printf() or syslog()
 - prevent shadowing of variables
 - use explicit (void) as parameter-list more consistently
 - use some more const.
   Move cast to more appropriate place and document that execv() behaves
   as if args where of type const *char and we trust on that.
 - example: Just use main(void), which is also an acceptable ISO-C decl
 - example: Use stderr for errors

* Fix -Wold-style-declaration issue
2018-04-16 17:21:35 +01:00
OlliC
6b71edf740 Integrated sd_notify to get status messages in systemd (#28)
* Integrated sd_notify to get status messages in systemd
* reset color attributes after use in string
2018-04-16 17:04:41 +01:00
OlliC
c0a2d53981 Added SIGTERM kill signal handling 2018-04-16 16:43:49 +01:00
Marc Di Luzio
1f12bcb892 Add a basic travis file for unit tests
Only code formatting implemented at the moment.

  Travis is currently Ubuntu 14.04, which is missing multiple library versions needed. Bootstrapping in Python 3.5, Meson and Ninja is possible, but can take a while, but also bootstrapping in libsystemd is one step too many for now as it takes a significant amount of time.
2018-04-13 14:32:02 +01:00
Marc Di Luzio
56166307b0 clang-format fix for commit 867e40497a2 2018-04-13 14:03:16 +01:00
grmat
66e805c481 doc/examples: remove 'ninja' as explicit dep (#4)
as it's already required by meson.
Also use the default unit file path (/usr/lib/systemd/user/) for
packaged versions. /etc/systemd/user is intended for manually installed
services.

arch-meson is just a Meson wrapper with correct arch packaging prefixes set.
2018-04-13 10:28:00 +01:00
Marc Di Luzio
9e2188c94e Update README.md
* Install off the 1.0 tag not master
* Generally remove some headers to clean up the view on GitHub
* Link to contributors page as we now have more than 2
2018-04-13 10:24:48 +01:00
Marc Di Luzio
9bb3ebf34b Fixes for #23 and #24, violations of the C standard 2018-04-12 10:47:42 +01:00
Bruno Thomsen
3a91960fb5 README: added Fedora build requirements.
Signed-off-by: Bruno Thomsen <bruno.thomsen@gmail.com>
2018-04-11 10:14:33 +01:00
Casper
8dfbaba288 Prevent running bootstrap.sh as root 2018-04-11 09:58:22 +01:00
Marc Di Luzio
2e710c2d2d Update README.md
Add a note about distribution packages being preferable.
2018-04-10 14:59:21 +01:00