diff --git a/config/dwm/README.md b/config/dwm/README.md new file mode 100644 index 0000000..8b09352 --- /dev/null +++ b/config/dwm/README.md @@ -0,0 +1,13 @@ +# DWM + +![Screenhot](screen.png) +------------------------ + + +### 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 +~~~~ diff --git a/config/dwm/autostart.sh b/config/dwm/autostart.sh new file mode 100755 index 0000000..4ee7e08 --- /dev/null +++ b/config/dwm/autostart.sh @@ -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 & diff --git a/config/dwm/config.def.h b/config/dwm/config.def.h new file mode 100644 index 0000000..eda827f --- /dev/null +++ b/config/dwm/config.def.h @@ -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} }, +}; diff --git a/config/dwm/cool-autostart.diff b/config/dwm/cool-autostart.diff new file mode 100644 index 0000000..84a93ea --- /dev/null +++ b/config/dwm/cool-autostart.diff @@ -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) + diff --git a/config/dwm/dwm.desktop b/config/dwm/dwm.desktop new file mode 100644 index 0000000..b0c3354 --- /dev/null +++ b/config/dwm/dwm.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=Dwm +Comment=Dynamic window manager +Exec=dwm +Icon=dwm +Type=XSession diff --git a/config/dwm/screen.png b/config/dwm/screen.png new file mode 100644 index 0000000..1117e41 Binary files /dev/null and b/config/dwm/screen.png differ diff --git a/config/i3/config b/config/i3/config index 377c803..2cb7581 100644 --- a/config/i3/config +++ b/config/i3/config @@ -19,6 +19,7 @@ hide_edge_borders smart set $terminal alacritty set $browser firefox set $filemanager thunar +set $guieditor emacs ############ Autostart ############ exec --no-startup-id exec picom --experimental-backends -b @@ -41,14 +42,17 @@ bindsym --release $mod+Shift+q exec xkill # Restart i3wm bindsym $mod+Control+r restart +# Reload i3wm +bindsym $mod+Shift+r reload + # Floating layout bindsym $mod+Tab floating toggle # Tab layout -bindsym $mod+w layout tabbed +bindsym $mod+Shift+w layout tabbed # Split layout -bindsym $mod+e layout toggle split +bindsym $mod+Shift+e layout toggle split # Splits 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+F2 exec $browser bindsym $mod+f exec $filemanager +bindsym $mod+d exec $guieditor # Sceenshot bindsym --release Print exec "scrot -s /home/${USER}/$(date +%Y-%m-%d-%H-%M-%S).png" diff --git a/config/nvim/init.vim b/config/nvim/init.vim index 7b11334..3378dfc 100644 --- a/config/nvim/init.vim +++ b/config/nvim/init.vim @@ -1,55 +1,47 @@ -filetype plugin on call plug#begin('~/.vim/plugged') - 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 'vimwiki/vimwiki', {'on': 'VimwikiIndex'} " Notes manager in (n)vim - - " Color scheme - Plug 'Smirnov-O/nten16.vim' + Plug 'nathanaelkane/vim-indent-guides' " Displaying indent levels + Plug 'itchyny/lightline.vim' " Status line + Plug 'Smirnov-O/nten16.vim' " Color scheme + Plug 'frazrepo/vim-rainbow' " Rainbow brackets + Plug 'mhinz/vim-startify' " Start page + Plug 'ap/vim-css-color' " CSS color preview + Plug 'airblade/vim-gitgutter' " Git indicator + Plug 'preservim/nerdcommenter' " Code commenter " Project/file navigation - Plug 'scrooloose/nerdtree', {'on': 'NERDTreeToggle'} - Plug 'ryanoasis/vim-devicons', {'on': 'NERDTreeToggle'} - Plug 'preservim/tagbar', {'on': 'TagbarToggle'} - Plug 'kien/ctrlp.vim', {'on': 'CtrlP'} - Plug 'easymotion/vim-easymotion' + Plug 'scrooloose/nerdtree', {'on': 'NERDTreeToggle'} + Plug 'preservim/tagbar', {'on': 'TagbarToggle'} + Plug 'kien/ctrlp.vim', {'on': 'CtrlP'} - " Completion + " Completion & snippets + Plug 'ycm-core/YouCompleteMe' Plug 'jiangmiao/auto-pairs' - Plug 'neoclide/coc.nvim', {'branch': 'release'} + Plug 'SirVer/ultisnips' - " Language support - Plug 'iamcco/markdown-preview.nvim', {'for': 'markdown'} - Plug 'dhruvasagar/vim-table-mode', {'for': 'markdown'} + " Language syntax 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 'kovetskiy/sxhkd-vim', {'for': 'sxhkd'} - Plug 'mattn/emmet-vim', {'on': 'Emmet'} - Plug 'cakebaker/scss-syntax.vim', {'for': 'scss'} - Plug 'PotatoesMaster/i3-vim-syntax', {'for': 'i3'} + Plug 'alaviss/nim.nvim', {'for': 'nim'} 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() -" Colors +" Theme set termguicolors -set background=dark -colo nten16 +colorscheme nten16 set t_Co=256 -" Syntax & line numbers +" Syntax & number line syntax on -set number -set relativenumber +set nu rnu -" Vim status line +" Status line set noshowmode set ruler -set showmode set showcmd " Mouse @@ -57,20 +49,20 @@ set mouse=a set mousehide set cursorline -" File encoding +" Encoding set encoding=utf-8 -set fileencodings=utf8 +set fileencodings=utf-8 " Line wrap set nowrap set nolinebreak -" Backup files & history +" Backup file & history set nobackup set noswapfile set history=100 -" Auto reload file +" Reload file set autoread " Tabs @@ -85,7 +77,7 @@ set incsearch set ignorecase set smartcase -" Buffer +" Buffer(s) set hidden set smartindent @@ -96,61 +88,60 @@ set spelllang=en_us " Disable sound set visualbell t_vb= -" == Plugins configure - -" Lightline +" == Plugins configuration let g:lightline = { \ 'colorscheme': 'nten16', \ 'active': { -\ 'left': [ [ 'mode', 'paste' ], -\ [ 'readonly', 'modified' ] ], -\ 'right': [ [ 'lineinfo' ], -\ [ 'percent' ], -\ [ 'filename', 'fileencoding', 'filetype' ] ] +\ 'left': [ [ 'mode', 'paste' ], +\ [ 'readonly', 'modified' ] ], +\ 'right': [ [ 'lineinfo' ], +\ [ 'percent' ], +\ [ 'filename', 'filetype' ] ] \ }, } -" Nerdtree -let NERDTreeIgnore = ['__pycache__', '.DS_Store', '.git'] -let g:NERDTreeWinPos = "right" -let g:NERDTreeWinSize = 28 -let NERDTreeMinimalUI = 1 -let NERDTreeShowLineNumbers = 1 -let NERDTreeShowHidden = 0 -map :NERDTreeToggle - -" VimWiki -let g:vimwiki_markdown_link_ext = 0 -let g:vimwiki_list = [{ -\ 'path': '~/Documents/Notes', -\ 'syntax': 'markdown', -\ 'ext': '.md', -\ }] - -" Coc -inoremap pumvisible() ? "\" : "\" -inoremap pumvisible() ? "\" : "\" - " Markdown let g:vim_markdown_folding_disabled = 1 +let g:markdown_fenced_languages = ['go', 'python', 'bash', 'sh=bash'] +let g:ficus_dir = "~/Documents/Notes" -" Easymotion -let g:EasyMotion_do_mapping = 0 -let g:EasyMotion_smartcase = 1 -nmap f (easymotion-s) -nmap FF (easymotion-overwin-line) -nmap FD (easymotion-overwin-f2) -nmap FS (easymotion-bd-w) - -" CtrlP -let g:ctrlp_custom_ignore = '\v[\/]\.git$' -imap :CtrlP -nmap :CtrlP - -" Indent guides -let g:indent_guides_enable_on_vim_startup = 1 +" Rainbow +let g:rainbow_active = 1 " Python -let g:python_highlight_all = 1 +let g:python_higlight_all = 1 + +" YouCompleteMe +let g:ycm_key_list_previous_completion=[''] + +" UltiSnipts +let g:UltiSnipsExpandTrigger="" +let g:UltiSnipsListSnippets="" +"let g:UltiSnipsJumpForwardTrigger="" +"let g:UltiSnipsJumpBackwardTrigger="" + + +" 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 +let NERDTreeIgnore = ['__pycache__', '.DS_Store', '.git'] +let g:NERDTreeWinPos = "right" +let g:NERDTreeWinSize = 28 +let NERDTreeMinimalUI = 1 + +" CtrlP +let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$' " Startify let g:startify_custom_header = [ @@ -164,47 +155,21 @@ let g:startify_lists = [ \ { 'type': 'files', 'header': ["  Files"] }, \ ] -" Rainbow -let g:rainbow_active = 1 - -" TagBar -imap :TagbarToggle -nmap :TagbarToggle -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 :FloatermNew - -" Go -let g:go_template_autocreate = 0 - -" == Maping +" == Mapping let mapleader="," -" Window(s) +" window(s) nmap :wincmd h nmap :wincmd j nmap :wincmd k nmap :wincmd l -nmap :wincmd q -nmap :wincmd n nmap :wincmd K nmap :wincmd L -nmap :wincmd < -nmap :wincmd > +nmap :wincmd n " Tab(s) noremap :tabnext noremap :tabprev -noremap :tabnew noremap :tabnew noremap :tabclose noremap :tabn 1 @@ -220,3 +185,7 @@ noremap :tabn 9 " Buffer(s) noremap p :bnext noremap o :bprev + +" Plugins +map :TagbarToggle +map :NERDTreeToggle diff --git a/config/polybar/config b/config/polybar/config index a26071f..32a4968 100644 --- a/config/polybar/config +++ b/config/polybar/config @@ -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-2 = Weather Icons:size=7;2 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 [module/i3] @@ -103,7 +103,7 @@ interval = 60 [module/pacman-up] type = custom/script exec = ~/.config/polybar/scripts/updates-pacman-aur.sh -interval = 60 +interval = 15 [module/window-name] type = internal/xwindow diff --git a/doom.d/custom.el b/doom.d/custom.el index 2bef680..e418052 100644 --- a/doom.d/custom.el +++ b/doom.d/custom.el @@ -1,12 +1,23 @@ (custom-set-variables - ;; custom-set-variables was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - '(package-selected-packages '(markdown-mode zoutline))) -(custom-set-faces - ;; custom-set-faces was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - ) + '(package-selected-packages '(racket-mode markdown-mode zoutline))) +(custom-set-faces) + +(use-package markdown-mode + :commands (markdown-mode gfm-mode) + + :mode + ("README.*\\.md\\'" . gfm-mode) + ("\\.md\\'" . markdown-mode) + ("\\.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)) diff --git a/doom.d/packages.el b/doom.d/packages.el index 6b7e218..ec334c4 100644 --- a/doom.d/packages.el +++ b/doom.d/packages.el @@ -3,3 +3,4 @@ (package! go-autocomplete) (package! markdown-mode) (package! hy-mode) +(package! nim-mode) diff --git a/script/dwmbar.sh b/script/dwmbar.sh new file mode 100755 index 0000000..a951d8c --- /dev/null +++ b/script/dwmbar.sh @@ -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 diff --git a/zshrc b/zshrc index 7e540bd..c6e6c4a 100644 --- a/zshrc +++ b/zshrc @@ -9,9 +9,9 @@ ZSH_THEME="cyan-simple" # Set theme #HYPHEN_INSENSITIVE="true" # Case-sensitive completion must be off. #DISABLE_AUTO_UPDATE="true" # Disable bi-weekly auto-update checks. #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_AUTO_TITLE="true" # Disable auto-setting terminal title. +DISABLE_AUTO_TITLE="true" # Disable auto-setting terminal title. #ENABLE_CORRECTION="true" # Enable command auto-correction. #COMPLETION_WAITING_DOTS="true" # Display red dots whilst waiting for completion. export UPDATE_ZSH_DAYS=7 # Change how often to auto-update. @@ -49,6 +49,8 @@ alias vim="nvim" alias tmux="tmux -2" alias ipython="ipython --no-banner" alias icat="kitty +kitten icat" +alias ccat="sh -c cat" +alias cat="bat" eval $(thefuck --alias) # Exit @@ -71,4 +73,3 @@ alias doomupgrade="$HOME/.emacs.d/bin/doom upgrade" alias doomdoctor="$HOME/.emacs.d/bin/doom doctor" alias doom="$HOME/.emacs.d/bin/doom" -eval $(thefuck --alias)