Compare commits
64 commits
wayland-te
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| f9e0d94412 | |||
| 476507e577 | |||
| cd5171d7bd | |||
| cdc6811415 | |||
| a118ced017 | |||
| 07e06558b6 | |||
|
|
bf09d09da0 | ||
| e359380b15 | |||
| b56aecc78d | |||
| 355ae60ac3 | |||
| 99f0c2df2d | |||
| dad208c7ba | |||
| 7a52f633f4 | |||
| 53f83393dc | |||
| 0bcdd60bb3 | |||
| 05f3e283db | |||
| d7def752af | |||
| 2c72b7c8dd | |||
| c058fa22ea | |||
| ab5cceddab | |||
| 2b78050f5f | |||
| f113cff6c2 | |||
| 6863d4c2eb | |||
| 07be5a4e7a | |||
| 0819e4e95b | |||
| 13f5ecd846 | |||
| cfa621b864 | |||
| 26d8a6b5b4 | |||
| 42274c8131 | |||
| 39fe0e50bb | |||
| 7a178f24df | |||
| 53cb41bbc5 | |||
| 913e7ff722 | |||
| e4ada8d5cd | |||
| e9ca0baa3b | |||
| 4b0e69c0a5 | |||
| d4022aecee | |||
| a4762ca7a2 | |||
| 3b83281feb | |||
| 343219cfe2 | |||
| 3b9be5de6f | |||
| b31a9fd908 | |||
| 21af73483b | |||
| c638a59499 | |||
| aaff09b15f | |||
| 02d988ff04 | |||
| 3be7d5aec4 | |||
| 8a3be75d1f | |||
| 62a306326d | |||
| 4a7a665edb | |||
| d13d72ec80 | |||
| 846c204094 | |||
| ef82f3b11f | |||
| e4f4f8baf7 | |||
| 76a42b6920 | |||
| 2fd4278bb6 | |||
| b730cf54fc | |||
| 30275628ff | |||
| 6c05cf1a98 | |||
| 479ccc33f8 | |||
| 635f678ecb | |||
| d87a5138ee | |||
| f81ec0f6b3 | |||
| 33ed56559d |
36 changed files with 932 additions and 217 deletions
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
zsh/zsh_history
|
||||||
|
zsh/cache
|
||||||
|
config/nvim/plugin
|
||||||
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
[submodule "ssh/conf.d"]
|
||||||
|
path = ssh/conf.d
|
||||||
|
url = git@git.preisner.eu:preisi/ssh-config.git
|
||||||
14
Xresources
14
Xresources
|
|
@ -1,5 +1,11 @@
|
||||||
URxvt.font: xft:Monospace:size=9:antialias=true
|
! beryllium is arch-based with easy access to source code pro, let's use it
|
||||||
URxvt.boldFont: xft:Monospace:style=bold:size=9:antialias=true
|
#if defined(SRVR_beryllium) || defined(SRVR_oxygen)
|
||||||
|
URxvt.font: xft:Source Code Pro:size=9:antialias=true
|
||||||
|
URxvt.boldFont: xft:Source Code Pro:style=bold:size=9:antialias=true
|
||||||
|
#else
|
||||||
|
URxvt.font: xft:Monospace:size=9:antialias=true
|
||||||
|
URxvt.boldFont: xft:Monospace:style=bold:size=9:antialias=true
|
||||||
|
#endif
|
||||||
URxvt.foreground: white
|
URxvt.foreground: white
|
||||||
URxvt.background: black
|
URxvt.background: black
|
||||||
URxvt.letterSpace: -1
|
URxvt.letterSpace: -1
|
||||||
|
|
@ -15,7 +21,7 @@ URxvt.shading: 20
|
||||||
URxvt.iso14755: false
|
URxvt.iso14755: false
|
||||||
URxvt.iso14755_52: false
|
URxvt.iso14755_52: false
|
||||||
|
|
||||||
#if defined(SRVR_falcon) || defined(SRVR_warthog) || defined(SRVR_cipbuero4)
|
#if defined(SRVR_beryllium) || defined(SRVR_cipbuero4) || defined(SRVR_oxygen)
|
||||||
Xft.dpi: 192
|
Xft.dpi: 192
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -49,7 +55,7 @@ Xft.rgba: rgb
|
||||||
*.color11: #fffd00
|
*.color11: #fffd00
|
||||||
|
|
||||||
! blue
|
! blue
|
||||||
*.color4: #0026ff
|
*.color4: #0086ff
|
||||||
*.color12: #8470ff
|
*.color12: #8470ff
|
||||||
!*.color12: #0000ff
|
!*.color12: #0000ff
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,7 @@ monitor = sys.argv[1] if len(sys.argv) >= 2 else 0
|
||||||
(x, y, monitor_w, monitor_h) = hc.monitor_rect(monitor)
|
(x, y, monitor_w, monitor_h) = hc.monitor_rect(monitor)
|
||||||
|
|
||||||
HiDPIHosts = set()
|
HiDPIHosts = set()
|
||||||
HiDPIHosts.add('falcon')
|
HiDPIHosts.add('beryllium')
|
||||||
HiDPIHosts.add('warthog')
|
|
||||||
HiDPIHosts.add('cipbuero4')
|
HiDPIHosts.add('cipbuero4')
|
||||||
|
|
||||||
HiDPI = os.uname().nodename in HiDPIHosts
|
HiDPI = os.uname().nodename in HiDPIHosts
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,7 @@ case "$HOSTNAME" in
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if [ "$HOSTNAME" = warthog ] || [ "$HOSTNAME" = falcon ]; then
|
if [ "$HOSTNAME" = beryllium ]; then
|
||||||
hc keybind $Mod-d spawn /usr/bin/dmenu_run_hlwm -fn "Monospace-9"
|
hc keybind $Mod-d spawn /usr/bin/dmenu_run_hlwm -fn "Monospace-9"
|
||||||
hc keybind XF86MonBrightnessDown spawn xbacklight -4
|
hc keybind XF86MonBrightnessDown spawn xbacklight -4
|
||||||
hc keybind XF86MonBrightnessUp spawn xbacklight +4
|
hc keybind XF86MonBrightnessUp spawn xbacklight +4
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ fi
|
||||||
x=${geometry[0]}
|
x=${geometry[0]}
|
||||||
y=${geometry[1]}
|
y=${geometry[1]}
|
||||||
panel_width=${geometry[2]}
|
panel_width=${geometry[2]}
|
||||||
if [ "$HOSTNAME" = warthog ]; then
|
if [ "$HOSTNAME" = beryllium ]; then
|
||||||
panel_height=30
|
panel_height=30
|
||||||
font="-*-fixed-medium-*-*-*-26-*-*-*-*-*-*-*"
|
font="-*-fixed-medium-*-*-*-26-*-*-*-*-*-*-*"
|
||||||
iconpath=${HOME}/.config/herbstluftwm/icons_large
|
iconpath=${HOME}/.config/herbstluftwm/icons_large
|
||||||
|
|
@ -90,7 +90,7 @@ function cpu() {
|
||||||
|
|
||||||
# BATTERY
|
# BATTERY
|
||||||
function battery() {
|
function battery() {
|
||||||
if [ "$HOSTNAME" != warthog ]; then
|
if [ "$HOSTNAME" != beryllium ]; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ set $mod Mod4
|
||||||
|
|
||||||
# Font for window titles. Will also be used by the bar unless a different font
|
# Font for window titles. Will also be used by the bar unless a different font
|
||||||
# is used in the bar {} block below.
|
# is used in the bar {} block below.
|
||||||
font pango:monospace 8
|
font pango:DejaVu Sans, FontAwesome 7
|
||||||
|
|
||||||
# This font is widely installed, provides lots of unicode glyphs, right-to-left
|
# This font is widely installed, provides lots of unicode glyphs, right-to-left
|
||||||
# text rendering and scalability on retina/hidpi displays (thanks to pango).
|
# text rendering and scalability on retina/hidpi displays (thanks to pango).
|
||||||
|
|
@ -24,7 +24,7 @@ floating_modifier $mod
|
||||||
|
|
||||||
# start a terminal
|
# start a terminal
|
||||||
#bindsym $mod+Return exec i3-sensible-terminal
|
#bindsym $mod+Return exec i3-sensible-terminal
|
||||||
bindsym $mod+Return exec urxvt
|
bindsym $mod+Return exec alacritty
|
||||||
|
|
||||||
bindsym $mod+b exec chromium
|
bindsym $mod+b exec chromium
|
||||||
|
|
||||||
|
|
@ -89,7 +89,10 @@ bindsym $mod+a focus parent
|
||||||
#bindsym $mod+d focus child
|
#bindsym $mod+d focus child
|
||||||
|
|
||||||
# custom bind for pass dmenu wrapper
|
# custom bind for pass dmenu wrapper
|
||||||
bindsym $mod+p exec ~/bin/passmenu --type
|
bindsym $mod+p exec passmenu --type
|
||||||
|
|
||||||
|
# custom bind for flameshot screenshot tool
|
||||||
|
bindsym $mod+Shift+s exec flameshot gui
|
||||||
|
|
||||||
# do not focus container behind mouse
|
# do not focus container behind mouse
|
||||||
focus_follows_mouse no
|
focus_follows_mouse no
|
||||||
|
|
@ -105,7 +108,7 @@ set $ws6 "6"
|
||||||
set $ws7 "7"
|
set $ws7 "7"
|
||||||
set $ws8 "8"
|
set $ws8 "8"
|
||||||
set $ws9 "9"
|
set $ws9 "9"
|
||||||
set $ws10 "10"
|
set $ws10 "A"
|
||||||
|
|
||||||
# switch to workspace
|
# switch to workspace
|
||||||
bindsym $mod+1 [workspace=$ws1] move workspace to output current, workspace $ws1
|
bindsym $mod+1 [workspace=$ws1] move workspace to output current, workspace $ws1
|
||||||
|
|
@ -136,7 +139,7 @@ bindsym $mod+Alt+c reload
|
||||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||||
bindsym $mod+Shift+r restart
|
bindsym $mod+Shift+r restart
|
||||||
# exit i3 (logs you out of your X session)
|
# exit i3 (logs you out of your X session)
|
||||||
bindsym $mod+q exec i3lock
|
bindsym $mod+q exec i3lock --nofork --show-failed-attempts
|
||||||
bindsym $mod+Shift+q exit
|
bindsym $mod+Shift+q exit
|
||||||
|
|
||||||
# resize window (you can also use the mouse for that)
|
# resize window (you can also use the mouse for that)
|
||||||
|
|
@ -170,19 +173,21 @@ bindsym $mod+r mode "resize"
|
||||||
bindsym XF86AudioMute exec "pactl set-sink-mute @DEFAULT_SINK@ toggle"
|
bindsym XF86AudioMute exec "pactl set-sink-mute @DEFAULT_SINK@ toggle"
|
||||||
bindsym XF86AudioLowerVolume exec "pactl set-sink-mute @DEFAULT_SINK@ false && pactl set-sink-volume @DEFAULT_SINK@ '-5%'"
|
bindsym XF86AudioLowerVolume exec "pactl set-sink-mute @DEFAULT_SINK@ false && pactl set-sink-volume @DEFAULT_SINK@ '-5%'"
|
||||||
bindsym XF86AudioRaiseVolume exec "pactl set-sink-mute @DEFAULT_SINK@ false && pactl set-sink-volume @DEFAULT_SINK@ '+5%'"
|
bindsym XF86AudioRaiseVolume exec "pactl set-sink-mute @DEFAULT_SINK@ false && pactl set-sink-volume @DEFAULT_SINK@ '+5%'"
|
||||||
bindsym XF86AudioMicMute exec "pactl set-source-mute 1 toggle"
|
bindsym XF86AudioMicMute exec "pactl set-source-mute @DEFAULT_SOURCE@ toggle"
|
||||||
|
|
||||||
bindsym XF86MonBrightnessDown exec "xbacklight -4"
|
bindsym XF86MonBrightnessDown exec "brightnessctl set 4%-"
|
||||||
bindsym XF86MonBrightnessUp exec "xbacklight +4"
|
bindsym XF86MonBrightnessUp exec "brightnessctl set 4%+"
|
||||||
|
|
||||||
# Start i3bar to display a workspace bar (plus the system information i3status
|
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||||
# finds out, if available)
|
# finds out, if available)
|
||||||
bar {
|
bar {
|
||||||
position top
|
position top
|
||||||
status_command i3status
|
status_command i3status
|
||||||
font pango:DejaVu Sans, FontAwesome 8
|
font pango:DejaVu Sans, FontAwesome 7
|
||||||
}
|
}
|
||||||
|
|
||||||
exec --no-startup-id redshift
|
exec --no-startup-id redshift
|
||||||
exec --no-startup-id nm-applet
|
exec --no-startup-id nm-applet
|
||||||
exec --no-startup-id dunst
|
exec --no-startup-id dunst
|
||||||
|
exec --no-startup-id blueman-applet
|
||||||
|
exec --no-startup-id signal-desktop --start-in-tray
|
||||||
|
|
|
||||||
|
|
@ -11,11 +11,15 @@ general {
|
||||||
interval = 5
|
interval = 5
|
||||||
}
|
}
|
||||||
|
|
||||||
|
order += "memory"
|
||||||
order += "cpu_temperature 0"
|
order += "cpu_temperature 0"
|
||||||
order += "cpu_usage"
|
order += "cpu_usage"
|
||||||
order += "battery all"
|
order += "battery all"
|
||||||
order += "tztime local"
|
order += "tztime local"
|
||||||
|
|
||||||
|
memory {
|
||||||
|
format = " %percentage_used"
|
||||||
|
}
|
||||||
|
|
||||||
cpu_temperature 0 {
|
cpu_temperature 0 {
|
||||||
format = " %degrees°C"
|
format = " %degrees°C"
|
||||||
|
|
@ -33,6 +37,7 @@ battery all {
|
||||||
status_unk = " UNK"
|
status_unk = " UNK"
|
||||||
status_full = " FULL"
|
status_full = " FULL"
|
||||||
low_threshold = 10
|
low_threshold = 10
|
||||||
|
last_full_capacity = true
|
||||||
}
|
}
|
||||||
|
|
||||||
tztime local {
|
tztime local {
|
||||||
|
|
|
||||||
3
config/nvim/init.lua
Normal file
3
config/nvim/init.lua
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
require('general')
|
||||||
|
require('keybindings')
|
||||||
|
require('plugins')
|
||||||
81
config/nvim/lua/general.lua
Normal file
81
config/nvim/lua/general.lua
Normal file
|
|
@ -0,0 +1,81 @@
|
||||||
|
-- reduce boilerplate by defining some shortcuts
|
||||||
|
local opt = vim.opt
|
||||||
|
local cmd = vim.cmd
|
||||||
|
local autocmd = vim.api.nvim_create_autocmd
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
-- General
|
||||||
|
--------------------
|
||||||
|
opt.mouse = 'n' -- enable mouse support in normal mode
|
||||||
|
opt.clipboard = 'unnamedplus' -- copy/paste to and from system clipboard
|
||||||
|
|
||||||
|
opt.wildmode = 'list:longest,full'
|
||||||
|
opt.wildignorecase = true
|
||||||
|
-- ignore C/C++ objects and other build files
|
||||||
|
opt.wildignore = '*.o,*.so,*.out'
|
||||||
|
-- ignore java classes
|
||||||
|
opt.wildignore:append '*.class'
|
||||||
|
-- ignore python cache files
|
||||||
|
opt.wildignore:append '*.pyc'
|
||||||
|
-- ignore tex-related build files
|
||||||
|
opt.wildignore:append '*.aux,*.bcf,*.lof,*.lol,*.lot,*.rubbercache,*.toc,*.pdf'
|
||||||
|
|
||||||
|
opt.fileformats = 'unix,dos' -- use identical lineendings for all platforms
|
||||||
|
opt.secure = true -- disable autocmd for security reasons
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
-- Tabs
|
||||||
|
--------------------
|
||||||
|
opt.tabstop = 4 -- 1 tab == N spaces
|
||||||
|
opt.shiftwidth = 4 -- shift N spaces when pressing tab
|
||||||
|
opt.smartindent = true -- take syntax into account for applying indentation
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
-- Search
|
||||||
|
--------------------
|
||||||
|
opt.ignorecase = true -- ignore capitalization on search
|
||||||
|
opt.smartcase = true -- ignore capitalication unless word contains a capital
|
||||||
|
|
||||||
|
opt.iskeyword:append '-' -- treat hyphenated words as a single word
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
-- Neovim UI
|
||||||
|
--------------------
|
||||||
|
opt.number = true -- line numbers
|
||||||
|
opt.ruler = true -- cursor position in statusbar
|
||||||
|
opt.showtabline = 2 -- always show vim tabs
|
||||||
|
opt.showcmd = true -- display currently typed command
|
||||||
|
opt.termguicolors = true -- enable 24-bit RGB color
|
||||||
|
|
||||||
|
-- highlight line at which the cursor is positioned
|
||||||
|
opt.cursorline = true
|
||||||
|
cmd 'highlight CursorLine term=bold cterm=bold'
|
||||||
|
cmd 'highlight CursorLineNR term=bold cterm=bold ctermbg=darkgrey'
|
||||||
|
|
||||||
|
-- display warning column at 81 and 121
|
||||||
|
opt.colorcolumn = '81,121'
|
||||||
|
cmd 'highlight ColorColumn ctermbg=235 guibg=#2d2d2d'
|
||||||
|
|
||||||
|
opt.splitright = true -- horizontal split to the right
|
||||||
|
opt.splitbelow = true -- vertical split to the bottom
|
||||||
|
|
||||||
|
-- define characters to display when using 'set list'
|
||||||
|
opt.listchars = 'tab:→ ,trail:∙,eol:¬,extends:❯,precedes:❮,nbsp:␣'
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
-- Performance
|
||||||
|
--------------------
|
||||||
|
opt.hidden = true -- allow buffers with changes to be hidden
|
||||||
|
opt.updatetime = 300 -- delay (in ms) to wait before triggering event
|
||||||
|
opt.timeoutlen = 500 -- time (in ms) to wait for event to complete
|
||||||
|
opt.history = 10000 -- remember N lines of history
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
-- Misc
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
-- remove redundant whitespaces on save
|
||||||
|
autocmd('BufWritePre', {
|
||||||
|
pattern = '*',
|
||||||
|
command = ':%s/\\s\\+$//e'
|
||||||
|
})
|
||||||
8
config/nvim/lua/keybindings.lua
Normal file
8
config/nvim/lua/keybindings.lua
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
local map = require('utils').map -- import map
|
||||||
|
|
||||||
|
-- redefine leader key
|
||||||
|
vim.g.mapleader = ' '
|
||||||
|
|
||||||
|
-- allow switching between buffers using tab and Shift-tab
|
||||||
|
map('n', '<TAB>', ':bnext<CR>')
|
||||||
|
map('n', '<S-TAB>', ':bprevious<CR>')
|
||||||
173
config/nvim/lua/plugins.lua
Normal file
173
config/nvim/lua/plugins.lua
Normal file
|
|
@ -0,0 +1,173 @@
|
||||||
|
--------------------
|
||||||
|
-- Packer Bootstrap
|
||||||
|
--------------------
|
||||||
|
local packer_installed, _ = pcall(require, 'packer')
|
||||||
|
local packer_bootstrap = false
|
||||||
|
if (not packer_installed) then
|
||||||
|
-- ask user whether packer should be bootstrapped
|
||||||
|
packer_bootstrap = require('utils').prompt(
|
||||||
|
'Plugin manager packer not found. Install it now?',
|
||||||
|
'Bootstrapping packer now...',
|
||||||
|
'Skipping setup of packer and plugins.')
|
||||||
|
|
||||||
|
if (not packer_bootstrap) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- perform actual bootstrap
|
||||||
|
local fn = vim.fn
|
||||||
|
local install_path = fn.stdpath('data') .. '/site/pack/packer/start/packer.nvim'
|
||||||
|
fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path})
|
||||||
|
vim.cmd('packadd packer.nvim')
|
||||||
|
end
|
||||||
|
|
||||||
|
-- helper function to be used `config` parameter of packer's use to externalize
|
||||||
|
-- plugin configuration, expects the name of the config file
|
||||||
|
function load_config(name)
|
||||||
|
return string.format('require("plugins/%s")', name)
|
||||||
|
end
|
||||||
|
|
||||||
|
return require('packer').startup({
|
||||||
|
function(use)
|
||||||
|
use 'wbthomason/packer.nvim'
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
-- Visuals
|
||||||
|
--------------------
|
||||||
|
use { -- colorblind-friendly colorscheme
|
||||||
|
'projekt0n/github-nvim-theme',
|
||||||
|
config = load_config('github-nvim-theme'),
|
||||||
|
}
|
||||||
|
use { -- color highlighter
|
||||||
|
'norcalli/nvim-colorizer.lua',
|
||||||
|
config = function() require('colorizer').setup() end,
|
||||||
|
}
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
-- Package Manager
|
||||||
|
--------------------
|
||||||
|
use { -- portable package manager
|
||||||
|
'williamboman/mason.nvim',
|
||||||
|
config = load_config('mason'),
|
||||||
|
}
|
||||||
|
use { -- update helper for mason
|
||||||
|
'WhoIsSethDaniel/mason-tool-installer.nvim',
|
||||||
|
after = { 'mason.nvim' },
|
||||||
|
config = function() require('mason-tool-installer').setup({}) end,
|
||||||
|
}
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
-- LSP Setup
|
||||||
|
--------------------
|
||||||
|
use { -- compatibility layer between mason and lspconfig + autoinstaller
|
||||||
|
'williamboman/mason-lspconfig.nvim',
|
||||||
|
after = { 'mason.nvim' },
|
||||||
|
requires = {
|
||||||
|
'neovim/nvim-lspconfig',
|
||||||
|
},
|
||||||
|
}
|
||||||
|
use { -- configuration layer for neovim LSP client
|
||||||
|
'neovim/nvim-lspconfig',
|
||||||
|
after = {
|
||||||
|
'mason-lspconfig.nvim',
|
||||||
|
'cmp-nvim-lsp',
|
||||||
|
},
|
||||||
|
config = load_config('lspconfig'),
|
||||||
|
}
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
-- Linter/Formatter
|
||||||
|
--------------------
|
||||||
|
use { -- linter and formatter manager
|
||||||
|
'jose-elias-alvarez/null-ls.nvim',
|
||||||
|
after = {
|
||||||
|
'mason.nvim',
|
||||||
|
'plenary.nvim',
|
||||||
|
},
|
||||||
|
requires = { 'nvim-lua/plenary.nvim' },
|
||||||
|
}
|
||||||
|
use { -- compatibility layer between mason and null-ls
|
||||||
|
'jayp0521/mason-null-ls.nvim',
|
||||||
|
after = { 'null-ls.nvim' },
|
||||||
|
config = load_config('null-ls')
|
||||||
|
}
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
-- Snippets
|
||||||
|
--------------------
|
||||||
|
use { -- snippet engine
|
||||||
|
'L3MON4D3/LuaSnip',
|
||||||
|
requires = {
|
||||||
|
'saadparwaiz1/cmp_luasnip',
|
||||||
|
'rafamadriz/friendly-snippets',
|
||||||
|
},
|
||||||
|
}
|
||||||
|
use { -- various snippets
|
||||||
|
'rafamadriz/friendly-snippets',
|
||||||
|
after = { 'LuaSnip' },
|
||||||
|
config = load_config('friendly-snippets'),
|
||||||
|
}
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
-- Completion
|
||||||
|
--------------------
|
||||||
|
use { -- nvim-cmp source for nvim-lsp
|
||||||
|
'hrsh7th/cmp-nvim-lsp',
|
||||||
|
requires = { 'hrsh7th/nvim-cmp' },
|
||||||
|
}
|
||||||
|
use { -- nvim-cmp source for LuaSnip
|
||||||
|
'saadparwaiz1/cmp_luasnip',
|
||||||
|
requires = { 'hrsh7th/nvim-cmp' },
|
||||||
|
after = { 'LuaSnip' },
|
||||||
|
}
|
||||||
|
use { -- nvim-cmp source for buffer words
|
||||||
|
'hrsh7th/cmp-buffer',
|
||||||
|
requires = { 'hrsh7th/nvim-cmp' },
|
||||||
|
}
|
||||||
|
use { -- nvim-cmp source for filesystem paths
|
||||||
|
'hrsh7th/cmp-path',
|
||||||
|
requires = { 'hrsh7th/nvim-cmp' },
|
||||||
|
}
|
||||||
|
use { -- nvim-cmp source for vim's cmdline
|
||||||
|
'hrsh7th/cmp-cmdline',
|
||||||
|
requires = { 'hrsh7th/nvim-cmp' },
|
||||||
|
}
|
||||||
|
use { -- completion engine
|
||||||
|
'hrsh7th/nvim-cmp',
|
||||||
|
after = {
|
||||||
|
'cmp-nvim-lsp',
|
||||||
|
'cmp-buffer',
|
||||||
|
'cmp-path',
|
||||||
|
'cmp-cmdline',
|
||||||
|
'cmp_luasnip'
|
||||||
|
},
|
||||||
|
config = load_config('nvim-cmp'),
|
||||||
|
}
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
-- Misc Utilities
|
||||||
|
--------------------
|
||||||
|
use { -- fuzzy finder
|
||||||
|
'nvim-telescope/telescope.nvim',
|
||||||
|
config = load_config('telescope'),
|
||||||
|
requires = {'nvim-lua/plenary.nvim'},
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Automatically set up your configuration after cloning packer.nvim
|
||||||
|
-- Put this at the end after all plugins
|
||||||
|
if packer_bootstrap then
|
||||||
|
require('packer').sync()
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
config = {
|
||||||
|
display = {
|
||||||
|
open_fn = function()
|
||||||
|
return require('packer.util').float({ border = 'rounded' })
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
profile = {
|
||||||
|
enable = true,
|
||||||
|
threshold = 1, -- the amount in ms that a plugins load time must be over for it to be included in the profile
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
1
config/nvim/lua/plugins/friendly-snippets.lua
Normal file
1
config/nvim/lua/plugins/friendly-snippets.lua
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
require('luasnip.loaders.from_vscode').lazy_load()
|
||||||
7
config/nvim/lua/plugins/github-nvim-theme.lua
Normal file
7
config/nvim/lua/plugins/github-nvim-theme.lua
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
require('github-theme').setup({
|
||||||
|
options = {
|
||||||
|
transparent = true,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.cmd.colorscheme('github_dark_colorblind')
|
||||||
24
config/nvim/lua/plugins/lspconfig.lua
Normal file
24
config/nvim/lua/plugins/lspconfig.lua
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
local map = require('utils').map -- import map
|
||||||
|
|
||||||
|
require('mason-lspconfig').setup()
|
||||||
|
require('mason-lspconfig').setup_handlers({
|
||||||
|
function(server_name) -- default handler
|
||||||
|
-- prepare nvim-cmp source
|
||||||
|
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||||
|
require('lspconfig')[server_name].setup({
|
||||||
|
-- announce nvim-cmp-lsp capabilities to each lsp server
|
||||||
|
capabilities = capabilities
|
||||||
|
})
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
|
-- lsp keybindings
|
||||||
|
map('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>')
|
||||||
|
map('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>')
|
||||||
|
map('n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>')
|
||||||
|
map('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>')
|
||||||
|
map('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>')
|
||||||
|
map('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>')
|
||||||
|
map('n', '<leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>')
|
||||||
|
map('n', '<leader>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>')
|
||||||
|
map('n', '<leader>f', '<cmd>lua vim.lsp.buf.type_definition({ async = true })<CR>')
|
||||||
9
config/nvim/lua/plugins/mason.lua
Normal file
9
config/nvim/lua/plugins/mason.lua
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
require('mason').setup({
|
||||||
|
ui = {
|
||||||
|
icons = {
|
||||||
|
package_installed = '✓',
|
||||||
|
package_pending = '➜',
|
||||||
|
package_uninstalled = '✗',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
2
config/nvim/lua/plugins/null-ls.lua
Normal file
2
config/nvim/lua/plugins/null-ls.lua
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
require('null-ls').setup()
|
||||||
|
require('mason-null-ls').setup()
|
||||||
78
config/nvim/lua/plugins/nvim-cmp.lua
Normal file
78
config/nvim/lua/plugins/nvim-cmp.lua
Normal file
|
|
@ -0,0 +1,78 @@
|
||||||
|
vim.opt.completeopt = 'menu,menuone,noselect'
|
||||||
|
|
||||||
|
local cmp = require('cmp')
|
||||||
|
cmp.setup({
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
require('luasnip').lsp_expand(args.body)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
formatting = {
|
||||||
|
format = function(entry, vim_item)
|
||||||
|
vim_item.menu = ({
|
||||||
|
nvim_lsp = '[LSP]',
|
||||||
|
buffer = '[Buffer]',
|
||||||
|
luasnip = '[Snippet]',
|
||||||
|
})[entry.source.name]
|
||||||
|
return vim_item
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
window = {
|
||||||
|
completion = cmp.config.window.bordered({ border = 'rounded' }),
|
||||||
|
documentation = cmp.config.window.bordered({ border = 'rounded' }),
|
||||||
|
},
|
||||||
|
mapping = cmp.mapping.preset.insert({
|
||||||
|
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||||
|
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||||
|
['<C-Space>'] = cmp.mapping.complete(),
|
||||||
|
['<C-e>'] = cmp.mapping.abort(),
|
||||||
|
['<CR>'] = cmp.mapping.confirm({ select = false }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
||||||
|
}),
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = 'nvim_lsp', keyword_length = 3 },
|
||||||
|
{ name = 'luasnip', keyword_length = 2 },
|
||||||
|
}, {
|
||||||
|
{
|
||||||
|
name = 'buffer',
|
||||||
|
keyword_length = 3,
|
||||||
|
option = {
|
||||||
|
get_bufnrs = function()
|
||||||
|
return vim.api.nvim_list_bufs()
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
-- configure completion for specific filetype
|
||||||
|
cmp.setup.filetype('gitcommit', {
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = 'buffer' },
|
||||||
|
}),
|
||||||
|
})
|
||||||
|
|
||||||
|
-- use buffer source for `/` and `?` (if you enabled `native_menu`, this won't
|
||||||
|
-- work anymore)
|
||||||
|
cmp.setup.cmdline({ '/', '?' }, {
|
||||||
|
mapping = cmp.mapping.preset.cmdline(),
|
||||||
|
sources = {
|
||||||
|
{ name = 'buffer' }
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- use cmdline & path source for ':' (if you enabled `native_menu`, this won't
|
||||||
|
-- work anymore).
|
||||||
|
cmp.setup.cmdline(':', {
|
||||||
|
mapping = cmp.mapping.preset.cmdline(),
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{
|
||||||
|
name = 'path',
|
||||||
|
option = {
|
||||||
|
trailing_slash = false,
|
||||||
|
label_trailing_slash = false,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
{ name = 'cmdline' }
|
||||||
|
}),
|
||||||
|
})
|
||||||
7
config/nvim/lua/plugins/telescope.lua
Normal file
7
config/nvim/lua/plugins/telescope.lua
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
local map = require('utils').map -- import map
|
||||||
|
|
||||||
|
-- telescope keybindings
|
||||||
|
map('n', 'ff', '<cmd>Telescope find_files<CR>')
|
||||||
|
map('n', 'fg', '<cmd>Telescope live_grep<CR>')
|
||||||
|
map('n', 'fb', '<cmd>Telescope buffers<CR>')
|
||||||
|
map('n', 'fh', '<cmd>Telescope help_tags<CR>')
|
||||||
30
config/nvim/lua/utils.lua
Normal file
30
config/nvim/lua/utils.lua
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
-- keybinding mapper
|
||||||
|
function M.map(mode, lhs, rhs, opts)
|
||||||
|
local options = { noremap = true, silent = true }
|
||||||
|
if opts then
|
||||||
|
options = vim.tbl_extend('force', options, opts)
|
||||||
|
end
|
||||||
|
vim.api.nvim_set_keymap(mode, lhs, rhs, options)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- simple prompt
|
||||||
|
function M.prompt(msg, accept_msg, deny_msg)
|
||||||
|
local answer = vim.fn.input(msg .. ' (YES/no) ')
|
||||||
|
while(true) do
|
||||||
|
-- clear vim cmdline before printing anything
|
||||||
|
vim.cmd('mode')
|
||||||
|
if answer == 'YES' then
|
||||||
|
print(accept_msg)
|
||||||
|
return true
|
||||||
|
elseif string.lower(answer) == 'no' then
|
||||||
|
print(deny_msg)
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
-- re-request user input
|
||||||
|
answer = vim.fn.input('Please retry: ' .. msg .. ' (YES/no) ')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
email = mail@tpreisner.de
|
email = mail@tpreisner.de
|
||||||
name = Thomas Preisner
|
name = Thomas Preisner
|
||||||
[core]
|
[core]
|
||||||
editor = vim
|
editor = nvim
|
||||||
[commit]
|
[commit]
|
||||||
verbose = true
|
verbose = true
|
||||||
[alias]
|
[alias]
|
||||||
|
|
@ -20,3 +20,9 @@
|
||||||
s = status
|
s = status
|
||||||
st = status
|
st = status
|
||||||
t = tag
|
t = tag
|
||||||
|
[init]
|
||||||
|
defaultBranch = main
|
||||||
|
[diff "ansible-vault"]
|
||||||
|
textconv = "ansible-vault view"
|
||||||
|
[diff "sopsdiffer"]
|
||||||
|
textconv = "sops --config /dev/null --decrypt"
|
||||||
|
|
|
||||||
|
|
@ -4,3 +4,5 @@ default-cache-ttl 600
|
||||||
max-cache-ttl 3600
|
max-cache-ttl 3600
|
||||||
|
|
||||||
grab
|
grab
|
||||||
|
|
||||||
|
pinentry-program /usr/bin/pinentry-gnome3
|
||||||
|
|
|
||||||
11
setup.sh
11
setup.sh
|
|
@ -48,7 +48,15 @@ if installed vim; then
|
||||||
echo "Setting up vim:"
|
echo "Setting up vim:"
|
||||||
|
|
||||||
link vimrc ~/.vimrc
|
link vimrc ~/.vimrc
|
||||||
#link vim ~/.vim
|
link vim ~/.vim
|
||||||
|
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
if installed nvim; then
|
||||||
|
echo "Setting up nvim:"
|
||||||
|
|
||||||
|
mkdir -p ~/.config
|
||||||
|
link config/nvim ~/.config/nvim
|
||||||
|
|
||||||
echo
|
echo
|
||||||
fi
|
fi
|
||||||
|
|
@ -83,6 +91,7 @@ if installed ssh; then
|
||||||
|
|
||||||
mkdir -p ~/.ssh
|
mkdir -p ~/.ssh
|
||||||
link ssh/config ~/.ssh/config
|
link ssh/config ~/.ssh/config
|
||||||
|
link ssh/conf.d ~/.ssh/conf.d
|
||||||
|
|
||||||
echo
|
echo
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
1
ssh/conf.d
Submodule
1
ssh/conf.d
Submodule
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit e322403a55ca26a907da9e92a50316a14cf87898
|
||||||
40
ssh/config
40
ssh/config
|
|
@ -3,44 +3,10 @@
|
||||||
Host *
|
Host *
|
||||||
AddKeysToAgent confirm
|
AddKeysToAgent confirm
|
||||||
|
|
||||||
Host 0?? 0???
|
# Include external config if available
|
||||||
HostName faui%h.informatik.uni-erlangen.de
|
Include conf.d/*
|
||||||
ForwardAgent yes
|
|
||||||
|
|
||||||
Host faui0? faui0?? faui0???
|
# Use if they havent been defined yet:
|
||||||
HostName %h.informatik.uni-erlangen.de
|
|
||||||
ForwardAgent yes
|
|
||||||
|
|
||||||
Host man? man?? big?
|
|
||||||
HostName faui49%h.informatik.uni-erlangen.de
|
|
||||||
ProxyJump ty28wuqu@i4lab1.informatik.uni-erlangen.de
|
|
||||||
|
|
||||||
Match Host faui*
|
|
||||||
User ty28wuqu
|
|
||||||
|
|
||||||
Host ircbox
|
|
||||||
HostName ircbox.informatik.uni-erlangen.de
|
|
||||||
User ty28wuqu
|
|
||||||
|
|
||||||
Host irc
|
|
||||||
HostName tpreisner.de
|
|
||||||
User weechat
|
|
||||||
|
|
||||||
Host server
|
|
||||||
HostName tpreisner.de
|
|
||||||
User root
|
|
||||||
|
|
||||||
Host steep
|
|
||||||
Hostname steep.cs.fau.de
|
|
||||||
User preisi
|
|
||||||
Port 17
|
|
||||||
|
|
||||||
Host pi
|
|
||||||
HostName wg.tpreisner.de
|
|
||||||
# dynamic ip behind hostname would cause warnings
|
|
||||||
CheckHostIP no
|
|
||||||
|
|
||||||
# use if they havent been defined yet:
|
|
||||||
Host *
|
Host *
|
||||||
Compression yes
|
Compression yes
|
||||||
ForwardAgent no
|
ForwardAgent no
|
||||||
|
|
|
||||||
161
vim/colors/dichromatic.vim
Normal file
161
vim/colors/dichromatic.vim
Normal file
|
|
@ -0,0 +1,161 @@
|
||||||
|
" dichromatic.vim -- Vim color scheme.
|
||||||
|
" Author: Romain Lafourcade (romainlafourcade@gmail.com)
|
||||||
|
" Webpage: https://raw.githubusercontent.com/romainl/vim-dichromatic/master/colors/dichromatic.vim
|
||||||
|
" Description: A 'dark' colorscheme for color blind vimmers. But not only.
|
||||||
|
|
||||||
|
hi clear
|
||||||
|
|
||||||
|
if exists("syntax_on")
|
||||||
|
syntax reset
|
||||||
|
endif
|
||||||
|
|
||||||
|
let colors_name = "dichromatic"
|
||||||
|
|
||||||
|
if ($TERM =~ '256' || &t_Co >= 256) || has("gui_running")
|
||||||
|
hi Normal ctermbg=232 ctermfg=252 cterm=NONE guibg=#080808 guifg=#D0D0D0 gui=NONE
|
||||||
|
hi NonText ctermbg=NONE ctermfg=240 cterm=NONE guibg=NONE guifg=#585858 gui=NONE
|
||||||
|
hi Comment ctermbg=NONE ctermfg=244 cterm=NONE guibg=NONE guifg=#808080 gui=NONE
|
||||||
|
hi Constant ctermbg=NONE ctermfg=168 cterm=NONE guibg=NONE guifg=#D75F87 gui=NONE
|
||||||
|
hi Error ctermbg=15 ctermfg=89 cterm=reverse guibg=#FFFFFF guifg=#87005F gui=reverse
|
||||||
|
hi Identifier ctermbg=NONE ctermfg=133 cterm=NONE guibg=NONE guifg=#AF5FAF gui=NONE
|
||||||
|
hi Ignore ctermbg=NONE ctermfg=NONE cterm=NONE guibg=NONE guifg=NONE gui=NONE
|
||||||
|
hi PreProc ctermbg=NONE ctermfg=186 cterm=NONE guibg=NONE guifg=#DFDF87 gui=NONE
|
||||||
|
hi Special ctermbg=NONE ctermfg=15 cterm=NONE guibg=NONE guifg=#FFFFFF gui=NONE
|
||||||
|
hi Statement ctermbg=NONE ctermfg=133 cterm=NONE guibg=NONE guifg=#AF5FAF gui=NONE
|
||||||
|
hi String ctermbg=NONE ctermfg=142 cterm=NONE guibg=NONE guifg=#AFAF00 gui=NONE
|
||||||
|
hi Todo ctermbg=NONE ctermfg=NONE cterm=reverse guibg=NONE guifg=NONE gui=reverse
|
||||||
|
hi Type ctermbg=NONE ctermfg=116 cterm=NONE guibg=NONE guifg=#87D7D7 gui=NONE
|
||||||
|
hi Underlined ctermbg=NONE ctermfg=NONE cterm=underline guibg=NONE guifg=NONE gui=underline
|
||||||
|
hi Number ctermbg=NONE ctermfg=168 cterm=NONE guibg=NONE guifg=#D75F87 gui=NONE
|
||||||
|
hi StatusLine ctermbg=15 ctermfg=240 cterm=NONE guibg=#FFFFFF guifg=#585858 gui=NONE
|
||||||
|
hi StatusLineNC ctermbg=240 ctermfg=15 cterm=NONE guibg=#585858 guifg=#FFFFFF gui=NONE
|
||||||
|
hi VertSplit ctermbg=240 ctermfg=240 cterm=NONE guibg=#585858 guifg=#585858 gui=NONE
|
||||||
|
hi TabLine ctermbg=240 ctermfg=15 cterm=NONE guibg=#585858 guifg=#FFFFFF gui=NONE
|
||||||
|
hi TabLineFill ctermbg=240 ctermfg=240 cterm=NONE guibg=#585858 guifg=#585858 gui=NONE
|
||||||
|
hi TabLineSel ctermbg=15 ctermfg=240 cterm=NONE guibg=#FFFFFF guifg=#585858 gui=NONE
|
||||||
|
hi Title ctermbg=NONE ctermfg=72 cterm=NONE guibg=NONE guifg=#5FAF87 gui=NONE
|
||||||
|
hi LineNr ctermbg=NONE ctermfg=116 cterm=NONE guibg=NONE guifg=#87D7D7 gui=NONE
|
||||||
|
hi Cursor ctermbg=15 ctermfg=232 cterm=NONE guibg=#FFFFFF guifg=#080808 gui=NONE
|
||||||
|
hi CursorColumn ctermbg=89 ctermfg=NONE cterm=NONE guibg=#87005F guifg=NONE gui=NONE
|
||||||
|
hi CursorLine ctermbg=236 ctermfg=NONE cterm=NONE guibg=#303030 guifg=NONE gui=NONE
|
||||||
|
hi CursorLineNr ctermbg=236 ctermfg=NONE cterm=NONE guibg=#303030 guifg=NONE gui=NONE
|
||||||
|
hi helpLeadBlank ctermbg=NONE ctermfg=NONE cterm=NONE guibg=NONE guifg=NONE gui=NONE
|
||||||
|
hi helpNormal ctermbg=NONE ctermfg=NONE cterm=NONE guibg=NONE guifg=NONE gui=NONE
|
||||||
|
hi Visual ctermbg=116 ctermfg=232 cterm=NONE guibg=#87D7D7 guifg=#080808 gui=NONE
|
||||||
|
hi VisualNOS ctermbg=133 ctermfg=232 cterm=NONE guibg=#AF5FAF guifg=#080808 gui=NONE
|
||||||
|
hi Pmenu ctermbg=186 ctermfg=232 cterm=NONE guibg=#DFDF87 guifg=#080808 gui=NONE
|
||||||
|
hi PmenuSbar ctermbg=142 ctermfg=186 cterm=NONE guibg=#AFAF00 guifg=#DFDF87 gui=NONE
|
||||||
|
hi PmenuSel ctermbg=133 ctermfg=232 cterm=NONE guibg=#AF5FAF guifg=#080808 gui=NONE
|
||||||
|
hi PmenuThumb ctermbg=133 ctermfg=133 cterm=NONE guibg=#AF5FAF guifg=#AF5FAF gui=NONE
|
||||||
|
hi FoldColumn ctermbg=NONE ctermfg=72 cterm=NONE guibg=NONE guifg=#5FAF87 gui=NONE
|
||||||
|
hi Folded ctermbg=NONE ctermfg=248 cterm=NONE guibg=NONE guifg=#A8A8A8 gui=NONE
|
||||||
|
hi WildMenu ctermbg=53 ctermfg=15 cterm=NONE guibg=#00005F guifg=#FFFFFF gui=NONE
|
||||||
|
hi SpecialKey ctermbg=NONE ctermfg=186 cterm=NONE guibg=NONE guifg=#DFDF87 gui=NONE
|
||||||
|
hi DiffAdd ctermbg=232 ctermfg=111 cterm=reverse guibg=#080808 guifg=#87afff gui=reverse
|
||||||
|
hi DiffChange ctermbg=232 ctermfg=188 cterm=reverse guibg=#080808 guifg=#dfdfdf gui=reverse
|
||||||
|
hi DiffDelete ctermbg=232 ctermfg=222 cterm=reverse guibg=#080808 guifg=#ffdf87 gui=reverse
|
||||||
|
hi DiffText ctermbg=232 ctermfg=145 cterm=reverse guibg=#080808 guifg=#afafaf gui=reverse
|
||||||
|
hi IncSearch ctermbg=232 ctermfg=133 cterm=reverse guibg=#080808 guifg=#AF5FAF gui=reverse
|
||||||
|
hi Search ctermbg=186 ctermfg=232 cterm=NONE guibg=#DFDF87 guifg=#080808 gui=NONE
|
||||||
|
hi Directory ctermbg=NONE ctermfg=72 cterm=NONE guibg=NONE guifg=#5FAF87 gui=NONE
|
||||||
|
hi MatchParen ctermbg=240 ctermfg=186 cterm=NONE guibg=#585858 guifg=#DFDF87 gui=NONE
|
||||||
|
hi SpellBad ctermbg=89 ctermfg=232 cterm=NONE guibg=#87005F guifg=#080808 gui=NONE guisp=#87005F
|
||||||
|
hi SpellCap ctermbg=72 ctermfg=232 cterm=NONE guibg=#5FAF87 guifg=#080808 gui=NONE guisp=#5FAF87
|
||||||
|
hi SpellLocal ctermbg=142 ctermfg=232 cterm=NONE guibg=#AFAF00 guifg=#080808 gui=NONE guisp=#AFAF00
|
||||||
|
hi SpellRare ctermbg=133 ctermfg=232 cterm=NONE guibg=#AF5FAF guifg=#080808 gui=NONE guisp=#AF5FAF
|
||||||
|
hi ColorColumn ctermbg=133 ctermfg=NONE cterm=NONE guibg=#AF5FAF guifg=NONE gui=NONE
|
||||||
|
hi signColumn ctermbg=NONE ctermfg=186 cterm=NONE guibg=NONE guifg=#DFDF87 gui=NONE
|
||||||
|
hi ErrorMsg ctermbg=89 ctermfg=15 cterm=NONE guibg=#87005F guifg=#FFFFFF gui=NONE
|
||||||
|
hi ModeMsg ctermbg=142 ctermfg=232 cterm=NONE guibg=#AFAF00 guifg=#080808 gui=NONE
|
||||||
|
hi MoreMsg ctermbg=NONE ctermfg=142 cterm=NONE guibg=NONE guifg=#AFAF00 gui=NONE
|
||||||
|
hi Question ctermbg=NONE ctermfg=72 cterm=NONE guibg=NONE guifg=#5FAF87 gui=NONE
|
||||||
|
hi WarningMsg ctermbg=168 ctermfg=232 cterm=NONE guibg=#D75F87 guifg=#080808 gui=NONE
|
||||||
|
hi QuickFixLine ctermbg=15 ctermfg=240 cterm=NONE guibg=#FFFFFF guifg=#585858 gui=NONE
|
||||||
|
|
||||||
|
elseif &t_Co == 8 || $TERM !~# '^linux' || &t_Co == 16
|
||||||
|
set t_Co=16
|
||||||
|
|
||||||
|
hi Normal ctermbg=black ctermfg=grey cterm=NONE
|
||||||
|
hi NonText ctermbg=NONE ctermfg=darkgrey cterm=NONE
|
||||||
|
hi Comment ctermbg=NONE ctermfg=darkgrey cterm=NONE
|
||||||
|
hi Constant ctermbg=NONE ctermfg=red cterm=NONE
|
||||||
|
hi Error ctermbg=white ctermfg=darkmagenta cterm=reverse
|
||||||
|
hi Identifier ctermbg=NONE ctermfg=darkred cterm=NONE
|
||||||
|
hi Ignore ctermbg=NONE ctermfg=NONE cterm=NONE
|
||||||
|
hi PreProc ctermbg=NONE ctermfg=yellow cterm=NONE
|
||||||
|
hi Special ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
hi Statement ctermbg=NONE ctermfg=darkred cterm=NONE
|
||||||
|
hi String ctermbg=NONE ctermfg=darkyellow cterm=NONE
|
||||||
|
hi Todo ctermbg=NONE ctermfg=NONE cterm=reverse
|
||||||
|
hi Type ctermbg=NONE ctermfg=cyan cterm=NONE
|
||||||
|
hi Underlined ctermbg=NONE ctermfg=NONE cterm=underline
|
||||||
|
hi Number ctermbg=NONE ctermfg=red cterm=NONE
|
||||||
|
hi StatusLine ctermbg=white ctermfg=darkgrey cterm=NONE
|
||||||
|
hi StatusLineNC ctermbg=darkgrey ctermfg=white cterm=NONE
|
||||||
|
hi VertSplit ctermbg=darkgrey ctermfg=darkgrey cterm=NONE
|
||||||
|
hi TabLine ctermbg=darkgrey ctermfg=white cterm=NONE
|
||||||
|
hi TabLineFill ctermbg=darkgrey ctermfg=darkgrey cterm=NONE
|
||||||
|
hi TabLineSel ctermbg=white ctermfg=darkgrey cterm=NONE
|
||||||
|
hi Title ctermbg=NONE ctermfg=green cterm=NONE
|
||||||
|
hi LineNr ctermbg=NONE ctermfg=cyan cterm=NONE
|
||||||
|
hi Cursor ctermbg=white ctermfg=black cterm=NONE
|
||||||
|
hi CursorColumn ctermbg=darkmagenta ctermfg=NONE cterm=NONE
|
||||||
|
hi CursorLine ctermbg=black ctermfg=NONE cterm=NONE
|
||||||
|
hi CursorLineNr ctermbg=black ctermfg=NONE cterm=NONE
|
||||||
|
hi helpLeadBlank ctermbg=NONE ctermfg=NONE cterm=NONE
|
||||||
|
hi helpNormal ctermbg=NONE ctermfg=NONE cterm=NONE
|
||||||
|
hi Visual ctermbg=cyan ctermfg=black cterm=NONE
|
||||||
|
hi VisualNOS ctermbg=darkred ctermfg=black cterm=NONE
|
||||||
|
hi Pmenu ctermbg=yellow ctermfg=black cterm=NONE
|
||||||
|
hi PmenuSbar ctermbg=darkyellow ctermfg=yellow cterm=NONE
|
||||||
|
hi PmenuSel ctermbg=darkred ctermfg=black cterm=NONE
|
||||||
|
hi PmenuThumb ctermbg=darkred ctermfg=darkred cterm=NONE
|
||||||
|
hi FoldColumn ctermbg=NONE ctermfg=green cterm=NONE
|
||||||
|
hi Folded ctermbg=NONE ctermfg=grey cterm=NONE
|
||||||
|
hi WildMenu ctermbg=darkblue ctermfg=white cterm=NONE
|
||||||
|
hi SpecialKey ctermbg=NONE ctermfg=yellow cterm=NONE
|
||||||
|
hi DiffAdd ctermbg=black ctermfg=blue cterm=reverse
|
||||||
|
hi DiffChange ctermbg=black ctermfg=grey cterm=reverse
|
||||||
|
hi DiffDelete ctermbg=black ctermfg=yellow cterm=reverse
|
||||||
|
hi DiffText ctermbg=black ctermfg=darkgray cterm=reverse
|
||||||
|
hi IncSearch ctermbg=black ctermfg=darkred cterm=reverse
|
||||||
|
hi Search ctermbg=yellow ctermfg=black cterm=NONE
|
||||||
|
hi Directory ctermbg=NONE ctermfg=green cterm=NONE
|
||||||
|
hi MatchParen ctermbg=darkgrey ctermfg=yellow cterm=NONE
|
||||||
|
hi SpellBad ctermbg=darkmagenta ctermfg=black cterm=NONE
|
||||||
|
hi SpellCap ctermbg=green ctermfg=black cterm=NONE
|
||||||
|
hi SpellLocal ctermbg=darkyellow ctermfg=black cterm=NONE
|
||||||
|
hi SpellRare ctermbg=darkred ctermfg=black cterm=NONE
|
||||||
|
hi ColorColumn ctermbg=darkred ctermfg=NONE cterm=NONE
|
||||||
|
hi signColumn ctermbg=NONE ctermfg=yellow cterm=NONE
|
||||||
|
hi ErrorMsg ctermbg=darkmagenta ctermfg=white cterm=NONE
|
||||||
|
hi ModeMsg ctermbg=darkyellow ctermfg=black cterm=NONE
|
||||||
|
hi MoreMsg ctermbg=NONE ctermfg=darkyellow cterm=NONE
|
||||||
|
hi Question ctermbg=NONE ctermfg=green cterm=NONE
|
||||||
|
hi WarningMsg ctermbg=red ctermfg=black cterm=NONE
|
||||||
|
hi QuickFixLine ctermbg=white ctermfg=darkgrey cterm=NONE
|
||||||
|
endif
|
||||||
|
|
||||||
|
hi link StatusLineTerm StatusLine
|
||||||
|
hi link StatusLineTermNC StatusLineNC
|
||||||
|
|
||||||
|
let g:terminal_ansi_colors = [
|
||||||
|
\ '#080808',
|
||||||
|
\ '#AF5FAF',
|
||||||
|
\ '#008700',
|
||||||
|
\ '#AFAF00',
|
||||||
|
\ '#00005F',
|
||||||
|
\ '#87005F',
|
||||||
|
\ '#87D7D7',
|
||||||
|
\ '#D0D0D0',
|
||||||
|
\ '#808080',
|
||||||
|
\ '#D75F87',
|
||||||
|
\ '#5FAF87',
|
||||||
|
\ '#DFDF87',
|
||||||
|
\ '#87D7D7',
|
||||||
|
\ '#D75F87',
|
||||||
|
\ '#87D7D7',
|
||||||
|
\ '#FFFFFF',
|
||||||
|
\ ]
|
||||||
|
|
||||||
|
" Generated with RNB (https://gist.github.com/romainl/5cd2f4ec222805f49eca)
|
||||||
139
vim/general.vim
Normal file
139
vim/general.vim
Normal file
|
|
@ -0,0 +1,139 @@
|
||||||
|
" drop vi-compatibility
|
||||||
|
set nocompatible
|
||||||
|
" disable autocmd
|
||||||
|
set secure
|
||||||
|
" use utf8 only
|
||||||
|
set encoding=utf8
|
||||||
|
|
||||||
|
" file/directory matching
|
||||||
|
set wildmode=list:longest,full
|
||||||
|
" ignore case when completing
|
||||||
|
if exists('+wildignorecase')
|
||||||
|
set wildignorecase
|
||||||
|
endif
|
||||||
|
" ignorelist
|
||||||
|
set wildignore=*.o,*.d,*.so,*.class,*.aux,*.log,*.out,*.toc,*.pdf,*.pyc
|
||||||
|
|
||||||
|
" increase command history
|
||||||
|
set history=1000
|
||||||
|
" increase count of possible undos
|
||||||
|
set undolevels=1000
|
||||||
|
|
||||||
|
" encrypt buffers when saved to files
|
||||||
|
if exists('+cryptmethod')
|
||||||
|
set cryptmethod=blowfish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" enable fast terminal for tmux but not for ssh connection
|
||||||
|
if &term =~# '^screen' && !exists('SSH_CONNECTION')
|
||||||
|
set ttyfast
|
||||||
|
endif
|
||||||
|
|
||||||
|
" enable automatic file detection, plugin and indention support
|
||||||
|
if has('autocmd')
|
||||||
|
filetype plugin indent on
|
||||||
|
endif
|
||||||
|
|
||||||
|
" use utf8 encoding for all files and recognize latin1
|
||||||
|
set fileencodings=utf-8,latin1
|
||||||
|
|
||||||
|
" use unix line-endings and recognize dos endings
|
||||||
|
set fileformats=unix,dos
|
||||||
|
|
||||||
|
" tabs
|
||||||
|
set tabstop=4
|
||||||
|
set shiftwidth=4
|
||||||
|
set autoindent
|
||||||
|
set smartindent
|
||||||
|
set smarttab
|
||||||
|
|
||||||
|
" allow backspacing over autoindent and line breaks
|
||||||
|
set backspace=indent,eol,start
|
||||||
|
|
||||||
|
" already display matches while searching
|
||||||
|
set incsearch
|
||||||
|
" only check for case if the searched word contains a capital
|
||||||
|
set ignorecase
|
||||||
|
set smartcase
|
||||||
|
" highlight all matches. use <C-L> to remove the highlights
|
||||||
|
set hlsearch
|
||||||
|
|
||||||
|
" treat hyphenated words as a single word
|
||||||
|
set iskeyword+=-
|
||||||
|
|
||||||
|
" syntax folding
|
||||||
|
if has('folding')
|
||||||
|
set foldmethod=syntax
|
||||||
|
" only use folding when there is enough space
|
||||||
|
" if &columns > 80
|
||||||
|
" set foldcolumn=2
|
||||||
|
" endif
|
||||||
|
set foldlevel=99
|
||||||
|
|
||||||
|
" dont open fold for block movements
|
||||||
|
set foldopen-=block
|
||||||
|
endif
|
||||||
|
|
||||||
|
" allow buffers with changes to be hidden
|
||||||
|
set hidden
|
||||||
|
|
||||||
|
" correct splitting
|
||||||
|
if has('vertsplit')
|
||||||
|
set splitright
|
||||||
|
set splitbelow
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Visual
|
||||||
|
" set text color for dark terminal background
|
||||||
|
set background=dark
|
||||||
|
|
||||||
|
" activate syntax highlighting
|
||||||
|
if has('syntax')
|
||||||
|
syntax enable
|
||||||
|
endif
|
||||||
|
|
||||||
|
" set colorscheme
|
||||||
|
colorscheme dichromatic
|
||||||
|
|
||||||
|
" display line at which the current is positioned
|
||||||
|
if exists('+cursorline')
|
||||||
|
set cursorline
|
||||||
|
" remove line and make the line bold instead
|
||||||
|
highlight CursorLine term=bold cterm=bold
|
||||||
|
highlight CursorLineNR term=bold cterm=bold ctermbg=darkgrey
|
||||||
|
endif
|
||||||
|
|
||||||
|
" display warning column at 81 and 121
|
||||||
|
let &colorcolumn="81,121"
|
||||||
|
highlight ColorColumn ctermbg=235 guibg=#2d2d2d
|
||||||
|
|
||||||
|
" display line numbers
|
||||||
|
set number
|
||||||
|
|
||||||
|
" show cursor position all the time
|
||||||
|
set ruler
|
||||||
|
|
||||||
|
" show vim tabs all the time
|
||||||
|
set showtabline=2
|
||||||
|
|
||||||
|
" show currently typed command
|
||||||
|
set showcmd
|
||||||
|
|
||||||
|
" define characters to display when using 'set list'
|
||||||
|
set listchars=tab:→\ ,trail:∙,eol:¬,extends:❯,precedes:❮,nbsp:␣
|
||||||
|
|
||||||
|
" increase completion performance and reduce time until timeout
|
||||||
|
set updatetime=300
|
||||||
|
set timeoutlen=500
|
||||||
|
|
||||||
|
" copy paste between vim and everything else
|
||||||
|
set clipboard=unnamedplus
|
||||||
|
|
||||||
|
" Misc
|
||||||
|
set mouse=n
|
||||||
|
|
||||||
|
" remove windows ^M when the encoding gets messed up
|
||||||
|
noremap <Leader>m mmHmt:%s/<C-V><cr>//ge<cr>'tzt'm
|
||||||
|
|
||||||
|
" add convenience command for force-saving read-only files
|
||||||
|
cmap w!! w !sudo tee %
|
||||||
16
vim/keybindings.vim
Normal file
16
vim/keybindings.vim
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
" allow easier pane switching
|
||||||
|
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>
|
||||||
|
|
||||||
|
" allow easier pane resizing
|
||||||
|
nnoremap <M-J> :resize -2<CR>
|
||||||
|
nnoremap <M-K> :resize +2<CR>
|
||||||
|
nnoremap <M-L> :vertical resize -2<CR>
|
||||||
|
nnoremap <M-H> :vertical resize +2<CR>
|
||||||
|
|
||||||
|
" use TAB to switch to next buffers
|
||||||
|
nnoremap <TAB> :bnext<CR>
|
||||||
|
" use Shift-TAB to switch to previous buffers
|
||||||
|
nnoremap <S-TAB> :bprevious<CR>
|
||||||
145
vimrc
145
vimrc
|
|
@ -1,143 +1,2 @@
|
||||||
" .vimrc
|
source $HOME/.vim/general.vim
|
||||||
|
source $HOME/.vim/keybindings.vim
|
||||||
" only vim and not vi
|
|
||||||
set nocompatible
|
|
||||||
" disable autocmd
|
|
||||||
set secure
|
|
||||||
" use utf8 only
|
|
||||||
set encoding=utf8
|
|
||||||
|
|
||||||
" file/directory matching
|
|
||||||
set wildmode=list:longest,full
|
|
||||||
" ignore case when completing
|
|
||||||
if exists('+wildignorecase')
|
|
||||||
set wildignorecase
|
|
||||||
endif
|
|
||||||
" ignorelist
|
|
||||||
set wildignore=*.o,*.d,*.so,*.class,*.aux,*.log,*.out,*.toc,*.pdf,*.pyc
|
|
||||||
|
|
||||||
" show completion menu even with only one match
|
|
||||||
if exists('+completeopt')
|
|
||||||
set completeopt+=menuone
|
|
||||||
endif
|
|
||||||
|
|
||||||
" increase command history
|
|
||||||
set history=1000
|
|
||||||
" increase count of possible undos
|
|
||||||
set undolevels=1000
|
|
||||||
|
|
||||||
" encrypt buffers when saved to files
|
|
||||||
if exists('+cryptmethod')
|
|
||||||
set cryptmethod=blowfish
|
|
||||||
endif
|
|
||||||
|
|
||||||
" enable fast terminal for tmux but not for ssh connection
|
|
||||||
if &term =~# '^screen' && !exists('SSH_CONNECTION')
|
|
||||||
set ttyfast
|
|
||||||
endif
|
|
||||||
|
|
||||||
" enable automatic file detection, plugin and indention support
|
|
||||||
if has('autocmd')
|
|
||||||
filetype off "for pathogen
|
|
||||||
filetype plugin indent on
|
|
||||||
endif
|
|
||||||
|
|
||||||
" use utf8 encoding for all files and recognize latin1
|
|
||||||
set fileencodings=utf-8,latin1
|
|
||||||
|
|
||||||
" use unix line-endings and recognize dos endings
|
|
||||||
set fileformats=unix,dos
|
|
||||||
|
|
||||||
" tabs
|
|
||||||
set tabstop=4
|
|
||||||
set shiftwidth=4
|
|
||||||
set autoindent
|
|
||||||
set smartindent
|
|
||||||
set smarttab
|
|
||||||
|
|
||||||
" allow backspacing over autoindent and line breaks
|
|
||||||
set backspace=indent,eol,start
|
|
||||||
|
|
||||||
" already display matches while searching
|
|
||||||
set incsearch
|
|
||||||
" only check for case if the searched word contains a capital
|
|
||||||
set ignorecase
|
|
||||||
set smartcase
|
|
||||||
" highlight all matches. use <C-L> to remove the highlights
|
|
||||||
set hlsearch
|
|
||||||
|
|
||||||
" syntax folding
|
|
||||||
if has('folding')
|
|
||||||
set foldmethod=syntax
|
|
||||||
" only use folding when there is enough space
|
|
||||||
" if &columns > 80
|
|
||||||
" set foldcolumn=2
|
|
||||||
" endif
|
|
||||||
set foldlevel=99
|
|
||||||
|
|
||||||
" dont open fold for block movements
|
|
||||||
set foldopen-=block
|
|
||||||
endif
|
|
||||||
|
|
||||||
" allow buffers with changes to be hidden
|
|
||||||
set hidden
|
|
||||||
|
|
||||||
" correct splitting
|
|
||||||
if has('vertsplit')
|
|
||||||
set splitright
|
|
||||||
set splitbelow
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Visual
|
|
||||||
" set text color for dark terminal background
|
|
||||||
set background=dark
|
|
||||||
|
|
||||||
" activate syntax highlighting
|
|
||||||
if has('syntax')
|
|
||||||
syntax enable
|
|
||||||
endif
|
|
||||||
|
|
||||||
" set colorscheme
|
|
||||||
colorscheme ron
|
|
||||||
|
|
||||||
" display line at which the current is positioned
|
|
||||||
if exists('+cursorline')
|
|
||||||
set cursorline
|
|
||||||
" remove line and make the line bold instead
|
|
||||||
highlight CursorLine term=bold cterm=bold
|
|
||||||
highlight CursorLineNR term=bold cterm=bold ctermbg=darkgrey
|
|
||||||
endif
|
|
||||||
|
|
||||||
" display box from column 81 to 100
|
|
||||||
let &colorcolumn=join(range(81, 100), ",")
|
|
||||||
highlight ColorColumn ctermbg=235 guibg=#2d2d2d
|
|
||||||
|
|
||||||
" display line numbers
|
|
||||||
set number
|
|
||||||
|
|
||||||
" show currently typed command
|
|
||||||
set showcmd
|
|
||||||
|
|
||||||
" define characters to display when using 'set list'
|
|
||||||
set listchars=tab:→\ ,trail:∙,eol:¬,extends:❯,precedes:❮,nbsp:␣
|
|
||||||
|
|
||||||
" Disable arrow keys
|
|
||||||
"map <Right> <Nop>
|
|
||||||
"map <Left> <Nop>
|
|
||||||
"map <Up> <Nop>
|
|
||||||
"map <Down> <Nop>
|
|
||||||
|
|
||||||
"map! <Right> <Nop>
|
|
||||||
"map! <Left> <Nop>
|
|
||||||
"map! <Up> <Nop>
|
|
||||||
"map! <Down> <Nop>
|
|
||||||
|
|
||||||
" allow easier pane switching
|
|
||||||
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>
|
|
||||||
|
|
||||||
" Misc
|
|
||||||
set mouse=n
|
|
||||||
noremap <Leader>m mmHmt:%s/<C-V><cr>//ge<cr>'tzt'm
|
|
||||||
|
|
|
||||||
15
xinitrc
15
xinitrc
|
|
@ -1,7 +1,12 @@
|
||||||
#! /bin/bash
|
#! /bin/bash
|
||||||
|
|
||||||
case "$HOSTNAME" in
|
case "$HOSTNAME" in
|
||||||
fau*)
|
cipbuero4)
|
||||||
|
# detects fau-machine and defines variable for Xresources
|
||||||
|
xrdb -load -DHOST_FAUCIP ~/.Xresources
|
||||||
|
xrandr --output DP-2 --scale 1.6x1.6
|
||||||
|
;;
|
||||||
|
fau*|cip*)
|
||||||
# detects fau-machine and defines variable for Xresources
|
# detects fau-machine and defines variable for Xresources
|
||||||
xrdb -load -DHOST_FAUCIP ~/.Xresources
|
xrdb -load -DHOST_FAUCIP ~/.Xresources
|
||||||
;;
|
;;
|
||||||
|
|
@ -18,13 +23,19 @@ if [ -d $HOME/.fonts ]; then
|
||||||
xset fp rehash
|
xset fp rehash
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# start automount-daemon for udisks2 if available
|
||||||
|
if type "udiskie" >/dev/null 2>&1; then
|
||||||
|
udiskie &
|
||||||
|
fi
|
||||||
|
|
||||||
# autolock on suspend
|
# autolock on suspend
|
||||||
xss-lock -- i3lock --nofork &
|
xss-lock -- i3lock --nofork --show-failed-attempts &
|
||||||
|
|
||||||
# autolock after 5 minutes of inactivity
|
# autolock after 5 minutes of inactivity
|
||||||
xset s 300
|
xset s 300
|
||||||
|
|
||||||
# set background
|
# set background
|
||||||
|
xsetroot -solid '#22AA22'
|
||||||
feh --randomize --bg-fill ~/misc/wallpapers
|
feh --randomize --bg-fill ~/misc/wallpapers
|
||||||
|
|
||||||
exec i3
|
exec i3
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,14 @@ alias grep='grep --binary-files=without-match -H -n --color=always'
|
||||||
alias less='less -r'
|
alias less='less -r'
|
||||||
alias cp='cp -i'
|
alias cp='cp -i'
|
||||||
alias mv='mv -i'
|
alias mv='mv -i'
|
||||||
|
# use nvim instead of vim when available
|
||||||
|
if type nvim >/dev/null 2>&1; then
|
||||||
|
alias vi='vim'
|
||||||
|
alias vim='nvim'
|
||||||
|
fi
|
||||||
alias automake='{ while true; do inotifywait -r -e modify . && make; done; } &'
|
alias automake='{ while true; do inotifywait -r -e modify . && make; done; } &'
|
||||||
|
# less verbose and more colorful `ip addr`-output
|
||||||
|
alias ip='ip -br -color=auto'
|
||||||
|
|
||||||
# ===== sp aliases
|
# ===== sp aliases
|
||||||
alias xterm='xterm -fa terminus -fs 8'
|
alias xterm='xterm -fa terminus -fs 8'
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,9 @@ zstyle ':completion:::::' completer \
|
||||||
#TODO: keep _prefix or not?
|
#TODO: keep _prefix or not?
|
||||||
|
|
||||||
# ignore case when trying to match typed characters
|
# ignore case when trying to match typed characters
|
||||||
zstyle ':completion:*:(^approximate):*' matcher-list 'm:{a-zA-Z-_}={A-Za-z_-}'
|
zstyle ':completion:*:(^approximate):*' matcher-list 'm:{[:lower:]}={[:upper:]}' \
|
||||||
|
'+m:{[:upper:]}={[:lower:]}' \
|
||||||
|
'+m:{-_}={_-}'
|
||||||
|
|
||||||
# allow one mistake per three characters
|
# allow one mistake per three characters
|
||||||
zstyle -e ':completion:*:approximate:*' max-errors \
|
zstyle -e ':completion:*:approximate:*' max-errors \
|
||||||
|
|
@ -106,11 +108,11 @@ zstyle ':completion:*' separate-sections on
|
||||||
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01'
|
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01'
|
||||||
|
|
||||||
# do not complete unwanted files with vim
|
# do not complete unwanted files with vim
|
||||||
zstyle ':completion:*:*:vim:*:globbed-files' ignored-patterns \
|
zstyle ':completion:*:*:*vim:*:globbed-files' ignored-patterns \
|
||||||
'*.aux' '*.log' '*.pdf' '*.ps' '*.bbl' '*.blg' '*.out' '*-blx.bib' '*.run.xml' '*.dvi' \
|
'*.o' '*.so' '*.out' \
|
||||||
'*.o' \
|
'*.class' \
|
||||||
'*.pyc' \
|
'*.pyc' \
|
||||||
'*.class'
|
'*.aux' '*.bbl' '*.bcf' '*.blg' '*.lof' '*.lol' '*.lot' '*.pdf' '*.rubbercache' '*.run.xml' '*.toc' '*.pdf' '*.dvi'
|
||||||
|
|
||||||
# only complete *.pdf with katarakt
|
# only complete *.pdf with katarakt
|
||||||
zstyle ':completion:*:*:katarakt:*:*' file-patterns '*.pdf *(-/)'
|
zstyle ':completion:*:*:katarakt:*:*' file-patterns '*.pdf *(-/)'
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
# set EDITOR variable
|
# set EDITOR variable
|
||||||
if type vim >/dev/null 2>&1; then
|
if type nvim >/dev/null 2>&1; then
|
||||||
|
export EDITOR="nvim"
|
||||||
|
elif type vim >/dev/null 2>&1; then
|
||||||
export EDITOR="vim"
|
export EDITOR="vim"
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ case "$OSTYPE" in
|
||||||
export LSCOLORS=gxfxcxdxbxegedabagacad
|
export LSCOLORS=gxfxcxdxbxegedabagacad
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
export LS_COLORS=di='36;40:ln=35;40:so=32;40:pi=33;40:ex=31;40:bd=34;46:cd=34;43:su=0;41:sg=0;46:tw=0;42:ow=0;43:'
|
export LS_COLORS=di='36;40:ln=35;40:so=32;40:pi=33;40:ex=31;40:bd=34;46:cd=34;43:su=0;41:sg=0;46:tw=0;42:ow=0;45:'
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
@ -18,6 +18,9 @@ setopt transient_rprompt # only show the rprompt on the current prompt
|
||||||
# ===== set the prompt
|
# ===== set the prompt
|
||||||
zshrc_prompt_precmd() {
|
zshrc_prompt_precmd() {
|
||||||
|
|
||||||
|
# call vcs_info before every prompt
|
||||||
|
vcs_info
|
||||||
|
|
||||||
# regex to remove all zerospace elements. Used to calculate the width of
|
# regex to remove all zerospace elements. Used to calculate the width of
|
||||||
# the top prompt.
|
# the top prompt.
|
||||||
local zero='%([BSUBfksu]|([FB]|){*})'
|
local zero='%([BSUBfksu]|([FB]|){*})'
|
||||||
|
|
@ -52,6 +55,14 @@ zshrc_prompt_precmd() {
|
||||||
# username, green for normal users, red for root
|
# username, green for normal users, red for root
|
||||||
local user="%(!.%F{red}.%F{green})%n%f"
|
local user="%(!.%F{red}.%F{green})%n%f"
|
||||||
|
|
||||||
|
# information about unstaged/staged changes in VCS in current directory
|
||||||
|
local vcs="${vcs_info_msg_0_}"
|
||||||
|
local vcs_width=${#${(S%%%)vcs//$~zero/}}
|
||||||
|
if [[ $vcs_width -ne 0 ]]; then
|
||||||
|
# add brackets if vcs is non-empty
|
||||||
|
vcs="${bracket_open}${vcs}${bracket_close}"
|
||||||
|
fi
|
||||||
|
|
||||||
# hostname, underlined if running on a remote system through SSH
|
# hostname, underlined if running on a remote system through SSH
|
||||||
local host="%F{green}%m%f"
|
local host="%F{green}%m%f"
|
||||||
if [[ -n $SSH_CONNECTION ]]; then
|
if [[ -n $SSH_CONNECTION ]]; then
|
||||||
|
|
@ -95,6 +106,7 @@ zshrc_prompt_precmd() {
|
||||||
# combine them to create the prompt
|
# combine them to create the prompt
|
||||||
local top_left=""
|
local top_left=""
|
||||||
local top_right="${bracket_open}${time}${bracket_close}"
|
local top_right="${bracket_open}${time}${bracket_close}"
|
||||||
|
local top_middle="${vcs}"
|
||||||
local bottom_left="${bracket_open}${user}%F{green}@%f${host}${bracket_close}${exitcode}${separator}${symbol}"
|
local bottom_left="${bracket_open}${user}%F{green}@%f${host}${bracket_close}${exitcode}${separator}${symbol}"
|
||||||
local bottom_right=
|
local bottom_right=
|
||||||
|
|
||||||
|
|
@ -109,15 +121,16 @@ zshrc_prompt_precmd() {
|
||||||
local width_top_prefix=${#${(S%%%)top_prefix//$~zero/}}
|
local width_top_prefix=${#${(S%%%)top_prefix//$~zero/}}
|
||||||
local width_top_suffix=${#${(S%%%)top_suffix//$~zero/}}
|
local width_top_suffix=${#${(S%%%)top_suffix//$~zero/}}
|
||||||
local width_top_left=${#${(S%%%)top_left//$~zero/}}
|
local width_top_left=${#${(S%%%)top_left//$~zero/}}
|
||||||
|
local width_top_middle=${#${(S%%%)top_middle//$~zero/}}
|
||||||
local width_top_right=${#${(S%%%)top_right//$~zero/}}
|
local width_top_right=${#${(S%%%)top_right//$~zero/}}
|
||||||
|
|
||||||
# calculate the maximum width of ${top_left}:
|
# calculate the maximum width of ${top_left}:
|
||||||
# (-4 for brackets, -1 as spacing between top_left and top_right)
|
# (-4 for brackets and as spacing between top_left, top_middle and top_right)
|
||||||
local top_left_width_max=$((
|
local top_left_width_max=$((
|
||||||
COLUMNS - $width_top_prefix
|
COLUMNS - $width_top_prefix
|
||||||
- $width_top_left - 4
|
- $width_top_left - 2
|
||||||
- 1
|
- $width_top_middle
|
||||||
- $width_top_right
|
- $width_top_right - 2
|
||||||
- $width_top_suffix
|
- $width_top_suffix
|
||||||
))
|
))
|
||||||
|
|
||||||
|
|
@ -129,12 +142,14 @@ zshrc_prompt_precmd() {
|
||||||
local width=$((
|
local width=$((
|
||||||
COLUMNS - width_top_prefix
|
COLUMNS - width_top_prefix
|
||||||
- width_top_left
|
- width_top_left
|
||||||
|
- width_top_middle
|
||||||
- width_top_right
|
- width_top_right
|
||||||
- width_top_suffix
|
- width_top_suffix
|
||||||
))
|
))
|
||||||
local top_separator="%F{cyan}${(pl:${width}::$dash:)}%f"
|
local top_left_separator="%F{cyan}${(pl:$((width / 2))::$dash:)}%f"
|
||||||
|
local top_right_separator="%F{cyan}${(pl:$((width / 2 + width % 2))::$dash:)}%f"
|
||||||
|
|
||||||
PROMPT="${top_prefix}${top_left}${top_separator}${top_right}${top_suffix}
|
PROMPT="${top_prefix}${top_left}${top_left_separator}${top_middle}${top_right_separator}${top_right}${top_suffix}
|
||||||
${bottom_prefix}${bottom_left} "
|
${bottom_prefix}${bottom_left} "
|
||||||
|
|
||||||
RPROMPT="${bottom_right}${bottom_suffix}"
|
RPROMPT="${bottom_right}${bottom_suffix}"
|
||||||
|
|
|
||||||
69
zsh/vcs.zsh
Normal file
69
zsh/vcs.zsh
Normal file
|
|
@ -0,0 +1,69 @@
|
||||||
|
autoload -Uz vcs_info
|
||||||
|
|
||||||
|
# only look for certain VCS
|
||||||
|
zstyle ':vcs_info:*' enable git
|
||||||
|
|
||||||
|
# check repository for changes so that they can be used in %u/%c
|
||||||
|
# (this might be slow for bigger repositories)
|
||||||
|
zstyle ':vcs_info:*' check-for-changes yes
|
||||||
|
|
||||||
|
# display current branch (%b -> green), unstaged + staged changes (%u/%c -> green),
|
||||||
|
# VCS (%s -> blue) and custom messages (%m).
|
||||||
|
zstyle ':vcs_info:*' formats \
|
||||||
|
"%F{green}%b%u%c%F{default}:%F{blue}%s%F{default}%m"
|
||||||
|
# during special actions (e.g. merge, rebase), also display those (%a -> red)
|
||||||
|
zstyle ':vcs_info:*' actionformats \
|
||||||
|
"(%F{green}%b%u%c%F{default}/%F{red}%a%F{default}:%F{blue}%s%F{default}%m)"
|
||||||
|
|
||||||
|
# set style for formats/actionformats when unstaged (%u) and staged (%c)
|
||||||
|
# changes are detected in the repository
|
||||||
|
# (check-for-changes must be true for this to work)
|
||||||
|
zstyle ':vcs_info:*' unstagedstr '¹'
|
||||||
|
zstyle ':vcs_info:*' stagedstr '²'
|
||||||
|
|
||||||
|
# force vcs_info to be run. this prevents running it later for performance reasons.
|
||||||
|
# default to run vcs_info. will be prevented from running later if possible
|
||||||
|
# (for speedup)
|
||||||
|
zshrc_force_run_vcs_info=1
|
||||||
|
|
||||||
|
# cache data
|
||||||
|
zstyle ':vcs_info:*+pre-get-data:*' hooks pre-get-data
|
||||||
|
+vi-pre-get-data() {
|
||||||
|
# only git and mercurial support and need caching. ignore all other VCS
|
||||||
|
[[ $vcs != git && $vcs != hg ]] && return
|
||||||
|
|
||||||
|
# run vcs_info on startup, on directory change (or for other custom reasons)
|
||||||
|
if [[ -n $zshrc_force_run_vcs_info ]]; then
|
||||||
|
zshrc_force_run_vcs_info=
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# don't run vcs_info by default to speed up the shell
|
||||||
|
ret=1
|
||||||
|
case $(fc -ln $(($HISTCMD-1))) in
|
||||||
|
# vcs status might need an update after running git/hg
|
||||||
|
git* | g\ *)
|
||||||
|
ret=0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# display stash count
|
||||||
|
function +vi-git-stashes() {
|
||||||
|
if [[ -s ${hook_com[base]/.git/refs/stash} ]]; then
|
||||||
|
local -a stashes
|
||||||
|
# "grep" output of git stash list via (M) and :#(...)
|
||||||
|
stashes=( ${(M)${(f)"$(git stash list 2>/dev/null)"}:#(*WIP*)} )
|
||||||
|
|
||||||
|
if [[ ${#stashes} -gt 0 ]]; then
|
||||||
|
hook_com[misc]+=" %F{yellow}${#stashes}s%F{default}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
zstyle ':vcs_info:git*+set-message:*' hooks git-stashes
|
||||||
|
|
||||||
|
# enforce running vcs_info when changing directory
|
||||||
|
prompt_chpwd() {
|
||||||
|
zshrc_force_run_vcs_info=1
|
||||||
|
}
|
||||||
|
chpwd_functions+=(prompt_chpwd)
|
||||||
6
zshrc
6
zshrc
|
|
@ -2,9 +2,15 @@
|
||||||
source ~/.zsh/keybindings.zsh
|
source ~/.zsh/keybindings.zsh
|
||||||
source ~/.zsh/setopt.zsh
|
source ~/.zsh/setopt.zsh
|
||||||
source ~/.zsh/general.zsh
|
source ~/.zsh/general.zsh
|
||||||
|
source ~/.zsh/vcs.zsh
|
||||||
source ~/.zsh/prompt.zsh
|
source ~/.zsh/prompt.zsh
|
||||||
source ~/.zsh/completion.zsh
|
source ~/.zsh/completion.zsh
|
||||||
source ~/.zsh/history.zsh
|
source ~/.zsh/history.zsh
|
||||||
source ~/.zsh/aliases.zsh
|
source ~/.zsh/aliases.zsh
|
||||||
source ~/.zsh/multiplexer.zsh
|
source ~/.zsh/multiplexer.zsh
|
||||||
source ~/.zsh/exports.zsh
|
source ~/.zsh/exports.zsh
|
||||||
|
|
||||||
|
# Try loading additional local config if available
|
||||||
|
if [ -f ~/.zsh/custom.zsh ]; then
|
||||||
|
source ~/.zsh/custom.zsh
|
||||||
|
fi
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue