@ -37,7 +37,7 @@ static const Rule rules[] = {
{ " xterm-256color " , NULL , NULL , 0 , 0 , 1 , 1 , 0 , 0 , - 1 } ,
{ " xterm-256color " , NULL , NULL , 0 , 0 , 1 , 1 , 0 , 0 , - 1 } ,
{ " Thunderbird " , NULL , NULL , 1 < < 8 , 0 , 0 , 0 , 0 , 0 , - 1 } ,
{ " Thunderbird " , NULL , NULL , 1 < < 8 , 0 , 0 , 0 , 0 , 0 , - 1 } ,
{ NULL , NULL , " noswallow " , 0 , 0 , 0 , 1 , 0 , 0 , - 1 } ,
{ NULL , NULL , " noswallow " , 0 , 0 , 0 , 1 , 0 , 0 , - 1 } ,
{ " Onboar d" , NULL , NULL , 0 , 1 , 0 , 1 , 0 , 1 , - 1 } ,
{ " svkb d" , NULL , NULL , 0 , 1 , 0 , 1 , 0 , 1 , - 1 } ,
{ " Onboard-settings " , NULL , NULL , 0 , 0 , 0 , 0 , 0 , 0 , - 1 }
{ " Onboard-settings " , NULL , NULL , 0 , 0 , 0 , 0 , 0 , 0 , - 1 }
} ;
} ;
@ -63,32 +63,27 @@ static const Layout layouts[] = {
/* key definitions */
/* key definitions */
# define MODKEY Mod4Mask
# define MODKEY Mod4Mask
# define TAGKEYS(KEY,TAG) \
# define TAGKEYS(KEY,TAG) \
{ MODKEY , KEY , view , { . ui = 1 < < TAG } } , \
{ MODKEY , KEY , 0 , view , { . ui = 1 < < TAG } } , \
{ MODKEY | ControlMask , KEY , toggleview , { . ui = 1 < < TAG } } , \
{ MODKEY | ControlMask , KEY , 0 , toggleview , { . ui = 1 < < TAG } } , \
{ MODKEY | ShiftMask , KEY , tag , { . ui = 1 < < TAG } } , \
{ MODKEY | ShiftMask , KEY , 0 , tag , { . ui = 1 < < TAG } } , \
{ MODKEY | ControlMask | ShiftMask , KEY , toggletag , { . ui = 1 < < TAG } } ,
{ MODKEY | ControlMask | ShiftMask , KEY , 0 , toggletag , { . ui = 1 < < TAG } } ,
/* helper for spawning shell commands in the pre dwm-5.0 fashion */
/* helper for spawning shell commands in the pre dwm-5.0 fashion */
# define SHCMD(cmd) { .v = (const char*[]){ " / bin / sh", "-c", cmd, NULL } }
# define SHCMD(cmd) { .v = (const char*[]){ " / bin / sh", "-c", cmd, NULL } }
/* commands */
/* commands */
static char dmenumon [ 2 ] = " 0 " ; /* component of dmenucmd, manipulated in spawn() */
static char dmenumon [ 2 ] = " 0 " ; /* component of dmenucmd, manipulated in spawn() */
static const char * dmenucmd [ ] = { " rofi " , " -show " , " dr un" , " -modi " , " drun " , " -t heme " , " themes/launchpad. rasi " , NULL } ;
static const char * dmenucmd [ ] = { " la unc her" , NULL } ;
//static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL };
//static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL };
static const char * termcmd [ ] = { " folder-shell " , NULL } ;
static const char * termcmd [ ] = { " folder-shell " , NULL } ;
static const char * lfcmd [ ] = { " folder-shell " , " lf " , NULL } ;
static const char * fullscreenshot [ ] = { " screenshot " , NULL } ;
static const char * fullscreenshot [ ] = { " screenshot " , NULL } ;
static const char * activescreenshot [ ] = { " screenshot " , " window " , NULL } ;
static const char * activescreenshot [ ] = { " screenshot " , " window " , NULL } ;
static const char * selectscreenshot [ ] = { " screenshot " , " select " , NULL } ;
static const char * selectscreenshot [ ] = { " screenshot " , " select " , NULL } ;
static const char * greenclip [ ] = { " rofi " , " -modi " , " clipboard:greenclip print " , " -show " , " clipboa rd" , " -run-command " , " {cmd} " , NULL } ;
static const char * selectscreenrecord [ ] = { " screenreco rd" , " select " , NULL } ;
static const char * qutebrowser [ ] = { " qutebrowser " , NULL } ;
static const char * surf [ ] = { " tabbed " , " -c " , " surf " , " -e " , NULL } ;
static const char * chromium [ ] = { " chromium " , NULL } ;
static const char * chromium [ ] = { " chromium " , NULL } ;
static const char * bigchromium [ ] = { " chromium " , " --force-device-scale-factor=2 " , NULL } ;
static const char * firefox [ ] = { " firefox-developer-edition " , NULL } ;
static const char * firefox [ ] = { " firefox-developer-edition " , NULL } ;
static const char * date [ ] = { " datetime " , NULL } ;
static const char * date [ ] = { " datetime " , NULL } ;
@ -101,7 +96,6 @@ static const char *playpause[] = { "playerctl", "play-pause", NULL };
static const char * logout [ ] = { " rofi-shutdown " , NULL } ;
static const char * logout [ ] = { " rofi-shutdown " , NULL } ;
static const char * offlineArchWiki [ ] = { " offline-aw " , NULL } ;
static const char * manPages [ ] = { " man-page-pdf " , NULL } ;
static const char * manPages [ ] = { " man-page-pdf " , NULL } ;
static const char * ports [ ] = { " ports " , NULL } ;
static const char * ports [ ] = { " ports " , NULL } ;
@ -119,75 +113,117 @@ static const char *volumeToggle[] = { "volume", "toggle", NULL };
static const char * brightnessUp [ ] = { " brightness " , " up " , NULL } ;
static const char * brightnessUp [ ] = { " brightness " , " up " , NULL } ;
static const char * brightnessDown [ ] = { " brightness " , " down " , NULL } ;
static const char * brightnessDown [ ] = { " brightness " , " down " , NULL } ;
static const char * setBackgroundRandom [ ] = { " rofi-background " , " --earth " , NULL } ;
static const char * backgroundDetails [ ] = { " background " , " --only-notify " , NULL } ;
static const char * unity_hud [ ] = { " hud-menu.py " } ;
static const char * lockScreen [ ] = { " screenlock " , " --suspend " , NULL } ;
static const char * powerMenu [ ] = { " rofi-shutdown " , NULL } ;
static const char * toggleKeyboard [ ] = { " toggleKeyboard " , NULL } ;
static const char * actOnLast [ ] = { " actOnLast " , NULL } ;
static const char * actOnLastDefault [ ] = { " actOnLast " , " --first " , NULL } ;
static const char * dunstClose [ ] = { " dunstctl " , " close " , NULL } ;
static const char * dunstOpenLast [ ] = { " dunstctl " , " history-pop " , NULL } ;
# include "movestack.c"
# include "movestack.c"
# define MULTIKEY_THRESHOLD_MS_PRESS 200
# define MULTIKEY_THRESHOLD_MS_HOLD 700
static Key keys [ ] = {
static Key keys [ ] = {
/* modifier key function argument */
/* modifier key count function argument */
{ MODKEY , XK_p , spawn , { . v = dmenucmd } } ,
{ MODKEY , XK_Return , 0 , spawn , { . v = termcmd } } ,
{ MODKEY , XK_Return , spawn , { . v = termcmd } } ,
//{ MODKEY|ShiftMask, XK_Return, 0, zoom, {0} },
{ MODKEY | ControlMask , XK_Return , spawn , { . v = lfcmd } } ,
{ MODKEY , XK_b , togglebar , { 0 } } ,
{ MODKEY , XK_Tab , 0 , toggleAttachBelow , { 0 } } ,
{ MODKEY , XK_j , focusstack , { . i = + 1 } } ,
{ MODKEY | ShiftMask , XK_Tab , 0 , spawn , { . v = dunstOpenLast } } ,
{ MODKEY , XK_k , focusstack , { . i = - 1 } } ,
{ MODKEY | ShiftMask , XK_j , movestack , { . i = + 1 } } ,
{ MODKEY , XK_space , 0 , spawn , { . v = dunstClose } } ,
{ MODKEY | ShiftMask , XK_k , movestack , { . i = - 1 } } ,
{ MODKEY , XK_i , incnmaster , { . i = + 1 } } ,
{ MODKEY | ShiftMask , XK_a , 0 , spawn , { . v = screenlayout } } ,
{ MODKEY | ShiftMask , XK_i , incnmaster , { . i = - 1 } } ,
{ MODKEY , XK_h , setmfact , { . f = - 0.05 } } ,
{ MODKEY , XK_b , 0 , togglebar , { 0 } } ,
{ MODKEY , XK_l , setmfact , { . f = + 0.05 } } ,
{ MODKEY | ShiftMask , XK_b , 0 , spawn , { . v = battery } } ,
{ MODKEY | ShiftMask , XK_l , spawn , { . v = logout } } ,
{ MODKEY | ShiftMask , XK_Return , zoom , { 0 } } ,
{ MODKEY , XK_c , 0 , spawn , { . v = firefox } } ,
{ MODKEY , XK_Tab , toggleAttachBelow , { 0 } } ,
{ MODKEY | ShiftMask , XK_c , 0 , spawn , { . v = chromium } } ,
{ MODKEY , XK_q , killclient , { 0 } } ,
{ MODKEY , XK_t , setlayout , { . v = & layouts [ 0 ] } } ,
{ MODKEY , XK_d , 0 , spawn , { . v = pass } } ,
{ MODKEY , XK_m , setlayout , { . v = & layouts [ 2 ] } } ,
{ MODKEY | ShiftMask , XK_d , 0 , spawn , { . v = date } } ,
{ MODKEY | ShiftMask , XK_t , setlayout , { . v = & layouts [ 3 ] } } ,
{ MODKEY , XK_f , setlayout , { . v = & layouts [ 4 ] } } ,
{ MODKEY , XK_f , 0 , setlayout , { . v = & layouts [ 4 ] } } ,
{ MODKEY | ShiftMask , XK_f , setlayout , { . v = & layouts [ 5 ] } } ,
{ MODKEY | ShiftMask , XK_f , 0 , setlayout , { . v = & layouts [ 5 ] } } ,
{ MODKEY , XK_space , setlayout , { 0 } } ,
{ MODKEY | ShiftMask , XK_space , togglefloating , { 0 } } ,
{ MODKEY , XK_h , 0 , setmfact , { . f = - 0.05 } } ,
{ MODKEY , XK_0 , view , { . ui = ~ 0 } } ,
{ MODKEY | ShiftMask , XK_0 , tag , { . ui = ~ 0 } } ,
{ MODKEY , XK_i , 0 , incnmaster , { . i = + 1 } } ,
{ MODKEY , XK_comma , focusmon , { . i = - 1 } } ,
{ MODKEY | ShiftMask , XK_i , 0 , incnmaster , { . i = - 1 } } ,
{ MODKEY , XK_period , focusmon , { . i = + 1 } } ,
{ MODKEY | ShiftMask , XK_comma , tagmon , { . i = - 1 } } ,
{ MODKEY , XK_j , 0 , focusstack , { . i = + 1 } } ,
{ MODKEY | ShiftMask , XK_period , tagmon , { . i = + 1 } } ,
{ MODKEY | ShiftMask , XK_j , 0 , movestack , { . i = + 1 } } ,
{ 0 , XK_Print , spawn , { . v = fullscreenshot } } ,
{ ControlMask , XK_Print , spawn , { . v = activescreenshot } } ,
{ MODKEY , XK_k , 0 , focusstack , { . i = - 1 } } ,
{ ShiftMask , XK_Print , spawn , { . v = selectscreenshot } } ,
{ MODKEY | ShiftMask , XK_k , 0 , movestack , { . i = - 1 } } ,
{ 0 , XF86XK_AudioPlay , spawn , { . v = playpause } } ,
{ MODKEY | ShiftMask , XK_d , spawn , { . v = date } } ,
{ MODKEY , XK_l , 0 , setmfact , { . f = + 0.05 } } ,
{ MODKEY | ShiftMask , XK_b , spawn , { . v = battery } } ,
{ MODKEY | ShiftMask , XK_l , 0 , spawn , { . v = logout } } ,
{ MODKEY | ShiftMask , XK_Insert , spawn , { . v = greenclip } } ,
//Applications
{ MODKEY , XK_m , 0 , setlayout , { . v = & layouts [ 2 ] } } ,
{ MODKEY | ShiftMask , XK_q , spawn , { . v = qutebrowser } } ,
{ MODKEY | ShiftMask , XK_m , 0 , spawn , { . v = manPages } } ,
{ MODKEY , XK_s , spawn , { . v = surf } } ,
{ MODKEY , XK_c , spawn , { . v = firefox } } ,
{ MODKEY , XK_o , 0 , spawn , { . v = actOnLast } } ,
{ MODKEY | ShiftMask , XK_c , spawn , { . v = chromium } } ,
{ MODKEY | ShiftMask , XK_o , 0 , spawn , { . v = actOnLastDefault } } ,
//Dmenu / Rofi
{ MODKEY , XK_u , spawn , { . v = unicode } } ,
{ MODKEY , XK_p , 0 , spawn , { . v = dmenucmd } } ,
{ MODKEY , XK_y , spawn , { . v = youtube } } ,
{ MODKEY | ShiftMask , XK_p , 0 , spawn , { . v = ports } } ,
{ MODKEY , XK_a , spawn , { . v = offlineArchWiki } } ,
{ MODKEY | ShiftMask , XK_a , spawn , { . v = screenlayout } } ,
{ MODKEY , XK_q , 0 , killclient , { 0 } } ,
{ MODKEY | ShiftMask , XK_m , spawn , { . v = manPages } } ,
{ MODKEY | ShiftMask , XK_p , spawn , { . v = ports } } ,
{ MODKEY | ShiftMask , XK_r , 0 , quit , { 0 } } ,
{ MODKEY , XK_w , spawn , { . v = whichproject } } ,
{ MODKEY | ShiftMask , XK_w , spawn , { . v = project } } ,
{ MODKEY , XK_t , 0 , setlayout , { . v = & layouts [ 0 ] } } ,
{ MODKEY , XK_d , spawn , { . v = pass } } ,
{ MODKEY | ShiftMask , XK_t , 0 , setlayout , { . v = & layouts [ 3 ] } } ,
{ MODKEY , XK_x , spawn , { . v = unity_hud } } ,
//Background
{ MODKEY , XK_u , 0 , spawn , { . v = unicode } } ,
{ MODKEY , XK_e , spawn , { . v = setBackgroundRandom } } ,
{ MODKEY | ControlMask , XK_e , spawn , { . v = backgroundDetails } } ,
{ MODKEY , XK_w , 0 , spawn , { . v = whichproject } } ,
//Special keys
{ MODKEY | ShiftMask , XK_w , 0 , spawn , { . v = project } } ,
{ 0 , XF86XK_AudioRaiseVolume , spawn , { . v = volumeUp } } ,
{ 0 , XF86XK_AudioLowerVolume , spawn , { . v = volumeDown } } ,
{ MODKEY , XK_y , 0 , spawn , { . v = youtube } } ,
{ 0 , XF86XK_AudioMute , spawn , { . v = volumeToggle } } ,
{ 0 , XF86XK_MonBrightnessUp , spawn , { . v = brightnessUp } } ,
{ MODKEY , XK_comma , 0 , focusmon , { . i = - 1 } } ,
{ 0 , XF86XK_MonBrightnessDown , spawn , { . v = brightnessDown } } ,
{ MODKEY | ShiftMask , XK_comma , 0 , tagmon , { . i = - 1 } } ,
{ MODKEY , XK_period , 0 , focusmon , { . i = + 1 } } ,
{ MODKEY | ShiftMask , XK_period , 0 , tagmon , { . i = + 1 } } ,
{ 0 , XK_Print , 0 , spawn , { . v = fullscreenshot } } ,
{ ControlMask , XK_Print , 0 , spawn , { . v = activescreenshot } } ,
{ ShiftMask , XK_Print , 0 , spawn , { . v = selectscreenshot } } ,
{ 0 , XK_F10 , 0 , spawn , { . v = fullscreenshot } } ,
{ ControlMask , XK_F10 , 0 , spawn , { . v = activescreenshot } } ,
{ ShiftMask , XK_F10 , 0 , spawn , { . v = selectscreenshot } } ,
{ 0 , XF86XK_AudioPlay , 0 , spawn , { . v = playpause } } ,
{ 0 , XF86XK_AudioPause , 0 , spawn , { . v = playpause } } ,
{ 0 , XF86XK_AudioRaiseVolume , 0 , spawn , { . v = volumeUp } } ,
{ 0 , XF86XK_AudioLowerVolume , 0 , spawn , { . v = volumeDown } } ,
{ 0 , XF86XK_AudioMute , 0 , spawn , { . v = volumeToggle } } ,
{ 0 , XF86XK_MonBrightnessUp , 0 , spawn , { . v = brightnessUp } } ,
{ 0 , XF86XK_MonBrightnessDown , 0 , spawn , { . v = brightnessDown } } ,
{ MODKEY , XK_Right , 0 , shiftview , { . i = 1 } } ,
{ MODKEY , XK_Left , 0 , shiftview , { . i = - 1 } } ,
// On the pinephone, I want a single press of the power button to put the phone in sleep mode.
// I want a double press to toggle the keyboard
// I want a hold press to bring up the power menu
// TODO: Make a command for screen lock
{ 0 , XF86XK_PowerOff , 1 , spawn , { . v = lockScreen } } ,
{ 0 , XF86XK_PowerOff , 2 , spawn , { . v = toggleKeyboard } } ,
{ 0 , XF86XK_PowerOff , 3 , spawn , { . v = powerMenu } } ,
TAGKEYS ( XK_1 , 0 )
TAGKEYS ( XK_1 , 0 )
TAGKEYS ( XK_2 , 1 )
TAGKEYS ( XK_2 , 1 )
TAGKEYS ( XK_3 , 2 )
TAGKEYS ( XK_3 , 2 )
@ -197,7 +233,9 @@ static Key keys[] = {
TAGKEYS ( XK_7 , 6 )
TAGKEYS ( XK_7 , 6 )
TAGKEYS ( XK_8 , 7 )
TAGKEYS ( XK_8 , 7 )
TAGKEYS ( XK_9 , 8 )
TAGKEYS ( XK_9 , 8 )
{ MODKEY | ShiftMask , XK_r , quit , { 0 } } ,
{ MODKEY , XK_0 , 0 , view , { . ui = ~ 0 } } ,
{ MODKEY | ShiftMask , XK_0 , 0 , tag , { . ui = ~ 0 } } ,
} ;
} ;
/* button definitions */
/* button definitions */