mirror of
https://github.com/kmein/niveum
synced 2026-03-16 10:11:08 +01:00
Configure like hell
This commit is contained in:
BIN
art/haskell-grey.png
Normal file
BIN
art/haskell-grey.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
841
config.nix
841
config.nix
@@ -1,661 +1,276 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
let
|
let
|
||||||
uiFont = "Roboto";
|
fullName = "Kierán Meinhardt";
|
||||||
uiFontSize = 10;
|
fullEmail = "kieran.meinhardt@gmail.com";
|
||||||
defaultTerminal = "${pkgs.lxqt.qterminal}/bin/qterminal";
|
theme = {
|
||||||
white = "#ffffff";
|
# gtk = { name = "Adwaita"; package = pkgs.gnome3.gnome_themes_standard; };
|
||||||
black = "#000000";
|
gtk = { name = "Numix-SX-FullDark"; package = pkgs.numix-sx-gtk-theme; };
|
||||||
lightGray = "#aaaaaa";
|
icon = { name = "Papirus-Adapta-Nokto"; package = pkgs.papirus-icon-theme; };
|
||||||
darkGray = "#888888";
|
# icon = { name = "Adwaita"; package = pkgs.gnome3.adwaita-icon-theme; };
|
||||||
red = "#ff0000";
|
};
|
||||||
|
defaultApplications = {
|
||||||
spotify_info = pkgs.writeScript "spotify.info" ''
|
terminal = "${pkgs.xfce.terminal}/bin/xfce4-terminal";
|
||||||
#!/bin/bash
|
webBrowser = "${pkgs.google-chrome}/bin/google-chrome-stable";
|
||||||
|
fileManager = "${pkgs.gnome3.nautilus}/bin/nautilus";
|
||||||
STATUS=$(${pkgs.dbus}/bin/dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:'org.mpris.MediaPlayer2.Player' string:'PlaybackStatus'|egrep -A 1 "string"|cut -b 26-|cut -d '"' -f 1|egrep -v ^$)
|
};
|
||||||
|
wallpaper = pkgs.copyPathToStore ./art/haskell-grey.png;
|
||||||
if [[ "$STATUS" == 'Playing' ]]; then
|
|
||||||
printf '\uf1bc '
|
|
||||||
printf '\uf04b'
|
|
||||||
elif [[ "$STATUS" == 'Paused' ]]; then
|
|
||||||
printf '\uf1bc '
|
|
||||||
printf '\uf04c'
|
|
||||||
elif [[ "$STATUS" == 'Stopped' ]]; then
|
|
||||||
printf '\uf1bc '
|
|
||||||
printf '\uf04d'
|
|
||||||
else
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf ' '
|
|
||||||
|
|
||||||
METADATA=$(${pkgs.dbus}/bin/dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:'org.mpris.MediaPlayer2.Player' string:'Metadata')
|
|
||||||
ARTIST=$(echo "$METADATA" | egrep -A 2 "artist" | egrep -v "artist" | egrep -v "array" | cut -b 27- | cut -d '"' -f 1 | egrep -v ^$)
|
|
||||||
TITLE=$(echo "$METADATA" | egrep -A 1 "title" | egrep -v "title" | cut -b 44- | cut -d '"' -f 1 | egrep -v ^$)
|
|
||||||
|
|
||||||
printf "%s \u2237 %s" "$ARTIST" "$TITLE"
|
|
||||||
'';
|
|
||||||
battery_info = pkgs.writeScript "battery.info" ''
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
cd "/sys/class/power_supply/$BLOCK_INSTANCE/"
|
|
||||||
|
|
||||||
status=$(cat status)
|
|
||||||
charge_f=$((100 * $(cat charge_now) / $(cat charge_full)))
|
|
||||||
|
|
||||||
if [[ "$charge_f" -lt 20 ]]; then
|
|
||||||
printf '\uf244'
|
|
||||||
elif [[ "$charge_f" -lt 40 ]]; then
|
|
||||||
printf '\uf243'
|
|
||||||
elif [[ "$charge_f" -lt 60 ]]; then
|
|
||||||
printf '\uf242'
|
|
||||||
elif [[ "$charge_f" -lt 80 ]]; then
|
|
||||||
printf '\uf241'
|
|
||||||
else
|
|
||||||
printf '\uf240'
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf ' '
|
|
||||||
|
|
||||||
if [[ "$status" == 'Charging' ]]; then
|
|
||||||
printf '\uf106'
|
|
||||||
elif [[ "$status" == 'Discharging' ]]; then
|
|
||||||
printf '\uf107'
|
|
||||||
elif [[ "$status" == 'Full' ]]; then
|
|
||||||
printf '\uf0e7'
|
|
||||||
else
|
|
||||||
printf '[%s]' "$status"
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf ' '
|
|
||||||
|
|
||||||
if [[ "$status" != 'Full' ]]; then
|
|
||||||
rate_raw=$(($(cat voltage_now) * $(cat power_now)))
|
|
||||||
rate=$(bc <<< "scale=1; $rate_raw / 10^12")
|
|
||||||
printf '%s\u2009W, ' "$rate"
|
|
||||||
fi
|
|
||||||
|
|
||||||
charge_d=$((100 * $(cat charge_now) / $(cat charge_full)))
|
|
||||||
printf '%s%%\n' "$charge_d"
|
|
||||||
|
|
||||||
if [[ "$status" == 'Discharging' ]]; then
|
|
||||||
if [[ "$charge_d" -lt 10 ]]; then
|
|
||||||
printf '\n#E41C28'
|
|
||||||
elif [[ "$charge_d" -lt 20 ]]; then
|
|
||||||
printf '\n#EEBF13'
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
volume_info = pkgs.writeScript "volume.info" ''
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
if [[ "$BLOCK_BUTTON" == 1 ]]; then
|
|
||||||
${pkgs.pamixer}/bin/pamixer -i 5
|
|
||||||
elif [[ "$BLOCK_BUTTON" == 3 ]]; then
|
|
||||||
${pkgs.pamixer}/bin/pamixer -d 5
|
|
||||||
elif [[ "$BLOCK_BUTTON" == 2 ]]; then
|
|
||||||
${pkgs.pamixer}/bin/pamixer -t
|
|
||||||
fi
|
|
||||||
|
|
||||||
if $(${pkgs.pamixer}/bin/pamixer --get-mute); then
|
|
||||||
printf '\uf026 0%%\n\n#EEBF13'
|
|
||||||
else
|
|
||||||
volume=$(${pkgs.pamixer}/bin/pamixer --get-volume)
|
|
||||||
printf '\uf028 %s%%' "$volume"
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
fancyDate = pkgs.writeScript "fancy_date.py" ''
|
|
||||||
#!/usr/bin/env python3
|
|
||||||
from datetime import datetime
|
|
||||||
now = datetime.now()
|
|
||||||
print(now.strftime("%d\u2009{}\u2009%Y ⟨%V⟩").format(chr(0x2160 + (now.month - 1))))
|
|
||||||
'';
|
|
||||||
i3blocks_conf = pkgs.writeText "i3blocks.conf" ''
|
|
||||||
markup=pango
|
|
||||||
align=center
|
|
||||||
color=${white}
|
|
||||||
|
|
||||||
[spotify]
|
|
||||||
command=${spotify_info}
|
|
||||||
interval=1
|
|
||||||
|
|
||||||
[separator]
|
|
||||||
|
|
||||||
[volume]
|
|
||||||
command=${volume_info}
|
|
||||||
min_width= 100%
|
|
||||||
interval=once
|
|
||||||
signal=3
|
|
||||||
|
|
||||||
[separator]
|
|
||||||
|
|
||||||
[brightness]
|
|
||||||
command=printf "%.1f%%" $(${pkgs.xorg.xbacklight}/bin/xbacklight)
|
|
||||||
label=
|
|
||||||
min_width= 100%
|
|
||||||
signal=2
|
|
||||||
interval=once
|
|
||||||
|
|
||||||
[separator]
|
|
||||||
|
|
||||||
[cpu_usage]
|
|
||||||
command=cut -d' ' -f 1-3 < /proc/loadavg
|
|
||||||
label=
|
|
||||||
interval=2
|
|
||||||
|
|
||||||
[separator]
|
|
||||||
|
|
||||||
[ram_usage]
|
|
||||||
command=free -h | grep "Mem" | awk '{print $3}'
|
|
||||||
label=
|
|
||||||
interval=2
|
|
||||||
align=center
|
|
||||||
|
|
||||||
[separator]
|
|
||||||
|
|
||||||
[battery]
|
|
||||||
command=${battery_info}
|
|
||||||
#echo "$(cat /sys/class/power_supply/BAT1/capacity)% ($(cat /sys/class/power_supply/BAT1/status))"
|
|
||||||
interval=10
|
|
||||||
instance=BAT1
|
|
||||||
|
|
||||||
[separator]
|
|
||||||
|
|
||||||
[date]
|
|
||||||
#command=date +'%F [%a(%V):%j]'
|
|
||||||
command=${fancyDate}
|
|
||||||
interval=30
|
|
||||||
label=
|
|
||||||
|
|
||||||
[separator]
|
|
||||||
|
|
||||||
[time]
|
|
||||||
command=date +'%H:%M'
|
|
||||||
interval=30
|
|
||||||
label=
|
|
||||||
|
|
||||||
[separator]
|
|
||||||
'';
|
|
||||||
i3_conf = pkgs.writeText "i3.conf" ''
|
|
||||||
set $rofsize 12
|
|
||||||
set $mainfont ${uiFont} ${uiFontSize}
|
|
||||||
|
|
||||||
set $accent-color ${darkGray}
|
|
||||||
set $bg-color ${black}
|
|
||||||
set $border-color ${black}
|
|
||||||
set $inactive-bg-color ${black}
|
|
||||||
set $inactive-text-color ${darkGray}
|
|
||||||
set $active-text-color ${lightGray}
|
|
||||||
set $indicator-color ${white}
|
|
||||||
set $text-color ${white}
|
|
||||||
set $urgent-color ${red}
|
|
||||||
set $ws-bg-color ${black}
|
|
||||||
set $ws-border-color ${black}
|
|
||||||
set $ws-inactive-bg-color ${black}
|
|
||||||
|
|
||||||
set $terminal ${defaultTerminal}
|
|
||||||
set $file-manager ${pkgs.gnome3.nautilus}/bin/nautilus
|
|
||||||
set $browser ${pkgs.google-chrome}/bin/google-chrome-stable
|
|
||||||
|
|
||||||
set $mod Mod4
|
|
||||||
|
|
||||||
font pango:${uiFont} ${uiFontSize}
|
|
||||||
floating_modifier $mod
|
|
||||||
|
|
||||||
hide_edge_borders both
|
|
||||||
new_window pixel 1
|
|
||||||
new_float pixel 1
|
|
||||||
|
|
||||||
bindsym $mod+Return exec $terminal
|
|
||||||
bindsym $mod+y exec $browser
|
|
||||||
bindsym $mod+t exec $file-manager
|
|
||||||
bindsym $mod+Shift+q kill
|
|
||||||
bindsym $mod+Left focus left
|
|
||||||
bindsym $mod+Down focus down
|
|
||||||
bindsym $mod+Up focus up
|
|
||||||
bindsym $mod+Right focus right
|
|
||||||
bindsym $mod+p workspace prev
|
|
||||||
bindsym $mod+n workspace next
|
|
||||||
bindsym $mod+Shift+Left move left
|
|
||||||
bindsym $mod+Shift+Down move down
|
|
||||||
bindsym $mod+Shift+Up move up
|
|
||||||
bindsym $mod+Shift+Right move right
|
|
||||||
bindsym $mod+h split h
|
|
||||||
bindsym $mod+v split v
|
|
||||||
bindsym $mod+f fullscreen toggle
|
|
||||||
bindsym $mod+s layout stacking
|
|
||||||
bindsym $mod+w layout tabbed
|
|
||||||
bindsym $mod+e layout toggle split
|
|
||||||
bindsym $mod+Shift+z floating toggle
|
|
||||||
bindsym $mod+Shift+c reload
|
|
||||||
bindsym $mod+Shift+r restart
|
|
||||||
bindsym $mod+d exec ${pkgs.rofi}/bin/rofi -show run
|
|
||||||
|
|
||||||
set $WS1 1
|
|
||||||
set $WS2 2
|
|
||||||
set $WS3 3
|
|
||||||
set $WS4 4
|
|
||||||
set $WS5 5
|
|
||||||
set $WS6 6
|
|
||||||
set $WS7 7
|
|
||||||
set $WS8 8
|
|
||||||
set $WS9 9
|
|
||||||
set $WS10 10
|
|
||||||
bindsym $mod+0 workspace $WS10
|
|
||||||
bindsym $mod+1 workspace $WS1
|
|
||||||
bindsym $mod+2 workspace $WS2
|
|
||||||
bindsym $mod+3 workspace $WS3
|
|
||||||
bindsym $mod+4 workspace $WS4
|
|
||||||
bindsym $mod+5 workspace $WS5
|
|
||||||
bindsym $mod+6 workspace $WS6
|
|
||||||
bindsym $mod+7 workspace $WS7
|
|
||||||
bindsym $mod+8 workspace $WS8
|
|
||||||
bindsym $mod+9 workspace $WS9
|
|
||||||
bindsym $mod+Shift+0 move container to workspace $WS10
|
|
||||||
bindsym $mod+Shift+1 move container to workspace $WS1
|
|
||||||
bindsym $mod+Shift+2 move container to workspace $WS2
|
|
||||||
bindsym $mod+Shift+3 move container to workspace $WS3
|
|
||||||
bindsym $mod+Shift+4 move container to workspace $WS4
|
|
||||||
bindsym $mod+Shift+5 move container to workspace $WS5
|
|
||||||
bindsym $mod+Shift+6 move container to workspace $WS6
|
|
||||||
bindsym $mod+Shift+7 move container to workspace $WS7
|
|
||||||
bindsym $mod+Shift+8 move container to workspace $WS8
|
|
||||||
bindsym $mod+Shift+9 move container to workspace $WS9
|
|
||||||
|
|
||||||
bindsym XF86AudioLowerVolume exec --no-startup-id ${pkgs.pamixer}/bin/pamixer -d 5 && pkill -RTMIN+3 i3blocks
|
|
||||||
bindsym XF86AudioRaiseVolume exec --no-startup-id ${pkgs.pamixer}/bin/pamixer -i 5 && pkill -RTMIN+3 i3blocks
|
|
||||||
bindsym XF86AudioMute exec --no-startup-id ${pkgs.pamixer}/bin/pamixer -t && pkill -RTMIN+3 i3blocks
|
|
||||||
bindsym XF86MonBrightnessUp exec --no-startup-id ${pkgs.xorg.xbacklight}/bin/xbacklight + 10 && pkill -RTMIN+2 i3blocks
|
|
||||||
bindsym XF86MonBrightnessDown exec --no-startup-id ${pkgs.xorg.xbacklight}/bin/xbacklight - 10 && pkill -RTMIN+2 i3blocks
|
|
||||||
|
|
||||||
mode " " {
|
|
||||||
bindsym Left resize shrink width 10 px or 10 ppt
|
|
||||||
bindsym Down resize grow height 10 px or 10 ppt
|
|
||||||
bindsym Up resize shrink height 10 px or 10 ppt
|
|
||||||
bindsym Right resize grow width 10 px or 10 ppt
|
|
||||||
bindsym Escape mode "default"
|
|
||||||
}
|
|
||||||
bindsym $mod+r mode " "
|
|
||||||
|
|
||||||
client.focused $accent-color $bg-color $text-color $indicator-color $accent-color
|
|
||||||
client.focused_inactive $border-color $inactive-bg-color $inactive-text-color $indicator-color $border-color
|
|
||||||
client.unfocused $border-color $inactive-bg-color $inactive-text-color $indicator-color $border-color
|
|
||||||
client.urgent $urgent-color $bg-color $text-color $indicator-color $urgent-color
|
|
||||||
|
|
||||||
bar {
|
|
||||||
status_command "${pkgs.i3blocks}/bin/i3blocks -c ${i3blocks_conf}"
|
|
||||||
position top
|
|
||||||
|
|
||||||
font pango:$font,FontAwesome $size
|
|
||||||
separator_symbol " // "
|
|
||||||
colors {
|
|
||||||
separator $inactive-text-color
|
|
||||||
background $inactive-bg-color
|
|
||||||
statusline $inactive-text-color
|
|
||||||
|
|
||||||
focused_workspace $ws-border-color $ws-bg-color $text-color
|
|
||||||
active_workspace $ws-border-color $ws-bg-color $active-text-color
|
|
||||||
inactive_workspace $ws-border-color $ws-inactive-bg-color $inactive-text-color
|
|
||||||
urgent_workspace $ws-border-color $ws-bg-color $urgent-color
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
exec --no-startup-id ${pkgs.networkmanagerapplet}/bin/nm-applet
|
|
||||||
'';
|
|
||||||
vim_conf = pkgs.writeText "vim.conf" ''
|
|
||||||
let mapleader=","
|
|
||||||
let maplocalleader=";"
|
|
||||||
|
|
||||||
filetype off
|
|
||||||
|
|
||||||
set packpath^=~/.vim
|
|
||||||
packadd minpac
|
|
||||||
call minpac#init()
|
|
||||||
call minpac#add('LnL7/vim-nix')
|
|
||||||
call minpac#add('MarcWeber/vim-addon-mw-utils')
|
|
||||||
call minpac#add('Shougo/neocomplete.vim')
|
|
||||||
call minpac#add('Shougo/vimproc.vim')
|
|
||||||
call minpac#add('airblade/vim-gitgutter')
|
|
||||||
call minpac#add('bling/vim-bufferline')
|
|
||||||
call minpac#add('ctrlpvim/ctrlp.vim')
|
|
||||||
call minpac#add('dhruvasagar/vim-table-mode')
|
|
||||||
call minpac#add('fsharp/vim-fsharp')
|
|
||||||
call minpac#add('garbas/vim-snipmate')
|
|
||||||
call minpac#add('gerw/vim-latex-suite')
|
|
||||||
call minpac#add('godlygeek/tabular')
|
|
||||||
call minpac#add('idris-hackers/idris-vim')
|
|
||||||
call minpac#add('k-takata/minpac', {'type':'opt'})
|
|
||||||
call minpac#add('kien/rainbow_parentheses.vim')
|
|
||||||
call minpac#add('leafgarland/typescript-vim')
|
|
||||||
call minpac#add('mattn/emmet-vim')
|
|
||||||
call minpac#add('mhinz/vim-startify')
|
|
||||||
call minpac#add('mxw/vim-jsx')
|
|
||||||
call minpac#add('pangloss/vim-javascript')
|
|
||||||
call minpac#add('raichoo/purescript-vim')
|
|
||||||
call minpac#add('rust-lang/rust.vim')
|
|
||||||
call minpac#add('scrooloose/nerdcommenter')
|
|
||||||
call minpac#add('scrooloose/nerdtree')
|
|
||||||
call minpac#add('scrooloose/syntastic')
|
|
||||||
call minpac#add('tomtom/tlib_vim')
|
|
||||||
call minpac#add('toyamarinyon/vim-swift')
|
|
||||||
call minpac#add('tpope/vim-fugitive')
|
|
||||||
call minpac#add('tpope/vim-git')
|
|
||||||
call minpac#add('tpope/vim-repeat')
|
|
||||||
call minpac#add('tpope/vim-speeddating')
|
|
||||||
call minpac#add('tpope/vim-surround')
|
|
||||||
call minpac#add('vim-airline/vim-airline')
|
|
||||||
call minpac#add('vim-airline/vim-airline-themes')
|
|
||||||
call minpac#add('vim-pandoc/vim-pandoc-syntax')
|
|
||||||
call minpac#add('vim-scripts/Gundo')
|
|
||||||
call minpac#add('vim-scripts/SuperTab')
|
|
||||||
|
|
||||||
let g:vimtex_disable_version_warning = 1
|
|
||||||
|
|
||||||
let g:airline#extensions#tabline#close_symbol = 'X'
|
|
||||||
let g:airline#extensions#tabline#enabled = 0
|
|
||||||
let g:airline#extensions#tabline#left_alt_sep = ''
|
|
||||||
let g:airline#extensions#tabline#left_sep = ''
|
|
||||||
let g:airline#extensions#tabline#right_alt_sep = ''
|
|
||||||
let g:airline#extensions#tabline#right_sep = ''
|
|
||||||
let g:airline#extensions#tabline#show_close_button = 1
|
|
||||||
let g:airline#extensions#tabline#show_tab_type = 0
|
|
||||||
let g:airline#extensions#tabline#tab_min_count = 2
|
|
||||||
let g:airline#extensions#tabline#tab_nr_type = 0
|
|
||||||
let g:airline#extensions#tmuxline#enabled = 0
|
|
||||||
let g:airline#extensions#wordcount#enabled = 1
|
|
||||||
let g:airline_left_alt_sep = ''
|
|
||||||
let g:airline_left_sep = ''
|
|
||||||
let g:airline_right_alt_sep = ''
|
|
||||||
let g:airline_right_sep = ''
|
|
||||||
let g:airline_section_z = '%{line(".") + 1}/%{line("$")}'
|
|
||||||
let g:airline_theme='simple'
|
|
||||||
|
|
||||||
let g:syntastic_always_populate_loc_list = 1
|
|
||||||
let g:syntastic_auto_loc_list = 0
|
|
||||||
let g:syntastic_check_on_open = 0
|
|
||||||
let g:syntastic_check_on_wq = 0
|
|
||||||
|
|
||||||
nnoremap <F5> :GundoToggle<CR>
|
|
||||||
|
|
||||||
map ,s :SyntasticToggleMode<CR>
|
|
||||||
map <silent> tw :GhcModTypeInsert<CR>
|
|
||||||
map <silent> ts :GhcModSplitFunCase<CR>
|
|
||||||
map <silent> tq :GhcModType<CR>
|
|
||||||
map <silent> te :GhcModTypeClear<CR>
|
|
||||||
let g:haskellmode_completion_ghc = 1
|
|
||||||
|
|
||||||
let g:SuperTabDefaultCompletionType = '<c-n>' " '<c-x><c-o>'
|
|
||||||
|
|
||||||
if has("gui_running")
|
|
||||||
imap <c-space> <c-r>=SuperTabAlternateCompletion("\<lt>c-x>\<lt>c-o>")<cr>
|
|
||||||
else " no gui
|
|
||||||
if has("unix")
|
|
||||||
inoremap <Nul> <c-r>=SuperTabAlternateCompletion("\<lt>c-x>\<lt>c-o>")<cr>
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
vmap a= :Tabularize /=<CR>
|
|
||||||
vmap a; :Tabularize /::<CR>
|
|
||||||
vmap a- :Tabularize /-><CR>
|
|
||||||
|
|
||||||
|
|
||||||
""" {{{ Set commands
|
|
||||||
syntax on
|
|
||||||
colorscheme delek
|
|
||||||
|
|
||||||
filetype plugin indent on
|
|
||||||
|
|
||||||
set path=$PWD/**
|
|
||||||
set wildmenu
|
|
||||||
set shortmess+=I
|
|
||||||
set noshowcmd
|
|
||||||
set nocompatible
|
|
||||||
set tabstop=4
|
|
||||||
set shiftwidth=4
|
|
||||||
set expandtab
|
|
||||||
set number
|
|
||||||
set nowb
|
|
||||||
set noswapfile
|
|
||||||
set mouse=a
|
|
||||||
set ruler
|
|
||||||
set ignorecase smartcase
|
|
||||||
set showmatch
|
|
||||||
set encoding=utf8
|
|
||||||
set ffs=unix,dos,mac
|
|
||||||
set autoindent smartindent
|
|
||||||
set nowrap
|
|
||||||
set laststatus=2
|
|
||||||
set noshowmode " vim-airline is installed, no need for that
|
|
||||||
set linespace=0
|
|
||||||
set nohlsearch
|
|
||||||
set clipboard=unnamedplus,autoselect
|
|
||||||
set completeopt=menuone,menu,longest
|
|
||||||
set wildmode=longest,list,full
|
|
||||||
set nopaste
|
|
||||||
set title
|
|
||||||
set titleold=""
|
|
||||||
set titlestring=VIM:\ %F
|
|
||||||
set list
|
|
||||||
set listchars=tab:▸\ ,extends:❯,precedes:❮
|
|
||||||
set showbreak=↪
|
|
||||||
set norelativenumber
|
|
||||||
set foldlevelstart=30
|
|
||||||
|
|
||||||
let g:netrw_banner=0
|
|
||||||
let g:netrw_browse_split=4
|
|
||||||
let g:netrw_altv=1 " open splits to the right
|
|
||||||
let g:netrw_liststyle=3 " tree view
|
|
||||||
let g:netrw_list_hide=netrw_gitignore#Hide()
|
|
||||||
let g:netrw_list_hide.=',\(^\|\s\s\)\zs\.\S\+'
|
|
||||||
|
|
||||||
call matchadd('colorcolumn', '\%101v', 100)
|
|
||||||
highlight folded ctermbg=black
|
|
||||||
highlight colorcolumn ctermbg=red
|
|
||||||
highlight matchparen cterm=bold ctermbg=black ctermfg=white
|
|
||||||
|
|
||||||
|
|
||||||
if exists("+undofile")
|
|
||||||
" undofile - This allows you to use undos after exiting and restarting
|
|
||||||
" This, like swap and backups, uses .vim-undo first, then ~/.vim/undo
|
|
||||||
" :help undo-persistence
|
|
||||||
" This is only present in 7.3+
|
|
||||||
if isdirectory($HOME . '/.vim/undo') == 0
|
|
||||||
:silent !mkdir -p ~/.vim/undo > /dev/null 2>&1
|
|
||||||
endif
|
|
||||||
set undodir=./.vim-undo//
|
|
||||||
set undodir+=~/.vim/undo//
|
|
||||||
set undofile
|
|
||||||
endif
|
|
||||||
""" }}}
|
|
||||||
|
|
||||||
" map <leader>m :%s/^M//<cr>
|
|
||||||
|
|
||||||
" improve up/down navigation in wrapped lines
|
|
||||||
nnoremap j gj
|
|
||||||
nnoremap k gk
|
|
||||||
nnoremap 0 ^
|
|
||||||
|
|
||||||
" greek input
|
|
||||||
nnoremap η h
|
|
||||||
nnoremap ξ j
|
|
||||||
nnoremap κ k
|
|
||||||
nnoremap λ l
|
|
||||||
nnoremap ι i
|
|
||||||
" nmap t o<ESC>k
|
|
||||||
" nmap T O<ESC>j
|
|
||||||
|
|
||||||
function! AdjustTabbingTo2()
|
|
||||||
set noexpandtab tabstop=4
|
|
||||||
retab!
|
|
||||||
set expandtab tabstop=2
|
|
||||||
retab!
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" nmap <leader>t <SID>AdjustTabbingTo2()
|
|
||||||
|
|
||||||
nmap <C-k> ddkP
|
|
||||||
nmap <C-j> ddp
|
|
||||||
|
|
||||||
vmap <C-k> xkP`[V`]
|
|
||||||
vmap <C-j> xp`[V`]
|
|
||||||
""" }}}
|
|
||||||
|
|
||||||
""" {{{ Practicalities
|
|
||||||
function! <SID>StripTrailingWhitespaces()
|
|
||||||
let _s=@/
|
|
||||||
let l=line(".")
|
|
||||||
let c=col(".")
|
|
||||||
|
|
||||||
%s/\s\+$//e
|
|
||||||
|
|
||||||
let @/=_s
|
|
||||||
call cursor(l,c)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
if has("autocmd")
|
|
||||||
autocmd filetype markdown,text set formatprg=par\ -w80
|
|
||||||
autocmd filetype haskell set formatprg=hindent
|
|
||||||
autocmd filetype markdown,text set textwidth=80
|
|
||||||
autocmd filetype markdown,text set formatoptions+=t
|
|
||||||
autocmd bufreadpost *
|
|
||||||
\ if line("'\"") > 0 && line("'\"") <= line("$") |
|
|
||||||
\ exe "normal! g`\"" |
|
|
||||||
\ endif
|
|
||||||
autocmd bufwritepre * :call <SID>StripTrailingWhitespaces()
|
|
||||||
" autocmd bufnewfile,bufread *.md set filetype=markdown
|
|
||||||
autocmd bufnewfile,bufread *.asm set filetype=nasm
|
|
||||||
autocmd bufnewfile,bufread *.bf set filetype=brainfuck
|
|
||||||
autocmd bufnewfile,bufread *.do set filetype=sh
|
|
||||||
autocmd bufnewfile,bufread config set filetype=conf
|
|
||||||
autocmd bufnewfile,bufread *.conf set filetype=conf
|
|
||||||
autocmd bufnewfile,bufread *.4th set filetype=forth
|
|
||||||
autocmd bufnewfile,bufread *.tex set filetype=tex
|
|
||||||
autocmd bufnewfile,bufread *.c set keywordprg=man\ 3
|
|
||||||
autocmd bufnewfile,bufread *.h set keywordprg=man\ 3
|
|
||||||
|
|
||||||
autocmd filetype make setlocal noexpandtab
|
|
||||||
|
|
||||||
autocmd! bufnewfile,buffilepre,bufread *.md set filetype=markdown ".pandoc
|
|
||||||
autocmd bufreadpre * setlocal foldmethod=indent
|
|
||||||
autocmd bufwinenter * if &fdm == 'indent' | setlocal foldmethod=manual | endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
nnoremap <silent> <Space> @=(foldlevel('.')?'za':"\<Space>")<CR>
|
|
||||||
vnoremap <Space> zf
|
|
||||||
|
|
||||||
highlight TrailSpace ctermbg=red guibg=darkred
|
|
||||||
match TrailSpace /\s\+$/
|
|
||||||
|
|
||||||
command! RandomLine execute 'normal! '.(system('/bin/bash -c "echo -n $RANDOM"') % line('$')).'G'
|
|
||||||
|
|
||||||
|
|
||||||
function! s:DiffWithSaved()
|
|
||||||
let filetype=&ft
|
|
||||||
diffthis
|
|
||||||
vnew | r # | normal! 1Gdd
|
|
||||||
diffthis
|
|
||||||
execute "setlocal bt=nofile bh=wipe nobl noswf ro ft=" . filetype
|
|
||||||
endfunction
|
|
||||||
command! DiffSaved call s:DiffWithSaved()
|
|
||||||
'';
|
|
||||||
in {
|
in {
|
||||||
imports = [ "${builtins.fetchTarball https://github.com/rycee/home-manager/archive/master.tar.gz}/nixos" ];
|
imports = [ "${builtins.fetchTarball https://github.com/rycee/home-manager/archive/master.tar.gz}/nixos" ];
|
||||||
home-manager.users.my_username = { };
|
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
security.sudo.enable = true;
|
security.sudo.enable = true;
|
||||||
|
|
||||||
fonts.fonts = with pkgs; [ roboto font-awesome-ttf fira-code eb-garamond lmodern ];
|
fonts.fonts = with pkgs; [ powerline-fonts roboto font-awesome-ttf fira-code eb-garamond lmodern ];
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = [ theme.icon.package theme.gtk.package] ++ (with pkgs; [
|
||||||
stack python3 rustup nasm gcc tinycc nodejs ocaml fsharp clojure racket-minimal jo haskellPackages.hasktags perl ruby scala swiProlog jdk haskellPackages.idris ctags
|
stack haskellPackages.hasktags
|
||||||
|
rustup
|
||||||
|
gcc tinycc ctags
|
||||||
|
python3 mypy
|
||||||
|
nodejs jo
|
||||||
|
perl ruby lua
|
||||||
|
nasm
|
||||||
|
ocaml fsharp swiProlog haskellPackages.idris
|
||||||
|
clojure racket-minimal
|
||||||
|
jdk scala
|
||||||
|
|
||||||
ffmpeg mpv youtubeDL
|
ffmpeg mpv youtubeDL
|
||||||
inkscape imagemagick
|
inkscape imagemagick
|
||||||
zathura calibre
|
zathura calibre
|
||||||
google-play-music-desktop-player spotify gnome3.gnome-music audacity
|
spotify gnome3.gnome-music audacity
|
||||||
|
|
||||||
par haskellPackages.pandoc biber
|
par haskellPackages.pandoc biber
|
||||||
|
|
||||||
google-chrome firefox lynx w3m
|
google-chrome firefox lynx w3m firefoxPackages.tor-browser
|
||||||
|
|
||||||
lxappearance
|
lxappearance
|
||||||
lxqt.qterminal kitty
|
xfce.terminal
|
||||||
arc-icon-theme arc-kde-theme arc-theme breeze-qt5
|
|
||||||
xorg.xbacklight pamixer
|
xorg.xbacklight pamixer
|
||||||
gnome3.nautilus
|
gnome3.nautilus
|
||||||
kdeconnect
|
kdeconnect
|
||||||
vim
|
|
||||||
git
|
git
|
||||||
wget
|
ripgrep tree
|
||||||
htop
|
|
||||||
zip unzip
|
|
||||||
ripgrep
|
|
||||||
tmux
|
|
||||||
whois
|
whois
|
||||||
tree
|
wget htop zip unzip tmux
|
||||||
texlive.combined.scheme-full
|
texlive.combined.scheme-minimal
|
||||||
rlwrap
|
rlwrap
|
||||||
lua
|
|
||||||
libreoffice-fresh
|
libreoffice-fresh
|
||||||
pmount
|
pmount
|
||||||
gnumake
|
gnumake
|
||||||
franz
|
franz
|
||||||
grive2
|
grive2
|
||||||
geogebra gnuplot maxima
|
geogebra gnuplot maxima
|
||||||
];
|
]);
|
||||||
|
|
||||||
/*networking.hostname = "scardanelli";*/
|
environment.shellAliases =
|
||||||
networking.networkmanager.enable = true;
|
let rlwrap = cmd: "${pkgs.rlwrap}/bin/rlwrap ${cmd}"; in
|
||||||
|
{
|
||||||
services.xserver.enable = true;
|
ip = "${pkgs.iproute}/bin/ip -c";
|
||||||
services.xserver.layout = "de, gr, ru";
|
vi = "vim";
|
||||||
services.xserver.xkbVariant = "T3, polytonic, phonetic";
|
ocaml = rlwrap "${pkgs.ocaml}/bin/ocaml";
|
||||||
services.xserver.xkbOptions = "terminate:ctrl_alt_bksp, grp:alt_space_toggle";
|
tmux = "${pkgs.tmux}/bin/tmux -2";
|
||||||
i18n.consoleUseXkbConfig = true;
|
clipboard = "${pkgs.xclip}/bin/xclip -se c";
|
||||||
services.xserver.libinput.enable = true;
|
ghc = "${pkgs.stack}/bin/stack ghc --";
|
||||||
services.xserver.displayManager.lightdm.enable = true;
|
ghci = "${pkgs.stack}/bin/stack ghc -- --interactive";
|
||||||
services.xserver.displayManager.lightdm.greeters.gtk.clock-format = "%F";
|
external-ip = "${pkgs.dnsutils}/bin/dig +short myip.opendns.com @resolver1.opendns.com";
|
||||||
services.xserver.displayManager.lightdm.greeters.gtk.iconTheme = { package = pkgs.arc-icon-theme; name = "Arc"; };
|
|
||||||
services.xserver.displayManager.lightdm.greeters.gtk.theme = { package = pkgs.arc-theme; name = "Arc-Dark"; };
|
|
||||||
services.xserver.windowManager.default = "i3";
|
|
||||||
services.xserver.windowManager.i3.enable = true;
|
|
||||||
services.xserver.windowManager.i3.extraPackages = with pkgs; [ i3blocks networkmanagerapplet ];
|
|
||||||
services.xserver.windowManager.i3.configFile = i3_conf;
|
|
||||||
environment.etc.i3blocks_conf.source = i3blocks_conf;
|
|
||||||
environment.etc.vimrc.source = vim_conf;
|
|
||||||
|
|
||||||
programs.home-manager.enable = true;
|
|
||||||
programs.rofi = {
|
|
||||||
enable = true;
|
|
||||||
lines = 4;
|
|
||||||
font = uiFont + " " + uiFontSize;
|
|
||||||
terminal = defaultTerminal;
|
|
||||||
theme = "Arc-Dark";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services.compton = { enable = true; fade = true; shadow = true; fadeDelta = 2; };
|
# networking.hostname = "scardanelli";
|
||||||
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
|
layout = "de, gr, ru";
|
||||||
|
xkbVariant = "T3, polytonic, phonetic_winkeys";
|
||||||
|
xkbOptions = "terminate:ctrl_alt_bksp, grp:alt_space_toggle";
|
||||||
|
libinput.enable = true;
|
||||||
|
displayManager.lightdm = {
|
||||||
|
enable = true;
|
||||||
|
background = wallpaper;
|
||||||
|
greeters.gtk = {
|
||||||
|
clock-format = "%F";
|
||||||
|
iconTheme = theme.icon;
|
||||||
|
theme = theme.gtk;
|
||||||
|
extraConfig = with import ./theme.nix; ''
|
||||||
|
font-name = ${uiFont.name} ${toString uiFont.size}
|
||||||
|
xft-antialias = true
|
||||||
|
xft-dpi = 96
|
||||||
|
xft-hintstyle = slight
|
||||||
|
xft-rgba = rgb
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
windowManager = {
|
||||||
|
default = "i3";
|
||||||
|
i3 = {
|
||||||
|
enable = true;
|
||||||
|
configFile = pkgs.writeText "i3.conf" (import ./dot/i3.nix {
|
||||||
|
inherit pkgs defaultApplications wallpaper;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
i18n.consoleUseXkbConfig = true;
|
||||||
|
|
||||||
|
services.compton = {
|
||||||
|
enable = true;
|
||||||
|
fade = true;
|
||||||
|
shadow = true;
|
||||||
|
fadeDelta = 2;
|
||||||
|
menuOpacity = "0.95";
|
||||||
|
};
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
|
|
||||||
hardware.pulseaudio.enable = true;
|
hardware.pulseaudio.enable = true;
|
||||||
hardware.bluetooth.enable = true;
|
hardware.bluetooth.enable = true;
|
||||||
|
|
||||||
|
programs.zsh = {
|
||||||
|
enable = true;
|
||||||
|
enableCompletion = true;
|
||||||
|
autosuggestions.enable = true;
|
||||||
|
syntaxHighlighting.enable = true;
|
||||||
|
syntaxHighlighting.highlighters = [ "main" "brackets" "pattern" "cursor" "root" "line" ];
|
||||||
|
interactiveShellInit = ''
|
||||||
|
setopt INTERACTIVE_COMMENTS
|
||||||
|
setopt MULTIOS
|
||||||
|
setopt AUTO_PUSHD
|
||||||
|
setopt AUTO_NAME_DIRS
|
||||||
|
setopt PUSHD_MINUS
|
||||||
|
setopt PUSHD_TO_HOME
|
||||||
|
'';
|
||||||
|
promptInit = ''
|
||||||
|
PROMPT="%{$fg_bold[white]%}%~ \$([[ \$? == 0 ]] && echo \"%{$fg_bold[blue]%}\" || echo \"%{$fg_bold[red]%}\")%#%{$reset_color%} "
|
||||||
|
RPROMPT='$(git_prompt_info)'
|
||||||
|
|
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[green]%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}*"
|
||||||
|
'';
|
||||||
|
ohMyZsh.enable = true;
|
||||||
|
ohMyZsh.plugins = [ "common-aliases" "git" "git-extras" "history" "jsontools" ];
|
||||||
|
};
|
||||||
|
programs.bash = {
|
||||||
|
promptInit = ''PS1="[\$(exit=\$?; [[ \$exit == 0 ]] && echo \"\[\033[1;32m\]\$exit\" || echo \"\033[1;31m\]\$exit\")$(tput sgr0)]$(tput bold) \w $(tput setaf 1)\$$(tput sgr0) '';
|
||||||
|
enableCompletion = true;
|
||||||
|
};
|
||||||
|
|
||||||
programs.vim.defaultEditor = true;
|
programs.vim.defaultEditor = true;
|
||||||
programs.zsh.enable = true;
|
|
||||||
programs.zsh.autosuggestions.enable = true;
|
|
||||||
programs.zsh.enableCompletion = true;
|
|
||||||
programs.zsh.syntaxHighlighting.enable = true;
|
|
||||||
programs.zsh.syntaxHighlighting.highlighters = [ "main" "brackets" "pattern" "cursor" "root" "line" ];
|
|
||||||
programs.zsh.ohMyZsh.enable = true;
|
|
||||||
programs.zsh.ohMyZsh.plugins = [ "common-aliases" "git" "git-extras" "history" "jsontools" ];
|
|
||||||
programs.zsh.ohMyZsh.theme = "muse";
|
|
||||||
|
|
||||||
users.users.kfm = {
|
users.users.kfm = {
|
||||||
createHome = true;
|
createHome = true;
|
||||||
description = "Kierán Meinhardt";
|
description = fullName;
|
||||||
extraGroups = [ "wheel" "networkmanager" ];
|
extraGroups = [ "wheel" "networkmanager" ];
|
||||||
group = "users";
|
group = "users";
|
||||||
home = "/home/kfm";
|
home = "/home/kfm";
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.zsh;
|
||||||
uid = 1234;
|
|
||||||
password = "kfm";
|
password = "kfm";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
|
home-manager.users.kfm = {
|
||||||
|
programs.command-not-found.enable = true;
|
||||||
|
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
font = with import ./theme.nix; { package = pkgs.roboto; name = uiFont.name; };
|
||||||
|
iconTheme = theme.icon;
|
||||||
|
theme = theme.gtk;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
userName = fullName;
|
||||||
|
userEmail = fullEmail;
|
||||||
|
aliases = {
|
||||||
|
br = "branch";
|
||||||
|
co = "checkout";
|
||||||
|
ci = "commit";
|
||||||
|
amend = "commit --amend";
|
||||||
|
st = "status";
|
||||||
|
unstage = "reset HEAD --";
|
||||||
|
sdiff = "diff --staged";
|
||||||
|
last = "log -1 HEAD";
|
||||||
|
};
|
||||||
|
ignores = [ "*~" ".stack-work/" "__pycache__/" ".mypy_cache/" "*.o" "*.hi" "*.aux" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.vim = {
|
||||||
|
enable = true;
|
||||||
|
plugins = [
|
||||||
|
"ctrlp"
|
||||||
|
"deoplete-rust"
|
||||||
|
"deoplete-nvim"
|
||||||
|
"idris-vim"
|
||||||
|
"latex-box"
|
||||||
|
"rust-vim"
|
||||||
|
"supertab"
|
||||||
|
"syntastic"
|
||||||
|
"tabular"
|
||||||
|
"typescript-vim"
|
||||||
|
"vim-airline"
|
||||||
|
"vim-airline-themes"
|
||||||
|
"vim-commentary"
|
||||||
|
"vim-eunuch"
|
||||||
|
"vim-fugitive"
|
||||||
|
"vim-gitgutter"
|
||||||
|
"vim-javascript"
|
||||||
|
"vim-nix"
|
||||||
|
"vim-pandoc"
|
||||||
|
"vim-pandoc-after"
|
||||||
|
"vim-pandoc-syntax"
|
||||||
|
"vim-repeat"
|
||||||
|
"vim-sensible"
|
||||||
|
"vim-startify"
|
||||||
|
"vim-surround"
|
||||||
|
];
|
||||||
|
settings = {
|
||||||
|
smartcase = true;
|
||||||
|
shiftwidth = 4;
|
||||||
|
tabstop = 4;
|
||||||
|
expandtab = true;
|
||||||
|
number = true;
|
||||||
|
};
|
||||||
|
extraConfig = import ./dot/vim.nix;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.rofi = with import ./theme.nix; {
|
||||||
|
enable = true;
|
||||||
|
separator = "solid";
|
||||||
|
scrollbar = false;
|
||||||
|
borderWidth = 0;
|
||||||
|
lines = 5;
|
||||||
|
font = "${uiFont.name} ${toString uiFont.size}";
|
||||||
|
colors = {
|
||||||
|
window = { background = black; border = black; separator = gray.dark; };
|
||||||
|
rows = {
|
||||||
|
normal = {
|
||||||
|
background = black;
|
||||||
|
foreground = gray.light;
|
||||||
|
backgroundAlt = black;
|
||||||
|
highlight = { background = black; foreground = white; };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.dunst = with import ./theme.nix; {
|
||||||
|
enable = true;
|
||||||
|
iconTheme = { package = theme.icon.package; name = theme.icon.name; size = "64x64"; };
|
||||||
|
settings.global = {
|
||||||
|
transparency = 20;
|
||||||
|
font = "${uiFont.name} ${toString uiFont.size}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.file = {
|
||||||
|
".ghci".text = import ./dot/ghci.nix { inherit pkgs; };
|
||||||
|
".tmux.conf".text = import ./dot/tmux.nix;
|
||||||
|
".stack/config.yaml".text = import ./dot/stack.nix {
|
||||||
|
githubUser = "kmein";
|
||||||
|
inherit fullName fullEmail;
|
||||||
|
};
|
||||||
|
".config/zathura/zathurarc".text = "set selection-clipboard clipboard";
|
||||||
|
".config/mpv/input.conf".text = import ./dot/mpv.nix;
|
||||||
|
".config/xfce4/terminal/terminalrc".text = import ./dot/terminal.nix { inherit defaultApplications; };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
11
dot/ghci.nix
Normal file
11
dot/ghci.nix
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{pkgs}:
|
||||||
|
''
|
||||||
|
:set editor vim
|
||||||
|
:def hoogle \x -> return $ ":!${pkgs.haskellPackages.hoogle}/bin/hoogle --color \"" ++ x ++ "\" "
|
||||||
|
:def doc \x -> return $ ":!${pkgs.haskellPackages.hoogle}/bin/hoogle --info --color \"" ++ x ++ "\""
|
||||||
|
:def search \x -> return $ ":!${pkgs.haskellPackages.hoogle}/bin/hoogle --color \"" ++ x ++ "\" | head"
|
||||||
|
:def pl \x -> return $ ":!${pkgs.haskellPackages.pointfree}/bin/pointfree -v \"" ++ x ++ "\""
|
||||||
|
:def unpl \x -> return $ ":!${pkgs.haskellPackages.pointful}/bin/pointful \"" ++ x ++ "\""
|
||||||
|
:set prompt "\o033[1m%s\o033[1;34m λ\o033[0m "
|
||||||
|
''
|
||||||
|
#:def djinn \x -> return $ ":!echo \"" ++ x ++ "\" | ${pkgs.haskellPackages.djinn}/bin/djinn /dev/stdin"
|
||||||
118
dot/i3.nix
Normal file
118
dot/i3.nix
Normal file
@@ -0,0 +1,118 @@
|
|||||||
|
{ pkgs, defaultApplications, wallpaper }:
|
||||||
|
let theme = import ../theme.nix; in
|
||||||
|
with theme;
|
||||||
|
''
|
||||||
|
set $mod Mod4
|
||||||
|
|
||||||
|
font pango:${uiFont.name} ${toString uiFont.size}
|
||||||
|
floating_modifier $mod
|
||||||
|
|
||||||
|
hide_edge_borders both
|
||||||
|
new_window pixel 1
|
||||||
|
new_float pixel 1
|
||||||
|
|
||||||
|
bindsym $mod+Return exec ${defaultApplications.terminal}
|
||||||
|
bindsym $mod+y exec ${defaultApplications.webBrowser}
|
||||||
|
bindsym $mod+t exec ${defaultApplications.fileManager}
|
||||||
|
bindsym $mod+Shift+q kill
|
||||||
|
bindsym $mod+Left focus left
|
||||||
|
bindsym $mod+Down focus down
|
||||||
|
bindsym $mod+Up focus up
|
||||||
|
bindsym $mod+Right focus right
|
||||||
|
bindsym $mod+p workspace prev
|
||||||
|
bindsym $mod+n workspace next
|
||||||
|
bindsym $mod+Shift+Left move left
|
||||||
|
bindsym $mod+Shift+Down move down
|
||||||
|
bindsym $mod+Shift+Up move up
|
||||||
|
bindsym $mod+Shift+Right move right
|
||||||
|
bindsym $mod+h split h
|
||||||
|
bindsym $mod+v split v
|
||||||
|
bindsym $mod+f fullscreen toggle
|
||||||
|
bindsym $mod+s layout stacking
|
||||||
|
bindsym $mod+w layout tabbed
|
||||||
|
bindsym $mod+e layout toggle split
|
||||||
|
bindsym $mod+Shift+z floating toggle
|
||||||
|
bindsym $mod+Shift+c reload
|
||||||
|
bindsym $mod+Shift+r restart
|
||||||
|
bindsym $mod+d exec ${pkgs.rofi}/bin/rofi -display-run — -show run
|
||||||
|
|
||||||
|
set $WS1 1
|
||||||
|
set $WS2 2
|
||||||
|
set $WS3 3
|
||||||
|
set $WS4 4
|
||||||
|
set $WS5 5
|
||||||
|
set $WS6 6
|
||||||
|
set $WS7 7
|
||||||
|
set $WS8 8
|
||||||
|
set $WS9 9
|
||||||
|
set $WS10 10
|
||||||
|
bindsym $mod+0 workspace $WS10
|
||||||
|
bindsym $mod+1 workspace $WS1
|
||||||
|
bindsym $mod+2 workspace $WS2
|
||||||
|
bindsym $mod+3 workspace $WS3
|
||||||
|
bindsym $mod+4 workspace $WS4
|
||||||
|
bindsym $mod+5 workspace $WS5
|
||||||
|
bindsym $mod+6 workspace $WS6
|
||||||
|
bindsym $mod+7 workspace $WS7
|
||||||
|
bindsym $mod+8 workspace $WS8
|
||||||
|
bindsym $mod+9 workspace $WS9
|
||||||
|
bindsym $mod+Shift+0 move container to workspace $WS10
|
||||||
|
bindsym $mod+Shift+1 move container to workspace $WS1
|
||||||
|
bindsym $mod+Shift+2 move container to workspace $WS2
|
||||||
|
bindsym $mod+Shift+3 move container to workspace $WS3
|
||||||
|
bindsym $mod+Shift+4 move container to workspace $WS4
|
||||||
|
bindsym $mod+Shift+5 move container to workspace $WS5
|
||||||
|
bindsym $mod+Shift+6 move container to workspace $WS6
|
||||||
|
bindsym $mod+Shift+7 move container to workspace $WS7
|
||||||
|
bindsym $mod+Shift+8 move container to workspace $WS8
|
||||||
|
bindsym $mod+Shift+9 move container to workspace $WS9
|
||||||
|
|
||||||
|
bindsym XF86AudioLowerVolume exec --no-startup-id ${pkgs.pamixer}/bin/pamixer -d 5 && pkill -RTMIN+3 i3blocks
|
||||||
|
bindsym XF86AudioRaiseVolume exec --no-startup-id ${pkgs.pamixer}/bin/pamixer -i 5 && pkill -RTMIN+3 i3blocks
|
||||||
|
bindsym XF86AudioMute exec --no-startup-id ${pkgs.pamixer}/bin/pamixer -t && pkill -RTMIN+3 i3blocks
|
||||||
|
bindsym XF86MonBrightnessUp exec --no-startup-id ${pkgs.xorg.xbacklight}/bin/xbacklight + 10 && pkill -RTMIN+2 i3blocks
|
||||||
|
bindsym XF86MonBrightnessDown exec --no-startup-id ${pkgs.xorg.xbacklight}/bin/xbacklight - 10 && pkill -RTMIN+2 i3blocks
|
||||||
|
|
||||||
|
mode " " {
|
||||||
|
bindsym Left resize shrink width 10 px or 10 ppt
|
||||||
|
bindsym Down resize grow height 10 px or 10 ppt
|
||||||
|
bindsym Up resize shrink height 10 px or 10 ppt
|
||||||
|
bindsym Right resize grow width 10 px or 10 ppt
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
bindsym Space mode "default"
|
||||||
|
}
|
||||||
|
bindsym $mod+r mode " "
|
||||||
|
|
||||||
|
#class container-border container-bg fg indicator window-border
|
||||||
|
client.focused ${gray.dark} ${black} ${white} ${white} ${gray.dark}
|
||||||
|
client.focused_inactive ${black} ${black} ${gray.dark} ${white} ${black}
|
||||||
|
client.unfocused ${black} ${black} ${gray.dark} ${white} ${black}
|
||||||
|
client.urgent ${red.light} ${black} ${white} ${white} ${red.light}
|
||||||
|
client.placeholder ${black} ${black} ${gray.dark} ${white} ${black}
|
||||||
|
|
||||||
|
bar {
|
||||||
|
status_command "${pkgs.i3blocks}/bin/i3blocks -c ${pkgs.writeTextFile {
|
||||||
|
name = "i3blocks.conf";
|
||||||
|
text = import ./i3blocks.nix { inherit pkgs theme; };
|
||||||
|
}}"
|
||||||
|
position top
|
||||||
|
|
||||||
|
font pango:${uiFont.name},FontAwesome ${toString uiFont.size}
|
||||||
|
separator_symbol " // "
|
||||||
|
colors {
|
||||||
|
separator ${gray.dark}
|
||||||
|
background ${black}
|
||||||
|
statusline ${gray.dark}
|
||||||
|
|
||||||
|
# border bg fg
|
||||||
|
focused_workspace ${black} ${black} ${white}
|
||||||
|
active_workspace ${black} ${black} ${gray.light}
|
||||||
|
inactive_workspace ${black} ${black} ${gray.dark}
|
||||||
|
urgent_workspace ${black} ${black} ${red.light}
|
||||||
|
binding_mode ${black} ${black} ${red.light}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
exec --no-startup-id ${pkgs.networkmanagerapplet}/bin/nm-applet
|
||||||
|
exec --no-startup-id ${pkgs.feh}/bin/feh --bg-fill ${wallpaper}
|
||||||
|
''
|
||||||
172
dot/i3blocks.nix
Normal file
172
dot/i3blocks.nix
Normal file
@@ -0,0 +1,172 @@
|
|||||||
|
{ pkgs, theme }:
|
||||||
|
let
|
||||||
|
spotify_info = pkgs.writeScript "spotify.info" ''
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
STATUS=$(${pkgs.dbus}/bin/dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:'org.mpris.MediaPlayer2.Player' string:'PlaybackStatus'|egrep -A 1 "string"|cut -b 26-|cut -d '"' -f 1|egrep -v ^$)
|
||||||
|
|
||||||
|
if [[ "$STATUS" == 'Playing' ]]; then
|
||||||
|
printf '\uf1bc '
|
||||||
|
printf '\uf04b'
|
||||||
|
elif [[ "$STATUS" == 'Paused' ]]; then
|
||||||
|
printf '\uf1bc '
|
||||||
|
printf '\uf04c'
|
||||||
|
elif [[ "$STATUS" == 'Stopped' ]]; then
|
||||||
|
printf '\uf1bc '
|
||||||
|
printf '\uf04d'
|
||||||
|
else
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf ' '
|
||||||
|
|
||||||
|
METADATA=$(${pkgs.dbus}/bin/dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:'org.mpris.MediaPlayer2.Player' string:'Metadata')
|
||||||
|
ARTIST=$(echo "$METADATA" | egrep -A 2 "artist" | egrep -v "artist" | egrep -v "array" | cut -b 27- | cut -d '"' -f 1 | egrep -v ^$)
|
||||||
|
TITLE=$(echo "$METADATA" | egrep -A 1 "title" | egrep -v "title" | cut -b 44- | cut -d '"' -f 1 | egrep -v ^$)
|
||||||
|
|
||||||
|
printf "%s \u2237 %s" "$ARTIST" "$TITLE"
|
||||||
|
'';
|
||||||
|
battery_info = pkgs.writeScript "battery.info" ''
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
cd "/sys/class/power_supply/$BLOCK_INSTANCE/"
|
||||||
|
|
||||||
|
status=$(cat status)
|
||||||
|
charge_f=$((100 * $(cat charge_now) / $(cat charge_full)))
|
||||||
|
|
||||||
|
if [[ "$charge_f" -lt 20 ]]; then
|
||||||
|
printf '\uf244'
|
||||||
|
elif [[ "$charge_f" -lt 40 ]]; then
|
||||||
|
printf '\uf243'
|
||||||
|
elif [[ "$charge_f" -lt 60 ]]; then
|
||||||
|
printf '\uf242'
|
||||||
|
elif [[ "$charge_f" -lt 80 ]]; then
|
||||||
|
printf '\uf241'
|
||||||
|
else
|
||||||
|
printf '\uf240'
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf ' '
|
||||||
|
|
||||||
|
if [[ "$status" == 'Charging' ]]; then
|
||||||
|
printf '\uf106'
|
||||||
|
elif [[ "$status" == 'Discharging' ]]; then
|
||||||
|
printf '\uf107'
|
||||||
|
elif [[ "$status" == 'Full' ]]; then
|
||||||
|
printf '\uf0e7'
|
||||||
|
else
|
||||||
|
printf '[%s]' "$status"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf ' '
|
||||||
|
|
||||||
|
if [[ "$status" != 'Full' ]]; then
|
||||||
|
rate_raw=$(($(cat voltage_now) * $(cat power_now)))
|
||||||
|
rate=$(bc <<< "scale=1; $rate_raw / 10^12")
|
||||||
|
printf '%s\u2009W, ' "$rate"
|
||||||
|
fi
|
||||||
|
|
||||||
|
charge_d=$((100 * $(cat charge_now) / $(cat charge_full)))
|
||||||
|
printf '%s%%\n' "$charge_d"
|
||||||
|
|
||||||
|
if [[ "$status" == 'Discharging' ]]; then
|
||||||
|
if [[ "$charge_d" -lt 10 ]]; then
|
||||||
|
printf '\n#E41C28'
|
||||||
|
elif [[ "$charge_d" -lt 20 ]]; then
|
||||||
|
printf '\n#EEBF13'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
volume_info = pkgs.writeScript "volume.info" ''
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
if [[ "$BLOCK_BUTTON" == 1 ]]; then
|
||||||
|
${pkgs.pamixer}/bin/pamixer -i 5
|
||||||
|
elif [[ "$BLOCK_BUTTON" == 3 ]]; then
|
||||||
|
${pkgs.pamixer}/bin/pamixer -d 5
|
||||||
|
elif [[ "$BLOCK_BUTTON" == 2 ]]; then
|
||||||
|
${pkgs.pamixer}/bin/pamixer -t
|
||||||
|
fi
|
||||||
|
|
||||||
|
if $(${pkgs.pamixer}/bin/pamixer --get-mute); then
|
||||||
|
printf '\uf026 0%%\n\n#EEBF13'
|
||||||
|
else
|
||||||
|
volume=$(${pkgs.pamixer}/bin/pamixer --get-volume)
|
||||||
|
printf '\uf028 %s%%' "$volume"
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
fancyDate = pkgs.writeScript "fancy_date.py" ''
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
from datetime import datetime
|
||||||
|
now = datetime.now()
|
||||||
|
print(now.strftime("%d\u2009{}\u2009%Y ⟨%V⟩").format(chr(0x2160 + (now.month - 1))))
|
||||||
|
''; in
|
||||||
|
with theme;
|
||||||
|
''
|
||||||
|
markup=pango
|
||||||
|
align=center
|
||||||
|
color=${white}
|
||||||
|
|
||||||
|
[spotify]
|
||||||
|
command=${spotify_info}
|
||||||
|
interval=1
|
||||||
|
|
||||||
|
[separator]
|
||||||
|
command=${pkgs.xkblayout-state}/bin/xkblayout-state print %s
|
||||||
|
label=
|
||||||
|
interval=2
|
||||||
|
|
||||||
|
[separator]
|
||||||
|
|
||||||
|
[volume]
|
||||||
|
command=${volume_info}
|
||||||
|
min_width= 100%
|
||||||
|
interval=once
|
||||||
|
signal=3
|
||||||
|
|
||||||
|
[separator]
|
||||||
|
|
||||||
|
[brightness]
|
||||||
|
command=printf "%.1f%%" $(${pkgs.xorg.xbacklight}/bin/xbacklight)
|
||||||
|
label=
|
||||||
|
min_width= 100%
|
||||||
|
signal=2
|
||||||
|
interval=once
|
||||||
|
|
||||||
|
[separator]
|
||||||
|
|
||||||
|
[cpu_usage]
|
||||||
|
command=cut -d' ' -f 1-3 < /proc/loadavg
|
||||||
|
label=
|
||||||
|
interval=2
|
||||||
|
|
||||||
|
[separator]
|
||||||
|
|
||||||
|
[ram_usage]
|
||||||
|
command=free -h | grep "Mem" | awk '{print $3}'
|
||||||
|
label=
|
||||||
|
interval=2
|
||||||
|
align=center
|
||||||
|
|
||||||
|
[separator]
|
||||||
|
|
||||||
|
[battery]
|
||||||
|
command=${battery_info}
|
||||||
|
#echo "$(cat /sys/class/power_supply/BAT1/capacity)% ($(cat /sys/class/power_supply/BAT1/status))"
|
||||||
|
interval=10
|
||||||
|
instance=BAT1
|
||||||
|
|
||||||
|
[separator]
|
||||||
|
|
||||||
|
[date]
|
||||||
|
command=${fancyDate}
|
||||||
|
interval=30
|
||||||
|
label=
|
||||||
|
|
||||||
|
[separator]
|
||||||
|
|
||||||
|
[time]
|
||||||
|
command=date +'%H:%M'
|
||||||
|
interval=30
|
||||||
|
label=
|
||||||
|
|
||||||
|
[separator]
|
||||||
|
''
|
||||||
10
dot/mpv.nix
Normal file
10
dot/mpv.nix
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
''
|
||||||
|
Alt+RIGHT add video-rotate 90
|
||||||
|
Alt+LEFT add video-rotate -90
|
||||||
|
Alt+- add video-zoom -0.25
|
||||||
|
Alt+= add video-zoom 0.25
|
||||||
|
Alt+l add video-pan-x -0.05
|
||||||
|
Alt+h add video-pan-x 0.05
|
||||||
|
Alt+k add video-pan-y 0.05
|
||||||
|
Alt+j add video-pan-y -0.05
|
||||||
|
''
|
||||||
10
dot/stack.nix
Normal file
10
dot/stack.nix
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{ fullName, fullEmail, githubUser }:
|
||||||
|
''
|
||||||
|
templates:
|
||||||
|
params:
|
||||||
|
author-name: ${fullName}
|
||||||
|
author-email: ${fullEmail}
|
||||||
|
category: Data
|
||||||
|
copyright: 'Copyright: (c) 2018 ${fullName}'
|
||||||
|
github-username: ${githubUser}
|
||||||
|
''
|
||||||
26
dot/terminal.nix
Normal file
26
dot/terminal.nix
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{ defaultApplications }:
|
||||||
|
with import ../theme.nix;
|
||||||
|
''
|
||||||
|
[Configuration]
|
||||||
|
FontName=${terminalFont.regular.name} ${toString terminalFont.size}
|
||||||
|
MiscAlwaysShowTabs=FALSE
|
||||||
|
MiscBell=TRUE
|
||||||
|
MiscMenubarDefault=FALSE
|
||||||
|
MiscToolbarDefault=FALSE
|
||||||
|
MiscConfirmClose=FALSE
|
||||||
|
MiscCursorBlinks=TRUE
|
||||||
|
MiscCursorShape=TERMINAL_CURSOR_SHAPE_BLOCK
|
||||||
|
MiscBordersDefault=FALSE
|
||||||
|
MiscMiddleClickOpensUri=TRUE
|
||||||
|
MiscMouseWheelZoom=TRUE
|
||||||
|
MiscRewrapOnResize=TRUE
|
||||||
|
TitleMode=TERMINAL_TITLE_HIDE
|
||||||
|
MiscMouseAutohide=FALSE
|
||||||
|
MiscHighlightUrls=TRUE
|
||||||
|
BackgroundDarkness=0.95
|
||||||
|
BackgroundMode=TERMINAL_BACKGROUND_TRANSPARENT
|
||||||
|
ColorPalette=${dark};${red.dark};${green.dark};${yellow.dark};${blue.dark};${magenta.dark};${cyan.dark};${light};${dark};${red.light};${green.light};${yellow.light};${blue.light};${magenta.light};${cyan.light};${light}
|
||||||
|
ColorBackground=${veryDark}
|
||||||
|
ColorForeground=${light}
|
||||||
|
ColorCursor=${light}
|
||||||
|
''
|
||||||
39
dot/tmux.nix
Normal file
39
dot/tmux.nix
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
''
|
||||||
|
set -g status-interval 2
|
||||||
|
set -g status-left-length 32
|
||||||
|
set -g status-right-length 150
|
||||||
|
|
||||||
|
# Appearance
|
||||||
|
set -g default-terminal "screen-256color"
|
||||||
|
set -g status-utf8 on
|
||||||
|
set -g status-bg default
|
||||||
|
# set -g status-fg white
|
||||||
|
setw -g window-status-format "#[fg=colour12,bg=colour233] #I #[fg=white,bg=colour237] #W "
|
||||||
|
setw -g window-status-current-format "#[fg=colour12,bg=colour233] * #[fg=white,bg=colour237,bold] #W "
|
||||||
|
# setw -g window-status-current-bg colour0
|
||||||
|
# setw -g window-status-current-fg colour11
|
||||||
|
# Status Bar
|
||||||
|
set -g status-left ""
|
||||||
|
# set -g status-right "#[fg=colour196,bg=colour233] LOAD #[fg=white,bg=colour237] #(awk '{print $1, $2, $3}' < /proc/loadavg) #[default] #[fg=colour196,bg=colour233] CPU #[fg=white,bg=colour237] #(ps -A -o pcpu | tail -n+2 | paste -sd+ | bc) #[default] #[fg=colour196,bg=colour233] MEM #[fg=white,bg=colour237] #(ps -A -o pmem | tail -n+2 | paste -sd+ | bc) #[default] #[fg=white,bg=colour237,bold] %Y-%m-%d #[default]#[fg=colour196,bg=colour233] %H:%M "
|
||||||
|
set -g status-right "#[fg=colour12,bg=colour233] LOAD #[fg=colour255,bg=colour237] #(cut -d' ' -f 1-3 < /proc/loadavg) #[default] #[fg=colour12,bg=colour233] MEM #[fg=colour255,bg=colour237] #(free -h --si | awk 'NR==2{print $3}') #[default] #[fg=colour255,bg=colour237,bold] %Y-%m-%d #[default]#[fg=colour12,bg=colour233] %H:%M "
|
||||||
|
set -g status-justify left
|
||||||
|
|
||||||
|
# setw -g window-status-current-fg black
|
||||||
|
# setw -g window-status-fg black
|
||||||
|
# setw -g window-status-current-bg white
|
||||||
|
# setw -g window-status-bg white
|
||||||
|
# setw -g window-status-current-attr bold
|
||||||
|
|
||||||
|
set -g pane-active-border-fg colour237
|
||||||
|
set -g pane-border-fg colour237
|
||||||
|
set -g pane-active-border-bg default
|
||||||
|
set -g pane-border-bg default
|
||||||
|
|
||||||
|
set -g status-position bottom
|
||||||
|
|
||||||
|
set -g mouse on
|
||||||
|
|
||||||
|
# displays *
|
||||||
|
unbind *
|
||||||
|
bind * list-clients
|
||||||
|
''
|
||||||
153
dot/vim.nix
Normal file
153
dot/vim.nix
Normal file
@@ -0,0 +1,153 @@
|
|||||||
|
''
|
||||||
|
filetype off
|
||||||
|
|
||||||
|
if exists("g:loaded_airline")
|
||||||
|
set noshowmode laststatus=0 noruler
|
||||||
|
let g:airline#extensions#tabline#close_symbol = 'X'
|
||||||
|
let g:airline#extensions#tabline#enabled = 0
|
||||||
|
let g:airline#extensions#tabline#left_alt_sep = ''
|
||||||
|
let g:airline#extensions#tabline#left_sep = ''
|
||||||
|
let g:airline#extensions#tabline#right_alt_sep = ''
|
||||||
|
let g:airline#extensions#tabline#right_sep = ''
|
||||||
|
let g:airline#extensions#tabline#show_close_button = 1
|
||||||
|
let g:airline#extensions#tabline#show_tab_type = 0
|
||||||
|
let g:airline#extensions#tabline#tab_min_count = 2
|
||||||
|
let g:airline#extensions#tabline#tab_nr_type = 0
|
||||||
|
let g:airline#extensions#tmuxline#enabled = 0
|
||||||
|
let g:airline#extensions#wordcount#enabled = 1
|
||||||
|
let g:airline_left_alt_sep = ''
|
||||||
|
let g:airline_left_sep = ''
|
||||||
|
let g:airline_right_alt_sep = ''
|
||||||
|
let g:airline_right_sep = ''
|
||||||
|
let g:airline_section_z = '%{line(".") + 1}/%{line("$")}'
|
||||||
|
endif
|
||||||
|
if exists("g:loaded_airline_themes")
|
||||||
|
let g:airline_theme='simple'
|
||||||
|
endif
|
||||||
|
|
||||||
|
if exists("g:loaded_syntastic_plugin")
|
||||||
|
let g:syntastic_always_populate_loc_list = 1
|
||||||
|
let g:syntastic_auto_loc_list = 0
|
||||||
|
let g:syntastic_check_on_open = 0
|
||||||
|
let g:syntastic_check_on_wq = 0
|
||||||
|
map ,s :SyntasticToggleMode<CR>
|
||||||
|
endif
|
||||||
|
|
||||||
|
if exists("g:loaded_gundo")
|
||||||
|
nnoremap <F5> :GundoToggle<CR>
|
||||||
|
endif
|
||||||
|
|
||||||
|
" if supertab
|
||||||
|
let g:SuperTabDefaultCompletionType = '<c-n>'
|
||||||
|
if has("unix")
|
||||||
|
inoremap <Nul> <c-r>=SuperTabAlternateCompletion("\<lt>c-x>\<lt>c-o>")<cr>
|
||||||
|
endif
|
||||||
|
|
||||||
|
" if tabular
|
||||||
|
vmap a= :Tabularize /=<CR>
|
||||||
|
vmap a; :Tabularize /::<CR>
|
||||||
|
vmap a- :Tabularize /-><CR>
|
||||||
|
|
||||||
|
colorscheme delek
|
||||||
|
|
||||||
|
set path=$PWD/**
|
||||||
|
set completeopt=menu,longest
|
||||||
|
set wildmode=longest,list,full
|
||||||
|
set shortmess+=aI
|
||||||
|
set nowritebackup noswapfile
|
||||||
|
set mouse=a
|
||||||
|
set showmatch
|
||||||
|
set encoding=utf8
|
||||||
|
set ffs=unix,dos,mac
|
||||||
|
set smartindent
|
||||||
|
set nowrap
|
||||||
|
set nohlsearch
|
||||||
|
set clipboard=unnamedplus,autoselect
|
||||||
|
set nopaste
|
||||||
|
set list listchars=tab:▸\ ,extends:❯,precedes:❮,nbsp:⍽ showbreak=↪
|
||||||
|
set foldlevelstart=30
|
||||||
|
|
||||||
|
if exists("g:loaded_netrwPlugin")
|
||||||
|
let g:netrw_banner=0
|
||||||
|
let g:netrw_browse_split=4
|
||||||
|
let g:netrw_altv=1 " open splits to the right
|
||||||
|
let g:netrw_liststyle=3 " tree view
|
||||||
|
let g:netrw_list_hide=netrw_gitignore#Hide()
|
||||||
|
let g:netrw_list_hide.=',\(^\|\s\s\)\zs\.\S\+'
|
||||||
|
endif
|
||||||
|
|
||||||
|
call matchadd('colorcolumn', '\%101v', 100)
|
||||||
|
highlight folded ctermbg=black
|
||||||
|
highlight colorcolumn ctermbg=red
|
||||||
|
highlight matchparen cterm=bold ctermbg=black ctermfg=white
|
||||||
|
highlight TrailSpace ctermbg=red guibg=darkred
|
||||||
|
match TrailSpace /\s\+$/
|
||||||
|
|
||||||
|
" undofile - This allows you to use undos after exiting and restarting
|
||||||
|
" This, like swap and backups, uses .vim-undo first, then ~/.vim/undo
|
||||||
|
" :help undo-persistence
|
||||||
|
if exists("+undofile")
|
||||||
|
if isdirectory($HOME . '/.vim/undo') == 0
|
||||||
|
:silent !mkdir -p ~/.vim/undo > /dev/null 2>&1
|
||||||
|
endif
|
||||||
|
set undodir=./.vim-undo//
|
||||||
|
set undodir+=~/.vim/undo//
|
||||||
|
set undofile
|
||||||
|
endif
|
||||||
|
|
||||||
|
nmap <C-j> ddp
|
||||||
|
nmap <C-k> ddkP
|
||||||
|
vmap <C-j> xp`[V`]
|
||||||
|
vmap <C-k> xkP`[V`]
|
||||||
|
|
||||||
|
nnoremap <silent> <Space> @=(foldlevel('.')?'za':"\<Space>")<CR>
|
||||||
|
vnoremap <Space> zf
|
||||||
|
|
||||||
|
command! RandomLine execute 'normal! '.(system('/bin/bash -c "echo -n $RANDOM"') % line('$')).'G'
|
||||||
|
|
||||||
|
function! <SID>StripTrailingWhitespaces()
|
||||||
|
let _s=@/
|
||||||
|
let l=line(".")
|
||||||
|
let c=col(".")
|
||||||
|
|
||||||
|
%s/\s\+$//e
|
||||||
|
|
||||||
|
let @/=_s
|
||||||
|
call cursor(l,c)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:DiffWithSaved()
|
||||||
|
let filetype=&ft
|
||||||
|
diffthis
|
||||||
|
vnew | r # | normal! 1Gdd
|
||||||
|
diffthis
|
||||||
|
execute "setlocal bt=nofile bh=wipe nobl noswf ro ft=" . filetype
|
||||||
|
endfunction
|
||||||
|
command! DiffSaved call s:DiffWithSaved()
|
||||||
|
|
||||||
|
if has("autocmd")
|
||||||
|
autocmd filetype markdown,text set formatprg=par\ -w80
|
||||||
|
autocmd filetype haskell set formatprg=hindent
|
||||||
|
autocmd filetype markdown,text set textwidth=80
|
||||||
|
autocmd filetype markdown,text set formatoptions+=t
|
||||||
|
autocmd bufreadpost *
|
||||||
|
\ if line("'\"") > 0 && line("'\"") <= line("$") |
|
||||||
|
\ exe "normal! g`\"" |
|
||||||
|
\ endif
|
||||||
|
autocmd bufwritepre * :call <SID>StripTrailingWhitespaces()
|
||||||
|
autocmd bufnewfile,bufread *.md set filetype=markdown.pandoc
|
||||||
|
autocmd bufnewfile,bufread *.asm set filetype=nasm
|
||||||
|
autocmd bufnewfile,bufread *.bf set filetype=brainfuck
|
||||||
|
autocmd bufnewfile,bufread *.do set filetype=sh
|
||||||
|
autocmd bufnewfile,bufread config set filetype=conf
|
||||||
|
autocmd bufnewfile,bufread *.conf set filetype=conf
|
||||||
|
autocmd bufnewfile,bufread *.4th set filetype=forth
|
||||||
|
autocmd bufnewfile,bufread *.c set keywordprg=man\ 3
|
||||||
|
autocmd bufnewfile,bufread *.h set keywordprg=man\ 3
|
||||||
|
|
||||||
|
autocmd filetype make setlocal noexpandtab
|
||||||
|
|
||||||
|
autocmd bufreadpre * setlocal foldmethod=indent
|
||||||
|
autocmd bufwinenter * if &fdm == 'indent' | setlocal foldmethod=manual | endif
|
||||||
|
endif
|
||||||
|
''
|
||||||
25
theme.nix
Normal file
25
theme.nix
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
uiFont = { name = "Roboto"; size = 10; };
|
||||||
|
terminalFont = {
|
||||||
|
regular = { name = "Roboto Mono for Powerline"; };
|
||||||
|
bold = { name = "Roboto Mono Bold for Powerline"; };
|
||||||
|
italic = { name = "Roboto Mono Italic for Powerline"; };
|
||||||
|
boldItalic = { name = "Roboto Mono Bold Italic for Powerline"; };
|
||||||
|
size = 10;
|
||||||
|
};
|
||||||
|
|
||||||
|
white = "#ffffff";
|
||||||
|
black = "#000000";
|
||||||
|
gray = { light = "#aaaaaa"; dark = "#888888"; };
|
||||||
|
|
||||||
|
# Antares color scheme
|
||||||
|
dark = "#151515";
|
||||||
|
veryDark = "#080808";
|
||||||
|
red = { light = "#de575c"; dark = "#de575c"; };
|
||||||
|
yellow = { light = "#ebe971"; dark = "#ebe971"; };
|
||||||
|
green = { light = "#00b853"; dark = "#00b853"; };
|
||||||
|
blue = { light = "#90d0f0"; dark = "#7fc6f0"; };
|
||||||
|
magenta = { light = "#cf9ffa"; dark = "#cf9ffa"; };
|
||||||
|
cyan = { light = "#4ae5e8"; dark = "#4ae5e8"; };
|
||||||
|
light = "#bbbbbb";
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user