14 files changed,
236 insertions(+),
115 deletions(-)
Author:
Smirnov Olexandr
ss2316544@gmail.com
Committed at:
2021-02-20 21:29:02 +0200
Parent:
1f5249e
M
README.md
··· 5 5 6 6 #### System configuration 7 7 - `OS` Arch 8 -- `WM` bspwm, qtile 8 +- `WM` bspwm 9 9 - `Terminal` alacritty 10 10 - `Shell` zsh 11 11 - `Editor` nvim, vscode 12 12 - `File manager` ranger 13 -- `Browser` firefox, 13 +- `Browser` firefox 14 14 - `Font` Jatbrains Mono 15 15 - `Icon font` FontAwesome 16 16 - `Launcher` rofi
M
bin/catfetch
··· 15 15 manager=$(which apt pacman yay apk xbps-query 2>/dev/null) 16 16 manager=${manager##*/} 17 17 case "$manager" in 18 - apt) packages="$(dpkg-query -f '${binary:Package}\n' -W | wc -l)";; 19 - pacman) packages="$(pacman -Q | wc -l)";; 20 - yay) packages="$(yay -Q | wc -l)";; 21 - apk) packages="$(apk list --installed | wc -l)";; 22 - xbps-query) packages="$(xbps-query -l | wc -l)";; 18 + apt) packages="$(dpkg-query -f '${binary:Package}\n' -W | wc -l)";; 19 + pacman) packages="$(pacman -Q | wc -l)";; 20 + yay) packages="$(yay -Q | wc -l)";; 21 + apk) packages="$(apk list --installed | wc -l)";; 22 + xbps-query) packages="$(xbps-query -l | wc -l)";; 23 23 esac 24 24 25 25
M
config/bspwm/bspwmrc
··· 2 2 # Smirnov-O <ss2316544@gmail.com> 3 3 # BSPWM config file 4 4 5 -## == Function 5 +###== Function 6 6 Run() { 7 7 if ! pgrep $1 8 8 then $@& fi 9 9 } 10 10 11 -## == Autostart 11 +###== Autostart 12 12 Run setxkbmap "us,ua" ",winkeys" "grp:alt_shift_toggle" -option "ctrl:nocaps" & 13 13 Run feh --randomize --bg-scale ~/Pictures/wallp & 14 -Run sxhkd -c ./.config/bspwm/sxhkd & 14 +Run sxhkd -c ~/.config/bspwm/sxhkd & 15 15 ~/.config/bspwm/bar.sh & 16 16 Run ~/.script/autolock & 17 17 Run lxsession & 18 18 Run picom -b & 19 19 20 -## == BSPWM 20 +###== BSPWM 21 21 # Workspaces 22 22 bspc monitor -d 1 2 3 4 5 6 7 8 9 23 23 24 24 # General 25 25 bspc config border_width 2 26 -bspc config window_gap 8 26 +bspc config window_gap 4 27 27 bspc config split_ratio 0.50 28 28 bspc config borderless_monocle true 29 29 bspc config gapless_monocle true ··· 38 38 bspc config urgent_border_color "#FF6C6B" 39 39 40 40 # Rules 41 -bspc rule -a Alacritty desktop='^1' focus=on follow=on 42 -bspc rule -a kitty desktop='^1' focus=on follow=on 43 -bspc rule -a firefox desktop='^2' focus=on follow=off 44 -bspc rule -a Code desktop='^3' focus=on follow=off 45 -bspc rule -a Sublime_text desktop='^3' focus=on follow=on 46 -bspc rule -a '*:nvim' desktop='^3' focus=on follow=on 47 -bspc rule -a '*:ranger' desktop='^4' focus=on follow=off 48 -bspc rule -a Thunar desktop='^4' focus=on follow=on 49 -bspc rule -a Joplin desktop='^5' focus=on follow=off 50 -bspc rule -a discord descord='^6' focus=off follow=off 51 -bspc rule -a telegram-desktop descord='^6' focus=off follow=off 52 -bspc rule -a Spotify descord='^9' focus=on follow=on 53 -bspc rule -a google-tasks-desktop state=floating 41 +bspc rule -a Alacritty desktop='^1' focus=on follow=on 42 +bspc rule -a kitty desktop='^1' focus=on follow=on 43 +bspc rule -a firefox desktop='^2' focus=on follow=on 44 +bspc rule -a Google-chrome desktop='^2' focus=on follow=on 45 +bspc rule -a Code desktop='^3' focus=on follow=on 46 +bspc rule -a '*:nvim' desktop='^3' focus=on follow=on 47 +bspc rule -a '*:ranger' desktop='^4' focus=on follow=off 48 +bspc rule -a Thunar desktop='^4' focus=on follow=off 49 +bspc rule -a Joplin desktop='^5' focus=on follow=off 50 +bspc rule -a discord desktop='^6' focus=on follow=off 51 +bspc rule -a telegram-desktop desktop='^6' focus=off follow=off 52 +bspc rule -a KeePassXC desktop='^7' focus=on follow=off 53 +bspc rule -a Spotify desktop='^9' focus=on follow=on 54 +bspc rule -a google-tasks-desktop state=floating
M
config/bspwm/polybar
··· 1 +# vim: ft=dosini 2 + 1 3 [settings] 2 4 enable-ipc = true 3 5 format-padding = 1 ··· 19 21 wm-restack = bspwm 20 22 font-0 = Iosevka Nerd Font:style=Medium:size=8;3 21 23 font-1 = FontAwesome5Free:style=Solid:size=7.5;2.5 22 -modules-left = windowname 23 -modules-center = bspwm 24 -modules-right = pulseaudio archupd wifi-signal weather memory cpu keyboard time date 24 +modules-left = bspwm 25 +modules-center = windowname 26 +modules-right = keyboard pulseaudio weather wifi-signal archupd time 25 27 tray-position = right 26 28 tray-padding = 0 27 29 ··· 47 49 [module/pulseaudio] 48 50 type = internal/pulseaudio 49 51 interval = 2 50 -format-volume = <ramp-volume> <label-volume> 52 +format-volume = <ramp-volume> <label-volume> 51 53 label-volume = %percentage%% 52 54 label-volume-foreground = ${root.foreground} 53 55 label-muted = ··· 62 64 type = custom/script 63 65 exec = ~/.config/polybar/scripts/updates-pacman-aur.sh 64 66 interval = 60 67 + 68 +[module/wifi-signal] 69 +type = custom/script 70 +label = %output:%% 71 +exec = ~/.config/polybar/scripts/wifi-signal.sh 72 +interval = 3 65 73 66 74 [module/keyboard] 67 75 type = internal/xkeyboard
M
config/bspwm/sxhkd
··· 1 1 # Smirnov-O <ss2316544@gmail.com> 2 2 # BSPWM/SXKBD config file 3 3 4 -## == USER keys 4 +## == USER keys 5 5 super + {_,shift} Return 6 - {alacritty, \ 7 - rofi -show drun } 6 + {kitty, \ 7 + rofi -show drun -theme ntenV2} 8 8 9 -super + shift + {w,f,e,c,q} 10 - {firefox, \ 11 - alacritty --class=ranger -e ranger, \ 12 - alacritty --class=nvim -e nvim, \ 13 - code, \ 14 - xkill } 9 +super + shift + {w,f,e,c,v,q} 10 + {google-chrome-stable, \ 11 + alacritty --class=ranger -e ranger, \ 12 + alacritty --class=nvim -e nvim, \ 13 + code, \ 14 + veracrypt, \ 15 + xkill } 15 16 16 17 super + shift + z 17 - betterlockscreen --off 180 -t "Computer is lokerd" -l 18 + betterlockscreen --off 180 -t "Computer is locked" -l 18 19 19 20 super + {equal, minus, shift+minus} 20 21 amixer sset Master {2%+,2%-,toggle} ··· 26 27 27 28 ### == BSPWM keys 28 29 super + q 29 - bspc node -{c,k} 30 + bspc node -c 30 31 31 32 super + control + r 32 - bspc wm -r && pkill -USR1 -x sxhkd 33 + bspc wm -r \ 34 + pkill -USR1 -x sxhkd 33 35 34 36 ### == BSPWM windows 35 37 ## Resize window ··· 43 45 # Preselect the direction 44 46 super + alt + {h,j,k,l} 45 47 bspc node -p {west,south,north,east} 48 + 46 49 super + alt + {1-9} 47 50 bspc node -o 0.{1-9} 51 + 48 52 super + alt + {space,0} 49 53 bspc node -p cancel 50 54 ··· 52 56 super + {_,shift + }{1-9} 53 57 bspc {desktop -f,node -d} focused:'^{1-9}' 54 58 55 -## == BSPWM windwo layouts 56 -super + ctrl + {t, s, f} 57 - bspc node -t {tiled,floating,fullscreen} 59 +## == BSPWM window layouts 60 +super + shift + {Tab, F11} 61 + bspc node -t {floating,fullscreen} 58 62 59 -# Change windows layout 60 -super + ctrl + {m,x,y,z} 61 - bspc node -g {marked,locked,sticky,private} 63 +super + Tab 64 + bspc node -t tiled 65 + 66 +# vim: ft=sxhkdrc
A
config/fish/config.fish
··· 1 +set -U fish_user_paths $HOME/bin $HOME/.yarn/bin $HOME/.applications $fish_user_paths 2 +set fish_greeting 3 + 4 +## Variables 5 +set EDITOR "nvim" 6 +set VISUAL "nvim" 7 + 8 + 9 +## Key bindings 10 +function fish_user_key_bindings 11 + fish_default_key_bindings 12 + # fish_vi_key_bindings 13 +end 14 + 15 + 16 +## Colors 17 +set fish_color_normal brwhite 18 +set fish_color_autosuggestion '#DDDDDD' 19 +set fish_color_command brcyan 20 +set fish_color_error '#ff6c6b' 21 +set fish_color_param brwhite 22 + 23 + 24 +## Functions 25 +function backup --argument filename 26 + cp $filename $filename.bak 27 +end 28 + 29 +function targz-this-folder --argument filename 30 + tar -czf $filename.tar.gz . 31 +end 32 + 33 +function zip-this-folder --argument filename 34 + zip -r $filename.zip . 35 +end 36 + 37 +function set-wallpaper --argument filename 38 + feh --bg-scale $filename 39 +end 40 + 41 +function set-random-wallpaper 42 + feh --randomize --bg-scale ~/Pictures/wallp 43 +end 44 + 45 + 46 +## Plugins 47 +fundle plugin 'matchai/spacefish' # Prompt theme 48 +fundle plugin 'justinmayer/virtualfish' # Python venv support 49 +fundle plugin 'FabioAntunes/fish-nvm' # NVM status 50 +fundle plugin 'edc/bass' # Required for fish-nvm 51 +fundle plugin 'jorgebucaran/autopair.fish' # Brackets closer 52 +fundle init 53 + 54 + 55 +## Aliases 56 +alias cls="clear" 57 +alias mkdir="mkdir -p" 58 +alias cp="cp -r" 59 +alias du="du -sh" 60 +alias df="df -h" 61 +alias neovim='nvim' 62 +alias vim="nvim" 63 +alias vi="vim" 64 +alias tmux="tmux -2" 65 +alias :q="exit" 66 +alias q="exit" 67 +alias ..="cd .." 68 +alias ...="cd ../.."
M
config/nvim/init.vim
··· 3 3 Plug 'itchyny/lightline.vim' 4 4 Plug 'jiangmiao/auto-pairs' 5 5 Plug 'maxboisvert/vim-simple-complete' 6 - Plug 'pangloss/vim-javascript' 7 - Plug 'airblade/vim-gitgutter' 8 - Plug 'dense-analysis/ale' 9 - "Plug 'editorconfig/editorconfig-vim' 6 + Plug 'sheerun/vim-polyglot' 10 7 call plug#end() 11 8 12 9 "== General ··· 29 26 set autoindent 30 27 31 28 " Status line 32 -"set laststatus=0 33 29 set noshowmode showcmd 34 30 set ruler 35 31 ··· 51 47 set ignorecase 52 48 set smartcase 53 49 50 +" Enable mode line 51 +set modeline 52 + 53 +" Auto reload file 54 +set autoread 55 + 54 56 " Buffer 55 57 set hidden 56 58 ··· 66 68 67 69 " == Settings for specific files 68 70 autocmd BufWritePre *.py normal m`:%s/\s\+$//e `` 69 -autocmd FileType python,go setlocal expandtab shiftwidth=4 tabstop=4 70 -autocmd FileType html,css,javascript setlocal expandtab shiftwidth=2 tabstop=2 71 +autocmd FileType python,go,json setlocal expandtab shiftwidth=4 tabstop=4 72 +autocmd FileType html,css,javascript,yaml setlocal expandtab shiftwidth=2 tabstop=2 71 73 72 74 73 75 "== Aliases ··· 75 77 command! Q :q 76 78 command! Wq :wq 77 79 command! WQ :wq 78 -command! Prettier :!prettier % 80 +command! Wiki :e ~/doc/index.md 81 +command! Prettier :!prettier --write % 79 82 command! ESlint :!eslint % 83 +command! Flake8 :!flake8 % 84 +command! Black :!black % 85 +command! AutoPep8 :!autopep8 --in-place % 80 86 81 87 82 88 "== Plug in configuration ··· 90 96 \ [ 'filename', 'filetype' ] ] 91 97 \ }, } 92 98 93 -let g:ale_disable_lsp = 1 94 -let g:ale_sign_error = '> ' 95 -let g:ale_sign_warning = '- ' 96 -let g:ale_echo_msg_format = '%severity%: %s' 97 -let g:ale_linter = { 98 -\ 'javascript': 'eslint', 99 -\ 'python': 'flake8' 100 -\ } 101 -let g:ale_fix_on_save = 1 102 -let g:ale_fixers = { 103 -\ 'javascript': 'prettier', 104 -\ 'python': 'black' 105 -\ } 106 - 107 99 108 100 "== Mapping 109 101 let mapleader="'" 102 + 103 +noremap <C-s> :w<CR> 110 104 111 105 " Window 112 106 noremap <C-h> :wincmd h<CR> 113 107 noremap <C-j> :wincmd j<CR> 114 108 noremap <C-k> :wincmd k<CR> 115 109 noremap <C-l> :wincmd l<CR> 116 -noremap <A-z> :wincmd K<CR> 117 -noremap <A-x> :wincmd L<CR> 118 -noremap <A-c> :wincmd n<CR> 110 + 111 +" Split 112 +noremap spv :vsp<CR> 113 +noremap sph :sp<CR> 114 +noremap spk :wincmd K<CR> 115 +noremap spl :wincmd L<CR> 116 +noremap spn :wincmd n<CR> 119 117 120 118 " Tab 121 -noremap <C-t> :tabnew<CR> 122 -noremap <C-w> :tabclose<CR> 119 +noremap tn :tabnew<CR> 120 +noremap tc :tabclose<CR> 123 121 noremap <A-1> :tabn 1<CR> 124 122 noremap <A-2> :tabn 2<CR> 125 123 noremap <A-3> :tabn 3<CR> ··· 131 129 noremap <A-9> :tabn 9<CR> 132 130 133 131 " Buffer 134 -noremap <C-b> :bnext<CR> 135 -noremap <C-p> :bprev<CR> 132 +noremap Bn :bnext<CR> 133 +noremap Bp :bprev<CR> 136 134 137 135 " Work with system clipboard 138 -noremap <leader>c "*y<CR> 139 -noremap <leader>v "+p<CR> 136 +noremap <leader>y "*yy<CR> 137 +noremap <leader>p "+p<CR>
A
config/rofi/themes/ntenV2.rasi
··· 1 +configuration { 2 + width: 25; 3 + lines: 13; 4 + columns: 2; 5 + font: "RobotoCondensed 12"; 6 + bw: 2; 7 + location: 1; 8 + padding: 3; 9 + yoffset: 27; 10 + xoffset: 3; 11 + show-icons: true; 12 + icon-theme: "Paper"; 13 + drun-display-format: "{name}"; 14 + case-sensitive: false; 15 + cycle: false; 16 + auto-select: false; 17 + line-padding: 6; 18 + separator-style: "solid"; 19 + hide-scrollbar: true; 20 + color-normal: "#262A2B,#abb2bf,#262A2B,#008DCD,#262A2B"; 21 + color-window: "#262A2B,#1F2324,#58676C"; 22 +}
M
tmux.conf
··· 15 15 set -g mouse on 16 16 setw -g mouse on 17 17 18 +## 256 color support 19 +set -g default-terminal "screen-256color" 20 +set-option -sa terminal-overrides ",*:Tc" 21 + 18 22 ###== Keybindongs 19 23 20 24 ## HOME/END key support 25 +bind -n End send-key C-e 26 +bind -n Home send-key C-a 21 27 bind-key -n Home send Escape "OH" 22 28 bind-key -n End send Escape "OF" 23 -bind -n End send-key C-e 24 -bind -n Home send-key C-a 29 + 25 30 26 31 ## Reload config 27 32 bind r source-file ~/.tmux.conf \; display 'Reloaded tmux config'
M
vscode/settings.json
··· 1 1 { 2 2 // Apperence 3 - "workbench.colorTheme": "One Dark Pro", 4 - "workbench.iconTheme": "vscode-icons", 3 + "workbench.colorTheme": "Ayu Dark Bordered", 4 + "workbench.iconTheme": "ayu", 5 5 "editor.fontFamily": "'Jetbrain Mono', 'FontAwesome5Free', 'Droid Sans Mono', 'monospace', 'Droid Sans Fallback'", 6 6 "editor.wordWrap": "off", 7 7 "editor.fontSize": 14, ··· 10 10 "editor.tabCompletion": "on", 11 11 "editor.tabSize": 4, 12 12 "editor.formatOnSave": false, 13 + "files.autoSave": "afterDelay", 14 + "workbench.startupEditor": "newUntitledFile", 13 15 14 16 // Vim 15 17 "vim.easymotion": true, 18 + "vim.surround": true, 16 19 "vim.useSystemClipboard": true, 17 20 "vim.insertModeKeyBindings": [ 18 21 {"before": ["j", "j"], 19 - "after" : ["<Esc>"]}], 22 + "after" : ["<Esc>"]}, 23 + {"before": ["Ctrl", "Shift", "e"], 24 + "commands": ["workbench.view.explorer"]}, 25 + ], 20 26 "vim.normalModeKeyBindings": [ 21 27 {"before": ["f"], 22 28 "after" : ["leader","leader","s"]} ··· 32 38 "**/venv": true, 33 39 "**/env": true, 34 40 "**/.git": true, 35 - "**/.svn": true, 36 - "**/.hg": true, 37 41 "**/CVS": true, 38 42 "**/.DS_Store": true, 39 43 "**/node_modules": true ··· 42 46 // Minimap 43 47 "editor.minimap.side": "left", 44 48 "editor.minimap.size": "fit", 49 + "editor.minimap.enabled": false, 45 50 46 51 // Sidebar 47 52 "workbench.sideBar.location": "right", 48 53 "workbench.activityBar.visible": true, 54 + 49 55 // File menu 50 56 "window.menuBarVisibility": "hidden", 51 57 ··· 54 60 "python.linting.flake8Enabled": true, 55 61 "python.linting.enabled": true, 56 62 "python.formatting.provider": "autopep8", 63 + // JS 64 + "javascript.updateImportsOnFileMove.enabled": "never", 57 65 58 66 // Emmet 59 67 "emmet.includeLanguages": { ··· 78 86 "editor.formatOnSave": true, 79 87 "editor.formatOnPaste": true 80 88 }, 89 + "[javascriptreact]": { 90 + "editor.formatOnSave": true, 91 + "editor.formatOnPaste": true, 92 + "editor.tabSize": 2, 93 + "editor.defaultFormatter": "esbenp.prettier-vscode", 94 + }, 81 95 "[markdown]": { 82 96 "editor.wordWrap": "on", 83 97 "editor.quickSuggestions": false ··· 88 102 }, 89 103 "[css]": { 90 104 "editor.tabSize": 2, 91 - "editor.suggest.insertMode": "replace" 105 + "editor.suggest.insertMode": "replace", 106 + "editor.formatOnSave": true, 107 + "editor.formatOnPaste": true, 108 + "editor.defaultFormatter": "esbenp.prettier-vscode", 92 109 }, 93 110 "[scss]": { 94 111 "editor.tabSize": 2, 95 - "editor.suggest.insertMode": "replace" 96 - }, 97 - "[javascriptreact]": { 98 - "editor.defaultFormatter": "esbenp.prettier-vscode" 112 + "editor.suggest.insertMode": "replace", 113 + "editor.formatOnSave": true, 114 + "editor.formatOnPaste": true, 115 + "editor.defaultFormatter": "esbenp.prettier-vscode", 99 116 }, 100 - "workbench.startupEditor": "newUntitledFile", 101 -} 117 + "git.autofetch": true, 118 + 119 +}
M
zshrc
··· 1 -export ZSH="$HOME/.oh-my-zsh" 2 -export PATH="$HOME/.yarn/bin:$HOME/bin:$HOME/.local/bin:$GOPATH/bin:$PATH" 3 -source ~/.profile 1 +export PATH="$HOME/.yarn/bin:$HOME/bin:$HOME/.application:$PATH" 4 2 5 3 ### Oh my zsh ### 6 -ZSH_THEME="nten" # Set theme. 4 +export ZSH="$HOME/.oh-my-zsh" 5 +ZSH_THEME="simple" # Set theme. 7 6 #CASE_SENSITIVE="true" # Use case-sensitive completion. 8 7 #HYPHEN_INSENSITIVE="true" # Case-sensitive completion must be off. 9 8 #DISABLE_AUTO_UPDATE="true" # Disable bi-weekly auto-update checks. ··· 12 11 #DISABLE_LS_COLORS="true" # Disable colors in ls. 13 12 DISABLE_AUTO_TITLE="true" # Disable auto-setting terminal title. 14 13 #ENABLE_CORRECTION="true" # Enable command auto-correction. 15 -COMPLETION_WAITING_DOTS="true" # Display red dots whilst waiting for completion. 14 +#COMPLETION_WAITING_DOTS="true" # Display red dots whilst waiting for completion. 16 15 export UPDATE_ZSH_DAYS=7 # Change how often to auto-update. 17 -export LANG=en_US.UTF-8 # Set locale 18 16 19 -plugins=(python pip node npm yarn pass sudo git) 17 +plugins=(yarn) 20 18 source $ZSH/oh-my-zsh.sh 21 19 22 -### Variables ### 20 +### Variables 23 21 export EDITOR="nvim" 24 22 export VISUAL="nvim" 25 23 26 -### Aliases ### 24 +### Functions 25 +bgcolor() { 26 + convert -size 1x1 xc:"$1" /tmp/bgc.png 27 + feh --bg-tile /tmp/bgc.png} 28 +backup() { 29 + cp $1 $1.bak} 30 + 31 +### Aliases 27 32 alias cls="clear" 28 33 alias mkdir="mkdir -p" 29 34 alias cp="cp -r" 30 35 alias du="du -sh" 31 36 alias df="df -h" 32 - 33 -# Program 34 37 alias vim="nvim" 35 -alias vi="nvim" 38 +alias vi="vim" 36 39 alias tmux="tmux -2" 37 - 38 -# Exit 39 40 alias :q="exit" 40 -alias q="exit" 41 - 42 -# Navigation 43 41 alias ..="cd .." 44 42 alias ...="cd ../.." 45 -alias .3="cd ../../.." 46 -alias .4="cd ../../../.." 47 -alias .5="cd ../../../../.." 48 -alias .6="cd ../../../../../.."