mirror of
https://github.com/Qubes-Community/Contents.git
synced 2024-12-22 13:55:08 -05:00
update for current setup
This commit is contained in:
parent
4f61d64ccf
commit
14322e84d3
@ -7,46 +7,60 @@ Hardware
|
|||||||
Lenovo Thinkpad T450s
|
Lenovo Thinkpad T450s
|
||||||
|
|
||||||
|
|
||||||
TemplateVMs and VMs
|
TemplateVMs and qubes
|
||||||
-------------------
|
---------------------
|
||||||
|
|
||||||
(see the [TemplateVMs customization](#templatevms-customization) section for how to configure the templateVMs)
|
Philosophy: use a few custom templates rather than a large one. Pro: minimize attack surface. Cons: more work to set up, and more time spent updating (for the latter, setting up a caching proxy in your LAN or [even in a qube](https://github.com/rustybird/qubes-updates-cache) will speed up things).
|
||||||
|
|
||||||
### TemplateVM 'fedora-minimal' ###
|
### TemplateVM 'fedora-minimal'
|
||||||
|
|
||||||
Custom minimal template for:
|
Custom minimal template for:
|
||||||
|
|
||||||
- VM 'sys-firewall'
|
- qube 'sys-firewall'
|
||||||
- VM 'sys-net'
|
- qube 'sys-net'
|
||||||
- VM 'vault': not networked; used for keepassxc (password manager) and [split gpg](https://www.qubes-os.org/doc/split-gpg/)
|
- qube 'vault': not networked; used for keepassxc (password manager) and [split gpg](https://www.qubes-os.org/doc/split-gpg/)
|
||||||
|
|
||||||
### TemplateVM 'fedora-medium ###
|
### TemplateVM 'fedora-medium' (default template)
|
||||||
|
|
||||||
Custom default template with libreoffice, thunderbird, ...
|
Custom template with libreoffice, evolution, ...
|
||||||
|
|
||||||
- VM 'work': firewalled, ssh to known hosts and to mail server; used for emails/office work, storing non confidential documents, and terminals (with [tmux](https://en.wikipedia.org/wiki/Tmux)).
|
- qube 'work': firewalled, ssh only to known hosts and to mail server; used for emails/office work, storing non confidential documents, and terminals (with [tmux](https://en.wikipedia.org/wiki/Tmux)).
|
||||||
- VM 'banking': firewalled, only a few IPs allowed; used only for e-banking
|
- qube 'banking': firewalled, https only to know hosts; used only for e-banking
|
||||||
- VM 'halftrusted': used only for e-shopping
|
- qube 'private': not networked; for opening and storing private/personal documents
|
||||||
- VM 'private': not networked; used for opening and storing private documents
|
- qube 'sys-usb': firewalled, only LAN allowed (required for storing large android backups to a NFS share).
|
||||||
|
|
||||||
### TemplateVM 'fedora-heavy' ###
|
### TemplateVM 'fedora-heavy'
|
||||||
|
|
||||||
Larger custom template with programs from non-fedora repos (multimedia, non free, ...)
|
Larger custom template with a lot more apps, some from non-fedora repos (rpmfusion, ...)
|
||||||
|
|
||||||
- VM 'untrusted': firewalled, only a few IPs allowed (eg. nextcloud server, ...); used for opening multimedia files, and content that is thought to be OK. See [this comment](https://github.com/Qubes-Community/Contents/issues/21#issuecomment-385189481) for the rationale behind keeping this VM without full Internet access.
|
- qube 'untrusted': firewalled, only a few IPs allowed (eg. own cloud/seafile server, ...); mainly used for managing personal pictures and opening multimedia files and content that is more or less trusted.
|
||||||
- VM 'sys-usb': firewalled, only 1 IP allowed (playing music from a NAS to a USB soundcard).
|
- (named) dispVM 'dispBrowser': for casual browsing. Customized firefox profile with privacy extensions and a custom `user.js` file (from [here](https://github.com/arkenfox/user.js))
|
||||||
- dispVM 'dispBrowser': doc / WIP; used for casual browsing. Using with a customized firefox profile with privacy extensions and a custom `user.js` file (adapted from [here](https://github.com/pyllyukko/user.js)).
|
- dispVMs: used for opening content downloaded from unknown/dodgy sources as well as browsing sites that won't work with the restricted firefox profile of 'dispBrowser' above.
|
||||||
- dispVMs: used for opening content downloaded from unknown/dodgy sources as well as browsing sites that won't work with the restricted firefox profile of 'dispBrowser'.
|
|
||||||
|
|
||||||
### Other VMs ###
|
### TemplateVM 'fedora-print'
|
||||||
|
|
||||||
|
A custom template with third-party printing drivers
|
||||||
|
|
||||||
|
- (named) dispVM 'print': firewalled, access only to remote printer/scanner
|
||||||
|
|
||||||
|
### TemplateVM 'debian-11-signal'
|
||||||
|
|
||||||
|
A custom template with `signal-desktop` [installed](https://github.com/Qubes-Community/Contents/blob/master/docs/privacy/signal.md) in a minimal debian-11 template.
|
||||||
|
|
||||||
|
- dispVM 'signal'
|
||||||
|
|
||||||
|
|
||||||
|
### Other qubes
|
||||||
|
|
||||||
|
- a few Windows 10 qubes without network for CAD/3D drawing, programing controllers with a Windows-only toolkit, ... ;
|
||||||
|
- a dedicated qube for GIS work
|
||||||
|
- ...
|
||||||
|
|
||||||
- a few Windows 7 VMs without network for CAD/3D drawing, programing controllers with a Windows-only toolkit, ... ;
|
|
||||||
- a StandaloneVM based on fedora with third-party drivers installed for a networked printer. Firewalled to allow only the network printer's IP.
|
|
||||||
|
|
||||||
DOM0 customization
|
DOM0 customization
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
### Xterm ###
|
### Xterm
|
||||||
|
|
||||||
Open xterm instead of xfce4-terminal: in `/etc/xdg/xfce4/helpers.rc`, set
|
Open xterm instead of xfce4-terminal: in `/etc/xdg/xfce4/helpers.rc`, set
|
||||||
|
|
||||||
@ -54,149 +68,36 @@ Open xterm instead of xfce4-terminal: in `/etc/xdg/xfce4/helpers.rc`, set
|
|||||||
TerminalEmulator=xterm
|
TerminalEmulator=xterm
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Xresources for xterm are in `$HOME/.Xresources`
|
(Xresources for xterm are in `$HOME/.Xresources`)
|
||||||
|
|
||||||
|
|
||||||
### Power management ###
|
### Power management
|
||||||
|
|
||||||
See https://github.com/taradiddles/qubes-os/tree/master/powermgnt
|
- install and configure `tlp` in dom0
|
||||||
|
- add `workqueue.power_efficient` to `GRUB_CMD_LINE` in `/etc/default/grub`
|
||||||
(not clear how much it helps with battery usage - never had the time to do proper testing; shouldn't hurt though).
|
|
||||||
|
|
||||||
|
|
||||||
### Productivity tweaks ###
|
### Productivity tweaks
|
||||||
|
|
||||||
Define application shortcuts with Qubes Menu -> System Tools -> Keyboard -> Application Shortcuts; for instance:
|
Define application shortcuts with Qubes Menu -> System Tools -> Keyboard -> Application Shortcuts; for instance:
|
||||||
|
|
||||||
- ctrl-alt C: open a calculator in VM untrusted ; shortcut: `qvm-run -q -a untrusted galculator`
|
- ctrl-alt C: open a calculator in qube untrusted ; shortcut: `qvm-run -q -a untrusted galculator`
|
||||||
- ctrl-alt X: open a popup windows to open xterm in a given VM (script [here](https://github.com/taradiddles/qubes-os/blob/master/popup-appmenu-r4), screenshot [there](https://github.com/taradiddles/qubes-os/blob/master/popup-appmenu.screenshot.jpg)). Shortcut: `popup-appmenu xterm`.
|
- ctrl-alt X: open a popup windows to open xterm in a given qube (script [here](https://github.com/taradiddles/qubes-os/blob/master/popup-appmenu-r4), screenshot [there](https://github.com/taradiddles/qubes-os/blob/master/popup-appmenu.screenshot.jpg)). Shortcut: `popup-appmenu xterm`.
|
||||||
- ctrl-alt F: ditto, but with firefox
|
- ctrl-alt F: ditto, but with firefox
|
||||||
- ctrl-alt K: open keepassxc in VM vault; shortcut: `qvm-run -q -a vault keepassxc`
|
- ctrl-alt K: open keepassxc in qube vault; shortcut: `qvm-run -q -a vault keepassxc`
|
||||||
|
|
||||||
|
|
||||||
VMs customization
|
Backups
|
||||||
-----------------
|
-------
|
||||||
|
|
||||||
sys-net: since nm-applet isn't started by default in all VMs (see section below), start it with a .desktop file in `$HOME/.config/autostart` (note: can't use `rc.local` because Xorg isn't started yet when `rc.local` runs).
|
|
||||||
|
|
||||||
|
|
||||||
TemplateVMs customization
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
### fedora-minimal ###
|
|
||||||
|
|
||||||
Installed ITL's fedora-26-minimal rpm + installed the following rpms:
|
|
||||||
|
|
||||||
~~~
|
|
||||||
qubes-core-agent-passwordless-root
|
|
||||||
qubes-core-agent-networking
|
|
||||||
qubes-core-agent-network-manager
|
|
||||||
qubes-core-agent-dom0-updates
|
|
||||||
qubes-usb-proxy
|
|
||||||
network-manager-applet
|
|
||||||
polkit
|
|
||||||
less
|
|
||||||
pciutils
|
|
||||||
psmisc
|
|
||||||
NetworkManager-wifi
|
|
||||||
dejavu-sans-fonts
|
|
||||||
dejavu-sans-mono-fonts
|
|
||||||
tcpdump
|
|
||||||
telnet
|
|
||||||
wireless-tools
|
|
||||||
iwl7260-firmware
|
|
||||||
keepassxc pwgen
|
|
||||||
sharutils
|
|
||||||
rsync
|
|
||||||
qubes-gpg-split
|
|
||||||
qubes-core-agent-nautilus
|
|
||||||
bzip2
|
|
||||||
encfs
|
|
||||||
openssl
|
|
||||||
~~~
|
|
||||||
|
|
||||||
Fixes/tweaks:
|
|
||||||
- `/usr/lib/qubes-tweak`:
|
|
||||||
- `fix-xdg`: remove autostart stuff in `/etc/xdg/autostart`; this will prevent for instance nm-applet from starting in all VMs while it's only required in sys-net.
|
|
||||||
- `setxkbmap.desktop`: multiple keyboard layouts (see [this doc](https://github.com/Qubes-Community/Contents/blob/master/docs/localization/keyboard-multiple-layouts.md)).
|
|
||||||
- `solarized.vim2`, `vimrc.add.colors`: configure vim to use the [solarized](http://ethanschoonover.com/solarized) color scheme.
|
|
||||||
- `Xresources` and `xresources.desktop`: load Xresources at boot (can't simply use `/etc/X11/xresources` because `xinit` runs `xrdb -merge` without the preprocessor, which breaks the solarized color scheme definitions.
|
|
||||||
- `/etc/profile.d/interactive-commands.sh`: ask before deleting/overwriting files with rm/cp/mv
|
|
||||||
|
|
||||||
|
|
||||||
### fedora-medium ###
|
|
||||||
|
|
||||||
Cloned fedora-minimal above and installed the following rpms:
|
|
||||||
|
|
||||||
~~~
|
|
||||||
tigervnc
|
|
||||||
firefox
|
|
||||||
thunderbird
|
|
||||||
tmux
|
|
||||||
proxychains
|
|
||||||
nfs-utils
|
|
||||||
gimp
|
|
||||||
libreoffice-calc libreoffice-writer libreoffice-draw libreoffice-impress
|
|
||||||
units
|
|
||||||
fuse-sshfs
|
|
||||||
p7zip
|
|
||||||
perl-Image-ExifTool
|
|
||||||
qpdf
|
|
||||||
vim-enhanced
|
|
||||||
man
|
|
||||||
glibc-langpack-en
|
|
||||||
nfs-utils
|
|
||||||
eog
|
|
||||||
evince
|
|
||||||
thunderbird-qubes
|
|
||||||
qubes-img-converter
|
|
||||||
qubes-pdf-converter
|
|
||||||
git
|
|
||||||
thunderbird-enigmail
|
|
||||||
~~~
|
|
||||||
|
|
||||||
Fixes:
|
|
||||||
|
|
||||||
~~~
|
|
||||||
set LANG=en_US.UTF-8 in /etc/locale.conf
|
|
||||||
~~~
|
|
||||||
|
|
||||||
|
|
||||||
### fedora-heavy ###
|
|
||||||
|
|
||||||
Cloned fedora-medium above.
|
|
||||||
|
|
||||||
Installed the following repos:
|
|
||||||
|
|
||||||
- Google Chrome
|
|
||||||
- rpmfusion-free
|
|
||||||
- rpmfusion-nonfree
|
|
||||||
|
|
||||||
And installed the following rpms:
|
|
||||||
|
|
||||||
~~~
|
|
||||||
calibre
|
|
||||||
nextcloud-client
|
|
||||||
ufraw
|
|
||||||
viking
|
|
||||||
java-1.8.0-openjdk
|
|
||||||
mc
|
|
||||||
google-chrome-stable
|
|
||||||
gphoto2
|
|
||||||
gvfs-mtp
|
|
||||||
gvfs-gphoto2
|
|
||||||
gvfs-fuse
|
|
||||||
simple-mtpfs
|
|
||||||
qubes-vm-recommended
|
|
||||||
whois
|
|
||||||
bind-utils
|
|
||||||
galculator
|
|
||||||
fuse-exfat
|
|
||||||
unrar
|
|
||||||
ffmpeg
|
|
||||||
mplayer
|
|
||||||
qgis-python
|
|
||||||
~~~
|
|
||||||
|
|
||||||
|
`qvm-backup` is horribly slow and can't be used on a regular basis to backup qubes with large amounts of data. So use tasket's excellent [wyng](https://github.com/tasket/wyng-backup) backup tool.
|
||||||
|
|
||||||
|
Setup (fully automated with scripts):
|
||||||
|
|
||||||
|
- in a dedicated trusted qube based on fedora-minimal, mount a nfs share which hosts a large (ie. 500GB) file with a LUKS volume and `losetup` that file
|
||||||
|
- attach the newly created loop device to dom0
|
||||||
|
- in dom0, attach the newly create loop device to dom0, open the LUKS volume in the trusted qubes and mount its underlying fs
|
||||||
|
- in dom0, run `wyng`, backup (rsync) home dir + various config files, etc.
|
||||||
|
- unmount, close luks, detach, shutdown trusted qube
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
alias mv='mv -i'
|
|
||||||
alias cp='cp -i'
|
|
||||||
alias rm='rm -i'
|
|
@ -1,5 +0,0 @@
|
|||||||
ln -s /usr/lib/qubes-tweak/setxkbmap.desktop /etc/xdg/autostart/0-setxkbmap.desktop
|
|
||||||
ln -s /usr/lib/qubes-tweak/xresources.desktop /etc/xdg/autostart/0-xresources.desktop
|
|
||||||
ln -s /usr/lib/qubes-tweak/solarized.vim2 /usr/share/vim/vim80/colors/solarized.vim
|
|
||||||
ln -s /usr/lib/qubes-tweak/Xressource /usr/lib/qubes-tweak/Xresources
|
|
||||||
cat /usr/lib/qubes-tweak/vimrc.add.colors >> /etc/vimrc
|
|
@ -1,138 +0,0 @@
|
|||||||
! This is the global resources file that is loaded when
|
|
||||||
! all users log in, as well as for the login screen
|
|
||||||
|
|
||||||
! Fix the Xft dpi ; this prevents tiny fonts
|
|
||||||
! or HUGE fonts depending on the screen size.
|
|
||||||
Xft.dpi: 108
|
|
||||||
|
|
||||||
! hintstyle: medium means that (for Postscript fonts) we
|
|
||||||
! position the stems for maximum constrast and consistency
|
|
||||||
! but do not force the stems to integral widths. hintnone,
|
|
||||||
! hintslight, and hintfull are the other possibilities.
|
|
||||||
Xft.hintstyle: hintmedium
|
|
||||||
Xft.hinting: true
|
|
||||||
|
|
||||||
! ivan - include does not work because xinit uses the -nocpp option
|
|
||||||
! #include "/usr/lib/qubes-tweak/Xresources"
|
|
||||||
|
|
||||||
! https://wiki.archlinux.org/index.php/Xterm#Configuration
|
|
||||||
|
|
||||||
URxvt*scrollBar: False
|
|
||||||
XTerm*scrollBar: False
|
|
||||||
|
|
||||||
! https://bugzilla.redhat.com/show_bug.cgi?id=1577159
|
|
||||||
XTerm*termName: xterm-256color
|
|
||||||
|
|
||||||
URxvt.clipboard.autocopy: True
|
|
||||||
XTerm*selectToClipboard: True
|
|
||||||
|
|
||||||
! urxft has fast scrolling on by default
|
|
||||||
XTerm*fastScroll: True
|
|
||||||
|
|
||||||
URxvt*font: xft:DejaVu Sans Mono:size=14:antialias=true
|
|
||||||
XTerm*faceName: DejaVu Sans Mono:size=14:antialias=true
|
|
||||||
|
|
||||||
URxvt*saveLines: 1000
|
|
||||||
XTerm*saveLines: 1000
|
|
||||||
|
|
||||||
URxvt*loginShell: True
|
|
||||||
XTerm*loginShell: True
|
|
||||||
|
|
||||||
URxvt.fading: 0
|
|
||||||
|
|
||||||
! decrease char width in urxvt
|
|
||||||
URxvt.letterSpace: -2
|
|
||||||
|
|
||||||
! fix invisible underscore in xterm
|
|
||||||
XTerm*scaleHeight: 1.01
|
|
||||||
|
|
||||||
! selection characters; see CHARACTER CLASS in xterm man page
|
|
||||||
**charClass: 33:48,35:48,37:48,43:48,45-47:48,64:48,95:48,126:48
|
|
||||||
|
|
||||||
|
|
||||||
!! COLORS
|
|
||||||
!XTerm.vt100.foreground: LightGray
|
|
||||||
!XTerm.vt100.background: Black
|
|
||||||
!XTerm*CursorColor: Green
|
|
||||||
!XTerm*CursorBlink: False
|
|
||||||
|
|
||||||
|
|
||||||
! http://ethanschoonover.com/solarized
|
|
||||||
|
|
||||||
!! drop in Solarized colorscheme for Xresources/Xdefaults
|
|
||||||
|
|
||||||
!!SOLARIZED HEX 16/8 TERMCOL XTERM/HEX L*A*B RGB HSB
|
|
||||||
!!--------- ------- ---- ------- ----------- ---------- ----------- -----------
|
|
||||||
!!base03 #002b36 8/4 brblack 234 #1c1c1c 15 -12 -12 0 43 54 193 100 21
|
|
||||||
!!base02 #073642 0/4 black 235 #262626 20 -12 -12 7 54 66 192 90 26
|
|
||||||
!!base01 #586e75 10/7 brgreen 240 #585858 45 -07 -07 88 110 117 194 25 46
|
|
||||||
!!base00 #657b83 11/7 bryellow 241 #626262 50 -07 -07 101 123 131 195 23 51
|
|
||||||
!!base0 #839496 12/6 brblue 244 #808080 60 -06 -03 131 148 150 186 13 59
|
|
||||||
!!base1 #93a1a1 14/4 brcyan 245 #8a8a8a 65 -05 -02 147 161 161 180 9 63
|
|
||||||
!!base2 #eee8d5 7/7 white 254 #e4e4e4 92 -00 10 238 232 213 44 11 93
|
|
||||||
!!base3 #fdf6e3 15/7 brwhite 230 #ffffd7 97 00 10 253 246 227 44 10 99
|
|
||||||
!!yellow #b58900 3/3 yellow 136 #af8700 60 10 65 181 137 0 45 100 71
|
|
||||||
!!orange #cb4b16 9/3 brred 166 #d75f00 50 50 55 203 75 22 18 89 80
|
|
||||||
!!red #dc322f 1/1 red 160 #d70000 50 65 45 220 50 47 1 79 86
|
|
||||||
!!magenta #d33682 5/5 magenta 125 #af005f 50 65 -05 211 54 130 331 74 83
|
|
||||||
!!violet #6c71c4 13/5 brmagenta 61 #5f5faf 50 15 -45 108 113 196 237 45 77
|
|
||||||
!!blue #268bd2 4/4 blue 33 #0087ff 55 -10 -45 38 139 210 205 82 82
|
|
||||||
!!cyan #2aa198 6/6 cyan 37 #00afaf 60 -35 -05 42 161 152 175 74 63
|
|
||||||
!!green #859900 2/2 green 64 #5f8700 60 -20 65 133 153 0 68 100 60
|
|
||||||
|
|
||||||
#define S_base03 #002b36
|
|
||||||
#define S_base02 #073642
|
|
||||||
#define S_base01 #586e75
|
|
||||||
#define S_base00 #657b83
|
|
||||||
#define S_base0 #839496
|
|
||||||
#define S_base1 #93a1a1
|
|
||||||
#define S_base2 #eee8d5
|
|
||||||
#define S_base3 #fdf6e3
|
|
||||||
#define S_yellow #b58900
|
|
||||||
#define S_orange #cb4b16
|
|
||||||
#define S_red #dc322f
|
|
||||||
#define S_magenta #d33682
|
|
||||||
#define S_violet #6c71c4
|
|
||||||
#define S_blue #268bd2
|
|
||||||
#define S_cyan #2aa198
|
|
||||||
#define S_green #859900
|
|
||||||
|
|
||||||
*background: S_base03
|
|
||||||
*foreground: S_base00
|
|
||||||
*fading: 40
|
|
||||||
*fadeColor: S_base03
|
|
||||||
*cursorColor: S_base1
|
|
||||||
*pointerColorBackground:S_base01
|
|
||||||
*pointerColorForeground:S_base1
|
|
||||||
|
|
||||||
!! black dark/light
|
|
||||||
*color0: S_base02
|
|
||||||
*color8: S_base03
|
|
||||||
|
|
||||||
!! red dark/light
|
|
||||||
*color1: S_red
|
|
||||||
*color9: S_orange
|
|
||||||
|
|
||||||
!! green dark/light
|
|
||||||
*color2: S_green
|
|
||||||
*color10: S_base01
|
|
||||||
|
|
||||||
!! yellow dark/light
|
|
||||||
*color3: S_yellow
|
|
||||||
*color11: S_base00
|
|
||||||
|
|
||||||
!! blue dark/light
|
|
||||||
*color4: S_blue
|
|
||||||
*color12: S_base0
|
|
||||||
|
|
||||||
!! magenta dark/light
|
|
||||||
*color5: S_magenta
|
|
||||||
*color13: S_violet
|
|
||||||
|
|
||||||
!! cyan dark/light
|
|
||||||
*color6: S_cyan
|
|
||||||
*color14: S_base1
|
|
||||||
|
|
||||||
!! white dark/light
|
|
||||||
*color7: S_base2
|
|
||||||
*color15: S_base3
|
|
@ -1,15 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
|
|
||||||
mkdir -p /etc/xdg/autostart/bkp
|
|
||||||
|
|
||||||
IFS="
|
|
||||||
"
|
|
||||||
|
|
||||||
for i in $(find /etc/xdg/autostart/ -maxdepth 1 -mindepth 1 ! -type d ! -name '0*.desktop'); do
|
|
||||||
cp -au "$i" /etc/xdg/autostart/bkp
|
|
||||||
rm "$i"
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Name=Configure multiple keyboard layouts
|
|
||||||
Exec=setxkbmap -layout "us,bg(phonetic)" -option "grp:shifts_toggle"
|
|
||||||
Terminal=true
|
|
||||||
Type=Application
|
|
@ -1,969 +0,0 @@
|
|||||||
" Name: Solarized vim colorscheme
|
|
||||||
" Author: Ethan Schoonover <es@ethanschoonover.com>
|
|
||||||
" URL: http://ethanschoonover.com/solarized
|
|
||||||
" (see this url for latest release & screenshots)
|
|
||||||
" License: OSI approved MIT license (see end of this file)
|
|
||||||
" Created: In the middle of the night
|
|
||||||
" Modified: 2011 Apr 14
|
|
||||||
"
|
|
||||||
" Usage "{{{
|
|
||||||
"
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
" ABOUT:
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
" Solarized is a carefully designed selective contrast colorscheme with dual
|
|
||||||
" light and dark modes that runs in both GUI, 256 and 16 color modes.
|
|
||||||
"
|
|
||||||
" See the homepage above for screenshots and details.
|
|
||||||
"
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
" INSTALLATION:
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
"
|
|
||||||
" Two options for installation: manual or pathogen
|
|
||||||
"
|
|
||||||
" MANUAL INSTALLATION OPTION:
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
"
|
|
||||||
" 1. Put the files in the right place!
|
|
||||||
" 2. Move `solarized.vim` to your `.vim/colors` directory.
|
|
||||||
"
|
|
||||||
" RECOMMENDED PATHOGEN INSTALLATION OPTION:
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
"
|
|
||||||
" 1. Download and install Tim Pope's Pathogen from:
|
|
||||||
" https://github.com/tpope/vim-pathogen
|
|
||||||
"
|
|
||||||
" 2. Next, move or clone the `vim-colors-solarized` directory so that it is
|
|
||||||
" a subdirectory of the `.vim/bundle` directory.
|
|
||||||
"
|
|
||||||
" a. **clone with git:**
|
|
||||||
"
|
|
||||||
" $ cd ~/.vim/bundle
|
|
||||||
" $ git clone git://github.com/altercation/vim-colors-solarized.git
|
|
||||||
"
|
|
||||||
" b. **or move manually into the pathogen bundle directory:**
|
|
||||||
" In the parent directory of vim-colors-solarized:
|
|
||||||
"
|
|
||||||
" $ mv vim-colors-solarized ~/.vim/bundle/
|
|
||||||
"
|
|
||||||
" MODIFY VIMRC:
|
|
||||||
"
|
|
||||||
" After either Option 1 or Option 2 above, put the following two lines in your
|
|
||||||
" .vimrc:
|
|
||||||
"
|
|
||||||
" syntax enable
|
|
||||||
" set background=dark
|
|
||||||
" colorscheme solarized
|
|
||||||
"
|
|
||||||
" or, for the light background mode of Solarized:
|
|
||||||
"
|
|
||||||
" syntax enable
|
|
||||||
" set background=light
|
|
||||||
" colorscheme solarized
|
|
||||||
"
|
|
||||||
" I like to have a different background in GUI and terminal modes, so I can use
|
|
||||||
" the following if-then. However, I find vim's background autodetection to be
|
|
||||||
" pretty good and, at least with MacVim, I can leave this background value
|
|
||||||
" assignment out entirely and get the same results.
|
|
||||||
"
|
|
||||||
" if has('gui_running')
|
|
||||||
" set background=light
|
|
||||||
" else
|
|
||||||
" set background=dark
|
|
||||||
" endif
|
|
||||||
"
|
|
||||||
" See the Solarized homepage at http://ethanschoonover.com/solarized for
|
|
||||||
" screenshots which will help you select either the light or dark background.
|
|
||||||
"
|
|
||||||
" Other options are detailed below.
|
|
||||||
"
|
|
||||||
" IMPORTANT NOTE FOR TERMINAL USERS:
|
|
||||||
"
|
|
||||||
" If you are going to use Solarized in Terminal mode (i.e. not in a GUI version
|
|
||||||
" like gvim or macvim), **please please please** consider setting your terminal
|
|
||||||
" emulator's colorscheme to used the Solarized palette. I've included palettes
|
|
||||||
" for some popular terminal emulator as well as Xdefaults in the official
|
|
||||||
" Solarized download available from [Solarized homepage]. If you use
|
|
||||||
" Solarized *without* these colors, Solarized will need to be told to degrade
|
|
||||||
" its colorscheme to a set compatible with the limited 256 terminal palette
|
|
||||||
" (whereas by using the terminal's 16 ansi color values, you can set the
|
|
||||||
" correct, specific values for the Solarized palette).
|
|
||||||
"
|
|
||||||
" If you do use the custom terminal colors, solarized.vim should work out of
|
|
||||||
" the box for you. If you are using a terminal emulator that supports 256
|
|
||||||
" colors and don't want to use the custom Solarized terminal colors, you will
|
|
||||||
" need to use the degraded 256 colorscheme. To do so, simply add the following
|
|
||||||
" line *before* the `colorschem solarized` line:
|
|
||||||
"
|
|
||||||
" let g:solarized_termcolors=256
|
|
||||||
"
|
|
||||||
" Again, I recommend just changing your terminal colors to Solarized values
|
|
||||||
" either manually or via one of the many terminal schemes available for import.
|
|
||||||
"
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
" TOGGLE BACKGROUND FUNCTION:
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
"
|
|
||||||
" Solarized comes with a Toggle Background plugin that by default will map to
|
|
||||||
" <F5> if that mapping is available. If it is not available you will need to
|
|
||||||
" either map the function manually or change your current <F5> mapping to
|
|
||||||
" something else. If you wish to map the function manually, enter the following
|
|
||||||
" lines in your .vimrc:
|
|
||||||
"
|
|
||||||
" nmap <unique> <F5> <Plug>ToggleBackground
|
|
||||||
" imap <unique> <F5> <Plug>ToggleBackground
|
|
||||||
" vmap <unique> <F5> <Plug>ToggleBackground
|
|
||||||
"
|
|
||||||
" Note that it is important to *not* use the noremap map variants. The plugin
|
|
||||||
" uses noremap internally. You may run `:help togglebg` for more information.
|
|
||||||
"
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
" OPTIONS
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
"
|
|
||||||
" Set these in your vimrc file prior to calling the colorscheme.
|
|
||||||
"
|
|
||||||
" option name default optional
|
|
||||||
" ------------------------------------------------
|
|
||||||
" g:solarized_termcolors= 16 | 256
|
|
||||||
" g:solarized_termtrans = 0 | 1
|
|
||||||
" g:solarized_degrade = 0 | 1
|
|
||||||
" g:solarized_bold = 1 | 0
|
|
||||||
" g:solarized_underline = 1 | 0
|
|
||||||
" g:solarized_italic = 1 | 0
|
|
||||||
" g:solarized_contrast = "normal"| "high" or "low"
|
|
||||||
" g:solarized_visibility= "normal"| "high" or "low"
|
|
||||||
" ------------------------------------------------
|
|
||||||
"
|
|
||||||
" OPTION DETAILS
|
|
||||||
"
|
|
||||||
" ------------------------------------------------
|
|
||||||
" g:solarized_termcolors= 256 | 16
|
|
||||||
" ------------------------------------------------
|
|
||||||
" The most important option if you are using vim in terminal (non gui) mode!
|
|
||||||
" This tells Solarized to use the 256 degraded color mode if running in a 256
|
|
||||||
" color capable terminal. Otherwise, if set to `16` it will use the terminal
|
|
||||||
" emulators colorscheme (best option as long as you've set the emulators colors
|
|
||||||
" to the Solarized palette).
|
|
||||||
"
|
|
||||||
" If you are going to use Solarized in Terminal mode (i.e. not in a GUI
|
|
||||||
" version like gvim or macvim), **please please please** consider setting your
|
|
||||||
" terminal emulator's colorscheme to used the Solarized palette. I've included
|
|
||||||
" palettes for some popular terminal emulator as well as Xdefaults in the
|
|
||||||
" official Solarized download available from:
|
|
||||||
" http://ethanschoonover.com/solarized . If you use Solarized without these
|
|
||||||
" colors, Solarized will by default use an approximate set of 256 colors. It
|
|
||||||
" isn't bad looking and has been extensively tweaked, but it's still not quite
|
|
||||||
" the real thing.
|
|
||||||
"
|
|
||||||
" ------------------------------------------------
|
|
||||||
" g:solarized_termtrans = 0 | 1
|
|
||||||
" ------------------------------------------------
|
|
||||||
" If you use a terminal emulator with a transparent background and Solarized
|
|
||||||
" isn't displaying the background color transparently, set this to 1 and
|
|
||||||
" Solarized will use the default (transparent) background of the terminal
|
|
||||||
" emulator. *urxvt* required this in my testing; iTerm2 did not.
|
|
||||||
"
|
|
||||||
" Note that on Mac OS X Terminal.app, solarized_termtrans is set to 1 by
|
|
||||||
" default as this is almost always the best option. The only exception to this
|
|
||||||
" is if the working terminfo file supports 256 colors (xterm-256color).
|
|
||||||
"
|
|
||||||
" ------------------------------------------------
|
|
||||||
" g:solarized_degrade = 0 | 1
|
|
||||||
" ------------------------------------------------
|
|
||||||
" For test purposes only; forces Solarized to use the 256 degraded color mode
|
|
||||||
" to test the approximate color values for accuracy.
|
|
||||||
"
|
|
||||||
" ------------------------------------------------
|
|
||||||
" g:solarized_bold = 1 | 0
|
|
||||||
" ------------------------------------------------
|
|
||||||
" ------------------------------------------------
|
|
||||||
" g:solarized_underline = 1 | 0
|
|
||||||
" ------------------------------------------------
|
|
||||||
" ------------------------------------------------
|
|
||||||
" g:solarized_italic = 1 | 0
|
|
||||||
" ------------------------------------------------
|
|
||||||
" If you wish to stop Solarized from displaying bold, underlined or
|
|
||||||
" italicized typefaces, simply assign a zero value to the appropriate
|
|
||||||
" variable, for example: `let g:solarized_italic=0`
|
|
||||||
"
|
|
||||||
" ------------------------------------------------
|
|
||||||
" g:solarized_contrast = "normal"| "high" or "low"
|
|
||||||
" ------------------------------------------------
|
|
||||||
" Stick with normal! It's been carefully tested. Setting this option to high
|
|
||||||
" or low does use the same Solarized palette but simply shifts some values up
|
|
||||||
" or down in order to expand or compress the tonal range displayed.
|
|
||||||
"
|
|
||||||
" ------------------------------------------------
|
|
||||||
" g:solarized_visibility = "normal"| "high" or "low"
|
|
||||||
" ------------------------------------------------
|
|
||||||
" Special characters such as trailing whitespace, tabs, newlines, when
|
|
||||||
" displayed using ":set list" can be set to one of three levels depending on
|
|
||||||
" your needs.
|
|
||||||
"
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
" COLOR VALUES
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
" Download palettes and files from: http://ethanschoonover.com/solarized
|
|
||||||
"
|
|
||||||
" L\*a\*b values are canonical (White D65, Reference D50), other values are
|
|
||||||
" matched in sRGB space.
|
|
||||||
"
|
|
||||||
" SOLARIZED HEX 16/8 TERMCOL XTERM/HEX L*A*B sRGB HSB
|
|
||||||
" --------- ------- ---- ------- ----------- ---------- ----------- -----------
|
|
||||||
" base03 #002b36 8/4 brblack 234 #1c1c1c 15 -12 -12 0 43 54 193 100 21
|
|
||||||
" base02 #073642 0/4 black 235 #262626 20 -12 -12 7 54 66 192 90 26
|
|
||||||
" base01 #586e75 10/7 brgreen 240 #4e4e4e 45 -07 -07 88 110 117 194 25 46
|
|
||||||
" base00 #657b83 11/7 bryellow 241 #585858 50 -07 -07 101 123 131 195 23 51
|
|
||||||
" base0 #839496 12/6 brblue 244 #808080 60 -06 -03 131 148 150 186 13 59
|
|
||||||
" base1 #93a1a1 14/4 brcyan 245 #8a8a8a 65 -05 -02 147 161 161 180 9 63
|
|
||||||
" base2 #eee8d5 7/7 white 254 #d7d7af 92 -00 10 238 232 213 44 11 93
|
|
||||||
" base3 #fdf6e3 15/7 brwhite 230 #ffffd7 97 00 10 253 246 227 44 10 99
|
|
||||||
" yellow #b58900 3/3 yellow 136 #af8700 60 10 65 181 137 0 45 100 71
|
|
||||||
" orange #cb4b16 9/3 brred 166 #d75f00 50 50 55 203 75 22 18 89 80
|
|
||||||
" red #dc322f 1/1 red 160 #d70000 50 65 45 220 50 47 1 79 86
|
|
||||||
" magenta #d33682 5/5 magenta 125 #af005f 50 65 -05 211 54 130 331 74 83
|
|
||||||
" violet #6c71c4 13/5 brmagenta 61 #5f5faf 50 15 -45 108 113 196 237 45 77
|
|
||||||
" blue #268bd2 4/4 blue 33 #0087ff 55 -10 -45 38 139 210 205 82 82
|
|
||||||
" cyan #2aa198 6/6 cyan 37 #00afaf 60 -35 -05 42 161 152 175 74 63
|
|
||||||
" green #859900 2/2 green 64 #5f8700 60 -20 65 133 153 0 68 100 60
|
|
||||||
"
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
" COLORSCHEME HACKING
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
"
|
|
||||||
" Useful commands for testing colorschemes:
|
|
||||||
" :source $VIMRUNTIME/syntax/hitest.vim
|
|
||||||
" :help highlight-groups
|
|
||||||
" :help cterm-colors
|
|
||||||
" :help group-name
|
|
||||||
"
|
|
||||||
" Useful links for developing colorschemes:
|
|
||||||
" http://www.vim.org/scripts/script.php?script_id=2937
|
|
||||||
" http://vimcasts.org/episodes/creating-colorschemes-for-vim/
|
|
||||||
" http://www.frexx.de/xterm-256-notes/"
|
|
||||||
"
|
|
||||||
"
|
|
||||||
" }}}
|
|
||||||
" Default option values"{{{
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
if !exists("g:solarized_termtrans")
|
|
||||||
if ($TERM_PROGRAM ==? "apple_terminal" && &t_Co < 256)
|
|
||||||
let g:solarized_termtrans = 1
|
|
||||||
else
|
|
||||||
let g:solarized_termtrans = 0
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
if !exists("g:solarized_degrade")
|
|
||||||
let g:solarized_degrade = 0
|
|
||||||
endif
|
|
||||||
if !exists("g:solarized_bold")
|
|
||||||
let g:solarized_bold = 1
|
|
||||||
endif
|
|
||||||
if !exists("g:solarized_underline")
|
|
||||||
let g:solarized_underline = 1
|
|
||||||
endif
|
|
||||||
if !exists("g:solarized_italic")
|
|
||||||
let g:solarized_italic = 1
|
|
||||||
endif
|
|
||||||
if !exists("g:solarized_termcolors")
|
|
||||||
let g:solarized_termcolors = 16
|
|
||||||
endif
|
|
||||||
if !exists("g:solarized_contrast")
|
|
||||||
let g:solarized_contrast = "normal"
|
|
||||||
endif
|
|
||||||
if !exists("g:solarized_visibility")
|
|
||||||
let g:solarized_visibility = "normal"
|
|
||||||
endif
|
|
||||||
"}}}
|
|
||||||
" Colorscheme initialization "{{{
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
hi clear
|
|
||||||
if exists("syntax_on")
|
|
||||||
syntax reset
|
|
||||||
endif
|
|
||||||
let colors_name = "solarized"
|
|
||||||
|
|
||||||
"}}}
|
|
||||||
" GUI & CSApprox hexadecimal palettes"{{{
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
"
|
|
||||||
" Set both gui and terminal color values in separate conditional statements
|
|
||||||
" Due to possibility that CSApprox is running (though I suppose we could just
|
|
||||||
" leave the hex values out entirely in that case and include only cterm colors)
|
|
||||||
" We also check to see if user has set solarized (force use of the
|
|
||||||
" neutral gray monotone palette component)
|
|
||||||
if (has("gui_running") && g:solarized_degrade == 0)
|
|
||||||
let s:vmode = "gui"
|
|
||||||
let s:base03 = "#002b36"
|
|
||||||
let s:base02 = "#073642"
|
|
||||||
let s:base01 = "#586e75"
|
|
||||||
let s:base00 = "#657b83"
|
|
||||||
let s:base0 = "#839496"
|
|
||||||
let s:base1 = "#93a1a1"
|
|
||||||
let s:base2 = "#eee8d5"
|
|
||||||
let s:base3 = "#fdf6e3"
|
|
||||||
let s:yellow = "#b58900"
|
|
||||||
let s:orange = "#cb4b16"
|
|
||||||
let s:red = "#dc322f"
|
|
||||||
let s:magenta = "#d33682"
|
|
||||||
let s:violet = "#6c71c4"
|
|
||||||
let s:blue = "#268bd2"
|
|
||||||
let s:cyan = "#2aa198"
|
|
||||||
let s:green = "#859900"
|
|
||||||
elseif (has("gui_running") && g:solarized_degrade == 1)
|
|
||||||
" These colors are identical to the 256 color mode. They may be viewed
|
|
||||||
" while in gui mode via "let g:solarized_degrade=1", though this is not
|
|
||||||
" recommened and is for testing only.
|
|
||||||
let s:vmode = "gui"
|
|
||||||
let s:base03 = "#1c1c1c"
|
|
||||||
let s:base02 = "#262626"
|
|
||||||
let s:base01 = "#4e4e4e"
|
|
||||||
let s:base00 = "#585858"
|
|
||||||
let s:base0 = "#808080"
|
|
||||||
let s:base1 = "#8a8a8a"
|
|
||||||
let s:base2 = "#d7d7af"
|
|
||||||
let s:base3 = "#ffffd7"
|
|
||||||
let s:yellow = "#af8700"
|
|
||||||
let s:orange = "#d75f00"
|
|
||||||
let s:red = "#af0000"
|
|
||||||
let s:magenta = "#af005f"
|
|
||||||
let s:violet = "#5f5faf"
|
|
||||||
let s:blue = "#0087ff"
|
|
||||||
let s:cyan = "#00afaf"
|
|
||||||
let s:green = "#5f8700"
|
|
||||||
elseif g:solarized_termcolors != 256 && &t_Co >= 16
|
|
||||||
let s:vmode = "cterm"
|
|
||||||
let s:base03 = "8"
|
|
||||||
let s:base02 = "0"
|
|
||||||
let s:base01 = "10"
|
|
||||||
let s:base00 = "11"
|
|
||||||
let s:base0 = "12"
|
|
||||||
let s:base1 = "14"
|
|
||||||
let s:base2 = "7"
|
|
||||||
let s:base3 = "15"
|
|
||||||
let s:yellow = "3"
|
|
||||||
let s:orange = "9"
|
|
||||||
let s:red = "1"
|
|
||||||
let s:magenta = "5"
|
|
||||||
let s:violet = "13"
|
|
||||||
let s:blue = "4"
|
|
||||||
let s:cyan = "6"
|
|
||||||
let s:green = "2"
|
|
||||||
elseif g:solarized_termcolors == 256
|
|
||||||
let s:vmode = "cterm"
|
|
||||||
let s:base03 = "234"
|
|
||||||
let s:base02 = "235"
|
|
||||||
let s:base01 = "239"
|
|
||||||
let s:base00 = "240"
|
|
||||||
let s:base0 = "244"
|
|
||||||
let s:base1 = "245"
|
|
||||||
let s:base2 = "187"
|
|
||||||
let s:base3 = "230"
|
|
||||||
let s:yellow = "136"
|
|
||||||
let s:orange = "166"
|
|
||||||
let s:red = "124"
|
|
||||||
let s:magenta = "125"
|
|
||||||
let s:violet = "61"
|
|
||||||
let s:blue = "33"
|
|
||||||
let s:cyan = "37"
|
|
||||||
let s:green = "64"
|
|
||||||
else
|
|
||||||
let s:vmode = "cterm"
|
|
||||||
let s:bright = "* term=bold cterm=bold"
|
|
||||||
let s:base03 = "0".s:bright
|
|
||||||
let s:base02 = "0"
|
|
||||||
let s:base01 = "2".s:bright
|
|
||||||
let s:base00 = "3".s:bright
|
|
||||||
let s:base0 = "4".s:bright
|
|
||||||
let s:base1 = "6".s:bright
|
|
||||||
let s:base2 = "7"
|
|
||||||
let s:base3 = "7".s:bright
|
|
||||||
let s:yellow = "3"
|
|
||||||
let s:orange = "1".s:bright
|
|
||||||
let s:red = "1"
|
|
||||||
let s:magenta = "5"
|
|
||||||
let s:violet = "13"
|
|
||||||
let s:blue = "4"
|
|
||||||
let s:cyan = "6"
|
|
||||||
let s:green = "2"
|
|
||||||
endif
|
|
||||||
"}}}
|
|
||||||
" Formatting options and null values for passthrough effect "{{{
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
let s:none = "NONE"
|
|
||||||
let s:none = "NONE"
|
|
||||||
let s:t_none = "NONE"
|
|
||||||
let s:n = "NONE"
|
|
||||||
let s:c = ",undercurl"
|
|
||||||
let s:r = ",reverse"
|
|
||||||
let s:s = ",standout"
|
|
||||||
let s:ou = ""
|
|
||||||
let s:ob = ""
|
|
||||||
"}}}
|
|
||||||
" Background value based on termtrans setting "{{{
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
if (has("gui_running") || g:solarized_termtrans == 0)
|
|
||||||
let s:back = s:base03
|
|
||||||
else
|
|
||||||
let s:back = "NONE"
|
|
||||||
endif
|
|
||||||
"}}}
|
|
||||||
" Alternate light scheme "{{{
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
if &background == "light"
|
|
||||||
let s:temp03 = s:base03
|
|
||||||
let s:temp02 = s:base02
|
|
||||||
let s:temp01 = s:base01
|
|
||||||
let s:temp00 = s:base00
|
|
||||||
let s:base03 = s:base3
|
|
||||||
let s:base02 = s:base2
|
|
||||||
let s:base01 = s:base1
|
|
||||||
let s:base00 = s:base0
|
|
||||||
let s:base0 = s:temp00
|
|
||||||
let s:base1 = s:temp01
|
|
||||||
let s:base2 = s:temp02
|
|
||||||
let s:base3 = s:temp03
|
|
||||||
if (s:back != "NONE")
|
|
||||||
let s:back = s:base03
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
"}}}
|
|
||||||
" Optional contrast schemes "{{{
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
if g:solarized_contrast == "high"
|
|
||||||
let s:base01 = s:base00
|
|
||||||
let s:base00 = s:base0
|
|
||||||
let s:base0 = s:base1
|
|
||||||
let s:base1 = s:base2
|
|
||||||
let s:base2 = s:base3
|
|
||||||
let s:back = s:back
|
|
||||||
endif
|
|
||||||
if g:solarized_contrast == "low"
|
|
||||||
let s:back = s:base02
|
|
||||||
let s:ou = ",underline"
|
|
||||||
endif
|
|
||||||
"}}}
|
|
||||||
" Overrides dependent on user specified values"{{{
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
if g:solarized_bold == 1
|
|
||||||
let s:b = ",bold"
|
|
||||||
else
|
|
||||||
let s:b = ""
|
|
||||||
endif
|
|
||||||
|
|
||||||
if g:solarized_underline == 1
|
|
||||||
let s:u = ",underline"
|
|
||||||
else
|
|
||||||
let s:u = ""
|
|
||||||
endif
|
|
||||||
|
|
||||||
if g:solarized_italic == 1
|
|
||||||
let s:i = ",italic"
|
|
||||||
else
|
|
||||||
let s:i = ""
|
|
||||||
endif
|
|
||||||
"}}}
|
|
||||||
" Highlighting primitives"{{{
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
|
|
||||||
exe "let s:bg_none = ' ".s:vmode."bg=".s:none ."'"
|
|
||||||
exe "let s:bg_back = ' ".s:vmode."bg=".s:back ."'"
|
|
||||||
exe "let s:bg_base03 = ' ".s:vmode."bg=".s:base03 ."'"
|
|
||||||
exe "let s:bg_base02 = ' ".s:vmode."bg=".s:base02 ."'"
|
|
||||||
exe "let s:bg_base01 = ' ".s:vmode."bg=".s:base01 ."'"
|
|
||||||
exe "let s:bg_base00 = ' ".s:vmode."bg=".s:base00 ."'"
|
|
||||||
exe "let s:bg_base0 = ' ".s:vmode."bg=".s:base0 ."'"
|
|
||||||
exe "let s:bg_base1 = ' ".s:vmode."bg=".s:base1 ."'"
|
|
||||||
exe "let s:bg_base2 = ' ".s:vmode."bg=".s:base2 ."'"
|
|
||||||
exe "let s:bg_base3 = ' ".s:vmode."bg=".s:base3 ."'"
|
|
||||||
exe "let s:bg_green = ' ".s:vmode."bg=".s:green ."'"
|
|
||||||
exe "let s:bg_yellow = ' ".s:vmode."bg=".s:yellow ."'"
|
|
||||||
exe "let s:bg_orange = ' ".s:vmode."bg=".s:orange ."'"
|
|
||||||
exe "let s:bg_red = ' ".s:vmode."bg=".s:red ."'"
|
|
||||||
exe "let s:bg_magenta = ' ".s:vmode."bg=".s:magenta."'"
|
|
||||||
exe "let s:bg_violet = ' ".s:vmode."bg=".s:violet ."'"
|
|
||||||
exe "let s:bg_blue = ' ".s:vmode."bg=".s:blue ."'"
|
|
||||||
exe "let s:bg_cyan = ' ".s:vmode."bg=".s:cyan ."'"
|
|
||||||
|
|
||||||
exe "let s:fg_none = ' ".s:vmode."fg=".s:none ."'"
|
|
||||||
exe "let s:fg_back = ' ".s:vmode."fg=".s:back ."'"
|
|
||||||
exe "let s:fg_base03 = ' ".s:vmode."fg=".s:base03 ."'"
|
|
||||||
exe "let s:fg_base02 = ' ".s:vmode."fg=".s:base02 ."'"
|
|
||||||
exe "let s:fg_base01 = ' ".s:vmode."fg=".s:base01 ."'"
|
|
||||||
exe "let s:fg_base00 = ' ".s:vmode."fg=".s:base00 ."'"
|
|
||||||
exe "let s:fg_base0 = ' ".s:vmode."fg=".s:base0 ."'"
|
|
||||||
exe "let s:fg_base1 = ' ".s:vmode."fg=".s:base1 ."'"
|
|
||||||
exe "let s:fg_base2 = ' ".s:vmode."fg=".s:base2 ."'"
|
|
||||||
exe "let s:fg_base3 = ' ".s:vmode."fg=".s:base3 ."'"
|
|
||||||
exe "let s:fg_green = ' ".s:vmode."fg=".s:green ."'"
|
|
||||||
exe "let s:fg_yellow = ' ".s:vmode."fg=".s:yellow ."'"
|
|
||||||
exe "let s:fg_orange = ' ".s:vmode."fg=".s:orange ."'"
|
|
||||||
exe "let s:fg_red = ' ".s:vmode."fg=".s:red ."'"
|
|
||||||
exe "let s:fg_magenta = ' ".s:vmode."fg=".s:magenta."'"
|
|
||||||
exe "let s:fg_violet = ' ".s:vmode."fg=".s:violet ."'"
|
|
||||||
exe "let s:fg_blue = ' ".s:vmode."fg=".s:blue ."'"
|
|
||||||
exe "let s:fg_cyan = ' ".s:vmode."fg=".s:cyan ."'"
|
|
||||||
|
|
||||||
exe "let s:fmt_none = ' ".s:vmode."=NONE". " term=NONE". "'"
|
|
||||||
exe "let s:fmt_bold = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'"
|
|
||||||
exe "let s:fmt_bldi = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'"
|
|
||||||
exe "let s:fmt_undr = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'"
|
|
||||||
exe "let s:fmt_undb = ' ".s:vmode."=NONE".s:u.s:b. " term=NONE".s:u.s:b."'"
|
|
||||||
exe "let s:fmt_undi = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'"
|
|
||||||
exe "let s:fmt_uopt = ' ".s:vmode."=NONE".s:ou. " term=NONE".s:ou."'"
|
|
||||||
exe "let s:fmt_curl = ' ".s:vmode."=NONE".s:c. " term=NONE".s:c."'"
|
|
||||||
exe "let s:fmt_ital = ' ".s:vmode."=NONE". " term=NONE". "'"
|
|
||||||
exe "let s:fmt_revr = ' ".s:vmode."=NONE".s:r. " term=NONE".s:r."'"
|
|
||||||
exe "let s:fmt_stnd = ' ".s:vmode."=NONE".s:s. " term=NONE".s:s."'"
|
|
||||||
|
|
||||||
if has("gui_running")
|
|
||||||
exe "let s:sp_none = ' guisp=".s:none ."'"
|
|
||||||
exe "let s:sp_back = ' guisp=".s:back ."'"
|
|
||||||
exe "let s:sp_base03 = ' guisp=".s:base03 ."'"
|
|
||||||
exe "let s:sp_base02 = ' guisp=".s:base02 ."'"
|
|
||||||
exe "let s:sp_base01 = ' guisp=".s:base01 ."'"
|
|
||||||
exe "let s:sp_base00 = ' guisp=".s:base00 ."'"
|
|
||||||
exe "let s:sp_base0 = ' guisp=".s:base0 ."'"
|
|
||||||
exe "let s:sp_base1 = ' guisp=".s:base1 ."'"
|
|
||||||
exe "let s:sp_base2 = ' guisp=".s:base2 ."'"
|
|
||||||
exe "let s:sp_base3 = ' guisp=".s:base3 ."'"
|
|
||||||
exe "let s:sp_green = ' guisp=".s:green ."'"
|
|
||||||
exe "let s:sp_yellow = ' guisp=".s:yellow ."'"
|
|
||||||
exe "let s:sp_orange = ' guisp=".s:orange ."'"
|
|
||||||
exe "let s:sp_red = ' guisp=".s:red ."'"
|
|
||||||
exe "let s:sp_magenta = ' guisp=".s:magenta."'"
|
|
||||||
exe "let s:sp_violet = ' guisp=".s:violet ."'"
|
|
||||||
exe "let s:sp_blue = ' guisp=".s:blue ."'"
|
|
||||||
exe "let s:sp_cyan = ' guisp=".s:cyan ."'"
|
|
||||||
else
|
|
||||||
let s:sp_none = ""
|
|
||||||
let s:sp_back = ""
|
|
||||||
let s:sp_base03 = ""
|
|
||||||
let s:sp_base02 = ""
|
|
||||||
let s:sp_base01 = ""
|
|
||||||
let s:sp_base00 = ""
|
|
||||||
let s:sp_base0 = ""
|
|
||||||
let s:sp_base1 = ""
|
|
||||||
let s:sp_base2 = ""
|
|
||||||
let s:sp_base3 = ""
|
|
||||||
let s:sp_green = ""
|
|
||||||
let s:sp_yellow = ""
|
|
||||||
let s:sp_orange = ""
|
|
||||||
let s:sp_red = ""
|
|
||||||
let s:sp_magenta = ""
|
|
||||||
let s:sp_violet = ""
|
|
||||||
let s:sp_blue = ""
|
|
||||||
let s:sp_cyan = ""
|
|
||||||
endif
|
|
||||||
|
|
||||||
"}}}
|
|
||||||
" Basic highlighting"{{{
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
" note that link syntax to avoid duplicate configuration doesn't work with the
|
|
||||||
" exe compiled formats
|
|
||||||
|
|
||||||
exe "hi! Normal" .s:fmt_none .s:fg_base0 .s:bg_back
|
|
||||||
|
|
||||||
exe "hi! Comment" .s:fmt_ital .s:fg_base01 .s:bg_none
|
|
||||||
" *Comment any comment
|
|
||||||
|
|
||||||
exe "hi! Constant" .s:fmt_none .s:fg_cyan .s:bg_none
|
|
||||||
" *Constant any constant
|
|
||||||
" String a string constant: "this is a string"
|
|
||||||
" Character a character constant: 'c', '\n'
|
|
||||||
" Number a number constant: 234, 0xff
|
|
||||||
" Boolean a boolean constant: TRUE, false
|
|
||||||
" Float a floating point constant: 2.3e10
|
|
||||||
|
|
||||||
exe "hi! Identifier" .s:fmt_none .s:fg_blue .s:bg_none
|
|
||||||
" *Identifier any variable name
|
|
||||||
" Function function name (also: methods for classes)
|
|
||||||
"
|
|
||||||
exe "hi! Statement" .s:fmt_none .s:fg_green .s:bg_none
|
|
||||||
" *Statement any statement
|
|
||||||
" Conditional if, then, else, endif, switch, etc.
|
|
||||||
" Repeat for, do, while, etc.
|
|
||||||
" Label case, default, etc.
|
|
||||||
" Operator "sizeof", "+", "*", etc.
|
|
||||||
" Keyword any other keyword
|
|
||||||
" Exception try, catch, throw
|
|
||||||
|
|
||||||
exe "hi! PreProc" .s:fmt_none .s:fg_orange .s:bg_none
|
|
||||||
" *PreProc generic Preprocessor
|
|
||||||
" Include preprocessor #include
|
|
||||||
" Define preprocessor #define
|
|
||||||
" Macro same as Define
|
|
||||||
" PreCondit preprocessor #if, #else, #endif, etc.
|
|
||||||
|
|
||||||
exe "hi! Type" .s:fmt_none .s:fg_yellow .s:bg_none
|
|
||||||
" *Type int, long, char, etc.
|
|
||||||
" StorageClass static, register, volatile, etc.
|
|
||||||
" Structure struct, union, enum, etc.
|
|
||||||
" Typedef A typedef
|
|
||||||
|
|
||||||
exe "hi! Special" .s:fmt_none .s:fg_red .s:bg_none
|
|
||||||
" *Special any special symbol
|
|
||||||
" SpecialChar special character in a constant
|
|
||||||
" Tag you can use CTRL-] on this
|
|
||||||
" Delimiter character that needs attention
|
|
||||||
" SpecialComment special things inside a comment
|
|
||||||
" Debug debugging statements
|
|
||||||
|
|
||||||
exe "hi! Underlined" .s:fmt_none .s:fg_violet .s:bg_none
|
|
||||||
" *Underlined text that stands out, HTML links
|
|
||||||
|
|
||||||
exe "hi! Ignore" .s:fmt_none .s:fg_none .s:bg_none
|
|
||||||
" *Ignore left blank, hidden |hl-Ignore|
|
|
||||||
|
|
||||||
exe "hi! Error" .s:fmt_bold .s:fg_red .s:bg_none
|
|
||||||
" *Error any erroneous construct
|
|
||||||
|
|
||||||
exe "hi! Todo" .s:fmt_bold .s:fg_magenta.s:bg_none
|
|
||||||
" *Todo anything that needs extra attention; mostly the
|
|
||||||
" keywords TODO FIXME and XXX
|
|
||||||
"
|
|
||||||
"}}}
|
|
||||||
" Extended highlighting "{{{
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
if (g:solarized_visibility=="high")
|
|
||||||
exe "hi! SpecialKey" .s:fmt_revr .s:fg_red .s:bg_none
|
|
||||||
exe "hi! NonText" .s:fmt_bold .s:fg_base1 .s:bg_none
|
|
||||||
elseif (g:solarized_visibility=="low")
|
|
||||||
exe "hi! SpecialKey" .s:fmt_bold .s:fg_base02 .s:bg_none
|
|
||||||
exe "hi! NonText" .s:fmt_bold .s:fg_base02 .s:bg_none
|
|
||||||
else
|
|
||||||
exe "hi! SpecialKey" .s:fmt_bold .s:fg_red .s:bg_none
|
|
||||||
exe "hi! NonText" .s:fmt_bold .s:fg_base01 .s:bg_none
|
|
||||||
endif
|
|
||||||
if (has("gui_running")) || &t_Co > 8
|
|
||||||
exe "hi! StatusLine" .s:fmt_none .s:fg_base02 .s:bg_base1
|
|
||||||
exe "hi! StatusLineNC" .s:fmt_none .s:fg_base02 .s:bg_base00
|
|
||||||
"exe "hi! Visual" .s:fmt_stnd .s:fg_none .s:bg_base02
|
|
||||||
exe "hi! Visual" .s:fmt_none .s:fg_base03 .s:bg_base01
|
|
||||||
else
|
|
||||||
exe "hi! StatusLine" .s:fmt_none .s:fg_base02 .s:bg_base2
|
|
||||||
exe "hi! StatusLineNC" .s:fmt_none .s:fg_base02 .s:bg_base2
|
|
||||||
exe "hi! Visual" .s:fmt_none .s:fg_none .s:bg_base2
|
|
||||||
endif
|
|
||||||
exe "hi! Directory" .s:fmt_none .s:fg_blue .s:bg_none
|
|
||||||
exe "hi! ErrorMsg" .s:fmt_revr .s:fg_red .s:bg_none
|
|
||||||
exe "hi! IncSearch" .s:fmt_stnd .s:fg_orange .s:bg_none
|
|
||||||
exe "hi! Search" .s:fmt_revr .s:fg_yellow .s:bg_none
|
|
||||||
exe "hi! MoreMsg" .s:fmt_none .s:fg_blue .s:bg_none
|
|
||||||
exe "hi! ModeMsg" .s:fmt_none .s:fg_blue .s:bg_none
|
|
||||||
exe "hi! LineNr" .s:fmt_none .s:fg_base01 .s:bg_base02
|
|
||||||
exe "hi! Question" .s:fmt_bold .s:fg_cyan .s:bg_none
|
|
||||||
exe "hi! VertSplit" .s:fmt_bold .s:fg_base00 .s:bg_base00
|
|
||||||
exe "hi! Title" .s:fmt_bold .s:fg_orange .s:bg_none
|
|
||||||
exe "hi! VisualNOS" .s:fmt_stnd .s:fg_none .s:bg_base02
|
|
||||||
exe "hi! WarningMsg" .s:fmt_bold .s:fg_red .s:bg_none
|
|
||||||
exe "hi! WildMenu" .s:fmt_none .s:fg_base2 .s:bg_base02
|
|
||||||
exe "hi! Folded" .s:fmt_undb .s:fg_base0 .s:bg_base02 .s:sp_base03
|
|
||||||
exe "hi! FoldColumn" .s:fmt_bold .s:fg_base0 .s:bg_base02
|
|
||||||
exe "hi! DiffAdd" .s:fmt_revr .s:fg_green .s:bg_none
|
|
||||||
exe "hi! DiffChange" .s:fmt_revr .s:fg_yellow .s:bg_none
|
|
||||||
exe "hi! DiffDelete" .s:fmt_revr .s:fg_red .s:bg_none
|
|
||||||
exe "hi! DiffText" .s:fmt_revr .s:fg_blue .s:bg_none
|
|
||||||
exe "hi! SignColumn" .s:fmt_none .s:fg_base0 .s:bg_base02
|
|
||||||
exe "hi! Conceal" .s:fmt_none .s:fg_blue .s:bg_none
|
|
||||||
exe "hi! SpellBad" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_red
|
|
||||||
exe "hi! SpellCap" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_violet
|
|
||||||
exe "hi! SpellRare" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_cyan
|
|
||||||
exe "hi! SpellLocal" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_yellow
|
|
||||||
exe "hi! Pmenu" .s:fmt_none .s:fg_base0 .s:bg_base02
|
|
||||||
exe "hi! PmenuSel" .s:fmt_none .s:fg_base2 .s:bg_base01
|
|
||||||
exe "hi! PmenuSbar" .s:fmt_none .s:fg_base0 .s:bg_base2
|
|
||||||
exe "hi! PmenuThumb" .s:fmt_none .s:fg_base03 .s:bg_base0
|
|
||||||
exe "hi! TabLine" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0
|
|
||||||
exe "hi! TabLineSel" .s:fmt_undr .s:fg_base2 .s:bg_base01 .s:sp_base0
|
|
||||||
exe "hi! TabLineFill" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0
|
|
||||||
exe "hi! CursorColumn" .s:fmt_none .s:fg_none .s:bg_base02
|
|
||||||
exe "hi! CursorLine" .s:fmt_uopt .s:fg_none .s:bg_base02 .s:sp_base1
|
|
||||||
exe "hi! ColorColumn" .s:fmt_none .s:fg_none .s:bg_base02
|
|
||||||
exe "hi! Cursor" .s:fmt_none .s:fg_base03 .s:bg_base0
|
|
||||||
hi! link lCursor Cursor
|
|
||||||
exe "hi! MatchParen" .s:fmt_bold .s:fg_red .s:bg_base01
|
|
||||||
|
|
||||||
"}}}
|
|
||||||
" vim syntax highlighting "{{{
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
exe "hi! vimLineComment" . s:fg_base01 .s:bg_none .s:fmt_ital
|
|
||||||
exe "hi! vimCommentString".s:fg_violet .s:bg_none .s:fmt_none
|
|
||||||
hi! link vimVar Identifier
|
|
||||||
hi! link vimFunc Function
|
|
||||||
hi! link vimUserFunc Function
|
|
||||||
exe "hi! vimCommand" . s:fg_yellow .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! vimCmdSep" . s:fg_blue .s:bg_none .s:fmt_bold
|
|
||||||
exe "hi! helpExample" . s:fg_base1 .s:bg_none .s:fmt_none
|
|
||||||
hi! link helpSpecial Special
|
|
||||||
exe "hi! helpOption" . s:fg_cyan .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! helpNote" . s:fg_magenta.s:bg_none .s:fmt_none
|
|
||||||
exe "hi! helpVim" . s:fg_magenta.s:bg_none .s:fmt_none
|
|
||||||
exe "hi! helpHyperTextJump" .s:fg_blue .s:bg_none .s:fmt_undr
|
|
||||||
exe "hi! helpHyperTextEntry".s:fg_green .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! vimIsCommand" . s:fg_base00 .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! vimSynMtchOpt" . s:fg_yellow .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! vimSynType" . s:fg_cyan .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! vimHiLink" . s:fg_blue .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! vimHiGroup" . s:fg_blue .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! vimGroup" . s:fg_blue .s:bg_none .s:fmt_undb
|
|
||||||
"}}}
|
|
||||||
" html highlighting "{{{
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
exe "hi! htmlTag" . s:fg_base01 .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! htmlEndTag" . s:fg_base01 .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! htmlTagN" . s:fg_base1 .s:bg_none .s:fmt_bold
|
|
||||||
exe "hi! htmlTagName" . s:fg_blue .s:bg_none .s:fmt_bold
|
|
||||||
exe "hi! htmlSpecialTagName". s:fg_blue .s:bg_none .s:fmt_ital
|
|
||||||
exe "hi! htmlArg" . s:fg_base00 .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! javaScript" . s:fg_yellow .s:bg_none .s:fmt_none
|
|
||||||
"}}}
|
|
||||||
" perl highlighting "{{{
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
exe "hi! perlHereDoc" . s:fg_base1 .s:bg_back .s:fmt_none
|
|
||||||
exe "hi! perlVarPlain" . s:fg_yellow .s:bg_back .s:fmt_none
|
|
||||||
exe "hi! perlStatementFileDesc". s:fg_cyan.s:bg_back.s:fmt_none
|
|
||||||
|
|
||||||
"}}}
|
|
||||||
" tex highlighting "{{{
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
exe "hi! texStatement" . s:fg_cyan .s:bg_back .s:fmt_none
|
|
||||||
exe "hi! texMathZoneX" . s:fg_yellow .s:bg_back .s:fmt_none
|
|
||||||
exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none
|
|
||||||
exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none
|
|
||||||
exe "hi! texRefLabel" . s:fg_yellow .s:bg_back .s:fmt_none
|
|
||||||
"}}}
|
|
||||||
" ruby highlighting "{{{
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
exe "hi! rubyDefine" . s:fg_base1 .s:bg_back .s:fmt_bold
|
|
||||||
"rubyInclude
|
|
||||||
"rubySharpBang
|
|
||||||
"rubyAccess
|
|
||||||
"rubyPredefinedVariable
|
|
||||||
"rubyBoolean
|
|
||||||
"rubyClassVariable
|
|
||||||
"rubyBeginEnd
|
|
||||||
"rubyRepeatModifier
|
|
||||||
"hi! link rubyArrayDelimiter Special " [ , , ]
|
|
||||||
"rubyCurlyBlock { , , }
|
|
||||||
|
|
||||||
"hi! link rubyClass Keyword
|
|
||||||
"hi! link rubyModule Keyword
|
|
||||||
"hi! link rubyKeyword Keyword
|
|
||||||
"hi! link rubyOperator Operator
|
|
||||||
"hi! link rubyIdentifier Identifier
|
|
||||||
"hi! link rubyInstanceVariable Identifier
|
|
||||||
"hi! link rubyGlobalVariable Identifier
|
|
||||||
"hi! link rubyClassVariable Identifier
|
|
||||||
"hi! link rubyConstant Type
|
|
||||||
"}}}
|
|
||||||
" haskell syntax highlighting"{{{
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
" For use with syntax/haskell.vim : Haskell Syntax File
|
|
||||||
" http://www.vim.org/scripts/script.php?script_id=3034
|
|
||||||
" See also Steffen Siering's github repository:
|
|
||||||
" http://github.com/urso/dotrc/blob/master/vim/syntax/haskell.vim
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
"
|
|
||||||
" Treat True and False specially, see the plugin referenced above
|
|
||||||
let hs_highlight_boolean=1
|
|
||||||
" highlight delims, see the plugin referenced above
|
|
||||||
let hs_highlight_delimiters=1
|
|
||||||
|
|
||||||
exe "hi! cPreCondit". s:fg_orange.s:bg_none .s:fmt_none
|
|
||||||
|
|
||||||
exe "hi! VarId" . s:fg_blue .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! ConId" . s:fg_yellow .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! hsImport" . s:fg_magenta.s:bg_none .s:fmt_none
|
|
||||||
exe "hi! hsString" . s:fg_base00 .s:bg_none .s:fmt_none
|
|
||||||
|
|
||||||
exe "hi! hsStructure" . s:fg_cyan .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! hs_hlFunctionName" . s:fg_blue .s:bg_none
|
|
||||||
exe "hi! hsStatement" . s:fg_cyan .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! hsImportLabel" . s:fg_cyan .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! hs_OpFunctionName" . s:fg_yellow .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! hs_DeclareFunction" . s:fg_orange .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! hsVarSym" . s:fg_cyan .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! hsType" . s:fg_yellow .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! hsTypedef" . s:fg_cyan .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! hsModuleName" . s:fg_green .s:bg_none .s:fmt_undr
|
|
||||||
exe "hi! hsModuleStartLabel" . s:fg_magenta.s:bg_none .s:fmt_none
|
|
||||||
hi! link hsImportParams Delimiter
|
|
||||||
hi! link hsDelimTypeExport Delimiter
|
|
||||||
hi! link hsModuleStartLabel hsStructure
|
|
||||||
hi! link hsModuleWhereLabel hsModuleStartLabel
|
|
||||||
|
|
||||||
" following is for the haskell-conceal plugin
|
|
||||||
" the first two items don't have an impact, but better safe
|
|
||||||
exe "hi! hsNiceOperator" . s:fg_cyan .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! hsniceoperator" . s:fg_cyan .s:bg_none .s:fmt_none
|
|
||||||
|
|
||||||
"}}}
|
|
||||||
" pandoc markdown syntax highlighting "{{{
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
|
|
||||||
"PandocHiLink pandocNormalBlock
|
|
||||||
exe "hi! pandocTitleBlock" .s:fg_blue .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocTitleBlockTitle" .s:fg_blue .s:bg_none .s:fmt_bold
|
|
||||||
exe "hi! pandocTitleComment" .s:fg_blue .s:bg_none .s:fmt_bold
|
|
||||||
exe "hi! pandocComment" .s:fg_base01 .s:bg_none .s:fmt_ital
|
|
||||||
exe "hi! pandocVerbatimBlock" .s:fg_yellow .s:bg_none .s:fmt_none
|
|
||||||
hi! link pandocVerbatimBlockDeep pandocVerbatimBlock
|
|
||||||
hi! link pandocCodeBlock pandocVerbatimBlock
|
|
||||||
hi! link pandocCodeBlockDelim pandocVerbatimBlock
|
|
||||||
exe "hi! pandocBlockQuote" .s:fg_blue .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocBlockQuoteLeader1" .s:fg_blue .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocBlockQuoteLeader2" .s:fg_cyan .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocBlockQuoteLeader3" .s:fg_yellow .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocBlockQuoteLeader4" .s:fg_red .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocBlockQuoteLeader5" .s:fg_base0 .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocBlockQuoteLeader6" .s:fg_base01 .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocListMarker" .s:fg_magenta.s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocListReference" .s:fg_magenta.s:bg_none .s:fmt_undr
|
|
||||||
|
|
||||||
" Definitions
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
let s:fg_pdef = s:fg_violet
|
|
||||||
exe "hi! pandocDefinitionBlock" .s:fg_pdef .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocDefinitionTerm" .s:fg_pdef .s:bg_none .s:fmt_stnd
|
|
||||||
exe "hi! pandocDefinitionIndctr" .s:fg_pdef .s:bg_none .s:fmt_bold
|
|
||||||
exe "hi! pandocEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_ital
|
|
||||||
exe "hi! pandocEmphasisNestedDefinition" .s:fg_pdef .s:bg_none .s:fmt_bldi
|
|
||||||
exe "hi! pandocStrongEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_bold
|
|
||||||
exe "hi! pandocStrongEmphasisNestedDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi
|
|
||||||
exe "hi! pandocStrongEmphasisEmphasisDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi
|
|
||||||
exe "hi! pandocStrikeoutDefinition" .s:fg_pdef .s:bg_none .s:fmt_revr
|
|
||||||
exe "hi! pandocVerbatimInlineDefinition" .s:fg_pdef .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocSuperscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocSubscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none
|
|
||||||
|
|
||||||
" Tables
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
let s:fg_ptable = s:fg_blue
|
|
||||||
exe "hi! pandocTable" .s:fg_ptable.s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocTableStructure" .s:fg_ptable.s:bg_none .s:fmt_none
|
|
||||||
hi! link pandocTableStructureTop pandocTableStructre
|
|
||||||
hi! link pandocTableStructureEnd pandocTableStructre
|
|
||||||
exe "hi! pandocTableZebraLight" .s:fg_ptable.s:bg_base03.s:fmt_none
|
|
||||||
exe "hi! pandocTableZebraDark" .s:fg_ptable.s:bg_base02.s:fmt_none
|
|
||||||
exe "hi! pandocEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_ital
|
|
||||||
exe "hi! pandocEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi
|
|
||||||
exe "hi! pandocStrongEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bold
|
|
||||||
exe "hi! pandocStrongEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi
|
|
||||||
exe "hi! pandocStrongEmphasisEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bldi
|
|
||||||
exe "hi! pandocStrikeoutTable" .s:fg_ptable.s:bg_none .s:fmt_revr
|
|
||||||
exe "hi! pandocVerbatimInlineTable" .s:fg_ptable.s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocSuperscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocSubscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none
|
|
||||||
|
|
||||||
" Headings
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
let s:fg_phead = s:fg_orange
|
|
||||||
exe "hi! pandocHeading" .s:fg_phead .s:bg_none.s:fmt_bold
|
|
||||||
exe "hi! pandocHeadingMarker" .s:fg_yellow.s:bg_none.s:fmt_bold
|
|
||||||
exe "hi! pandocEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bldi
|
|
||||||
exe "hi! pandocEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi
|
|
||||||
exe "hi! pandocStrongEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bold
|
|
||||||
exe "hi! pandocStrongEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi
|
|
||||||
exe "hi! pandocStrongEmphasisEmphasisHeading".s:fg_phead .s:bg_none.s:fmt_bldi
|
|
||||||
exe "hi! pandocStrikeoutHeading" .s:fg_phead .s:bg_none.s:fmt_revr
|
|
||||||
exe "hi! pandocVerbatimInlineHeading" .s:fg_phead .s:bg_none.s:fmt_bold
|
|
||||||
exe "hi! pandocSuperscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold
|
|
||||||
exe "hi! pandocSubscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold
|
|
||||||
|
|
||||||
" Links
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
exe "hi! pandocLinkDelim" .s:fg_base01 .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocLinkLabel" .s:fg_blue .s:bg_none .s:fmt_undr
|
|
||||||
exe "hi! pandocLinkText" .s:fg_blue .s:bg_none .s:fmt_undb
|
|
||||||
exe "hi! pandocLinkURL" .s:fg_base00 .s:bg_none .s:fmt_undr
|
|
||||||
exe "hi! pandocLinkTitle" .s:fg_base00 .s:bg_none .s:fmt_undi
|
|
||||||
exe "hi! pandocLinkTitleDelim" .s:fg_base01 .s:bg_none .s:fmt_undi .s:sp_base00
|
|
||||||
exe "hi! pandocLinkDefinition" .s:fg_cyan .s:bg_none .s:fmt_undr .s:sp_base00
|
|
||||||
exe "hi! pandocLinkDefinitionID" .s:fg_blue .s:bg_none .s:fmt_bold
|
|
||||||
exe "hi! pandocImageCaption" .s:fg_violet .s:bg_none .s:fmt_undb
|
|
||||||
exe "hi! pandocFootnoteLink" .s:fg_green .s:bg_none .s:fmt_undr
|
|
||||||
exe "hi! pandocFootnoteDefLink" .s:fg_green .s:bg_none .s:fmt_bold
|
|
||||||
exe "hi! pandocFootnoteInline" .s:fg_green .s:bg_none .s:fmt_undb
|
|
||||||
exe "hi! pandocFootnote" .s:fg_green .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocCitationDelim" .s:fg_magenta.s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocCitation" .s:fg_magenta.s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocCitationID" .s:fg_magenta.s:bg_none .s:fmt_undr
|
|
||||||
exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none
|
|
||||||
|
|
||||||
" Main Styles
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
exe "hi! pandocStyleDelim" .s:fg_base01 .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocEmphasis" .s:fg_base0 .s:bg_none .s:fmt_ital
|
|
||||||
exe "hi! pandocEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi
|
|
||||||
exe "hi! pandocStrongEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bold
|
|
||||||
exe "hi! pandocStrongEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi
|
|
||||||
exe "hi! pandocStrongEmphasisEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bldi
|
|
||||||
exe "hi! pandocStrikeout" .s:fg_base01 .s:bg_none .s:fmt_revr
|
|
||||||
exe "hi! pandocVerbatimInline" .s:fg_yellow .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocSuperscript" .s:fg_violet .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocSubscript" .s:fg_violet .s:bg_none .s:fmt_none
|
|
||||||
|
|
||||||
exe "hi! pandocRule" .s:fg_blue .s:bg_none .s:fmt_bold
|
|
||||||
exe "hi! pandocRuleLine" .s:fg_blue .s:bg_none .s:fmt_bold
|
|
||||||
exe "hi! pandocEscapePair" .s:fg_red .s:bg_none .s:fmt_bold
|
|
||||||
exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocNonBreakingSpace" . s:fg_red .s:bg_none .s:fmt_revr
|
|
||||||
hi! link pandocEscapedCharacter pandocEscapePair
|
|
||||||
hi! link pandocLineBreak pandocEscapePair
|
|
||||||
|
|
||||||
" Embedded Code
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
exe "hi! pandocMetadataDelim" .s:fg_base01 .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocMetadataKey" .s:fg_blue .s:bg_none .s:fmt_none
|
|
||||||
exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_bold
|
|
||||||
hi! link pandocMetadataTitle pandocMetadata
|
|
||||||
|
|
||||||
"}}}
|
|
||||||
" Utility autocommand "{{{
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
" In cases where Solarized is initialized inside a terminal vim session and
|
|
||||||
" then transferred to a gui session via the command `:gui`, the gui vim process
|
|
||||||
" does not re-read the colorscheme (or .vimrc for that matter) so any `has_gui`
|
|
||||||
" related code that sets gui specific values isn't executed.
|
|
||||||
"
|
|
||||||
" Currently, Solarized sets only the cterm or gui values for the colorscheme
|
|
||||||
" depending on gui or terminal mode. It's possible that, if the following
|
|
||||||
" autocommand method is deemed excessively poor form, that approach will be
|
|
||||||
" used again and the autocommand below will be dropped.
|
|
||||||
"
|
|
||||||
" However it seems relatively benign in this case to include the autocommand
|
|
||||||
" here. It fires only in cases where vim is transferring from terminal to gui
|
|
||||||
" mode (detected with the script scope s:vmode variable). It also allows for
|
|
||||||
" other potential terminal customizations that might make gui mode suboptimal.
|
|
||||||
"
|
|
||||||
autocmd GUIEnter * if (s:vmode != "gui") | exe "colorscheme " . g:colors_name | endif
|
|
||||||
"}}}
|
|
||||||
" License "{{{
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
"
|
|
||||||
" Copyright (c) 2011 Ethan Schoonover
|
|
||||||
"
|
|
||||||
" Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
" of this software and associated documentation files (the "Software"), to deal
|
|
||||||
" in the Software without restriction, including without limitation the rights
|
|
||||||
" to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
" copies of the Software, and to permit persons to whom the Software is
|
|
||||||
" furnished to do so, subject to the following conditions:
|
|
||||||
"
|
|
||||||
" The above copyright notice and this permission notice shall be included in
|
|
||||||
" all copies or substantial portions of the Software.
|
|
||||||
"
|
|
||||||
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
" OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
" THE SOFTWARE.
|
|
||||||
"
|
|
||||||
" vim:foldmethod=marker:foldlevel=0
|
|
||||||
"}}}
|
|
@ -1,5 +0,0 @@
|
|||||||
|
|
||||||
syntax enable
|
|
||||||
" set background=light
|
|
||||||
set background=dark
|
|
||||||
colorscheme solarized
|
|
@ -1,5 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Name=Merge Xressources (with preprocessing, unlike xinit)
|
|
||||||
Exec=xrdb merge /etc/X11/Xresources
|
|
||||||
Terminal=false
|
|
||||||
Type=Application
|
|
Loading…
Reference in New Issue
Block a user