From 14322e84d348ffa7d5dcb30e5b72dccc9a0cc70a Mon Sep 17 00:00:00 2001 From: taradiddles Date: Fri, 29 Apr 2022 08:48:42 +0300 Subject: [PATCH] update for current setup --- docs/user-setups/taradiddles/README.md | 211 +--- .../taradiddles/interactive-commands.sh | 3 - .../taradiddles/qubes-tweak/0-README | 5 - .../taradiddles/qubes-tweak/Xresources | 138 --- .../taradiddles/qubes-tweak/fix-xdg | 15 - .../taradiddles/qubes-tweak/setxkbmap.desktop | 5 - .../taradiddles/qubes-tweak/solarized.vim2 | 969 ------------------ .../taradiddles/qubes-tweak/vimrc.add.colors | 5 - .../qubes-tweak/xresources.desktop | 5 - 9 files changed, 56 insertions(+), 1300 deletions(-) delete mode 100644 docs/user-setups/taradiddles/interactive-commands.sh delete mode 100644 docs/user-setups/taradiddles/qubes-tweak/0-README delete mode 100644 docs/user-setups/taradiddles/qubes-tweak/Xresources delete mode 100755 docs/user-setups/taradiddles/qubes-tweak/fix-xdg delete mode 100644 docs/user-setups/taradiddles/qubes-tweak/setxkbmap.desktop delete mode 100644 docs/user-setups/taradiddles/qubes-tweak/solarized.vim2 delete mode 100644 docs/user-setups/taradiddles/qubes-tweak/vimrc.add.colors delete mode 100644 docs/user-setups/taradiddles/qubes-tweak/xresources.desktop diff --git a/docs/user-setups/taradiddles/README.md b/docs/user-setups/taradiddles/README.md index 0b8aa19..5656288 100644 --- a/docs/user-setups/taradiddles/README.md +++ b/docs/user-setups/taradiddles/README.md @@ -7,46 +7,60 @@ Hardware 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: -- VM 'sys-firewall' -- VM 'sys-net' -- VM 'vault': not networked; used for keepassxc (password manager) and [split gpg](https://www.qubes-os.org/doc/split-gpg/) +- qube 'sys-firewall' +- qube 'sys-net' +- 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)). -- VM 'banking': firewalled, only a few IPs allowed; used only for e-banking -- VM 'halftrusted': used only for e-shopping -- VM 'private': not networked; used for opening and storing private documents +- 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)). +- qube 'banking': firewalled, https only to know hosts; used only for e-banking +- qube 'private': not networked; for opening and storing private/personal 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. -- VM 'sys-usb': firewalled, only 1 IP allowed (playing music from a NAS to a USB soundcard). -- 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'. +- 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. +- (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)) +- 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. -### 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 ------------------ -### Xterm ### +### Xterm 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 ~~~ -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 - -(not clear how much it helps with battery usage - never had the time to do proper testing; shouldn't hurt though). +- install and configure `tlp` in dom0 +- add `workqueue.power_efficient` to `GRUB_CMD_LINE` in `/etc/default/grub` -### Productivity tweaks ### +### Productivity tweaks 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 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 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 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 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 ------------------ - -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 -~~~ +Backups +------- +`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 diff --git a/docs/user-setups/taradiddles/interactive-commands.sh b/docs/user-setups/taradiddles/interactive-commands.sh deleted file mode 100644 index ffbc64b..0000000 --- a/docs/user-setups/taradiddles/interactive-commands.sh +++ /dev/null @@ -1,3 +0,0 @@ -alias mv='mv -i' -alias cp='cp -i' -alias rm='rm -i' diff --git a/docs/user-setups/taradiddles/qubes-tweak/0-README b/docs/user-setups/taradiddles/qubes-tweak/0-README deleted file mode 100644 index 247493e..0000000 --- a/docs/user-setups/taradiddles/qubes-tweak/0-README +++ /dev/null @@ -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 diff --git a/docs/user-setups/taradiddles/qubes-tweak/Xresources b/docs/user-setups/taradiddles/qubes-tweak/Xresources deleted file mode 100644 index 0bcc548..0000000 --- a/docs/user-setups/taradiddles/qubes-tweak/Xresources +++ /dev/null @@ -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 diff --git a/docs/user-setups/taradiddles/qubes-tweak/fix-xdg b/docs/user-setups/taradiddles/qubes-tweak/fix-xdg deleted file mode 100755 index b99a804..0000000 --- a/docs/user-setups/taradiddles/qubes-tweak/fix-xdg +++ /dev/null @@ -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 - - - diff --git a/docs/user-setups/taradiddles/qubes-tweak/setxkbmap.desktop b/docs/user-setups/taradiddles/qubes-tweak/setxkbmap.desktop deleted file mode 100644 index afae03e..0000000 --- a/docs/user-setups/taradiddles/qubes-tweak/setxkbmap.desktop +++ /dev/null @@ -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 diff --git a/docs/user-setups/taradiddles/qubes-tweak/solarized.vim2 b/docs/user-setups/taradiddles/qubes-tweak/solarized.vim2 deleted file mode 100644 index ee46b17..0000000 --- a/docs/user-setups/taradiddles/qubes-tweak/solarized.vim2 +++ /dev/null @@ -1,969 +0,0 @@ -" Name: Solarized vim colorscheme -" Author: Ethan Schoonover -" 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 -" if that mapping is available. If it is not available you will need to -" either map the function manually or change your current mapping to -" something else. If you wish to map the function manually, enter the following -" lines in your .vimrc: -" -" nmap ToggleBackground -" imap ToggleBackground -" vmap 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 -"}}} diff --git a/docs/user-setups/taradiddles/qubes-tweak/vimrc.add.colors b/docs/user-setups/taradiddles/qubes-tweak/vimrc.add.colors deleted file mode 100644 index 4b2be63..0000000 --- a/docs/user-setups/taradiddles/qubes-tweak/vimrc.add.colors +++ /dev/null @@ -1,5 +0,0 @@ - -syntax enable -" set background=light -set background=dark -colorscheme solarized diff --git a/docs/user-setups/taradiddles/qubes-tweak/xresources.desktop b/docs/user-setups/taradiddles/qubes-tweak/xresources.desktop deleted file mode 100644 index 1b87cf3..0000000 --- a/docs/user-setups/taradiddles/qubes-tweak/xresources.desktop +++ /dev/null @@ -1,5 +0,0 @@ -[Desktop Entry] -Name=Merge Xressources (with preprocessing, unlike xinit) -Exec=xrdb merge /etc/X11/Xresources -Terminal=false -Type=Application