mirror of
https://github.com/olexsmir/dotfiles.git
synced 2026-01-15 08:41:34 +02:00
Add DWM config
This commit is contained in:
parent
13c6216796
commit
f7c0cef79f
13 changed files with 407 additions and 131 deletions
13
config/dwm/README.md
Normal file
13
config/dwm/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
# DWM
|
||||||
|
|
||||||
|

|
||||||
|
------------------------
|
||||||
|
|
||||||
|
|
||||||
|
### Install
|
||||||
|
~~~bash
|
||||||
|
git clone https://git.suckless.org/dwm ~/.config/dwm
|
||||||
|
sudo cp ~/.config/dwm/dwm.desktop /usr/share/xsessions
|
||||||
|
cd ~/.config/dwm
|
||||||
|
sudo make clean install
|
||||||
|
~~~~
|
||||||
6
config/dwm/autostart.sh
Executable file
6
config/dwm/autostart.sh
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/sh
|
||||||
|
xautolock -time 5 -locker "betterlockscreen --off 300 -t \"Computer is lockerd\" -l" &
|
||||||
|
setxkbmap "us,ua" ",winkeys" "grp:alt_shift_toggle" -option "ctrl:nocaps" &
|
||||||
|
nitrogen --restore &
|
||||||
|
lxsession &
|
||||||
|
picom -b &
|
||||||
122
config/dwm/config.def.h
Normal file
122
config/dwm/config.def.h
Normal file
|
|
@ -0,0 +1,122 @@
|
||||||
|
static const unsigned int borderpx = 1; // border pixel of windows
|
||||||
|
static const unsigned int snap = 32; // snap pixel
|
||||||
|
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" };
|
||||||
|
static const char col_gray1[] = "#262A2B";
|
||||||
|
static const char col_gray2[] = "#262A2B";
|
||||||
|
static const char col_gray3[] = "#CED4DA";
|
||||||
|
static const char col_gray4[] = "#FFFFFF";
|
||||||
|
static const char col_cyan[] = "#008DCD";
|
||||||
|
static const char *colors[][3] = {
|
||||||
|
/* fg bg border */
|
||||||
|
[SchemeNorm] = { col_gray3, col_gray1, col_gray2 },
|
||||||
|
[SchemeSel] = { col_gray4, col_cyan, col_cyan },
|
||||||
|
};
|
||||||
|
|
||||||
|
// Workspaces names
|
||||||
|
static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
|
||||||
|
|
||||||
|
// Rules
|
||||||
|
static const Rule rules[] = {
|
||||||
|
/* class instance title tags mask isfloating monitor */
|
||||||
|
{ "trayer", NULL, NULL, ~0, True, -1 },
|
||||||
|
{ "Gimp", NULL, NULL, 0, 1, -1 },
|
||||||
|
{ "Firefox", NULL, NULL, 1 << 8, 0, -1 },
|
||||||
|
};
|
||||||
|
|
||||||
|
// Autostart
|
||||||
|
static const char *const autostart[] = {
|
||||||
|
"./.config/dwm/autostart.sh", NULL,
|
||||||
|
"./.script/dwmbar.sh", NULL,
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
// Layout
|
||||||
|
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 resizehints = 1; /* 1 means respect size hints in tiled resizals */
|
||||||
|
|
||||||
|
static const Layout layouts[] = {
|
||||||
|
{ "[]=", tile },
|
||||||
|
{ "><>", NULL },
|
||||||
|
{ "[M]", monocle },
|
||||||
|
};
|
||||||
|
|
||||||
|
// Key definitions
|
||||||
|
#define MODKEY Mod4Mask
|
||||||
|
#define TAGKEYS(KEY,TAG) \
|
||||||
|
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
|
||||||
|
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
|
||||||
|
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
|
||||||
|
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
|
||||||
|
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
|
||||||
|
|
||||||
|
// Commands
|
||||||
|
static char dmenumon[2] = "0";
|
||||||
|
static const char *dmenucmd[] = { "dmenu_run", NULL };
|
||||||
|
static const char *launchercmd[] = { "rofi", "-location", "2", "-show", "drun", NULL };
|
||||||
|
static const char *passmenucmd[] = { "passmenu", "-h", "24", "-p", "Passwords", NULL };
|
||||||
|
static const char *termcmd[] = { "alacritty", NULL };
|
||||||
|
|
||||||
|
// Keyboards binds
|
||||||
|
static Key keys[] = {
|
||||||
|
/* modifier key function argument */
|
||||||
|
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = launchercmd } }, // Program menu
|
||||||
|
{ MODKEY, XK_Return, spawn, {.v = termcmd } }, // Terminal
|
||||||
|
{ MODKEY, XK_q, killclient, {0} }, // Kill window
|
||||||
|
{ MODKEY, XK_b, togglebar, {0} }, // Toggle status bar
|
||||||
|
{ MODKEY, XK_j, focusstack, {.i = +1 } },
|
||||||
|
{ MODKEY, XK_k, focusstack, {.i = -1 } },
|
||||||
|
{ MODKEY, XK_i, incnmaster, {.i = +1 } },
|
||||||
|
{ MODKEY, XK_d, incnmaster, {.i = -1 } },
|
||||||
|
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
|
||||||
|
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
|
||||||
|
{ MODKEY, XK_Return, zoom, {0} },
|
||||||
|
// { MODKEY, XK_Tab, view, {0} },
|
||||||
|
{ MODKEY, XK_Tab, setlayout, {0} },
|
||||||
|
{ MODKEY|ShiftMask, XK_Tab, togglefloating, {0} },
|
||||||
|
{ MODKEY, XK_comma, focusmon, {.i = -1 } },
|
||||||
|
{ MODKEY, XK_period, focusmon, {.i = +1 } },
|
||||||
|
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
|
||||||
|
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
|
||||||
|
|
||||||
|
// Menus
|
||||||
|
{ MODKEY|ControlMask, XK_i, spawn, {.v = passmenucmd} },
|
||||||
|
{ MODKEY|ControlMask, XK_u, spawn, SHCMD("~/.script/dmenu/dmenu-config-edit.sh") },
|
||||||
|
{ MODKEY, XK_Escape, spawn, SHCMD("~/.script/dmenu/dmenu-power.sh") },
|
||||||
|
|
||||||
|
// Volume
|
||||||
|
{ MODKEY, XK_minus, spawn, SHCMD("amixer sset 'Master' 2%-") },
|
||||||
|
{ MODKEY, XK_equal, spawn, SHCMD("amixer sset 'Master' 2%+") },
|
||||||
|
{ MODKEY|ShiftMask, XK_minus, spawn, SHCMD("amixer sset 'Master' toggle") },
|
||||||
|
|
||||||
|
// Workspaces
|
||||||
|
TAGKEYS( XK_1, 0)
|
||||||
|
TAGKEYS( XK_2, 1)
|
||||||
|
TAGKEYS( XK_3, 2)
|
||||||
|
TAGKEYS( XK_4, 3)
|
||||||
|
TAGKEYS( XK_5, 4)
|
||||||
|
TAGKEYS( XK_6, 5)
|
||||||
|
TAGKEYS( XK_7, 6)
|
||||||
|
TAGKEYS( XK_8, 7)
|
||||||
|
TAGKEYS( XK_9, 8)
|
||||||
|
{ MODKEY, XK_0, view, {.ui = ~0 } },
|
||||||
|
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
|
||||||
|
};
|
||||||
|
|
||||||
|
// Mouse binds
|
||||||
|
static Button buttons[] = {
|
||||||
|
// click event mask button function argument
|
||||||
|
{ ClkLtSymbol, 0, Button1, setlayout, {0} },
|
||||||
|
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} },
|
||||||
|
{ ClkWinTitle, 0, Button2, zoom, {0} },
|
||||||
|
{ ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
|
||||||
|
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },
|
||||||
|
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },
|
||||||
|
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },
|
||||||
|
{ ClkTagBar, 0, Button1, view, {0} },
|
||||||
|
{ ClkTagBar, 0, Button3, toggleview, {0} },
|
||||||
|
{ ClkTagBar, MODKEY, Button1, tag, {0} },
|
||||||
|
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },
|
||||||
|
};
|
||||||
116
config/dwm/cool-autostart.diff
Normal file
116
config/dwm/cool-autostart.diff
Normal file
|
|
@ -0,0 +1,116 @@
|
||||||
|
diff --git a/config.def.h b/config.def.h
|
||||||
|
index 1c0b587..ed056a4 100644
|
||||||
|
--- a/config.def.h
|
||||||
|
+++ b/config.def.h
|
||||||
|
@@ -18,6 +18,11 @@ static const char *colors[][3] = {
|
||||||
|
[SchemeSel] = { col_gray4, col_cyan, col_cyan },
|
||||||
|
};
|
||||||
|
|
||||||
|
+static const char *const autostart[] = {
|
||||||
|
+ "st", NULL,
|
||||||
|
+ NULL /* terminate */
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
/* tagging */
|
||||||
|
static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
|
||||||
|
|
||||||
|
diff --git a/dwm.c b/dwm.c
|
||||||
|
index 9fd0286..1facd56 100644
|
||||||
|
--- a/dwm.c
|
||||||
|
+++ b/dwm.c
|
||||||
|
@@ -234,6 +234,7 @@ static int xerror(Display *dpy, XErrorEvent *ee);
|
||||||
|
static int xerrordummy(Display *dpy, XErrorEvent *ee);
|
||||||
|
static int xerrorstart(Display *dpy, XErrorEvent *ee);
|
||||||
|
static void zoom(const Arg *arg);
|
||||||
|
+static void autostart_exec(void);
|
||||||
|
|
||||||
|
/* variables */
|
||||||
|
static const char broken[] = "broken";
|
||||||
|
@@ -275,6 +276,34 @@ static Window root, wmcheckwin;
|
||||||
|
/* compile-time check if all tags fit into an unsigned int bit array. */
|
||||||
|
struct NumTags { char limitexceeded[LENGTH(tags) > 31 ? -1 : 1]; };
|
||||||
|
|
||||||
|
+/* dwm will keep pid's of processes from autostart array and kill them at quit */
|
||||||
|
+static pid_t *autostart_pids;
|
||||||
|
+static size_t autostart_len;
|
||||||
|
+
|
||||||
|
+/* execute command from autostart array */
|
||||||
|
+static void
|
||||||
|
+autostart_exec() {
|
||||||
|
+ const char *const *p;
|
||||||
|
+ size_t i = 0;
|
||||||
|
+
|
||||||
|
+ /* count entries */
|
||||||
|
+ for (p = autostart; *p; autostart_len++, p++)
|
||||||
|
+ while (*++p);
|
||||||
|
+
|
||||||
|
+ autostart_pids = malloc(autostart_len * sizeof(pid_t));
|
||||||
|
+ for (p = autostart; *p; i++, p++) {
|
||||||
|
+ if ((autostart_pids[i] = fork()) == 0) {
|
||||||
|
+ setsid();
|
||||||
|
+ execvp(*p, (char *const *)p);
|
||||||
|
+ fprintf(stderr, "dwm: execvp %s\n", *p);
|
||||||
|
+ perror(" failed");
|
||||||
|
+ _exit(EXIT_FAILURE);
|
||||||
|
+ }
|
||||||
|
+ /* skip arguments */
|
||||||
|
+ while (*++p);
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/* function implementations */
|
||||||
|
void
|
||||||
|
applyrules(Client *c)
|
||||||
|
@@ -1249,6 +1278,16 @@ propertynotify(XEvent *e)
|
||||||
|
void
|
||||||
|
quit(const Arg *arg)
|
||||||
|
{
|
||||||
|
+ size_t i;
|
||||||
|
+
|
||||||
|
+ /* kill child processes */
|
||||||
|
+ for (i = 0; i < autostart_len; i++) {
|
||||||
|
+ if (0 < autostart_pids[i]) {
|
||||||
|
+ kill(autostart_pids[i], SIGTERM);
|
||||||
|
+ waitpid(autostart_pids[i], NULL, 0);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
running = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1632,9 +1671,25 @@ showhide(Client *c)
|
||||||
|
void
|
||||||
|
sigchld(int unused)
|
||||||
|
{
|
||||||
|
+ pid_t pid;
|
||||||
|
+
|
||||||
|
if (signal(SIGCHLD, sigchld) == SIG_ERR)
|
||||||
|
die("can't install SIGCHLD handler:");
|
||||||
|
- while (0 < waitpid(-1, NULL, WNOHANG));
|
||||||
|
+ while (0 < (pid = waitpid(-1, NULL, WNOHANG))) {
|
||||||
|
+ pid_t *p, *lim;
|
||||||
|
+
|
||||||
|
+ if (!(p = autostart_pids))
|
||||||
|
+ continue;
|
||||||
|
+ lim = &p[autostart_len];
|
||||||
|
+
|
||||||
|
+ for (; p < lim; p++) {
|
||||||
|
+ if (*p == pid) {
|
||||||
|
+ *p = -1;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
@@ -2139,6 +2194,7 @@ main(int argc, char *argv[])
|
||||||
|
if (!(dpy = XOpenDisplay(NULL)))
|
||||||
|
die("dwm: cannot open display");
|
||||||
|
checkotherwm();
|
||||||
|
+ autostart_exec();
|
||||||
|
setup();
|
||||||
|
#ifdef __OpenBSD__
|
||||||
|
if (pledge("stdio rpath proc exec", NULL) == -1)
|
||||||
|
|
||||||
7
config/dwm/dwm.desktop
Normal file
7
config/dwm/dwm.desktop
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Encoding=UTF-8
|
||||||
|
Name=Dwm
|
||||||
|
Comment=Dynamic window manager
|
||||||
|
Exec=dwm
|
||||||
|
Icon=dwm
|
||||||
|
Type=XSession
|
||||||
BIN
config/dwm/screen.png
Normal file
BIN
config/dwm/screen.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 415 KiB |
|
|
@ -19,6 +19,7 @@ hide_edge_borders smart
|
||||||
set $terminal alacritty
|
set $terminal alacritty
|
||||||
set $browser firefox
|
set $browser firefox
|
||||||
set $filemanager thunar
|
set $filemanager thunar
|
||||||
|
set $guieditor emacs
|
||||||
|
|
||||||
############ Autostart ############
|
############ Autostart ############
|
||||||
exec --no-startup-id exec picom --experimental-backends -b
|
exec --no-startup-id exec picom --experimental-backends -b
|
||||||
|
|
@ -41,14 +42,17 @@ bindsym --release $mod+Shift+q exec xkill
|
||||||
# Restart i3wm
|
# Restart i3wm
|
||||||
bindsym $mod+Control+r restart
|
bindsym $mod+Control+r restart
|
||||||
|
|
||||||
|
# Reload i3wm
|
||||||
|
bindsym $mod+Shift+r reload
|
||||||
|
|
||||||
# Floating layout
|
# Floating layout
|
||||||
bindsym $mod+Tab floating toggle
|
bindsym $mod+Tab floating toggle
|
||||||
|
|
||||||
# Tab layout
|
# Tab layout
|
||||||
bindsym $mod+w layout tabbed
|
bindsym $mod+Shift+w layout tabbed
|
||||||
|
|
||||||
# Split layout
|
# Split layout
|
||||||
bindsym $mod+e layout toggle split
|
bindsym $mod+Shift+e layout toggle split
|
||||||
|
|
||||||
# Splits
|
# Splits
|
||||||
bindsym $mod+b split h
|
bindsym $mod+b split h
|
||||||
|
|
@ -71,6 +75,7 @@ bindsym $mod+Control+i exec passmenu -b -h 24 -p Passwords
|
||||||
bindsym $mod+Return exec $terminal
|
bindsym $mod+Return exec $terminal
|
||||||
bindsym $mod+F2 exec $browser
|
bindsym $mod+F2 exec $browser
|
||||||
bindsym $mod+f exec $filemanager
|
bindsym $mod+f exec $filemanager
|
||||||
|
bindsym $mod+d exec $guieditor
|
||||||
|
|
||||||
# Sceenshot
|
# Sceenshot
|
||||||
bindsym --release Print exec "scrot -s /home/${USER}/$(date +%Y-%m-%d-%H-%M-%S).png"
|
bindsym --release Print exec "scrot -s /home/${USER}/$(date +%Y-%m-%d-%H-%M-%S).png"
|
||||||
|
|
|
||||||
|
|
@ -1,55 +1,47 @@
|
||||||
filetype plugin on
|
|
||||||
call plug#begin('~/.vim/plugged')
|
call plug#begin('~/.vim/plugged')
|
||||||
Plug 'nathanaelkane/vim-indent-guides' " Displaying indent levels
|
Plug 'nathanaelkane/vim-indent-guides' " Displaying indent levels
|
||||||
Plug 'voldikss/vim-floaterm' " Terminal window
|
|
||||||
Plug 'frazrepo/vim-rainbow' " Rainbow brackets
|
|
||||||
Plug 'airblade/vim-gitgutter' " Git indicator
|
|
||||||
Plug 'ap/vim-css-color' " CSS color preview
|
|
||||||
Plug 'mhinz/vim-startify' " Start page
|
|
||||||
Plug 'itchyny/lightline.vim' " Status line
|
Plug 'itchyny/lightline.vim' " Status line
|
||||||
Plug 'vimwiki/vimwiki', {'on': 'VimwikiIndex'} " Notes manager in (n)vim
|
Plug 'Smirnov-O/nten16.vim' " Color scheme
|
||||||
|
Plug 'frazrepo/vim-rainbow' " Rainbow brackets
|
||||||
" Color scheme
|
Plug 'mhinz/vim-startify' " Start page
|
||||||
Plug 'Smirnov-O/nten16.vim'
|
Plug 'ap/vim-css-color' " CSS color preview
|
||||||
|
Plug 'airblade/vim-gitgutter' " Git indicator
|
||||||
|
Plug 'preservim/nerdcommenter' " Code commenter
|
||||||
|
|
||||||
" Project/file navigation
|
" Project/file navigation
|
||||||
Plug 'scrooloose/nerdtree', {'on': 'NERDTreeToggle'}
|
Plug 'scrooloose/nerdtree', {'on': 'NERDTreeToggle'}
|
||||||
Plug 'ryanoasis/vim-devicons', {'on': 'NERDTreeToggle'}
|
|
||||||
Plug 'preservim/tagbar', {'on': 'TagbarToggle'}
|
Plug 'preservim/tagbar', {'on': 'TagbarToggle'}
|
||||||
Plug 'kien/ctrlp.vim', {'on': 'CtrlP'}
|
Plug 'kien/ctrlp.vim', {'on': 'CtrlP'}
|
||||||
Plug 'easymotion/vim-easymotion'
|
|
||||||
|
|
||||||
" Completion
|
" Completion & snippets
|
||||||
|
Plug 'ycm-core/YouCompleteMe'
|
||||||
Plug 'jiangmiao/auto-pairs'
|
Plug 'jiangmiao/auto-pairs'
|
||||||
Plug 'neoclide/coc.nvim', {'branch': 'release'}
|
Plug 'SirVer/ultisnips'
|
||||||
|
|
||||||
" Language support
|
" Language syntax
|
||||||
Plug 'iamcco/markdown-preview.nvim', {'for': 'markdown'}
|
|
||||||
Plug 'dhruvasagar/vim-table-mode', {'for': 'markdown'}
|
|
||||||
Plug 'plasticboy/vim-markdown', {'for': 'markdown'}
|
Plug 'plasticboy/vim-markdown', {'for': 'markdown'}
|
||||||
|
Plug 'dhruvasagar/vim-table-mode', {'for': 'markdown'}
|
||||||
|
Plug 'xinhangliu/ficus.vim', {'for': 'markdown'}
|
||||||
Plug 'vim-python/python-syntax', {'for': 'python'}
|
Plug 'vim-python/python-syntax', {'for': 'python'}
|
||||||
Plug 'kovetskiy/sxhkd-vim', {'for': 'sxhkd'}
|
Plug 'alaviss/nim.nvim', {'for': 'nim'}
|
||||||
Plug 'mattn/emmet-vim', {'on': 'Emmet'}
|
|
||||||
Plug 'cakebaker/scss-syntax.vim', {'for': 'scss'}
|
|
||||||
Plug 'PotatoesMaster/i3-vim-syntax', {'for': 'i3'}
|
|
||||||
Plug 'fatih/vim-go', {'for': 'go'}
|
Plug 'fatih/vim-go', {'for': 'go'}
|
||||||
|
"Plug 'nsf/gocode', {'for': 'go'}
|
||||||
|
Plug 'PotatoesMaster/i3-vim-syntax', {'for': 'i3'}
|
||||||
|
Plug 'kovetskiy/sxhkd-vim', {'for': 'sxhkd'}
|
||||||
call plug#end()
|
call plug#end()
|
||||||
|
|
||||||
" Colors
|
" Theme
|
||||||
set termguicolors
|
set termguicolors
|
||||||
set background=dark
|
colorscheme nten16
|
||||||
colo nten16
|
|
||||||
set t_Co=256
|
set t_Co=256
|
||||||
|
|
||||||
" Syntax & line numbers
|
" Syntax & number line
|
||||||
syntax on
|
syntax on
|
||||||
set number
|
set nu rnu
|
||||||
set relativenumber
|
|
||||||
|
|
||||||
" Vim status line
|
" Status line
|
||||||
set noshowmode
|
set noshowmode
|
||||||
set ruler
|
set ruler
|
||||||
set showmode
|
|
||||||
set showcmd
|
set showcmd
|
||||||
|
|
||||||
" Mouse
|
" Mouse
|
||||||
|
|
@ -57,20 +49,20 @@ set mouse=a
|
||||||
set mousehide
|
set mousehide
|
||||||
set cursorline
|
set cursorline
|
||||||
|
|
||||||
" File encoding
|
" Encoding
|
||||||
set encoding=utf-8
|
set encoding=utf-8
|
||||||
set fileencodings=utf8
|
set fileencodings=utf-8
|
||||||
|
|
||||||
" Line wrap
|
" Line wrap
|
||||||
set nowrap
|
set nowrap
|
||||||
set nolinebreak
|
set nolinebreak
|
||||||
|
|
||||||
" Backup files & history
|
" Backup file & history
|
||||||
set nobackup
|
set nobackup
|
||||||
set noswapfile
|
set noswapfile
|
||||||
set history=100
|
set history=100
|
||||||
|
|
||||||
" Auto reload file
|
" Reload file
|
||||||
set autoread
|
set autoread
|
||||||
|
|
||||||
" Tabs
|
" Tabs
|
||||||
|
|
@ -85,7 +77,7 @@ set incsearch
|
||||||
set ignorecase
|
set ignorecase
|
||||||
set smartcase
|
set smartcase
|
||||||
|
|
||||||
" Buffer
|
" Buffer(s)
|
||||||
set hidden
|
set hidden
|
||||||
set smartindent
|
set smartindent
|
||||||
|
|
||||||
|
|
@ -96,9 +88,7 @@ set spelllang=en_us
|
||||||
" Disable sound
|
" Disable sound
|
||||||
set visualbell t_vb=
|
set visualbell t_vb=
|
||||||
|
|
||||||
" == Plugins configure
|
" == Plugins configuration
|
||||||
|
|
||||||
" Lightline
|
|
||||||
let g:lightline = {
|
let g:lightline = {
|
||||||
\ 'colorscheme': 'nten16',
|
\ 'colorscheme': 'nten16',
|
||||||
\ 'active': {
|
\ 'active': {
|
||||||
|
|
@ -106,51 +96,52 @@ let g:lightline = {
|
||||||
\ [ 'readonly', 'modified' ] ],
|
\ [ 'readonly', 'modified' ] ],
|
||||||
\ 'right': [ [ 'lineinfo' ],
|
\ 'right': [ [ 'lineinfo' ],
|
||||||
\ [ 'percent' ],
|
\ [ 'percent' ],
|
||||||
\ [ 'filename', 'fileencoding', 'filetype' ] ]
|
\ [ 'filename', 'filetype' ] ]
|
||||||
\ }, }
|
\ }, }
|
||||||
|
|
||||||
|
" Markdown
|
||||||
|
let g:vim_markdown_folding_disabled = 1
|
||||||
|
let g:markdown_fenced_languages = ['go', 'python', 'bash', 'sh=bash']
|
||||||
|
let g:ficus_dir = "~/Documents/Notes"
|
||||||
|
|
||||||
|
" Rainbow
|
||||||
|
let g:rainbow_active = 1
|
||||||
|
|
||||||
|
" Python
|
||||||
|
let g:python_higlight_all = 1
|
||||||
|
|
||||||
|
" YouCompleteMe
|
||||||
|
let g:ycm_key_list_previous_completion=['<Up>']
|
||||||
|
|
||||||
|
" UltiSnipts
|
||||||
|
let g:UltiSnipsExpandTrigger="<c-tab>"
|
||||||
|
let g:UltiSnipsListSnippets="<c-s-tab>"
|
||||||
|
"let g:UltiSnipsJumpForwardTrigger="<c-j>"
|
||||||
|
"let g:UltiSnipsJumpBackwardTrigger="<c-k>"
|
||||||
|
|
||||||
|
|
||||||
|
" Go
|
||||||
|
let g:go_template_autocreate = 0
|
||||||
|
let g:go_highlight_structs = 1
|
||||||
|
let g:go_highlight_methods = 1
|
||||||
|
let g:go_highlight_functions = 1
|
||||||
|
let g:go_highlight_operators = 1
|
||||||
|
let g:go_highlight_build_constraints = 1
|
||||||
|
let g:go_snippet_engine = ""
|
||||||
|
|
||||||
|
" TagBar
|
||||||
|
let g:tagbar_autoclose = 1
|
||||||
|
let g:tagbar_width = 18
|
||||||
|
let g:tagbar_left = 1
|
||||||
|
|
||||||
" Nerdtree
|
" Nerdtree
|
||||||
let NERDTreeIgnore = ['__pycache__', '.DS_Store', '.git']
|
let NERDTreeIgnore = ['__pycache__', '.DS_Store', '.git']
|
||||||
let g:NERDTreeWinPos = "right"
|
let g:NERDTreeWinPos = "right"
|
||||||
let g:NERDTreeWinSize = 28
|
let g:NERDTreeWinSize = 28
|
||||||
let NERDTreeMinimalUI = 1
|
let NERDTreeMinimalUI = 1
|
||||||
let NERDTreeShowLineNumbers = 1
|
|
||||||
let NERDTreeShowHidden = 0
|
|
||||||
map <C-b> :NERDTreeToggle<CR>
|
|
||||||
|
|
||||||
" VimWiki
|
|
||||||
let g:vimwiki_markdown_link_ext = 0
|
|
||||||
let g:vimwiki_list = [{
|
|
||||||
\ 'path': '~/Documents/Notes',
|
|
||||||
\ 'syntax': 'markdown',
|
|
||||||
\ 'ext': '.md',
|
|
||||||
\ }]
|
|
||||||
|
|
||||||
" Coc
|
|
||||||
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
|
|
||||||
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
|
|
||||||
|
|
||||||
" Markdown
|
|
||||||
let g:vim_markdown_folding_disabled = 1
|
|
||||||
|
|
||||||
" Easymotion
|
|
||||||
let g:EasyMotion_do_mapping = 0
|
|
||||||
let g:EasyMotion_smartcase = 1
|
|
||||||
nmap f <Plug>(easymotion-s)
|
|
||||||
nmap FF <Plug>(easymotion-overwin-line)
|
|
||||||
nmap FD <Plug>(easymotion-overwin-f2)
|
|
||||||
nmap FS <Plug>(easymotion-bd-w)
|
|
||||||
|
|
||||||
" CtrlP
|
" CtrlP
|
||||||
let g:ctrlp_custom_ignore = '\v[\/]\.git$'
|
let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$'
|
||||||
imap <C-p> :CtrlP<CR>
|
|
||||||
nmap <C-p> :CtrlP<CR>
|
|
||||||
|
|
||||||
" Indent guides
|
|
||||||
let g:indent_guides_enable_on_vim_startup = 1
|
|
||||||
|
|
||||||
" Python
|
|
||||||
let g:python_highlight_all = 1
|
|
||||||
|
|
||||||
" Startify
|
" Startify
|
||||||
let g:startify_custom_header = [
|
let g:startify_custom_header = [
|
||||||
|
|
@ -164,47 +155,21 @@ let g:startify_lists = [
|
||||||
\ { 'type': 'files', 'header': [" Files"] },
|
\ { 'type': 'files', 'header': [" Files"] },
|
||||||
\ ]
|
\ ]
|
||||||
|
|
||||||
" Rainbow
|
" == Mapping
|
||||||
let g:rainbow_active = 1
|
|
||||||
|
|
||||||
" TagBar
|
|
||||||
imap <F9> :TagbarToggle<CR>
|
|
||||||
nmap <F9> :TagbarToggle<CR>
|
|
||||||
let g:tagbar_autoclose = 1
|
|
||||||
let g:tagbar_width = 18
|
|
||||||
let g:tagbar_left = 1
|
|
||||||
|
|
||||||
" Floaterm
|
|
||||||
let g:floaterm_title = "VimTermianl"
|
|
||||||
let g:floaterm_wintype = "floating"
|
|
||||||
let g:floaterm_position = "center"
|
|
||||||
let g:floaterm_height = 0.7
|
|
||||||
let g:floaterm_width = 0.6
|
|
||||||
let g:floaterm_autoclose = 2
|
|
||||||
nmap <A-t> :FloatermNew<CR>
|
|
||||||
|
|
||||||
" Go
|
|
||||||
let g:go_template_autocreate = 0
|
|
||||||
|
|
||||||
" == Maping
|
|
||||||
let mapleader=","
|
let mapleader=","
|
||||||
|
|
||||||
" Window(s)
|
" window(s)
|
||||||
nmap <C-h> :wincmd h<CR>
|
nmap <C-h> :wincmd h<CR>
|
||||||
nmap <C-j> :wincmd j<CR>
|
nmap <C-j> :wincmd j<CR>
|
||||||
nmap <C-k> :wincmd k<CR>
|
nmap <C-k> :wincmd k<CR>
|
||||||
nmap <C-l> :wincmd l<CR>
|
nmap <C-l> :wincmd l<CR>
|
||||||
nmap <A-q> :wincmd q<CR>
|
|
||||||
nmap <A-c> :wincmd n<CR>
|
|
||||||
nmap <A-z> :wincmd K<CR>
|
nmap <A-z> :wincmd K<CR>
|
||||||
nmap <A-x> :wincmd L<CR>
|
nmap <A-x> :wincmd L<CR>
|
||||||
nmap <A-h> :wincmd <<CR>
|
nmap <A-c> :wincmd n<CR>
|
||||||
nmap <A-l> :wincmd ><CR>
|
|
||||||
|
|
||||||
" Tab(s)
|
" Tab(s)
|
||||||
noremap <C-Tab> :tabnext<CR>
|
noremap <C-Tab> :tabnext<CR>
|
||||||
noremap <C-S-Tab> :tabprev<CR>
|
noremap <C-S-Tab> :tabprev<CR>
|
||||||
noremap <C-n> :tabnew<CR>
|
|
||||||
noremap <C-t> :tabnew<CR>
|
noremap <C-t> :tabnew<CR>
|
||||||
noremap <C-w> :tabclose<CR>
|
noremap <C-w> :tabclose<CR>
|
||||||
noremap <A-1> :tabn 1<CR>
|
noremap <A-1> :tabn 1<CR>
|
||||||
|
|
@ -220,3 +185,7 @@ noremap <A-9> :tabn 9<CR>
|
||||||
" Buffer(s)
|
" Buffer(s)
|
||||||
noremap <leader>p :bnext<CR>
|
noremap <leader>p :bnext<CR>
|
||||||
noremap <leader>o :bprev<CR>
|
noremap <leader>o :bprev<CR>
|
||||||
|
|
||||||
|
" Plugins
|
||||||
|
map <F9> :TagbarToggle<CR>
|
||||||
|
map <C-b> :NERDTreeToggle<CR>
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ font-0 = Iosevka Nerd Font:style=Medium:size=8;3
|
||||||
font-1 = FontAwesome5Free:style=Solid:size=7.5;2.5
|
font-1 = FontAwesome5Free:style=Solid:size=7.5;2.5
|
||||||
font-2 = Weather Icons:size=7;2
|
font-2 = Weather Icons:size=7;2
|
||||||
modules-left = i3 menu pacman-up window-name
|
modules-left = i3 menu pacman-up window-name
|
||||||
modules-right = keyboard pulseaudio backlight wifi-signal time date
|
modules-right = pulseaudio backlight wifi-signal keyboard time date
|
||||||
tray-position = right
|
tray-position = right
|
||||||
|
|
||||||
[module/i3]
|
[module/i3]
|
||||||
|
|
@ -103,7 +103,7 @@ interval = 60
|
||||||
[module/pacman-up]
|
[module/pacman-up]
|
||||||
type = custom/script
|
type = custom/script
|
||||||
exec = ~/.config/polybar/scripts/updates-pacman-aur.sh
|
exec = ~/.config/polybar/scripts/updates-pacman-aur.sh
|
||||||
interval = 60
|
interval = 15
|
||||||
|
|
||||||
[module/window-name]
|
[module/window-name]
|
||||||
type = internal/xwindow
|
type = internal/xwindow
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,23 @@
|
||||||
(custom-set-variables
|
(custom-set-variables
|
||||||
;; custom-set-variables was added by Custom.
|
'(package-selected-packages '(racket-mode markdown-mode zoutline)))
|
||||||
;; If you edit it by hand, you could mess it up, so be careful.
|
(custom-set-faces)
|
||||||
;; Your init file should contain only one such instance.
|
|
||||||
;; If there is more than one, they won't work right.
|
(use-package markdown-mode
|
||||||
'(package-selected-packages '(markdown-mode zoutline)))
|
:commands (markdown-mode gfm-mode)
|
||||||
(custom-set-faces
|
|
||||||
;; custom-set-faces was added by Custom.
|
:mode
|
||||||
;; If you edit it by hand, you could mess it up, so be careful.
|
("README.*\\.md\\'" . gfm-mode)
|
||||||
;; Your init file should contain only one such instance.
|
("\\.md\\'" . markdown-mode)
|
||||||
;; If there is more than one, they won't work right.
|
("\\.markdown\\'" . markdown-mode)
|
||||||
)
|
|
||||||
|
:hook
|
||||||
|
(markdown-mode . variable-pitch-mode)
|
||||||
|
(markdown-mode . yas-minor-mode)
|
||||||
|
(markdown-mode . smartparens-mode)
|
||||||
|
|
||||||
|
:custom
|
||||||
|
(markdown-command "pandoc")
|
||||||
|
(markdown-header-scaling t)
|
||||||
|
|
||||||
|
:config
|
||||||
|
(unbind-key "DEL" gfm-mode-map))
|
||||||
|
|
|
||||||
|
|
@ -3,3 +3,4 @@
|
||||||
(package! go-autocomplete)
|
(package! go-autocomplete)
|
||||||
(package! markdown-mode)
|
(package! markdown-mode)
|
||||||
(package! hy-mode)
|
(package! hy-mode)
|
||||||
|
(package! nim-mode)
|
||||||
|
|
|
||||||
25
script/dwmbar.sh
Executable file
25
script/dwmbar.sh
Executable file
|
|
@ -0,0 +1,25 @@
|
||||||
|
#!/bin/sh
|
||||||
|
getDate() {
|
||||||
|
local date="$(date +%d.%m.%Y)"
|
||||||
|
echo " ${date}"
|
||||||
|
}
|
||||||
|
getTime() {
|
||||||
|
local time="$(date +%H:%M)"
|
||||||
|
echo " ${time}"
|
||||||
|
}
|
||||||
|
getVolume() {
|
||||||
|
local volume="$(amixer get Master | tail -n1 | sed -r 's/.*\[(.*)%\].*/\1/')"
|
||||||
|
echo " ${volume}"
|
||||||
|
}
|
||||||
|
getKeyLayout() {
|
||||||
|
case "$(xkblayout)" in
|
||||||
|
"Eng") echo " us" ;;
|
||||||
|
"Rus") echo " ru" ;;
|
||||||
|
"Ukr") echo " ua" ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
xsetroot -name " $(getVolume) | $(getKeyLayout) | $(getTime) | $(getDate)"
|
||||||
|
sleep 0
|
||||||
|
done
|
||||||
7
zshrc
7
zshrc
|
|
@ -9,9 +9,9 @@ ZSH_THEME="cyan-simple" # Set theme
|
||||||
#HYPHEN_INSENSITIVE="true" # Case-sensitive completion must be off.
|
#HYPHEN_INSENSITIVE="true" # Case-sensitive completion must be off.
|
||||||
#DISABLE_AUTO_UPDATE="true" # Disable bi-weekly auto-update checks.
|
#DISABLE_AUTO_UPDATE="true" # Disable bi-weekly auto-update checks.
|
||||||
#DISABLE_UPDATE_PROMPT="true" # Automatically update without prompting.
|
#DISABLE_UPDATE_PROMPT="true" # Automatically update without prompting.
|
||||||
#DISABLE_MAGIC_FUNCTIONS="true" # If pasting URLs and other text is messed up.
|
#DISABLE_MAGIC_FUNCTIONS="true" # If pasting URL and other text is messed up.
|
||||||
#DISABLE_LS_COLORS="true" # Disable colors in ls.
|
#DISABLE_LS_COLORS="true" # Disable colors in ls.
|
||||||
#DISABLE_AUTO_TITLE="true" # Disable auto-setting terminal title.
|
DISABLE_AUTO_TITLE="true" # Disable auto-setting terminal title.
|
||||||
#ENABLE_CORRECTION="true" # Enable command auto-correction.
|
#ENABLE_CORRECTION="true" # Enable command auto-correction.
|
||||||
#COMPLETION_WAITING_DOTS="true" # Display red dots whilst waiting for completion.
|
#COMPLETION_WAITING_DOTS="true" # Display red dots whilst waiting for completion.
|
||||||
export UPDATE_ZSH_DAYS=7 # Change how often to auto-update.
|
export UPDATE_ZSH_DAYS=7 # Change how often to auto-update.
|
||||||
|
|
@ -49,6 +49,8 @@ alias vim="nvim"
|
||||||
alias tmux="tmux -2"
|
alias tmux="tmux -2"
|
||||||
alias ipython="ipython --no-banner"
|
alias ipython="ipython --no-banner"
|
||||||
alias icat="kitty +kitten icat"
|
alias icat="kitty +kitten icat"
|
||||||
|
alias ccat="sh -c cat"
|
||||||
|
alias cat="bat"
|
||||||
eval $(thefuck --alias)
|
eval $(thefuck --alias)
|
||||||
|
|
||||||
# Exit
|
# Exit
|
||||||
|
|
@ -71,4 +73,3 @@ alias doomupgrade="$HOME/.emacs.d/bin/doom upgrade"
|
||||||
alias doomdoctor="$HOME/.emacs.d/bin/doom doctor"
|
alias doomdoctor="$HOME/.emacs.d/bin/doom doctor"
|
||||||
alias doom="$HOME/.emacs.d/bin/doom"
|
alias doom="$HOME/.emacs.d/bin/doom"
|
||||||
|
|
||||||
eval $(thefuck --alias)
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue