mirror of
https://github.com/Horhik/dotfiles.git
synced 2024-11-26 01:51:35 +00:00
Merge commit '70d3084' into dots
This commit is contained in:
commit
a7a49ec267
|
@ -4,6 +4,11 @@
|
||||||
static const unsigned int borderpx = 3; /* border pixel of windows */
|
static const unsigned int borderpx = 3; /* border pixel of windows */
|
||||||
static const unsigned int gappx = 10; /* gap pixel between windows */
|
static const unsigned int gappx = 10; /* gap pixel between windows */
|
||||||
static const unsigned int snap = 32; /* snap pixel */
|
static const unsigned int snap = 32; /* snap pixel */
|
||||||
|
static const unsigned int gappih = 10; /* horiz inner gap between windows */
|
||||||
|
static const unsigned int gappiv = 10; /* vert inner gap between windows */
|
||||||
|
static const unsigned int gappoh = 20; /* horiz outer gap between windows and screen edge */
|
||||||
|
static const unsigned int gappov = 20; /* vert outer gap between windows and screen edge */
|
||||||
|
static const int smartgaps = 0; /* 1 means no outer gap when there is only one window */
|
||||||
static const int showbar = 1; /* 0 means no bar */
|
static const int showbar = 1; /* 0 means no bar */
|
||||||
static const int topbar = 1; /* 0 means bottom bar */
|
static const int topbar = 1; /* 0 means bottom bar */
|
||||||
static const char *fonts[] = { "Mononoki Nerd Font:size=10"};
|
static const char *fonts[] = { "Mononoki Nerd Font:size=10"};
|
||||||
|
@ -70,9 +75,10 @@ static const Rule rules[] = {
|
||||||
{ NULL, NULL, "scratchpad", 0, 1, -1, 's' },
|
{ NULL, NULL, "scratchpad", 0, 1, -1, 's' },
|
||||||
{ NULL, NULL, "sp_volume", 0, 1, -1, 'v' },
|
{ NULL, NULL, "sp_volume", 0, 1, -1, 'v' },
|
||||||
{ NULL, NULL, "ScratchEmacs", 0, 1, -1, 'e' },
|
{ NULL, NULL, "ScratchEmacs", 0, 1, -1, 'e' },
|
||||||
|
{ "Evolution", NULL, "Tasks - Evolution", 0, 1, -1, 't' },
|
||||||
|
{ NULL, NULL, "Task - No Summary", 0, 1, -1, 0 }
|
||||||
};
|
};
|
||||||
|
// default gaps
|
||||||
/* layout(s) */
|
/* layout(s) */
|
||||||
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
|
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
|
||||||
static const int nmaster = 1; /* number of clients in master area */
|
static const int nmaster = 1; /* number of clients in master area */
|
||||||
|
@ -100,15 +106,13 @@ static const Layout layouts[] = {
|
||||||
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[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, "-c", "-l", "20", NULL};
|
static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, "-c", "-l", "20", NULL};
|
||||||
static const char *termcmd[] = { "alacritty", NULL };
|
static const char *termcmd[] = { "alacritty", NULL };
|
||||||
|
|
||||||
static const char *flameshot[] = { "flameshot","gui", NULL };
|
static const char *flameshot[] = { "flameshot","gui", NULL };
|
||||||
|
|
||||||
/*First arg only serves to match against key in rules*/
|
/*First arg only serves to match against key in rules*/
|
||||||
static const char *scratchpadcmd[] = {"s", "alacritty", "-t", "scratchpad", NULL};
|
static const char *scratchpadcmd[] = {"s", "alacritty", "-t", "scratchpad", NULL};
|
||||||
static const char *sp_emacs[] = {"e", "emacs", "-T", "ScratchEmacs", NULL};
|
static const char *sp_emacs[] = {"e", "emacs", "-T", "ScratchEmacs", NULL};
|
||||||
static const char *sp_volume_control[] = {"v","alacritty", "-t", "sp_volume","-e", "pulsemixer", NULL};
|
static const char *sp_volume_control[] = {"v","alacritty", "-t", "sp_volume","-e", "pulsemixer", NULL};
|
||||||
|
static const char *tasks[] = {"t","evolution", NULL};
|
||||||
|
|
||||||
static Key keys[] = {
|
static Key keys[] = {
|
||||||
/* modifier key function argument */
|
/* modifier key function argument */
|
||||||
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },
|
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },
|
||||||
|
@ -121,6 +125,22 @@ static Key keys[] = {
|
||||||
{ MODKEY, XK_d, incnmaster, {.i = -1 } },
|
{ MODKEY, XK_d, incnmaster, {.i = -1 } },
|
||||||
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
|
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
|
||||||
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
|
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
|
||||||
|
{ MODKEY|Mod1Mask, XK_h, incrgaps, {.i = +1 } },
|
||||||
|
{ MODKEY|Mod1Mask, XK_l, incrgaps, {.i = -10 } },
|
||||||
|
{ MODKEY|Mod1Mask|ShiftMask, XK_h, incrogaps, {.i = +10 } },
|
||||||
|
{ MODKEY|Mod1Mask|ShiftMask, XK_l, incrogaps, {.i = -10 } },
|
||||||
|
{ MODKEY|Mod1Mask|ControlMask, XK_h, incrigaps, {.i = +10 } },
|
||||||
|
{ MODKEY|Mod1Mask|ControlMask, XK_l, incrigaps, {.i = -10 } },
|
||||||
|
{ MODKEY|Mod1Mask, XK_0, togglegaps, {0} },
|
||||||
|
{ MODKEY|Mod1Mask|ShiftMask, XK_0, defaultgaps, {0} },
|
||||||
|
{ MODKEY, XK_y, incrihgaps, {.i = +10 } },
|
||||||
|
{ MODKEY, XK_o, incrihgaps, {.i = -10 } },
|
||||||
|
{ MODKEY|ControlMask, XK_y, incrivgaps, {.i = +10 } },
|
||||||
|
{ MODKEY|ControlMask, XK_o, incrivgaps, {.i = -10 } },
|
||||||
|
{ MODKEY|Mod1Mask, XK_y, incrohgaps, {.i = +10 } },
|
||||||
|
{ MODKEY|Mod1Mask, XK_o, incrohgaps, {.i = -10 } },
|
||||||
|
{ MODKEY|ShiftMask, XK_y, incrovgaps, {.i = +10 } },
|
||||||
|
{ MODKEY|ShiftMask, XK_o, incrovgaps, {.i = -10 } },
|
||||||
{ MODKEY, XK_Return, zoom, {0} },
|
{ MODKEY, XK_Return, zoom, {0} },
|
||||||
{ MODKEY, XK_Tab, view, {0} },
|
{ MODKEY, XK_Tab, view, {0} },
|
||||||
{ MODKEY|ShiftMask, XK_c, killclient, {0} },
|
{ MODKEY|ShiftMask, XK_c, killclient, {0} },
|
||||||
|
@ -129,6 +149,7 @@ static Key keys[] = {
|
||||||
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
|
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
|
||||||
{ MODKEY, XK_space, setlayout, {0} },
|
{ MODKEY, XK_space, setlayout, {0} },
|
||||||
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
|
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
|
||||||
|
{ MODKEY|ShiftMask, XK_f, togglefullscr, {0} },
|
||||||
{ MODKEY, XK_0, view, {.ui = ~0 } },
|
{ MODKEY, XK_0, view, {.ui = ~0 } },
|
||||||
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
|
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
|
||||||
{ MODKEY, XK_comma, focusmon, {.i = -1 } },
|
{ MODKEY, XK_comma, focusmon, {.i = -1 } },
|
||||||
|
@ -142,6 +163,7 @@ static Key keys[] = {
|
||||||
{ MODKEY, XK_u, togglescratch, {.v = scratchpadcmd } },
|
{ MODKEY, XK_u, togglescratch, {.v = scratchpadcmd } },
|
||||||
{ MODKEY|ShiftMask, XK_m, togglescratch, {.v = sp_volume_control } },
|
{ MODKEY|ShiftMask, XK_m, togglescratch, {.v = sp_volume_control } },
|
||||||
{ MODKEY, XK_e, togglescratch, {.v = sp_emacs } },
|
{ MODKEY, XK_e, togglescratch, {.v = sp_emacs } },
|
||||||
|
{ MODKEY, XK_t, togglescratch, {.v = tasks } },
|
||||||
{ MODKEY, XK_n, togglealttag, {0} },
|
{ MODKEY, XK_n, togglealttag, {0} },
|
||||||
TAGKEYS( XK_1, 0)
|
TAGKEYS( XK_1, 0)
|
||||||
TAGKEYS( XK_2, 1)
|
TAGKEYS( XK_2, 1)
|
||||||
|
|
|
@ -12,12 +12,22 @@ static const char col_gray1[] = "#282828";
|
||||||
static const char col_gray2[] = "#928374";
|
static const char col_gray2[] = "#928374";
|
||||||
static const char col_gray3[] = "#d5c4a1";
|
static const char col_gray3[] = "#d5c4a1";
|
||||||
static const char col_gray4[] = "#ebdbb2";
|
static const char col_gray4[] = "#ebdbb2";
|
||||||
static const char col_cyan[] = "#d65d0e";
|
static const char col_cyan[] = "#3c3836";
|
||||||
//static const char col_cyan[] = "#d79921";
|
static const char col_norm[] = "#d65d0e";
|
||||||
|
static const char col_norm2[] = "#b16286";
|
||||||
|
static const char col_norm3[] = "#d79921";
|
||||||
static const char *colors[][3] = {
|
static const char *colors[][3] = {
|
||||||
/* fg bg border */
|
/* fg bg border */
|
||||||
[SchemeNorm] = { col_gray3, col_gray1, col_gray2 },
|
[SchemeNorm] = { col_norm, col_cyan, col_cyan},
|
||||||
[SchemeSel] = { col_gray4, col_cyan, col_cyan },
|
|
||||||
|
[SchemeSel] = { col_gray4, col_norm2, col_norm3 },
|
||||||
|
[SchemeStatus] = { col_norm2, col_cyan, "#000000" }, // Statusbar right {text,background,not used but cannot be empty}
|
||||||
|
|
||||||
|
[SchemeTagsSel] = { col_gray1, col_norm3, "#000000" }, // Tagbar left selected {text,background,not used but cannot be empty}
|
||||||
|
[SchemeTagsNorm] = { col_norm2, col_cyan, "#000000" }, // Tagbar left unselected {text,background,not used but cannot be empty}
|
||||||
|
|
||||||
|
[SchemeInfoSel] = { col_gray4, col_cyan, "#000000" }, // infobar middle selected {text,background,not used but cannot be empty}
|
||||||
|
[SchemeInfoNorm] = { col_norm2, col_cyan, "#000000" }, // infobar middle unselected {text,background,not used but cannot be empty}
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char *const autostart[] = {
|
static const char *const autostart[] = {
|
||||||
|
@ -60,7 +70,8 @@ static const Rule rules[] = {
|
||||||
{ NULL, NULL, "scratchpad", 0, 1, -1, 's' },
|
{ NULL, NULL, "scratchpad", 0, 1, -1, 's' },
|
||||||
{ NULL, NULL, "sp_volume", 0, 1, -1, 'v' },
|
{ NULL, NULL, "sp_volume", 0, 1, -1, 'v' },
|
||||||
{ NULL, NULL, "ScratchEmacs", 0, 1, -1, 'e' },
|
{ NULL, NULL, "ScratchEmacs", 0, 1, -1, 'e' },
|
||||||
|
{ "Evolution", NULL, "Tasks - Evolution", 0, 1, -1, 't' },
|
||||||
|
{ NULL, NULL, "Task - No Summary", 0, 1, -1, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
/* layout(s) */
|
/* layout(s) */
|
||||||
|
@ -90,13 +101,13 @@ static const Layout layouts[] = {
|
||||||
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[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, "-c", "-l", "20", NULL};
|
static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, "-c", "-l", "20", NULL};
|
||||||
static const char *termcmd[] = { "alacritty", NULL };
|
static const char *termcmd[] = { "alacritty", NULL };
|
||||||
|
|
||||||
static const char *flameshot[] = { "flameshot","gui", NULL };
|
static const char *flameshot[] = { "flameshot","gui", NULL };
|
||||||
|
|
||||||
/*First arg only serves to match against key in rules*/
|
/*First arg only serves to match against key in rules*/
|
||||||
static const char *scratchpadcmd[] = {"s", "alacritty", "-t", "scratchpad", NULL};
|
static const char *scratchpadcmd[] = {"s", "alacritty", "-t", "scratchpad", NULL};
|
||||||
static const char *sp_emacs[] = {"e", "emacs", "-T", "ScratchEmacs", NULL};
|
static const char *sp_emacs[] = {"e", "emacs", "-T", "ScratchEmacs", NULL};
|
||||||
static const char *sp_volume_control[] = {"v","alacritty", "-t", "sp_volume","-e", "pulsemixer", NULL};
|
static const char *sp_volume_control[] = {"v","alacritty", "-t", "sp_volume","-e", "pulsemixer", NULL};
|
||||||
|
static const char *tasks[] = {"t","evolution", NULL};
|
||||||
|
|
||||||
|
|
||||||
static Key keys[] = {
|
static Key keys[] = {
|
||||||
|
@ -119,6 +130,7 @@ static Key keys[] = {
|
||||||
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
|
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
|
||||||
{ MODKEY, XK_space, setlayout, {0} },
|
{ MODKEY, XK_space, setlayout, {0} },
|
||||||
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
|
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
|
||||||
|
{ MODKEY|ShiftMask, XK_f, togglefullscr, {0} },
|
||||||
{ MODKEY, XK_0, view, {.ui = ~0 } },
|
{ MODKEY, XK_0, view, {.ui = ~0 } },
|
||||||
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
|
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
|
||||||
{ MODKEY, XK_comma, focusmon, {.i = -1 } },
|
{ MODKEY, XK_comma, focusmon, {.i = -1 } },
|
||||||
|
@ -132,6 +144,7 @@ static Key keys[] = {
|
||||||
{ MODKEY, XK_u, togglescratch, {.v = scratchpadcmd } },
|
{ MODKEY, XK_u, togglescratch, {.v = scratchpadcmd } },
|
||||||
{ MODKEY|ShiftMask, XK_m, togglescratch, {.v = sp_volume_control } },
|
{ MODKEY|ShiftMask, XK_m, togglescratch, {.v = sp_volume_control } },
|
||||||
{ MODKEY, XK_e, togglescratch, {.v = sp_emacs } },
|
{ MODKEY, XK_e, togglescratch, {.v = sp_emacs } },
|
||||||
|
{ MODKEY, XK_t, togglescratch, {.v = tasks } },
|
||||||
{ MODKEY, XK_n, togglealttag, {0} },
|
{ MODKEY, XK_n, togglealttag, {0} },
|
||||||
TAGKEYS( XK_1, 0)
|
TAGKEYS( XK_1, 0)
|
||||||
TAGKEYS( XK_2, 1)
|
TAGKEYS( XK_2, 1)
|
||||||
|
|
|
@ -4,6 +4,11 @@
|
||||||
static const unsigned int borderpx = 3; /* border pixel of windows */
|
static const unsigned int borderpx = 3; /* border pixel of windows */
|
||||||
static const unsigned int gappx = 10; /* gap pixel between windows */
|
static const unsigned int gappx = 10; /* gap pixel between windows */
|
||||||
static const unsigned int snap = 32; /* snap pixel */
|
static const unsigned int snap = 32; /* snap pixel */
|
||||||
|
static const unsigned int gappih = 10; /* horiz inner gap between windows */
|
||||||
|
static const unsigned int gappiv = 10; /* vert inner gap between windows */
|
||||||
|
static const unsigned int gappoh = 20; /* horiz outer gap between windows and screen edge */
|
||||||
|
static const unsigned int gappov = 20; /* vert outer gap between windows and screen edge */
|
||||||
|
static const int smartgaps = 0; /* 1 means no outer gap when there is only one window */
|
||||||
static const int showbar = 1; /* 0 means no bar */
|
static const int showbar = 1; /* 0 means no bar */
|
||||||
static const int topbar = 1; /* 0 means bottom bar */
|
static const int topbar = 1; /* 0 means bottom bar */
|
||||||
static const char *fonts[] = { "Mononoki Nerd Font:size=10"};
|
static const char *fonts[] = { "Mononoki Nerd Font:size=10"};
|
||||||
|
@ -70,9 +75,10 @@ static const Rule rules[] = {
|
||||||
{ NULL, NULL, "scratchpad", 0, 1, -1, 's' },
|
{ NULL, NULL, "scratchpad", 0, 1, -1, 's' },
|
||||||
{ NULL, NULL, "sp_volume", 0, 1, -1, 'v' },
|
{ NULL, NULL, "sp_volume", 0, 1, -1, 'v' },
|
||||||
{ NULL, NULL, "ScratchEmacs", 0, 1, -1, 'e' },
|
{ NULL, NULL, "ScratchEmacs", 0, 1, -1, 'e' },
|
||||||
|
{ "Evolution", NULL, "Tasks - Evolution", 0, 1, -1, 't' },
|
||||||
|
{ NULL, NULL, "Task - No Summary", 0, 1, -1, 0 }
|
||||||
};
|
};
|
||||||
|
// default gaps
|
||||||
/* layout(s) */
|
/* layout(s) */
|
||||||
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
|
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
|
||||||
static const int nmaster = 1; /* number of clients in master area */
|
static const int nmaster = 1; /* number of clients in master area */
|
||||||
|
@ -100,15 +106,13 @@ static const Layout layouts[] = {
|
||||||
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[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, "-c", "-l", "20", NULL};
|
static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, "-c", "-l", "20", NULL};
|
||||||
static const char *termcmd[] = { "alacritty", NULL };
|
static const char *termcmd[] = { "alacritty", NULL };
|
||||||
|
|
||||||
static const char *flameshot[] = { "flameshot","gui", NULL };
|
static const char *flameshot[] = { "flameshot","gui", NULL };
|
||||||
|
|
||||||
/*First arg only serves to match against key in rules*/
|
/*First arg only serves to match against key in rules*/
|
||||||
static const char *scratchpadcmd[] = {"s", "alacritty", "-t", "scratchpad", NULL};
|
static const char *scratchpadcmd[] = {"s", "alacritty", "-t", "scratchpad", NULL};
|
||||||
static const char *sp_emacs[] = {"e", "emacs", "-T", "ScratchEmacs", NULL};
|
static const char *sp_emacs[] = {"e", "emacs", "-T", "ScratchEmacs", NULL};
|
||||||
static const char *sp_volume_control[] = {"v","alacritty", "-t", "sp_volume","-e", "pulsemixer", NULL};
|
static const char *sp_volume_control[] = {"v","alacritty", "-t", "sp_volume","-e", "pulsemixer", NULL};
|
||||||
|
static const char *tasks[] = {"t","evolution", NULL};
|
||||||
|
|
||||||
static Key keys[] = {
|
static Key keys[] = {
|
||||||
/* modifier key function argument */
|
/* modifier key function argument */
|
||||||
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },
|
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },
|
||||||
|
@ -121,6 +125,22 @@ static Key keys[] = {
|
||||||
{ MODKEY, XK_d, incnmaster, {.i = -1 } },
|
{ MODKEY, XK_d, incnmaster, {.i = -1 } },
|
||||||
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
|
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
|
||||||
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
|
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
|
||||||
|
{ MODKEY|Mod1Mask, XK_h, incrgaps, {.i = +1 } },
|
||||||
|
{ MODKEY|Mod1Mask, XK_l, incrgaps, {.i = -10 } },
|
||||||
|
{ MODKEY|Mod1Mask|ShiftMask, XK_h, incrogaps, {.i = +10 } },
|
||||||
|
{ MODKEY|Mod1Mask|ShiftMask, XK_l, incrogaps, {.i = -10 } },
|
||||||
|
{ MODKEY|Mod1Mask|ControlMask, XK_h, incrigaps, {.i = +10 } },
|
||||||
|
{ MODKEY|Mod1Mask|ControlMask, XK_l, incrigaps, {.i = -10 } },
|
||||||
|
{ MODKEY|Mod1Mask, XK_0, togglegaps, {0} },
|
||||||
|
{ MODKEY|Mod1Mask|ShiftMask, XK_0, defaultgaps, {0} },
|
||||||
|
{ MODKEY, XK_y, incrihgaps, {.i = +10 } },
|
||||||
|
{ MODKEY, XK_o, incrihgaps, {.i = -10 } },
|
||||||
|
{ MODKEY|ControlMask, XK_y, incrivgaps, {.i = +10 } },
|
||||||
|
{ MODKEY|ControlMask, XK_o, incrivgaps, {.i = -10 } },
|
||||||
|
{ MODKEY|Mod1Mask, XK_y, incrohgaps, {.i = +10 } },
|
||||||
|
{ MODKEY|Mod1Mask, XK_o, incrohgaps, {.i = -10 } },
|
||||||
|
{ MODKEY|ShiftMask, XK_y, incrovgaps, {.i = +10 } },
|
||||||
|
{ MODKEY|ShiftMask, XK_o, incrovgaps, {.i = -10 } },
|
||||||
{ MODKEY, XK_Return, zoom, {0} },
|
{ MODKEY, XK_Return, zoom, {0} },
|
||||||
{ MODKEY, XK_Tab, view, {0} },
|
{ MODKEY, XK_Tab, view, {0} },
|
||||||
{ MODKEY|ShiftMask, XK_c, killclient, {0} },
|
{ MODKEY|ShiftMask, XK_c, killclient, {0} },
|
||||||
|
@ -129,6 +149,7 @@ static Key keys[] = {
|
||||||
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
|
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
|
||||||
{ MODKEY, XK_space, setlayout, {0} },
|
{ MODKEY, XK_space, setlayout, {0} },
|
||||||
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
|
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
|
||||||
|
{ MODKEY|ShiftMask, XK_f, togglefullscr, {0} },
|
||||||
{ MODKEY, XK_0, view, {.ui = ~0 } },
|
{ MODKEY, XK_0, view, {.ui = ~0 } },
|
||||||
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
|
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
|
||||||
{ MODKEY, XK_comma, focusmon, {.i = -1 } },
|
{ MODKEY, XK_comma, focusmon, {.i = -1 } },
|
||||||
|
@ -142,6 +163,7 @@ static Key keys[] = {
|
||||||
{ MODKEY, XK_u, togglescratch, {.v = scratchpadcmd } },
|
{ MODKEY, XK_u, togglescratch, {.v = scratchpadcmd } },
|
||||||
{ MODKEY|ShiftMask, XK_m, togglescratch, {.v = sp_volume_control } },
|
{ MODKEY|ShiftMask, XK_m, togglescratch, {.v = sp_volume_control } },
|
||||||
{ MODKEY, XK_e, togglescratch, {.v = sp_emacs } },
|
{ MODKEY, XK_e, togglescratch, {.v = sp_emacs } },
|
||||||
|
{ MODKEY, XK_t, togglescratch, {.v = tasks } },
|
||||||
{ MODKEY, XK_n, togglealttag, {0} },
|
{ MODKEY, XK_n, togglealttag, {0} },
|
||||||
TAGKEYS( XK_1, 0)
|
TAGKEYS( XK_1, 0)
|
||||||
TAGKEYS( XK_2, 1)
|
TAGKEYS( XK_2, 1)
|
||||||
|
|
BIN
dwm-6.2/dwm
BIN
dwm-6.2/dwm
Binary file not shown.
200
dwm-6.2/dwm.c
200
dwm-6.2/dwm.c
|
@ -122,6 +122,10 @@ struct Monitor {
|
||||||
int mx, my, mw, mh; /* screen size */
|
int mx, my, mw, mh; /* screen size */
|
||||||
int wx, wy, ww, wh; /* window area */
|
int wx, wy, ww, wh; /* window area */
|
||||||
int gappx; /* gaps between windows */
|
int gappx; /* gaps between windows */
|
||||||
|
int gappih; /* horizontal gap between windows */
|
||||||
|
int gappiv; /* vertical gap between windows */
|
||||||
|
int gappoh; /* horizontal outer gaps */
|
||||||
|
int gappov; /* vertical outer gaps */
|
||||||
unsigned int seltags;
|
unsigned int seltags;
|
||||||
unsigned int sellt;
|
unsigned int sellt;
|
||||||
unsigned int tagset[2];
|
unsigned int tagset[2];
|
||||||
|
@ -212,7 +216,16 @@ static void sendmon(Client *c, Monitor *m);
|
||||||
static void setclientstate(Client *c, long state);
|
static void setclientstate(Client *c, long state);
|
||||||
static void setfocus(Client *c);
|
static void setfocus(Client *c);
|
||||||
static void setfullscreen(Client *c, int fullscreen);
|
static void setfullscreen(Client *c, int fullscreen);
|
||||||
static void setgaps(const Arg *arg);
|
static void setgaps(int oh, int ov, int ih, int iv);
|
||||||
|
static void incrgaps(const Arg *arg);
|
||||||
|
static void incrigaps(const Arg *arg);
|
||||||
|
static void incrogaps(const Arg *arg);
|
||||||
|
static void incrohgaps(const Arg *arg);
|
||||||
|
static void incrovgaps(const Arg *arg);
|
||||||
|
static void incrihgaps(const Arg *arg);
|
||||||
|
static void incrivgaps(const Arg *arg);
|
||||||
|
static void togglegaps(const Arg *arg);
|
||||||
|
static void defaultgaps(const Arg *arg);
|
||||||
static void setlayout(const Arg *arg);
|
static void setlayout(const Arg *arg);
|
||||||
static void setmfact(const Arg *arg);
|
static void setmfact(const Arg *arg);
|
||||||
static void setup(void);
|
static void setup(void);
|
||||||
|
@ -227,6 +240,7 @@ static void tile(Monitor *);
|
||||||
static void togglealttag();
|
static void togglealttag();
|
||||||
static void togglebar(const Arg *arg);
|
static void togglebar(const Arg *arg);
|
||||||
static void togglefloating(const Arg *arg);
|
static void togglefloating(const Arg *arg);
|
||||||
|
static void togglefullscr(const Arg *arg);
|
||||||
static void togglescratch(const Arg *arg);
|
static void togglescratch(const Arg *arg);
|
||||||
static void toggletag(const Arg *arg);
|
static void toggletag(const Arg *arg);
|
||||||
static void toggleview(const Arg *arg);
|
static void toggleview(const Arg *arg);
|
||||||
|
@ -262,6 +276,7 @@ static char stext[256];
|
||||||
static int screen;
|
static int screen;
|
||||||
static int sw, sh; /* X display screen geometry width, height */
|
static int sw, sh; /* X display screen geometry width, height */
|
||||||
static int bh, blw = 0; /* bar geometry */
|
static int bh, blw = 0; /* bar geometry */
|
||||||
|
static int enablegaps = 1; /* enables gaps, used by togglegaps */
|
||||||
static int lrpad; /* sum of left and right padding for text */
|
static int lrpad; /* sum of left and right padding for text */
|
||||||
static int (*xerrorxlib)(Display *, XErrorEvent *);
|
static int (*xerrorxlib)(Display *, XErrorEvent *);
|
||||||
static unsigned int numlockmask = 0;
|
static unsigned int numlockmask = 0;
|
||||||
|
@ -707,6 +722,10 @@ createmon(void)
|
||||||
m->showbar = showbar;
|
m->showbar = showbar;
|
||||||
m->topbar = topbar;
|
m->topbar = topbar;
|
||||||
m->gappx = gappx;
|
m->gappx = gappx;
|
||||||
|
m->gappih = gappih;
|
||||||
|
m->gappiv = gappiv;
|
||||||
|
m->gappoh = gappoh;
|
||||||
|
m->gappov = gappov;
|
||||||
m->lt[0] = &layouts[0];
|
m->lt[0] = &layouts[0];
|
||||||
m->lt[1] = &layouts[1 % LENGTH(layouts)];
|
m->lt[1] = &layouts[1 % LENGTH(layouts)];
|
||||||
strncpy(m->ltsymbol, layouts[0].symbol, sizeof m->ltsymbol);
|
strncpy(m->ltsymbol, layouts[0].symbol, sizeof m->ltsymbol);
|
||||||
|
@ -1380,6 +1399,13 @@ resizeclient(Client *c, int x, int y, int w, int h)
|
||||||
c->oldw = c->w; c->w = wc.width = w;
|
c->oldw = c->w; c->w = wc.width = w;
|
||||||
c->oldh = c->h; c->h = wc.height = h;
|
c->oldh = c->h; c->h = wc.height = h;
|
||||||
wc.border_width = c->bw;
|
wc.border_width = c->bw;
|
||||||
|
if (((nexttiled(c->mon->clients) == c && !nexttiled(c->next))
|
||||||
|
|| &monocle == c->mon->lt[c->mon->sellt]->arrange)
|
||||||
|
&& !c->isfullscreen && !c->isfloating) {
|
||||||
|
c->w = wc.width += c->bw * 2;
|
||||||
|
c->h = wc.height += c->bw * 2;
|
||||||
|
wc.border_width = 0;
|
||||||
|
}
|
||||||
XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc);
|
XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc);
|
||||||
configure(c);
|
configure(c);
|
||||||
XSync(dpy, False);
|
XSync(dpy, False);
|
||||||
|
@ -1655,17 +1681,111 @@ setfullscreen(Client *c, int fullscreen)
|
||||||
c->isfullscreen = 0;
|
c->isfullscreen = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
void
|
||||||
|
setgaps(int oh, int ov, int ih, int iv)
|
||||||
|
{
|
||||||
|
if (oh < 0) oh = 0;
|
||||||
|
if (ov < 0) ov = 0;
|
||||||
|
if (ih < 0) ih = 0;
|
||||||
|
if (iv < 0) iv = 0;
|
||||||
|
|
||||||
|
selmon->gappoh = oh;
|
||||||
|
selmon->gappov = ov;
|
||||||
|
selmon->gappih = ih;
|
||||||
|
selmon->gappiv = iv;
|
||||||
|
arrange(selmon);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
setgaps(const Arg *arg)
|
togglegaps(const Arg *arg)
|
||||||
{
|
{
|
||||||
if ((arg->i == 0) || (selmon->gappx + arg->i < 0))
|
enablegaps = !enablegaps;
|
||||||
selmon->gappx = 0;
|
|
||||||
else
|
|
||||||
selmon->gappx += arg->i;
|
|
||||||
arrange(selmon);
|
arrange(selmon);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
defaultgaps(const Arg *arg)
|
||||||
|
{
|
||||||
|
setgaps(gappoh, gappov, gappih, gappiv);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
incrgaps(const Arg *arg)
|
||||||
|
{
|
||||||
|
setgaps(
|
||||||
|
selmon->gappoh + arg->i,
|
||||||
|
selmon->gappov + arg->i,
|
||||||
|
selmon->gappih + arg->i,
|
||||||
|
selmon->gappiv + arg->i
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
incrigaps(const Arg *arg)
|
||||||
|
{
|
||||||
|
setgaps(
|
||||||
|
selmon->gappoh,
|
||||||
|
selmon->gappov,
|
||||||
|
selmon->gappih + arg->i,
|
||||||
|
selmon->gappiv + arg->i
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
incrogaps(const Arg *arg)
|
||||||
|
{
|
||||||
|
setgaps(
|
||||||
|
selmon->gappoh + arg->i,
|
||||||
|
selmon->gappov + arg->i,
|
||||||
|
selmon->gappih,
|
||||||
|
selmon->gappiv
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
incrohgaps(const Arg *arg)
|
||||||
|
{
|
||||||
|
setgaps(
|
||||||
|
selmon->gappoh + arg->i,
|
||||||
|
selmon->gappov,
|
||||||
|
selmon->gappih,
|
||||||
|
selmon->gappiv
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
incrovgaps(const Arg *arg)
|
||||||
|
{
|
||||||
|
setgaps(
|
||||||
|
selmon->gappoh,
|
||||||
|
selmon->gappov + arg->i,
|
||||||
|
selmon->gappih,
|
||||||
|
selmon->gappiv
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
incrihgaps(const Arg *arg)
|
||||||
|
{
|
||||||
|
setgaps(
|
||||||
|
selmon->gappoh,
|
||||||
|
selmon->gappov,
|
||||||
|
selmon->gappih + arg->i,
|
||||||
|
selmon->gappiv
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
incrivgaps(const Arg *arg)
|
||||||
|
{
|
||||||
|
setgaps(
|
||||||
|
selmon->gappoh,
|
||||||
|
selmon->gappov,
|
||||||
|
selmon->gappih,
|
||||||
|
selmon->gappiv + arg->i
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
setlayout(const Arg *arg)
|
setlayout(const Arg *arg)
|
||||||
{
|
{
|
||||||
|
@ -1879,40 +1999,39 @@ tagmon(const Arg *arg)
|
||||||
|
|
||||||
void
|
void
|
||||||
tile(Monitor *m)
|
tile(Monitor *m)
|
||||||
{
|
|
||||||
unsigned int i, n, h, mw, my, ty, ns;
|
|
||||||
Client *c;
|
|
||||||
|
|
||||||
for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
|
{
|
||||||
if (n == 0)
|
unsigned int i, n, h, r, oe = enablegaps, ie = enablegaps, mw, my, ty;
|
||||||
return;
|
Client *c;
|
||||||
if(n == 1){
|
|
||||||
c = nexttiled(m->clients);
|
for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
|
||||||
resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * c->bw, 0);
|
if (n == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (smartgaps == n) {
|
||||||
|
oe = 0; // outer gaps disabled
|
||||||
}
|
}
|
||||||
|
|
||||||
if (n > m->nmaster){
|
if (n > m->nmaster)
|
||||||
mw = m->nmaster ? m->ww * m->mfact : 0;
|
mw = m->nmaster ? (m->ww + m->gappiv*ie) * m->mfact : 0;
|
||||||
ns = m->nmaster > 0 ? 2 : 1;
|
else
|
||||||
}
|
mw = m->ww - 2*m->gappov*oe + m->gappiv*ie;
|
||||||
else{
|
for (i = 0, my = ty = m->gappoh*oe, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++)
|
||||||
mw = m->ww - m->gappx;
|
if (i < m->nmaster) {
|
||||||
ns = 1;
|
r = MIN(n, m->nmaster) - i;
|
||||||
}
|
h = (m->wh - my - m->gappoh*oe - m->gappih*ie * (r - 1)) / r;
|
||||||
for (i = 0, my = ty = m->gappx, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++)
|
resize(c, m->wx + m->gappov*oe, m->wy + my, mw - (2*c->bw) - m->gappiv*ie, h - (2*c->bw), 0);
|
||||||
if (i < m->nmaster) {
|
if (my + HEIGHT(c) + m->gappih*ie < m->wh)
|
||||||
h = (m->wh - my) / (MIN(n, m->nmaster) - i) - m->gappx;
|
my += HEIGHT(c) + m->gappih*ie;
|
||||||
resize(c, m->wx + m->gappx, m->wy + my, mw - 2*c->bw - m->gappx*(5-ns)/2, h - 2*c->bw, 0);
|
} else {
|
||||||
if(my + HEIGHT(c) + m->gappx < m->wh)
|
r = n - i;
|
||||||
my += HEIGHT(c) + m->gappx;
|
h = (m->wh - ty - m->gappoh*oe - m->gappih*ie * (r - 1)) / r;
|
||||||
} else {
|
resize(c, m->wx + mw + m->gappov*oe, m->wy + ty, m->ww - mw - (2*c->bw) - 2*m->gappov*oe, h - (2*c->bw), 0);
|
||||||
h = (m->wh - ty) / (n - i) - m->gappx;
|
if (ty + HEIGHT(c) + m->gappih*ie < m->wh)
|
||||||
resize(c, m->wx + mw + m->gappx/ns, m->wy + ty, m->ww - mw - (2*c->bw) - m->gappx*(5-ns)/2, h - 2*c->bw, 0);
|
ty += HEIGHT(c) + m->gappih*ie;
|
||||||
if(ty + HEIGHT(c) + m->gappx < m->wh)
|
}
|
||||||
ty += HEIGHT(c) + m->gappx;
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
togglebar(const Arg *arg)
|
togglebar(const Arg *arg)
|
||||||
|
@ -1957,6 +2076,13 @@ togglescratch(const Arg *arg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
togglefullscr(const Arg *arg)
|
||||||
|
{
|
||||||
|
if(selmon->sel)
|
||||||
|
setfullscreen(selmon->sel, !selmon->sel->isfullscreen);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
toggletag(const Arg *arg)
|
toggletag(const Arg *arg)
|
||||||
{
|
{
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
|
|
||||||
/* enums */
|
/* enums */
|
||||||
enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
|
enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
|
||||||
enum { SchemeNorm, SchemeSel }; /* color schemes */
|
enum { SchemeNorm, SchemeSel, SchemeStatus, SchemeTagsSel, SchemeTagsNorm, SchemeInfoSel, SchemeInfoNorm }; /* color schemes */
|
||||||
enum { NetSupported, NetWMName, NetWMState, NetWMCheck,
|
enum { NetSupported, NetWMName, NetWMState, NetWMCheck,
|
||||||
NetWMFullscreen, NetActiveWindow, NetWMWindowType,
|
NetWMFullscreen, NetActiveWindow, NetWMWindowType,
|
||||||
NetWMWindowTypeDialog, NetClientList, NetLast }; /* EWMH atoms */
|
NetWMWindowTypeDialog, NetClientList, NetLast }; /* EWMH atoms */
|
||||||
|
@ -227,6 +227,7 @@ static void tile(Monitor *);
|
||||||
static void togglealttag();
|
static void togglealttag();
|
||||||
static void togglebar(const Arg *arg);
|
static void togglebar(const Arg *arg);
|
||||||
static void togglefloating(const Arg *arg);
|
static void togglefloating(const Arg *arg);
|
||||||
|
static void togglefullscr(const Arg *arg);
|
||||||
static void togglescratch(const Arg *arg);
|
static void togglescratch(const Arg *arg);
|
||||||
static void toggletag(const Arg *arg);
|
static void toggletag(const Arg *arg);
|
||||||
static void toggleview(const Arg *arg);
|
static void toggleview(const Arg *arg);
|
||||||
|
@ -772,7 +773,7 @@ drawbar(Monitor *m)
|
||||||
|
|
||||||
/* draw status first so it can be overdrawn by tags later */
|
/* draw status first so it can be overdrawn by tags later */
|
||||||
if (m == selmon) { /* status is only drawn on selected monitor */
|
if (m == selmon) { /* status is only drawn on selected monitor */
|
||||||
drw_setscheme(drw, scheme[SchemeNorm]);
|
drw_setscheme(drw, scheme[SchemeStatus]);
|
||||||
tw = TEXTW(stext) - lrpad + 2; /* 2px right padding */
|
tw = TEXTW(stext) - lrpad + 2; /* 2px right padding */
|
||||||
drw_text(drw, m->ww - tw, 0, tw, bh, 0, stext, 0);
|
drw_text(drw, m->ww - tw, 0, tw, bh, 0, stext, 0);
|
||||||
}
|
}
|
||||||
|
@ -786,7 +787,7 @@ drawbar(Monitor *m)
|
||||||
for (i = 0; i < LENGTH(tags); i++) {
|
for (i = 0; i < LENGTH(tags); i++) {
|
||||||
w = TEXTW(tags[i]);
|
w = TEXTW(tags[i]);
|
||||||
wdelta = selmon->alttag ? abs(TEXTW(tags[i]) - TEXTW(tagsalt[i])) / 2 : 0;
|
wdelta = selmon->alttag ? abs(TEXTW(tags[i]) - TEXTW(tagsalt[i])) / 2 : 0;
|
||||||
drw_setscheme(drw, scheme[m->tagset[m->seltags] & 1 << i ? SchemeSel : SchemeNorm]);
|
drw_setscheme(drw, scheme[m->tagset[m->seltags] & 1 << i ? SchemeTagsSel : SchemeTagsNorm]);
|
||||||
drw_text(drw, x, 0, w, bh, wdelta + lrpad / 2, (selmon->alttag ? tagsalt[i] : tags[i]), urg & 1 << i);
|
drw_text(drw, x, 0, w, bh, wdelta + lrpad / 2, (selmon->alttag ? tagsalt[i] : tags[i]), urg & 1 << i);
|
||||||
if (occ & 1 << i)
|
if (occ & 1 << i)
|
||||||
drw_rect(drw, x + boxs, boxs, boxw, boxw,
|
drw_rect(drw, x + boxs, boxs, boxw, boxw,
|
||||||
|
@ -811,12 +812,12 @@ drawbar(Monitor *m)
|
||||||
int mid = (m->ww - (int)TEXTW(m->sel->name)) / 2 - x;
|
int mid = (m->ww - (int)TEXTW(m->sel->name)) / 2 - x;
|
||||||
/* make sure name will not overlap on tags even when it is very long */
|
/* make sure name will not overlap on tags even when it is very long */
|
||||||
mid = mid >= lrpad / 2 ? mid : lrpad / 2;
|
mid = mid >= lrpad / 2 ? mid : lrpad / 2;
|
||||||
drw_setscheme(drw, scheme[m == selmon ? SchemeSel : SchemeNorm]);
|
drw_setscheme(drw, scheme[m == selmon ? SchemeInfoSel : SchemeInfoNorm]);
|
||||||
drw_text(drw, x, 0, w, bh, mid, m->sel->name, 0);
|
drw_text(drw, x, 0, w, bh, mid, m->sel->name, 0);
|
||||||
if (m->sel->isfloating)
|
if (m->sel->isfloating)
|
||||||
drw_rect(drw, x + boxs, boxs, boxw, boxw, m->sel->isfixed, 0);
|
drw_rect(drw, x + boxs, boxs, boxw, boxw, m->sel->isfixed, 0);
|
||||||
} else {
|
} else {
|
||||||
drw_setscheme(drw, scheme[SchemeNorm]);
|
drw_setscheme(drw, scheme[SchemeInfoNorm]);
|
||||||
drw_rect(drw, x, 0, w, bh, 1, 1);
|
drw_rect(drw, x, 0, w, bh, 1, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1380,6 +1381,13 @@ resizeclient(Client *c, int x, int y, int w, int h)
|
||||||
c->oldw = c->w; c->w = wc.width = w;
|
c->oldw = c->w; c->w = wc.width = w;
|
||||||
c->oldh = c->h; c->h = wc.height = h;
|
c->oldh = c->h; c->h = wc.height = h;
|
||||||
wc.border_width = c->bw;
|
wc.border_width = c->bw;
|
||||||
|
if (((nexttiled(c->mon->clients) == c && !nexttiled(c->next))
|
||||||
|
|| &monocle == c->mon->lt[c->mon->sellt]->arrange)
|
||||||
|
&& !c->isfullscreen && !c->isfloating) {
|
||||||
|
c->w = wc.width += c->bw * 2;
|
||||||
|
c->h = wc.height += c->bw * 2;
|
||||||
|
wc.border_width = 0;
|
||||||
|
}
|
||||||
XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc);
|
XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc);
|
||||||
configure(c);
|
configure(c);
|
||||||
XSync(dpy, False);
|
XSync(dpy, False);
|
||||||
|
@ -1957,6 +1965,13 @@ togglescratch(const Arg *arg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
togglefullscr(const Arg *arg)
|
||||||
|
{
|
||||||
|
if(selmon->sel)
|
||||||
|
setfullscreen(selmon->sel, !selmon->sel->isfullscreen);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
toggletag(const Arg *arg)
|
toggletag(const Arg *arg)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,41 +1,88 @@
|
||||||
--- dwm.c
|
--- dwm.c
|
||||||
+++ dwm.c
|
+++ dwm.c
|
||||||
@@ -703,7 +703,7 @@ drawbar(Monitor *m)
|
@@ -119,6 +119,10 @@ struct Monitor {
|
||||||
|
int by; /* bar geometry */
|
||||||
|
int mx, my, mw, mh; /* screen size */
|
||||||
|
int wx, wy, ww, wh; /* window area */
|
||||||
|
+ int gappih; /* horizontal gap between windows */
|
||||||
|
+ int gappiv; /* vertical gap between windows */
|
||||||
|
+ int gappoh; /* horizontal outer gaps */
|
||||||
|
+ int gappov; /* vertical outer gaps */
|
||||||
|
unsigned int seltags;
|
||||||
|
unsigned int sellt;
|
||||||
|
unsigned int tagset[2];
|
||||||
|
@@ -200,6 +204,16 @@ static void sendmon(Client *c, Monitor *m);
|
||||||
|
static void setclientstate(Client *c, long state);
|
||||||
|
static void setfocus(Client *c);
|
||||||
|
static void setfullscreen(Client *c, int fullscreen);
|
||||||
|
+static void setgaps(int oh, int ov, int ih, int iv);
|
||||||
|
+static void incrgaps(const Arg *arg);
|
||||||
|
+static void incrigaps(const Arg *arg);
|
||||||
|
+static void incrogaps(const Arg *arg);
|
||||||
|
+static void incrohgaps(const Arg *arg);
|
||||||
|
+static void incrovgaps(const Arg *arg);
|
||||||
|
+static void incrihgaps(const Arg *arg);
|
||||||
|
+static void incrivgaps(const Arg *arg);
|
||||||
|
+static void togglegaps(const Arg *arg);
|
||||||
|
+static void defaultgaps(const Arg *arg);
|
||||||
|
static void setlayout(const Arg *arg);
|
||||||
|
static void setmfact(const Arg *arg);
|
||||||
|
static void setup(void);
|
||||||
|
@@ -640,6 +655,10 @@ createmon(void)
|
||||||
|
m->nmaster = nmaster;
|
||||||
|
m->showbar = showbar;
|
||||||
|
m->topbar = topbar;
|
||||||
|
+ m->gappih = gappih;
|
||||||
|
+ m->gappiv = gappiv;
|
||||||
|
+ m->gappoh = gappoh;
|
||||||
|
+ m->gappov = gappov;
|
||||||
|
m->lt[0] = &layouts[0];
|
||||||
|
m->lt[1] = &layouts[1 % LENGTH(layouts)];
|
||||||
|
strncpy(m->ltsymbol, layouts[0].symbol, sizeof m->ltsymbol);
|
||||||
|
@@ -1780,28 +1904,34 @@ tagmon(const Arg *arg)
|
||||||
|
void
|
||||||
|
tile(Monitor *m)
|
||||||
|
{
|
||||||
|
- unsigned int i, n, h, mw, my, ty;
|
||||||
|
+ unsigned int i, n, h, r, oe = enablegaps, ie = enablegaps, mw, my, ty;
|
||||||
|
Client *c;
|
||||||
|
|
||||||
/* draw status first so it can be overdrawn by tags later */
|
for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
|
||||||
if (m == selmon) { /* status is only drawn on selected monitor */
|
if (n == 0)
|
||||||
- drw_setscheme(drw, scheme[SchemeNorm]);
|
return;
|
||||||
+ drw_setscheme(drw, scheme[SchemeStatus]);
|
|
||||||
sw = TEXTW(stext) - lrpad + 2; /* 2px right padding */
|
|
||||||
drw_text(drw, m->ww - sw, 0, sw, bh, 0, stext, 0);
|
|
||||||
}
|
|
||||||
@@ -716,7 +716,7 @@ drawbar(Monitor *m)
|
|
||||||
x = 0;
|
|
||||||
for (i = 0; i < LENGTH(tags); i++) {
|
|
||||||
w = TEXTW(tags[i]);
|
|
||||||
- drw_setscheme(drw, scheme[m->tagset[m->seltags] & 1 << i ? SchemeSel : SchemeNorm]);
|
|
||||||
+ drw_setscheme(drw, scheme[m->tagset[m->seltags] & 1 << i ? SchemeTagsSel : SchemeTagsNorm]);
|
|
||||||
drw_text(drw, x, 0, w, bh, lrpad / 2, tags[i], urg & 1 << i);
|
|
||||||
if (occ & 1 << i)
|
|
||||||
drw_rect(drw, x + boxs, boxs, boxw, boxw,
|
|
||||||
@@ -725,17 +725,17 @@ drawbar(Monitor *m)
|
|
||||||
x += w;
|
|
||||||
}
|
|
||||||
w = blw = TEXTW(m->ltsymbol);
|
|
||||||
- drw_setscheme(drw, scheme[SchemeNorm]);
|
|
||||||
+ drw_setscheme(drw, scheme[SchemeTagsNorm]);
|
|
||||||
x = drw_text(drw, x, 0, w, bh, lrpad / 2, m->ltsymbol, 0);
|
|
||||||
|
|
||||||
if ((w = m->ww - sw - x) > bh) {
|
+ if (smartgaps == n) {
|
||||||
if (m->sel) {
|
+ oe = 0; // outer gaps disabled
|
||||||
- drw_setscheme(drw, scheme[m == selmon ? SchemeSel : SchemeNorm]);
|
+ }
|
||||||
+ drw_setscheme(drw, scheme[m == selmon ? SchemeInfoSel : SchemeInfoNorm]);
|
+
|
||||||
drw_text(drw, x, 0, w, bh, lrpad / 2, m->sel->name, 0);
|
if (n > m->nmaster)
|
||||||
if (m->sel->isfloating)
|
- mw = m->nmaster ? m->ww * m->mfact : 0;
|
||||||
drw_rect(drw, x + boxs, boxs, boxw, boxw, m->sel->isfixed, 0);
|
+ mw = m->nmaster ? (m->ww + m->gappiv*ie) * m->mfact : 0;
|
||||||
|
else
|
||||||
|
- mw = m->ww;
|
||||||
|
- for (i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++)
|
||||||
|
+ mw = m->ww - 2*m->gappov*oe + m->gappiv*ie;
|
||||||
|
+ for (i = 0, my = ty = m->gappoh*oe, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++)
|
||||||
|
if (i < m->nmaster) {
|
||||||
|
- h = (m->wh - my) / (MIN(n, m->nmaster) - i);
|
||||||
|
- resize(c, m->wx, m->wy + my, mw - (2*c->bw), h - (2*c->bw), 0);
|
||||||
|
- if (my + HEIGHT(c) < m->wh)
|
||||||
|
- my += HEIGHT(c);
|
||||||
|
+ r = MIN(n, m->nmaster) - i;
|
||||||
|
+ h = (m->wh - my - m->gappoh*oe - m->gappih*ie * (r - 1)) / r;
|
||||||
|
+ resize(c, m->wx + m->gappov*oe, m->wy + my, mw - (2*c->bw) - m->gappiv*ie, h - (2*c->bw), 0);
|
||||||
|
+ if (my + HEIGHT(c) + m->gappih*ie < m->wh)
|
||||||
|
+ my += HEIGHT(c) + m->gappih*ie;
|
||||||
} else {
|
} else {
|
||||||
- drw_setscheme(drw, scheme[SchemeNorm]);
|
- h = (m->wh - ty) / (n - i);
|
||||||
+ drw_setscheme(drw, scheme[SchemeInfoNorm]);
|
- resize(c, m->wx + mw, m->wy + ty, m->ww - mw - (2*c->bw), h - (2*c->bw), 0);
|
||||||
drw_rect(drw, x, 0, w, bh, 1, 1);
|
- if (ty + HEIGHT(c) < m->wh)
|
||||||
|
- ty += HEIGHT(c);
|
||||||
|
+ r = n - i;
|
||||||
|
+ h = (m->wh - ty - m->gappoh*oe - m->gappih*ie * (r - 1)) / r;
|
||||||
|
+ resize(c, m->wx + mw + m->gappov*oe, m->wy + ty, m->ww - mw - (2*c->bw) - 2*m->gappov*oe, h - (2*c->bw), 0);
|
||||||
|
+ if (ty + HEIGHT(c) + m->gappih*ie < m->wh)
|
||||||
|
+ ty += HEIGHT(c) + m->gappih*ie;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
BIN
dwm-6.2/dwm.o
BIN
dwm-6.2/dwm.o
Binary file not shown.
53
dwm-6.2/patches/dwm-actualfullscreen-20191112-cb3f58a.diff
Normal file
53
dwm-6.2/patches/dwm-actualfullscreen-20191112-cb3f58a.diff
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
From 3a16816a6f5d38014c2a06ce395873c545c8789a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Soenke Lambert <s.lambert@mittwald.de>
|
||||||
|
Date: Tue, 12 Nov 2019 10:44:02 +0100
|
||||||
|
Subject: [PATCH] Fullscreen current window with [Alt]+[Shift]+[f]
|
||||||
|
|
||||||
|
This actually fullscreens a window, instead of just hiding the statusbar
|
||||||
|
and applying the monocle layout.
|
||||||
|
---
|
||||||
|
config.def.h | 1 +
|
||||||
|
dwm.c | 8 ++++++++
|
||||||
|
2 files changed, 9 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/config.def.h b/config.def.h
|
||||||
|
index 1c0b587..8cd3204 100644
|
||||||
|
--- a/config.def.h
|
||||||
|
+++ b/config.def.h
|
||||||
|
@@ -78,6 +78,7 @@ static Key keys[] = {
|
||||||
|
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
|
||||||
|
{ MODKEY, XK_space, setlayout, {0} },
|
||||||
|
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
|
||||||
|
+ { MODKEY|ShiftMask, XK_f, togglefullscr, {0} },
|
||||||
|
{ MODKEY, XK_0, view, {.ui = ~0 } },
|
||||||
|
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
|
||||||
|
{ MODKEY, XK_comma, focusmon, {.i = -1 } },
|
||||||
|
diff --git a/dwm.c b/dwm.c
|
||||||
|
index 4465af1..c1b899a 100644
|
||||||
|
--- a/dwm.c
|
||||||
|
+++ b/dwm.c
|
||||||
|
@@ -211,6 +211,7 @@ static void tagmon(const Arg *arg);
|
||||||
|
static void tile(Monitor *);
|
||||||
|
static void togglebar(const Arg *arg);
|
||||||
|
static void togglefloating(const Arg *arg);
|
||||||
|
+static void togglefullscr(const Arg *arg);
|
||||||
|
static void toggletag(const Arg *arg);
|
||||||
|
static void toggleview(const Arg *arg);
|
||||||
|
static void unfocus(Client *c, int setfocus);
|
||||||
|
@@ -1719,6 +1720,13 @@ togglefloating(const Arg *arg)
|
||||||
|
arrange(selmon);
|
||||||
|
}
|
||||||
|
|
||||||
|
+void
|
||||||
|
+togglefullscr(const Arg *arg)
|
||||||
|
+{
|
||||||
|
+ if(selmon->sel)
|
||||||
|
+ setfullscreen(selmon->sel, !selmon->sel->isfullscreen);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
void
|
||||||
|
toggletag(const Arg *arg)
|
||||||
|
{
|
||||||
|
--
|
||||||
|
2.17.1
|
||||||
|
|
56
dwm-6.2/patches/dwm-fullscreen-6.2.diff
Normal file
56
dwm-6.2/patches/dwm-fullscreen-6.2.diff
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
From 54719285bd1a984e2efce6e8a8eab184fec11abf Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sermak <sermak@jarvis.com>
|
||||||
|
Date: Mon, 8 Jul 2019 01:06:44 +0200
|
||||||
|
Subject: [PATCH] Simulate toggleable fullscreen mode
|
||||||
|
|
||||||
|
---
|
||||||
|
config.def.h | 1 +
|
||||||
|
dwm.c | 14 ++++++++++++++
|
||||||
|
2 files changed, 15 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/config.def.h b/config.def.h
|
||||||
|
index 1c0b587..f774cc5 100644
|
||||||
|
--- a/config.def.h
|
||||||
|
+++ b/config.def.h
|
||||||
|
@@ -76,6 +76,7 @@ static Key keys[] = {
|
||||||
|
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
|
||||||
|
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },
|
||||||
|
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
|
||||||
|
+ { MODKEY|ShiftMask, XK_f, fullscreen, {0} },
|
||||||
|
{ MODKEY, XK_space, setlayout, {0} },
|
||||||
|
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
|
||||||
|
{ MODKEY, XK_0, view, {.ui = ~0 } },
|
||||||
|
diff --git a/dwm.c b/dwm.c
|
||||||
|
index 4465af1..04b1e06 100644
|
||||||
|
--- a/dwm.c
|
||||||
|
+++ b/dwm.c
|
||||||
|
@@ -199,6 +199,7 @@ static void sendmon(Client *c, Monitor *m);
|
||||||
|
static void setclientstate(Client *c, long state);
|
||||||
|
static void setfocus(Client *c);
|
||||||
|
static void setfullscreen(Client *c, int fullscreen);
|
||||||
|
+static void fullscreen(const Arg *arg);
|
||||||
|
static void setlayout(const Arg *arg);
|
||||||
|
static void setmfact(const Arg *arg);
|
||||||
|
static void setup(void);
|
||||||
|
@@ -1497,6 +1498,19 @@ setfullscreen(Client *c, int fullscreen)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+Layout *last_layout;
|
||||||
|
+void
|
||||||
|
+fullscreen(const Arg *arg)
|
||||||
|
+{
|
||||||
|
+ if (selmon->showbar) {
|
||||||
|
+ for(last_layout = (Layout *)layouts; last_layout != selmon->lt[selmon->sellt]; last_layout++);
|
||||||
|
+ setlayout(&((Arg) { .v = &layouts[2] }));
|
||||||
|
+ } else {
|
||||||
|
+ setlayout(&((Arg) { .v = last_layout }));
|
||||||
|
+ }
|
||||||
|
+ togglebar(arg);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
void
|
||||||
|
setlayout(const Arg *arg)
|
||||||
|
{
|
||||||
|
--
|
||||||
|
2.22.0
|
30
dwm-6.2/patches/dwm-noborder-6.2.diff
Normal file
30
dwm-6.2/patches/dwm-noborder-6.2.diff
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
From 9102fdb9c670218373bbe83c891c8e8138d6a6f4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: redacted <redacted@example.com>
|
||||||
|
Date: Tue, 23 Apr 2019 00:39:27 +0100
|
||||||
|
Subject: [PATCH] added noborder patch
|
||||||
|
|
||||||
|
---
|
||||||
|
dwm.c | 7 +++++++
|
||||||
|
1 file changed, 7 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/dwm.c b/dwm.c
|
||||||
|
index 4465af1..685eca1 100644
|
||||||
|
--- a/dwm.c
|
||||||
|
+++ b/dwm.c
|
||||||
|
@@ -1282,6 +1282,13 @@ resizeclient(Client *c, int x, int y, int w, int h)
|
||||||
|
c->oldw = c->w; c->w = wc.width = w;
|
||||||
|
c->oldh = c->h; c->h = wc.height = h;
|
||||||
|
wc.border_width = c->bw;
|
||||||
|
+ if (((nexttiled(c->mon->clients) == c && !nexttiled(c->next))
|
||||||
|
+ || &monocle == c->mon->lt[c->mon->sellt]->arrange)
|
||||||
|
+ && !c->isfullscreen && !c->isfloating) {
|
||||||
|
+ c->w = wc.width += c->bw * 2;
|
||||||
|
+ c->h = wc.height += c->bw * 2;
|
||||||
|
+ wc.border_width = 0;
|
||||||
|
+ }
|
||||||
|
XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc);
|
||||||
|
configure(c);
|
||||||
|
XSync(dpy, False);
|
||||||
|
--
|
||||||
|
2.21.0
|
||||||
|
|
225
dwm-6.2/patches/dwm-smartborders-6.2.diff
Normal file
225
dwm-6.2/patches/dwm-smartborders-6.2.diff
Normal file
|
@ -0,0 +1,225 @@
|
||||||
|
diff --git a/dwm.c b/dwm.c
|
||||||
|
index 4465af1..3c94e4b 100644
|
||||||
|
--- a/dwm.c
|
||||||
|
+++ b/dwm.c
|
||||||
|
@@ -143,7 +143,7 @@ typedef struct {
|
||||||
|
|
||||||
|
/* function declarations */
|
||||||
|
static void applyrules(Client *c);
|
||||||
|
-static int applysizehints(Client *c, int *x, int *y, int *w, int *h, int interact);
|
||||||
|
+static int applysizehints(Client *c, int *x, int *y, int *w, int *h, int *bw, int interact);
|
||||||
|
static void arrange(Monitor *m);
|
||||||
|
static void arrangemon(Monitor *m);
|
||||||
|
static void attach(Client *c);
|
||||||
|
@@ -188,8 +188,8 @@ static void pop(Client *);
|
||||||
|
static void propertynotify(XEvent *e);
|
||||||
|
static void quit(const Arg *arg);
|
||||||
|
static Monitor *recttomon(int x, int y, int w, int h);
|
||||||
|
-static void resize(Client *c, int x, int y, int w, int h, int interact);
|
||||||
|
-static void resizeclient(Client *c, int x, int y, int w, int h);
|
||||||
|
+static void resize(Client *c, int x, int y, int w, int h, int bw, int interact);
|
||||||
|
+static void resizeclient(Client *c, int x, int y, int w, int h, int bw);
|
||||||
|
static void resizemouse(const Arg *arg);
|
||||||
|
static void restack(Monitor *m);
|
||||||
|
static void run(void);
|
||||||
|
@@ -312,7 +312,7 @@ applyrules(Client *c)
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
-applysizehints(Client *c, int *x, int *y, int *w, int *h, int interact)
|
||||||
|
+applysizehints(Client *c, int *x, int *y, int *w, int *h, int *bw, int interact)
|
||||||
|
{
|
||||||
|
int baseismin;
|
||||||
|
Monitor *m = c->mon;
|
||||||
|
@@ -325,18 +325,18 @@ applysizehints(Client *c, int *x, int *y, int *w, int *h, int interact)
|
||||||
|
*x = sw - WIDTH(c);
|
||||||
|
if (*y > sh)
|
||||||
|
*y = sh - HEIGHT(c);
|
||||||
|
- if (*x + *w + 2 * c->bw < 0)
|
||||||
|
+ if (*x + *w + 2 * *bw < 0)
|
||||||
|
*x = 0;
|
||||||
|
- if (*y + *h + 2 * c->bw < 0)
|
||||||
|
+ if (*y + *h + 2 * *bw < 0)
|
||||||
|
*y = 0;
|
||||||
|
} else {
|
||||||
|
if (*x >= m->wx + m->ww)
|
||||||
|
*x = m->wx + m->ww - WIDTH(c);
|
||||||
|
if (*y >= m->wy + m->wh)
|
||||||
|
*y = m->wy + m->wh - HEIGHT(c);
|
||||||
|
- if (*x + *w + 2 * c->bw <= m->wx)
|
||||||
|
+ if (*x + *w + 2 * *bw <= m->wx)
|
||||||
|
*x = m->wx;
|
||||||
|
- if (*y + *h + 2 * c->bw <= m->wy)
|
||||||
|
+ if (*y + *h + 2 * *bw <= m->wy)
|
||||||
|
*y = m->wy;
|
||||||
|
}
|
||||||
|
if (*h < bh)
|
||||||
|
@@ -374,7 +374,7 @@ applysizehints(Client *c, int *x, int *y, int *w, int *h, int interact)
|
||||||
|
if (c->maxh)
|
||||||
|
*h = MIN(*h, c->maxh);
|
||||||
|
}
|
||||||
|
- return *x != c->x || *y != c->y || *w != c->w || *h != c->h;
|
||||||
|
+ return *x != c->x || *y != c->y || *w != c->w || *h != c->h || *bw != c->bw;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
@@ -394,9 +394,16 @@ arrange(Monitor *m)
|
||||||
|
void
|
||||||
|
arrangemon(Monitor *m)
|
||||||
|
{
|
||||||
|
+ Client *c;
|
||||||
|
+
|
||||||
|
strncpy(m->ltsymbol, m->lt[m->sellt]->symbol, sizeof m->ltsymbol);
|
||||||
|
if (m->lt[m->sellt]->arrange)
|
||||||
|
m->lt[m->sellt]->arrange(m);
|
||||||
|
+ else
|
||||||
|
+ /* <>< case; rather than providing an arrange function and upsetting other logic that tests for its presence, simply add borders here */
|
||||||
|
+ for (c = selmon->clients; c; c = c->next)
|
||||||
|
+ if (ISVISIBLE(c) && c->bw == 0)
|
||||||
|
+ resize(c, c->x, c->y, c->w - 2*borderpx, c->h - 2*borderpx, borderpx, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
@@ -566,7 +573,7 @@ configurenotify(XEvent *e)
|
||||||
|
for (m = mons; m; m = m->next) {
|
||||||
|
for (c = m->clients; c; c = c->next)
|
||||||
|
if (c->isfullscreen)
|
||||||
|
- resizeclient(c, m->mx, m->my, m->mw, m->mh);
|
||||||
|
+ resizeclient(c, m->mx, m->my, m->mw, m->mh, 0);
|
||||||
|
XMoveResizeWindow(dpy, m->barwin, m->wx, m->by, m->ww, bh);
|
||||||
|
}
|
||||||
|
focus(NULL);
|
||||||
|
@@ -1112,7 +1119,7 @@ monocle(Monitor *m)
|
||||||
|
if (n > 0) /* override layout symbol */
|
||||||
|
snprintf(m->ltsymbol, sizeof m->ltsymbol, "[%d]", n);
|
||||||
|
for (c = nexttiled(m->clients); c; c = nexttiled(c->next))
|
||||||
|
- resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * c->bw, 0);
|
||||||
|
+ resize(c, m->wx, m->wy, m->ww, m->wh, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
@@ -1180,7 +1187,7 @@ movemouse(const Arg *arg)
|
||||||
|
&& (abs(nx - c->x) > snap || abs(ny - c->y) > snap))
|
||||||
|
togglefloating(NULL);
|
||||||
|
if (!selmon->lt[selmon->sellt]->arrange || c->isfloating)
|
||||||
|
- resize(c, nx, ny, c->w, c->h, 1);
|
||||||
|
+ resize(c, nx, ny, c->w, c->h, c->bw, 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} while (ev.type != ButtonRelease);
|
||||||
|
@@ -1266,14 +1273,14 @@ recttomon(int x, int y, int w, int h)
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
-resize(Client *c, int x, int y, int w, int h, int interact)
|
||||||
|
+resize(Client *c, int x, int y, int w, int h, int bw, int interact)
|
||||||
|
{
|
||||||
|
- if (applysizehints(c, &x, &y, &w, &h, interact))
|
||||||
|
- resizeclient(c, x, y, w, h);
|
||||||
|
+ if (applysizehints(c, &x, &y, &w, &h, &bw, interact))
|
||||||
|
+ resizeclient(c, x, y, w, h, bw);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
-resizeclient(Client *c, int x, int y, int w, int h)
|
||||||
|
+resizeclient(Client *c, int x, int y, int w, int h, int bw)
|
||||||
|
{
|
||||||
|
XWindowChanges wc;
|
||||||
|
|
||||||
|
@@ -1281,7 +1288,7 @@ resizeclient(Client *c, int x, int y, int w, int h)
|
||||||
|
c->oldy = c->y; c->y = wc.y = y;
|
||||||
|
c->oldw = c->w; c->w = wc.width = w;
|
||||||
|
c->oldh = c->h; c->h = wc.height = h;
|
||||||
|
- wc.border_width = c->bw;
|
||||||
|
+ c->oldbw = c->bw; c->bw = wc.border_width = bw;
|
||||||
|
XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc);
|
||||||
|
configure(c);
|
||||||
|
XSync(dpy, False);
|
||||||
|
@@ -1330,7 +1337,7 @@ resizemouse(const Arg *arg)
|
||||||
|
togglefloating(NULL);
|
||||||
|
}
|
||||||
|
if (!selmon->lt[selmon->sellt]->arrange || c->isfloating)
|
||||||
|
- resize(c, c->x, c->y, nw, nh, 1);
|
||||||
|
+ resize(c, c->x, c->y, nw, nh, c->bw, 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} while (ev.type != ButtonRelease);
|
||||||
|
@@ -1477,22 +1484,20 @@ setfullscreen(Client *c, int fullscreen)
|
||||||
|
PropModeReplace, (unsigned char*)&netatom[NetWMFullscreen], 1);
|
||||||
|
c->isfullscreen = 1;
|
||||||
|
c->oldstate = c->isfloating;
|
||||||
|
- c->oldbw = c->bw;
|
||||||
|
- c->bw = 0;
|
||||||
|
c->isfloating = 1;
|
||||||
|
- resizeclient(c, c->mon->mx, c->mon->my, c->mon->mw, c->mon->mh);
|
||||||
|
+ resizeclient(c, c->mon->mx, c->mon->my, c->mon->mw, c->mon->mh, 0);
|
||||||
|
XRaiseWindow(dpy, c->win);
|
||||||
|
} else if (!fullscreen && c->isfullscreen){
|
||||||
|
XChangeProperty(dpy, c->win, netatom[NetWMState], XA_ATOM, 32,
|
||||||
|
PropModeReplace, (unsigned char*)0, 0);
|
||||||
|
c->isfullscreen = 0;
|
||||||
|
c->isfloating = c->oldstate;
|
||||||
|
- c->bw = c->oldbw;
|
||||||
|
c->x = c->oldx;
|
||||||
|
c->y = c->oldy;
|
||||||
|
c->w = c->oldw;
|
||||||
|
c->h = c->oldh;
|
||||||
|
- resizeclient(c, c->x, c->y, c->w, c->h);
|
||||||
|
+ c->bw = c->oldbw;
|
||||||
|
+ resizeclient(c, c->x, c->y, c->w, c->h, c->bw);
|
||||||
|
arrange(c->mon);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -1619,7 +1624,7 @@ showhide(Client *c)
|
||||||
|
/* show clients top down */
|
||||||
|
XMoveWindow(dpy, c->win, c->x, c->y);
|
||||||
|
if ((!c->mon->lt[c->mon->sellt]->arrange || c->isfloating) && !c->isfullscreen)
|
||||||
|
- resize(c, c->x, c->y, c->w, c->h, 0);
|
||||||
|
+ resize(c, c->x, c->y, c->w, c->h, c->bw, 0);
|
||||||
|
showhide(c->snext);
|
||||||
|
} else {
|
||||||
|
/* hide clients bottom up */
|
||||||
|
@@ -1673,13 +1678,17 @@ tagmon(const Arg *arg)
|
||||||
|
void
|
||||||
|
tile(Monitor *m)
|
||||||
|
{
|
||||||
|
- unsigned int i, n, h, mw, my, ty;
|
||||||
|
+ unsigned int i, n, h, mw, my, ty, bw;
|
||||||
|
Client *c;
|
||||||
|
|
||||||
|
for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
|
||||||
|
if (n == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
+ if (n == 1)
|
||||||
|
+ bw = 0;
|
||||||
|
+ else
|
||||||
|
+ bw = borderpx;
|
||||||
|
if (n > m->nmaster)
|
||||||
|
mw = m->nmaster ? m->ww * m->mfact : 0;
|
||||||
|
else
|
||||||
|
@@ -1687,11 +1696,11 @@ tile(Monitor *m)
|
||||||
|
for (i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++)
|
||||||
|
if (i < m->nmaster) {
|
||||||
|
h = (m->wh - my) / (MIN(n, m->nmaster) - i);
|
||||||
|
- resize(c, m->wx, m->wy + my, mw - (2*c->bw), h - (2*c->bw), 0);
|
||||||
|
+ resize(c, m->wx, m->wy + my, mw - 2*bw, h - 2*bw, bw, 0);
|
||||||
|
my += HEIGHT(c);
|
||||||
|
} else {
|
||||||
|
h = (m->wh - ty) / (n - i);
|
||||||
|
- resize(c, m->wx + mw, m->wy + ty, m->ww - mw - (2*c->bw), h - (2*c->bw), 0);
|
||||||
|
+ resize(c, m->wx + mw, m->wy + ty, m->ww - mw - 2*bw, h - 2*bw, bw, 0);
|
||||||
|
ty += HEIGHT(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -1715,7 +1724,9 @@ togglefloating(const Arg *arg)
|
||||||
|
selmon->sel->isfloating = !selmon->sel->isfloating || selmon->sel->isfixed;
|
||||||
|
if (selmon->sel->isfloating)
|
||||||
|
resize(selmon->sel, selmon->sel->x, selmon->sel->y,
|
||||||
|
- selmon->sel->w, selmon->sel->h, 0);
|
||||||
|
+ selmon->sel->w - 2 * (borderpx - selmon->sel->bw),
|
||||||
|
+ selmon->sel->h - 2 * (borderpx - selmon->sel->bw),
|
||||||
|
+ borderpx, 0);
|
||||||
|
arrange(selmon);
|
||||||
|
}
|
||||||
|
|
259
dwm-6.2/patches/dwm-vanitygaps-20190508-6.2.diff
Normal file
259
dwm-6.2/patches/dwm-vanitygaps-20190508-6.2.diff
Normal file
|
@ -0,0 +1,259 @@
|
||||||
|
From 20967685d6879bd611a856ade154df19da9ddc7b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stein Gunnar Bakkeby <bakkeby@gmail.com>
|
||||||
|
Date: Wed, 8 May 2019 08:07:14 +0200
|
||||||
|
Subject: [PATCH] Vanity gaps - allows control of both inner and outer gaps
|
||||||
|
between windows and screen edge
|
||||||
|
|
||||||
|
---
|
||||||
|
config.def.h | 21 +++++++++
|
||||||
|
dwm.c | 150 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
|
||||||
|
2 files changed, 161 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/config.def.h b/config.def.h
|
||||||
|
index 1c0b587..0927c2d 100644
|
||||||
|
--- a/config.def.h
|
||||||
|
+++ b/config.def.h
|
||||||
|
@@ -3,6 +3,11 @@
|
||||||
|
/* appearance */
|
||||||
|
static const unsigned int borderpx = 1; /* border pixel of windows */
|
||||||
|
static const unsigned int snap = 32; /* snap pixel */
|
||||||
|
+static const unsigned int gappih = 10; /* horiz inner gap between windows */
|
||||||
|
+static const unsigned int gappiv = 10; /* vert inner gap between windows */
|
||||||
|
+static const unsigned int gappoh = 10; /* horiz outer gap between windows and screen edge */
|
||||||
|
+static const unsigned int gappov = 10; /* vert outer gap between windows and screen edge */
|
||||||
|
+static const int smartgaps = 0; /* 1 means no outer gap when there is only one window */
|
||||||
|
static const int showbar = 1; /* 0 means no bar */
|
||||||
|
static const int topbar = 1; /* 0 means bottom bar */
|
||||||
|
static const char *fonts[] = { "monospace:size=10" };
|
||||||
|
@@ -70,6 +75,22 @@ static Key keys[] = {
|
||||||
|
{ MODKEY, XK_d, incnmaster, {.i = -1 } },
|
||||||
|
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
|
||||||
|
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
|
||||||
|
+ { MODKEY|Mod4Mask, XK_h, incrgaps, {.i = +1 } },
|
||||||
|
+ { MODKEY|Mod4Mask, XK_l, incrgaps, {.i = -1 } },
|
||||||
|
+ { MODKEY|Mod4Mask|ShiftMask, XK_h, incrogaps, {.i = +1 } },
|
||||||
|
+ { MODKEY|Mod4Mask|ShiftMask, XK_l, incrogaps, {.i = -1 } },
|
||||||
|
+ { MODKEY|Mod4Mask|ControlMask, XK_h, incrigaps, {.i = +1 } },
|
||||||
|
+ { MODKEY|Mod4Mask|ControlMask, XK_l, incrigaps, {.i = -1 } },
|
||||||
|
+ { MODKEY|Mod4Mask, XK_0, togglegaps, {0} },
|
||||||
|
+ { MODKEY|Mod4Mask|ShiftMask, XK_0, defaultgaps, {0} },
|
||||||
|
+ { MODKEY, XK_y, incrihgaps, {.i = +1 } },
|
||||||
|
+ { MODKEY, XK_o, incrihgaps, {.i = -1 } },
|
||||||
|
+ { MODKEY|ControlMask, XK_y, incrivgaps, {.i = +1 } },
|
||||||
|
+ { MODKEY|ControlMask, XK_o, incrivgaps, {.i = -1 } },
|
||||||
|
+ { MODKEY|Mod4Mask, XK_y, incrohgaps, {.i = +1 } },
|
||||||
|
+ { MODKEY|Mod4Mask, XK_o, incrohgaps, {.i = -1 } },
|
||||||
|
+ { MODKEY|ShiftMask, XK_y, incrovgaps, {.i = +1 } },
|
||||||
|
+ { MODKEY|ShiftMask, XK_o, incrovgaps, {.i = -1 } },
|
||||||
|
{ MODKEY, XK_Return, zoom, {0} },
|
||||||
|
{ MODKEY, XK_Tab, view, {0} },
|
||||||
|
{ MODKEY|ShiftMask, XK_c, killclient, {0} },
|
||||||
|
diff --git a/dwm.c b/dwm.c
|
||||||
|
index 4465af1..88f3e04 100644
|
||||||
|
--- a/dwm.c
|
||||||
|
+++ b/dwm.c
|
||||||
|
@@ -119,6 +119,10 @@ struct Monitor {
|
||||||
|
int by; /* bar geometry */
|
||||||
|
int mx, my, mw, mh; /* screen size */
|
||||||
|
int wx, wy, ww, wh; /* window area */
|
||||||
|
+ int gappih; /* horizontal gap between windows */
|
||||||
|
+ int gappiv; /* vertical gap between windows */
|
||||||
|
+ int gappoh; /* horizontal outer gaps */
|
||||||
|
+ int gappov; /* vertical outer gaps */
|
||||||
|
unsigned int seltags;
|
||||||
|
unsigned int sellt;
|
||||||
|
unsigned int tagset[2];
|
||||||
|
@@ -199,6 +203,16 @@ static void sendmon(Client *c, Monitor *m);
|
||||||
|
static void setclientstate(Client *c, long state);
|
||||||
|
static void setfocus(Client *c);
|
||||||
|
static void setfullscreen(Client *c, int fullscreen);
|
||||||
|
+static void setgaps(int oh, int ov, int ih, int iv);
|
||||||
|
+static void incrgaps(const Arg *arg);
|
||||||
|
+static void incrigaps(const Arg *arg);
|
||||||
|
+static void incrogaps(const Arg *arg);
|
||||||
|
+static void incrohgaps(const Arg *arg);
|
||||||
|
+static void incrovgaps(const Arg *arg);
|
||||||
|
+static void incrihgaps(const Arg *arg);
|
||||||
|
+static void incrivgaps(const Arg *arg);
|
||||||
|
+static void togglegaps(const Arg *arg);
|
||||||
|
+static void defaultgaps(const Arg *arg);
|
||||||
|
static void setlayout(const Arg *arg);
|
||||||
|
static void setmfact(const Arg *arg);
|
||||||
|
static void setup(void);
|
||||||
|
@@ -240,6 +254,7 @@ static char stext[256];
|
||||||
|
static int screen;
|
||||||
|
static int sw, sh; /* X display screen geometry width, height */
|
||||||
|
static int bh, blw = 0; /* bar geometry */
|
||||||
|
+static int enablegaps = 1; /* enables gaps, used by togglegaps */
|
||||||
|
static int lrpad; /* sum of left and right padding for text */
|
||||||
|
static int (*xerrorxlib)(Display *, XErrorEvent *);
|
||||||
|
static unsigned int numlockmask = 0;
|
||||||
|
@@ -638,6 +653,10 @@ createmon(void)
|
||||||
|
m->nmaster = nmaster;
|
||||||
|
m->showbar = showbar;
|
||||||
|
m->topbar = topbar;
|
||||||
|
+ m->gappih = gappih;
|
||||||
|
+ m->gappiv = gappiv;
|
||||||
|
+ m->gappoh = gappoh;
|
||||||
|
+ m->gappov = gappov;
|
||||||
|
m->lt[0] = &layouts[0];
|
||||||
|
m->lt[1] = &layouts[1 % LENGTH(layouts)];
|
||||||
|
strncpy(m->ltsymbol, layouts[0].symbol, sizeof m->ltsymbol);
|
||||||
|
@@ -1498,6 +1517,111 @@ setfullscreen(Client *c, int fullscreen)
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
+setgaps(int oh, int ov, int ih, int iv)
|
||||||
|
+{
|
||||||
|
+ if (oh < 0) oh = 0;
|
||||||
|
+ if (ov < 0) ov = 0;
|
||||||
|
+ if (ih < 0) ih = 0;
|
||||||
|
+ if (iv < 0) iv = 0;
|
||||||
|
+
|
||||||
|
+ selmon->gappoh = oh;
|
||||||
|
+ selmon->gappov = ov;
|
||||||
|
+ selmon->gappih = ih;
|
||||||
|
+ selmon->gappiv = iv;
|
||||||
|
+ arrange(selmon);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void
|
||||||
|
+togglegaps(const Arg *arg)
|
||||||
|
+{
|
||||||
|
+ enablegaps = !enablegaps;
|
||||||
|
+ arrange(selmon);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void
|
||||||
|
+defaultgaps(const Arg *arg)
|
||||||
|
+{
|
||||||
|
+ setgaps(gappoh, gappov, gappih, gappiv);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void
|
||||||
|
+incrgaps(const Arg *arg)
|
||||||
|
+{
|
||||||
|
+ setgaps(
|
||||||
|
+ selmon->gappoh + arg->i,
|
||||||
|
+ selmon->gappov + arg->i,
|
||||||
|
+ selmon->gappih + arg->i,
|
||||||
|
+ selmon->gappiv + arg->i
|
||||||
|
+ );
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void
|
||||||
|
+incrigaps(const Arg *arg)
|
||||||
|
+{
|
||||||
|
+ setgaps(
|
||||||
|
+ selmon->gappoh,
|
||||||
|
+ selmon->gappov,
|
||||||
|
+ selmon->gappih + arg->i,
|
||||||
|
+ selmon->gappiv + arg->i
|
||||||
|
+ );
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void
|
||||||
|
+incrogaps(const Arg *arg)
|
||||||
|
+{
|
||||||
|
+ setgaps(
|
||||||
|
+ selmon->gappoh + arg->i,
|
||||||
|
+ selmon->gappov + arg->i,
|
||||||
|
+ selmon->gappih,
|
||||||
|
+ selmon->gappiv
|
||||||
|
+ );
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void
|
||||||
|
+incrohgaps(const Arg *arg)
|
||||||
|
+{
|
||||||
|
+ setgaps(
|
||||||
|
+ selmon->gappoh + arg->i,
|
||||||
|
+ selmon->gappov,
|
||||||
|
+ selmon->gappih,
|
||||||
|
+ selmon->gappiv
|
||||||
|
+ );
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void
|
||||||
|
+incrovgaps(const Arg *arg)
|
||||||
|
+{
|
||||||
|
+ setgaps(
|
||||||
|
+ selmon->gappoh,
|
||||||
|
+ selmon->gappov + arg->i,
|
||||||
|
+ selmon->gappih,
|
||||||
|
+ selmon->gappiv
|
||||||
|
+ );
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void
|
||||||
|
+incrihgaps(const Arg *arg)
|
||||||
|
+{
|
||||||
|
+ setgaps(
|
||||||
|
+ selmon->gappoh,
|
||||||
|
+ selmon->gappov,
|
||||||
|
+ selmon->gappih + arg->i,
|
||||||
|
+ selmon->gappiv
|
||||||
|
+ );
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void
|
||||||
|
+incrivgaps(const Arg *arg)
|
||||||
|
+{
|
||||||
|
+ setgaps(
|
||||||
|
+ selmon->gappoh,
|
||||||
|
+ selmon->gappov,
|
||||||
|
+ selmon->gappih,
|
||||||
|
+ selmon->gappiv + arg->i
|
||||||
|
+ );
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void
|
||||||
|
setlayout(const Arg *arg)
|
||||||
|
{
|
||||||
|
if (!arg || !arg->v || arg->v != selmon->lt[selmon->sellt])
|
||||||
|
@@ -1673,26 +1797,32 @@ tagmon(const Arg *arg)
|
||||||
|
void
|
||||||
|
tile(Monitor *m)
|
||||||
|
{
|
||||||
|
- unsigned int i, n, h, mw, my, ty;
|
||||||
|
+ unsigned int i, n, h, r, oe = enablegaps, ie = enablegaps, mw, my, ty;
|
||||||
|
Client *c;
|
||||||
|
|
||||||
|
for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
|
||||||
|
if (n == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
+ if (smartgaps == n) {
|
||||||
|
+ oe = 0; // outer gaps disabled
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (n > m->nmaster)
|
||||||
|
- mw = m->nmaster ? m->ww * m->mfact : 0;
|
||||||
|
+ mw = m->nmaster ? (m->ww + m->gappiv*ie) * m->mfact : 0;
|
||||||
|
else
|
||||||
|
- mw = m->ww;
|
||||||
|
- for (i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++)
|
||||||
|
+ mw = m->ww - 2*m->gappov*oe + m->gappiv*ie;
|
||||||
|
+ for (i = 0, my = ty = m->gappoh*oe, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++)
|
||||||
|
if (i < m->nmaster) {
|
||||||
|
- h = (m->wh - my) / (MIN(n, m->nmaster) - i);
|
||||||
|
- resize(c, m->wx, m->wy + my, mw - (2*c->bw), h - (2*c->bw), 0);
|
||||||
|
- my += HEIGHT(c);
|
||||||
|
+ r = MIN(n, m->nmaster) - i;
|
||||||
|
+ h = (m->wh - my - m->gappoh*oe - m->gappih*ie * (r - 1)) / r;
|
||||||
|
+ resize(c, m->wx + m->gappov*oe, m->wy + my, mw - (2*c->bw) - m->gappiv*ie, h - (2*c->bw), 0);
|
||||||
|
+ my += HEIGHT(c) + m->gappih*ie;
|
||||||
|
} else {
|
||||||
|
- h = (m->wh - ty) / (n - i);
|
||||||
|
- resize(c, m->wx + mw, m->wy + ty, m->ww - mw - (2*c->bw), h - (2*c->bw), 0);
|
||||||
|
- ty += HEIGHT(c);
|
||||||
|
+ r = n - i;
|
||||||
|
+ h = (m->wh - ty - m->gappoh*oe - m->gappih*ie * (r - 1)) / r;
|
||||||
|
+ resize(c, m->wx + mw + m->gappov*oe, m->wy + ty, m->ww - mw - (2*c->bw) - 2*m->gappov*oe, h - (2*c->bw), 0);
|
||||||
|
+ ty += HEIGHT(c) + m->gappih*ie;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.7.4
|
||||||
|
|
178
home/cava/.config/cava/config
Normal file
178
home/cava/.config/cava/config
Normal file
|
@ -0,0 +1,178 @@
|
||||||
|
## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting.
|
||||||
|
# |
|
||||||
|
# | ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
|
# | ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
|
# | ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
|
# | ░░░░░░░░░░░░░░░░░░░░░█░█░█▀█░█▀▄░█░█░▀█▀░█░█░▀░█▀▀░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
|
# | ░░░░░░░░░░░░░░░░░░░░░█▀█░█░█░█▀▄░█▀█░░█░░█▀▄░░░▀▀█░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
|
# | ░░░░░░░░░░░░░░░░░░░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀▀░▀░▀░░░▀▀▀░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
|
# | ░░░░░░░░░░░░░░░░░░░░░█▀▄░█▀█░▀█▀░█▀▀░▀█▀░█░░░█▀▀░█▀▀░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
|
# | ░░░░░░░░░░░░░░░░░░░░░█░█░█░█░░█░░█▀▀░░█░░█░░░█▀▀░▀▀█░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
|
# | ░░░░░░░░░░░░░░░░░░░░░▀▀░░▀▀▀░░▀░░▀░░░▀▀▀░▀▀▀░▀▀▀░▀▀▀░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
|
# | ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
|
# | ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
|
# | ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
|
# |
|
||||||
|
[general]
|
||||||
|
|
||||||
|
# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0
|
||||||
|
mode = scientific
|
||||||
|
|
||||||
|
# Accepts only non-negative values.
|
||||||
|
; framerate = 60
|
||||||
|
|
||||||
|
# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off
|
||||||
|
# new as of 0.6.0 autosens of low values (dynamic range)
|
||||||
|
# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0
|
||||||
|
; autosens = 1
|
||||||
|
; overshoot = 20
|
||||||
|
|
||||||
|
# Manual sensitivity in %. Autosens must be turned off for this to take effect.
|
||||||
|
# 200 means double height. Accepts only non-negative values.
|
||||||
|
; sensitivity = 100
|
||||||
|
|
||||||
|
# The number of bars (0-200). 0 sets it to auto (fill up console).
|
||||||
|
# Bars' width and space between bars in number of characters.
|
||||||
|
; bars = 0
|
||||||
|
; bar_width = 2
|
||||||
|
; bar_spacing = 1
|
||||||
|
|
||||||
|
|
||||||
|
# Lower and higher cutoff frequencies for lowest and highest bars
|
||||||
|
# the bandwidth of the visualizer.
|
||||||
|
# Note: there is a minimum total bandwidth of 43Mhz x number of bars.
|
||||||
|
# Cava will automatically increase the higher cutoff if a too low band is specified.
|
||||||
|
; lower_cutoff_freq = 50
|
||||||
|
; higher_cutoff_freq = 10000
|
||||||
|
|
||||||
|
# FFT buffer is set in the exponent of 2 and must be between 8 - 16, 8 = 256, 16 = 65536
|
||||||
|
# this is the audio buffer used to create the spectrum
|
||||||
|
# increasing the will improve the accuracy of the visualization,
|
||||||
|
# but will also make it slower and increase CPU usage
|
||||||
|
# anything below 10 and above 13 is considered experimental.
|
||||||
|
; FFTbufferSize = 12;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[input]
|
||||||
|
|
||||||
|
# Audio capturing method. Possible methods are: 'pulse', 'alsa', 'fifo', 'sndio' or 'shmem'
|
||||||
|
# Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with.
|
||||||
|
#
|
||||||
|
# All input methods uses the same config variable 'source'
|
||||||
|
# to define where it should get the audio.
|
||||||
|
#
|
||||||
|
# For pulseaudio 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink
|
||||||
|
# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them).
|
||||||
|
#
|
||||||
|
# For alsa 'source' will be the capture device.
|
||||||
|
# For fifo 'source' will be the path to fifo-file.
|
||||||
|
# For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address
|
||||||
|
; method = pulse
|
||||||
|
; source = auto
|
||||||
|
|
||||||
|
; method = alsa
|
||||||
|
; source = hw:Loopback,1
|
||||||
|
|
||||||
|
; method = fifo
|
||||||
|
; source = /tmp/mpd.fifo
|
||||||
|
; sample_rate = 44100
|
||||||
|
; sample_bits = 16
|
||||||
|
|
||||||
|
; method = shmem
|
||||||
|
; source = /squeezelite-AA:BB:CC:DD:EE:FF
|
||||||
|
|
||||||
|
; method = portaudio
|
||||||
|
; source = auto
|
||||||
|
|
||||||
|
|
||||||
|
[output]
|
||||||
|
|
||||||
|
# Output method. Can be 'ncurses', 'noncurses' or 'raw'.
|
||||||
|
# 'noncurses' uses a custom framebuffer technique and draws only changes
|
||||||
|
# from frame to frame. As of version 0.7.0 'noncurses' is default.
|
||||||
|
#
|
||||||
|
# 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data
|
||||||
|
# stream of the bar heights that can be used to send to other applications.
|
||||||
|
# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above.
|
||||||
|
method = ncurses
|
||||||
|
|
||||||
|
# Visual channels. Can be 'stereo' or 'mono'.
|
||||||
|
# 'stereo' mirrors both channels with low frequencies in center.
|
||||||
|
# 'mono' outputs left to right lowest to highest frequencies.
|
||||||
|
# 'mono_option' set mono to either take input from 'left', 'right' or 'average'.
|
||||||
|
; channels = stereo
|
||||||
|
; mono_option = average
|
||||||
|
|
||||||
|
# Raw output target. A fifo will be created if target does not exist.
|
||||||
|
; raw_target = /dev/stdout
|
||||||
|
|
||||||
|
# Raw data format. Can be 'binary' or 'ascii'.
|
||||||
|
; data_format = binary
|
||||||
|
|
||||||
|
# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530).
|
||||||
|
; bit_format = 16bit
|
||||||
|
|
||||||
|
# Ascii max value. In 'ascii' mode range will run from 0 to value specified here
|
||||||
|
; ascii_max_range = 1000
|
||||||
|
|
||||||
|
# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters.
|
||||||
|
# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)).
|
||||||
|
; bar_delimiter = 59
|
||||||
|
; frame_delimiter = 10
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[color]
|
||||||
|
|
||||||
|
# Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow.
|
||||||
|
# Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires
|
||||||
|
# ncurses output method and a terminal that can change color definitions such as Gnome-terminal or rxvt.
|
||||||
|
# default is to keep current terminal color
|
||||||
|
background = default
|
||||||
|
foreground = cyan
|
||||||
|
|
||||||
|
# Gradient mode, only hex defined colors (and thereby ncurses mode) are supported,
|
||||||
|
# background must also be defined in hex or remain commented out. 1 = on, 0 = off.
|
||||||
|
# You can define as many as 8 different colors. They range from bottom to top of screen
|
||||||
|
gradient = 7
|
||||||
|
gradient_count = 7
|
||||||
|
gradient_color_1 = '#8be9fd'
|
||||||
|
gradient_color_2 = '#50fa7b'
|
||||||
|
gradient_color_3 = '#f1fa8c'
|
||||||
|
gradient_color_4 = '#ffb86c'
|
||||||
|
gradient_color_5 = '#bd93f9'
|
||||||
|
gradient_color_6 = '#ff79c6'
|
||||||
|
gradient_color_7 = '#ff5555'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[smoothing]
|
||||||
|
|
||||||
|
# Percentage value for integral smoothing. Takes values from 0 - 100.
|
||||||
|
# Higher values means smoother, but less precise. 0 to disable.
|
||||||
|
; integral = 77
|
||||||
|
|
||||||
|
# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable.
|
||||||
|
monstercat = 2
|
||||||
|
waves = 5
|
||||||
|
|
||||||
|
# Set gravity percentage for "drop off". Higher values means bars will drop faster.
|
||||||
|
# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off".
|
||||||
|
; gravity = 100
|
||||||
|
|
||||||
|
|
||||||
|
# In bar height, bars that would have been lower that this will not be drawn.
|
||||||
|
; ignore = 0
|
||||||
|
|
||||||
|
|
||||||
|
[eq]
|
||||||
|
|
||||||
|
# This one is tricky. You can have as much keys as you want.
|
||||||
|
# Remember to uncomment more then one key! More keys = more precision.
|
||||||
|
# Look at readme.md on github for further explanations and examples.
|
||||||
|
; 1 = 1 # bass
|
||||||
|
; 2 = 1
|
||||||
|
; 3 = 1 # midtone
|
||||||
|
; 4 = 1
|
||||||
|
; 5 = 1 # treble
|
|
@ -29,7 +29,7 @@
|
||||||
# the top and down respectively.
|
# the top and down respectively.
|
||||||
# The width can be negative. In this case the actual width is the
|
# The width can be negative. In this case the actual width is the
|
||||||
# screen width minus the width defined in within the geometry option.
|
# screen width minus the width defined in within the geometry option.
|
||||||
geometry = "300x5-30+20"
|
geometry = "300x5-20-20"
|
||||||
|
|
||||||
# Show how many messages are currently hidden (because of geometry).
|
# Show how many messages are currently hidden (because of geometry).
|
||||||
indicate_hidden = yes
|
indicate_hidden = yes
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
# The height of the entire notification. If the height is smaller
|
# The height of the entire notification. If the height is smaller
|
||||||
# than the font height and padding combined, it will be raised
|
# than the font height and padding combined, it will be raised
|
||||||
# to the font height and padding.
|
# to the font height and padding.
|
||||||
notification_height = 0
|
notification_height = 10
|
||||||
|
|
||||||
# Draw a line of "separator_height" pixel height between two
|
# Draw a line of "separator_height" pixel height between two
|
||||||
# notifications.
|
# notifications.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
|
picom --experimental-backends --detect-rounded-corners &
|
||||||
variety &
|
variety &
|
||||||
redshift &
|
redshift &
|
||||||
setxkbmap us,ru,fi ,winkeys grp:alt_shift_toggle &
|
setxkbmap us,ru,fi ,winkeys grp:alt_shift_toggle &
|
||||||
|
@ -6,6 +6,6 @@ pulseaudio -k
|
||||||
$HOME/.local/scripts/status/launch &
|
$HOME/.local/scripts/status/launch &
|
||||||
$HOME/.local/scripts/touchpad.sh
|
$HOME/.local/scripts/touchpad.sh
|
||||||
xrandr --output HDMI1 --off; enact --pos top
|
xrandr --output HDMI1 --off; enact --pos top
|
||||||
picom --experimental-backends --detect-rounded-corners &
|
enact --pos top
|
||||||
firefox &
|
firefox &
|
||||||
setxkbmap us,ru,fi ,winkeys grp:alt_shift_toggle &
|
setxkbmap us,ru,fi ,winkeys grp:alt_shift_toggle &
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
redshift -O 3500 &
|
|
||||||
xrandr --output HDMI1 --above eDP1 &
|
|
||||||
redshift -O 3500 &
|
|
||||||
variety &
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
file:///tmp/mozilla_horhik0
|
||||||
file:///home/horhik/code
|
file:///home/horhik/code
|
||||||
file:///home/horhik/Documents
|
file:///home/horhik/Documents
|
||||||
file:///home/horhik/Music
|
file:///home/horhik/Music
|
||||||
|
|
11
home/gtk_system/.config/gtk-2.0/gtkfilechooser.ini
Normal file
11
home/gtk_system/.config/gtk-2.0/gtkfilechooser.ini
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[Filechooser Settings]
|
||||||
|
LocationMode=path-bar
|
||||||
|
ShowHidden=false
|
||||||
|
ShowSizeColumn=true
|
||||||
|
GeometryX=249
|
||||||
|
GeometryY=127
|
||||||
|
GeometryWidth=942
|
||||||
|
GeometryHeight=643
|
||||||
|
SortColumn=name
|
||||||
|
SortOrder=ascending
|
||||||
|
StartupMode=recent
|
6
home/gtk_system/.config/gtk-3.0/bookmarks
Normal file
6
home/gtk_system/.config/gtk-3.0/bookmarks
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
file:///home/horhik/code
|
||||||
|
file:///home/horhik/Documents
|
||||||
|
file:///home/horhik/Music
|
||||||
|
file:///home/horhik/Pictures
|
||||||
|
file:///home/horhik/Videos
|
||||||
|
file:///home/horhik/Downloads
|
12
home/gtk_system/.config/gtk-3.0/gtk.css
Normal file
12
home/gtk_system/.config/gtk-3.0/gtk.css
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
.mate-panel-menu-bar button {
|
||||||
|
color: transparent;
|
||||||
|
}
|
||||||
|
panel-toplevel.background.horizontal,
|
||||||
|
.mate-panel-menu-bar,
|
||||||
|
#clock-applet-button,
|
||||||
|
#clock-applet-button:hover {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
#tasklist-button {
|
||||||
|
color: white;
|
||||||
|
}
|
16
home/gtk_system/.config/gtk-3.0/settings.ini
Normal file
16
home/gtk_system/.config/gtk-3.0/settings.ini
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
[Settings]
|
||||||
|
gtk-theme-name=Artix-dark
|
||||||
|
gtk-icon-theme-name=matefaenzadark
|
||||||
|
gtk-font-name=Roboto 11
|
||||||
|
gtk-cursor-theme-size=18
|
||||||
|
gtk-toolbar-style=GTK_TOOLBAR_ICONS
|
||||||
|
gtk-toolbar-icon-size=GTK_ICON_SIZE_BUTTON
|
||||||
|
gtk-button-images=1
|
||||||
|
gtk-menu-images=1
|
||||||
|
gtk-enable-event-sounds=1
|
||||||
|
gtk-enable-input-feedback-sounds=1
|
||||||
|
gtk-xft-antialias=1
|
||||||
|
gtk-xft-hinting=1
|
||||||
|
gtk-xft-hintstyle=hintfull
|
||||||
|
gtk-xft-rgba=rgb
|
||||||
|
gtk-cursor-theme-name=Premium
|
2
home/gtk_system/.config/gtk-4.0/settings.ini
Normal file
2
home/gtk_system/.config/gtk-4.0/settings.ini
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[Settings]
|
||||||
|
gtk-application-prefer-dark-theme=1
|
25
home/gtk_system/.gtkrc-2.0
Normal file
25
home/gtk_system/.gtkrc-2.0
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
include "/usr/share/themes/Artix-dark/gtk-2.0/gtkrc"
|
||||||
|
style "user-font"
|
||||||
|
{
|
||||||
|
font_name="Roboto"
|
||||||
|
}
|
||||||
|
widget_class "*" style "user-font"
|
||||||
|
|
||||||
|
gtk-font-name="Roboto 11"
|
||||||
|
gtk-theme-name="Artix-dark"
|
||||||
|
gtk-icon-theme-name="matefaenzadark"
|
||||||
|
gtk-toolbar-style=GTK_TOOLBAR_ICONS
|
||||||
|
gtk-toolbar-icon-size=GTK_ICON_SIZE_BUTTON
|
||||||
|
gtk-primary-button-warps-slider=0
|
||||||
|
gtk-application-prefer-dark-theme=true
|
||||||
|
gtk-button-images=1
|
||||||
|
gtk-menu-images=1
|
||||||
|
gtk-cursor-theme-name=Premium
|
||||||
|
gtk-cursor-theme-size=18
|
||||||
|
gtk-enable-event-sounds=1
|
||||||
|
gtk-enable-input-feedback-sounds=1
|
||||||
|
gtk-primary-button-warps-slider=0
|
||||||
|
gtk-xft-antialias=1
|
||||||
|
gtk-xft-hinting=1
|
||||||
|
gtk-xft-hintstyle=hintfull
|
||||||
|
gtk-xft-rgba=rgb
|
|
@ -1,5 +1,4 @@
|
||||||
|
|
||||||
corner-radius = 10;
|
|
||||||
rounded-corners-exclude = [
|
rounded-corners-exclude = [
|
||||||
# "class_g = 'awesome'",
|
# "class_g = 'awesome'",
|
||||||
# "class_g = 'Polybar'",
|
# "class_g = 'Polybar'",
|
||||||
|
@ -9,9 +8,10 @@ rounded-corners-rule = [
|
||||||
"5:class_g = 'Dunst'",
|
"5:class_g = 'Dunst'",
|
||||||
|
|
||||||
];
|
];
|
||||||
round-borders = 3;
|
corner-radius = 8;
|
||||||
|
round-borders = 8;
|
||||||
round-borders-exclude = [
|
round-borders-exclude = [
|
||||||
"name = 'cava'" ];
|
];
|
||||||
|
|
||||||
round-borders-rule = [
|
round-borders-rule = [
|
||||||
"3:class_g = 'XTerm'",
|
"3:class_g = 'XTerm'",
|
||||||
|
@ -34,20 +34,10 @@ round-borders-rule = [
|
||||||
|
|
||||||
|
|
||||||
shadow = true;
|
shadow = true;
|
||||||
|
shadow-radius = 15;
|
||||||
|
|
||||||
|
|
||||||
shadow-radius = 20;
|
|
||||||
|
|
||||||
shadow-opacity = 0.75
|
shadow-opacity = 0.75
|
||||||
|
shadow-offset-x = -6;
|
||||||
|
shadow-offset-y = -6;
|
||||||
|
|
||||||
shadow-offset-x = -10;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
shadow-offset-y = -10;
|
|
||||||
shadow-exclude = [
|
shadow-exclude = [
|
||||||
|
|
||||||
"name = 'Polybar'",
|
"name = 'Polybar'",
|
||||||
|
@ -144,8 +134,8 @@ focus-exclude = [ "class_g = 'Cairo-clock'" ];
|
||||||
|
|
||||||
|
|
||||||
opacity-rule = [
|
opacity-rule = [
|
||||||
"55:name *= 'cava'",
|
#"55:name *= 'cava'",
|
||||||
"55:class_g *= 'cava'",
|
#"55:class_g *= 'cava'",
|
||||||
"95:class_g = 'Emacs'",
|
"95:class_g = 'Emacs'",
|
||||||
"90:class_g *= 'Alacritty'",
|
"90:class_g *= 'Alacritty'",
|
||||||
"78:class_g *= 'Zathura'",
|
"78:class_g *= 'Zathura'",
|
||||||
|
@ -153,6 +143,7 @@ opacity-rule = [
|
||||||
"50:class_g = 'Firefox'",
|
"50:class_g = 'Firefox'",
|
||||||
"90:class_g *= 'emacs'",
|
"90:class_g *= 'emacs'",
|
||||||
"90:class_g = 'dmenu'",
|
"90:class_g = 'dmenu'",
|
||||||
|
"90:class_g = 'Evolution'",
|
||||||
"95:name *= 'alacritty'",
|
"95:name *= 'alacritty'",
|
||||||
"90:name = 'emacs'",
|
"90:name = 'emacs'",
|
||||||
"85:name *= 'xmobar'",
|
"85:name *= 'xmobar'",
|
||||||
|
|
|
@ -89,5 +89,10 @@
|
||||||
(use-package flycheck
|
(use-package flycheck
|
||||||
:ensure t
|
:ensure t
|
||||||
:init (global-flycheck-mode))
|
:init (global-flycheck-mode))
|
||||||
|
|
||||||
|
|
||||||
|
(setq rustic-lsp-server 'rls)
|
||||||
|
(setq lsp-rust-analyzer-server-command '("/usr/bin/rust-analyzer"))
|
||||||
(use-package rustic)
|
(use-package rustic)
|
||||||
(setq lsp-rust-server `rustic)
|
(setq lsp-rust-server `rustic)
|
||||||
|
|
|
@ -42,5 +42,6 @@
|
||||||
;; If you edit it by hand, you could mess it up, so be careful.
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
;; Your init file should contain only one such instance.
|
;; Your init file should contain only one such instance.
|
||||||
;; If there is more than one, they won't work right.
|
;; If there is more than one, they won't work right.
|
||||||
|
'(default ((t (:family "Mononoki Nerd Font" :size 12 :weight regular))))
|
||||||
'(neo-dir-link-face ((t (:family "Mononoki Nerd Font" :size 12 :weight regular))))
|
'(neo-dir-link-face ((t (:family "Mononoki Nerd Font" :size 12 :weight regular))))
|
||||||
'(neo-file-link-face ((t (:family "Mononoki Nerd Font" :size 12 :weight regular)))))
|
'(neo-file-link-face ((t (:family "Mononoki Nerd Font" :size 12 :weight regular)))))
|
|
@ -92,7 +92,7 @@
|
||||||
(eval +overlay) ; run code, run (also, repls)
|
(eval +overlay) ; run code, run (also, repls)
|
||||||
;;gist ; interacting with github gists
|
;;gist ; interacting with github gists
|
||||||
lookup ; navigate your code and its documentation
|
lookup ; navigate your code and its documentation
|
||||||
;;lsp
|
lsp
|
||||||
magit ; a git porcelain for Emacs
|
magit ; a git porcelain for Emacs
|
||||||
;;make ; run make tasks from Emacs
|
;;make ; run make tasks from Emacs
|
||||||
;;pass ; password manager for nerds
|
;;pass ; password manager for nerds
|
||||||
|
@ -126,15 +126,15 @@
|
||||||
;;faust ; dsp, but you get to keep your soul
|
;;faust ; dsp, but you get to keep your soul
|
||||||
;;fsharp ; ML stands for Microsoft's Language
|
;;fsharp ; ML stands for Microsoft's Language
|
||||||
;;fstar ; (dependent) types and (monadic) effects and Z3
|
;;fstar ; (dependent) types and (monadic) effects and Z3
|
||||||
;;gdscript ; the language you waited for
|
gdscript ; the language you waited for
|
||||||
;;(go +lsp) ; the hipster dialect
|
;;(go +lsp) ; the hipster dialect
|
||||||
;;(haskell +dante) ; a language that's lazier than I am
|
;;(haskell +dante) ; a language that's lazier than I am
|
||||||
;;hy ; readability of scheme w/ speed of python
|
;;hy ; readability of scheme w/ speed of python
|
||||||
;;idris ; a language you can depend on
|
;;idris ; a language you can depend on
|
||||||
;;json ; At least it ain't XML
|
json ; At least it ain't XML
|
||||||
;;(java +meghanada) ; the poster child for carpal tunnel syndrome
|
;;(java +meghanada) ; the poster child for carpal tunnel syndrome
|
||||||
;;javascript ; all(hope(abandon(ye(who(enter(here))))))
|
;;javascript ; all(hope(abandon(ye(who(enter(here))))))
|
||||||
;;julia ; a better, faster MATLAB
|
julia ; a better, faster MATLAB
|
||||||
;;kotlin ; a better, slicker Java(Script)
|
;;kotlin ; a better, slicker Java(Script)
|
||||||
;;latex ; writing papers in Emacs has never been so fun
|
;;latex ; writing papers in Emacs has never been so fun
|
||||||
;;lean
|
;;lean
|
||||||
|
@ -149,14 +149,14 @@
|
||||||
;;php ; perl's insecure younger brother
|
;;php ; perl's insecure younger brother
|
||||||
;;plantuml ; diagrams for confusing people more
|
;;plantuml ; diagrams for confusing people more
|
||||||
;;purescript ; javascript, but functional
|
;;purescript ; javascript, but functional
|
||||||
;;python ; beautiful is better than ugly
|
python ; beautiful is better than ugly
|
||||||
;;qt ; the 'cutest' gui framework ever
|
;;qt ; the 'cutest' gui framework ever
|
||||||
;;racket ; a DSL for DSLs
|
;;racket ; a DSL for DSLs
|
||||||
;;raku ; the artist formerly known as perl6
|
;;raku ; the artist formerly known as perl6
|
||||||
;;rest ; Emacs as a REST client
|
;;rest ; Emacs as a REST client
|
||||||
;;rst ; ReST in peace
|
;;rst ; ReST in peace
|
||||||
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
|
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
|
||||||
;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
|
rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
|
||||||
;;scala ; java, but good
|
;;scala ; java, but good
|
||||||
;;scheme ; a fully conniving family of lisps
|
;;scheme ; a fully conniving family of lisps
|
||||||
sh ; she sells {ba,z,fi}sh shells on the C xor
|
sh ; she sells {ba,z,fi}sh shells on the C xor
|
||||||
|
@ -194,5 +194,19 @@
|
||||||
(add-to-list 'package-archives
|
(add-to-list 'package-archives
|
||||||
'("MELPA Stable" . "https://stable.melpa.org/packages/") t)
|
'("MELPA Stable" . "https://stable.melpa.org/packages/") t)
|
||||||
|
|
||||||
|
(setq package-archives '(("melpa" . "http://melpa.org/packages/")
|
||||||
|
("gnu" . "http://elpa.gnu.org/packages/")))
|
||||||
|
|
||||||
(package-initialize)
|
(package-initialize)
|
||||||
;;(package-refresh-contents)
|
;;(package-refresh-contents)
|
||||||
|
|
||||||
|
(unless package-archive-contents
|
||||||
|
(package-refresh-contents))
|
||||||
|
|
||||||
|
|
||||||
|
(defvar package-list
|
||||||
|
'( lsp-mode rustic evil-mc rainbow-delimiters doom-themes doom-modeline lusty-explorer ac-racer auto-complete all-the-icons linum-relative neotree racer cargo flycheck-rust rust-mode gruvbox-theme evil general use-package))
|
||||||
|
|
||||||
|
(dolist (p package-list)
|
||||||
|
(when (not (package-installed-p p))
|
||||||
|
(package-install p)))
|
|
@ -1,23 +1,44 @@
|
||||||
|
|
||||||
;;; Emacs dotfile
|
;;; Emacs dotfile
|
||||||
;; ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
;; ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
;; ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
;; ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
;; ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
;; ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
;; ░░░░░░░░░░░░░░░░░░░░░█░█░█▀█░█▀▄░█░█░▀█▀░█░█░▀░█▀▀░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
;; ░░░░░░░░░░░░░░░░░░█░█░█▀█░█▀▄░█░█░▀█▀░█░█░▀░█▀▀░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
;; ░░░░░░░░░░░░░░░░░░░░░█▀█░█░█░█▀▄░█▀█░░█░░█▀▄░░░▀▀█░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
;; ░░░░░░░░░░░░░░░░░░█▀█░█░█░█▀▄░█▀█░░█░░█▀▄░░░▀▀█░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
;; ░░░░░░░░░░░░░░░░░░░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀▀░▀░▀░░░▀▀▀░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
;; ░░░░░░░░░░░░░░░░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀▀░▀░▀░░░▀▀▀░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
;; ░░░░░░░░░░░░░░░░░░░░░█▀▄░█▀█░▀█▀░█▀▀░▀█▀░█░░░█▀▀░█▀▀░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
;; ░░░░░░░░░░░░░░░░░░█▀▄░█▀█░▀█▀░█▀▀░▀█▀░█░░░█▀▀░█▀▀░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
;; ░░░░░░░░░░░░░░░░░░░░░█░█░█░█░░█░░█▀▀░░█░░█░░░█▀▀░▀▀█░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
;; ░░░░░░░░░░░░░░░░░░█░█░█░█░░█░░█▀▀░░█░░█░░░█▀▀░▀▀█░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
;; ░░░░░░░░░░░░░░░░░░░░░▀▀░░▀▀▀░░▀░░▀░░░▀▀▀░▀▀▀░▀▀▀░▀▀▀░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
;; ░░░░░░░░░░░░░░░░░░▀▀░░▀▀▀░░▀░░▀░░░▀▀▀░▀▀▀░▀▀▀░▀▀▀░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
;; ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
;; ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
;; ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
;; ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
;; ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
;; ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
(require 'package)
|
(require 'package)
|
||||||
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
|
|
||||||
;; Comment/uncomment this line to enable MELPA Stable if desired. See `package-archive-priorities`
|
|
||||||
;; and `package-pinned-packages`. Most users will not need or want to do this.
|
(add-to-list 'package-archives
|
||||||
;;(add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t)
|
'("melpa" . "http://melpa.org/packages/"))
|
||||||
|
|
||||||
(package-initialize)
|
(package-initialize)
|
||||||
|
|
||||||
|
(unless package-archive-contents
|
||||||
|
(package-refresh-contents))
|
||||||
|
|
||||||
|
|
||||||
|
(defvar package-list
|
||||||
|
'( lsp-mode rustic evil-mc rainbow-delimiters doom-themes doom-modeline lusty-explorer ac-racer auto-complete all-the-icons linum-relative neotree racer cargo flycheck-rust rust-mode gruvbox-theme evil general use-package))
|
||||||
|
|
||||||
|
(dolist (p package-list)
|
||||||
|
(when (not (package-installed-p p))
|
||||||
|
(package-install p)))
|
||||||
|
|
||||||
|
;;(mapc
|
||||||
|
;; (lambda (package)
|
||||||
|
;; (or (package-installed-p package)
|
||||||
|
;; (package-install package)))
|
||||||
|
;; '( lsp-mode rustic evil-mc rainbow-delimiters doom-themes doom-modeline lusty-explorer ac-racer auto-complete all-the-icons linum-relative neotree racer cargo flycheck-rust rust-mode gruvbox-theme evil general))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(custom-set-variables
|
(custom-set-variables
|
||||||
;; custom-set-variables was added by Custom.
|
;; custom-set-variables was added by Custom.
|
||||||
;; If you edit it by hand, you could mess it up, so be careful.
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
|
@ -26,7 +47,7 @@
|
||||||
'(custom-safe-themes
|
'(custom-safe-themes
|
||||||
'("8d7684de9abb5a770fbfd72a14506d6b4add9a7d30942c6285f020d41d76e0fa" "4cf9ed30ea575fb0ca3cff6ef34b1b87192965245776afa9e9e20c17d115f3fb" "b89ae2d35d2e18e4286c8be8aaecb41022c1a306070f64a66fd114310ade88aa" "aded61687237d1dff6325edb492bde536f40b048eab7246c61d5c6643c696b7f" default))
|
'("8d7684de9abb5a770fbfd72a14506d6b4add9a7d30942c6285f020d41d76e0fa" "4cf9ed30ea575fb0ca3cff6ef34b1b87192965245776afa9e9e20c17d115f3fb" "b89ae2d35d2e18e4286c8be8aaecb41022c1a306070f64a66fd114310ade88aa" "aded61687237d1dff6325edb492bde536f40b048eab7246c61d5c6643c696b7f" default))
|
||||||
'(package-selected-packages
|
'(package-selected-packages
|
||||||
'(lsp-mode rustic evil-mc rainbow-delimiters doom-themes doom-modeline lusty-explorer ac-racer auto-complete all-the-icons linum-relative neotree racer cargo flycheck-rust rust-mode gruvbox-theme evil ##)))
|
'(spaceline lsp-mode rustic evil-mc rainbow-delimiters doom-themes doom-modeline lusty-explorer ac-racer auto-complete all-the-icons linum-relative neotree racer cargo flycheck-rust rust-mode gruvbox-theme evil ##)))
|
||||||
(custom-set-faces
|
(custom-set-faces
|
||||||
;; custom-set-faces was added by Custom.
|
;; custom-set-faces was added by Custom.
|
||||||
;; If you edit it by hand, you could mess it up, so be careful.
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
|
@ -35,7 +56,6 @@
|
||||||
)
|
)
|
||||||
(require 'use-package)
|
(require 'use-package)
|
||||||
|
|
||||||
|
|
||||||
;; AutoComplition
|
;; AutoComplition
|
||||||
(ac-config-default)
|
(ac-config-default)
|
||||||
(global-auto-complete-mode t)
|
(global-auto-complete-mode t)
|
||||||
|
@ -67,10 +87,12 @@
|
||||||
(require 'doom-modeline)
|
(require 'doom-modeline)
|
||||||
(doom-modeline-mode 1)
|
(doom-modeline-mode 1)
|
||||||
|
|
||||||
|
|
||||||
;; KeyBindings
|
;; KeyBindings
|
||||||
(require 'neotree)
|
(require 'neotree)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(defun add-to-map(keys func)
|
(defun add-to-map(keys func)
|
||||||
"Add a keybinding in evil mode from keys to func."
|
"Add a keybinding in evil mode from keys to func."
|
||||||
(define-key evil-normal-state-map (kbd keys) func)
|
(define-key evil-normal-state-map (kbd keys) func)
|
||||||
|
@ -113,6 +135,7 @@
|
||||||
(general-evil-setup t)
|
(general-evil-setup t)
|
||||||
(mmap)
|
(mmap)
|
||||||
|
|
||||||
|
(setq vc-follow-symlinks t)
|
||||||
|
|
||||||
;; Syntax
|
;; Syntax
|
||||||
(require 'flycheck)
|
(require 'flycheck)
|
||||||
|
@ -126,3 +149,8 @@
|
||||||
(find-file "~/.emacs")
|
(find-file "~/.emacs")
|
||||||
(setq inhibit-startup-message t)
|
(setq inhibit-startup-message t)
|
||||||
(setq initial-scratch-message ";; Happy Hacking")
|
(setq initial-scratch-message ";; Happy Hacking")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;; Rust
|
||||||
|
(setq lsp-rust-server 'rust-analyzer)
|
|
@ -13,11 +13,32 @@
|
||||||
;; ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
;; ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
;; ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
;; ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||||
(require 'package)
|
(require 'package)
|
||||||
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
|
|
||||||
;; Comment/uncomment this line to enable MELPA Stable if desired. See `package-archive-priorities`
|
|
||||||
;; and `package-pinned-packages`. Most users will not need or want to do this.
|
(add-to-list 'package-archives
|
||||||
;;(add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t)
|
'("melpa" . "http://melpa.org/packages/"))
|
||||||
|
|
||||||
(package-initialize)
|
(package-initialize)
|
||||||
|
|
||||||
|
(unless package-archive-contents
|
||||||
|
(package-refresh-contents))
|
||||||
|
|
||||||
|
|
||||||
|
(defvar package-list
|
||||||
|
'( lsp-mode rustic evil-mc rainbow-delimiters doom-themes doom-modeline lusty-explorer ac-racer auto-complete all-the-icons linum-relative neotree racer cargo flycheck-rust rust-mode gruvbox-theme evil general use-package))
|
||||||
|
|
||||||
|
(dolist (p package-list)
|
||||||
|
(when (not (package-installed-p p))
|
||||||
|
(package-install p)))
|
||||||
|
|
||||||
|
;;(mapc
|
||||||
|
;; (lambda (package)
|
||||||
|
;; (or (package-installed-p package)
|
||||||
|
;; (package-install package)))
|
||||||
|
;; '( lsp-mode rustic evil-mc rainbow-delimiters doom-themes doom-modeline lusty-explorer ac-racer auto-complete all-the-icons linum-relative neotree racer cargo flycheck-rust rust-mode gruvbox-theme evil general))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(custom-set-variables
|
(custom-set-variables
|
||||||
;; custom-set-variables was added by Custom.
|
;; custom-set-variables was added by Custom.
|
||||||
;; If you edit it by hand, you could mess it up, so be careful.
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
|
@ -26,7 +47,7 @@
|
||||||
'(custom-safe-themes
|
'(custom-safe-themes
|
||||||
'("8d7684de9abb5a770fbfd72a14506d6b4add9a7d30942c6285f020d41d76e0fa" "4cf9ed30ea575fb0ca3cff6ef34b1b87192965245776afa9e9e20c17d115f3fb" "b89ae2d35d2e18e4286c8be8aaecb41022c1a306070f64a66fd114310ade88aa" "aded61687237d1dff6325edb492bde536f40b048eab7246c61d5c6643c696b7f" default))
|
'("8d7684de9abb5a770fbfd72a14506d6b4add9a7d30942c6285f020d41d76e0fa" "4cf9ed30ea575fb0ca3cff6ef34b1b87192965245776afa9e9e20c17d115f3fb" "b89ae2d35d2e18e4286c8be8aaecb41022c1a306070f64a66fd114310ade88aa" "aded61687237d1dff6325edb492bde536f40b048eab7246c61d5c6643c696b7f" default))
|
||||||
'(package-selected-packages
|
'(package-selected-packages
|
||||||
'(rustic evil-mc rainbow-delimiters doom-themes doom-modeline lusty-explorer ac-racer auto-complete all-the-icons linum-relative neotree racer cargo flycheck-rust rust-mode gruvbox-theme evil ##)))
|
'(spaceline lsp-mode rustic evil-mc rainbow-delimiters doom-themes doom-modeline lusty-explorer ac-racer auto-complete all-the-icons linum-relative neotree racer cargo flycheck-rust rust-mode gruvbox-theme evil ##)))
|
||||||
(custom-set-faces
|
(custom-set-faces
|
||||||
;; custom-set-faces was added by Custom.
|
;; custom-set-faces was added by Custom.
|
||||||
;; If you edit it by hand, you could mess it up, so be careful.
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
|
@ -35,7 +56,6 @@
|
||||||
)
|
)
|
||||||
(require 'use-package)
|
(require 'use-package)
|
||||||
|
|
||||||
|
|
||||||
;; AutoComplition
|
;; AutoComplition
|
||||||
(ac-config-default)
|
(ac-config-default)
|
||||||
(global-auto-complete-mode t)
|
(global-auto-complete-mode t)
|
||||||
|
@ -67,10 +87,12 @@
|
||||||
(require 'doom-modeline)
|
(require 'doom-modeline)
|
||||||
(doom-modeline-mode 1)
|
(doom-modeline-mode 1)
|
||||||
|
|
||||||
|
|
||||||
;; KeyBindings
|
;; KeyBindings
|
||||||
(require 'neotree)
|
(require 'neotree)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(defun add-to-map(keys func)
|
(defun add-to-map(keys func)
|
||||||
"Add a keybinding in evil mode from keys to func."
|
"Add a keybinding in evil mode from keys to func."
|
||||||
(define-key evil-normal-state-map (kbd keys) func)
|
(define-key evil-normal-state-map (kbd keys) func)
|
||||||
|
@ -113,6 +135,7 @@
|
||||||
(general-evil-setup t)
|
(general-evil-setup t)
|
||||||
(mmap)
|
(mmap)
|
||||||
|
|
||||||
|
(setq vc-follow-symlinks t)
|
||||||
|
|
||||||
;; Syntax
|
;; Syntax
|
||||||
(require 'flycheck)
|
(require 'flycheck)
|
||||||
|
@ -126,3 +149,9 @@
|
||||||
(find-file "~/.emacs")
|
(find-file "~/.emacs")
|
||||||
(setq inhibit-startup-message t)
|
(setq inhibit-startup-message t)
|
||||||
(setq initial-scratch-message ";; Happy Hacking")
|
(setq initial-scratch-message ";; Happy Hacking")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;; Rust
|
||||||
|
(after! rustic
|
||||||
|
(setq lsp-rust-server 'rust-analyzer))
|
218
home/sway/.config/sway/config
Normal file
218
home/sway/.config/sway/config
Normal file
|
@ -0,0 +1,218 @@
|
||||||
|
# Default config for sway
|
||||||
|
#
|
||||||
|
# Copy this to ~/.config/sway/config and edit it to your liking.
|
||||||
|
#
|
||||||
|
# Read `man 5 sway` for a complete reference.
|
||||||
|
|
||||||
|
### Variables
|
||||||
|
#
|
||||||
|
# Logo key. Use Mod1 for Alt.
|
||||||
|
set $mod Mod4
|
||||||
|
# Home row direction keys, like vim
|
||||||
|
set $left h
|
||||||
|
set $down j
|
||||||
|
set $up k
|
||||||
|
set $right l
|
||||||
|
# Your preferred terminal emulator
|
||||||
|
set $term alacritty
|
||||||
|
# Your preferred application launcher
|
||||||
|
# Note: pass the final command to swaymsg so that the resulting window can be opened
|
||||||
|
# on the original workspace that the command was run on.
|
||||||
|
#set $menu dmenu_path | dmenu | xargs swaymsg exec --
|
||||||
|
set $menu dmenu_run -m dmenumon -fn dmenufont -nb col_gray1 -nf col_gray3 -sb col_cyan -sf col_gray4 -c -l 20
|
||||||
|
|
||||||
|
### Output configuration
|
||||||
|
#
|
||||||
|
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
|
||||||
|
output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
|
||||||
|
#
|
||||||
|
# Example configuration:
|
||||||
|
#
|
||||||
|
# output HDMI-A-1 resolution 1920x1080 position 1920,0
|
||||||
|
#
|
||||||
|
# You can get the names of your outputs by running: swaymsg -t get_outputs
|
||||||
|
|
||||||
|
### Idle configuration
|
||||||
|
#
|
||||||
|
# Example configuration:
|
||||||
|
#
|
||||||
|
# exec swayidle -w \
|
||||||
|
# timeout 300 'swaylock -f -c 000000' \
|
||||||
|
# timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
|
||||||
|
# before-sleep 'swaylock -f -c 000000'
|
||||||
|
#
|
||||||
|
# This will lock your screen after 300 seconds of inactivity, then turn off
|
||||||
|
# your displays after another 300 seconds, and turn your screens back on when
|
||||||
|
# resumed. It will also lock your screen before your computer goes to sleep.
|
||||||
|
|
||||||
|
### Input configuration
|
||||||
|
#
|
||||||
|
# Example configuration:
|
||||||
|
#
|
||||||
|
# input "2:14:SynPS/2_Synaptics_TouchPad" {
|
||||||
|
# dwt enabled
|
||||||
|
# tap enabled
|
||||||
|
# natural_scroll enabled
|
||||||
|
# middle_emulation enabled
|
||||||
|
# }
|
||||||
|
#
|
||||||
|
# You can get the names of your inputs by running: swaymsg -t get_inputs
|
||||||
|
# Read `man 5 sway-input` for more information about this section.
|
||||||
|
|
||||||
|
### Key bindings
|
||||||
|
#
|
||||||
|
# Basics:
|
||||||
|
#
|
||||||
|
# Start a terminal
|
||||||
|
bindsym $mod+Return exec $term
|
||||||
|
|
||||||
|
# Kill focused window
|
||||||
|
bindsym $mod+Shift+q kill
|
||||||
|
|
||||||
|
# Start your launcher
|
||||||
|
bindsym $mod+d exec $menu
|
||||||
|
|
||||||
|
# Drag floating windows by holding down $mod and left mouse button.
|
||||||
|
# Resize them with right mouse button + $mod.
|
||||||
|
# Despite the name, also works for non-floating windows.
|
||||||
|
# Change normal to inverse to use left mouse button for resizing and right
|
||||||
|
# mouse button for dragging.
|
||||||
|
floating_modifier $mod normal
|
||||||
|
|
||||||
|
# Reload the configuration file
|
||||||
|
bindsym $mod+Shift+c reload
|
||||||
|
|
||||||
|
# Exit sway (logs you out of your Wayland session)
|
||||||
|
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'
|
||||||
|
#
|
||||||
|
# Moving around:
|
||||||
|
#
|
||||||
|
# Move your focus around
|
||||||
|
bindsym $mod+$left focus left
|
||||||
|
bindsym $mod+$down focus down
|
||||||
|
bindsym $mod+$up focus up
|
||||||
|
bindsym $mod+$right focus right
|
||||||
|
# Or use $mod+[up|down|left|right]
|
||||||
|
bindsym $mod+Left focus left
|
||||||
|
bindsym $mod+Down focus down
|
||||||
|
bindsym $mod+Up focus up
|
||||||
|
bindsym $mod+Right focus right
|
||||||
|
|
||||||
|
# Move the focused window with the same, but add Shift
|
||||||
|
bindsym $mod+Shift+$left move left
|
||||||
|
bindsym $mod+Shift+$down move down
|
||||||
|
bindsym $mod+Shift+$up move up
|
||||||
|
bindsym $mod+Shift+$right move right
|
||||||
|
# Ditto, with arrow keys
|
||||||
|
bindsym $mod+Shift+Left move left
|
||||||
|
bindsym $mod+Shift+Down move down
|
||||||
|
bindsym $mod+Shift+Up move up
|
||||||
|
bindsym $mod+Shift+Right move right
|
||||||
|
#
|
||||||
|
# Workspaces:
|
||||||
|
#
|
||||||
|
# Switch to workspace
|
||||||
|
bindsym $mod+1 workspace number 1
|
||||||
|
bindsym $mod+2 workspace number 2
|
||||||
|
bindsym $mod+3 workspace number 3
|
||||||
|
bindsym $mod+4 workspace number 4
|
||||||
|
bindsym $mod+5 workspace number 5
|
||||||
|
bindsym $mod+6 workspace number 6
|
||||||
|
bindsym $mod+7 workspace number 7
|
||||||
|
bindsym $mod+8 workspace number 8
|
||||||
|
bindsym $mod+9 workspace number 9
|
||||||
|
bindsym $mod+0 workspace number 10
|
||||||
|
# Move focused container to workspace
|
||||||
|
bindsym $mod+Shift+1 move container to workspace number 1
|
||||||
|
bindsym $mod+Shift+2 move container to workspace number 2
|
||||||
|
bindsym $mod+Shift+3 move container to workspace number 3
|
||||||
|
bindsym $mod+Shift+4 move container to workspace number 4
|
||||||
|
bindsym $mod+Shift+5 move container to workspace number 5
|
||||||
|
bindsym $mod+Shift+6 move container to workspace number 6
|
||||||
|
bindsym $mod+Shift+7 move container to workspace number 7
|
||||||
|
bindsym $mod+Shift+8 move container to workspace number 8
|
||||||
|
bindsym $mod+Shift+9 move container to workspace number 9
|
||||||
|
bindsym $mod+Shift+0 move container to workspace number 10
|
||||||
|
# Note: workspaces can have any name you want, not just numbers.
|
||||||
|
# We just use 1-10 as the default.
|
||||||
|
#
|
||||||
|
# Layout stuff:
|
||||||
|
#
|
||||||
|
# You can "split" the current object of your focus with
|
||||||
|
# $mod+b or $mod+v, for horizontal and vertical splits
|
||||||
|
# respectively.
|
||||||
|
bindsym $mod+b splith
|
||||||
|
bindsym $mod+v splitv
|
||||||
|
|
||||||
|
# Switch the current container between different layout styles
|
||||||
|
bindsym $mod+s layout stacking
|
||||||
|
bindsym $mod+w layout tabbed
|
||||||
|
bindsym $mod+e layout toggle split
|
||||||
|
|
||||||
|
# Make the current focus fullscreen
|
||||||
|
bindsym $mod+f fullscreen
|
||||||
|
|
||||||
|
# Toggle the current focus between tiling and floating mode
|
||||||
|
bindsym $mod+Shift+space floating toggle
|
||||||
|
|
||||||
|
# Swap focus between the tiling area and the floating area
|
||||||
|
bindsym $mod+space focus mode_toggle
|
||||||
|
|
||||||
|
# Move focus to the parent container
|
||||||
|
bindsym $mod+a focus parent
|
||||||
|
#
|
||||||
|
# Scratchpad:
|
||||||
|
#
|
||||||
|
# Sway has a "scratchpad", which is a bag of holding for windows.
|
||||||
|
# You can send windows there and get them back later.
|
||||||
|
|
||||||
|
# Move the currently focused window to the scratchpad
|
||||||
|
bindsym $mod+Shift+minus move scratchpad
|
||||||
|
|
||||||
|
# Show the next scratchpad window or hide the focused scratchpad window.
|
||||||
|
# If there are multiple scratchpad windows, this command cycles through them.
|
||||||
|
bindsym $mod+minus scratchpad show
|
||||||
|
#
|
||||||
|
# Resizing containers:
|
||||||
|
#
|
||||||
|
mode "resize" {
|
||||||
|
# left will shrink the containers width
|
||||||
|
# right will grow the containers width
|
||||||
|
# up will shrink the containers height
|
||||||
|
# down will grow the containers height
|
||||||
|
bindsym $left resize shrink width 10px
|
||||||
|
bindsym $down resize grow height 10px
|
||||||
|
bindsym $up resize shrink height 10px
|
||||||
|
bindsym $right resize grow width 10px
|
||||||
|
|
||||||
|
# Ditto, with arrow keys
|
||||||
|
bindsym Left resize shrink width 10px
|
||||||
|
bindsym Down resize grow height 10px
|
||||||
|
bindsym Up resize shrink height 10px
|
||||||
|
bindsym Right resize grow width 10px
|
||||||
|
|
||||||
|
# Return to default mode
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
}
|
||||||
|
bindsym $mod+r mode "resize"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Status Bar:
|
||||||
|
#
|
||||||
|
# Read `man 5 sway-bar` for more information about this section.
|
||||||
|
bar {
|
||||||
|
position top
|
||||||
|
|
||||||
|
# When the status_command prints a new line to stdout, swaybar updates.
|
||||||
|
# The default just shows the current date and time.
|
||||||
|
status_command while date +'%Y-%m-%d %l:%M:%S %p'; do sleep 1; done
|
||||||
|
|
||||||
|
colors {
|
||||||
|
statusline #ffffff
|
||||||
|
background #323232
|
||||||
|
inactive_workspace #32323200 #32323200 #5c5c5c
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
include /etc/sway/config.d/*
|
|
@ -4,6 +4,9 @@
|
||||||
# Path to your oh-my-zsh installation.
|
# Path to your oh-my-zsh installation.
|
||||||
export ZSH="/home/horhik/.oh-my-zsh"
|
export ZSH="/home/horhik/.oh-my-zsh"
|
||||||
|
|
||||||
|
export CC=/usr/bin/clang
|
||||||
|
|
||||||
|
export CXX=/usr/bin/clang++
|
||||||
# Set name of the theme to load --- if set to "random", it will
|
# Set name of the theme to load --- if set to "random", it will
|
||||||
# load a random theme each time oh-my-zsh is loaded, in which case,
|
# load a random theme each time oh-my-zsh is loaded, in which case,
|
||||||
# to know which specific one was loaded, run: echo $RANDOM_THEME
|
# to know which specific one was loaded, run: echo $RANDOM_THEME
|
||||||
|
@ -101,3 +104,11 @@ source $ZSH/oh-my-zsh.sh
|
||||||
export PATH=$HOME/.local/bin:$PATH
|
export PATH=$HOME/.local/bin:$PATH
|
||||||
export PATH=/usr/local/bin:$PATH
|
export PATH=/usr/local/bin:$PATH
|
||||||
export PATH=$HOME/.cargo/bin:$PATH
|
export PATH=$HOME/.cargo/bin:$PATH
|
||||||
|
export PATH=$HOME/Desktop:$PATH
|
||||||
|
export PATH=/home/horhik/code/projects/potato-notify:$PATH
|
||||||
|
|
||||||
|
alias vim=nvim
|
||||||
|
alias vi=vim
|
||||||
|
alias libvirtdaemon="sudo start-stop-daemon --start libvirtd"
|
||||||
|
alias virtm="sudo start-stop-daemon --start virtlogd &; sudo start-stop-daemon --start libvirtd &; virt-manager &"
|
||||||
|
alias clip=xclip -selection clipboard
|
||||||
|
|
Loading…
Reference in a new issue