about summary refs log tree commit diff stats
path: root/config.default.h
blob: 2e368184855962739778466dec465d842cbd3742 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/* (C)opyright MMVI-MMVII Anselm R. Garbe <garbeam at gmail dot com>
 * See LICENSE file for license details.
 */

#define TAGS \
const char *tags[] = { "1", "2", "3", "4", "5", NULL };

#define DEFMODE			dotile /* dofloat */
#define FLOATSYMBOL		"><>"
#define TILESYMBOL		"[]="

#define FONT			"-*-fixed-medium-r-normal-*-13-*-*-*-*-*-*-*"
#define NORMBGCOLOR		"#333366"
#define NORMFGCOLOR		"#cccccc"
#define SELBGCOLOR		"#666699"
#define SELFGCOLOR		"#eeeeee"
#define STATUSBGCOLOR		"#dddddd"
#define STATUSFGCOLOR		"#222222"

#define MASTER			600		/* per thousand */
#define MODKEY			Mod1Mask
#define NMASTER			1		/* clients in master area */
#define SNAP			20		/* pixel */

#define KEYS \
static Key key[] = { \
	/* modifier			key		function	argument */ \
	{ MODKEY|ShiftMask,		XK_Return,	spawn,		{ .cmd = "exec xterm" } }, \
	{ MODKEY,			XK_Tab,		focusnext,	{ 0 } }, \
	{ MODKEY|ShiftMask,		XK_Tab,		focusprev,	{ 0 } }, \
	{ MODKEY,			XK_Return,	zoom,		{ 0 } }, \
	{ MODKEY,			XK_g,		resizemaster,	{ .i = 15 } }, \
	{ MODKEY,			XK_s,		resizemaster,	{ .i = -15 } }, \
	{ MODKEY,			XK_i,		incnmaster,	{ .i = 1 } }, \
	{ MODKEY,			XK_d,		incnmaster,	{ .i = -1 } }, \
	{ MODKEY|ShiftMask,		XK_0,		tag,		{ .i = -1 } }, \
	{ MODKEY|ShiftMask,		XK_1,		tag,		{ .i = 0 } }, \
	{ MODKEY|ShiftMask,		XK_2,		tag,		{ .i = 1 } }, \
	{ MODKEY|ShiftMask,		XK_3,		tag,		{ .i = 2 } }, \
	{ MODKEY|ShiftMask,		XK_4,		tag,		{ .i = 3 } }, \
	{ MODKEY|ShiftMask,		XK_5,		tag,		{ .i = 4 } }, \
	{ MODKEY|ControlMask|ShiftMask,	XK_1,		toggletag,	{ .i = 0 } }, \
	{ MODKEY|ControlMask|ShiftMask,	XK_2,		toggletag,	{ .i = 1 } }, \
	{ MODKEY|ControlMask|ShiftMask,	XK_3,		toggletag,	{ .i = 2 } }, \
	{ MODKEY|ControlMask|ShiftMask,	XK_4,		toggletag,	{ .i = 3 } }, \
	{ MODKEY|ControlMask|ShiftMask,	XK_5,		toggletag,	{ .i = 4 } }, \
	{ MODKEY|ShiftMask,		XK_c,		killclient,	{ 0 } }, \
	{ MODKEY,			XK_space,	togglemode,	{ 0 } }, \
	{ MODKEY|ShiftMask,		XK_space,	togglefloat,	{ 0 } }, \
	{ MODKEY,			XK_0,		view,		{ .i = -1 } }, \
	{ MODKEY,			XK_1,		view,		{ .i = 0 } }, \
	{ MODKEY,			XK_2,		view,		{ .i = 1 } }, \
	{ MODKEY,			XK_3,		view,		{ .i = 2 } }, \
	{ MODKEY,			XK_4,		view,		{ .i = 3 } }, \
	{ MODKEY,			XK_5,		view,		{ .i = 4 } }, \
	{ MODKEY|ControlMask,		XK_1,		toggleview,	{ .i = 0 } }, \
	{ MODKEY|ControlMask,		XK_2,		toggleview,	{ .i = 1 } }, \
	{ MODKEY|ControlMask,		XK_3,		toggleview,	{ .i = 2 } }, \
	{ MODKEY|ControlMask,		XK_4,		toggleview,	{ .i = 3 } }, \
	{ MODKEY|ControlMask,		XK_5,		toggleview,	{ .i = 4 } }, \
	{ MODKEY|ShiftMask,		XK_q,		quit,		{ 0 } }, \
};

/* Query class:instance:title for regex matching info with following command:
 * xprop | awk -F '"' '/^WM_CLASS/ { printf("%s:%s:",$4,$2) }; /^WM_NAME/ { printf("%s\n",$2) }' */
#define RULES \
static Rule rule[] = { \
	/* class:instance:title regex	tags regex	isfloat */ \
	{ "Firefox.*",			"2",		False }, \
	{ "Gimp.*",			NULL,		True }, \
};
-P)/config.sh" # Checking updates if [ -f "$WORKING_DIRECTORY/update.sh" ]; then if [ "$DSCIP_AUTO_UPDATE" = "true" ]; then . "$WORKING_DIRECTORY/update.sh" DSCIP_NEW_CKSUM="$(cksum "$0")" # Rerun dscip if update was found. if [ ! "$DSCIP_CKSUM" = "$DSCIP_NEW_CKSUM" ]; then echo "[dscip] Update found. Rerunning DSCIP..." "$SHELL" "$0" "$@" exit 0 else echo "[dscip] No updates found. Continuing..." fi else echo "[dscip] Auto updates turned off. Continuing..." fi else echo "[dscip] Update script doesn't exist. Continuing..." fi ################################################################################ # Move script to background if DSCIP_DAEMON_FORK is set to true # set +u if [ "$DSCIP_DAEMON" = "true" ]; then if [ "$DSCIP_DAEMON_FORK" = "true" ] && [ ! "$FORKED" = "true" ]; then FORKED=true nohup "$0" "$@" > /dev/null 2>&1 exit 0 fi fi set -u # Check if script is currently running, and if not, reset LOCK # if [ -f "$WORKING_DIRECTORY/LOCK" ]; then LOCKED_PID=$(cat "$WORKING_DIRECTORY/LOCK") # shellcheck disable=SC2009 for i in $(pgrep -f "$0"); do if [ "$i" = "$LOCKED_PID" ]; then echo "[dscip] Script still running. Exiting..." exit 0 fi done echo "[dscip] Script not running. Removing old lock." rm -f "$WORKING_DIRECTORY/LOCK" fi echo "$$" > "$WORKING_DIRECTORY/LOCK" build () { # Remove old output rm -f "$WORKING_DIRECTORY"/output.txt # Print variables # { echo "################################################################################"; printf "%s\n" "$(date) | $DSCIP_NAME | $CURRENT_COMMIT" echo "################################################################################"; echo "DSCIP_GITREPO=$DSCIP_GITREPO"; echo "DSCIP_GITMODE=$DSCIP_GITMODE"; echo "DSCIP_BRANCH=$DSCIP_BRANCH"; echo "WORKING_DIRECTORY=$WORKING_DIRECTORY"; echo "DSCIP_PRE_CMD=$DSCIP_PRE_CMD"; echo "DSCIP_BUILD_CMD=$DSCIP_BUILD_CMD"; echo "DSCIP_POST_CMD=$DSCIP_POST_CMD"; echo "DSCIP_FAILED_CMD=$DSCIP_FAILED_CMD"; echo "DSCIP_DAEMON=$DSCIP_DAEMON"; echo "DSCIP_DAEMON_FORK=$DSCIP_DAEMON_FORK"; echo "DSCIP_SLEEP=$DSCIP_SLEEP"; echo "DSCIP_DISREGARD_COMMIT_CHECK=$DSCIP_DISREGARD_COMMIT_CHECK"; echo "DSCIP_OUTPUT_TO=$DSCIP_OUTPUT_TO" } >> "$DSCIP_OUTPUT_TO" # Grab remote sources # if [ "$DSCIP_GITMODE" = "clone" ]; then rm -rf "$WORKING_DIRECTORY/wrkdir" # Clean Up # git clone --depth 1 -b "$DSCIP_BRANCH" "$DSCIP_GITREPO" wrkdir >> "$DSCIP_OUTPUT_TO" 2>&1 # Clone git # elif [ "$DSCIP_GITMODE" = "pull" ]; then if [ ! -d "$WORKING_DIRECTORY/wrkdir" ]; then git clone --depth 1 -b "$DSCIP_BRANCH" "$DSCIP_GITREPO" wrkdir >> "$DSCIP_OUTPUT_TO" 2>&1 fi cd wrkdir git pull >> "$DSCIP_OUTPUT_TO" 2>&1 else echo "Invalid GITMODE, choose either 'clone' or 'pull'" 2>> "$DSCIP_OUTPUT_TO" exit 1 fi # Begin running the build scripts. { cd "$WORKING_DIRECTORY/wrkdir"; echo "Running pre-build commands..."; "$DSCIP_PRE_CMD"; echo "Running build commands..."; cd "$WORKING_DIRECTORY/wrkdir"; if "$DSCIP_BUILD_CMD"; then echo "Running post-build commands..."; cd "$WORKING_DIRECTORY/wrkdir"; "$DSCIP_POST_CMD"; else echo "Build failed. Running failure commands..."; "$DSCIP_FAILED_CMD"; fi } >> "$DSCIP_OUTPUT_TO" 2>&1 echo "$CURRENT_COMMIT" > "$WORKING_DIRECTORY/LAST_COMMIT" # Save commit # } run () { mkdir -p "$WORKING_DIRECTORY" cd "$WORKING_DIRECTORY" LAST_COMMIT="" # Loads last commit hash if it exists. # if [ -f "$WORKING_DIRECTORY/LAST_COMMIT" ]; then LAST_COMMIT="$(cat "$WORKING_DIRECTORY/LAST_COMMIT")" if [ -z "$LAST_COMMIT" ]; then # Check if LAST_COMMIT was grabbed successfully. return 0 fi fi export LAST_COMMIT # Loads current commit hash # CURRENT_COMMIT=$(git ls-remote "$DSCIP_GITREPO" | awk "/refs\/(heads|tags)\/$DSCIP_BRANCH/{print \$1}") if [ -z "$CURRENT_COMMIT" ]; then # Checks if CURRENT_COMMIT is blank, if so, abort script. return 0 fi export CURRENT_COMMIT # If LAST_COMMIT doesn't exist, that means it's a first run and we can go ahead and build. # # Or skip the commit check if DSCIP_DISREGARD_COMMIT_CHECK is set to true. if [ "$DSCIP_DISREGARD_COMMIT_CHECK" = "false" ]; then if [ -z "$LAST_COMMIT" ]; then build elif [ ! "$LAST_COMMIT" = "$CURRENT_COMMIT" ]; then # If the last commit and current commit don't match, then we go ahead and build. build else return 0 fi else build fi rm "$WORKING_DIRECTORY/LOCK" # Remove lock # printf "Done.\n\n" >> "$DSCIP_OUTPUT_TO" } run while [ "$DSCIP_DAEMON" = "true" ]; do sleep "$DSCIP_SLEEP" run done exit 0