nvim y tmux mas tuneados (never gonna stop). REPL plugin alpha. firefox css. neomutt powerline. mil giladitas mas
This commit is contained in:
parent
68c65de02d
commit
2ec1046c9f
|
@ -35,8 +35,6 @@
|
|||
*.color7: #a89984
|
||||
*.color15: #c9c9c9
|
||||
|
||||
!URxvt.font: xft:sarasatermj:size=10
|
||||
!URxvt.font: -t-cherry-medium-r-normal--13-120-96-96-c-100-iso8859-1
|
||||
URxvt.font: xft:blex mono nerd font:pixelsize=14
|
||||
URxvt.boldFont:
|
||||
URxvt.perl-ext-common: default,clipboard,url-select
|
||||
|
|
|
@ -3,17 +3,8 @@ set -euf -o pipefail
|
|||
|
||||
multipantalla &
|
||||
|
||||
# variables
|
||||
gap=8
|
||||
pad=6
|
||||
b_width=4
|
||||
export b_width
|
||||
export gap
|
||||
export pad
|
||||
export panel
|
||||
|
||||
# Si se usa -$gap en *_padding, solamente se ven huecos entre las ventanas, pero no entre las ventanas y los bordes del escritorio
|
||||
bspc config window_gap $pad
|
||||
# Si se usa un numero negativo en *_padding, solamente se ven huecos entre las ventanas, pero no entre las ventanas y los bordes del escritorio
|
||||
bspc config window_gap 6
|
||||
bspc config top_padding 0
|
||||
bspc config left_padding 0
|
||||
bspc config right_padding 0
|
||||
|
@ -45,10 +36,10 @@ xrdb -merge "${HOME}/.Xresources"
|
|||
|
||||
# Colores
|
||||
bspc config normal_border_color "$(get_xrdb color0)"
|
||||
bspc config focused_border_color "$(get_xrdb color3)"
|
||||
bspc config focused_border_color "$(get_xrdb color4)"
|
||||
bspc config active_border_color "$(get_xrdb color8)"
|
||||
bspc config presel_feedback_color "$(get_xrdb color5)"
|
||||
bspc config border_width $b_width
|
||||
bspc config border_width 2
|
||||
|
||||
# Flotantes
|
||||
bspc rule -a REAPER state=floating, layer=below
|
||||
|
@ -83,8 +74,5 @@ bspc rule -a Firefox desktop='^2'
|
|||
bspc rule -a Termite:archi desktop='^3'
|
||||
bspc rule -a Termite:multi desktop='^1'
|
||||
|
||||
# scripts utiles
|
||||
bspc config external_rules_command ~/.config/bspwm/scripts/external_rules.sh
|
||||
|
||||
setbg &
|
||||
unclutter &
|
||||
|
|
|
@ -36,6 +36,7 @@ blur-kern = "3x3box";
|
|||
|
||||
opacity-rule = [
|
||||
"0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
|
||||
"35:class_g = 'Bspwm' && class_i = 'presel_feedback'",
|
||||
];
|
||||
|
||||
shadow-exclude = [
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
# For documentation, see the manpage for modprobed-db
|
||||
|
||||
# Path where database will reside.
|
||||
# Do NOT user a variable in the following path like $HOME
|
||||
# You MUST use a the fully qualified path or else invoking the script via sudo
|
||||
# will trick it into thinking that the db is in /root/foo/bar
|
||||
DBPATH="/home/deadguy/.config"
|
||||
|
||||
# Define the background of your terminal theme here.
|
||||
# A setting of dark will produce colors that nicely contrast a dark background.
|
||||
# setting of light will produce colors that nicely contrast a light background.
|
||||
COLORS=dark
|
||||
#COLORS=light
|
||||
|
||||
|
||||
# Add modules in the ignore array that you do NOT want counted, for example modules that
|
||||
# get built or that are provided by another package.
|
||||
#
|
||||
# For Arch Linux, some examples are given below.
|
||||
IGNORE=(uvcvideo hp_wmi nouveau nvidia vboxdrv vboxnetflt vboxnetadp vboxpci lirc_dev lirc_i2c
|
||||
osscore oss_hdaudio oss_usb tp_smapi thinkpad_ec
|
||||
zavl znvpair zunicode zcommon zpios zfs spl splat firewire-core)
|
|
@ -8,14 +8,13 @@ macro index,pager i3 '<sync-mailbox><enter-command>source /home/deadguy/.config/
|
|||
source "~/.config/mutt/gpg.rc"
|
||||
|
||||
macro index O "<shell-escape>correo -Va<enter>" "run offlineimap to sync all mail"
|
||||
macro index,pager \cb "<pipe-message> urlscan<Enter>" "call urlscan to extract URLs out of a message"
|
||||
macro attach,compose \cb "<pipe-entry> urlscan<Enter>" "call urlscan to extract URLs out of a message"
|
||||
macro index,pager u "<pipe-message> urlscan -dcp -r 'linkhandler \"{}\"'<Enter>" "call urlscan to extract URLs out of a message"
|
||||
|
||||
bind index,pager,browser D half-down
|
||||
bind index,pager,browser U half-up
|
||||
bind index,pager d delete-message
|
||||
bind index \cu undelete-message
|
||||
bind index <space> collapse-thread
|
||||
bind index d delete-message
|
||||
bind index u undelete-message
|
||||
bind index <left> previous-unread
|
||||
bind index <right> next-unread
|
||||
bind pager <up> previous-line
|
||||
|
@ -29,8 +28,6 @@ set uncollapse_jump # no collapse on unread message
|
|||
set sort_re # thread based on regex
|
||||
set reply_regexp = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*"
|
||||
set quote_regexp = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+"
|
||||
set date_format ="%a %d %b %R"
|
||||
set alias_format = " %4n %t %-20a %r "
|
||||
set autoedit ## Skip directly to composing
|
||||
set sendmail_wait = 1 ## wait for sending to complete
|
||||
set attribution = "El %d, %n escribio:" ## set the attribution
|
||||
|
@ -38,12 +35,51 @@ set reply_to ## reply to Reply to: field
|
|||
set sig_dashes ## dashes before sig
|
||||
set text_flowed = yes ## Eliminate odd line breaks
|
||||
set skip_quoted_offset = 3
|
||||
|
||||
set sidebar_visible = no
|
||||
set editor="nvim -c 'set textwidth=80'"
|
||||
|
||||
set status_on_top = yes
|
||||
set status_chars = " *%A"
|
||||
set status_format = "──┄┄╼ %f: %m Messages ╾┄┄──────────┈%?n? %n New?%?d?, %d to Delete?%?t?, %t Tagged?%?p?, %p Postponed?%?l? %l Total ?┈───%>─┤ %P ├───"
|
||||
# set status_chars = " *%A"
|
||||
|
||||
# set status_format = "──┄┄╼ %f: %m Messages ╾┄┄──────────┈%?n? %n New?%?d?, %d to Delete?%?t?, %t Tagged?%?p?, %p Postponed?%?l? %l Total ?┈───%>─┤ %P ├───"
|
||||
set alias_format = " %4n %t %-20a %r "
|
||||
set date_format ="%a %d %b %R"
|
||||
set index_format=" %T %{!%d %b} %1M %-28.28L %?X?&·? %s"
|
||||
set pager_format=" %n %T %s%* %{!%d %b · %H:%M} %?X? %X ? %P "
|
||||
set status_format = " %f%?r? %r? %m %?n? %n ? %?d? %d ?%?t? %t ?%?F? %F? %> %?p? %p ?"
|
||||
set vfolder_format = " %N %?n?%3n& ? %8m · %f"
|
||||
set attach_format = "%u%D %T%-75.75d %?T?%& ? %5s · %m/%M"
|
||||
# no addressed to me, to me, group, cc, sent by me, mailing list
|
||||
set to_chars=""
|
||||
# unchanged mailbox, changed, read only, attach mode
|
||||
set status_chars = " "
|
||||
|
||||
set hidden_tags = "unread,draft,flagged,passed,replied,attachment,signed,encrypted"
|
||||
tag-transforms "replied" "↻ " \
|
||||
"encrytpted" "" \
|
||||
"signed" "" \
|
||||
"attachment" "" \
|
||||
|
||||
# The formats must start with 'G' and the entire sequence is case sensitive.
|
||||
tag-formats "replied" "GR" \
|
||||
"encrypted" "GE" \
|
||||
"signed" "GS" \
|
||||
"attachment" "GA" \
|
||||
|
||||
# powerline status bar hack
|
||||
color status white black
|
||||
color status green black ''
|
||||
color status yellow black ''
|
||||
color status red black ''
|
||||
color status brightblack blue '(.*) ' 1
|
||||
color status blue black '.*( )' 1
|
||||
color status black blue '\s* [0-9]+\s*'
|
||||
color status blue black '( ).*$' 1
|
||||
color status yellow black '( )\s*\s*[0-9]+\s*' 1
|
||||
color status black yellow '\s*\s*[0-9]+\s*'
|
||||
color status blue yellow '( ) ([0-9]+%|all|end) \s*' 1
|
||||
color status black blue ' ([0-9]+%|all|end) \s*'
|
||||
color status yellow black '( )\s* ' 1
|
||||
color status default black ' '
|
||||
|
||||
ignore * ## Ignore all headers
|
||||
unignore from: to: cc: date: subject: ## Show only these
|
||||
|
@ -59,5 +95,3 @@ set my_index_format_post=' %-4.4c %?M?<%M ?%-$my_col_subject.${my_col_subject}
|
|||
|
||||
folder-hook .*[sS]ent.* "$my_index_format_pre"t"$my_index_format_post"
|
||||
folder-hook ! .*[sS]ent.* "$my_index_format_pre"F"$my_index_format_post"
|
||||
|
||||
|
||||
|
|
|
@ -2,26 +2,39 @@
|
|||
refresh-on-startup no
|
||||
always-display-description yes
|
||||
display-article-progress yes
|
||||
reload-only-visible-feeds yes
|
||||
text-width 80
|
||||
auto-reload yes
|
||||
show-keymap-hint no
|
||||
user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0"
|
||||
error-log "~/.config/newsboat/error.log"
|
||||
|
||||
|
||||
# formatos
|
||||
articlelist-format " %t %> %D %L "
|
||||
feedlist-format "%S %n %11u %t %d"
|
||||
datetime-format "%Y-%m-%d"
|
||||
feedlist-title-format "Feeds: %u sin leer, %t total"
|
||||
datetime-format "%d/%m"
|
||||
feedlist-format " %n %3U %t "
|
||||
feedlist-title-format " Feeds: %u/%t %?T?Tag: %T ? %> %N %V "
|
||||
#articlelist-format " %f %D %t"
|
||||
#articlelist-title-format " %u/%t - '%T' - %U"
|
||||
itemview-title-format "Article: %T %> %N %V"
|
||||
|
||||
#datetime-format "%Y-%m-%d"
|
||||
#feedlist-format "%S %n %11u %t %d"
|
||||
#feedlist-title-format "Feeds: %u sin leer, %t total"
|
||||
articlelist-format " %f %t %> %D "
|
||||
articlelist-title-format "%T [%U] (%u sin leer, %t total)"
|
||||
searchresult-title-format "Search (%u sin leer, %t total)"
|
||||
#itemview-title-format "%T"
|
||||
searchresult-title-format "Resultados (%u sin leer, %t total)"
|
||||
filebrowser-title-format "%f %?O?Open File&Save File?"
|
||||
help-title-format "Ayuda"
|
||||
selecttag-title-format "Elegir Etiqueta"
|
||||
selectfilter-title-format "Elegir Filtro"
|
||||
itemview-title-format "%T"
|
||||
urlview-title-format "URLs"
|
||||
dialogs-title-format "Dialogs"
|
||||
notify-format "%d Articulos nuevos. %n Articulos no leidos"
|
||||
|
||||
# teclas
|
||||
bind-key ; toggle-show-read-feeds
|
||||
bind-key j down
|
||||
bind-key k up
|
||||
bind-key J next-feed articlelist
|
||||
|
@ -42,22 +55,23 @@ bind-key ^t next-unread
|
|||
bind-key / open-search
|
||||
|
||||
# colores
|
||||
color listnormal cyan default
|
||||
color listfocus green default standout bold
|
||||
color listnormal_unread blue default
|
||||
color listfocus_unread yellow default bold
|
||||
color info default default bold
|
||||
color article cyan default
|
||||
|
||||
highlight article "^(Feed|Title|Author|Link|Date):.*" color4 default
|
||||
highlight article "^Podcast Download URL:.*" color5 default
|
||||
highlight article "^Links:" color15 default
|
||||
highlight article "\\[[0-9][0-9]*\\]" color1 default
|
||||
highlight article "\\[image [0-9][0-9]*\\]" color2 default
|
||||
highlight article "\\[embedded flash: [0-9][0-9]*\\]" color5 default
|
||||
highlight article ":.*\\(link\\)$" color12 default
|
||||
highlight article ":.*\\(image\\)$" color2 default
|
||||
highlight article ":.*\\(embedded flash\\)$" color3 default
|
||||
color listnormal cyan default
|
||||
color listfocus green default bold
|
||||
color listnormal_unread blue default
|
||||
color listfocus_unread yellow default bold
|
||||
color info color232 color67 bold
|
||||
color article color250 default
|
||||
color background default default
|
||||
highlight article "^(Feed|Title|Author|Link|Date|Links):" blue default underline
|
||||
highlight article "^Podcast Download URL:.*" blue default bold
|
||||
highlight article "\\[image [0-9][0-9]*\\]" cyan default
|
||||
highlight article "\\[[0-9][0-9]*\\]" white default
|
||||
highlight article "\\[embedded flash: [0-9][0-9]*\\]" red default
|
||||
highlight article "\\(link\\)$" blue default
|
||||
highlight article "\\(image\\)$" cyan default
|
||||
highlight article "\\(embedded flash\\)$" red default
|
||||
highlight article "Read more" white default
|
||||
highlight article "https?://([.:_~!$&'=+*(),;@?a-z/0-9\\-]|%[0-9a-f]{2})+" magenta default
|
||||
|
||||
# programas externos
|
||||
notify-program "notify-send"
|
||||
|
@ -74,6 +88,5 @@ macro v set browser "setsid nohup mpv"; open-in-browser ; set browser linkhandle
|
|||
macro w set browser "tmux split-window -p 70 && tmux send-keys '$w3m %u && tmux kill-pane\n'"; open-in-browser ; set browser linkhandler
|
||||
macro r set browser "tmux split-window -p 70 && tmux send-keys 'rtv -l %u && tmux kill-pane\n'"; open-in-browser ; set browser linkhandler
|
||||
macro c set browser "xsel -b <<<" ; open-in-browser ; set browser linkandler
|
||||
macro f set browser "firefox -new-tab" ; open-in-browser ; set browser linkandler
|
||||
|
||||
# vim: ft=conf cms=#%s
|
||||
|
|
|
@ -7,7 +7,6 @@ https://vimways.org/index.xml "~Vimways" blogs
|
|||
https://www.youtube.com/feeds/videos.xml?channel_id=UCVls1GmFKf6WlTraIb_IaJg "~DistroTube" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?user=gotbletu "~Gotbletu" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC2eYFnH61tmytImy1mTYvhA "~Luke Smith" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?user=JtheLinuxguy "~Learn Linux" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCi8XrDg1bK_MJ0goOnbpTMQ "~BudLabs" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?user=moviebob "~Moviebob" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?playlist_id=PLXleEiD94A2d6WdmDU0h7dXJg8scAaZ9U "~Moviebob Reviews" youtube
|
||||
|
@ -25,11 +24,12 @@ https://www.youtube.com/feeds/videos.xml?user=olbaidoinomed "~Olbaid" youtube
|
|||
https://www.reddit.com/r/argentina.rss "~Argentina" reddit
|
||||
https://www.reddit.com/r/zsh.rss "~Zsh" reddit
|
||||
https://www.reddit.com/r/bspwm.rss "~Bspwm" reddit
|
||||
https://www.reddit.com/r/linuxaudio.rss "~Linux Audio" reddit
|
||||
https://www.reddit.com/r/vim.rss "~Vim" reddit
|
||||
https://www.reddit.com/r/neovim.rss "~Neovim" reddit
|
||||
https://www.reddit.com/r/vimporn.rss "~Vim Porn" reddit
|
||||
https://www.reddit.com/r/unixart.rss "~Unix Art" reddit
|
||||
https://www.reddit.com/r/vim.rss "~Vim" reddit
|
||||
https://www.reddit.com/r/commandline.rss "~Command line" reddit
|
||||
https://www.reddit.com/r/linuxaudio.rss "~Linux Audio" reddit
|
||||
https://www.reddit.com/r/learnprogramming.rss "~Learn Programming" reddit
|
||||
https://www.reddit.com/r/chiptunes.rss "~Chiptunes" reddit
|
||||
https://www.reddit.com/r/jungle.rss "~Jungle" reddit
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
"suggest.triggerAfterInsertEnter": false,
|
||||
"suggest.noselect": false,
|
||||
"suggest.snippetIndicator": "★",
|
||||
"suggest.timeout": 500,
|
||||
"suggest.minTriggerInputLength": 2,
|
||||
"suggest.detailField":"abbr",
|
||||
"suggest.triggerCompletionWait": 100,
|
||||
"suggest.echodocSupport": true,
|
||||
"suggest.enablePreview": true,
|
||||
"diagnostic.displayByAle": true,
|
||||
"diagnostic.refreshOnInsertMode": true,
|
||||
"diagnostic.messageTarget": "float",
|
||||
"diagnostic.virtualText": true,
|
||||
"diagnostic.checkCurrentLine": true,
|
||||
"coc.preferences.hoverTarget": "echo",
|
||||
"signature.target": "echo",
|
||||
"suggest.maxCompleteItemCount": 20,
|
||||
"codeLens.enable": true,
|
||||
"coc.preferences.formatOnSaveFiletypes": [],
|
||||
"python.autoComplete.addBrackets": true,
|
||||
"emmet.includeLanguages": {"vue-html": "html", "javascript": "javascriptreact"},
|
||||
"tsserver.enableJavascript": true,
|
||||
"tslint.enable": true,
|
||||
"tslint.autoFixOnSave": true,
|
||||
"javascript.validate.enable": false,
|
||||
"eslint.autoFix": true,
|
||||
"eslint.autoFixOnSave": true,
|
||||
"eslint.filetypes": ["javascript", "javascript.jsx", "typescript", "typescriptreact", "javascriptreact"],
|
||||
"prettier.eslintIntegration": true,
|
||||
"prettier.tslintIntegration": true,
|
||||
"prettier.stylelintIntegration": true,
|
||||
"coc.preferences.formatOnType":false
|
||||
}
|
||||
|
|
@ -1,42 +1 @@
|
|||
setlocal tw=0
|
||||
setlocal colorcolumn=0
|
||||
setlocal fileformat=unix
|
||||
setlocal syntax=foxdot
|
||||
|
||||
let g:ale_sign_column_always = 0
|
||||
let b:ale_linters = []
|
||||
let b:ale_fixers = []
|
||||
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Mappings
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
if !exists("g:foxdot_no_mappings") || !g:foxdot_no_mappings
|
||||
if !hasmapto('<Plug>FoxdotConfig', 'n')
|
||||
nmap <buffer> <localleader>c <Plug>FoxdotConfig
|
||||
endif
|
||||
|
||||
if !hasmapto('<Plug>FoxdotLineSend', 'n')
|
||||
nmap <buffer> <localleader>s <Plug>FoxdotLineSend
|
||||
nmap <buffer> <c-c> <Plug>FoxdotLineSend
|
||||
endif
|
||||
|
||||
if !hasmapto('<Plug>FoxdotParagraphSend', 'n')
|
||||
nmap <buffer> <localleader>ss <Plug>FoxdotParagraphSend
|
||||
nmap <buffer> <c-e> <Plug>FoxdotParagraphSend
|
||||
endif
|
||||
|
||||
imap <buffer> <c-e> <Esc><Plug>FoxdotParagraphSend<Esc>i<Right>
|
||||
imap <buffer> <c-c> <Esc><Plug>FoxdotLineSend<Esc>i<Right>
|
||||
|
||||
nnoremap <buffer> <localleader>h :FoxdotHush<cr>
|
||||
nnoremap <buffer> <c-h> :FoxdotHush<cr>
|
||||
|
||||
let i = 1
|
||||
while i <= 9
|
||||
execute 'nnoremap <buffer> <localleader>'.i.' :FoxdotSilence '.i.'<cr>'
|
||||
execute 'nnoremap <buffer> <c-'.i.'> :FoxdotSilence '.i.'<cr>'
|
||||
execute 'nnoremap <buffer> <localleader>s'.i.' :FoxdotPlay '.i.'<cr>'
|
||||
let i += 1
|
||||
endwhile
|
||||
endif
|
||||
au BufNewFile,BufRead *.foxdot setfiletype=foxdot
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
"this indent function isn't that smart yet, hopefully it'll improve in the future
|
||||
if exists ("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal indentexpr=GetSCIndent()
|
||||
setlocal indentkeys+=0),0],0}
|
||||
|
||||
if exists ("*GetSCIndent")
|
||||
finish
|
||||
endif
|
||||
|
||||
function GetSCIndent()
|
||||
|
||||
let curr_line = getline(v:lnum)
|
||||
let lnum = prevnonblank(v:lnum - 1)
|
||||
|
||||
if lnum == 0
|
||||
return 0
|
||||
endif
|
||||
|
||||
let prev_line = getline(lnum)
|
||||
|
||||
let ind = indent(lnum)
|
||||
|
||||
if prev_line =~ '\(\/\/.*\)\@\<![[({]\s*\([^])}]*\)\=$'
|
||||
let ind = ind + &sw
|
||||
endif
|
||||
|
||||
if curr_line =~ '\v^\s*[)}\]]'
|
||||
"if synIDattr(synID(line("."), col("."), 0), "name") =~? "scComment" ||
|
||||
" synIDattr(synID(line("."), col("."), 0), "name") =~? "scString" ||
|
||||
" synIDattr(synID(line("."), col("."), 0), "name") =~? "scSymbol"
|
||||
" "do nothing
|
||||
"else
|
||||
let ind = ind - &sw
|
||||
"end
|
||||
endif
|
||||
|
||||
return ind
|
||||
endfunction
|
|
@ -25,14 +25,14 @@ Plug 'othree/es.next.syntax.vim', {'for': 'javascript'}
|
|||
Plug 'mxw/vim-jsx', {'for': 'javascript'}
|
||||
Plug 'HerringtonDarkholme/yats.vim', {'for': 'typescript'}
|
||||
Plug 'mhartington/nvim-typescript', {'do': './install.sh', 'for': 'typescript'}
|
||||
Plug 'neoclide/coc.nvim', {'tag': '*', 'do': { -> coc#util#install()}}
|
||||
Plug 'neoclide/coc.nvim', {'branch': 'release'}
|
||||
Plug 'sheerun/vim-polyglot'
|
||||
Plug 'tmsvg/pear-tree'
|
||||
Plug 'tpope/vim-commentary'
|
||||
Plug 'tpope/vim-vinegar'
|
||||
Plug '/usr/bin/fzf'
|
||||
Plug 'junegunn/fzf.vim'
|
||||
Plug 'vim-airline/vim-airline'
|
||||
Plug 'Shougo/defx.nvim', { 'do': ':UpdateRemotePlugins' }
|
||||
Plug 'mhartington/oceanic-next'
|
||||
call plug#end()
|
||||
" }}}
|
||||
|
@ -49,7 +49,9 @@ set noswapfile " New buffers will be loaded without creating a swapfile
|
|||
set hidden " Enables to switch between unsaved buffers and keep undo history
|
||||
set lazyredraw " Don't redraw while executing macros (better performance)
|
||||
set showmatch " Show matching brackets when text indicator is over them
|
||||
set matchtime=2 " How many tenths of a second to blink when matching brackets
|
||||
set matchpairs+=<:> " Add HTML brackets to pair matching
|
||||
set matchtime=1 " Tenths of a second to show the matching paren
|
||||
set cpoptions-=m " showmatch will wait 0.5s or until a char is typed
|
||||
set nojoinspaces " No extra space when joining a line which ends with . ? !
|
||||
set updatetime=300 " Update time used to create swap file or other things
|
||||
set synmaxcol=200 " Don't try to syntax highlight minified files
|
||||
|
@ -67,6 +69,8 @@ set foldnestmax=10 " Deepest fold is 10 levels
|
|||
set foldmethod=marker " Markers are used to specify folds.
|
||||
set foldlevelstart=10
|
||||
set foldclose=all
|
||||
set selectmode=key
|
||||
set keymodel=startsel
|
||||
set softtabstop=4
|
||||
set noshowmode
|
||||
set breakindent
|
||||
|
@ -82,9 +86,10 @@ set undofile
|
|||
set undolevels=1000
|
||||
set undoreload=10000
|
||||
set undodir=$HOME/.config/nvim/undo
|
||||
set formatoptions+=n
|
||||
set formatoptions+=nj
|
||||
set signcolumn=yes
|
||||
set pastetoggle=<F12>
|
||||
set fillchars+=vert:\|
|
||||
|
||||
" Display all matching files when we tab complete
|
||||
set wildmode=longest:full,full
|
||||
|
@ -112,24 +117,9 @@ if &readonly
|
|||
set signcolumn=no
|
||||
let g:ale_disabled
|
||||
let w:airline_disabled=1
|
||||
let g:loaded_airline = 0
|
||||
endif
|
||||
" }}}
|
||||
" Netrw {{{
|
||||
" - :edit a folder to open a file browser
|
||||
" - <CR>/v/t to open in an h-split/v-split/tab
|
||||
let g:netrw_banner=0
|
||||
let g:netrw_browse_split=4
|
||||
let g:netrw_altv=1
|
||||
let g:netrw_preview=1
|
||||
let g:netrw_liststyle=3
|
||||
let g:netrw_list_hide=netrw_gitignore#Hide()
|
||||
let g:netrw_list_hide.=',\(^\|\s\s\)\zs\.\S\+'
|
||||
let g:netrw_sort_sequence = '[\/]$,*'
|
||||
let g:netrw_fastbrowse=2
|
||||
let g:netrw_winsize=-28
|
||||
let g:netrw_localrmdir='rm -r'
|
||||
nnoremap <F5> Lexplore<CR>
|
||||
" }}}
|
||||
" {{{ Ale
|
||||
let g:ale_use_global_executables = 1
|
||||
let g:ale_completion_enabled = 0
|
||||
|
@ -148,7 +138,6 @@ let g:ale_loclist_msg_format = '[%linter%] %s% (code)% [%severity%]'
|
|||
let g:ale_set_highlights = 1
|
||||
let g:ale_set_signs = 1
|
||||
let g:ale_set_balloons = 1
|
||||
let g:ale_virtualtext_cursor = 1
|
||||
let g:ale_linter_aliases = {
|
||||
\ 'jsx': ['css', 'javascript'],
|
||||
\ 'vue': ['vue', 'javascript'],
|
||||
|
@ -178,13 +167,15 @@ nmap <silent> <F10> <Plug>(ale_previous_wrap)
|
|||
nmap <silent> <F11> <Plug>(ale_next_wrap)
|
||||
" }}}
|
||||
" CoC {{{
|
||||
let g:coc_global_extensions = ['coc-stylelint', 'coc-vetur', 'coc-tsserver', 'coc-emmet', 'coc-css', 'coc-html', 'coc-json', 'coc-eslint', 'coc-prettier', 'coc-python']
|
||||
let g:coc_global_extensions = ['coc-vimlsp', 'coc-stylelint', 'coc-vetur', 'coc-tsserver', 'coc-emmet', 'coc-css', 'coc-html', 'coc-json', 'coc-eslint', 'coc-prettier', 'coc-python']
|
||||
|
||||
" Remap keys for gotos
|
||||
nmap <silent> <leader>ld <Plug>(coc-definition)
|
||||
nmap <silent> <leader>lt <Plug>(coc-type-definition)
|
||||
nmap <silent> <leader>li <Plug>(coc-implementation)
|
||||
nmap <silent> <leader>lf <Plug>(coc-references)
|
||||
nmap <silent> <leader>lr <Plug>(coc-references)
|
||||
nmap <silent> <leader>l{ <Plug>(coc-diagnostic-prev)
|
||||
nmap <silent> <leader>l} <Plug>(coc-diagnostic-next)
|
||||
|
||||
" Remap for rename current word
|
||||
nmap <leader>lr <Plug>(coc-rename)
|
||||
|
@ -199,9 +190,6 @@ function! s:show_documentation()
|
|||
call CocAction('doHover')
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Highlight symbol under cursor on CursorHold
|
||||
au CursorHold * silent call CocActionAsync('highlight')
|
||||
"}}}
|
||||
" FZF {{{
|
||||
let g:fzf_layout = { 'down': '~35%' }
|
||||
|
@ -225,10 +213,12 @@ let g:fzf_colors = {
|
|||
\ 'spinner': ['fg', 'Label'],
|
||||
\ 'header': ['fg', 'Comment'] }
|
||||
|
||||
let $FZF_DEFAULT_COMMAND='fd -t f -S -2m -F -H --ignore-file .gitignore'
|
||||
let g:fzf_buffers_jump = 1
|
||||
let g:fzf_tags_command = 'ctags -R'
|
||||
let g:fzf_history_dir = '~/.local/share/fzf-history'
|
||||
let g:fzf_nvim_statusline = 0
|
||||
let g:fzf_files_options = "--preview 'bat --color \"always\" {}'"
|
||||
|
||||
command! -bang -nargs=* Rg
|
||||
\ call fzf#vim#grep(
|
||||
|
@ -255,83 +245,126 @@ let g:polyglot_disabled = ['javascript', 'jsx', 'typescript', 'json', 'python']
|
|||
let g:jsx_ext_required = 1
|
||||
let g:yats_host_keyword = 1
|
||||
"}}}
|
||||
" Colors {{{
|
||||
let g:oceanic_next_terminal_italic = 1
|
||||
colo OceanicNext
|
||||
|
||||
function! MyHighlights() abort
|
||||
highlight Trail ctermbg=red guibg=red
|
||||
call matchadd('Trail', '\s\+$', 100)
|
||||
endfunction
|
||||
|
||||
hi! Comment cterm=italic ctermbg=NONE guibg=NONE
|
||||
hi! Normal ctermbg=NONE guibg=NONE
|
||||
hi! NonText ctermbg=NONE guibg=NONE
|
||||
hi! LineNr ctermbg=232 ctermfg=237 guibg=#6699CC
|
||||
hi! CursorLineNr ctermbg=236 ctermfg=NONE
|
||||
hi! CursorLine ctermbg=236 ctermfg=NONE
|
||||
hi! StatusLine guifg=#16252b guibg=#6699CC
|
||||
hi! StatusLineNC guifg=#16252b guibg=#16252b
|
||||
hi! EndOfBuffer ctermbg=NONE ctermfg=NONE guibg=#17252c guifg=#17252c
|
||||
hi! link CocErrorSign WarningMsg
|
||||
hi! link CocWarningSign Number
|
||||
hi! link CocInfoSign Type
|
||||
" }}}
|
||||
" Statusline {{{
|
||||
let g:airline_extensions = ['quickfix', 'ale']
|
||||
let g:airline_extensions = ['quickfix', 'ale', 'coc', 'tabline']
|
||||
let g:airline#extensions#default#layout = [['a', 'c'], ['warning', 'error', 'z']]
|
||||
let g:airline_section_z = '%p%%'
|
||||
let g:airline_skip_empty_sections = 1
|
||||
let g:airline#extensions#tabline#formatter = 'unique_tail'
|
||||
let g:airline_section_z = airline#section#create(['linenr'])
|
||||
let g:airline#extensions#default#layout = [['a', 'c', 'warning', 'error'], ['x', 'z']]
|
||||
let g:airline#extensions#ale#enabled = 1
|
||||
let g:airline#extensions#ale#checking_symbol=""
|
||||
let airline#extensions#ale#show_line_numbers = 1
|
||||
let g:airline#extensions#tabline#show_splits = 0
|
||||
let g:airline#extensions#tabline#show_buffers = 0
|
||||
let g:airline#extensions#tabline#show_tab_count = 0
|
||||
let g:airline#extensions#tabline#show_tab_type = 0
|
||||
let g:airline#extensions#tabline#show_close_button = 0
|
||||
let g:airline#extensions#tabline#exclude_preview = 1
|
||||
let g:airline#extensions#tabline#tab_min_count = 2
|
||||
let g:airline#extensions#tabline#tab_nr_type = 2 " splits and tab number
|
||||
let g:airline_exclude_preview = 1
|
||||
let g:airline_powerline_fonts = 1
|
||||
let g:airline_highlighting_cache = 1
|
||||
if !exists('g:airline_symbols')
|
||||
let g:airline_symbols = {}
|
||||
endif
|
||||
let g:airline_left_sep = ''
|
||||
let g:airline_right_sep = ''
|
||||
let g:airline_symbols.linenr = 'Ξ'
|
||||
let g:airline_theme='space'
|
||||
let g:airline_left_sep = ' '
|
||||
let g:airline_right_sep = ' '
|
||||
let g:airline_left_alt_sep = ' '
|
||||
let g:airline_right_alt_sep = ' '
|
||||
let g:airline#extensions#tabline#left_sep = ' '
|
||||
let g:airline#extensions#tabline#left_alt_sep = ' '
|
||||
let g:airline#extensions#tabline#right_sep = ' '
|
||||
let g:airline#extensions#tabline#right_alt_sep = ' '
|
||||
let g:airline_theme='moonfly'
|
||||
let g:airline#extensions#ale#checking_symbol=""
|
||||
let airline#extensions#ale#show_line_numbers = 1
|
||||
" }}}
|
||||
" Colors {{{
|
||||
set termguicolors
|
||||
let g:oceanic_next_terminal_italic = 1
|
||||
colo OceanicNext
|
||||
|
||||
function! MyHighlights() abort
|
||||
highlight Trail ctermbg=red guibg=red
|
||||
call matchadd('Trail', '\s\+$', 100)
|
||||
highlight ColorColumn ctermbg=magenta
|
||||
call matchadd('ColorColumn', '\%81v', 100)
|
||||
endfunction
|
||||
|
||||
hi! VertSplit ctermbg=NONE ctermfg=NONE guibg=#080808 guifg=#080808
|
||||
hi! Comment cterm=italic ctermbg=NONE
|
||||
hi! Normal ctermbg=NONE guibg=#080808
|
||||
hi! NonText ctermbg=NONE guibg=#080808
|
||||
hi! LineNr ctermbg=232 ctermfg=237 guibg=#080808 guifg=#3a3a3a
|
||||
hi! CursorLineNr ctermbg=236 ctermfg=NONE guibg=#303030 guifg=NONE
|
||||
hi! CursorLine ctermbg=236 ctermfg=NONE guibg=#303030 guifg=NONE
|
||||
hi! SignColumn ctermbg=NONE guibg=#080808
|
||||
hi! Folded ctermbg=NONE guibg=#080808
|
||||
hi! StatusLine guibg=#080808 ctermbg=NONE
|
||||
hi! StatusLineNC guibg=#080808 ctermbg=NONE
|
||||
hi! TabLine cterm=None ctermbg=NONE guibg=#080808
|
||||
hi! TabLineSel cterm=None ctermbg=NONE guibg=#080808
|
||||
hi! TabLineFill cterm=None ctermbg=NONE guibg=#080808 guifg=#080808
|
||||
hi! EndOfBuffer ctermbg=NONE ctermfg=NONE guibg=#080808 guifg=NONE
|
||||
hi! WildMenu ctermfg=226 ctermbg=0 guifg=#ffff00 guibg=#000000
|
||||
hi! link CocErrorSign WarningMsg
|
||||
hi! link CocWarningSign Number
|
||||
hi! link CocInfoSign Type
|
||||
" }}}
|
||||
" AutoCommands {{{
|
||||
if !exists("autocommands_loaded") && has("autocmd")
|
||||
let autocommands_loaded = 1
|
||||
|
||||
" Auto remove all trailing whitespace on :w
|
||||
au BufWritePre * :%s/\s\+$//e
|
||||
|
||||
" Disables automatic commenting on newline
|
||||
au FileType * setl formatoptions-=cro
|
||||
|
||||
" Runs a script that cleans out tex build files whenever I close out of a .tex file.
|
||||
au VimLeave *.tex !texclear %
|
||||
|
||||
au ColorScheme * call MyHighlights()
|
||||
au BufWritePost ~/.Xresources,~/.Xdefaults !xrdb %
|
||||
au InsertLeave,CompleteDone * if pumvisible() == 0 | pclose | endif
|
||||
au TermOpen * setlocal nonumber norelativenumber
|
||||
au QuitPre * if empty(&buftype) | lclose | endif
|
||||
|
||||
au FocusLost,TabLeave * call PopOutOfInsertMode()
|
||||
|
||||
function! PopOutOfInsertMode()
|
||||
if v:insertmode
|
||||
feedkeys("\<C-\>\<C-n>")
|
||||
call feedkeys("\<C-\>\<C-n>")
|
||||
endif
|
||||
endfunction
|
||||
|
||||
aug aug_cursor_line
|
||||
aug on_save
|
||||
au BufWritePre * :%s/\s\+$//e " Auto remove all trailing whitespace on :w
|
||||
au BufWritePost ~/.Xresources,~/.Xdefaults !xrdb %
|
||||
au BufWritePost ~/.config/nvim/init.vim source $MYVIMRC
|
||||
au BufWritePost init.vim source $MYVIMRC " Editing in dotfiles repo
|
||||
aug END
|
||||
|
||||
aug on_quit
|
||||
au VimLeave *.tex !texclear % " Runs a script that cleans out tex build files whenever I close out of a .tex file.
|
||||
au QuitPre * if empty(&buftype) | lclose | endif
|
||||
aug END
|
||||
|
||||
aug defx_things
|
||||
" Close defx if it's the only buffer left in the window
|
||||
au WinEnter * if &ft == 'defx' && winnr('$') == 1 | q | endif
|
||||
|
||||
" Move focus to the next window if current buffer is defx
|
||||
au TabLeave * if &ft == 'defx' | wincmd w | endif
|
||||
|
||||
au FileType defx do WinEnter | call s:defx_my_settings()
|
||||
aug END
|
||||
|
||||
aug term_stuff
|
||||
au TermOpen * setlocal nonumber
|
||||
au TermOpen * setlocal laststatus=0
|
||||
au TermOpen * setlocal nocursorline
|
||||
au TermOpen * setlocal signcolumn=no
|
||||
au TermOpen * setlocal noshowmode
|
||||
au TermOpen * setlocal noruler
|
||||
aug END
|
||||
|
||||
aug miscs
|
||||
au CursorHold * silent call CocActionAsync('highlight') " Highlight symbol under cursor on CursorHold
|
||||
au ColorScheme * call MyHighlights()
|
||||
aug END
|
||||
|
||||
aug inserts
|
||||
au InsertEnter * setlocal nocursorline
|
||||
au InsertLeave * setlocal cursorline
|
||||
au InsertLeave,CompleteDone * if pumvisible() == 0 | pclose | endif
|
||||
au FocusLost,TabLeave * call PopOutOfInsertMode()
|
||||
aug END
|
||||
|
||||
aug skeletons
|
||||
autocmd BufNewFile *.py 0r ~/.config/nvim/templates/py.skeleton
|
||||
autocmd BufNewFile *.sh 0r ~/.config/nvim/templates/sh.skeleton
|
||||
au BufNewFile *.py 0r ~/.config/nvim/templates/py.skeleton
|
||||
au BufNewFile *.sh 0r ~/.config/nvim/templates/sh.skeleton
|
||||
aug END
|
||||
|
||||
aug fzf_setup
|
||||
|
@ -340,20 +373,147 @@ if !exists("autocommands_loaded") && has("autocmd")
|
|||
au TermOpen term://*FZF tnoremap <silent> <buffer> <esc> <c-c>
|
||||
aug END
|
||||
|
||||
" Automatic syntax highlighting for files
|
||||
aug set_file_types
|
||||
aug file_types
|
||||
au FileType * setl formatoptions-=cro " Disables automatic commenting on newline
|
||||
au BufRead,BufNewFile man set textwidth=80
|
||||
au BufRead,BufNewFile *.md set filetype=markdown
|
||||
au BufRead,BufNewFile *.conf set filetype=dosini
|
||||
au BufRead,BufNewFile *.conf set filetype=config
|
||||
au BufRead,BufNewFile *.bash* set filetype=sh
|
||||
au BufRead,BufNewFile *.vue set filetype=vue
|
||||
au BufRead,BufNewFile *.jsx set filetype=javascript.jsx
|
||||
au BufRead,BufNewFile *.ts set filetype=typescript
|
||||
au BufRead,BufNewFile *.tsx set filetype=typescript.tsx
|
||||
au BufRead,BufNewFile *.vue set filetype=vue
|
||||
au BufRead,BufNewFile man set textwidth=80
|
||||
au FileType typescript,json setl formatexpr=CocAction('formatSelected')
|
||||
au FileType json syntax match Comment +\/\/.\+$+
|
||||
aug END
|
||||
endif
|
||||
" }}}
|
||||
" File browser {{{
|
||||
call defx#custom#option('_', {
|
||||
\ 'columns': 'mark:indent:icons:filename',
|
||||
\ 'winwidth': 30,
|
||||
\ 'split': 'vertical',
|
||||
\ 'direction': 'botright',
|
||||
\ 'show_ignored_files': 0,
|
||||
\ 'toggle': 1,
|
||||
\ })
|
||||
call defx#custom#column('icon', {
|
||||
\ 'directory_icon': '▸',
|
||||
\ 'opened_icon': '▾',
|
||||
\ 'root_icon': ' ',
|
||||
\ })
|
||||
call defx#custom#column('mark', {
|
||||
\ 'readonly_icon': '✗',
|
||||
\ 'selected_icon': '✓',
|
||||
\ })
|
||||
|
||||
function! s:defx_my_settings() abort
|
||||
nnoremap <silent><buffer><expr> <CR> defx#do_action('drop')
|
||||
nnoremap <silent><buffer><expr> l <sid>defx_toggle_tree()
|
||||
nnoremap <silent><buffer><expr> s defx#do_action('open', 'botright vsplit')
|
||||
nnoremap <silent><buffer><expr> i defx#do_action('open', 'topleft split')
|
||||
nnoremap <silent><buffer><expr> st defx#do_action('multi', [['drop', 'tabnew'], 'quit'])
|
||||
nnoremap <silent><buffer><expr> sg defx#do_action('multi', [['drop', 'vsplit'], 'quit'])
|
||||
nnoremap <silent><buffer><expr> sp defx#do_action('multi', [['drop', 'split'], 'quit'])
|
||||
nnoremap <silent><buffer><expr> P defx#do_action('open', 'pedit')
|
||||
nnoremap <silent><buffer><expr> K defx#do_action('new_directory')
|
||||
nnoremap <silent><buffer><expr> N defx#do_action('new_multiple_files')
|
||||
nnoremap <silent><buffer><expr> dd defx#do_action('remove')
|
||||
nnoremap <silent><buffer><expr> r defx#do_action('rename')
|
||||
nnoremap <silent><buffer><expr> x defx#do_action('execute_system')
|
||||
nnoremap <silent><buffer><expr> . defx#do_action('toggle_ignored_files')
|
||||
nnoremap <silent><buffer><expr> yy defx#do_action('yank_path')
|
||||
nnoremap <silent><buffer><expr> h defx#do_action('cd', ['..'])
|
||||
nnoremap <silent><buffer><expr> ~ defx#async_action('cd')
|
||||
nnoremap <silent><buffer><expr> q defx#do_action('quit')
|
||||
|
||||
nnoremap <silent><buffer><expr><nowait> \ defx#do_action('cd', getcwd())
|
||||
nnoremap <silent><buffer><expr><nowait> c defx#do_action('copy')
|
||||
nnoremap <silent><buffer><expr><nowait> m defx#do_action('move')
|
||||
nnoremap <silent><buffer><expr><nowait> p defx#do_action('paste')
|
||||
|
||||
nnoremap <silent><buffer><expr> ' defx#do_action('toggle_select') . 'j'
|
||||
nnoremap <silent><buffer><expr> * defx#do_action('toggle_select_all')
|
||||
nnoremap <silent><buffer><expr> <C-r> defx#do_action('redraw')
|
||||
|
||||
nnoremap <silent><buffer><expr> S defx#do_action('toggle_sort', 'Time')
|
||||
endfunction
|
||||
|
||||
function! s:defx_toggle_tree() abort
|
||||
if defx#is_directory()
|
||||
return defx#do_action('open_or_close_tree')
|
||||
endif
|
||||
return defx#do_action('drop')
|
||||
endfunction
|
||||
|
||||
nnoremap <F5> :Defx<CR>
|
||||
" }}}
|
||||
" REPL {{{
|
||||
let g:my_active_terminal_job_id = -1
|
||||
|
||||
function! LaunchTerminal() range
|
||||
silent exe "normal! :12split\n"
|
||||
silent exe "normal! :terminal\n"
|
||||
exe "normal! G\n"
|
||||
call SetActiveTerminalJobID()
|
||||
endfunction
|
||||
|
||||
function! LaunchSC() range abort
|
||||
silent exe "normal! :tabnew\n"
|
||||
silent exe "normal! :terminal\n"
|
||||
exe "normal! G\n"
|
||||
call SetActiveTerminalJobID()
|
||||
call jobsend(g:my_active_terminal_job_id, "scsynth -u 57110\r")
|
||||
sleep 2200ms
|
||||
silent exe "normal! :vsplit\n"
|
||||
silent exe "normal! :terminal\n"
|
||||
exe "normal! G\n"
|
||||
call SetActiveTerminalJobID()
|
||||
call jobsend(g:my_active_terminal_job_id, "sclang -D ~/Music/LiveCoding/foxdot.scd\r")
|
||||
silent exe "normal! :tabprev\n"
|
||||
sleep 2200ms
|
||||
endfunction
|
||||
|
||||
function! LaunchFoxDot() range abort
|
||||
call LaunchTerminal()
|
||||
call jobsend(g:my_active_terminal_job_id, "ipython\r")
|
||||
sleep 2200ms
|
||||
call jobsend(g:my_active_terminal_job_id, "from FoxDot import *\r")
|
||||
endfunction
|
||||
|
||||
function! SetActiveTerminalJobID()
|
||||
let g:my_active_terminal_job_id = b:terminal_job_id
|
||||
echom "Active terminal job ID set to " . g:my_active_terminal_job_id
|
||||
endfunction
|
||||
|
||||
function! LineFlash(blinktime)
|
||||
redraw!
|
||||
exec 'sleep ' . float2nr(a:blinktime * 1000) . 'm'
|
||||
silent exe "normal! vv"
|
||||
endfunction
|
||||
|
||||
function! SendToFoxdot() range abort
|
||||
" Yank the last selection into register 'a'
|
||||
silent exe 'normal! gv"ay'
|
||||
" Flash selection
|
||||
call LineFlash(0.3)
|
||||
" Send register 'a' into the terminal
|
||||
call jobsend(g:my_active_terminal_job_id, @a)
|
||||
" Pause a moment, then send a carriage return to trigger its evaluation
|
||||
sleep 210ms
|
||||
call jobsend(g:my_active_terminal_job_id, "\r")
|
||||
endfunction
|
||||
|
||||
function! SilenceFoxDot() abort
|
||||
call jobsend(g:my_active_terminal_job_id, "Clock.clear()\r")
|
||||
endfunction
|
||||
|
||||
map <silent> <Leader>xs :call LaunchSC()<CR>
|
||||
map <silent> <Leader>xd :call LaunchFoxDot()<CR>
|
||||
map <silent> <Leader>xx :call SendToFoxdot()<CR>
|
||||
map <silent> <Leader>x. :call SilenceFoxDot()<CR>
|
||||
map <silent> <Leader>xf :set filetype=foxdot<CR>
|
||||
"}}}
|
||||
"Mappings {{{
|
||||
"Normal {{{
|
||||
" LaTeX and friends
|
||||
|
@ -363,9 +523,6 @@ nnoremap <F8> :w! \| !compiler <c-r>%<CR>
|
|||
nnoremap <leader>pu :PlugUpdate<CR>
|
||||
nnoremap <leader>pU :PlugUpgrade<CR>
|
||||
|
||||
" Use urlview to choose and open a url:
|
||||
nnoremap <leader>u :w<Home>silent <End> !urlscan<CR>
|
||||
|
||||
" Super quick search and replace
|
||||
nnoremap <leader>+ :'{,'}s/\<<C-r>=expand("<cword>")<CR>\>/
|
||||
nnoremap <leader>¿ :%s/\<<C-r>=expand("<cword>")<CR>\>/
|
||||
|
@ -387,6 +544,7 @@ nnoremap <leader>w :w!<CR>
|
|||
|
||||
" Fast exits
|
||||
nnoremap <leader>q :q!<CR>
|
||||
nnoremap <leader>Q :qa!<CR>
|
||||
|
||||
" Splits
|
||||
nnoremap <leader>T :terminal<CR>
|
||||
|
@ -422,6 +580,7 @@ noremap <silent> <Home> g<Home>
|
|||
noremap <silent> <End> g<End>
|
||||
nnoremap Y 0y$
|
||||
nnoremap <leader>y y$
|
||||
nnoremap L 0v$
|
||||
|
||||
" Alt to switch windows
|
||||
nnoremap <M-j> <C-W><C-J>
|
||||
|
@ -431,12 +590,16 @@ nnoremap <M-h> <C-W><C-H>
|
|||
|
||||
" Tab movement
|
||||
nnoremap tn :tabnew<cr>
|
||||
nnoremap tk :tabnext<cr>
|
||||
nnoremap tj :tabprev<cr>
|
||||
nnoremap th :tabfirst<cr>
|
||||
nnoremap tl :tablast<cr>
|
||||
|
||||
|
||||
" Center view on search result
|
||||
nnoremap n nzz
|
||||
nnoremap N Nzz
|
||||
nnoremap * *zz
|
||||
nnoremap # #zz
|
||||
nnoremap g* g*zz
|
||||
nnoremap g# g#zz
|
||||
"}}}
|
||||
"Insert {{{
|
||||
" Ensure that ctrl+u in insert mode can be reversed
|
||||
|
@ -472,6 +635,10 @@ vnoremap <buffer><silent><expr>k v:count ? 'k' : 'gk'
|
|||
" Line movements
|
||||
vnoremap $ $h
|
||||
|
||||
" Fix indentation without leaving visual mode
|
||||
vnoremap > >gv
|
||||
vnoremap < <gv
|
||||
|
||||
" Delete current visual selection and dump in black hole buffer before pasting
|
||||
" Used when you want to paste over something without it getting copied to
|
||||
" Vim's default buffer
|
||||
|
@ -498,7 +665,7 @@ tnoremap <M-l> <C-\><C-n><C-w>l
|
|||
:command! QA qa
|
||||
"}}}
|
||||
" }}}
|
||||
" Stuff i'll probably use if i remember to {{{
|
||||
" Functions {{{
|
||||
" Don't close window when deleting a buffer
|
||||
command! Bclose call <SID>BufcloseCloseIt()
|
||||
function! <SID>BufcloseCloseIt()
|
||||
|
@ -571,18 +738,6 @@ nnoremap <Leader>cw
|
|||
\ unlet b:sub <Bar>
|
||||
\ endif <CR>
|
||||
|
||||
" highlight long lines
|
||||
let w:longlines = matchadd('ColorColumn', '\%'.&tw.'v', &tw)
|
||||
nnoremap <silent> <Leader>ll
|
||||
\ :if exists('w:longlines') <Bar>
|
||||
\ silent! call matchdelete(w:longlines) <Bar>
|
||||
\ unlet w:longlines <Bar>
|
||||
\ elseif &textwidth > 0 <Bar>
|
||||
\ let w:longlines = matchadd('ColorColumn', '\%'.&textwidth.'v', &textwidth) <Bar>
|
||||
\ else <Bar>
|
||||
\ let w:longlines = matchadd('ColorColumn', '\%80v', 80) <Bar>
|
||||
\ endif <CR>
|
||||
|
||||
" local keyword jump
|
||||
nnoremap <Leader>fw
|
||||
\ [I:let b:jump = input('Go To: ') <Bar>
|
||||
|
|
|
@ -0,0 +1,207 @@
|
|||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
syntax case match
|
||||
|
||||
"syntax region foxdotInstrument start=/(/ skip=/\\(\\)/ end=/)/
|
||||
"syntax region foxdotArray start=/[/ end=/]/
|
||||
|
||||
syn keyword foxdotSynths
|
||||
\ loop
|
||||
\ gsynth
|
||||
\ play
|
||||
\ play1
|
||||
\ play2
|
||||
\ audioin
|
||||
\ noise
|
||||
\ dab
|
||||
\ varsaw
|
||||
\ lazer
|
||||
\ growl
|
||||
\ bass
|
||||
\ dirt
|
||||
\ crunch
|
||||
\ rave
|
||||
\ scatter
|
||||
\ charm
|
||||
\ bell
|
||||
\ gong
|
||||
\ soprano
|
||||
\ dub
|
||||
\ viola
|
||||
\ scratch
|
||||
\ klank
|
||||
\ feel
|
||||
\ glass
|
||||
\ soft
|
||||
\ quin
|
||||
\ pluck
|
||||
\ spark
|
||||
\ blip
|
||||
\ ripple
|
||||
\ creep
|
||||
\ orient
|
||||
\ zap
|
||||
\ marimba
|
||||
\ fuzz
|
||||
\ bug
|
||||
\ pulse
|
||||
\ saw
|
||||
\ snick
|
||||
\ twang
|
||||
\ karp
|
||||
\ arpy
|
||||
\ nylon
|
||||
\ donk
|
||||
\ squish
|
||||
\ swell
|
||||
\ razz
|
||||
\ sitar
|
||||
\ star
|
||||
\ piano
|
||||
\ sawbass
|
||||
\ prophet
|
||||
\ pads
|
||||
\ pasha
|
||||
\ ambi
|
||||
\ space
|
||||
\ keys
|
||||
\ dbass
|
||||
\ sinepad
|
||||
\ Clock
|
||||
\ Group
|
||||
\ Master
|
||||
|
||||
syn keyword foxdotAttribs
|
||||
\ degree
|
||||
\ oct
|
||||
\ freq
|
||||
\ dur
|
||||
\ delay
|
||||
\ buf
|
||||
\ blur
|
||||
\ amplify
|
||||
\ scale
|
||||
\ bpm
|
||||
\ sample
|
||||
\ env
|
||||
\ fmod
|
||||
\ pan
|
||||
\ rate
|
||||
\ amp
|
||||
\ midinote
|
||||
\ channel
|
||||
\ vib
|
||||
\ vibdepth
|
||||
\ slide
|
||||
\ sus
|
||||
\ slidedelay
|
||||
\ slidefrom
|
||||
\ bend
|
||||
\ benddelay
|
||||
\ coarse
|
||||
\ striate
|
||||
\ pshift
|
||||
\ hpf
|
||||
\ hpr
|
||||
\ lpf
|
||||
\ lpr
|
||||
\ bpf
|
||||
\ bpr
|
||||
\ bpnoise
|
||||
\ bits
|
||||
\ amp
|
||||
\ crush
|
||||
\ dist
|
||||
\ tmp
|
||||
\ chop
|
||||
\ tremolo
|
||||
\ beat_dur
|
||||
\ echo
|
||||
\ spin
|
||||
\ cut
|
||||
\ room
|
||||
\ mix
|
||||
\ formant
|
||||
\ shape
|
||||
\ drive
|
||||
|
||||
syn keyword foxdotVars
|
||||
\ var
|
||||
\ linvar
|
||||
\ now
|
||||
\ pitch
|
||||
\ follow
|
||||
\ PDur
|
||||
\ PWalk
|
||||
\ PStep
|
||||
\ stop
|
||||
\ sometimes
|
||||
\ often
|
||||
\ every
|
||||
\ clear
|
||||
|
||||
syn keyword foxdotScales
|
||||
\ aeolian
|
||||
\ chinese
|
||||
\ chromatic
|
||||
\ custom
|
||||
\ default
|
||||
\ diminished
|
||||
\ dorian
|
||||
\ dorian2
|
||||
\ egyptian
|
||||
\ freq
|
||||
\ harmonicMajor
|
||||
\ harmonicMinor
|
||||
\ indian
|
||||
\ justMajor
|
||||
\ justMinor
|
||||
\ locrian
|
||||
\ locrianMajor
|
||||
\ lydian
|
||||
\ lydianMinor
|
||||
\ major
|
||||
\ majorPentatonic
|
||||
\ melodicMajor
|
||||
\ melodicMinor
|
||||
\ minor
|
||||
\ minorPentatonic
|
||||
\ mixolydian
|
||||
\ phrygian
|
||||
\ prometheus
|
||||
\ romanianMinor
|
||||
\ yu
|
||||
\ zhi
|
||||
|
||||
syn match foxdotOperator '\V=\|-\|+\|*\|@\|/\|%\|&\||\|^\|~\|<\|>\|!='
|
||||
"syn match foxdotError '[$?]\|\([-+@%&|^~]\)\1\{1,}\|\([=*/<>]\)\2\{2,}\|\([+@/%&|^~<>]\)\3\@![-+*@/%&|^~<>]\|\*\*[*@/%&|^<>]\|=[*@/%&|^<>]\|-[+*@/%&|^~<]\|[<!>]\+=\{2,}\|!\{2,}=\+' display
|
||||
syn match foxdotError '\<\d\+[^0-9[:space:]]\+\>' display
|
||||
syn match foxdotComment "\v#.*$"
|
||||
syn match foxdotNumberError '\<\d[_0-9]*\D\>' display
|
||||
syn match foxdotNumberError '\<0[_0-9]\+\>' display
|
||||
syn match foxdotNumberError '\<0_x\S*\>' display
|
||||
syn match foxdotNumberError '\<0[bBxXoO][_0-9a-fA-F]*_\>' display
|
||||
syn match foxdotNumberError '\<\d[_0-9]*_\>' display
|
||||
syn match foxdotNumber '\<\d\>' display
|
||||
syn match foxdotNumber '\<[1-9][_0-9]*\d\>' display
|
||||
syn match foxdotNumber '\<\d[jJ]\>' display
|
||||
syn match foxdotNumber '\<[1-9][_0-9]*\d[jJ]\>' display
|
||||
syn match foxdotFloat '\.\d\%([_0-9]*\d\)\=\%([eE][+-]\=\d\%([_0-9]*\d\)\=\)\=[jJ]\=\>' display
|
||||
syn match foxdotFloat '\<\d\%([_0-9]*\d\)\=[eE][+-]\=\d\%([_0-9]*\d\)\=[jJ]\=\>' display
|
||||
syn match foxdotFloat '\<\d\%([_0-9]*\d\)\=\.\d\%([_0-9]*\d\)\=\%([eE][+-]\=\d\%([_0-9]*\d\)\=\)\=[jJ]\=' display
|
||||
|
||||
hi def link foxdotSynths Function
|
||||
hi def link foxdotNumber Number
|
||||
hi def link foxdotFloat Number
|
||||
hi def link foxdotScales Keyword
|
||||
hi def link foxdotAttribs Label
|
||||
hi def link foxdotVars Conditional
|
||||
hi def link foxdotComment Comment
|
||||
hi def link foxdotError Error
|
||||
hi def link foxdotNumberError Error
|
||||
hi def link foxdotOperator Operator
|
||||
|
||||
let b:current_syntax = "foxdot"
|
|
@ -0,0 +1,7 @@
|
|||
from FoxDot import *
|
||||
|
||||
Clock.clear()
|
||||
|
||||
Clock.bpm = 130
|
||||
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euf -o pipefail
|
||||
|
||||
|
|
@ -247,7 +247,6 @@ map A eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "
|
|||
map I eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"), position=7)
|
||||
|
||||
# Filesystem Operations
|
||||
map = chmod
|
||||
map pp paste
|
||||
map po paste overwrite=True
|
||||
map pP paste append=True
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
# BSPWM Hotkeys
|
||||
ctrl + alt + {q,r}
|
||||
bspc {quit,wm -r}
|
||||
|
||||
super + {_,shift} + w
|
||||
bspc node -{c,k}
|
||||
|
||||
|
@ -78,11 +81,8 @@ ctrl + alt + z
|
|||
Print
|
||||
pantallazo
|
||||
|
||||
super + F1
|
||||
fecha
|
||||
|
||||
super + {F2,F3,F4,F5,F6}
|
||||
{pila,tapa,notifocus,grabar,corte}
|
||||
super + {F1,F2,F3,F4,F5,F6,F7}
|
||||
{fecha,pila,tapa,notifocus,grabar,corte,touchpad}
|
||||
|
||||
# Media Keys
|
||||
XF86Audio{Prev,Next}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[options]
|
||||
font = NotoSansMono Nerd Font Regular 9.5
|
||||
scroll_on_output = false
|
||||
scroll_on_keystroke = true
|
||||
audible_bell = false
|
||||
|
@ -54,9 +55,4 @@ color14 = #149b93
|
|||
# white
|
||||
color7 = #a89984
|
||||
color15 = #c9c9c9
|
||||
|
||||
[hints]
|
||||
padding = 8
|
||||
font = NotoSansMono Nerd Font Regular 9.5
|
||||
|
||||
# vim: ft=dosini cms=#%s
|
|
@ -20,7 +20,7 @@ alias surfraw='surfraw -browser=$BROWSER'
|
|||
alias bm='bashmount'
|
||||
alias kat='cat'
|
||||
alias nb='newsboat --quiet'
|
||||
alias gal='sxiv -p -b -a -q'
|
||||
alias sxiv='sxiv -p -b -a -q'
|
||||
|
||||
# MAXIMUM VERBOSITY YIELDS MAXIMUM RESULTS
|
||||
alias chmod='chmod -v'
|
||||
|
@ -36,7 +36,7 @@ alias mount='mount -v | column -t'
|
|||
alias umount='umount -v'
|
||||
|
||||
# Con opciones por defecto
|
||||
alias cat='bat --color=always'
|
||||
alias cat='bat --color=always --terminal-width=-10'
|
||||
alias buscar="rg --files --color='always' --heading --line-number --no-messages --no-ignore --hidden --follow --smart-case --glob '!.git/' --glob '!node_modules/' --regexp"
|
||||
alias ncdu='ncdu --color dark -rr -x --exclude .git --exclude node_modules'
|
||||
alias ls='ls -Ft --color=always --group-directories-first'
|
||||
|
@ -58,6 +58,7 @@ alias dd='dd status=progress'
|
|||
alias dirs='dirs -v -p'
|
||||
alias dfc='dfc -dmT'
|
||||
alias diff='diff --color=auto'
|
||||
alias dif='diff-so-fancy | less --tabs=1,5 -SRX'
|
||||
|
||||
# Comandos
|
||||
alias sudo='sudo '
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Mail
|
||||
Terminal=false
|
||||
Exec=/usr/bin/termite -e neomutt %u
|
||||
MimeType=x-scheme-handler/mailto;
|
||||
|
|
|
@ -0,0 +1,278 @@
|
|||
:root {
|
||||
--tabs-border: #212121 !important;
|
||||
/* active tab left & right borders - not working in 58?*/
|
||||
--toolbox-border-bottom-color: #212121 !important;
|
||||
/* 1px line under background tabs */
|
||||
--chrome-nav-bar-controls-border-color: #212121 !important;
|
||||
/* border around url bar */
|
||||
}
|
||||
|
||||
#main-window {
|
||||
--tabs-navbar-shadow-size: 0px !important;
|
||||
}
|
||||
|
||||
#bookmarks-menu-button {
|
||||
/* 'Show your bookmarks' toolbar button */
|
||||
list-style-image: url("bookmarks.svg") !important;
|
||||
}
|
||||
|
||||
#main-window[lwthemetextcolor="bright"] #urlbar,
|
||||
#main-window[lwthemetextcolor="bright"] .searchbar-textbox {
|
||||
box-shadow: initial !important;
|
||||
background-color: rgb(20, 20, 22) !important;
|
||||
transition: background-color 0.3s !important;
|
||||
}
|
||||
|
||||
#main-window[lwthemetextcolor="bright"] #urlbar:focus-within,
|
||||
#main-window[lwthemetextcolor="bright"] .searchbar-textbox:focus-within {
|
||||
background-color: rgb(12, 12, 13) !important;
|
||||
border-color: transparent !important;
|
||||
border-image: none !important;
|
||||
}
|
||||
|
||||
#main-window[lwthemetextcolor="bright"] #urlbar:hover,
|
||||
#main-window[lwthemetextcolor="bright"] .searchbar-textbox:hover {
|
||||
box-shadow: initial !important;
|
||||
background-color: rgb(12, 12, 13) !important;
|
||||
border-color: transparent !important;
|
||||
border-image: none !important;
|
||||
}
|
||||
|
||||
toolbox {
|
||||
background-color: #141414 !important;
|
||||
color: #737f7f;
|
||||
}
|
||||
|
||||
#tabbrowser-tabs .tabbrowser-tab .tab-close-button {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
:root:-moz-any([inFullscreen], [tabsintitlebar])
|
||||
#TabsToolbar:not(:-moz-lwtheme) {
|
||||
-moz-appearance: none !important;
|
||||
}
|
||||
#TabsToolbar {
|
||||
background-color: #141414 !important;
|
||||
margin-bottom: 0px !important;
|
||||
margin-top: 0px !important;
|
||||
margin-left: 45vw !important;
|
||||
margin-right: 0px !important;
|
||||
max-height: 35px !important;
|
||||
height: 35px !important;
|
||||
}
|
||||
|
||||
#nav-bar {
|
||||
margin-bottom: 0px !important;
|
||||
margin-top: -35px !important;
|
||||
margin-left: 0px !important;
|
||||
margin-right: 55vw !important;
|
||||
border: none !important;
|
||||
border-radius: 0px;
|
||||
height: 35px;
|
||||
background-color: #141414 !important;
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
#main-window[sizemode="normal"] > #titlebar {
|
||||
-moz-appearance: initial !important;
|
||||
}
|
||||
|
||||
#stop-reload-button,
|
||||
nav-bar-overflow-button,
|
||||
#PanelUI-button,
|
||||
home-button,
|
||||
#customizableui-special-spring1,
|
||||
#customizableui-special-spring2,
|
||||
#library-button,
|
||||
#sidebar-button,
|
||||
.tabs-newtab-button,
|
||||
.titlebar-placeholder {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#back-button > .toolbarbutton-icon,
|
||||
#forward-button > .toolbarbutton-icon {
|
||||
transform: scale(0.9, 0.9) !important;
|
||||
margin-left: -2px !important;
|
||||
margin-right: -2px !important;
|
||||
}
|
||||
|
||||
#PanelUI-button,
|
||||
#customization-panel-container,
|
||||
#customization-panelWrapper .panel-arrow {
|
||||
-moz-box-ordinal-group: 0 !important;
|
||||
margin-right: -6px !important;
|
||||
}
|
||||
|
||||
#appMenu-popup {
|
||||
margin-right: -258px !important;
|
||||
}
|
||||
|
||||
#appMenu-popup .panel-arrow {
|
||||
margin-right: 248px !important;
|
||||
}
|
||||
|
||||
#nav-bar-overflow-button {
|
||||
transform: scale(0.9, 0.9) !important;
|
||||
fill: var(--color-overflow) !important;
|
||||
}
|
||||
|
||||
.tabbrowser-tab {
|
||||
height: 35px !important;
|
||||
}
|
||||
|
||||
.tabbrowser-tab::after,
|
||||
.tabbrowser-tab::before {
|
||||
border-left: none !important;
|
||||
color: #141414 !important;
|
||||
opacity: 0.2 !important;
|
||||
}
|
||||
|
||||
.tabbrowser-tab::after,
|
||||
.tabbrowser-tab::before {
|
||||
color: #212121 !important;
|
||||
opacity: 0.2 !important;
|
||||
}
|
||||
|
||||
/* New tab button color */
|
||||
|
||||
#new-tab-button,
|
||||
.tabs-newtab-button {
|
||||
fill: var(--chrome-color) !important;
|
||||
}
|
||||
|
||||
/* tab line - adjust color & size, default #737F7F 2px */
|
||||
|
||||
/* .tab-line { */
|
||||
/* background-color: #737f7f !important; */
|
||||
/* height: 0px !important; */
|
||||
/* } */
|
||||
|
||||
.tab-line {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Hide various elements */
|
||||
|
||||
/* Menu */
|
||||
|
||||
#appMenu-fxa-container,
|
||||
|
||||
/* Sign in to Sync */
|
||||
|
||||
#appMenu-fxa-container+toolbarseparator,
|
||||
|
||||
/* #appMenuRestoreLastSession, */
|
||||
|
||||
#appMenu-zoom-controls,
|
||||
#appMenu-zoom-controls+toolbarseparator,
|
||||
#appMenu-edit-controls,
|
||||
#appMenu-edit-controls+toolbarseparator,
|
||||
#appMenu-library-button,
|
||||
#appMenu-customize-button,
|
||||
#appMenu-customize-button+toolbarseparator,
|
||||
#appMenu-open-file-button,
|
||||
#appMenu-save-file-button,
|
||||
#appMenu-find-button,
|
||||
#appMenu-more-button,
|
||||
|
||||
/* URL Bar */
|
||||
#urlbar[focused="true"],
|
||||
#urlbar:hover, .searchbar-textbox:hover {
|
||||
box-shadow: 0 0 0 !important;
|
||||
border: 1 solid #535c5c !important;
|
||||
}
|
||||
|
||||
#urlbar,
|
||||
.searchbar-textbox,
|
||||
#urlbar:hover,
|
||||
.searchbar-textbox:hover {
|
||||
background: #212121 !important;
|
||||
color: #737f7f !important;
|
||||
height: 35px !important;
|
||||
padding: 2px 10px !important;
|
||||
font-size: 0.9em !important;
|
||||
outline: none !important;
|
||||
box-shadow: 0 0 0;
|
||||
border: none !important;
|
||||
-moz-appearance: none;
|
||||
margin: 5px 5px !important;
|
||||
min-height: 25px !important;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
#pageActionButton,
|
||||
#pocket-button-box,
|
||||
ar-button,
|
||||
.autocomplete-history-dropmarker,
|
||||
#identity-box,
|
||||
.urlbar-history-dropmarker.urlbar-icon.chromeclass-toolbar-additional,
|
||||
#TabsToolbar .titlebar-placeholder[type="pre-tabs"],
|
||||
#page-action-buttons,
|
||||
#PanelUI-menu-button,
|
||||
#identity-icon-labels {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
:root:not([uidensity="compact"]) .tab-content {
|
||||
padding: 0 10px;
|
||||
background-color: #141414 !important;
|
||||
color: #535c5c !important;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.CodeMirror {
|
||||
font-family: "Iosevka" !important;
|
||||
font-size: 10pt !important;
|
||||
}
|
||||
|
||||
tab .tab-icon,
|
||||
.tab-icon-image {
|
||||
filter: invert(1); /* Remove invert(1) to make it dark */
|
||||
}
|
||||
|
||||
:root:not([customizing]) .tab-line {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tabbrowser-tab[fadein]:not([pinned]) {
|
||||
max-width: none !important;
|
||||
}
|
||||
|
||||
.tabbrowser-tab:not([pinned]):hover .tab-icon-image {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.tabbrowser-tab:hover .tab-throbber,
|
||||
.tabbrowser-tab:hover .tab-icon-image,
|
||||
.tabbrowser-tab:hover .tab-sharing-icon-overlay,
|
||||
.tabbrowser-tab:hover .tab-icon-overlay,
|
||||
.tabbrowser-tab:hover .tab-label-container,
|
||||
.tabbrowser-tab:hover .tab-icon-sound {
|
||||
-moz-box-ordinal-group: 2 !important;
|
||||
}
|
||||
|
||||
/* Change the color of buttons in the nav-bar (sidebar, more, hamburger)*/
|
||||
/* nav-bar-overflow-button, */
|
||||
/* #PanelUI-menu-button, */
|
||||
/* #sidebar-button { */
|
||||
/* opacity: 1 !important; */
|
||||
/* fill: var(--primary-accent-color) !important; */
|
||||
/* } */
|
||||
|
||||
/* Put refresh button "inside" address bar */
|
||||
#pageActionSeparator {
|
||||
margin-right: 26px !important;
|
||||
}
|
||||
|
||||
#stop-reload-button .toolbarbutton-icon {
|
||||
border-radius: 0px !important;
|
||||
padding: 5px 6px !important;
|
||||
}
|
||||
|
||||
#stop-reload-button {
|
||||
transform: translateX(-62px);
|
||||
border-radius: 0px !important;
|
||||
margin-right: -32px !important;
|
||||
}
|
68
.tmux.conf
68
.tmux.conf
|
@ -13,8 +13,8 @@ set-option -g history-limit 102400
|
|||
|
||||
# Ventanas
|
||||
set -g base-index 1
|
||||
setw -g automatic-rename on
|
||||
set -g renumber-windows on
|
||||
setw -g automatic-rename on
|
||||
|
||||
# Panes
|
||||
setw -g pane-base-index 1
|
||||
|
@ -27,9 +27,11 @@ set -g visual-bell off
|
|||
set -g visual-silence off
|
||||
set -g bell-action none
|
||||
|
||||
# Vim
|
||||
# Vi
|
||||
set -g mode-keys vi
|
||||
set -g status-keys vi
|
||||
bind-key [ copy-mode
|
||||
bind-key ] paste-buffer
|
||||
|
||||
# Statusbar
|
||||
setw -g pane-border-status bottom
|
||||
|
@ -37,7 +39,7 @@ setw -g pane-border-format '─'
|
|||
setw -g automatic-rename-format "#{s/zsh//:pane_current_command}"
|
||||
setw -g pane-border-style 'fg=#080808'
|
||||
setw -g pane-active-border-style 'fg=#080808'
|
||||
set -g mode-style fg=black,bg=white
|
||||
set -g mode-style fg=black,bg=yellow
|
||||
set -g message-command-style bg=colour0,fg=colour13
|
||||
set -g message-style bg=default,fg=default
|
||||
set -g status-style bg=default,fg=colour7
|
||||
|
@ -45,12 +47,12 @@ set -g set-titles on
|
|||
set -g set-titles-string "#T"
|
||||
set -g status-interval 1
|
||||
set -g status-left ''
|
||||
set -g status-right '#(txbar)#[fg=colour4] %R #[fg=colour10]#S'
|
||||
set -g window-status-separator ' '
|
||||
set -g status-right '#(txbar)#[fg=colour4] %R #[fg=colour10]#S:#[fg=colour14]#I.#P'
|
||||
set -g window-status-separator ' '
|
||||
set -g window-status-current-style fg=colour3
|
||||
set -g window-status-activity-style bg=colour0,fg=colour15
|
||||
set -g window-status-format "#{=-15:?window_name,#{window_name},#{s/deadguy/home/:?pane_current_path,#{b:pane_current_path},}} "
|
||||
set -g window-status-current-format "#{=-15:?window_name,#{window_name},#{s/deadguy/home/:?pane_current_path,#{b:pane_current_path},}} "
|
||||
set -g window-status-format "#{=-15:?window_name,#{window_name},#{s/deadguy/home/:?pane_current_path,#{b:pane_current_path},}}"
|
||||
set -g window-status-current-format "#{=-15:?window_name,#{window_name},#{s/deadguy/home/:?pane_current_path,#{b:pane_current_path},}}"
|
||||
|
||||
# Limpiar atajos
|
||||
unbind-key -a
|
||||
|
@ -58,7 +60,6 @@ unbind-key C-b
|
|||
unbind-key space
|
||||
unbind-key '"'
|
||||
unbind-key %
|
||||
unbind-key q
|
||||
|
||||
# Prefijo
|
||||
set -g prefix M-a
|
||||
|
@ -66,12 +67,12 @@ bind-key M-a send-prefix
|
|||
|
||||
# Varios
|
||||
bind-key ? list-keys
|
||||
bind-key d detach-client
|
||||
bind-key D detach-client
|
||||
bind-key : command-prompt
|
||||
bind-key R respawn-window
|
||||
bind-key T command-prompt 'rename-window %%'
|
||||
bind-key S command-prompt 'rename-session %%'
|
||||
bind-key r source-file $HOME/.tmux.conf \; display "Config Reloaded!"
|
||||
bind-key r source-file $HOME/.tmux.conf \; display "Config Reloaded"
|
||||
|
||||
# Cambiar de pane usando alt-flecha sin prefijo
|
||||
bind-key -n M-Left select-pane -L
|
||||
|
@ -79,33 +80,31 @@ bind-key -n M-Right select-pane -R
|
|||
bind-key -n M-Up select-pane -U
|
||||
bind-key -n M-Down select-pane -D
|
||||
|
||||
# Trocar panes usando alt-shift-flecha sin prefijo
|
||||
# Redimensionar usando alt-shift-flecha sin prefijo
|
||||
bind-key -nr M-S-Left resize-pane -L 2
|
||||
bind-key -nr M-S-Right resize-pane -R 2
|
||||
bind-key -nr M-S-Up resize-pane -U 2
|
||||
bind-key -nr M-S-Down resize-pane -D 2
|
||||
bind-key -n M-z resize-pane -Z
|
||||
|
||||
# Trocar panes usando alt-shift-flecha con prefijo
|
||||
bind-key M-S-Left swap-pane -s {left-of}
|
||||
bind-key M-S-Right swap-pane -s {right-of}
|
||||
bind-key M-S-Up swap-pane -U
|
||||
bind-key M-S-Down swap-pane -D
|
||||
|
||||
# Redimensionar
|
||||
bind -r J resize-pane -D 2
|
||||
bind -r K resize-pane -U 2
|
||||
bind -r H resize-pane -L 2
|
||||
bind -r L resize-pane -R 2
|
||||
|
||||
# Dividir
|
||||
bind-key | split-window -h -c "#{pane_current_path}"
|
||||
bind-key - split-window -v -c "#{pane_current_path}"
|
||||
bind-key / split-window -fh -c "#{pane_current_path}"
|
||||
bind-key _ split-window -fv -c "#{pane_current_path}"
|
||||
bind-key X select-layout even-vertical
|
||||
|
||||
# Zoom
|
||||
bind-key -n M-z resize-pane -Z
|
||||
bind-key = select-layout even-vertical
|
||||
|
||||
# Cerrar
|
||||
bind-key q kill-window
|
||||
bind-key x kill-pane
|
||||
bind-key X kill-window
|
||||
bind-key Z kill-session
|
||||
bind-key Q kill-server
|
||||
bind-key Q kill-server
|
||||
|
||||
# Ir a ventana
|
||||
bind-key 1 select-window -t :1
|
||||
|
@ -120,29 +119,24 @@ bind-key 9 select-window -t :9
|
|||
bind-key 0 select-window -t :0
|
||||
|
||||
# Movimiento de ventanas
|
||||
bind-key Enter new-window
|
||||
bind-key Tab choose-window
|
||||
bind-key -n S-left prev
|
||||
bind-key -n S-right next
|
||||
bind-key -n C-left prev
|
||||
bind-key -n C-right next
|
||||
bind-key -n M-< swap-window -t -1
|
||||
bind-key -n M-> swap-window -t +1
|
||||
bind-key M-d display-panes
|
||||
bind-key Enter new-window
|
||||
bind-key Tab choose-window
|
||||
bind-key d display-panes
|
||||
bind-key w choose-tree -Zw "swap-window -t '%%'"
|
||||
bind-key s choose-tree -Zw "swap-pane -t '%%'"
|
||||
bind-key m choose-tree -Zw "move-pane -t '%%'"
|
||||
|
||||
# Urlview
|
||||
bind-key u capture-pane \; save-buffer /tmp/tmux-buffer \; new-window -n "urlscan" '$SHELL -c "urlscan < /tmp/tmux-buffer"'
|
||||
|
||||
# Vim
|
||||
bind-key [ copy-mode
|
||||
bind-key ] paste-buffer
|
||||
|
||||
# Copy/paste. Seleccionar texto con el mouse lo copia automaticamente al clipboard
|
||||
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xsel -i -p -b"
|
||||
bind-key -n M-S-v run "xsel -o | tmux load-buffer - ; tmux paste-buffer"
|
||||
bind-key p run "xsel -o | tmux load-buffer - ; tmux paste-buffer"
|
||||
bind -n M-S-v run "xsel -o | tmux load-buffer - ; tmux paste-buffer"
|
||||
bind-key M-S-v run "xsel -o | tmux load-buffer - ; tmux paste-buffer"
|
||||
|
||||
# FZF Locate
|
||||
bind-key -n 'M-/' new-window -n locate \; send-keys "fl && tmux kill-window\n"
|
||||
|
||||
# Prender y apagar statusbar
|
||||
bind-key & set-option -g status
|
||||
|
|
3
.zshenv
3
.zshenv
|
@ -33,7 +33,6 @@ export FZF_DEFAULT_OPTS="$FZF_DEFAULT_COLORS \
|
|||
--no-bold \
|
||||
--ansi \
|
||||
--bind ctrl-f:page-down,ctrl-b:page-up \
|
||||
--preview 'bat --color=always {}' \
|
||||
--preview-window wrap"
|
||||
|
||||
export FZF_DEFAULT_COMMAND="fd --type file --color=always --follow --hidden --exclude .git"
|
||||
|
@ -41,7 +40,7 @@ export FZF_DEFAULT_COMMAND="fd --type file --color=always --follow --hidden --ex
|
|||
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
|
||||
export FZF_ALT_C_COMMAND="bfs -type d -nohidden"
|
||||
export FZF_COMPLETION_OPTS='+c -x'
|
||||
export FZF_CTRL_T_OPTS="--select-1 --exit-0"
|
||||
export FZF_CTRL_T_OPTS="--select-1 --exit-0 --preview 'bat --color=always {}'"
|
||||
export FZF_ALT_C_OPTS="--select-1 --exit-0"
|
||||
export FZF_VIM_LOG=$(git config --get alias.l | awk '{$1=""; print $0;}' | tr -d '\r')
|
||||
# }}}
|
||||
|
|
|
@ -4,7 +4,6 @@ advcp
|
|||
alsa-plugins
|
||||
alsa-utils
|
||||
android-file-transfer
|
||||
artyfx
|
||||
atool
|
||||
audacity
|
||||
autoconf
|
||||
|
@ -19,6 +18,7 @@ cadence
|
|||
calf
|
||||
carla
|
||||
compton
|
||||
compton-conf
|
||||
cpupower
|
||||
crda
|
||||
cronie
|
||||
|
@ -34,6 +34,7 @@ downgrade
|
|||
dunst
|
||||
ecryptfs-utils
|
||||
efibootmgr
|
||||
electron
|
||||
eslint
|
||||
ethtool
|
||||
exfat-utils
|
||||
|
@ -48,7 +49,6 @@ firefox
|
|||
flex
|
||||
gcc
|
||||
ghostscript
|
||||
gimp-nufraw
|
||||
gimp-plugin-gmic
|
||||
gimp-plugin-lqr
|
||||
gpart
|
||||
|
@ -69,7 +69,6 @@ hub
|
|||
hunspell-en_US
|
||||
hunspell-es_any
|
||||
hunspell-es_ar
|
||||
infamousplugins
|
||||
iniparser
|
||||
inkscape
|
||||
intel-ucode
|
||||
|
@ -80,14 +79,13 @@ isync
|
|||
jfsutils
|
||||
jp2a
|
||||
jq
|
||||
jre-openjdk
|
||||
libzip
|
||||
licenses
|
||||
linux-rt-manjaro
|
||||
logrotate
|
||||
lrzip
|
||||
lsof
|
||||
lsp-plugins
|
||||
ltrace
|
||||
lxappearance-gtk3
|
||||
lzop
|
||||
maim
|
||||
|
@ -97,7 +95,6 @@ man-pages
|
|||
manjaro-firmware
|
||||
manjaro-release
|
||||
manjaro-system
|
||||
mda.lv2
|
||||
mediainfo
|
||||
memtest86+
|
||||
mkinitcpio-openswap
|
||||
|
@ -118,7 +115,6 @@ npm
|
|||
ntfs-3g
|
||||
oblogout
|
||||
offlineimap
|
||||
openbsd-netcat
|
||||
os-prober
|
||||
p7zip
|
||||
pacui
|
||||
|
@ -136,7 +132,6 @@ perl-text-charwidth
|
|||
pkgbrowser
|
||||
pkgconf
|
||||
prettier
|
||||
processing
|
||||
pulseaudio-bluetooth
|
||||
pulseaudio-jack
|
||||
pygmentize
|
||||
|
@ -193,16 +188,14 @@ unarj
|
|||
uncrustify
|
||||
unrar
|
||||
urlscan
|
||||
v86d
|
||||
vbam-sdl
|
||||
vice
|
||||
vint
|
||||
w3m
|
||||
weechat
|
||||
which
|
||||
wireless_tools
|
||||
wmctrl
|
||||
wmutils
|
||||
x42-plugins
|
||||
x86_energy_perf_policy
|
||||
xcb-util-cursor
|
||||
xdo
|
|
@ -1,8 +1,8 @@
|
|||
bashmount
|
||||
bfs
|
||||
cfiles
|
||||
colort-git
|
||||
curseradio-git
|
||||
deflemask
|
||||
figlet-fonts
|
||||
gimp-paint-studio
|
||||
gimp-plugin-akkana-git
|
||||
|
@ -30,9 +30,9 @@ python-proc
|
|||
python-pysdl2
|
||||
ranger-git
|
||||
realtimeconfigquickscan-git
|
||||
reaper-bin
|
||||
soulseekqt
|
||||
stylelint
|
||||
sws
|
||||
task-spooler
|
||||
terminus-font-ll2-td1
|
||||
thermald
|
|
@ -3,9 +3,10 @@ set -euf -o pipefail
|
|||
|
||||
youtube-dl --add-metadata -icx --no-cache-dir --no-call-home --audio-format mp3 --audio-quality 0 --prefer-ffmpeg --no-post-overwrites --geo-bypass -o "$HOME/Music/Albums/%(artist)s/%(album)s/%(artist)s - %(album)s - %(track_number)d %(track)s.%(ext)s" "$1"
|
||||
|
||||
echo "Trying to get cover..."
|
||||
HTML_TEMP=$(mktemp)
|
||||
curl -s "$1" > "$HTML_TEMP"
|
||||
titulo=$(grep -Po "<title>.*</title>" "$HTML_TEMP" | sed 's/<[^>]*>//g')
|
||||
disco=${titulo% | *}
|
||||
grupo=${titulo#* | }
|
||||
sed -n '/image_/s/.*rel="image_src"\s\+href="\([^"]\+\).*/\1/p' "$HTML_TEMP" | xargs -r curl -s --create-dirs -o "$HOME/Music/Albums/${grupo}/${disco}/cover.jpg"
|
||||
sed -n '/image_/s/.*rel="image_src"\s\+href="\([^"]\+\).*/\1/p' "$HTML_TEMP" | xargs -r curl -s --create-dirs -o "$HOME/Music/Albums/${grupo}/${disco}/cover.jpg" && echo "Got it" || echo "Failed :("
|
||||
|
|
35
bin/correo
35
bin/correo
|
@ -1,29 +1,38 @@
|
|||
#!/usr/bin/env sh
|
||||
# Sync mail and give notification if there is new mail.
|
||||
|
||||
pgrep -u "$USER" >/dev/null || exit
|
||||
|
||||
pgrep -x mbsync >/dev/null && exit
|
||||
ping -q -c 1 1.1.1.1 > /dev/null || exit
|
||||
|
||||
export DISPLAY=:0.0
|
||||
|
||||
notify() { notify-send -i ~/Pictures/.icn/correo.png "You've got mail" "$2 new message(s) in \`$1\` " ;}
|
||||
syncandnotify() {
|
||||
acc="$(echo "$account" | sed "s/.*\///")"
|
||||
mbsync "$acc"
|
||||
new=$(find "$HOME/.local/share/mail/$acc/INBOX/new/" "$HOME/.local/share/mail/$acc/Inbox/new/" "$HOME/.local/share/mail/$acc/inbox/new/" -type f -newer "$HOME/.config/mutt/.mailsynclastrun" 2> /dev/null)
|
||||
newcount=$(echo "$new" | sed '/^\s*$/d' | wc -l)
|
||||
if [ "$newcount" -gt "0" ]; then
|
||||
for file in $new; do
|
||||
# Extract subject and sender from mail.
|
||||
from=$(awk '/^From: / && ++n ==1,/^\<.*\>:/' "$file" | perl -CS -MEncode -ne 'print decode("MIME-Header", $_)' | awk '{ $1=""; if (NF>=3)$NF=""; print $0 }' | sed 's/^[[:blank:]]*[\"'\''\<]*//;s/[\"'\''\>]*[[:blank:]]*$//')
|
||||
subject=$(awk '/^Subject: / && ++n == 1,/^\<.*\>: / && ++i == 2' "$file" | head -n-1 | perl -CS -MEncode -ne 'print decode("MIME-Header", $_)' | sed 's/^Subject: //' | sed 's/^{[[:blank:]]*[\"'\''\<]*//;s/[\"'\''\>]*[[:blank:]]*$//' | tr -d '\n')
|
||||
notify-send -i ~/Pictures/.icn/correo.png "New message in $acc" "$from: $subject" &
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
# Run mbsync. You can feed this script different settings.
|
||||
if [ $# -eq 0 ]; then
|
||||
mbsync -a
|
||||
if [ "$#" -eq "0" ]; then
|
||||
accounts="$(awk '/^Channel/ {print $2}' "$HOME/.mbsyncrc")"
|
||||
else
|
||||
mbsync "$@"
|
||||
accounts=$*
|
||||
fi
|
||||
|
||||
# Check all accounts/mailboxes for new mail. Notify if there is new content.
|
||||
for account in "$HOME/.local/share/mail/"*
|
||||
for account in $accounts
|
||||
do
|
||||
acc="$(echo "$account" | sed "s/.*\///")"
|
||||
newcount=$(find "$HOME/.local/share/mail/$acc/INBOX/new/" "$HOME/.local/share/mail/$acc/Inbox/new/" "$HOME/.local/share/mail/$acc/inbox/new/" -type f -newer "$HOME/.config/mutt/.mailsynclastrun" 2> /dev/null | wc -l)
|
||||
[ "$newcount" -gt "0" ] && notify "$acc" "$newcount" &
|
||||
syncandnotify &
|
||||
done
|
||||
|
||||
wait
|
||||
notmuch new 2>/dev/null
|
||||
|
||||
#Create a touch file that indicates the time of the last run of mailsync
|
||||
touch "$HOME/.config/mutt/.mailsynclastrun"
|
||||
|
|
2
bin/deci
2
bin/deci
|
@ -3,5 +3,5 @@
|
|||
# Showing off during live shows
|
||||
|
||||
echo " "
|
||||
toilet -t -f 3d " $@ " | lolcat
|
||||
toilet -t -f 3d " $* " | lolcat
|
||||
echo " "
|
||||
|
|
4
bin/fgit
4
bin/fgit
|
@ -2,10 +2,10 @@
|
|||
set -euf -o pipefail
|
||||
|
||||
git log --graph --color=always \
|
||||
--format="%C(auto)%h%d %s %C(black)%C(bold)%cr" "$@" |
|
||||
--pretty=format:"%C(yellow)%H%C(green)%d%C(reset)%n%x20%cd%n%x20%cn%C(blue)%x20(%ce)%x20%C(cyan)[gpg:%GK%x20%G?]%C(reset)%n%x20%s%n" "$@" |
|
||||
fzf --ansi --exit-0 --preview "echo {} | grep -o '[a-f0-9]\{7\}' | head -1 | xargs -I % sh -c 'git show --color=always %'" \
|
||||
--bind "enter:execute:
|
||||
(grep -o '[a-f0-9]\{7\}' | head -1 |
|
||||
xargs -I % sh -c 'git show --color=always % | less -R') << 'FZF-EOF'
|
||||
xargs -I % sh -c 'git show --color=always % | less --tabs=4 -RFX') << 'FZF-EOF'
|
||||
{}
|
||||
FZF-EOF"
|
||||
|
|
2
bin/fk
2
bin/fk
|
@ -1,7 +1,7 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euf -o pipefail
|
||||
|
||||
pid=$(ps -ef | sed 1d | fzf-tmux -m | awk '{print $2}')
|
||||
pid=$(ps -ef | sed 1d | fzf --exit-0 -m | awk '{print $2}')
|
||||
|
||||
if [ "x$pid" != "x" ]
|
||||
then
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euf -o pipefail
|
||||
|
||||
pacman -Qqettn > ~/paketes.txt
|
||||
pacman -Qqettm > ~/paurketos.txt
|
||||
echo "Actualizando la lista de paquetes..."
|
||||
locate -e --regex "\.pac(new|save)$" > ~/Documents/pacman/pacnew.log
|
||||
pacman -Qqettn > ~/Documents/pacman/paketes.txt
|
||||
pacman -Qqettm > ~/Documents/pacman/paurketos.txt
|
||||
echo "Listo."
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
sxiv -p -b -a "$@"
|
||||
sxiv -p -q -b -a "$@"
|
||||
|
|
|
@ -44,5 +44,5 @@ count="$(listfiles | grep -a -m 1 -ZznF "$target" | cut -d: -f1)"
|
|||
if [ -n "$count" ]; then
|
||||
listfiles | xargs -0 sxiv -p -b -n "$count" --
|
||||
else
|
||||
sxiv -p -b -- "$@" # fallback
|
||||
sxiv -p -b -q -- "$@" # fallback
|
||||
fi
|
||||
|
|
2
bin/tapa
2
bin/tapa
|
@ -6,7 +6,7 @@ set -euf -o pipefail
|
|||
music_dir="$HOME/Music/Albums"
|
||||
|
||||
# What should the covers be resized to in pixels
|
||||
cover_resize="150"
|
||||
cover_resize="100"
|
||||
|
||||
# What is the cover file called?
|
||||
img_reg=".*/(cover|front|folder|art).(jpg|jpeg|png|gif)$"
|
||||
|
|
7
bin/tsd
7
bin/tsd
|
@ -1,15 +1,18 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euf -o pipefail
|
||||
|
||||
icon1="/home/deadguy/Pictures/.icn/trans1.png"
|
||||
icon2="/home/deadguy/Pictures/.icn/trans2.png"
|
||||
|
||||
transmission-daemon --foreground --log-info 2>&1 | while read -r line; do
|
||||
echo "$line" |
|
||||
grep -v "announcer.c:\|platform.c:\|announce done (tr-dht.c:" |
|
||||
grep -v "Saved.*variant.c:" |
|
||||
while read -r line; do
|
||||
echo "$line" | grep -q "Queued for verification (verify.c:" &&
|
||||
notify-send -i /home/deadguy/Pictures/.icn/trans1.png "Transmission Started" "${line#* * }"
|
||||
notify-send -i "$icon1" "Transmission Started" "${line#* * }"
|
||||
echo "$line" | grep -q "changed from .Incomplete. to .Complete." &&
|
||||
notify-send -i /home/deadguy/Pictures/.icn/trans2.png "Transmission Complete" "${line#* * }"
|
||||
notify-send -i "$icon2" "Transmission Complete" "${line#* * }"
|
||||
echo "$line" | systemd-cat --identifier="TransWrap" --priority=5
|
||||
done > /dev/null 2>&1
|
||||
done & disown
|
||||
|
|
Reference in New Issue