diff --git a/Trolltech.conf b/Trolltech.conf new file mode 100644 index 0000000..a120ab2 --- /dev/null +++ b/Trolltech.conf @@ -0,0 +1,9 @@ + +[Qt] +font="Luxi Sans,12,-1,5,75,2,0,0,0,0" +embedFonts=true +style=GTK+ +GUIEffects=none +Palette\active=#000000, #edeceb, #ffffff, #cbc7c4, #c6c5c4, #b8b5b2, #1a1a1a, #ffffff, #000000, #ffffff, #edeceb, #b7b6b5, #86abd9, #ffffff, #0000ff, #ff00ff, #efefef, #000000, #ffffdc, #000000 +Palette\inactive=#000000, #edeceb, #ffffff, #cbc7c4, #c6c5c4, #b8b5b2, #1a1a1a, #ffffff, #000000, #ffffff, #edeceb, #b7b6b5, #7099cc, #ffffff, #0000ff, #ff00ff, #efefef, #000000, #ffffdc, #000000 +Palette\disabled=#767675, #edeceb, #ffffff, #cbc7c4, #c6c5c4, #b8b5b2, #767675, #ffffff, #767675, #ffffff, #edeceb, #b7b6b5, #d9d9d9, #ffffff, #0000ff, #ff00ff, #efefef, #000000, #ffffdc, #000000 diff --git a/Xresources b/Xresources new file mode 100644 index 0000000..41377a9 --- /dev/null +++ b/Xresources @@ -0,0 +1,110 @@ +! ~/.Xresources + +! terminal font +xterm*utf8: 2 +xterm*eightBitInput: false +xterm*faceName: DejaVu Sans Mono:style=Book +xterm*faceSize: 12 +xterm*faceSize1: 6 +xterm*faceSize2: 8 +xterm*faceSize3: 10 +xterm*faceSize4: 12 +xterm*faceSize5: 16 +xterm*faceSize6: 22 +xterm*faceSize7: 32 +xterm*vt100*geometry: 80x24 +xterm*vt100*scaleHeight: 1.01 + +! popup menu font +xterm*font: -*-dejavu sans-medium-r-*-*-*-*-*-*-*-*-* + +! fontconfig may override these +Xft.antialias: 1 +Xft.autohint: 0 +Xft.embeddedbitmap: 0 +Xft.hinting: 1 +Xft.hintstyle: hintslight +Xft.lcdfilter: lcddefault +Xft.rgba: rgb +Xft.smoothing: grayscale + +! various +xterm.termName: xterm-256color +xterm*forceBoxChars: true +xterm*selectToClipboard: true +xterm*cursorBlink: false +xterm*cursorColor: rgb:8a/e2/34 +xterm*toolBar: false +xterm*fullscreen: never +xterm*loginShell: true + +! scrollbar +xterm*rightScrollBar: true +xterm*scrollBar: true +xterm*scrollKey: true +xterm*saveLines: 16384 +xterm*scrollTtyOutput: false +xterm*vt100*scrollBar*width: 8 + +! Fix Alt and Ctrl+H +xterm*vt100*metaSendsEscape: true +xterm*vt100*backarrowKey: false +xterm*ttyModes: erase ^? + +! double-click to select whole URLs +! https://lukas.zapletalovi.com/2013/07/hidden-gems-of-xterm.html +xterm*charClass: 33:48,36-47:48,58-59:48,61:48,63-64:48,95:48,126:48 + +! keyboard shortcuts +xterm*vt100.translations: #override \n\ + Shift Home: scroll-forw(10000000000) \n\ + Shift End: scroll-back(10000000000) \n\ + Ctrl Shift C: copy-selection(CLIPBOARD) \n\ + Ctrl Shift V: insert-selection(CLIPBOARD) \n\ + Ctrl minus: smaller-vt-font() \n\ + Ctrl plus: larger-vt-font() \n\ + Ctrl 0: set-vt-font(d) \n\ + : select-end(PRIMARY, CLIPBOARD, CUT_BUFFER0) \n\ + : insert-selection(PRIMARY) + +! Shift-Home Top of scrollback +! Shift-End End of scrollback +! Ctrl-Shift-c Copy +! Ctrl-Shift-v Paste +! Ctrl-minus Decrease font +! Ctrl-plus Increase font +! Ctrl-zero Default font +! +! + +! white on black +xterm*foreground: rgb:ff/ff/ff +xterm*background: rgb:00/00/00 +xterm*dynamicColors: true + +! Tango color scheme from mate-terminal adaptation +! https://en.wikipedia.org/wiki/Tango_Desktop_Project +! - Aluminium - +xterm*color0: rgb:00/00/00 +xterm*color8: rgb:55/57/53 +! - Scarlet Red - +xterm*color1: rgb:cc/00/00 +xterm*color9: rgb:ef/29/29 +! - Chameleon - +xterm*color2: rgb:4e/9a/06 +xterm*color10: rgb:8a/e2/34 +! - Butter - +xterm*color3: rgb:c4/a0/00 +xterm*color11: rgb:fc/e9/4f +! - Sky Blue - +xterm*color4: rgb:34/65/a4 +xterm*color12: rgb:72/9f/cf +! - Plum - +xterm*color5: rgb:75/50/7b +xterm*color13: rgb:ad/7f/a8 +! - Cyan - +xterm*color6: rgb:06/98/9a +xterm*color14: rgb:34/e2/e2 +! - Aluminium 2 - +xterm*color7: rgb:d3/d7/cf +xterm*color15: rgb:ee/ee/ec diff --git a/bashrc b/bashrc new file mode 100644 index 0000000..a3695f3 --- /dev/null +++ b/bashrc @@ -0,0 +1,58 @@ +# +# ~/.bashrc +# + +# history +HISTTIMEFORMAT='[%Y-%m-%d %H:%M:%S] ' +HISTCONTROL="ignoredups" +HISTSIZE="100000" +export HISTTIMEFORMAT HISTCONTROL HISTSIZE +shopt -s cmdhist histappend + +PATH=$PATH:$HOME/.local/bin:$HOME/bin +export PATH + +# these screw up pipes to sed et. al +unalias grep 2>/dev/null +unalias egrep 2>/dev/null +unalias fgrep 2>/dev/null + +# If not running interactively, don't do anything else +[[ $- != *i* ]] && return + +# User specific aliases and functions +alias ls='ls --color=auto' +alias vi="vim" +alias ntop="sudo nethogs wlp3s0" +alias mirrorme="mplayer -vf mirror -v tv:// -tv device=/dev/video0:driver=v4l2" +alias psave="sudo cpupower frequency-set -g powersave" +alias pperf="sudo cpupower frequency-set -g performance" +alias pcheck="sudo cpupower frequency-info -o" +alias words="shuf ~/tmp/words.txt | grep -v \"'s\" | head -21" + +# stop quotes around ls which coreutils introduced +export QUOTING_STYLE=literal + +# stop paste which readline introduced +bind 'set enable-bracketed-paste off' + +# stop GTK3 disappearing scrollbars +export GTK_OVERLAY_SCROLLING=0 + +# Libreoffice +export SAL_USE_VCLPLUGIN=gtk + +# this messes up git commits via cmdline +unset SSH_ASKPASS + +# mate-terminal is hard coded to 'xterm' +if [[ "X${DESKTOP_SESSION}" == "Xmate" ]] || \ + [[ "X${XDG_DESKTOP_SESSION}" == "Xmate" ]]; then + export TERM=xterm-256color +fi + +# general +PS1='[\u@\h $PWD]\n$ ' +BC_ENV_ARGS="-l -q" +MOZ_DISABLE_PANGO=1 +export PS1 BC_ENV_ARGS MOZ_DISABLE_PANGO diff --git a/cmus.autosave b/cmus.autosave new file mode 100644 index 0000000..523050c --- /dev/null +++ b/cmus.autosave @@ -0,0 +1,174 @@ +set aaa_mode=album +set altformat_current= %F +set altformat_playlist= %f%= %d +set altformat_title=%f +set altformat_trackwin= %f%= %d +set auto_expand_albums=true +set auto_reshuffle=true +set buffer_seconds=10 +set color_cmdline_attr=default +set color_cmdline_bg=default +set color_cmdline_fg=default +set color_cur_sel_attr=default +set color_error=lightred +set color_info=lightyellow +set color_separator=blue +set color_statusline_attr=default +set color_statusline_bg=gray +set color_statusline_fg=black +set color_titleline_attr=default +set color_titleline_bg=blue +set color_titleline_fg=white +set color_win_attr=default +set color_win_bg=default +set color_win_cur=lightyellow +set color_win_cur_sel_attr=default +set color_win_cur_sel_bg=blue +set color_win_cur_sel_fg=lightyellow +set color_win_dir=lightblue +set color_win_fg=default +set color_win_inactive_cur_sel_attr=default +set color_win_inactive_cur_sel_bg=gray +set color_win_inactive_cur_sel_fg=lightblue +set color_win_inactive_sel_attr=default +set color_win_inactive_sel_bg=gray +set color_win_inactive_sel_fg=black +set color_win_sel_attr=default +set color_win_sel_bg=blue +set color_win_sel_fg=white +set color_win_title_attr=default +set color_win_title_bg=blue +set color_win_title_fg=white +set confirm_run=true +set continue=false +set device=/dev/cdrom +set display_artist_sort_name=false +set dsp.alsa.device= +set dsp.ao.buffer_size=16384 +set dsp.ao.driver= +set dsp.ao.wav_counter=1 +set dsp.oss.device= +set follow=false +set format_current= %a - %l -%3n. %t%= %A +set format_playlist= %-25%a %3n. %t%= %y %d +set format_playlist_va= %-25%A %3n. %t (%a)%= %y %d +set format_title=%a - %l - %t (%y) +set format_trackwin=%3n. %t%= %y %d +set format_trackwin_va=%3n. %t (%a)%= %y %d +set icecast_default_charset=ISO-8859-1 +set id3_default_charset=ISO-8859-1 +set input.cdio.cddb_url=freedb.freedb.org:8880 +set lib_sort=albumartist date album discnumber tracknumber title filename +set mixer.alsa.channel= +set mixer.alsa.device= +set mixer.oss.channel=PCM +set mixer.oss.device= +set mixer.pulse.restore_volume=1 +set output_plugin=pulse +set passwd= +set pl_sort= +set play_library=true +set play_sorted=false +set repeat=true +set repeat_current=false +set replaygain=disabled +set replaygain_limit=true +set replaygain_preamp=0.000000 +set resume=false +set rewind_offset=5 +set scroll_offset=2 +set set_term_title=true +set show_all_tracks=true +set show_current_bitrate=true +set show_hidden=false +set show_playback_position=true +set show_remaining_time=false +set shuffle=false +set skip_track_info=false +set smart_artist_sort=true +set softvol=false +set softvol_state=0 0 +set status_display_program= +set wrap_search=true +bind browser backspace browser-up +bind browser i toggle show_hidden +bind browser space win-activate +bind browser u win-update +bind common ! push shell +bind common + vol +10% +bind common , seek -1m +bind common - vol -10% +bind common . seek +1m +bind common 1 view tree +bind common 2 view sorted +bind common 3 view playlist +bind common 4 view queue +bind common 5 view browser +bind common 6 view filters +bind common 7 view settings +bind common = vol +10% +bind common C toggle continue +bind common D win-remove +bind common E win-add-Q +bind common F push filter +bind common G win-bottom +bind common I echo {} +bind common L push live-filter +bind common M toggle play_library +bind common N search-prev +bind common P win-mv-before +bind common U win-update-cache +bind common [ vol +1% +0 +bind common ] vol +0 +1% +bind common ^B win-page-up +bind common ^C echo Type :quit to exit cmus. +bind common ^E win-scroll-down +bind common ^F win-page-down +bind common ^L refresh +bind common ^R toggle repeat_current +bind common ^Y win-scroll-up +bind common a win-add-l +bind common b player-next +bind common c win-toggle +bind common delete win-remove +bind common down win-down +bind common e win-add-q +bind common end win-bottom +bind common enter win-activate +bind common f toggle follow +bind common g win-top +bind common h seek -5 +bind common home win-top +bind common i win-sel-cur +bind common j win-down +bind common k win-up +bind common l seek +5 +bind common left seek -5 +bind common m toggle aaa_mode +bind common n search-next +bind common o toggle play_sorted +bind common p win-mv-after +bind common page_down win-page-down +bind common page_up win-page-up +bind common q quit +bind common r toggle repeat +bind common right seek +5 +bind common s toggle shuffle +bind common space player-pause +bind common t toggle show_remaining_time +bind common tab win-next +bind common u update-cache +bind common up win-up +bind common v player-stop +bind common x player-play +bind common y win-add-p +bind common z player-prev +bind common { vol -1% -0 +bind common } vol -0 -1% +fset 90s=date>=1990&date<2000 +fset classical=genre="Classical" +fset missing-tag=!stream&(artist=""|album=""|title=""|tracknumber=-1|date=-1) +fset mp3=filename="*.mp3" +fset ogg=filename="*.ogg" +fset ogg-or-mp3=ogg|mp3 +factivate diff --git a/dir_colors b/dir_colors new file mode 100644 index 0000000..304463a --- /dev/null +++ b/dir_colors @@ -0,0 +1,257 @@ +# Configuration file for the color ls utility +# Synchronized with coreutils 8.5 dircolors +# This file goes in the /etc directory, and must be world readable. +# You can copy this file to .dir_colors in your $HOME directory to override +# the system defaults. + +# COLOR needs one of these arguments: 'tty' colorizes output to ttys, but not +# pipes. 'all' adds color characters to all output. 'none' shuts colorization +# off. +COLOR tty + +# Extra command line options for ls go here. +# Basically these ones are: +# -F = show '/' for dirs, '*' for executables, etc. +# -T 0 = don't trust tab spacing when formatting ls output. +OPTIONS -F -T 0 + +# Below, there should be one TERM entry for each termtype that is colorizable +TERM Eterm +TERM ansi +TERM color-xterm +TERM con132x25 +TERM con132x30 +TERM con132x43 +TERM con132x60 +TERM con80x25 +TERM con80x28 +TERM con80x30 +TERM con80x43 +TERM con80x50 +TERM con80x60 +TERM cons25 +TERM console +TERM cygwin +TERM dtterm +TERM eterm-color +TERM gnome +TERM gnome-256color +TERM jfbterm +TERM konsole +TERM kterm +TERM linux +TERM linux-c +TERM mach-color +TERM mlterm +TERM putty +TERM rxvt +TERM rxvt-256color +TERM rxvt-cygwin +TERM rxvt-cygwin-native +TERM rxvt-unicode +TERM rxvt-unicode-256color +TERM rxvt-unicode256 +TERM screen +TERM screen-256color +TERM screen-256color-bce +TERM screen-bce +TERM screen-w +TERM screen.rxvt +TERM screen.linux +TERM terminator +TERM vt100 +TERM xterm +TERM xterm-16color +TERM xterm-256color +TERM xterm-88color +TERM xterm-color +TERM xterm-debian + +# EIGHTBIT, followed by '1' for on, '0' for off. (8-bit output) +EIGHTBIT 1 + +# Below are the color init strings for the basic file types. A color init +# string consists of one or more of the following numeric codes: +# Attribute codes: +# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed +# Text color codes: +# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white +# Background color codes: +# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white +#NORMAL 00 # no color code at all +#FILE 00 # normal file, use no color at all +RESET 0 # reset to "normal" color +DIR 01;34 # directory +LINK 01;36 # symbolic link (If you set this to 'target' instead of a + # numerical value, the color is as for the file pointed to.) +MULTIHARDLINK 00 # regular file with more than one link +FIFO 40;33 # pipe +SOCK 01;35 # socket +DOOR 01;35 # door +BLK 40;33;01 # block device driver +CHR 40;33;01 # character device driver +ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file +MISSING 01;05;37;41 # ... and the files they point to +SETUID 37;41 # file that is setuid (u+s) +SETGID 30;43 # file that is setgid (g+s) +CAPABILITY 30;41 # file with capability +STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w) +OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky +STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable + +# This is for files with execute permission: +EXEC 01;32 + +# List any file extensions like '.gz' or '.tar' that you would like ls +# to colorize below. Put the extension, a space, and the color init string. +# (and any comments you want to add after a '#') +# executables (bright green) +#.cmd 01;32 +#.exe 01;32 +#.com 01;32 +#.btm 01;32 +#.bat 01;32 +#.sh 01;32 +#.csh 01;32 + +# archives or compressed (bright red) +.tar 01;31 +.tgz 01;31 +.arc 01;31 +.arj 01;31 +.taz 01;31 +.lha 01;31 +.lzh 01;31 +.lzma 01;31 +.tlz 01;31 +.txz 01;31 +.tzo 01;31 +.t7z 01;31 +.zip 01;31 +.z 01;31 +.Z 01;31 +.dz 01;31 +.gz 01;31 +.lrz 01;31 +.lz 01;31 +.lzo 01;31 +.xz 01;31 +.bz2 01;31 +.bz 01;31 +.tbz 01;31 +.tbz2 01;31 +.tz 01;31 +.deb 01;31 +.rpm 01;31 +.jar 01;31 +.war 01;31 +.ear 01;31 +.sar 01;31 +.rar 01;31 +.alz 01;31 +.ace 01;31 +.zoo 01;31 +.cpio 01;31 +.7z 01;31 +.rz 01;31 +.cab 01;31 + +# image formats (magenta) +.jpg 01;35 +.jpeg 01;35 +.gif 01;35 +.bmp 01;35 +.pbm 01;35 +.pgm 01;35 +.ppm 01;35 +.tga 01;35 +.xbm 01;35 +.xpm 01;35 +.tif 01;35 +.tiff 01;35 +.png 01;35 +.svg 01;35 +.svgz 01;35 +.mng 01;35 +.pcx 01;35 +.mov 01;35 +.mpg 01;35 +.mpeg 01;35 +.m2v 01;35 +.mkv 01;35 +.ogm 01;35 +.mp4 01;35 +.m4v 01;35 +.mp4v 01;35 +.vob 01;35 +.qt 01;35 +.nuv 01;35 +.wmv 01;35 +.asf 01;35 +.rm 01;35 +.rmvb 01;35 +.flc 01;35 +.avi 01;35 +.fli 01;35 +.flv 01;35 +.gl 01;35 +.dl 01;35 +.xcf 01;35 +.xwd 01;35 +.yuv 01;35 +.cgm 01;35 +.emf 01;35 + +# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions +.axv 01;35 +.anx 01;35 +.ogv 01;35 +.ogx 01;35 + +# audio formats (cyan) +.aac 01;36 +.au 01;36 +.flac 01;36 +.mid 01;36 +.midi 01;36 +.mka 01;36 +.mp3 01;36 +.mpc 01;36 +.ogg 01;36 +.ra 01;36 +.wav 01;36 + +# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions +.axa 01;36 +.oga 01;36 +.spx 01;36 +.xspf 01;36 + +# colorize binary documents (brown) +#.pdf 00;33 +#.ps 00;33 +#.ps.gz 00;33 +#.tex 00;33 +#.xls 00;33 +#.xlsx 00;33 +#.ppt 00;33 +#.pptx 00;33 +#.rtf 00;33 +#.doc 00;33 +#.docx 00;33 +#.odt 00;33 +#.ods 00;33 +#.odp 00;33 +#.epub 00;33 +#.abw 00;33 +#.wpd 00;33 +# +# colorize text documents (brown) +#.txt 00;33 +#.patch 00;33 +#.diff 00;33 +#.log 00;33 +#.htm 00;33 +#.html 00;33 +#.shtml 00;33 +#.xml 00;33 diff --git a/dmrc b/dmrc new file mode 100644 index 0000000..7083a13 --- /dev/null +++ b/dmrc @@ -0,0 +1,3 @@ +[Desktop] +Language=en_US.utf8 +Session=mate diff --git a/fonts.conf b/fonts.conf new file mode 100644 index 0000000..7561e62 --- /dev/null +++ b/fonts.conf @@ -0,0 +1,86 @@ + + + + + + + true + + + false + + + true + + + hintslight + + + none + + + lcddefault + + + false + + + + + + + + false + + + + + + + Roboto + + + Noto Sans + + + + + + Courier + + + Liberation Mono + + + + + Courier + + Liberation Mono + + + + + + + false + + + + + + + + + Caladea + + + + + Carlito + + + + + + diff --git a/funcs.bc b/funcs.bc new file mode 100644 index 0000000..4a919c4 --- /dev/null +++ b/funcs.bc @@ -0,0 +1,719 @@ +#!/usr/bin/bc -l + +### Funcs.BC - a large number of functions for use with GNU BC + + ## Not to be regarded as suitable for any purpose + ## Not guaranteed to return correct answers + +scale=50; +define pi() { + auto s; + if(scale==(s=scale(pi_)))return pi_ + if(scale 1, 0.99 -> 0 +define int(x) { auto os;os=scale;scale=0;x/=1;scale=os;return(x) } + +# Round down to integer below x +define floor(x) { + auto os,xx;os=scale;scale=0 + xx=x/1;if(xx>x).=xx-- + scale=os;return(xx) +} + +# Round up to integer above x +define ceil(x) { + auto os,xx;x=-x;os=scale;scale=0 + xx=x/1;if(xx>x).=xx-- + scale=os;return(-xx) +} + +# Fractional part of x: 12.345 -> 0.345 +define frac(x) { + auto os,xx;os=scale;scale=0 + xx=x/1;if(xx>x).=xx-- + scale=os;return(x-xx) +} + +# Absolute value of x +define abs(x) { if(x<0)return(-x)else return(x) } + +# Sign of x +define sgn(x) { if(x<0)return(-1)else if(x>0)return(1);return(0) } + +# Round x up to next multiple of y +define round_up( x,y) { return(y*ceil( x/y )) } + +# Round x down to previous multiple of y +define round_down(x,y) { return(y*floor(x/y )) } + +# Round x to the nearest multiple of y +define round( x,y) { + auto os,oib; + os=scale;oib=ibase + .=scale++;ibase=A + y*=floor(x/y+.5) + ibase=oib;scale=os + return y +} + +# Find the remainder of x/y +define int_remainder(x,y) { + auto os; + os=scale;scale=0 + x/=1;y/=1;x%=y + scale=os + return(x) +} +define remainder(x,y) { + os=scale;scale=0 + if(x==x/1&&y==y/1){scale=os;return int_remainder(x,y)} + scale=os + return(x-round_down(x,y)) +} + +# Greatest common divisor of x and y +define int_gcd(x,y) { + auto r,os; + os=scale;scale=0 + x/=1;y/=1 + while(y>0){r=x%y;x=y;y=r} + scale=os + return(x) +} +define gcd(x,y) { + auto r,os; + os=scale;scale=0 + if(x==x/1&&y==y/1){scale=os;return int_gcd(x,y)} + scale=os + while(y>0){r=remainder(x,y);x=y;y=r} + return(x) +} + +# Lowest common multiple of x and y +define int_lcm(x,y) { + auto r,m,os; + os=scale;scale=0 + x/=1;y/=1 + m=x*y + while(y>0){r=x%y;x=y;y=r} + m/=x + scale=os + return(m) +} +define lcm(x,y) { return (x*y/gcd(x,y)) } + +# Remove largest possible power of 2 from x +define oddpart(x){ + auto os; + os=scale;scale=0;x/=1 + if(x==0){scale=os;return 1} + while(!x%2)x/=2 + scale=os;return x +} + +# Largest power of 2 in x +define evenpart(x) { + auto os; + os=scale;scale=0 + x/=oddpart(x/1) + scale=os;return x +} + +## Trig / Hyperbolic Trig + +# Sine +define sin(x) { return s(x) } # alias for standard library +# Cosine +define c(x) { return s(x+pi()/2) } # as fast or faster than +define cos(x) { return c(x) } # . standard library +# Tangent +define tan(x) { auto c;c=c(x);if(c==0)c=A^-scale;return(s(x)/c) } + +# Secant +define sec(x) { auto c;c=c(x);if(c==0)c=A^-scale;return( 1/c) } +# Cosecant +define cosec(x) { auto s;s=s(x);if(s==0)s=A^-scale;return( 1/s) } +# Cotangent +define cotan(x) { auto s;s=s(x);if(s==0)s=A^-scale;return(c(x)/s) } + +# Arcsine +define arcsin(x) { if(x==-1||x==1)return(pi()/2*x);return( a(x/sqrt(1-x*x)) ) } +# Arccosine +define arccos(x) { if(x==0)return(0);return pi()/2-arcsin(x) } + +# Arctangent (one argument) +define arctan(x) { return a(x) } # alias for standard library + +# Arctangent (two arguments) +define arctan2(x,y) { + auto p; + if(x==0&&y==0)return(0) + p=(1-sgn(y))*pi()*(2*(x>=0)-1)/2 + if(x==0||y==0)return(p) + return(p+a(x/y)) +} + +# Arcsecant +define arcsec(x) { return( a(x/sqrt(x*x-1)) ) } +# Arccosecant +define arccosec(x) { return( a(x/sqrt(x*x-1))+pi()*(sgn(x)-1)/2 ) } +# Arccotangent (one argument) +define arccotan(x) { return( a(x)+pi()/2 ) } +# Arccotangent (two arguments) +define arccotan2(x,y) { return( arctan(x,y)+pi()/2 ) } + +# Hyperbolic Sine +define sinh(x) { auto t;t=e(x);return((t-1/t)/2) } +# Hyperbolic Cosine +define cosh(x) { auto t;t=e(x);return((t+1/t)/2) } +# Hyperbolic Tangent +define tanh(x) { auto t;t=e(x+x)-1;return(t/(t+2)) } + +# Hyperbolic Secant +define sech(x) { auto t;t=e(x);return(2/(t+1/t)) } +# Hyperbolic Cosecant +define cosech(x) { auto t;t=e(x);return(2/(t-1/t)) } +# Hyperbolic Cotangent +define coth(x) { auto t;t=e(x+x)-1;return((t+2)/t) } + +# Hyperbolic Arcsine +define arcsinh(x) { return( l(x+sqrt(x*x+1)) ) } +# Hyperbolic Arccosine +define arccosh(x) { return( l(x+sqrt(x*x-1)) ) } +# Hyperbolic Arctangent +define arctanh(x) { return( l((1+x)/(1-x))/2 ) } + +# Hyperbolic Arcsecant +define arcsech(x) { return( l((sqrt(1-x*x)+1)/x) ) } +# Hyperbolic Arccosecant +define arccosech(x) { return( l((sqrt(1+x*x)*sgn(x)+1)/x) ) } +# Hyperbolic Arccotangent +define arccoth(x) { return( l((x+1)/(x-1))/2 ) } + +# Length of the diagonal vector (0,0)-(x,y) [pythagoras] +define pyth(x,y) { return(sqrt(x*x+y*y)) } +define pyth3(x,y,z) { return(sqrt(x*x+y*y+z*z)) } + +# Gudermannian Function +define gudermann(x) { return 2*(a(e(x))-a(1)) } +# Inverse Gudermannian Function +define arcgudermann(x) { + return arctanh(s(x)) +} + +# Bessel function +define besselj(n,x) { return j(n,x) } # alias for standard library + +## Exponential / Logs + +# Exponential e^x +define exp(x) { return e(x) } # alias for standard library + +# Natural Logarithm (base e) +define ln(x) { + auto os,len,ln; + if(x< 0){print "ln error: logarithm of a negative number\n";return 0} + if(x==0)print "ln error: logarithm of zero; negative infinity\n" + len=length(x)-scale(x)-1 + if(lenlim||(maxmax2||3*length(t)>es+es)&&i>1){cf[i--]=0;break}#cheat: assume rational + if(y==0)break;#completely rational + } + n=1;d=cf[i] + if(i==0){print "id_frac2_: something is wrong; y=",y,", d=",d,"\n"} + if(d!=-2&&i)while(--i){d=n+cf[i]*(t=d);n=t} + if(d2){scale=os;return x^y} + scale=os;x/=1;scale=0 + x=fastintpow__(x,y); + scale=os;return x; +} + +# Raise x to a fractional power faster than e^(y*l(x)) +define fastfracpow_(x,y) { + auto f,yy,inv; + inv=0;if(y<0){y=-y;inv=1} + y-=int(y) + if(y==0)return 1; + if((yy=y*2^C)!=int(yy)){x=l(x);if(inv)x=-x;return e(y/1*x)} + # faster using square roots for rational binary fractions + # where denominator <= 8192 + x=sqrt(x) + for(f=1;y&&x!=1;x=sqrt(x))if(y+=y>=1){.=y--;f*=x} + if(inv)f=1/f; + return f; +} + +# Find the yth root of x where y is integer +define fastintroot_(x,y) { + auto os,d,r,ys,eps; + os=scale;scale=0;y/=1;scale=os + if(y<0){x=1/x;y=-y} + if(y==1){return x} + if(y>=x-1){return fastfracpow_(x,1/y)} + if(y*int((d=2^F)/y)==d){ + r=1;while(r+=r<=y)x=sqrt(x) + return x + } + scale=length(y)-scale(y);if(scale<5)scale=5;r=e(ln(x)/y) + scale=os+5;if(scale<5)scale=5 + d=1;eps=A^(3-scale) + ys=y-1 + while(d>eps){ + d=r;r=(ys*r+x/fastintpow_(r,ys))/y + d-=r;if(d<0)d=-d + } + scale=os + return r/1 +} + +# Raise x to the y-th power +define pow(x,y) { + auto os,p,ix,iy,fy,dn,s; + if(y==0) return 1 + if(x==0) return 0 + if(00) print "even root" + if(dn<0) print "irrational power" + print " of a negative number\n" + scale=os;return 0 + } + if(y==iy) { + if(x==ix){p=fastintpow_(ix,iy);if(iy>0){scale=0;p/=1};scale=os;return p/1} + scale+=scale;p=fastintpow_(x,iy);scale=os;return p/1 + } + if((dn=id_frac2_(y))!=-2){ #accurate rational roots (sometimes slower) + if(dn<0)dn=-dn + s=1;if(y<0){y=-y;s=-1} + p=y*dn+1/2;scale=0;p/=1;scale=os + if(p=A^3)x=fastintpow_(x,p) + if(s<0)x=1/x + return x + } + p=fastintpow_(ix,iy)*fastfracpow_(x,fy); + scale=os+os + if(ix)p*=fastintpow_(x/ix,iy) + scale=os + return p/1 + #The above is usually faster and more accurate than + # return( e(y*l(x)) ); +} + +# y-th root of x [ x^(1/y) ] +define root(x,y) { + return pow(x,1/y) +} + +# Specific cube root function +# = stripped down version of fastintroot_(x,3) +define cbrt(x) { + auto os,d,r,eps; + if(x<0)return -cbrt(-x) + if(x==0)return 0 + os=scale;scale=0;eps=A^(scale/3) + if(xeps){ + d=r;r=(r+r+x/(r*r))/3 + d-=r;if(d<0)d=-d + } + scale=os + return r/1 +} + +# Logarithm of x in given base: log(2, 32) = 5 because 2^5 = 32 +# tries to return a real answer where possible when given negative numbers +# e.g. log(-2, 64) = 6 because (-2)^6 = 64 +# likewise log(-2,-128) = 7 because (-2)^7 = -128 +define log(base,x) { + auto os,i,l,sx,dn,dnm2; + if(base==x)return 1; + if(x==0){print "log error: logarithm of zero; negative infinity\n"; return l(0)} + if(x==1)return 0; + if(base==0){print "log error: zero-based logarithm\n"; return 0 } + if(base==1){print "log error: one-based logarithm; positive infinity\n";return -l(0)} + scale+=6 + if((-1A){c*=int_log(base,A);c-=2*(base<4)}else{c=0}}else{c/=length(base)+1} + p=base^c;while(p<=x){.=c++;p*=base} + scale=os;return(c-1) +} + +# Lambert's W function 0 branch; Numerically solves w*e(w) = x for w +# * is slow to converge near -1/e at high scales +define lambertw0(x) { + auto oib, a, b, w, ow, lx, ew, e1, eps; + if(x==0) return 0; + oib=ibase;ibase=A + ew = -e(-1) + if (x5000) { + lx*=l(A);w=lx-(1-1/lx)*l(lx) + } else { + lx=l(x);w=l(x-4)-(1-1/lx)*l(lx) + } + # Iteration adapted from code found on Wikipedia + # apparently by an anonymous user at 147.142.207.26 + # and later another at 87.68.32.52 + ow = 0 + eps = A^-scale + scale += 5 + e1 = e(1) + while(abs(ow-w)>eps&&w>-1){ + ow = w + if(x>0){ew=pow(e1,w)}else{ew=e(w)} + a = w*ew + b = a+ew + a -= x; + if(a==0)break + b = b/a - 1 + 1/(w+1) + w -= 1/b + if(x<-0.367)w-=eps + } + scale -= 5 + ibase=oib + return w/1 +} + +# Lambert's W function -1 branch; Numerically solves w*e(w) = x for w +# * is slow to converge near -1/e at high scales +define lambertw_1(x) { + auto oib,os,oow,ow,w,ew,eps,d,iters; + oib=ibase;ibase=A + ew = -e(-1) + if(ew>x||x>=0) { + print "lambertw_1: expected argument in [-1/e,0)\n" + ibase=oib + if(x==0)return 1-A^scale + if(x>0)return 0 + return -1 + } + if(x==ew) return -1; + os=scale + eps=A^-os + scale+=3 + oow=ow=0 + w=x + w=l(-w) + w-=l(-w) + w+=sqrt(eps) + iters=0 + while(abs(ow-w)>eps){ + oow=ow;ow=w + if(w==-1)break + w=(x*e(-w)+w*w)/(w+1) + if(iters++==A+A||oow==w){iters=0;w-=A^-scale;scale+=2} + } + scale=os;ibase=oib + return w/1 +} + +# LambertW wrapper; takes most useful branch based on x +# to pick a branch manually, use lambertw_1 or lambertw0 directly +define w(x) { + if(x<0)return lambertw_1(x) + return lambertw0(x) +} + +# Faster calculation of lambertw0(exp(x)) +# . avoids large intermediate value and associated slowness +# . numerically solves x = y+ln(y) for y +define lambertw0_exp(x) { + auto oy,y,eps; + # Actual calculation is faster for x < 160 or thereabouts + if(xeps)y=x-l(oy=y) + return y +} + +# Shorthand alias for the above +define w_e(x){ return lambertw0_exp(x) } + +# Numerically solve pow(y,y) = x for y +define powroot(x) { + auto r; + if(x==0) { + print "powroot error: attempt to solve for zero\n" + return 0 + } + if(x==1||x==-1) {return x} + if(x<=r=e(-e(-1))){ + print "powroot error: unimplemented for values\n <0";r + return 0 + } + r = ln(x) + r /= w(r) + return r +} + +## Triangular numbers + +# xth triangular number +define tri(x) { + auto xx + x=x*(x+1)/2;xx=int(x) + if(x==xx)return(xx) + return(x) +} + +# 'triangular root' of x +define trirt(x) { + auto xx + x=(sqrt(1+8*x)-1)/2;xx=int(x) + if(x==xx)x=xx + return(x) +} + +# Workhorse for following 2 functions +define tri_step_(t,s) { + auto tt + t=t+(1+s*sqrt(1+8*t))/2;tt=int(t) + if(tt==t)return(tt) + return(t) +} + +# Turn tri(x) into tri(x+1) without knowing x +define tri_succ(t) { + return(tri_step_(t,0+1)) +} + +# Turn tri(x) into tri(x-1) without knowing x +define tri_pred(t) { + return(tri_step_(t,0-1)) +} + +## Polygonal Numbers + +# the xth s-gonal number: +# e.g. poly(3, 4) = tri(4) = 1+2+3+4 = 10; poly(4, x) = x*x, etc +define poly(s, x) { + auto xx + x*=(s/2-1)*(x-1)+1;xx=int(x);if(x==xx)x=xx + return x +} + +# inverse of the above = polygonal root: +# e.g. inverse_poly(3,x)=trirt(x); inverse_poly(4,x)=sqrt(x), etc +define inverse_poly(s, r) { + auto t,xx + t=(s-=2)-2 + r=(sqrt(8*s*r+t*t)+t)/s/2;xx=int(r);if(r==xx)r=xx + return r +} + +# converse of poly(); solves poly(s,x)=r for s +# i.e. if the xth polygonal number is r, how many sides has the polygon? +# e.g. if the 5th polygonal number is 15, converse_poly(5,15) = 3 +# so the polygon must have 3 sides! (15 is the 5th triangular number) +define converse_poly(x,r) { + auto xx + x=2*((r/x-1)/(x-1)+1);xx=int(x);if(x==xx)x=xx + return x +} + +## Tetrahedral numbers + +# nth tetrahedral number +define tet(n) { return n*(n+1)*(n+2)/6 } + +# tetrahedral root = inverse of the above +define tetrt(t) { + auto k,c3,w; + if(t==0)return 0 + if(t<0)return -2-tetrt(-t) + k=3^5*t*t-1 + if(k<0){print "tetrt: unimplemented for 0<|t|eps){ox=x;x+=x/n*(n-arigeomean(1,x))} + } + x+=5*eps + scale-=6;return x*y/s +} diff --git a/gpg-agent.conf b/gpg-agent.conf new file mode 100644 index 0000000..a5b1768 --- /dev/null +++ b/gpg-agent.conf @@ -0,0 +1,2 @@ +#pinentry-program /usr/bin/pinentry-curses +allow-loopback-pinentry diff --git a/gpg.conf b/gpg.conf new file mode 100644 index 0000000..a1c1d6d --- /dev/null +++ b/gpg.conf @@ -0,0 +1,2 @@ +default-key XXXXXXXX +#pinentry-mode loopback diff --git a/gtk-3.0-settings.ini b/gtk-3.0-settings.ini new file mode 100644 index 0000000..0f26b6c --- /dev/null +++ b/gtk-3.0-settings.ini @@ -0,0 +1,17 @@ +[Settings] +gtk-theme-name=TraditionalOk +gtk-icon-theme-name=Fog +gtk-font-name=Luxi Sans 12 +gtk-cursor-theme-name=mate +gtk-cursor-theme-size=24 +gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ +gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR +gtk-button-images=1 +gtk-menu-images=1 +gtk-enable-event-sounds=0 +gtk-enable-input-feedback-sounds=0 +gtk-dialogs-use-header=1 +gtk-xft-antialias=1 +gtk-xft-hinting=1 +gtk-xft-hintstyle=hintslight +gtk-xft-rgba=none diff --git a/gtkrc-2.0 b/gtkrc-2.0 new file mode 100644 index 0000000..40e7a9d --- /dev/null +++ b/gtkrc-2.0 @@ -0,0 +1,19 @@ +# DO NOT EDIT! This file will be overwritten by LXAppearance. +# Any customization should be done in ~/.gtkrc-2.0.mine instead. + +gtk-theme-name="TraditionalOk" +gtk-icon-theme-name="Fog" +gtk-font-name="Luxi Sans 12" +gtk-cursor-theme-name="mate" +gtk-cursor-theme-size=24 +gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ +gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR +gtk-button-images=1 +gtk-menu-images=1 +gtk-enable-event-sounds=0 +gtk-enable-input-feedback-sounds=0 +gtk-xft-antialias=1 +gtk-xft-hinting=1 +gtk-xft-hintstyle="hintslight" +gtk-xft-rgba="none" +include ".gtkrc-2.0.mine" diff --git a/mailrc b/mailrc new file mode 100644 index 0000000..69760d6 --- /dev/null +++ b/mailrc @@ -0,0 +1,17 @@ +account smtps_example { + set from=me@mydomain.com + set smtp-hostname=my.laptop + set mta=smtps://login:password@smtp.server:465 + set smtp-auth=login + set tls-verify=ignore + set v15-compat=1 +} +account starttls_example { + set from=user@my.laptop + set smtp-hostname=my.laptop + set mta=smtp://login:password@mail.server:465 + set smtp-use-starttls + set smtp-auth=plain + set tls-verify=ignore + set v15-compat=1 +} diff --git a/muttrc b/muttrc new file mode 100644 index 0000000..9538a37 --- /dev/null +++ b/muttrc @@ -0,0 +1,37 @@ +# general settings +set editor=vim +#set pager="less -c" +set help +set include +set noprompt_after +set reply_to +set read_inc=25 +set write_inc=25 +set sort=threads +set nomove + +# header configuration +ignore * +unignore from: to: date: subject: cc: reply-to: + +# color definitions +color hdrdefault cyan black +color quoted green black +color signature cyan black +color attachment brightyellow black +color indicator black cyan +color status brightgreen blue +color tree red black +color markers brightred black +color tilde blue black +#color header brightgreen black ^From: +#color header brightcyan black ^To: +#color header brightcyan black ^Reply-To: +#color header brightcyan black ^Cc: +#color header brightblue black ^Subject: +#color body brightred black [\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+ +#color body brightblue black (http|ftp)://[\-\.\,/%~_:?\#a-zA-Z0-9]+ + +# attributes when using a mono terminal +mono header underline ^(From|Subject): +mono quoted bold diff --git a/netrc b/netrc new file mode 100644 index 0000000..f3d83e1 --- /dev/null +++ b/netrc @@ -0,0 +1 @@ +machine dav.server.com login user@host.com password XXXXXXXX diff --git a/petrifiedrc b/petrifiedrc new file mode 100644 index 0000000..4bcdb26 --- /dev/null +++ b/petrifiedrc @@ -0,0 +1,15 @@ +DDNS_KEY= +DDNS_CHECK="http://4.icanhazip.com" +CURL_WAIT=10 +LOCAL_MODE=1 +LOCAL_IF=wlp3s0 +LOCAL_IV=4 +USE_JOURNAL=1 +USE_SYSLOG=0 +USE_STDOUT=0 +USE_LOGFILE=0 +PET_LOG=/var/log/petrified.log +USE_PID=1 +PET_PID=/tmp/petrified.pid +USE_LIP=1 +PET_LIP=/tmp/lastip.dat diff --git a/pikaur.conf b/pikaur.conf new file mode 100644 index 0000000..3639edc --- /dev/null +++ b/pikaur.conf @@ -0,0 +1,48 @@ +[sync] +alwaysshowpkgorigin = no +develpkgsexpiration = -1 +upgradesorting = pkgname +showdownloadsize = no +ignoreoutofdateaurupgrades = no + +[build] +keepbuilddir = no +keepdevbuilddir = no +skipfailedbuild = no +alwaysusedynamicusers = no +keepbuilddeps = no +ignorearch = no + +[colors] +version = 10 +versiondiffold = 11 +versiondiffnew = 9 + +[ui] +requireenterconfirm = yes +printcommands = no +reversesearchsorting = no +aursearchsorting = hottest +displaylastupdated = no +groupbyrepository = yes + +[misc] +sudoloopinterval = -1 +pacmanpath = pacman +debug = no +privilegeescalationtool = sudo + +[network] +socks5proxy = +aururl = https://aur.archlinux.org +newsurl = https://www.archlinux.org/feeds/news/ +aurhttpproxy = +aurhttpsproxy = + +[review] +noedit = yes +donteditbydefault = yes +nodiff = yes +gitdiffargs = --ignore-space-change,--ignore-all-space +diffpager = auto +hidedifffiles = .SRCINFO diff --git a/profile.osx b/profile.osx new file mode 100644 index 0000000..e49f9dd --- /dev/null +++ b/profile.osx @@ -0,0 +1,5 @@ +PATH=$PATH:~/bin +PS1='[\u@\h $PWD]\n$ ' +CLICOLOR=1 +LSCOLORS="Exfxcxdxbxegedabagacad" +export PATH PS1 CLICOLOR LSCOLORS diff --git a/qtrc b/qtrc new file mode 100644 index 0000000..6ae4a10 --- /dev/null +++ b/qtrc @@ -0,0 +1,3 @@ +[General] +enableXft=true +useXft=true diff --git a/screenrc b/screenrc new file mode 100644 index 0000000..3337674 --- /dev/null +++ b/screenrc @@ -0,0 +1 @@ +startup_message off diff --git a/toprc b/toprc new file mode 100644 index 0000000..ea2f258 --- /dev/null +++ b/toprc @@ -0,0 +1,15 @@ +top's Config File (Linux processes with windows) +Id:i, Mode_altscr=0, Mode_irixps=1, Delay_time=3.0, Curwin=0 +Def fieldscur=¥&K¨³´»½@·º¹56ÄFÅ')*+,-./0128<>?ABCGHIJLMNOPQRSTUVWXYZ[\]^_`abcdefghij + winflags=192564, sortindx=18, maxtasks=0, graph_cpus=0, graph_mems=0 + summclr=1, msgsclr=1, headclr=3, taskclr=1 +Job fieldscur=¥¦¹·º(³´Ä»½@<§Å)*+,-./012568>?ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij + winflags=163124, sortindx=0, maxtasks=0, graph_cpus=2, graph_mems=0 + summclr=6, msgsclr=6, headclr=7, taskclr=6 +Mem fieldscur=¥º»<½¾¿ÀÁMBNÃD34·Å&'()*+,-./0125689FGHIJKLOPQRSTUVWXYZ[\]^_`abcdefghij + winflags=163124, sortindx=21, maxtasks=0, graph_cpus=2, graph_mems=0 + summclr=5, msgsclr=5, headclr=4, taskclr=5 +Usr fieldscur=¥¦§¨ª°¹·ºÄÅ)+,-./1234568;<=>?@ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij + winflags=163124, sortindx=3, maxtasks=0, graph_cpus=2, graph_mems=0 + summclr=3, msgsclr=3, headclr=2, taskclr=3 +Fixed_widest=0, Summ_mscale=0, Task_mscale=1, Zero_suppress=0 diff --git a/vimrc b/vimrc new file mode 100644 index 0000000..f77beaf --- /dev/null +++ b/vimrc @@ -0,0 +1,174 @@ +" ~/.vimrc + +" This must be first - it changes other options as a side effect +set nocompatible " use Vim settings, rather then Vi settings + +set shortmess+=I " get rid of the intro screen on blank file +set background=dark " this works better for text mode white-on-black terms +set backspace=2 " allow backspacing over everything in insert mode +set esckeys " allow cursor keys in insert mode +set noautoindent " always set autoindenting off +set shiftwidth=4 " number of spaces used for autoindent insertions +set tabstop=4 " tabstop positions + +set nobackup " backups are for wimps +set history=250 " keep 250 lines of command line history + +set noerrorbells " damn that beep to hell +set visualbell " enable terminal visual bell, but... +set t_vb= " ...unset the code to do it. (MacVim needs this) +set magic " use 'magic' patterns (extended regexp) in search +set ignorecase " ignore case during searches +set smartcase " all lower/upper = case insensitive, \c \C overrides + +set laststatus=2 " show status line, even if only one buffer +set report=0 " show report on all (0) changes +set lazyredraw " do not update screen while executing macros +set ruler " show the cursor position all the time +set showcmd " show current uncompleted command +set showmode " show current mode +set showmatch " show matching brackets + +" tone down that dang bold highlighting, folks +" highlight=8b,db,es,hs,mb,Mn,nu,rs,sr,tb,vr,ws +set highlight=8r,db,es,hs,mb,Mr,nu,rs,sr,tb,vr,ws + +" do not jump to first character with page commands, ie keep the cursor +" in the current column. +set nostartofline + +" what info to store from an editing session in the viminfo file +set viminfo='50,\"100,:100,n~/.viminfo + +" allow the last line to be a modeline - useful when +" the last line gives the preferred textwidth +set modeline +set modelines=1 + +" add the dash ('-'), the dot ('.'), and the '@' as "letters" to "words". +" this makes it possible to expand email addresses, eg: joe-www@foo.org +set iskeyword=@,48-57,_,192-255,-,.,@-@ + +" which chars/keys to allow eol wrapping (:help whichwrap) +set whichwrap=<,>,[,] + +" enable wrapping but without linebreaks +set wrap +set linebreak +set nolist " list disables linebreak +set textwidth=0 +set wrapmargin=0 +set formatoptions+=l + +" When you forgot to sudo before editing a file +cmap w!! w !sudo tee > /dev/null % + +" When the backspace key sends a "delete" character +" then you simply map the "delete" to a "backspace" (CTRL-H): +map + +" Don't use Ex mode, use Q for formatting +map Q gq + +" Make shift-insert work like in Xterm +map +map! + +" Make p in Visual mode replace the selected text with the "" register. +vnoremap p :let current_reg = @"gvdi=current_reg + +" Switch syntax highlighting on, when the terminal has colors +" Also switch on highlighting the last used search pattern. +if &t_Co > 2 || has("gui_running") + syntax on + set hlsearch +endif + +" GVIM preferences +if has("gui_running") + " CUA Mode (shift+arrows select in insert mode, etc.) + source $VIMRUNTIME/mswin.vim + + set showtabline=2 " always show the tab bar + set guioptions-=tT " turn off the menu tearoffs + set guicursor+=a:blinkon0 " turn off the blinking cursor + set t_Co=256 " 256 colors + set lines=26 columns=80 " we like 80x24 + + " mostly mimic cli colors from syncolor.vim - white text, black bg + hi Normal guifg=White guibg=Black gui=NONE + hi Comment guifg=LightBlue gui=NONE + hi Constant guifg=LightMagenta gui=NONE + hi Special guifg=LightRed gui=NONE + hi Identifier guifg=Cyan gui=NONE + hi Statement guifg=Yellow gui=NONE + hi PreProc guifg=LightBlue gui=NONE + hi Type guifg=LightGreen gui=NONE + hi Underlined guifg=LightBlue gui=NONE + hi Ignore guifg=Black gui=NONE + hi Error guifg=White guibg=Red gui=NONE + hi Todo guifg=Blue guibg=Yellow gui=NONE + + hi link String Constant + hi link Character Constant + hi link Number Constant + hi link Boolean Constant + hi link Float Number + hi link Function Identifier + hi link Conditional Statement + hi link Repeat Statement + hi link Label Statement + hi link Operator Statement + hi link Keyword Statement + hi link Exception Statement + hi link Include PreProc + hi link Define PreProc + hi link Macro PreProc + hi link PreCondit PreProc + hi link StorageClass Type + hi link Structure Type + hi link Typedef Type + hi link Tag Special + hi link SpecialChar Special + hi link Delimiter Special + hi link SpecialComment Special + hi link Debug Special + + let os=substitute(system('uname'), '\n', '', '') + if os == 'Darwin' || os == 'Mac' + set guifont=Menlo:h16 + elseif os == 'Linux' + set guifont=Monospace\ 12 + endif + + function! GuiTabLabel() + let label = '' + let bufnrlist = tabpagebuflist(v:lnum) + " Add '+' if one of the buffers in the tab page is modified + for bufnr in bufnrlist + if getbufvar(bufnr, "&modified") + let label = '+' + break + endif + endfor + " Append the tab number + let label .= v:lnum.': ' + " Append the buffer name + let name = bufname(bufnrlist[tabpagewinnr(v:lnum) - 1]) + if name == '' + " give a name to no-name documents + if &buftype=='quickfix' + let name = '[Quickfix]' + else + let name = '[No Name]' + endif + else + " get only the file name + let name = fnamemodify(name,":t") + endif + let label .= name + return label + endfunction + set guitablabel=%{GuiTabLabel()} + +endif