commit
bcfda47358
@ -0,0 +1,6 @@
|
||||
# dotfiles
|
||||
|
||||
`git clone git@github.com:D4VIDB2/dotfiles.git ~/.dotfiles`
|
||||
|
||||
## using 'stow'
|
||||
[DONT DO THAT WITH YOUR DOTFILES (DO THIS)](https://youtu.be/tkUllCAGs3c)
|
@ -0,0 +1,22 @@
|
||||
#
|
||||
# ~/.bashrc
|
||||
#
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
[[ $- != *i* ]] && return
|
||||
|
||||
PS1='\n\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\n\$ '
|
||||
|
||||
stty -ixon # Disable Ctrl-s and Ctrl-q
|
||||
HISTSIZE=1000
|
||||
|
||||
if [ -f ~/.shell_aliases ]; then
|
||||
source ~/.shell_aliases
|
||||
fi
|
||||
|
||||
export PATH=$PATH:$HOME/.cargo/bin
|
||||
export PATH=$PATH:$HOME/.pub-cache/bin
|
||||
|
||||
#source "$HOME/.cargo/env"
|
||||
|
||||
tmux
|
@ -0,0 +1,34 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# main packages
|
||||
yay -Sy vim neovim tmux zsh plasma-wayland-session plasma-systemmonitor gparted gimp htop libreoffice-fresh wireshark-qt chromium stow exa thefuck xclip --needed
|
||||
|
||||
# extra packages
|
||||
yay -Sy dotnet-runtime dotnet-sdk aspnet-runtime grub-customizer xournalpp rustup cargo lazygit --needed
|
||||
|
||||
# autorotation on tablet
|
||||
yay -Sy iio-sensor-proxy --needed
|
||||
|
||||
# AUR packages
|
||||
yay -Sy pazi spotify tty-clock tuxy-git members --needed
|
||||
|
||||
|
||||
# oh my zsh
|
||||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" &&
|
||||
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting &&
|
||||
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
|
||||
|
||||
|
||||
# LunarVim
|
||||
yay -Sy python-pynvim
|
||||
LV_BRANCH='release-1.3/neovim-0.9' bash <(curl -s https://raw.githubusercontent.com/LunarVim/LunarVim/release-1.3/neovim-0.9/utils/installer/install.sh)
|
||||
|
||||
|
||||
# dotfiles
|
||||
cd ~
|
||||
git clone https://github.com:D4VIDB2/dotfiles.git .dotfiles
|
||||
cd .dotfiles
|
||||
rm ~/.bashrc; stow --no-filding bash
|
||||
rm ~/.tmux.conf; stow --no-filding tmux
|
||||
rm ~/.zshrc; stow --no-filding zsh
|
||||
stow --no-filding lvim
|
@ -0,0 +1,25 @@
|
||||
-- Read the docs: https://www.lunarvim.org/docs/configuration
|
||||
-- Video Tutorials: https://www.youtube.com/watch?v=sFA9kX-Ud_c&list=PLhoH5vyxr6QqGu0i7tt_XoVK9v-KvZ3m6
|
||||
-- Forum: https://www.reddit.com/r/lunarvim/
|
||||
-- Discord: https://discord.com/invite/Xb9B4Ny
|
||||
|
||||
vim.opt.shiftwidth = 4 -- the number of spaces inserted for each indentation
|
||||
vim.opt.tabstop = 4 -- insert 4 spaces for a tab
|
||||
vim.opt.softtabstop = 4 -- insert 4 spaces for a tab
|
||||
vim.opt.relativenumber = true -- relative line numbers
|
||||
vim.opt.wrap = true -- wrap lines
|
||||
vim.opt.smartcase = true
|
||||
vim.opt.mouse = ""
|
||||
|
||||
|
||||
lvim.plugins = {
|
||||
{ "octol/vim-cpp-enhanced-highlight" }
|
||||
}
|
||||
|
||||
|
||||
-- add `svls` to `skipped_servers` list
|
||||
vim.list_extend(lvim.lsp.automatic_configuration.skipped_servers, { "svls" })
|
||||
-- remove `svlangserver` from `skipped_servers` list
|
||||
lvim.lsp.automatic_configuration.skipped_servers = vim.tbl_filter(function(server)
|
||||
return server ~= "svlangserver"
|
||||
end, lvim.lsp.automatic_configuration.skipped_servers)
|
@ -0,0 +1,430 @@
|
||||
let mapleader=" "
|
||||
set timeout timeoutlen=3000
|
||||
|
||||
set mouse=
|
||||
syntax on
|
||||
|
||||
set nocompatible
|
||||
set noerrorbells
|
||||
set number
|
||||
set relativenumber
|
||||
set incsearch
|
||||
set ignorecase
|
||||
set smartcase
|
||||
set ruler
|
||||
set splitright
|
||||
set splitbelow
|
||||
set tabstop=4 softtabstop=4
|
||||
set shiftwidth=4
|
||||
set expandtab
|
||||
set smartindent
|
||||
set noswapfile
|
||||
set nobackup
|
||||
set undodir=~/.vim/undodir
|
||||
set undofile
|
||||
set nohlsearch
|
||||
set cursorline
|
||||
set inccommand=nosplit " highlight substitude
|
||||
set scrolloff=4
|
||||
|
||||
|
||||
|
||||
" PLUGINS:
|
||||
call plug#begin('~/.config/nvim/autoload/plugged')
|
||||
|
||||
Plug 'scrooloose/nerdcommenter'
|
||||
Plug 'preservim/nerdtree'
|
||||
Plug 'zhimsel/vim-stay' " Stay at my cursor
|
||||
|
||||
" Colorthemes
|
||||
Plug 'morhetz/gruvbox'
|
||||
Plug 'navarasu/onedark.nvim'
|
||||
|
||||
" Fuzzy file search
|
||||
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } " fuzzy file finder
|
||||
Plug 'junegunn/fzf.vim'
|
||||
Plug 'chengzeyi/fzf-preview.vim' " fzf preview for more things
|
||||
Plug 'airblade/vim-rooter'
|
||||
|
||||
" Show git modifications to file
|
||||
"Plug 'vim-scripts/vim-gitgutter'
|
||||
|
||||
Plug 'duane9/nvim-rg'
|
||||
|
||||
Plug 'sbdchd/vim-run' " run current file
|
||||
|
||||
Plug 'octol/vim-cpp-enhanced-highlight'
|
||||
Plug 'nicwest/vim-http' " Simple wrapper over curl and http syntax highlighting.
|
||||
Plug 'tpope/vim-markdown' " Markdown syntax highlighting
|
||||
|
||||
" LSP:
|
||||
" Collection of common configurations for the Nvim LSP client
|
||||
Plug 'neovim/nvim-lspconfig'
|
||||
" Optional
|
||||
Plug 'williamboman/nvim-lsp-installer' " Automaticlly install language server
|
||||
Plug 'nvim-lua/popup.nvim'
|
||||
Plug 'nvim-lua/plenary.nvim'
|
||||
Plug 'nvim-treesitter/nvim-treesitter'
|
||||
Plug 'nvim-telescope/telescope.nvim'
|
||||
|
||||
Plug 'hrsh7th/nvim-cmp' " Autocompletion framework
|
||||
Plug 'hrsh7th/cmp-nvim-lsp' " cmp LSP completion
|
||||
Plug 'hrsh7th/cmp-path' " cmp Path completion
|
||||
Plug 'hrsh7th/cmp-buffer'
|
||||
Plug 'saadparwaiz1/cmp_luasnip' " Snippets
|
||||
Plug 'L3MON4D3/LuaSnip'
|
||||
|
||||
Plug 'stevearc/aerial.nvim' " Code outline window
|
||||
|
||||
|
||||
" Adds extra functionality over rust analyzer
|
||||
Plug 'simrat39/rust-tools.nvim'
|
||||
|
||||
" Better python sytax highlighting
|
||||
Plug 'numirias/semshi', { 'do': ':UpdateRemotePlugins' }
|
||||
|
||||
" LaTeX support
|
||||
" Plug 'vim-latex/vim-latex'
|
||||
|
||||
call plug#end()
|
||||
|
||||
|
||||
|
||||
" COLORSCHEME:
|
||||
colorscheme gruvbox
|
||||
set background=dark
|
||||
|
||||
|
||||
|
||||
" PLUGIN CONFIGURATION:
|
||||
" run current file plugin
|
||||
let g:run_cmd_python = ['python3']
|
||||
let g:run_split = 'right'
|
||||
|
||||
" HTTP
|
||||
let g:vim_http_split_vertically = 1
|
||||
|
||||
" Markdown
|
||||
let g:markdown_fenced_languages = ['html', 'python', 'bash=sh', 'xml', 'javascript', 'json', 'asm', 'cs', 'c', 'cpp']
|
||||
let g:markdown_minlines = 100
|
||||
|
||||
" Vim rooter
|
||||
"let g:rooter_manual_only = 1
|
||||
let g:rooter_patterns = ['_darcs', '.hg', '.bzr', '.svn', '*.csproj', '*.sln', 'Makefile', 'package.json', '.git']
|
||||
|
||||
let g:python_host_prog = '/usr/bin/python2'
|
||||
let g:python3_host_prog = '/usr/bin/python3'
|
||||
|
||||
|
||||
" LSP:
|
||||
" Set completeopt to have a better completion experience
|
||||
" :help completeopt
|
||||
" menuone: popup even when there's only one match
|
||||
" noinsert: Do not insert text until a selection is made
|
||||
" noselect: Do not select, force user to select one from the menu
|
||||
set completeopt=menuone,noinsert,noselect,preview
|
||||
|
||||
" Avoid showing extra messages when using completion
|
||||
"set shortmess+=c
|
||||
|
||||
lua <<EOF
|
||||
-- Mappings.
|
||||
-- See `:help vim.diagnostic.*` for documentation on any of the below functions
|
||||
local opts = { noremap=true, silent=true }
|
||||
vim.api.nvim_set_keymap('n', '<space>e', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
|
||||
vim.api.nvim_set_keymap('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<CR>', opts)
|
||||
vim.api.nvim_set_keymap('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<CR>', opts)
|
||||
vim.api.nvim_set_keymap('n', '<space>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', opts)
|
||||
|
||||
-- Use an on_attach function to only map the following keys
|
||||
-- after the language server attaches to the current buffer
|
||||
local on_attach = function(client, bufnr)
|
||||
local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
|
||||
local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end
|
||||
|
||||
-- Enable completion triggered by <c-x><c-o>
|
||||
buf_set_option('omnifunc', 'v<cmd>lua.vim.lsp.omnifunc')
|
||||
|
||||
-- Mappings.
|
||||
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||
buf_set_keymap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
|
||||
buf_set_keymap('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
|
||||
buf_set_keymap('n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
|
||||
buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
|
||||
buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
|
||||
--buf_set_keymap('n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
|
||||
--buf_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
|
||||
--buf_set_keymap('n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
|
||||
buf_set_keymap('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
|
||||
buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
|
||||
buf_set_keymap('n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
|
||||
buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
|
||||
buf_set_keymap('n', '<space>=', '<cmd>lua vim.lsp.buf.format { async = true }<CR>', opts)
|
||||
|
||||
end
|
||||
|
||||
require("nvim-lsp-installer").setup {
|
||||
automatic_installation = true
|
||||
}
|
||||
|
||||
local executors = require "rust-tools.executors"
|
||||
require("rust-tools").setup {
|
||||
-- dap = {
|
||||
-- adapter = require('rust-tools.dap').get_codelldb_adapter(
|
||||
-- codelldb_path, liblldb_path)
|
||||
-- },
|
||||
-- tools = {
|
||||
-- executor = executors.toggleterm,
|
||||
-- runnables = {
|
||||
-- use_telescope = true,
|
||||
-- },
|
||||
-- autoSetHints = true,
|
||||
-- inlay_hints = { show_parameter_hints = true },
|
||||
-- hover_actions = { auto_focus = true }
|
||||
-- },
|
||||
server = {
|
||||
-- cmd = { "~/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rust-analyzer" },
|
||||
-- on_attach = function(client, bufnr)
|
||||
-- require("lvim.lsp").common_on_attach(client, bufnr)
|
||||
-- local rt = require "rust-tools"
|
||||
-- vim.keymap.set("n", "<leader>lA", rt.code_action_group.code_action_group, { buffer = bufnr })
|
||||
-- end,
|
||||
-- on_init = require("lvim.lsp").common_on_init,
|
||||
settings = {
|
||||
["rust-analyzer"] = {
|
||||
rustfmt = {
|
||||
extraArgs = { "+nightly", },
|
||||
},
|
||||
-- diagnostics = {
|
||||
-- disabled = { "unresolved-proc-macro" },
|
||||
lens = {
|
||||
enable = true,
|
||||
},
|
||||
checkOnSave = {
|
||||
command = "clippy",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
-- Add additional capabilities supported by nvim-cmp
|
||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities)
|
||||
|
||||
-- Setup language servers
|
||||
local nvim_lsp = require('lspconfig')
|
||||
local servers = { 'clangd', 'rust_analyzer', 'pyright', 'omnisharp', 'html', 'cssls', 'texlab', 'gopls', 'tsserver'}
|
||||
for _, server in ipairs(servers) do
|
||||
local config = {
|
||||
on_attach = on_attach,
|
||||
capabilities = capabilities,
|
||||
}
|
||||
|
||||
if server == "omnisharp" then
|
||||
local pid = vim.fn.getpid()
|
||||
local omnisharp_bin = '~/.local/share/nvim/lsp_servers/omnisharp/omnisharp/OmniSharp'
|
||||
config.cmd = { omnisharp_bin, "--languageserver" , "--hostPID", tostring(pid) }
|
||||
end
|
||||
|
||||
nvim_lsp[server].setup(config)
|
||||
end
|
||||
|
||||
-- luasnip setup
|
||||
local luasnip = require 'luasnip'
|
||||
|
||||
-- Setup Completion
|
||||
-- See https://github.com/hrsh7th/nvim-cmp#basic-configuration
|
||||
local cmp = require'cmp'
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
luasnip.lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
mapping = {
|
||||
['<C-n>'] = cmp.mapping.select_next_item(),
|
||||
['<C-p>'] = cmp.mapping.select_prev_item(),
|
||||
-- Add tab support
|
||||
['<Tab>'] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
elseif luasnip.expand_or_jumpable() then
|
||||
luasnip.expand_or_jump()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { 'i', 's' }),
|
||||
['<S-Tab>'] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
elseif luasnip.jumpable(-1) then
|
||||
luasnip.jump(-1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { 'i', 's' }),
|
||||
['<C-u>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-d>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-Space>'] = cmp.mapping.complete(),
|
||||
['<C-e>'] = cmp.mapping.close(),
|
||||
['<CR>'] = cmp.mapping.confirm({
|
||||
behavior = cmp.ConfirmBehavior.Replace,
|
||||
select = true,
|
||||
})
|
||||
},
|
||||
|
||||
-- Installed sources
|
||||
sources = {
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'luasnip' },
|
||||
{ name = 'path' },
|
||||
{ name = 'buffer' },
|
||||
},
|
||||
})
|
||||
|
||||
require('aerial').setup({
|
||||
-- optionally use on_attach to set keymaps when aerial has attached to a buffer
|
||||
on_attach = function(bufnr)
|
||||
-- Jump forwards/backwards with '{' and '}'
|
||||
vim.keymap.set('n', '[m', '<cmd>AerialPrev<CR>', {buffer = bufnr})
|
||||
vim.keymap.set('n', ']m', '<cmd>AerialNext<CR>', {buffer = bufnr})
|
||||
end
|
||||
})
|
||||
-- You probably also want to set a keymap to toggle aerial
|
||||
vim.keymap.set('n', '<leader>a', '<cmd>AerialToggle!<CR>')
|
||||
EOF
|
||||
|
||||
" have a fixed column for the diagnostics to appear in
|
||||
" this removes the jitter when warnings/errors flow in
|
||||
set signcolumn=yes
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
" Shebang line:
|
||||
function! Hashbang(portable, permission, RemExt)
|
||||
let shells = {
|
||||
\ 'awk': "awk",
|
||||
\ 'sh': "bash",
|
||||
\ 'hs': "runhaskell",
|
||||
\ 'jl': "julia",
|
||||
\ 'lua': "lua",
|
||||
\ 'mak': "make",
|
||||
\ 'js': "node",
|
||||
\ 'm': "octave",
|
||||
\ 'pl': "perl",
|
||||
\ 'php': "php",
|
||||
\ 'py': "python3",
|
||||
\ 'r': "Rscript",
|
||||
\ 'rb': "ruby",
|
||||
\ 'scala': "scala",
|
||||
\ 'tcl': "tclsh",
|
||||
\ 'tk': "wish"
|
||||
\ }
|
||||
|
||||
let extension = expand("%:e")
|
||||
if has_key(shells,extension)
|
||||
let fileshell = shells[extension]
|
||||
|
||||
if a:portable
|
||||
let line = "#!/usr/bin/env " . fileshell
|
||||
else
|
||||
let line = "#!" . system("which " . fileshell)
|
||||
endif
|
||||
|
||||
0put = line
|
||||
|
||||
if a:permission
|
||||
:autocmd BufWritePost * :autocmd VimLeave * :!chmod u+x %
|
||||
endif
|
||||
if a:RemExt
|
||||
:autocmd BufWritePost * :autocmd VimLeave * :!mv % "%:p:r"
|
||||
endif
|
||||
endif
|
||||
endfunction
|
||||
|
||||
|
||||
|
||||
|
||||
" Automaticly trim all trailing whitespace on save(write)
|
||||
function! <SID>StripTrailingWhitespaces()
|
||||
let l = line(".")
|
||||
let c = col(".")
|
||||
%s/\s\+$//e
|
||||
call cursor(l, c)
|
||||
endfun
|
||||
autocmd BufWritePre * :call <SID>StripTrailingWhitespaces()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
" AUTOCMD:
|
||||
|
||||
autocmd BufNewFile,BufRead *.pde set syntax=java
|
||||
autocmd BufNewFile,BufRead *.pde set filetype=java
|
||||
autocmd BufNewFile,BufRead *.ino set syntax=arduino
|
||||
autocmd BufNewFile,BufRead *.ino set filetype=arduino
|
||||
|
||||
autocmd BufNewFile *.* :call Hashbang(1,1,0)
|
||||
|
||||
|
||||
|
||||
" REMAPPING:
|
||||
|
||||
nnoremap <leader>rr :Run <CR>
|
||||
|
||||
" disable spacebar (don't move forward)
|
||||
nnoremap <SPACE> <Nop>
|
||||
|
||||
" quickly move through panes
|
||||
nnoremap <C-J> <C-W><C-J>
|
||||
nnoremap <C-K> <C-W><C-K>
|
||||
nnoremap <C-L> <C-W><C-L>
|
||||
nnoremap <C-H> <C-W><C-H>
|
||||
|
||||
" resize panes
|
||||
nnoremap <silent> <leader>+ :vertical resize +5<CR>
|
||||
nnoremap <silent> <leader>- :vertical resize -5<CR>
|
||||
nnoremap <silent> <leader>* :resize +5<CR>
|
||||
nnoremap <silent> <leader>/ :resize -5<CR>
|
||||
|
||||
nnoremap <silent> <leader>fg :GFiles<CR>
|
||||
nnoremap <silent> <leader>ff :Files<CR>
|
||||
|
||||
vnoremap <leader>p "_dP
|
||||
|
||||
|
||||
|
||||
" MUST HAVE VIM REMAPS:
|
||||
|
||||
" Number 5: Behave Vim
|
||||
nnoremap Y y$
|
||||
|
||||
" Number 4: Keeping it centered
|
||||
nnoremap n nzzzv
|
||||
nnoremap N Nzzzv
|
||||
|
||||
" Number 3: Undo break points
|
||||
inoremap . .<c-g>u
|
||||
inoremap , ,<c-g>u
|
||||
inoremap ! !<c-g>u
|
||||
inoremap ? ?<c-g>u
|
||||
inoremap _ _<c-g>u
|
||||
inoremap - -<c-g>u
|
||||
inoremap <space> <space><c-g>u
|
||||
|
||||
" Number 2: Jumplist mutations
|
||||
nnoremap <expr> k (v:count > 5 ? "m'" . v:count : "") . 'k'
|
||||
nnoremap <expr> j (v:count > 5 ? "m'" . v:count : "") . 'j'
|
||||
|
||||
" Number 1: Moving text
|
||||
vnoremap J :m '>+1<CR>gv=gv
|
||||
vnoremap K :m '<-2<CR>gv=gv
|
||||
nnoremap <leader>j :m .+1<CR>==
|
||||
nnoremap <leader>k :m .-2<CR>==
|
||||
vnoremap < <gv
|
||||
vnoremap > >gv
|
||||
|
@ -0,0 +1,46 @@
|
||||
# Send prefix
|
||||
set-option -g prefix C-a
|
||||
unbind-key C-a
|
||||
bind-key C-a send-prefix
|
||||
|
||||
# Use Alt-arrow keys to switch panes
|
||||
bind -n M-h select-pane -L
|
||||
bind -n M-l select-pane -R
|
||||
bind -n M-k select-pane -U
|
||||
bind -n M-j select-pane -D
|
||||
|
||||
# prefix + j/k to switch windows
|
||||
bind-key j previous-window
|
||||
bind-key k next-window
|
||||
|
||||
# Mouse mode
|
||||
setw -g mouse off
|
||||
|
||||
# set vim-like keybidings in buffer mode
|
||||
setw -g mode-keys vi
|
||||
|
||||
# fix escape key delay in vim
|
||||
set -s escape-time 0
|
||||
|
||||
set -g history-limit 20000
|
||||
set -g default-terminal screen-256color
|
||||
set-option -g default-shell /usr/bin/zsh
|
||||
set-option -g focus-events on
|
||||
|
||||
set-option -sa terminal-overrides ',xterm-256color:RGB'
|
||||
|
||||
# Set easier window split keys
|
||||
bind-key h split-window -v -c "#{pane_current_path}"
|
||||
bind-key v split-window -h -c "#{pane_current_path}"
|
||||
|
||||
bind-key c new-window -c "#{pane_current_path}"
|
||||
|
||||
# Easy config reload
|
||||
bind-key r source-file ~/.tmux.conf \; display-message "~/.tmux.conf reloaded."
|
||||
|
||||
# yank to clipboard
|
||||
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'
|
||||
|
||||
# Start window and pane indexes from 1 and not 0
|
||||
set -g base-index 1
|
||||
setw -g pane-base-index 1
|
@ -0,0 +1,42 @@
|
||||
# color
|
||||
alias ls='ls --color=auto --group-directories-first'
|
||||
alias grep='grep --color=auto'
|
||||
alias ip='ip -color=auto'
|
||||
|
||||
#alias la='ls -lahF'
|
||||
alias xclip='xclip -selection clipboard'
|
||||
alias xpaste='xclip -o -selection clipboard'
|
||||
alias more='less'
|
||||
alias ..='cd ..'
|
||||
alias cp='cp -iv'
|
||||
alias mv='mv -iv'
|
||||
alias rm='rm -v'
|
||||
alias free='free -m'
|
||||
|
||||
#alias ccat="highlight --out-format=ansi"
|
||||
alias p="nocorrect sudo pacman"
|
||||
alias sc="sudo systemctl"
|
||||
alias psg="nocorrect ps aux | grep"
|
||||
#alias suod='sudo'
|
||||
|
||||
# git
|
||||
alias g='git'
|
||||
alias gst='git status'
|
||||
alias gdiff='git diff'
|
||||
alias gl='git pull'
|
||||
alias gp='git push'
|
||||
alias gc='git commit -v'
|
||||
alias gca='git commit -v -a'
|
||||
alias gcm='git commit -m'
|
||||
alias gcam='git commit -a -m'
|
||||
alias gco='git checkout'
|
||||
alias gb='git branch'
|
||||
alias ga='git add'
|
||||
|
||||
|
||||
alias batman="MANPAGER=\"sh -c 'col -bx | bat -l man -p'\" man"
|
||||
alias la='exa -laag --group-directories-first'
|
||||
|
||||
alias nvimconf='nvim ~/.config/nvim/init.vim'
|
||||
alias udb='sudo updatedb'
|
||||
alias wettr='curl https://wttr.in/Prague'
|
@ -0,0 +1,185 @@
|
||||
# If you come from bash you might have to change your $PATH.
|
||||
# export PATH=$HOME/bin:/usr/local/bin:$PATH
|
||||
|
||||
# Path to your oh-my-zsh installation.
|
||||
export ZSH="/home/david/.oh-my-zsh"
|
||||
|
||||
# Set name of the theme to load --- if set to "random", it will
|
||||
# load a random theme each time oh-my-zsh is loaded, in which case,
|
||||
# to know which specific one was loaded, run: echo $RANDOM_THEME
|
||||
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
|
||||
ZSH_THEME="intheloop"
|
||||
#gentoo - jako bash
|
||||
#essembeh - jako bash
|
||||
#dpoggi - jako bash, ale barevnejsi
|
||||
#kennethreitz - pwd na prave strane
|
||||
#bira - $ na nove radce pod pwd
|
||||
#rkj - old tech style
|
||||
#intheloop - $ na nove radce, mezera mezi prikazy
|
||||
|
||||
# Set list of themes to pick from when loading at random
|
||||
# Setting this variable when ZSH_THEME=random will cause zsh to load
|
||||
# a theme from this variable instead of looking in $ZSH/themes/
|
||||
# If set to an empty array, this variable will have no effect.
|
||||
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
|
||||
|
||||
# Uncomment the following line to use case-sensitive completion.
|
||||
# CASE_SENSITIVE="true"
|
||||
|
||||
# Uncomment the following line to use hyphen-insensitive completion.
|
||||
# Case-sensitive completion must be off. _ and - will be interchangeable.
|
||||
# HYPHEN_INSENSITIVE="true"
|
||||
|
||||
# Uncomment the following line to disable bi-weekly auto-update checks.
|
||||
DISABLE_AUTO_UPDATE="true"
|
||||
|
||||
# Uncomment the following line to automatically update without prompting.
|
||||
# DISABLE_UPDATE_PROMPT="true"
|
||||
|
||||
# Uncomment the following line to change how often to auto-update (in days).
|
||||
export UPDATE_ZSH_DAYS=21
|
||||
|
||||
# Uncomment the following line if pasting URLs and other text is messed up.
|
||||
# DISABLE_MAGIC_FUNCTIONS=true
|
||||
|
||||
# Uncomment the following line to disable colors in ls.
|
||||
# DISABLE_LS_COLORS="true"
|
||||
|
||||
# Uncomment the following line to disable auto-setting terminal title.
|
||||
# DISABLE_AUTO_TITLE="true"
|
||||
|
||||
# Uncomment the following line to enable command auto-correction.
|
||||
ENABLE_CORRECTION="true"
|
||||
|
||||
# Uncomment the following line to display red dots whilst waiting for completion.
|
||||
# COMPLETION_WAITING_DOTS="true"
|
||||
|
||||
# Uncomment the following line if you want to disable marking untracked files
|
||||
# under VCS as dirty. This makes repository status check for large repositories
|
||||
# much, much faster.
|
||||
# DISABLE_UNTRACKED_FILES_DIRTY="true"
|
||||
|
||||
# Uncomment the following line if you want to change the command execution time
|
||||
# stamp shown in the history command output.
|
||||
# You can set one of the optional three formats:
|
||||
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
|
||||
# or set a custom format using the strftime function format specifications,
|
||||
# see 'man strftime' for details.
|
||||
# HIST_STAMPS="mm/dd/yyyy"
|
||||
|
||||
# Would you like to use another custom folder than $ZSH/custom?
|
||||
# ZSH_CUSTOM=/path/to/new-custom-folder
|
||||
|
||||
# Which plugins would you like to load?
|
||||
# Standard plugins can be found in $ZSH/plugins/
|
||||
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
|
||||
# Example format: plugins=(rails git textmate ruby lighthouse)
|
||||
# Add wisely, as too many plugins slow down shell startup.
|
||||
plugins=(git zsh-autosuggestions zsh-syntax-highlighting fzf-zsh-plugin)
|
||||
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
|
||||
# User configuration
|
||||
|
||||
#ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#666666,underline"
|
||||
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=8"
|
||||
|
||||
# export MANPATH="/usr/local/man:$MANPATH"
|
||||
|
||||
# You may need to manually set your language environment
|
||||
# export LANG=en_US.UTF-8
|
||||
|
||||
# Preferred editor for local and remote sessions
|
||||
# if [[ -n $SSH_CONNECTION ]]; then
|
||||
# export EDITOR='vim'
|
||||
# else
|
||||
# export EDITOR='mvim'
|
||||
# fi
|
||||
|
||||
# Compilation flags
|
||||
# export ARCHFLAGS="-arch x86_64"
|
||||
|
||||
# Set personal aliases, overriding those provided by oh-my-zsh libs,
|
||||
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
|
||||
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
|
||||
# For a full list of active aliases, run `alias`.
|
||||
#
|
||||
# Example aliases
|
||||
# alias zshconfig="mate ~/.zshrc"
|
||||
# alias ohmyzsh="mate ~/.oh-my-zsh"
|
||||
#
|
||||
|
||||
bindkey '^ ' autosuggest-accept # accept suggestion with ctrl-space
|
||||
|
||||
export EDITOR='nvim'
|
||||
export TERM=screen-256color
|
||||
export PATH=$PATH:/home/david/.local/bin:/home/david/.dotnet/tools
|
||||
|
||||
if [ -f ~/.config/shell_aliases ]; then
|
||||
source ~/.config/shell_aliases
|
||||
fi
|
||||
|
||||
setopt GLOBdots
|
||||
|
||||
eval $(thefuck --alias)
|
||||
|
||||
if command -v pazi &>/dev/null; then
|
||||
eval "$(pazi init zsh)" # or 'bash'
|
||||
fi
|
||||
alias zf='z --pipe="fzf"'
|
||||
|
||||
# Command time
|
||||
function preexec() {
|
||||
timer=$(($(date +%s%0N)/1000000))
|
||||
}
|
||||
|
||||
function precmd() {
|
||||
if [ $timer ]; then
|
||||
now=$(($(date +%s%0N)/1000000))
|
||||
elapsed=$(($now-$timer))
|
||||
|
||||
ms=$(($elapsed % 1000))
|
||||
sec=$(($elapsed/1000 % 60))
|
||||
min=$(($elapsed/60000 % 60))
|
||||
hour=$(($elapsed/3600000))
|
||||
|
||||
if [ "$elapsed" -le 1000 ]; then
|
||||
export RPROMPT="%F{cyan} $(printf "%d ms" $ms) %{$reset_color%}"
|
||||
elif [ "$elapsed" -gt 1000 ] && [ "$elapsed" -le 60000 ]; then
|
||||
export RPROMPT="%F{cyan} $(printf "%d.%03d s" $sec $ms) %{$reset_color%}"
|
||||
elif [ "$elapsed" -gt 60000 ] && [ "$elapsed" -le 3600000 ]; then
|
||||
export RPROMPT="%F{yellow} $(printf "%d min. %d s" $min $sec) %{$reset_color%}"
|
||||
else
|
||||
export RPROMPT="%F{red} $(printf "%d hours %d min. %d s" $hour $min $sec) %{$reset_color%}"
|
||||
fi
|
||||
|
||||
unset timer
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# # ex - archive extractor
|
||||
# # usage: ex <file>
|
||||
ex ()
|
||||
{
|
||||
if [ -f $1 ] ; then
|
||||
case $1 in
|
||||
*.tar.bz2) tar xjvf $1 ;;
|
||||
*.tar.gz) tar xzvf $1 ;;
|
||||
*.bz2) bunzip2 $1 ;;
|
||||
*.rar) unrar x $1 ;;
|
||||
*.gz) gunzip $1 ;;
|
||||
*.tar) tar xvf $1 ;;
|
||||
*.tbz2) tar xjvf $1 ;;
|
||||
*.tgz) tar xzvf $1 ;;
|
||||
*.zip) unzip $1 ;;
|
||||
*.Z) uncompress $1;;
|
||||
*.7z) 7z x $1 ;;
|
||||
*) echo "'$1' cannot be extracted via ex()" ;;
|
||||
esac
|
||||
else
|
||||
echo "'$1' is not a valid file"
|
||||
fi
|
||||
}
|
||||
|
Loading…
Reference in new issue