Clean nivm cfg && update qtile, git, zsh, bspwm

This commit is contained in:
Smirnov Olexandr 2021-02-11 16:45:55 +02:00
parent 64007489ce
commit 3ebe332854
13 changed files with 303 additions and 178 deletions

View file

@ -1,5 +1,5 @@
window:
title: Terminal
title: Alacritty
class:
instance: Alacritty
general: Alacritty
@ -10,7 +10,7 @@ window:
font:
antialias: lcd
hinting: true
size: 12.0
size: 10.0
normal:
family: JetBrains Mono
style: Regular
@ -32,8 +32,6 @@ cursor:
Underline:
height: 0.5 - 2
scrolling.history: 1000
debug.render_timer: false
#draw_bold_text_with_bright_colors: false
@ -43,33 +41,33 @@ dynamic_title: false
colors:
primary:
background: '0x262A2B'
foreground: '0xFFFFFF'
background: "0x262A2B"
foreground: "0xFFFFFF"
cursor:
text: '0x7D7D7D'
cursor: '0xDFDFDF'
text: "0x7D7D7D"
cursor: "0xDFDFDF"
selection:
text: '0xEDEBD7'
background: '0x262A3B'
text: "0xEDEBD7"
background: "0x262A3B"
normal:
black: '0x181818'
red: '0xab4642'
green: '0xa1b56c'
yellow: '0xf7ca88'
blue: '0x7cafc2'
magenta: '0xba8baf'
cyan: '0x86c1b9'
white: '0xd8d8d8'
black: "0x181818"
red: "0xab4642"
green: "0xa1b56c"
yellow: "0xf7ca88"
blue: "0x7cafc2"
magenta: "0xba8baf"
cyan: "0x86c1b9"
white: "0xd8d8d8"
bright:
black: '0x585858'
red: '0xab4642'
green: '0xa1b56c'
yellow: '0xf7ca88'
blue: '0x7cafc2'
magenta: '0xba8baf'
cyan: '0x86c1b9'
white: '0xf8f8f8'
black: "0x585858"
red: "0xab4642"
green: "0xa1b56c"
yellow: "0xf7ca88"
blue: "0x7cafc2"
magenta: "0xba8baf"
cyan: "0x86c1b9"
white: "0xf8f8f8"
key_bindings:
- { key: V, mods: Control|Shift, action: Paste }
- { key: C, mods: Control|Shift, action: Copy }
- { key: C, mods: Control|Shift, action: Copy }

View file

@ -18,7 +18,6 @@ Run lxsession &
Run picom -b &
## == BSPWM
# Workspaces
bspc monitor -d 1 2 3 4 5 6 7 8 9
@ -42,7 +41,7 @@ bspc config urgent_border_color "#FF6C6B"
bspc rule -a Alacritty desktop='^1' focus=on follow=on
bspc rule -a kitty desktop='^1' focus=on follow=on
bspc rule -a firefox desktop='^2' focus=on follow=off
bspc rule -a VSCodium desktop='^3' focus=on follow=off
bspc rule -a Code desktop='^3' focus=on follow=off
bspc rule -a Sublime_text desktop='^3' focus=on follow=on
bspc rule -a '*:nvim' desktop='^3' focus=on follow=on
bspc rule -a '*:ranger' desktop='^4' focus=on follow=off

View file

@ -1,7 +1,7 @@
# Smirnov-O <ss2316544@gmail.com>
# BSPWM/SXKBD config file
## == USER Applications
## == USER keys
super + {_,shift} Return
{alacritty, \
rofi -show drun }
@ -10,13 +10,13 @@ super + shift + {w,f,e,c,q}
{firefox, \
alacritty --class=ranger -e ranger, \
alacritty --class=nvim -e nvim, \
subl, \
code, \
xkill }
super + shift + z
betterlockscreen --off 180 -t "Computer is lokerd" -l
super + {equal, minus, shift + minus}
super + {equal, minus, shift+minus}
amixer sset Master {2%+,2%-,toggle}
super + {Escape, ctrl + u, ctrl + i}

View file

@ -18,8 +18,8 @@ hide_edge_borders smart
############ Variables ###########
set $terminal alacritty
set $browser firefox
set $filemanager alacritty -e ranger
set $codeeditor alacritty -e nvim
set $filemanager alacritty --title=ranger -e ranger
set $codeeditor alacritty --title=nvim -e nvim
set $guicode vscodium
############ Autostart ############
@ -89,7 +89,15 @@ bindsym $mod+minus exec "amixer sset Master 2%-"
bindsym $mod+Shift+minus exec "amixer sset Master toggle"
######### Window preferens ########
assign [class="Alacritty"] $ws1
assign [class="(?i)firefox"] $ws2
assign [class="(?i)code|vscodium|subl"] $ws3
assign [title="nvim"] $ws3
assign [class="(?!)thunar"] $ws4
assign [title="ranger"] $ws4
assign [title="Joplin"] $ws5
assign [class="(?i)telegram|discord"] $ws6
assign [class="Spotify"] $ws9
for_window [title="Google Tasks"] floating enable
for_window [class="(?i)telegram|discord"] layout tabbed
focus_on_window_activation focus

View file

@ -1,22 +1,33 @@
{
// Snippets
"snippets.ultisnips.directories": [
"snips"
],
"snippets.userSnippetsDirectory": "~/.config/nvim",
// Emmet
"emmet.includeLanguages": {
"javascript": "javascriptreact"
},
// Autoload
"coc.preferences.hoverTarget": "float",
"coc.preferences.formatOnSaveFiletypes": [
"css",
"html",
"markdown",
"yaml",
"json",
"javascript",
"pytnon"
]
//Snippets
"snippets.ultisnips.directories": ["snips"],
"snippets.userSnippetsDirectory": "~/.config/nvim/snips",
//Emmet
"emmet.includeLanguages": {
"javascript": ["javascript.jsx", "javascriptreact"]
},
// Prettier
"prettier.disableSuccessMessage": true,
// JS/x
"tsserver.formatOnType": true,
// List
"list.indicator": ">",
"list.selectedSignText": " ",
// Auto format
"coc.preferences.hoverTarget": "float",
"coc.preferences.formatOnSaveFiletypes": [
"javascript",
"javascript.jsx",
"javascriptreact",
"css",
"html",
"yaml",
"json",
"pytnon"
]
}

View file

@ -1,56 +1,47 @@
call plug#begin('~/.vim/plugged')
Plug 'Smirnov-O/nten16.vim' " Color scheme
Plug 'itchyny/lightline.vim' " Status line
Plug 'maximbaz/lightline-ale' " ALE in status line
Plug 'airblade/vim-gitgutter' " Git indicator
Plug 'mbbill/undotree' " Git like history
Plug 'ap/vim-css-color' " CSS color preview
Plug 'mhinz/vim-startify' " Start page
Plug 'itchyny/lightline.vim' " Status bar
Plug 'maximbaz/lightline-ale' " Linter info in bar
Plug 'dense-analysis/ale' " Linter
Plug 'editorconfig/editorconfig-vim' " EditorConfig support
Plug 'christoomey/vim-tmux-navigator' " Jump from vim to tmux and back
Plug 'airblade/vim-gitgutter' " Git indicator
Plug 'ap/vim-css-color' " Preview CSS colors
Plug 'SirVer/ultisnips' " Snippets
Plug 'jiangmiao/auto-pairs' " Auto close brackets
Plug 'editorconfig/editorconfig-vim' " Editor Config support
Plug 'christoomey/vim-tmux-navigator' " Jump from vim in tmux
Plug 'maxboisvert/vim-simple-complete' " Sublime like completion
" NERDTree
Plug 'scrooloose/nerdtree', {'on': 'NERDTreeToggle'}
Plug 'Xuyuanp/nerdtree-git-plugin', {'on': 'NERDTreeToggle'}
" Completion & snippets
Plug 'neoclide/coc.nvim'
Plug 'jiangmiao/auto-pairs'
" History && file explorer
Plug 'mbbill/undotree', {'on': 'UndotreeToggle'} " Git like history
Plug 'scrooloose/nerdtree', {'on': 'NERDTreeToggle'} " File explorer
Plug 'mattn/emmet-vim', {'for': ['javascript.jsx', 'html']}
" Language support
Plug 'metakirby5/codi.vim', {'on': 'Codi'} " Live REPL
Plug 'othree/yajs.vim', {'for': 'javascript'}
Plug 'maxmellon/vim-jsx-pretty', {'for': 'javascript'}
Plug 'vim-python/python-syntax', {'for': 'python'}
Plug 'cakebaker/scss-syntax.vim', {'for': ['scss', 'sass']}
Plug 'pangloss/vim-javascript', {'for': 'javascript'}
Plug 'mxw/vim-jsx', {'for': ['javascript.jsx', 'javascript']}
Plug 'plasticboy/vim-markdown', {'for': 'markdown'}
Plug 'PotatoesMaster/i3-vim-syntax', {'for': 'i3'}
Plug 'kovetskiy/sxhkd-vim', {'for': 'sxhkd'}
call plug#end()
syntax on
" Theme
set termguicolors
colorscheme nten16
set t_Co=256
" Syntax & number line
syntax on
" number line
set nu rnu
" Status line
set noshowmode
set noshowmode showcmd
set ruler
set showcmd
" Mouse
set mouse=a mousehide
set cursorline
" Encoding
set encoding=utf-8
set fileencodings=utf-8
set encoding=utf-8 fileencodings=utf-8
" Line wrap
set nowrap nolinebreak
@ -59,50 +50,37 @@ set nowrap nolinebreak
set nobackup noswapfile
set history=100
" Reload file
" Auto reload file
set autoread
" Tabs
set tabstop=4
set ts=4 sts=4
set expandtab autoindent
set shiftwidth=4
set softtabstop=4
set expandtab
set autoindent
" Search
set incsearch
set ignorecase
set smartcase
set incsearch ignorecase smartcase
" Buffer(s)
set hidden
set smartindent
set hidden smartindent
" Spell
"set spell spelllang=en_us
set spell spelllang=en_us
" Space/tab indicator
set list listchars=tab:>·,trail:~,extends:>,precedes:<,space
" Disable sound
set visualbell t_vb=
" == Language configuration
" Python
autocmd BufWritePre *.py normal m`:%s/\s\+$//e ``
let g:python_higlight_all = 1
let g:python_highlight_string_formatting = 1
let g:python_highlight_string_format = 1
let g:python_highlight_doctests = 1
let g:python_highlight_func_calls = 1
let g:python_highlight_class_vars = 1
"== Language configuration
let g:jsx_ext_required = 0
" Markdown
let g:vim_markdown_folding_disabled = 1
let g:vim_markdown_frontmatter = 1
let g:markdown_fenced_languages = ['javascript', 'js=javascript', 'python', 'py=python', 'bash', 'sh=bash']
let g:markdown_fenced_languages = ['javascript', 'js=javascript', 'jsx=javascript.jsx', 'python', 'bash', 'sh=bash']
" == Plugins configuration
"== Plug in configuration
let g:lightline = {
\ 'colorscheme': 'nten16',
\ 'active': {
@ -111,60 +89,50 @@ let g:lightline = {
\ [ 'linter_errors', 'linter_warnings', 'linter_infos' ] ],
\ 'right': [ [ 'lineinfo' ],
\ [ 'percent' ],
\ [ 'filename', 'filetype' ] ]
\ },
\ [ 'filename', 'filetype' ] ]},
\ 'component_expand': {
\ 'linter_checking': 'lightline#ale#checking',
\ 'linter_infos': 'lightline#ale#infos',
\ 'linter_warnings': 'lightline#ale#warnings',
\ 'linter_errors': 'lightline#ale#errors',
\ 'linter_ok': 'lightline#ale#ok'
\ },}
\ 'linter_infos': 'lightline#ale#infos',
\ 'linter_warnings': 'lightline#ale#warnings'
\ }, }
" NERDTree
nnoremap <C-b> :NERDTreeToggle<CR>
let g:NERDTreeWinPos="right"
let NERDTreeIgnore = ['__pycache__', '\**\*.sw[po]','.DS_Store']
let NERDTreeMinimalUI=1
let NERDTreeIgnore = ['__pycache__', 'node_modules']
let NERDTreeShowHidden=0
let g:NERDTreeWinSize = 28
" Coc
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
let g:coc_global_config="$HOME/.config/nvim/coc-settings.json"
imap <C-l> <Plug>(coc-snippets-expand)
vmap <C-j> <Plug>(coc-snippets-select)
let g:coc_global_extensions = [ 'coc-snippets',
\ 'coc-emmet',
\ 'coc-html',
\ 'coc-css',
\ 'coc-yaml',
\ 'coc-json',
\ 'coc-tsserver',
\ 'coc-eslint',
\ 'coc-prettier',
\ ]
" UltiSnips
let g:UltiSnipsExpandTrigger = "<tab>"
let g:UltiSnipsJumpForwardTrigger = "<tab>"
let g:UltiSnipsJumpBackwardTrigger = "<S-tab>"
let g:UltiSnipsSnippetDirectories = ["snips"]
let g:UltiSnipsEditSplit = "vertical"
" Startify
let g:startify_custom_header = [
\ " _____ _____ _ ",
\ " | | |___ ___| | |_|_____ ",
\ " | | | | -_| . | | | | | ",
\ " |_|___|___|___|\___/|_|_|_|_| ",
\ ]
let g:startify_lists = [
\ { 'type': 'bookmarks', 'header': ["  Bookmarks"] },
\ { 'type': 'files', 'header': ["  Files"] },
\ ]
" Emmet
let g:user_emmet_expandabbr_key='<C-a>'
let g:user_emmet_mode='a'
" Neoterm
let g:neoterm_default_mod = 'vertical'
let g:neoterm_size = 30
let g:neoterm_autoinsert = 1
" Ale
let g:ale_disable_lsp = 1
let g:ale_sign_error = '> '
let g:ale_sign_warning = '- '
let g:ale_echo_msg_format = '%severity%: %s'
let g:ale_fixers = {
\ 'javascript': ['prettier', 'eslint' ],
\ 'python': ['flake8', 'pylint8']}
" == Mapping
let mapleader=","
imap jj <esc>
" exit from insert mode
im jj <esc>
" window(s)
" Window(s)
nmap <C-h> :wincmd h<CR>
nmap <C-j> :wincmd j<CR>
nmap <C-k> :wincmd k<CR>
@ -173,7 +141,7 @@ nmap <A-z> :wincmd K<CR>
nmap <A-x> :wincmd L<CR>
nmap <A-c> :wincmd n<CR>
" C-j/k as up/dwon in menu
" C-j/k as up/down in menu
inoremap <expr> <C-j> ("\<C-n>")
inoremap <expr> <C-k> ("\<C-p>")

View file

@ -12,28 +12,33 @@ snippet if "If declaration"
if [ ${1} ]; then
${2}
fi
${3}
endsnippet
snippet for "For loop"
for (( i=0; i < ${1:10}; i++ )); do
${2}
done
${3}
endsnippet
snippet while "While loop"
while ${1:true}; do
${2}
done
${3}
endsnippet
snippet case "Case"
case "${1}" in
${2}
${2}) ${3} ;;
esac
${4}
endsnippet
snippet fn "Function declaration"
function ${1:name}(${2}) {
${3}
}
${4}
endsnippet

View file

@ -1,18 +1,22 @@
from libqtile import bar, layout, widget, hook
from libqtile.config import Click, Drag, Group, Key, Screen
from libqtile.lazy import lazy
from os import system as cmd
import kblayout
import os
# Set mod key
mod = "mod4"
alt = "mod1"
# Set program
terminal = "alacritty"
browser = "firefox"
filemanager = f"{terminal} -e ranger"
editor = "alacritty -e nvim"
filemanager = f"{terminal} --title=ranger -e ranger"
editor = f"{terminal} --title=NVim -e nvim"
guicodeeitor = "code"
# Set qtile colors
color = [
"#FFFFFF", # 0. Text color
"#CED4DA", # 1. Unfocus color
@ -26,9 +30,10 @@ color = [
]
# Auto start
@hook.subscribe.startup_once
def autostart():
os.system("~/.config/qtile/autostart.sh")
cmd("~/.config/qtile/autostart.sh")
keys = [
@ -45,6 +50,9 @@ keys = [
Key([mod, "shift"], "e",
lazy.spawn(editor),
desc="Launch code editor"),
Key([mod, "shift"], "c",
lazy.spawn(guicodeeitor),
desc="Run GUI code editor"),
# Window control
Key([mod], "q",
@ -149,6 +157,30 @@ keys = [
desc="Lock screen")
]
# Auto send window on specific WP
@hook.subscribe.client_new
def client_new(client):
if client.name == "Alacritty" or client.name == "Kitty":
client.togroup("term")
elif client.name == "Mozilla Firefox" or \
client.name == "Firefox Developer Edition":
client.togroup("www")
elif client.name == "NVim" or client.name == \
"Visual Studio Code":
client.togroup("dev")
elif client.name == "Thunar" or client.name == "ranger":
client.togroup("sys")
elif client.name == "Joplin":
client.togroup("doc")
elif client.name == "Telegram" or client.name == "Discord":
client.togroup("chat")
elif client.name == "KeePassXC":
client.togroup("pass")
elif client.name == "Spotify":
client.togroup("mus")
# Workspaces name, keys
group_names = [("term", {"layout": "columns"}),
("www", {"layout": "max"}),
@ -208,7 +240,7 @@ screens = [Screen(top=bar.Bar([
highlight_color=color[2],
highlight_method="block",
this_current_screen_border=color[2],
this_screen_border=color[3],
this_screen_border=color[3]
),
widget.Prompt(),
widget.WindowName(),
@ -222,12 +254,12 @@ screens = [Screen(top=bar.Bar([
),
widget.Volume(
foreground=color[6],
fmt="{}",
fmt="{}"
),
widget.Net(
interface="wlp3s0",
format="{down}↓↑{up}",
foreground=color[7],
format="{down} ↓↑{up}",
foreground=color[7]
),
widget.Systray(),
widget.Clock(

View file

@ -3,7 +3,7 @@ For working widget install `xkblayout`
$ yay -S xkblayout
"""
from libqtile.widget import base
import os
from os import popen
KBCMD = """
@ -18,11 +18,11 @@ esac
class KBLayout(base.InLoopPollText):
"""Widget for displaying the current keyboard layout"""
orientations = base.ORIENTATION_HORIZONTAL
def __init__(self, **config):
base.InLoopPollText.__init__(self, **config)
def poll(self):
kb = os.popen(KBCMD).read().rstrip('\n')\
.encode('utf-8').decode('utf-8')
kb = popen(KBCMD).read().rstrip('\n') \
.encode('utf-8').decode('utf-8')
return kb

View file

@ -101,6 +101,10 @@ map ss shell tar -czvf file.tar.gz %s
map sd shell 7z a file.7z %s
map se shell extract %s
# "e" key
map ee encrypt
map ed decrypt
# "q"/quit keys/alias
map Q quitall
alias qa quitall

View file

@ -15,14 +15,11 @@
[alias]
ada = add -A
cm = commit
com = commit -am
cmm = commit -m
ch = checkout
cl = clone
st = status
br = branch
l = log
i = init
[color]
ui = true

102
vscode/settings.json Normal file
View file

@ -0,0 +1,102 @@
{
// Apperence
"workbench.colorTheme": "One Dark Pro",
"workbench.iconTheme": "vscode-icons",
"editor.fontFamily": "'Jetbrain Mono', 'FontAwesome5Free', 'Droid Sans Mono', 'monospace', 'Droid Sans Fallback'",
"editor.wordWrap": "off",
"editor.fontSize": 14,
// Editor
"editor.tabCompletion": "on",
"editor.tabSize": 4,
"editor.formatOnSave": false,
// Vim
"vim.easymotion": true,
"vim.useSystemClipboard": true,
"vim.insertModeKeyBindings": [
{"before": ["j", "j"],
"after" : ["<Esc>"]}],
"vim.normalModeKeyBindings": [
{"before": ["f"],
"after" : ["leader","leader","s"]}
],
"Vsnips.VarFiles": ["/home/sasha/.config/nvim/init.vim"],
"Vsnips.SnipsDir": ["/home/sasha/.config/nvim/snips"],
// Terminal
"workbench.panel.defaultLocation": "right",
"terminal.integrated.shell.linux": "zsh",
// No show files
"files.exclude": {
"**/__pycache__": true,
"**/venv": true,
"**/env": true,
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true,
"**/node_modules": true
},
// Minimap
"editor.minimap.side": "left",
"editor.minimap.size": "fit",
// Sidebar
"workbench.sideBar.location": "right",
"workbench.activityBar.visible": true,
// File menu
"window.menuBarVisibility": "hidden",
// Python
"python.linting.pylintEnabled": false,
"python.linting.flake8Enabled": true,
"python.linting.enabled": true,
"python.formatting.provider": "autopep8",
// Emmet
"emmet.includeLanguages": {
"javascript": "javascriptreact"
},
// Plugins
"todo-tree.tree.showScanModeButton": false,
// Explorer menu
"explorer.confirmDelete": false,
"explorer.confirmDragAndDrop": false,
// Config for specific languages
"[python]": {
"editor.tabSize": 4,
"editor.formatOnSave": true,
"editor.formatOnPaste": true
},
"[javascript]": {
"editor.tabSize": 2,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.formatOnPaste": true
},
"[markdown]": {
"editor.wordWrap": "on",
"editor.quickSuggestions": false
},
"[html]": {
"editor.tabSize": 3,
"editor.suggest.insertMode": "replace"
},
"[css]": {
"editor.tabSize": 2,
"editor.suggest.insertMode": "replace"
},
"[scss]": {
"editor.tabSize": 2,
"editor.suggest.insertMode": "replace"
},
"[javascriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
}

23
zshrc
View file

@ -3,7 +3,7 @@ export PATH="$HOME/bin:$HOME/.local/bin:$GOPATH/bin:$PATH"
source ~/.profile
### Oh my zsh ###
ZSH_THEME="cyan-simple" # Set theme
ZSH_THEME="nten" # Set theme
#CASE_SENSITIVE="true" # Use case-sensitive completion.
#HYPHEN_INSENSITIVE="true" # Case-sensitive completion must be off.
#DISABLE_AUTO_UPDATE="true" # Disable bi-weekly auto-update checks.
@ -16,26 +16,25 @@ DISABLE_AUTO_TITLE="true" # Disable auto-setting terminal title.
export UPDATE_ZSH_DAYS=7 # Change how often to auto-update.
export LANG=en_US.UTF-8 # Set locale
plugins=(pip python golang pass sudo git encode64)
plugins=(python pip node npm yarn pass sudo git encode64)
source $ZSH/oh-my-zsh.sh
### Variables ###
export EDITOR="nvim"
export VISUAL="nvim"
export GOPATH="$HOME/go"
### Function ###
function bgcolor {
convert -size 1x1 xc:$1 /tmp/bgc.png
feh --bg-tile /tmp/bgc.png
}
#function bgcolor {
# convert -size 1x1 xc:$1 /tmp/bgc.png
# feh --bg-tile /tmp/bgc.png
#}
function codi() {
local syntax="${1:-python}"
nvim -c "let g:startify_disable_at_vimenter = 1 |\
set bt=nofile ls=0 noru nonu nornu |\
Codi $syntax" "$@"
local syntax="${1:-javascript}"
nvim -c "let g:startify_disable_at_vimenter = 1 |\
set bt=nofile ls=0 noru nonu nornu |\
Codi $syntax" "$@"
}
@ -56,6 +55,8 @@ alias vi="nvim"
alias tmux="tmux -2"
alias ipython="ipython --no-banner"
alias ran="ranger"
alias f="fuck"
alias firefox-dev="firefox-developer-edition"
# Exit
alias :q="exit"