From 8143be717c87927cdd78cd16d2600650c7877572 Mon Sep 17 00:00:00 2001 From: Matthew McKinnon Date: Sun, 17 Mar 2024 14:39:54 +1000 Subject: [PATCH] Initial Commit --- .gitignore | 5 + .gitmodules | 9 + README.md | 9 + bash/bash_aliases | 95 ++ bash/bash_colors | 79 ++ bash/bashrc | 53 ++ config/alacritty/alacritty.toml | 1 + config/alacritty/dracula.toml | 76 ++ config/alacritty/gnome_terminal.toml | 28 + config/alacritty/hyper.toml | 32 + config/awesome/autostart.sh | 13 + config/awesome/rc.lua | 646 +++++++++++++ config/awesome/theme.lua | 131 +++ .../awesome/wallpapers/debian-wallpaper.jpg | Bin 0 -> 449808 bytes config/lxterminal/lxterminal.conf | 55 ++ config/mpd/mpd.conf | 21 + config/newsboat/config | 28 + config/newsboat/urls | 31 + config/picom/picom.conf | 257 +++++ config/qutebrowser/config.py | 136 +++ git/gitconfig | 32 + install.sh | 40 + mutt/colors | 81 ++ mutt/comprofix | 26 + mutt/lang | 16 + mutt/mailcap | 19 + mutt/mutt_oauth2.py | 421 ++++++++ mutt/muttrc | 62 ++ mutt/signature | 7 + nano/nanorc | 1 + nano/syntax/ALL.nanorc | 900 ++++++++++++++++++ nano/syntax/awk.nanorc | 26 + nano/syntax/c.nanorc | 25 + nano/syntax/cmake.nanorc | 12 + nano/syntax/coffeescript.nanorc | 17 + nano/syntax/colortest.nanorc | 17 + nano/syntax/csharp.nanorc | 28 + nano/syntax/css.nanorc | 34 + nano/syntax/cython.nanorc | 28 + nano/syntax/default.nanorc | 4 + nano/syntax/dot.nanorc | 8 + nano/syntax/email.nanorc | 5 + nano/syntax/git.nanorc | 21 + nano/syntax/glsl.nanorc | 17 + nano/syntax/go.nanorc | 24 + nano/syntax/html.nanorc | 24 + nano/syntax/ini.nanorc | 12 + nano/syntax/inputrc.nanorc | 11 + nano/syntax/java.nanorc | 29 + nano/syntax/javascript.nanorc | 24 + nano/syntax/json.nanorc | 12 + nano/syntax/keymap.nanorc | 11 + nano/syntax/kickstart.nanorc | 16 + nano/syntax/ledger.nanorc | 9 + nano/syntax/lisp.nanorc | 15 + nano/syntax/lua.nanorc | 24 + nano/syntax/makefile.nanorc | 22 + nano/syntax/man.nanorc | 10 + nano/syntax/markdown.nanorc | 19 + nano/syntax/mpdconf.nanorc | 10 + nano/syntax/nanorc.nanorc | 20 + nano/syntax/nginx.nanorc | 15 + nano/syntax/patch.nanorc | 9 + nano/syntax/peg.nanorc | 13 + nano/syntax/php.nanorc | 20 + nano/syntax/pkg-config.nanorc | 9 + nano/syntax/pkgbuild.nanorc | 23 + nano/syntax/po.nanorc | 9 + nano/syntax/privoxy.nanorc | 32 + nano/syntax/properties.nanorc | 10 + nano/syntax/python.nanorc | 23 + nano/syntax/rpmspec.nanorc | 28 + nano/syntax/ruby.nanorc | 12 + nano/syntax/sed.nanorc | 10 + nano/syntax/shell.nanorc | 18 + nano/syntax/sql.nanorc | 35 + nano/syntax/systemd.nanorc | 13 + nano/syntax/tex.nanorc | 8 + nano/syntax/vala.nanorc | 20 + nano/syntax/vi.nanorc | 12 + nano/syntax/xml.nanorc | 13 + nano/syntax/xresources.nanorc | 11 + nano/syntax/yaml.nanorc | 14 + nano/syntax/yum.nanorc | 9 + oh-my-zsh/moe.zsh-theme | 37 + vim/colors/codeschool.vim | 108 +++ vim/colors/eldar.vim | 292 ++++++ vim/colors/wombat256i.vim | 307 ++++++ vim/colors/zenburn.vim | 467 +++++++++ vim/vimrc | 405 ++++++++ xinitrc | 44 + zsh/zshrc | 170 ++++ 92 files changed, 6040 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 README.md create mode 100644 bash/bash_aliases create mode 100644 bash/bash_colors create mode 100644 bash/bashrc create mode 100644 config/alacritty/alacritty.toml create mode 100644 config/alacritty/dracula.toml create mode 100644 config/alacritty/gnome_terminal.toml create mode 100644 config/alacritty/hyper.toml create mode 100755 config/awesome/autostart.sh create mode 100644 config/awesome/rc.lua create mode 100644 config/awesome/theme.lua create mode 100644 config/awesome/wallpapers/debian-wallpaper.jpg create mode 100644 config/lxterminal/lxterminal.conf create mode 100644 config/mpd/mpd.conf create mode 100644 config/newsboat/config create mode 100644 config/newsboat/urls create mode 100644 config/picom/picom.conf create mode 100644 config/qutebrowser/config.py create mode 100644 git/gitconfig create mode 100755 install.sh create mode 100644 mutt/colors create mode 100644 mutt/comprofix create mode 100644 mutt/lang create mode 100644 mutt/mailcap create mode 100755 mutt/mutt_oauth2.py create mode 100644 mutt/muttrc create mode 100644 mutt/signature create mode 100644 nano/nanorc create mode 100644 nano/syntax/ALL.nanorc create mode 100644 nano/syntax/awk.nanorc create mode 100644 nano/syntax/c.nanorc create mode 100644 nano/syntax/cmake.nanorc create mode 100644 nano/syntax/coffeescript.nanorc create mode 100644 nano/syntax/colortest.nanorc create mode 100644 nano/syntax/csharp.nanorc create mode 100644 nano/syntax/css.nanorc create mode 100644 nano/syntax/cython.nanorc create mode 100644 nano/syntax/default.nanorc create mode 100644 nano/syntax/dot.nanorc create mode 100644 nano/syntax/email.nanorc create mode 100644 nano/syntax/git.nanorc create mode 100644 nano/syntax/glsl.nanorc create mode 100644 nano/syntax/go.nanorc create mode 100644 nano/syntax/html.nanorc create mode 100644 nano/syntax/ini.nanorc create mode 100644 nano/syntax/inputrc.nanorc create mode 100644 nano/syntax/java.nanorc create mode 100644 nano/syntax/javascript.nanorc create mode 100644 nano/syntax/json.nanorc create mode 100644 nano/syntax/keymap.nanorc create mode 100644 nano/syntax/kickstart.nanorc create mode 100644 nano/syntax/ledger.nanorc create mode 100644 nano/syntax/lisp.nanorc create mode 100644 nano/syntax/lua.nanorc create mode 100644 nano/syntax/makefile.nanorc create mode 100644 nano/syntax/man.nanorc create mode 100644 nano/syntax/markdown.nanorc create mode 100644 nano/syntax/mpdconf.nanorc create mode 100644 nano/syntax/nanorc.nanorc create mode 100644 nano/syntax/nginx.nanorc create mode 100644 nano/syntax/patch.nanorc create mode 100644 nano/syntax/peg.nanorc create mode 100644 nano/syntax/php.nanorc create mode 100644 nano/syntax/pkg-config.nanorc create mode 100644 nano/syntax/pkgbuild.nanorc create mode 100644 nano/syntax/po.nanorc create mode 100644 nano/syntax/privoxy.nanorc create mode 100644 nano/syntax/properties.nanorc create mode 100644 nano/syntax/python.nanorc create mode 100644 nano/syntax/rpmspec.nanorc create mode 100644 nano/syntax/ruby.nanorc create mode 100644 nano/syntax/sed.nanorc create mode 100644 nano/syntax/shell.nanorc create mode 100644 nano/syntax/sql.nanorc create mode 100644 nano/syntax/systemd.nanorc create mode 100644 nano/syntax/tex.nanorc create mode 100644 nano/syntax/vala.nanorc create mode 100644 nano/syntax/vi.nanorc create mode 100644 nano/syntax/xml.nanorc create mode 100644 nano/syntax/xresources.nanorc create mode 100644 nano/syntax/yaml.nanorc create mode 100644 nano/syntax/yum.nanorc create mode 100644 oh-my-zsh/moe.zsh-theme create mode 100644 vim/colors/codeschool.vim create mode 100644 vim/colors/eldar.vim create mode 100644 vim/colors/wombat256i.vim create mode 100644 vim/colors/zenburn.vim create mode 100644 vim/vimrc create mode 100755 xinitrc create mode 100644 zsh/zshrc diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1e763c7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +vim/.netrwhist +mutt/oauth2 + + + diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..9916bf0 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,9 @@ +[submodule "config/awesome/awesome-wm-widgets"] + path = config/awesome/awesome-wm-widgets + url = https://github.com/streetturtle/awesome-wm-widgets.git +[submodule "vim/pack/themes/start/dracula"] + path = vim/pack/themes/start/dracula + url = https://github.com/dracula/vim.git +[submodule "zsh/dracula"] + path = zsh/dracula + url = https://github.com/dracula/zsh.git diff --git a/README.md b/README.md new file mode 100644 index 0000000..b5620c5 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +dotfiles +======== + +* mutt - Setup for use with mutt that has sidebar patch applied. Multiple Accounts. +* nano - nanorc configuration with various syntax themes. +* vim - vimrc configuration various themes. +* bash - bashrc, bash_colors and bash_liases for use with bash shell. +* zsh - zshrc and zshrc_aliases config files +* oh-my-zsh - Persoanl oh-my-zsh theme diff --git a/bash/bash_aliases b/bash/bash_aliases new file mode 100644 index 0000000..1cfa388 --- /dev/null +++ b/bash/bash_aliases @@ -0,0 +1,95 @@ + +DISTRO=$(lsb_release -si) + +if [[ $DISTRO = 'Debian' ]]; then + + alias archey='screenfetch' + +fi + +# Fun / Games +alias aquarium='asciiquarium' +alias sudoku='nsudoku' +alias tetris='bastet' +alias mario='mupen64plus --windowed ~/ROMs/N64/SuperMario64.v64' +alias kart='mupen64plus --windowed ~/ROMs/N64/MarioKart64.v64' +alias zelda='mupen64plus --windowed ~/ROMs/N64/Zelda64.rom' +alias zeldamajora='mupen64plus --windowed ~/ROMs/N64/ZeldaMajorasMask.z' +alias ps2='pcsx2' + +#System +alias shutdown='sudo shutdown -P now' +alias Stat='uname -a;systemd-analyze time;wc -l /lib/modules/$(uname -r)/modules.order; lsinitcpio -a /boot/initramfs-linux.img' + +## Packages +alias rarx='unrar x' +alias zipx='unzip x' +alias gzx='tar -xzvf' +alias xzx='tar -xJvf' +alias bzx='tar -xvjf' + +# Pacman +alias P='pacaur' +alias PY='pacaur -Syy' +alias PU='pacaur -Syu' +alias PAY='sudo pacman -Syy' +alias PAU='sudo pacman -Syu' + +# Default to human readable figures +alias df='df -h' +alias du='du -h' + +# Interactive operation... +# alias rm='rm -i' +# alias cp='cp -i' +# alias mv='mv -i' + +# Misc :) +alias less='less -r' # raw control characters +alias grep='grep --color' # show differences in colour +alias egrep='egrep --color=auto' # show differences in colour +alias fgrep='fgrep --color=auto' # show differences in colour +alias nemo='nemo --no-desktop' + +# Some shortcuts for different directory listings +alias ls='ls -hF --color=auto' # classify files in colour +alias dir='ls --color=auto --format=vertical' +alias vdir='ls --color=auto --format=long' +alias ll='ls -l' # long list +alias la='ls -A' # all but . and .. +alias l='ls -CF' +alias ..='cd ..' +alias ...='cd ...' +alias ....='cd ....' +alias .....='cd .....' +alias k='exit' +alias D='cd ~/Downloads' + + +## Vim Stuff +alias eV='vim ~/.vimrc' +alias e='vim' + +## YouTube +alias yt='cd ~/Downloads/YouTube' +alias cleanYT='rm ~/Downloads/YouTube/*.*' +alias DL='cd ~/Downloads/YouTube && youtube-dl -ic' + +#Bash Stuff +alias eB='vim ~/.bashrc' +alias eBG='leafpad ~/.bashrc' +alias B='source ~/.bashrc' + +## News and Music +alias news='newsbeuter' +alias nix='cortex linux' +alias pods='podbeuter' +alias twit='turses' +alias Pods='cd ~/Music/Podcasts && ranger' + +## Net +alias irc='weechat-curses' +alias hogs='sudo nethogs enp2s0' +alias ST='speedtest-cli' +alias ssh='TERM=xterm ssh' + diff --git a/bash/bash_colors b/bash/bash_colors new file mode 100644 index 0000000..6cc732a --- /dev/null +++ b/bash/bash_colors @@ -0,0 +1,79 @@ +# Customize BASH PS1 prompt to show current GIT repository and branch. +# by Mike Stewart - http://MediaDoneRight.com + +# SETUP CONSTANTS +# Bunch-o-predefined colors. Makes reading code easier than escape sequences. +# I don't remember where I found this. o_O + +# Reset +Color_Off="\[\033[0m\]" # Text Reset + +# Regular Colors +Black="\[\033[0;30m\]" # Black +Red="\[\033[0;31m\]" # Red +Green="\[\033[0;32m\]" # Green +Yellow="\[\033[0;33m\]" # Yellow +Blue="\[\033[0;34m\]" # Blue +Purple="\[\033[0;35m\]" # Purple +Cyan="\[\033[0;36m\]" # Cyan +White="\[\033[0;37m\]" # White + +# Bold +BBlack="\[\033[1;30m\]" # Black +BRed="\[\033[1;31m\]" # Red +BGreen="\[\033[1;32m\]" # Green +BYellow="\[\033[1;33m\]" # Yellow +BBlue="\[\033[1;34m\]" # Blue +BPurple="\[\033[1;35m\]" # Purple +BCyan="\[\033[1;36m\]" # Cyan +BWhite="\[\033[1;37m\]" # White + +# Underline +UBlack="\[\033[4;30m\]" # Black +URed="\[\033[4;31m\]" # Red +UGreen="\[\033[4;32m\]" # Green +UYellow="\[\033[4;33m\]" # Yellow +UBlue="\[\033[4;34m\]" # Blue +UPurple="\[\033[4;35m\]" # Purple +UCyan="\[\033[4;36m\]" # Cyan +UWhite="\[\033[4;37m\]" # White + +# Background +On_Black="\[\033[40m\]" # Black +On_Red="\[\033[41m\]" # Red +On_Green="\[\033[42m\]" # Green +On_Yellow="\[\033[43m\]" # Yellow +On_Blue="\[\033[44m\]" # Blue +On_Purple="\[\033[45m\]" # Purple +On_Cyan="\[\033[46m\]" # Cyan +On_White="\[\033[47m\]" # White + +# High Intensty +IBlack="\[\033[0;90m\]" # Black +IRed="\[\033[0;91m\]" # Red +IGreen="\[\033[0;92m\]" # Green +IYellow="\[\033[0;93m\]" # Yellow +IBlue="\[\033[0;94m\]" # Blue +IPurple="\[\033[0;95m\]" # Purple +ICyan="\[\033[0;96m\]" # Cyan +IWhite="\[\033[0;97m\]" # White + +# Bold High Intensty +BIBlack="\[\033[1;90m\]" # Black +BIRed="\[\033[1;91m\]" # Red +BIGreen="\[\033[1;92m\]" # Green +BIYellow="\[\033[1;93m\]" # Yellow +BIBlue="\[\033[1;94m\]" # Blue +BIPurple="\[\033[1;95m\]" # Purple +BICyan="\[\033[1;96m\]" # Cyan +BIWhite="\[\033[1;97m\]" # White + +# High Intensty backgrounds +On_IBlack="\[\033[0;100m\]" # Black +On_IRed="\[\033[0;101m\]" # Red +On_IGreen="\[\033[0;102m\]" # Green +On_IYellow="\[\033[0;103m\]" # Yellow +On_IBlue="\[\033[0;104m\]" # Blue +On_IPurple="\[\033[10;95m\]" # Purple +On_ICyan="\[\033[0;106m\]" # Cyan +On_IWhite="\[\033[0;107m\]" # White diff --git a/bash/bashrc b/bash/bashrc new file mode 100644 index 0000000..f6f5eef --- /dev/null +++ b/bash/bashrc @@ -0,0 +1,53 @@ +# User dependent .bashrc file +# If not running interactively, don't do anything + +[[ "$-" != *i* ]] && return + +# Various variables you might want for your PS1 prompt instead +Time12h="\T" +Time12a="\@" +PathShort="\w" +PathFull="\W" +NewLine="\n" +Jobs="\j" + +# Shell Options +set -o notify +set -o ignoreeof +shopt -s nocaseglob +shopt -s histappend +shopt -s cdspell + +# Completion options +COMP_CVS_REMOTE=1 +COMP_CONFIGURE_HINTS=1 +COMP_TAR_INTERNAL_PATHS=1 + +[[ -f /etc/bash_completion ]] && . /etc/bash_completion + +# Aliases + +if [ -f "${HOME}/.bash_aliases" ]; then + source "${HOME}/.bash_aliases" +fi + + +if [ -f "${HOME}/.bash_colors" ]; then + source "${HOME}/.bash_colors" +fi + + +# Display the current git branch in the command prompt +if [ "$EUID" -ne 0 ]; then + export PS1="$BWhite[$BGreen\u$BWhite@$BBlue\h $BYellow\w $BWhite]\$ " +else + export PS1="$BWhite[$BRed\u$BWhite@$BBlue\h $BYellow\w $BWhite]\$ " +fi + +if [ -e /usr/share/terminfo/x/xterm-256color ] && [ "$COLORTERM" == "xfce4-terminal" ]; then + export TERM=xterm-256color +fi + +if [[ -n "$DISPLAY" && "$TERM" = "xterm" ]]; then + export TERM=xterm-256color +fi diff --git a/config/alacritty/alacritty.toml b/config/alacritty/alacritty.toml new file mode 100644 index 0000000..6dd1c6a --- /dev/null +++ b/config/alacritty/alacritty.toml @@ -0,0 +1 @@ +import = ["~/.config/alacritty/gnome_terminal.toml"] diff --git a/config/alacritty/dracula.toml b/config/alacritty/dracula.toml new file mode 100644 index 0000000..0a56c29 --- /dev/null +++ b/config/alacritty/dracula.toml @@ -0,0 +1,76 @@ +# Dracula theme for Alacritty +# https://draculatheme.com/alacritty +# +# Color palette +# https://spec.draculatheme.com +# +# Instructions +# https://github.com/alacritty/alacritty/blob/master/extra/man/alacritty.5.scd + +[colors.primary] + +background = "#282a36" +foreground = "#f8f8f2" +bright_foreground = "#ffffff" + +[colors.cursor] + +text = "#282a36" +cursor = "#f8f8f2" + +[colors.vi_mode_cursor] + +text = "CellBackground" +cursor = "CellForeground" + +[colors.selection] + +text = "CellForeground" +background = "#44475a" + +[colors.normal] + +black = "#21222c" +red = "#ff5555" +green = "#50fa7b" +yellow = "#f1fa8c" +blue = "#bd93f9" +magenta = "#ff79c6" +cyan = "#8be9fd" +white = "#f8f8f2" + +[colors.bright] + +black = "#6272a4" +red = "#ff6e6e" +green = "#69ff94" +yellow = "#ffffa5" +blue = "#d6acff" +magenta = "#ff92df" +cyan = "#a4ffff" +white = "#ffffff" + +[colors.search.matches] + +foreground = "#44475a" +background = "#50fa7b" + +[colors.search.focused_match] + +foreground = "#44475a" +background = "#ffb86c" + +[colors.footer_bar] + +background = "#282a36" +foreground = "#f8f8f2" + +[colors.hints.start] + +foreground = "#282a36" +background = "#f1fa8c" + +[colors.hints.end] + +foreground = "#f1fa8c" +background = "#282a36" diff --git a/config/alacritty/gnome_terminal.toml b/config/alacritty/gnome_terminal.toml new file mode 100644 index 0000000..a6d21fb --- /dev/null +++ b/config/alacritty/gnome_terminal.toml @@ -0,0 +1,28 @@ +# Gnome (Gnome Terminal Default) + +# Default colors +[colors.primary] +background = '#1e1e1e' +foreground = '#ffffff' + +# Normal colors +[colors.normal] +black = '#171421' +red = '#c01c28' +green = '#26a269' +yellow = '#a2734c' +blue = '#12488b' +magenta = '#a347ba' +cyan = '#2aa1b3' +white = '#d0cfcc' + +# Bright colors +[colors.bright] +black = '#5e5c64' +red = '#f66151' +green = '#33d17a' +yellow = '#e9ad0c' +blue = '#2a7bde' +magenta = '#c061cb' +cyan = '#33c7de' +white = '#ffffff' diff --git a/config/alacritty/hyper.toml b/config/alacritty/hyper.toml new file mode 100644 index 0000000..89256b2 --- /dev/null +++ b/config/alacritty/hyper.toml @@ -0,0 +1,32 @@ +# Colors (Hyper) + +# Default colors +[colors.primary] +background = '#000000' +foreground = '#ffffff' + +[colors.cursor] +text = '#F81CE5' +cursor = '#ffffff' + +# Normal colors +[colors.normal] +black = '#000000' +red = '#fe0100' +green = '#33ff00' +yellow = '#feff00' +blue = '#0066ff' +magenta = '#cc00ff' +cyan = '#00ffff' +white = '#d0d0d0' + +# Bright colors +[colors.bright] +black = '#808080' +red = '#fe0100' +green = '#33ff00' +yellow = '#feff00' +blue = '#0066ff' +magenta = '#cc00ff' +cyan = '#00ffff' +white = '#FFFFFF' diff --git a/config/awesome/autostart.sh b/config/awesome/autostart.sh new file mode 100755 index 0000000..e9ae2c6 --- /dev/null +++ b/config/awesome/autostart.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +function run { + if ! pgrep -f $1 ; + then + $@& + fi +} + +run /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 +run nm-applet +run parcellite +#run picom --config $HOME/.config/picom/picom.conf diff --git a/config/awesome/rc.lua b/config/awesome/rc.lua new file mode 100644 index 0000000..0e33ae6 --- /dev/null +++ b/config/awesome/rc.lua @@ -0,0 +1,646 @@ +-- If LuaRocks is installed, make sure that packages installed through it are +-- found (e.g. lgi). If LuaRocks is not installed, do nothing. +pcall(require, "luarocks.loader") + +-- Standard awesome library +local gears = require("gears") +local awful = require("awful") +require("awful.autofocus") +-- Widget and layout library +local wibox = require("wibox") +-- Theme handling library +local beautiful = require("beautiful") +-- Notification library +local naughty = require("naughty") +local menubar = require("menubar") +local hotkeys_popup = require("awful.hotkeys_popup") +-- Enable hotkeys help widget for VIM and other apps +-- when client with a matching name is opened: +require("awful.hotkeys_popup.keys") +local volume_widget = require('awesome-wm-widgets.pactl-widget.volume') + + +local blacklisted_snid = setmetatable({}, {__mode = "v" }) + + +-- {{{ Error handling +-- Check if awesome encountered an error during startup and fell back to +-- another config (This code will only ever execute for the fallback config) +if awesome.startup_errors then + naughty.notify({ preset = naughty.config.presets.critical, + title = "Oops, there were errors during startup!", + text = awesome.startup_errors }) +end + +-- Handle runtime errors after startup +do + local in_error = false + awesome.connect_signal("debug::error", function (err) + -- Make sure we don't go into an endless error loop + if in_error then return end + in_error = true + + naughty.notify({ preset = naughty.config.presets.critical, + title = "Oops, an error happened!", + text = tostring(err) }) + in_error = false + end) +end +-- }}} + +-- {{{ Variable definitions +-- Themes define colours, icons, font and wallpapers. +-- beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua") +beautiful.init("~/.config/awesome/theme.lua") + +-- This is used later as the default terminal and editor to run. +terminal = "lxterminal" +editor = os.getenv("EDITOR") or "vim" +editor_cmd = terminal .. " -e " .. editor + +-- Default modkey. +-- Usually, Mod4 is the key with a logo between Control and Alt. +-- If you do not like this or do not have such a key, +-- I suggest you to remap Mod4 to another key using xmodmap or other tools. +-- However, you can use another modifier like Mod1, but it may interact with others. +modkey = "Mod4" + +local l = awful.layout.suit +awful.layout.layouts = { + awful.layout.suit.floating, + awful.layout.suit.tile, + awful.layout.suit.tile.left, + awful.layout.suit.tile.bottom, + awful.layout.suit.tile.top, + awful.layout.suit.fair, + awful.layout.suit.fair.horizontal, + awful.layout.suit.spiral, + awful.layout.suit.spiral.dwindle, + awful.layout.suit.max, + awful.layout.suit.max.fullscreen, + awful.layout.suit.magnifier, + awful.layout.suit.corner.nw, + -- awful.layout.suit.corner.ne, + -- awful.layout.suit.corner.sw, + -- awful.layout.suit.corner.se, +} +-- }}} + +-- {{{ Menu +-- Create a launcher widget and a main menu +myawesomemenu = { + { "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end }, + { "manual", terminal .. " -e man awesome" }, + { "edit config", editor_cmd .. " " .. awesome.conffile }, + { "restart", awesome.restart }, + { "quit", function() awesome.quit() end }, +} + +mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon }, + { "open terminal", terminal } + } + }) + +mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon, + menu = mymainmenu }) + +-- Menubar configuration +menubar.utils.terminal = terminal -- Set the terminal for applications that require it +-- }}} + +-- Keyboard map indicator and switcher +-- mykeyboardlayout = awful.widget.keyboardlayout() +-- This is for my current year calendar. I did not feel like setting a reminder to update this every Jan. 1. In 2023, this caused some confusion because it did not roll over automatically. +yr = os.date("%Y") + +-- My popup calendar, source adapted from: https://pavelmakhov.com/2017/03/calendar-widget-for-awesome +function cal_notify(cal_pref, pref_screen) + if cal_notification == nil then + awful.spawn.easy_async([[bash -c "]]..cal_pref..[[ | sed 's/_.\(.\)/+\1-/g;s/$//g;/]]..yr..[[$/d'"]], + function(stdout, stderr, reason, exit_code) + cal_notification = naughty.notify { + text = string.gsub(string.gsub(stdout, "+", ""), "-", ""), + timeout = 0, + margin = 20, + font = "Hack Nerd Font", + screen = pref_screen, + width = auto, + destroy = function() cal_notification = nil end + } + end) + else + naughty.destroy(cal_notification) + -- naughty.destroy_all_notifications() + end +end + +-- Create a textclock widget and attach calendar to it on click. +local mytextclock = wibox.widget.textclock (" %d %b %I:%M %p ") +mytextclock:connect_signal("button::release", function() cal_notify("cal "..yr) end) + +-- Create a wibox for each screen and add it +local taglist_buttons = gears.table.join( + awful.button({ }, 1, function(t) t:view_only() end), + awful.button({ modkey }, 1, function(t) + if client.focus then + client.focus:move_to_tag(t) + end + end), + awful.button({ }, 3, awful.tag.viewtoggle), + awful.button({ modkey }, 3, function(t) + if client.focus then + client.focus:toggle_tag(t) + end + end), + awful.button({ }, 4, function(t) awful.tag.viewnext(t.screen) end), + awful.button({ }, 5, function(t) awful.tag.viewprev(t.screen) end) + ) + +local tasklist_buttons = gears.table.join( + awful.button({ }, 1, function (c) + if c == client.focus then + c.minimized = true + else + c:emit_signal( + "request::activate", + "tasklist", + {raise = true} + ) + end + end), + awful.button({ }, 3, function() + awful.menu.client_list({ theme = { width = 250 } }) + end), + awful.button({ }, 4, function () + awful.client.focus.byidx(1) + end), + awful.button({ }, 5, function () + awful.client.focus.byidx(-1) + end)) + +local function set_wallpaper(s) + -- Wallpaper + if beautiful.wallpaper then + local wallpaper = beautiful.wallpaper + -- If wallpaper is a function, call it with the screen + if type(wallpaper) == "function" then + wallpaper = wallpaper(s) + end + gears.wallpaper.maximized(wallpaper, s, true) + end +end + +-- Re-set wallpaper when a screen's geometry changes (e.g. different resolution) +screen.connect_signal("property::geometry", set_wallpaper) + +-- These are my tag names. +web="WEB" +term="TERM" +mis="MIS" +news="NEWS" +irc="IRC" +mus="MUS" +pir="PIR" +mov="MOV" +gam="GAM" + + +awful.screen.connect_for_each_screen(function(s) + set_wallpaper(s) + + -- Set my tags for each screen with their own preferred layouts. + awful.tag.add(web, { layout = l.spiral, screen = s, selected = true, }) + awful.tag.add(term, { layout = l.spiral, screen = s, }) + awful.tag.add(mis, { layout = l.spiral, screen = s, }) + + if s.index == 1 then + awful.tag.add(news, { layout = l.spiral, screen = s, }) + awful.tag.add(irc, { layout = l.tile.bottom, screen = s, }) + awful.tag.add(mus, { layout = l.tile.bottom, screen = s, }) + awful.tag.add(pir, { layout = l.spiral, screen = s, }) + awful.tag.add(mov, { layout = l.spiral, screen = s, }) + awful.tag.add(gam, { layout = l.spiral, screen = s, }) + end + + + + -- Create an imagebox widget which will contain an icon indicating which layout we're using. + -- We need one layoutbox per screen. + s.mylayoutbox = awful.widget.layoutbox(s) + s.mylayoutbox:buttons(gears.table.join(awful.button({ }, 1, function() awful.layout.inc( 1) end))) + + -- Create a taglist widget + s.mytaglist = awful.widget.taglist { + screen = s, + -- There is no point in showing an empty tag. + -- filter = awful.widget.taglist.filter.noempty, + filter = awful.widget.taglist.filter.all, + buttons = taglist_buttons, + } + + -- Create a tasklist widget + s.mytasklist = awful.widget.tasklist { + screen = s, filter = awful.widget.tasklist.filter.currenttags, buttons = tasklist_buttons, + } + + -- Create the wibox + s.mywibox = awful.wibar({ position = "top", screen = s, height = 25 }) + + + -- Add widgets to the wibox + if s.index == 1 then + -- I only want the system tray, clock, etc. to be on screen one and not on every screen. + s.mywibox:setup { + layout = wibox.layout.align.horizontal, + { layout = wibox.layout.fixed.horizontal, + s.mytaglist, + }, + s.mytasklist, + { layout = wibox.layout.fixed.horizontal, + spacer, + volume_widget{ + widget_type = 'arc' + }, + wibox.widget.systray(), + spacer, + battery_status, + mytextclock, + s.mylayoutbox, + }, + } + else + s.mywibox:setup { + layout = wibox.layout.align.horizontal, + { layout = wibox.layout.fixed.horizontal, + s.mytaglist, + }, + s.mytasklist, + { layout = wibox.layout.fixed.horizontal, + s.mylayoutbox, + }, + } + end +end) + +-- }}}https://wiki.archlinux.org/title/N + +-- {{{ Mouse bindingsxproperty +root.buttons(gears.table.join( + awful.button({ }, 3, function () mymainmenu:toggle() end), + awful.button({ }, 4, awful.tag.viewnext), + awful.button({ }, 5, awful.tag.viewprev) +)) +-- }}} + +-- {{{ Key bindings +globalkeys = gears.table.join( + awful.key({ modkey, }, "s", hotkeys_popup.show_help, + {description="show help", group="awesome"}), + awful.key({ modkey, }, "Left", awful.tag.viewprev, + {description = "view previous", group = "tag"}), + awful.key({ modkey, }, "Right", awful.tag.viewnext, + {description = "view next", group = "tag"}), + awful.key({ modkey, }, "Escape", awful.tag.history.restore, + {description = "go back", group = "tag"}), + + awful.key({ modkey, }, "j", + function () + awful.client.focus.byidx( 1) + end, + {description = "focus next by index", group = "client"} + ), + awful.key({ modkey, }, "k", + function () + awful.client.focus.byidx(-1) + end, + {description = "focus previous by index", group = "client"} + ), + awful.key({ modkey, }, "w", function () mymainmenu:show() end, + {description = "show main menu", group = "awesome"}), + + -- Layout manipulation + awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end, + {description = "swap with next client by index", group = "client"}), + awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end, + {description = "swap with previous client by index", group = "client"}), + awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end, + {description = "focus the next screen", group = "screen"}), + awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end, + {description = "focus the previous screen", group = "screen"}), + awful.key({ modkey, }, "u", awful.client.urgent.jumpto, + {description = "jump to urgent client", group = "client"}), + awful.key({ modkey, }, "Tab", + function () + awful.client.focus.history.previous() + if client.focus then + client.focus:raise() + end + end, + {description = "go back", group = "client"}), + + -- Standard program + awful.key({ modkey, }, "Return", function () awful.spawn(terminal) end, + {description = "open a terminal", group = "launcher"}), + awful.key({ modkey, "Control" }, "r", awesome.restart, + {description = "reload awesome", group = "awesome"}), + awful.key({ modkey, "Shift" }, "q", awesome.quit, + {description = "quit awesome", group = "awesome"}), + + awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end, + {description = "increase master width factor", group = "layout"}), + awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end, + {description = "decrease master width factor", group = "layout"}), + awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1, nil, true) end, + {description = "increase the number of master clients", group = "layout"}), + awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1, nil, true) end, + {description = "decrease the number of master clients", group = "layout"}), + awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1, nil, true) end, + {description = "increase the number of columns", group = "layout"}), + awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end, + {description = "decrease the number of columns", group = "layout"}), + awful.key({ modkey, }, "space", function () awful.layout.inc( 1) end, + {description = "select next", group = "layout"}), + awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end, + {description = "select previous", group = "layout"}), + + awful.key({ modkey, "Control" }, "n", + function () + local c = awful.client.restore() + -- Focus restored client + if c then + c:emit_signal( + "request::activate", "key.unminimize", {raise = true} + ) + end + end, + {description = "restore minimized", group = "client"}), + + -- Prompt + awful.key({ modkey }, "r", + -- function () awful.screen.focused().mypromptbox:run() end, + function () awful.util.spawn("rofi -modi drun -show drun -show-icons -width 32 -no-click-to-exit",false) end, + {description = "run prompt", group = "launcher"}), + + awful.key({ modkey }, "x", + function () + awful.prompt.run { + prompt = "Run Lua code: ", + textbox = awful.screen.focused().mypromptbox.widget, + exe_callback = awful.util.eval, + history_path = awful.util.get_cache_dir() .. "/history_eval" + } + end, + {description = "lua execute prompt", group = "awesome"}), + -- Menubar + awful.key({ modkey }, "p", function() menubar.show() end, + {description = "show the menubar", group = "launcher"}) +) + +clientkeys = gears.table.join( + awful.key({ modkey, }, "f", + function (c) + c.fullscreen = not c.fullscreen + c:raise() + end, + {description = "toggle fullscreen", group = "client"}), + awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end, + {description = "close", group = "client"}), + awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle , + {description = "toggle floating", group = "client"}), + awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end, + {description = "move to master", group = "client"}), + awful.key({ modkey, }, "o", function (c) c:move_to_screen() end, + {description = "move to screen", group = "client"}), + awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end, + {description = "toggle keep on top", group = "client"}), + awful.key({ modkey, }, "n", + function (c) + -- The client currently has the input focus, so it cannot be + -- minimized, since minimized clients can't have the focus. + c.minimized = true + end , + {description = "minimize", group = "client"}), + awful.key({ modkey, }, "m", + function (c) + c.maximized = not c.maximized + c:raise() + end , + {description = "(un)maximize", group = "client"}), + awful.key({ modkey, "Control" }, "m", + function (c) + c.maximized_vertical = not c.maximized_vertical + c:raise() + end , + {description = "(un)maximize vertically", group = "client"}), + awful.key({ modkey, "Shift" }, "m", + function (c) + c.maximized_horizontal = not c.maximized_horizontal + c:raise() + end , + {description = "(un)maximize horizontally", group = "client"}) +) + +-- Bind all key numbers to tags. +-- Be careful: we use keycodes to make it work on any keyboard layout. +-- This should map on the top row of your keyboard, usually 1 to 9. +for i = 1, 9 do + globalkeys = gears.table.join(globalkeys, + -- View tag only. + awful.key({ modkey }, "#" .. i + 9, + function () + local screen = awful.screen.focused() + local tag = screen.tags[i] + if tag then + tag:view_only() + end + end, + {description = "view tag #"..i, group = "tag"}), + -- Toggle tag display. + awful.key({ modkey, "Control" }, "#" .. i + 9, + function () + local screen = awful.screen.focused() + local tag = screen.tags[i] + if tag then + awful.tag.viewtoggle(tag) + end + end, + {description = "toggle tag #" .. i, group = "tag"}), + -- Move client to tag. + awful.key({ modkey, "Shift" }, "#" .. i + 9, + function () + if client.focus then + local tag = client.focus.screen.tags[i] + if tag then + client.focus:move_to_tag(tag) + end + end + end, + {description = "move focused client to tag #"..i, group = "tag"}), + -- Toggle tag on focused client. + awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, + function () + if client.focus then + local tag = client.focus.screen.tags[i] + if tag then + client.focus:toggle_tag(tag) + end + end + end, + {description = "toggle focused client on tag #" .. i, group = "tag"}) + ) +end + +clientbuttons = gears.table.join( + awful.button({ }, 1, function (c) + c:emit_signal("request::activate", "mouse_click", {raise = true}) + end), + awful.button({ modkey }, 1, function (c) + c:emit_signal("request::activate", "mouse_click", {raise = true}) + awful.mouse.client.move(c) + end), + awful.button({ modkey }, 3, function (c) + c:emit_signal("request::activate", "mouse_click", {raise = true}) + awful.mouse.client.resize(c) + end) +) + +-- Set keys +root.keys(globalkeys) +-- }}} + +-- {{{ Rules +-- Rules to apply to new clients (through the "manage" signal). +awful.rules.rules = { + -- All clients will match this rule. + { rule = { }, + properties = { border_width = beautiful.border_width, + border_color = beautiful.border_normal, + focus = awful.client.focus.filter, + raise = true, + keys = clientkeys, + buttons = clientbuttons, + screen = awful.screen.preferred, + placement = awful.placement.no_overlap+awful.placement.no_offscreen + } + }, + + -- Floating clients. + { rule_any = { + instance = { + "DTA", -- Firefox addon DownThemAll. + "copyq", -- Includes session name in class. + "pinentry", + }, + class = { + "Arandr", + "Blueman-manager", + "Gpick", + "Kruler", + "MessageWin", -- kalarm. + "Sxiv", + "Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size. + "Wpa_gui", + "veromix", + "xtightvncviewer"}, + + -- Note that the name property shown in xprop might be set slightly after creation of the client + -- and the name shown there might not match defined rules here. + name = { + "Event Tester", -- xev. + }, + role = { + "AlarmWindow", -- Thunderbird's calendar. + "ConfigManager", -- Thunderbird's about:config. + "pop-up", -- e.g. Google Chrome's (detached) Developer Tools. + } + }, properties = { floating = true }}, + + -- Add titlebars to normal clients and dialogs + { rule_any = {type = { "normal", "dialog" } + }, properties = { titlebars_enabled = false } + }, + -- Set Firefox to always map on the tag named "2" on screen 1. + -- { rule = { class = "Firefox" }, + -- properties = { screen = 1, tag = "2" } }, + + -- { rule = { class = "Lxterminal" }, + -- properties = { + -- screen = "HDMI-0", + -- tags = "WEB"} + -- }, + + +} +-- }}} + +-- {{{ Signals +-- Signal function to execute when a new client appears. +client.connect_signal("manage", function (c) + -- Set the windows at the slave, + -- i.e. put it at the end of others instead of setting it master. + if not awesome.startup then awful.client.setslave(c) end + + if awesome.startup + and not c.size_hints.user_position + and not c.size_hints.program_position then + -- Prevent clients from being unreachable after screen count changes. + awful.placement.no_offscreen(c) + end +end) + +-- Add a titlebar if titlebars_enabled is set to true in the rules. +client.connect_signal("request::titlebars", function(c) + -- buttons for the titlebar + local buttons = gears.table.join( + awful.button({ }, 1, function() + c:emit_signal("request::activate", "titlebar", {raise = true}) + awful.mouse.client.move(c) + end), + awful.button({ }, 3, function() + c:emit_signal("request::activate", "titlebar", {raise = true}) + awful.mouse.client.resize(c) + end) + ) + + awful.titlebar(c) : setup { + { -- Left + awful.titlebar.widget.iconwidget(c), + buttons = buttons, + layout = wibox.layout.fixed.horizontal + }, + { -- Middle + { -- Title + align = "center", + widget = awful.titlebar.widget.titlewidget(c) + }, + buttons = buttons, + layout = wibox.layout.flex.horizontal + }, + { -- Right + awful.titlebar.widget.floatingbutton (c), + awful.titlebar.widget.maximizedbutton(c), + awful.titlebar.widget.stickybutton (c), + awful.titlebar.widget.ontopbutton (c), + awful.titlebar.widget.closebutton (c), + layout = wibox.layout.fixed.horizontal() + }, + layout = wibox.layout.align.horizontal + } +end) + +-- Enable sloppy focus, so that focus follows mouse. +client.connect_signal("mouse::enter", function(c) + c:emit_signal("request::activate", "mouse_enter", {raise = false}) +end) + +client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end) +client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end) +-- }}} + +-- Autostart applications +-- awful.spawn.once("qutebrowser", {unique_id = "Qutebrowser" }) +-- awful.spawn(terminal, { tag = "MIS" }) +-- awful.spawn("microsoft-edge-dev", { tags = "WEB" }) +awful.spawn.with_shell("$HOME/.config/awesome/autostart.sh") + + diff --git a/config/awesome/theme.lua b/config/awesome/theme.lua new file mode 100644 index 0000000..ca62cad --- /dev/null +++ b/config/awesome/theme.lua @@ -0,0 +1,131 @@ +--------------------------- +-- Default awesome theme -- +--------------------------- + +local theme_assets = require("beautiful.theme_assets") +local xresources = require("beautiful.xresources") +local dpi = xresources.apply_dpi + +local gfs = require("gears.filesystem") +local themes_path = gfs.get_themes_dir() + +local theme = {} + +theme.font = "Hack Nerd Font" + +theme.bg_normal = "#222222" +theme.bg_focus = "#535d6c" +theme.bg_urgent = "#ff0000" +theme.bg_minimize = "#444444" +theme.bg_systray = theme.bg_normal + +theme.fg_normal = "#aaaaaa" +theme.fg_focus = "#ffffff" +theme.fg_urgent = "#ffffff" +theme.fg_minimize = "#ffffff" + +theme.useless_gap = dpi(0) +theme.border_width = dpi(1) +theme.border_normal = "#000000" +theme.border_focus = "#535d6c" +theme.border_marked = "#91231c" + +-- There are other variable sets +-- overriding the default one when +-- defined, the sets are: +-- taglist_[bg|fg]_[focus|urgent|occupied|empty|volatile] +-- tasklist_[bg|fg]_[focus|urgent] +-- titlebar_[bg|fg]_[normal|focus] +-- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color] +-- mouse_finder_[color|timeout|animate_timeout|radius|factor] +-- prompt_[fg|bg|fg_cursor|bg_cursor|font] +-- hotkeys_[bg|fg|border_width|border_color|shape|opacity|modifiers_fg|label_bg|label_fg|group_margin|font|description_font] +-- Example: +--theme.taglist_bg_focus = "#ff0000" + +-- Generate taglist squares: +local taglist_square_size = dpi(4) +theme.taglist_squares_sel = theme_assets.taglist_squares_sel( + taglist_square_size, theme.fg_normal +) +theme.taglist_squares_unsel = theme_assets.taglist_squares_unsel( + taglist_square_size, theme.fg_normal +) + +-- Variables set for theming notifications: +-- notification_font +-- notification_[bg|fg] +-- notification_[width|height|margin] +-- notification_[border_color|border_width|shape|opacity] + +-- Variables set for theming the menu: +-- menu_[bg|fg]_[normal|focus] +-- menu_[border_color|border_width] +theme.menu_submenu_icon = themes_path.."default/submenu.png" +theme.menu_height = dpi(15) +theme.menu_width = dpi(100) + +-- You can add as many variables as +-- you wish and access them by using +-- beautiful.variable in your rc.lua +--theme.bg_widget = "#cc0000" + +-- Define the image to load +theme.titlebar_close_button_normal = themes_path.."default/titlebar/close_normal.png" +theme.titlebar_close_button_focus = themes_path.."default/titlebar/close_focus.png" + +theme.titlebar_minimize_button_normal = themes_path.."default/titlebar/minimize_normal.png" +theme.titlebar_minimize_button_focus = themes_path.."default/titlebar/minimize_focus.png" + +theme.titlebar_ontop_button_normal_inactive = themes_path.."default/titlebar/ontop_normal_inactive.png" +theme.titlebar_ontop_button_focus_inactive = themes_path.."default/titlebar/ontop_focus_inactive.png" +theme.titlebar_ontop_button_normal_active = themes_path.."default/titlebar/ontop_normal_active.png" +theme.titlebar_ontop_button_focus_active = themes_path.."default/titlebar/ontop_focus_active.png" + +theme.titlebar_sticky_button_normal_inactive = themes_path.."default/titlebar/sticky_normal_inactive.png" +theme.titlebar_sticky_button_focus_inactive = themes_path.."default/titlebar/sticky_focus_inactive.png" +theme.titlebar_sticky_button_normal_active = themes_path.."default/titlebar/sticky_normal_active.png" +theme.titlebar_sticky_button_focus_active = themes_path.."default/titlebar/sticky_focus_active.png" + +theme.titlebar_floating_button_normal_inactive = themes_path.."default/titlebar/floating_normal_inactive.png" +theme.titlebar_floating_button_focus_inactive = themes_path.."default/titlebar/floating_focus_inactive.png" +theme.titlebar_floating_button_normal_active = themes_path.."default/titlebar/floating_normal_active.png" +theme.titlebar_floating_button_focus_active = themes_path.."default/titlebar/floating_focus_active.png" + +theme.titlebar_maximized_button_normal_inactive = themes_path.."default/titlebar/maximized_normal_inactive.png" +theme.titlebar_maximized_button_focus_inactive = themes_path.."default/titlebar/maximized_focus_inactive.png" +theme.titlebar_maximized_button_normal_active = themes_path.."default/titlebar/maximized_normal_active.png" +theme.titlebar_maximized_button_focus_active = themes_path.."default/titlebar/maximized_focus_active.png" + +theme.wallpaper = "~/.config/awesome/wallpapers/debian-wallpaper.jpg" + +-- You can use your own layout icons like this: +theme.layout_fairh = themes_path.."default/layouts/fairhw.png" +theme.layout_fairv = themes_path.."default/layouts/fairvw.png" +theme.layout_floating = themes_path.."default/layouts/floatingw.png" +theme.layout_magnifier = themes_path.."default/layouts/magnifierw.png" +theme.layout_max = themes_path.."default/layouts/maxw.png" +theme.layout_fullscreen = themes_path.."default/layouts/fullscreenw.png" +theme.layout_tilebottom = themes_path.."default/layouts/tilebottomw.png" +theme.layout_tileleft = themes_path.."default/layouts/tileleftw.png" +theme.layout_tile = themes_path.."default/layouts/tilew.png" +theme.layout_tiletop = themes_path.."default/layouts/tiletopw.png" +theme.layout_spiral = themes_path.."default/layouts/spiralw.png" +theme.layout_dwindle = themes_path.."default/layouts/dwindlew.png" +theme.layout_cornernw = themes_path.."default/layouts/cornernww.png" +theme.layout_cornerne = themes_path.."default/layouts/cornernew.png" +theme.layout_cornersw = themes_path.."default/layouts/cornersww.png" +theme.layout_cornerse = themes_path.."default/layouts/cornersew.png" + +-- Generate Awesome icon: +theme.awesome_icon = theme_assets.awesome_icon( + theme.menu_height, theme.bg_focus, theme.fg_focus +) + +-- Define the icon theme for application icons. If not set then the icons +-- from /usr/share/icons and /usr/share/icons/hicolor will be used. +theme.icon_theme = nil + +return theme + +-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80 diff --git a/config/awesome/wallpapers/debian-wallpaper.jpg b/config/awesome/wallpapers/debian-wallpaper.jpg new file mode 100644 index 0000000000000000000000000000000000000000..32cc04c2d0b26a618dbdbe1c21d7b0d7dbc59ac9 GIT binary patch literal 449808 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�NUq+ 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
^L|b%q*5p0{w)$Fp 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 q3jMhg2@Dff&Cn +new_tab_accel=t +close_tab_accel=w +close_window_accel=q +copy_accel=c +paste_accel=v +name_tab_accel=i +previous_tab_accel=Page_Up +next_tab_accel=Page_Down +move_tab_left_accel=Page_Up +move_tab_right_accel=Page_Down +zoom_in_accel=plus +zoom_out_accel=underscore +zoom_reset_accel=parenright diff --git a/config/mpd/mpd.conf b/config/mpd/mpd.conf new file mode 100644 index 0000000..bf329d6 --- /dev/null +++ b/config/mpd/mpd.conf @@ -0,0 +1,21 @@ +music_directory "~/Music" +playlist_directory "~/.config/mpd/playlists" + +auto_update "yes" +bind_to_address "127.0.0.1" +restore_paused "yes" +max_output_buffer_size "16384" + +audio_output { + type "pulse" + name "pulse" + #type "alsa" + #name "ALSA" +} + +audio_output { + type "fifo" + name "Visualizer feed" + path "/tmp/mpd.fifo" + format "44100:16:2" +} diff --git a/config/newsboat/config b/config/newsboat/config new file mode 100644 index 0000000..60c7a6a --- /dev/null +++ b/config/newsboat/config @@ -0,0 +1,28 @@ + +auto-reload yes +download-path "~/Music/%h/%n" +max-downloads 3 +player "ncmpcpp" + + +browser qutebrowser +macro i set browser "feh %u"; open-in-browser ; set browser "qutebrowser" +macro w set browser "w3m %u"; open-in-browser ; set browser "qutebrowser" + + +# col # item # fg # bg +#color background color7 default # the most bottom bar +#color listnormal color7 default # unfocused and without N +#color listnormal_unread color7 default # unfocused and with N +#color listfocus color7 color8 # focused and without N +#color listfocus_unread color7 color8 bold # focused but with N +#color info color0 color1 # bottom and top info bars +color article color15 default # content of an article + +# highlights +highlight article "^(Feed|Link):.*$" color14 default bold +highlight article "^(Title|Date|Author):.*$" color11 default bold +highlight article "https?://[^ ]+" color12 default underline +highlight article "\\[[0-9]+\\]" color10 default bold +highlight article "\\[image\\ [0-9]+\\]" color9 default bold +highlight article "^(Flags):.*$" color9 default bold diff --git a/config/newsboat/urls b/config/newsboat/urls new file mode 100644 index 0000000..ce75b89 --- /dev/null +++ b/config/newsboat/urls @@ -0,0 +1,31 @@ +# starred Articles +# ctrl-e to flag, s-enter to star it. +# ctrl-e, delete to remove flag +"query:Starred:flags # \"s\"" +"query:Unread:unread = \"yes\"" + +# (Reddit) +# https://reddit.com/r/antiwork.rss "~antiwork" "(Reddit)" +https://reddit.com/r/archlinux.rss "~archlinux" "(Reddit)" +https://reddit.com/r/awesomewm.rss "~awesomewm" "(Reddit)" +https://reddit.com/r/debian.rss "~debian" "(Reddit)" +https://reddit.com/r/devops.rss "~devops" "(Reddit)" +https://reddit.com/r/homelab.rss "~homelab" "(Reddit)" +https://reddit.com/r/linux.rss "~linux" "(Reddit)" +https://reddit.com/r/linuxadmin.rss "~linuxadamin" "(Reddit)" +https://reddit.com/r/powershell.rss "~powershell" "(Reddit)" +https://reddit.com/r/proxmox.rss "~proxmox" "(Reddit)" +https://reddit.com/r/selfhosted.rss "~selfhosted" "(Reddit)" +https://reddit.com/r/sysadmin.rss "~sysadmin" "(Reddit)" + +# (Blogs) +https://blog.devolutions.net/feed/rss.xml "~devolutions" "(Blogs)" + +# (News) +https://www.news.com.au/content-feeds/latest-news-national/ "~newscomau" "(News)" +https://archlinux.org/feeds/news/ "~archlinuxnews" "(News)" + +# (Podcasts) +https://selfhosted.show/rss "~self-hosted" "(Podcasts)" +https://linuxunplugged.com/rss "~linuxunplugged" "(Podcasts)" +https://linuxactionnews.com/rss "~linuxactionnews" "(Podcasts)" diff --git a/config/picom/picom.conf b/config/picom/picom.conf new file mode 100644 index 0000000..a9b1864 --- /dev/null +++ b/config/picom/picom.conf @@ -0,0 +1,257 @@ +# Thank you code_nomad: http://9m.no/ꪯ鵞 +# and Arch Wiki contributors: https://wiki.archlinux.org/index.php/Compton + +################################# +# +# Backend +# +################################# + +# Backend to use: "xrender" or "glx". +# GLX backend is typically much faster but depends on a sane driver. +backend = "glx"; + +################################# +# +# GLX backend +# +################################# + +glx-no-stencil = true; + +# GLX backend: Copy unmodified regions from front buffer instead of redrawing them all. +# My tests with nvidia-drivers show a 10% decrease in performance when the whole screen is modified, +# but a 20% increase when only 1/4 is. +# My tests on nouveau show terrible slowdown. +glx-copy-from-front = false; + +# GLX backend: Use MESA_copy_sub_buffer to do partial screen update. +# My tests on nouveau shows a 200% performance boost when only 1/4 of the screen is updated. +# May break VSync and is not available on some drivers. +# Overrides --glx-copy-from-front. +# glx-use-copysubbuffermesa = true; + +# GLX backend: Avoid rebinding pixmap on window damage. +# Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe). +# Recommended if it works. +glx-no-rebind-pixmap = true; + +# GLX backend: GLX buffer swap method we assume. +# Could be undefined (0), copy (1), exchange (2), 3-6, or buffer-age (-1). +# undefined is the slowest and the safest, and the default value. +# copy is fastest, but may fail on some drivers, +# 2-6 are gradually slower but safer (6 is still faster than 0). +# Usually, double buffer means 2, triple buffer means 3. +# buffer-age means auto-detect using GLX_EXT_buffer_age, supported by some drivers. +# Useless with --glx-use-copysubbuffermesa. +# Partially breaks --resize-damage. +# Defaults to undefined. +#glx-swap-method = "undefined"; +round-borders = 15; + +################################# +# +# Shadows +# +################################# + +# Enabled client-side shadows on windows. +shadow = true; +# The blur radius for shadows. (default 12) +shadow-radius = 14; +# The left offset for shadows. (default -15) +shadow-offset-x = -7; +# The top offset for shadows. (default -15) +shadow-offset-y = -7; +# The translucency for shadows. (default .75) +shadow-opacity = .75; + +# Set if you want different colour shadows +# shadow-red = 0.0; +# shadow-green = 0.0; +# shadow-blue = 0.0; + +# The shadow exclude options are helpful if you have shadows enabled. Due to the way picom draws its shadows, certain applications will have visual glitches +# (most applications are fine, only apps that do weird things with xshapes or argb are affected). +# This list includes all the affected apps I found in my testing. The "! name~=''" part excludes shadows on any "Unknown" windows, this prevents a visual glitch with the XFWM alt tab switcher. +shadow-exclude = [ + "! name~=''", + "name = 'Notification'", + "name = 'Plank'", + "name = 'Docky'", + "name = 'Kupfer'", + "name = 'xfce4-notifyd'", + "name = 'cpt_frame_window'", + "name *= 'VLC'", + "name *= 'compton'", + "name *= 'picom'", + "name *= 'Chromium'", + "name *= 'Chrome'", + "name *= 'conky'", + "class_g = 'Firefox' && argb", + "class_g = 'Conky'", + "class_g = 'Kupfer'", + "class_g = 'Synapse'", + "class_g ?= 'Notify-osd'", + "class_g ?= 'Cairo-dock'", + "class_g ?= 'Xfce4-notifyd'", + "class_g ?= 'Xfce4-power-manager'", + "class_g ?= 'ulauncher'", + "class_g ?= 'rofi'", + "_GTK_FRAME_EXTENTS@:c", + "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'" +]; + +# Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners) +shadow-ignore-shaped = false; + +################################# +# +# Opacity +# +################################# + +inactive-opacity = 1; +active-opacity = 1; +frame-opacity = 1; +inactive-opacity-override = false; +opacity-rule = [ + "80:class_g = 'copyq'", + "90:name = 'alttab'", + # no opacity on sticky windows + "99:_NET_WM_STATE@:32a *= '_NET_WM_STATE_STICKY'", + "75:class_g = 'kitty'" + +]; + +# Dim inactive windows. (0.0 - 1.0) +inactive-dim = 0.05; + +# Do not let dimness adjust based on window opacity. +# inactive-dim-fixed = true; +# Blur background of transparent windows. Bad performance with X Render backend. GLX backend is preferred. +blur-background = false; +# Blur background of opaque windows with transparent frames as well. +#blur-background-frame = true; +# Do not let blur radius adjust based on window opacity. +blur-background-fixed = false; +blur-background-exclude = [ + "window_type = 'dock'", + "window_type = 'desktop'" +]; + +################################# +# +# Fading +# +################################# + +# Fade windows during opacity changes. +fading = true; +# The time between steps in a fade in milliseconds. (default 10). +#fade-delta = 4; +#fade-delta = 10; +# Opacity change between steps while fading in. (default 0.028). +#fade-in-step = 0.03; +fade-in-step = 0.056; +# Opacity change between steps while fading out. (default 0.03). +fade-out-step = 0.06; +# Fade windows in/out when opening/closing +# no-fading-openclose = true; + +# Specify a list of conditions of windows that should not be faded. +fade-exclude = [ + "class_g = 'Conky'" +]; + +################################# +# +# Other +# +################################# + +# Try to detect WM windows and mark them as active. +mark-wmwin-focused = true; +# Mark all non-WM but override-redirect windows active (e.g. menus). +mark-ovredir-focused = true; +# Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused instead of using FocusIn/Out events. +# Usually more reliable but depends on a EWMH-compliant WM. +use-ewmh-active-win = true; +# Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on. +detect-rounded-corners = false; + +# Detect _NET_WM_OPACITY on client windows, useful for window managers not passing _NET_WM_OPACITY of client windows to frame windows. +# This prevents opacity being ignored for some apps. +# For example without this enabled my xfce4-notifyd is 100% opacity no matter what. +detect-client-opacity = true; + +# Vertical synchronization: match the refresh rate of the monitor +vsync = true; + +# Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing. +# Reported to have no effect, though. +dbe = false; + +# Limit picom to repaint at most once every 1 / refresh_rate second to boost performance. +# This should not be used with --vsync drm/opengl/opengl-oml as they essentially does --sw-opti's job already, +# unless you wish to specify a lower refresh rate than the actual value. +#sw-opti = true; + +# Unredirect all windows if a full-screen opaque window is detected, to maximize performance for full-screen windows, like games. +# Known to cause flickering when redirecting/unredirecting windows. +unredir-if-possible = false; + +# Specify a list of conditions of windows that should always be considered focused. +focus-exclude = [ + "ANTIDIM_FLAG@:8c", + "_NET_WM_STATE@:32a *= '_NET_WM_STATE_STICKY'" +]; + +# Use WM_TRANSIENT_FOR to group windows, and consider windows in the same group focused at the same time. +detect-transient = true; +# Use WM_CLIENT_LEADER to group windows, and consider windows in the same group focused at the same time. +# WM_TRANSIENT_FOR has higher priority if --detect-transient is enabled, too. +detect-client-leader = true; + +################################# +# +# Window type settings +# +################################# + +wintypes: +{ + tooltip = + { + # fade: Fade the particular type of windows. + fade = true; + # shadow: Give those windows shadow + shadow = false; + # opacity: Default opacity for the type of windows. + opacity = 0.85; + # focus: Whether to always consider windows of this type focused. + focus = true; + }; +}; + +###################### +# +# XSync +# See: https://github.com/yshui/picom/commit/b18d46bcbdc35a3b5620d817dd46fbc76485c20d +# +###################### + +# Use X Sync fence to sync clients' draw calls. Needed on nvidia-drivers with GLX backend for some users. +xrender-sync-fence = true; + +animations = true; +animation-stiffness = 300.0; +animation-dampening = 25.0; +animation-clamping = true; +animation-mass = 1; +#animation-window-mass = 1.0; +#animation-delta = 10; +#animation-for-unmap-window = "slide-up"; +animation-for-open-window = "zoom"; +animation-for-menu-window = "slide-down"; +animation-for-transient-window = "slide-down"; diff --git a/config/qutebrowser/config.py b/config/qutebrowser/config.py new file mode 100644 index 0000000..30c8bb2 --- /dev/null +++ b/config/qutebrowser/config.py @@ -0,0 +1,136 @@ +# Autogenerated config.py +# +# NOTE: config.py is intended for advanced users who are comfortable +# with manually migrating the config file on qutebrowser upgrades. If +# you prefer, you can also configure qutebrowser using the +# :set/:bind/:config-* commands without having to write a config.py +# file. +# +# Documentation: +# qute://help/configuring.html +# qute://help/settings.html + +# Change the argument to True to still load settings configured via autoconfig.yml +config.load_autoconfig(False) + +# Which cookies to accept. With QtWebEngine, this setting also controls +# other features with tracking capabilities similar to those of cookies; +# including IndexedDB, DOM storage, filesystem API, service workers, and +# AppCache. Note that with QtWebKit, only `all` and `never` are +# supported as per-domain values. Setting `no-3rdparty` or `no- +# unknown-3rdparty` per-domain on QtWebKit will have the same effect as +# `all`. If this setting is used with URL patterns, the pattern gets +# applied to the origin/first party URL of the page making the request, +# not the request URL. With QtWebEngine 5.15.0+, paths will be stripped +# from URLs, so URL patterns using paths will not match. With +# QtWebEngine 5.15.2+, subdomains are additionally stripped as well, so +# you will typically need to set this setting for `example.com` when the +# cookie is set on `somesubdomain.example.com` for it to work properly. +# To debug issues with this setting, start qutebrowser with `--debug +# --logfilter network --debug-flag log-cookies` which will show all +# cookies being set. +# Type: String +# Valid values: +# - all: Accept all cookies. +# - no-3rdparty: Accept cookies from the same origin only. This is known to break some sites, such as GMail. +# - no-unknown-3rdparty: Accept cookies from the same origin only, unless a cookie is already set for the domain. On QtWebEngine, this is the same as no-3rdparty. +# - never: Don't accept cookies at all. +config.set('content.cookies.accept', 'all', 'chrome-devtools://*') + +# Which cookies to accept. With QtWebEngine, this setting also controls +# other features with tracking capabilities similar to those of cookies; +# including IndexedDB, DOM storage, filesystem API, service workers, and +# AppCache. Note that with QtWebKit, only `all` and `never` are +# supported as per-domain values. Setting `no-3rdparty` or `no- +# unknown-3rdparty` per-domain on QtWebKit will have the same effect as +# `all`. If this setting is used with URL patterns, the pattern gets +# applied to the origin/first party URL of the page making the request, +# not the request URL. With QtWebEngine 5.15.0+, paths will be stripped +# from URLs, so URL patterns using paths will not match. With +# QtWebEngine 5.15.2+, subdomains are additionally stripped as well, so +# you will typically need to set this setting for `example.com` when the +# cookie is set on `somesubdomain.example.com` for it to work properly. +# To debug issues with this setting, start qutebrowser with `--debug +# --logfilter network --debug-flag log-cookies` which will show all +# cookies being set. +# Type: String +# Valid values: +# - all: Accept all cookies. +# - no-3rdparty: Accept cookies from the same origin only. This is known to break some sites, such as GMail. +# - no-unknown-3rdparty: Accept cookies from the same origin only, unless a cookie is already set for the domain. On QtWebEngine, this is the same as no-3rdparty. +# - never: Don't accept cookies at all. +config.set('content.cookies.accept', 'all', 'devtools://*') + +# Value to send in the `Accept-Language` header. Note that the value +# read from JavaScript is always the global value. +# Type: String +config.set('content.headers.accept_language', '', 'https://matchmaker.krunker.io/*') + +# User agent to send. The following placeholders are defined: * +# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`: +# The underlying WebKit version (set to a fixed value with +# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for +# QtWebEngine. * `{qt_version}`: The underlying Qt version. * +# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for +# QtWebEngine. * `{upstream_browser_version}`: The corresponding +# Safari/Chrome version. * `{qutebrowser_version}`: The currently +# running qutebrowser version. The default value is equal to the +# unchanged user agent of QtWebKit/QtWebEngine. Note that the value +# read from JavaScript is always the global value. With QtWebEngine +# between 5.12 and 5.14 (inclusive), changing the value exposed to +# JavaScript requires a restart. +# Type: FormatString +config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}) AppleWebKit/{webkit_version} (KHTML, like Gecko) {upstream_browser_key}/{upstream_browser_version} Safari/{webkit_version}', 'https://web.whatsapp.com/') + +# User agent to send. The following placeholders are defined: * +# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`: +# The underlying WebKit version (set to a fixed value with +# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for +# QtWebEngine. * `{qt_version}`: The underlying Qt version. * +# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for +# QtWebEngine. * `{upstream_browser_version}`: The corresponding +# Safari/Chrome version. * `{qutebrowser_version}`: The currently +# running qutebrowser version. The default value is equal to the +# unchanged user agent of QtWebKit/QtWebEngine. Note that the value +# read from JavaScript is always the global value. With QtWebEngine +# between 5.12 and 5.14 (inclusive), changing the value exposed to +# JavaScript requires a restart. +# Type: FormatString +config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}; rv:90.0) Gecko/20100101 Firefox/90.0', 'https://accounts.google.com/*') + +# Load images automatically in web pages. +# Type: Bool +config.set('content.images', True, 'chrome-devtools://*') + +# Load images automatically in web pages. +# Type: Bool +config.set('content.images', True, 'devtools://*') + +# Enable JavaScript. +# Type: Bool +config.set('content.javascript.enabled', True, 'chrome-devtools://*') + +# Enable JavaScript. +# Type: Bool +config.set('content.javascript.enabled', True, 'devtools://*') + +# Enable JavaScript. +# Type: Bool +config.set('content.javascript.enabled', True, 'chrome://*/*') + +# Enable JavaScript. +# Type: Bool +config.set('content.javascript.enabled', True, 'qute://*/*') + +# Allow locally loaded documents to access remote URLs. +# Type: Bool +config.set('content.local_content_can_access_remote_urls', True, 'file:///home/mmckinnon/.local/share/qutebrowser/userscripts/*') + +# Allow locally loaded documents to access other local URLs. +# Type: Bool +config.set('content.local_content_can_access_file_urls', False, 'file:///home/mmckinnon/.local/share/qutebrowser/userscripts/*') + +#Fix Certificate Errors +config.set('content.tls.certificate_errors','ask-block-thirdparty') + +config.bind('', 'tab-close') diff --git a/git/gitconfig b/git/gitconfig new file mode 100644 index 0000000..cb960b2 --- /dev/null +++ b/git/gitconfig @@ -0,0 +1,32 @@ +[user] + email = mmckinnon@comprofix.com + name = Matthew McKinnon + + [color] + ui = true + + [color "branch"] + current = yellow reverse + local = yellow + remote = green + + [color "diff"] + meta = yellow bold + frag = magenta bold + old = red bold + new = green bold + + [color "status"] + added = yellow + changed = green + untracked = red + +[push] + default = simple + +[http] + sslverify = false + postBuffer = 524288000 + +[core] + autocrlf = false diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..0c216d5 --- /dev/null +++ b/install.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +# Setup Shell +if [ -n "$($SHELL -c 'echo $ZSH_VERSION')" ]; then + echo "Setting up ZSH" + rm -fr ~/.oh-my-zsh + rm -fr ~/.zshrc + git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh + ln -s `pwd`/zsh/dracula/dracula.zsh-theme ~/.oh-my-zsh/themes/dracula.zsh-theme + ln -s `pwd`/zsh/zshrc ~/.zshrc +elif [ -n "$($SHELL -c 'echo $BASH_VERSION')" ]; then + rm -fr ~/.bashrc + rm -fr ~/.bash_colors + rm -fr ~/.bash_aliases + ln -s `pwd`/bash/bashrc ~/.bashrc + ln -s `pwd`/bash/bash_colors ~/.bash_colors + ln -s `pwd`/bash/bash_aliases ~/.bash_aliases +fi + +# Setup nano +echo "Setup nano" +rm -fr ~/.nano +rm -fr ~/.nanorc +ln -s `pwd`/nano/nanorc ~/.nanorc +ln -s `pwd`/nano ~/.nano + +# Setup VIM +echo "Setup VIM" +rm -fr ~/.vim +ln -s `pwd`/vim ~/.vim + +# Setup mutt +echo "Setup mutt" +echo "Make sure you generate an oauth2 file - ./mutt_oauth2.py oauth2 --verbose --authorize" +rm -fr ~/.mutt +ln -s `pwd`/mutt ~/.mutt + + + + diff --git a/mutt/colors b/mutt/colors new file mode 100644 index 0000000..f5dd172 --- /dev/null +++ b/mutt/colors @@ -0,0 +1,81 @@ +# object can be one of: +# * attachment +# * body (match regexp in the body of messages) +# * bold (hiliting bold patterns in the body of messages) +# * error (error messages printed by Mutt) +# * header (match regexp in the message header) +# * hdrdefault (default color of the message header in the pager) +# * index (match pattern in the message index) +# * indicator (arrow or bar used to indicate the current item in a menu) +# * markers (the '+' markers at the beginning of wrapped lines in the pager) +# * message (informational messages) +# * normal (normal (not quoted) text +# * quoted (text matching $quote_regexp in the body of a message) +# * quoted1, quotedN (higher levels of quoting) +# * search (hiliting of words in the pager) +# * signature +# * status (mode lines used to display info about the mailbox or message) +# * tilde (the '~' used to pad blank lines in the pager) +# * tree (thread tree drawn in the message index and attachment menu) +# * underline (hiliting underlined patterns in the body of messages) +# +# +# foreground and background can be one of the following: +# * white +# * black +# * green +# * magenta +# * blue +# * cyan +# * yellow +# * red +# * default + +color status color010 color000 +color normal color015 color000 +color indicator color011 color000 +color tree color009 color000 +color attachment color009 color000 +color signature color005 color000 +color quoted color011 color000 +color message color015 color000 +color tilde color010 color000 +color markers color010 color000 +color header color011 color000 "(^Date):" +color header color015 color000 "(^From):" +color header color027 color000 "(^To):" +color header color027 color000 "(^Cc):" +color header color202 color000 "(^Subject):" +mono header bold "^(Date|From|To|Cc|Subject):" + + + +color index color013 color000 ~U +color index color009 color000 ~F +color index color027 color000 ~N +color index color001 color000 ~D +color index color000 color009 ~T + +mono index bold ~U +mono index bold ~F +mono index bold ~N +mono index bold ~D +mono index bold ~T + +color body color011 color000 "<[Ee]?[Bb]?[Gg]>" +color body color011 color000 "<[Bb][Gg]>" +color body color011 color000 "[;:]-*[)>(<|]" + + +# # URLs +color body color027 color000 "(http|ftp|news|telnet|finger)://[^ \”\t\r\n]*" +color body color027 color000 "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+" +color body color027 color000 "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+" +mono body bold "(http|ftp|news|telnet|finger)://[^ \”\t\r\n]*" +mono body bold "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+" + + + + + + diff --git a/mutt/comprofix b/mutt/comprofix new file mode 100644 index 0000000..49f2503 --- /dev/null +++ b/mutt/comprofix @@ -0,0 +1,26 @@ +set realname = "Matthew McKinnon" +set from = "mmckinnon@comprofix.com" +set imap_user = "mmckinnon@comprofix.com" +set smtp_url="smtp://$imap_user@outlook.office365.com/" + +#macro index d "s=Deleted Items\n" "move message to trash" +#macro pager d "C=Deleted Items\n\n" "move message to trash" + +set imap_authenticators = "oauthbearer:xoauth2" +set imap_oauth_refresh_command = "~/.mutt/mutt_oauth2.py ~/.mutt/oauth2" +set smtp_authenticators = ${imap_authenticators} +set smtp_oauth_refresh_command = ${imap_oauth_refresh_command} + + +set folder = "imap://$imap_user@outlook.office365.com/" +set spoolfile = "+Inbox" +set record = "+Sent Items" +set postponed = "+Drafts" +set trash = "+Deleted Items" + + +set move = no +set imap_check_subscribed = yes +#set imap_list_subscribed = yes +mailboxes "+Inbox" "+Sent Items" "+Deleted Items" "+Drafts" + diff --git a/mutt/lang b/mutt/lang new file mode 100644 index 0000000..3ea6fa8 --- /dev/null +++ b/mutt/lang @@ -0,0 +1,16 @@ +# IMAP folders +set my_drafts="Drafts" +set my_drafts_noquote="Drafts" +set my_sent="SentItems" +set my_sent_noquote="Sent Items" +set my_trash="DeletedItems" +set my_trash_noquote="Deleted Items" + +# Quotation and date formats +set attribution="The %d, %n wrote:" +set date_format="!%m/%d/%Y %H:%M" + +# Hours and dates +set charset="utf-8" +set assumed_charset="utf-8" +set send_charset="utf-8:us-ascii" diff --git a/mutt/mailcap b/mutt/mailcap new file mode 100644 index 0000000..d86047f --- /dev/null +++ b/mutt/mailcap @@ -0,0 +1,19 @@ +#text/html; links %s; nametemplate=%s.html +text/html; ( nohup qutebrowser %s > /dev/null 2>&1 & ); nametemplate=%s.html; +text/html; lynx -dump %s; nametemplate=%s.html; copiousoutput; +text/html; links -dump %s -codepage utf-8; nametemplate=%s.html; copiousoutput +text/html; luakit '%s' &; test=test -n "$DISPLAY"; needsterminal; + +text/plain; nohup less %s > /dev/null 2>&1 & + + +application/pdf; { set -m \; /bin/mv -f -T %s %s.mv \; ( evince %s.mv >/dev/null 2>&1 \; /bin/rm -f %s.mv \; ) & } \; disown -a + +#image/jpeg; feh %s +#image/gif; feh %s +#image/GIF; feh %s +#image/JPG; feh %s +#image/jpg; feh %s +#image/png; feh %s +image; ( nohup feh %s > /dev/null 2>&1 & ) + diff --git a/mutt/mutt_oauth2.py b/mutt/mutt_oauth2.py new file mode 100755 index 0000000..36db6de --- /dev/null +++ b/mutt/mutt_oauth2.py @@ -0,0 +1,421 @@ +#!/usr/bin/env python3 +# +# Mutt OAuth2 token management script, version 2020-08-07 +# Written against python 3.7.3, not tried with earlier python versions. +# +# Copyright (C) 2020 Alexander Perlis +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. +'''Mutt OAuth2 token management''' + +import sys +import json +import argparse +import urllib.parse +import urllib.request +import imaplib +import poplib +import smtplib +import base64 +import secrets +import hashlib +import time +from datetime import timedelta, datetime +from pathlib import Path +import socket +import http.server +import subprocess +import readline + +# The token file must be encrypted because it contains multi-use bearer tokens +# whose usage does not require additional verification. Specify whichever +# encryption and decryption pipes you prefer. They should read from standard +# input and write to standard output. The example values here invoke GPG, +# although won't work until an appropriate identity appears in the first line. +ENCRYPTION_PIPE = ['gpg', '--encrypt', '--recipient', 'Comprofix Oauth2'] +DECRYPTION_PIPE = ['gpg', '--decrypt'] + +registrations = { + 'google': { + 'authorize_endpoint': 'https://accounts.google.com/o/oauth2/auth', + 'devicecode_endpoint': 'https://oauth2.googleapis.com/device/code', + 'token_endpoint': 'https://accounts.google.com/o/oauth2/token', + 'redirect_uri': 'urn:ietf:wg:oauth:2.0:oob', + 'imap_endpoint': 'imap.gmail.com', + 'pop_endpoint': 'pop.gmail.com', + 'smtp_endpoint': 'smtp.gmail.com', + 'sasl_method': 'OAUTHBEARER', + 'scope': 'https://mail.google.com/', + 'client_id': '', + 'client_secret': '', + }, + 'microsoft': { + 'authorize_endpoint': 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize', + 'devicecode_endpoint': 'https://login.microsoftonline.com/common/oauth2/v2.0/devicecode', + 'token_endpoint': 'https://login.microsoftonline.com/common/oauth2/v2.0/token', + 'redirect_uri': 'https://login.microsoftonline.com/common/oauth2/nativeclient', + 'tenant': 'common', + 'imap_endpoint': 'outlook.office365.com', + 'pop_endpoint': 'outlook.office365.com', + 'smtp_endpoint': 'smtp.office365.com', + 'sasl_method': 'XOAUTH2', + 'scope': ('offline_access https://outlook.office.com/IMAP.AccessAsUser.All ' + 'https://outlook.office.com/POP.AccessAsUser.All ' + 'https://outlook.office.com/SMTP.Send'), + 'client_id': '08162f7c-0fd2-4200-a84a-f25a4db0b584', + 'client_secret': 'TxRBilcHdC6WGBee]fs?QR:SJ8nI[g82' + }, +} + +ap = argparse.ArgumentParser(epilog=''' +This script obtains and prints a valid OAuth2 access token. State is maintained in an +encrypted TOKENFILE. Run with "--verbose --authorize" to get started or whenever all +tokens have expired, optionally with "--authflow" to override the default authorization +flow. To truly start over from scratch, first delete TOKENFILE. Use "--verbose --test" +to test the IMAP/POP/SMTP endpoints. +''') +ap.add_argument('-v', '--verbose', action='store_true', help='increase verbosity') +ap.add_argument('-d', '--debug', action='store_true', help='enable debug output') +ap.add_argument('tokenfile', help='persistent token storage') +ap.add_argument('-a', '--authorize', action='store_true', help='manually authorize new tokens') +ap.add_argument('--authflow', help='authcode | localhostauthcode | devicecode') +ap.add_argument('-t', '--test', action='store_true', help='test IMAP/POP/SMTP endpoints') +args = ap.parse_args() + +token = {} +path = Path(args.tokenfile) +if path.exists(): + if 0o777 & path.stat().st_mode != 0o600: + sys.exit('Token file has unsafe mode. Suggest deleting and starting over.') + try: + sub = subprocess.run(DECRYPTION_PIPE, check=True, input=path.read_bytes(), + capture_output=True) + token = json.loads(sub.stdout) + except subprocess.CalledProcessError: + sys.exit('Difficulty decrypting token file. Is your decryption agent primed for ' + 'non-interactive usage, or an appropriate environment variable such as ' + 'GPG_TTY set to allow interactive agent usage from inside a pipe?') + + +def writetokenfile(): + '''Writes global token dictionary into token file.''' + if not path.exists(): + path.touch(mode=0o600) + if 0o777 & path.stat().st_mode != 0o600: + sys.exit('Token file has unsafe mode. Suggest deleting and starting over.') + sub2 = subprocess.run(ENCRYPTION_PIPE, check=True, input=json.dumps(token).encode(), + capture_output=True) + path.write_bytes(sub2.stdout) + + +if args.debug: + print('Obtained from token file:', json.dumps(token)) +if not token: + if not args.authorize: + sys.exit('You must run script with "--authorize" at least once.') + print('Available app and endpoint registrations:', *registrations) + token['registration'] = input('OAuth2 registration: ') + token['authflow'] = input('Preferred OAuth2 flow ("authcode" or "localhostauthcode" ' + 'or "devicecode"): ') + token['email'] = input('Account e-mail address: ') + token['access_token'] = '' + token['access_token_expiration'] = '' + token['refresh_token'] = '' + writetokenfile() + +if token['registration'] not in registrations: + sys.exit(f'ERROR: Unknown registration "{token["registration"]}". Delete token file ' + f'and start over.') +registration = registrations[token['registration']] + +authflow = token['authflow'] +if args.authflow: + authflow = args.authflow + +baseparams = {'client_id': registration['client_id']} +# Microsoft uses 'tenant' but Google does not +if 'tenant' in registration: + baseparams['tenant'] = registration['tenant'] + + +def access_token_valid(): + '''Returns True when stored access token exists and is still valid at this time.''' + token_exp = token['access_token_expiration'] + return token_exp and datetime.now() < datetime.fromisoformat(token_exp) + + +def update_tokens(r): + '''Takes a response dictionary, extracts tokens out of it, and updates token file.''' + token['access_token'] = r['access_token'] + token['access_token_expiration'] = (datetime.now() + + timedelta(seconds=int(r['expires_in']))).isoformat() + if 'refresh_token' in r: + token['refresh_token'] = r['refresh_token'] + writetokenfile() + if args.verbose: + print(f'NOTICE: Obtained new access token, expires {token["access_token_expiration"]}.') + + +if args.authorize: + p = baseparams.copy() + p['scope'] = registration['scope'] + + if authflow in ('authcode', 'localhostauthcode'): + verifier = secrets.token_urlsafe(90) + challenge = base64.urlsafe_b64encode(hashlib.sha256(verifier.encode()).digest())[:-1] + redirect_uri = registration['redirect_uri'] + listen_port = 0 + if authflow == 'localhostauthcode': + # Find an available port to listen on + s = socket.socket() + s.bind(('127.0.0.1', 0)) + listen_port = s.getsockname()[1] + s.close() + redirect_uri = 'http://localhost:'+str(listen_port)+'/' + # Probably should edit the port number into the actual redirect URL. + + p.update({'login_hint': token['email'], + 'response_type': 'code', + 'redirect_uri': redirect_uri, + 'code_challenge': challenge, + 'code_challenge_method': 'S256'}) + print(registration["authorize_endpoint"] + '?' + + urllib.parse.urlencode(p, quote_via=urllib.parse.quote)) + + authcode = '' + if authflow == 'authcode': + authcode = input('Visit displayed URL to retrieve authorization code. Enter ' + 'code from server (might be in browser address bar): ') + else: + print('Visit displayed URL to authorize this application. Waiting...', + end='', flush=True) + + class MyHandler(http.server.BaseHTTPRequestHandler): + '''Handles the browser query resulting from redirect to redirect_uri.''' + + # pylint: disable=C0103 + def do_HEAD(self): + '''Response to a HEAD requests.''' + self.send_response(200) + self.send_header('Content-type', 'text/html') + self.end_headers() + + def do_GET(self): + '''For GET request, extract code parameter from URL.''' + # pylint: disable=W0603 + global authcode + querystring = urllib.parse.urlparse(self.path).query + querydict = urllib.parse.parse_qs(querystring) + if 'code' in querydict: + authcode = querydict['code'][0] + self.do_HEAD() + self.wfile.write(b'Authorizaton result') + self.wfile.write(b'

Authorization redirect completed. You may ' + b'close this window.

') + with http.server.HTTPServer(('127.0.0.1', listen_port), MyHandler) as httpd: + try: + httpd.handle_request() + except KeyboardInterrupt: + pass + + if not authcode: + sys.exit('Did not obtain an authcode.') + + for k in 'response_type', 'login_hint', 'code_challenge', 'code_challenge_method': + del p[k] + p.update({'grant_type': 'authorization_code', + 'code': authcode, + 'client_secret': registration['client_secret'], + 'code_verifier': verifier}) + print('Exchanging the authorization code for an access token') + try: + response = urllib.request.urlopen(registration['token_endpoint'], + urllib.parse.urlencode(p).encode()) + except urllib.error.HTTPError as err: + print(err.code, err.reason) + response = err + response = response.read() + if args.debug: + print(response) + response = json.loads(response) + if 'error' in response: + print(response['error']) + if 'error_description' in response: + print(response['error_description']) + sys.exit(1) + + elif authflow == 'devicecode': + try: + response = urllib.request.urlopen(registration['devicecode_endpoint'], + urllib.parse.urlencode(p).encode()) + except urllib.error.HTTPError as err: + print(err.code, err.reason) + response = err + response = response.read() + if args.debug: + print(response) + response = json.loads(response) + if 'error' in response: + print(response['error']) + if 'error_description' in response: + print(response['error_description']) + sys.exit(1) + print(response['message']) + del p['scope'] + p.update({'grant_type': 'urn:ietf:params:oauth:grant-type:device_code', + 'client_secret': registration['client_secret'], + 'device_code': response['device_code']}) + interval = int(response['interval']) + print('Polling...', end='', flush=True) + while True: + time.sleep(interval) + print('.', end='', flush=True) + try: + response = urllib.request.urlopen(registration['token_endpoint'], + urllib.parse.urlencode(p).encode()) + except urllib.error.HTTPError as err: + # Not actually always an error, might just mean "keep trying..." + response = err + response = response.read() + if args.debug: + print(response) + response = json.loads(response) + if 'error' not in response: + break + if response['error'] == 'authorization_declined': + print(' user declined authorization.') + sys.exit(1) + if response['error'] == 'expired_token': + print(' too much time has elapsed.') + sys.exit(1) + if response['error'] != 'authorization_pending': + print(response['error']) + if 'error_description' in response: + print(response['error_description']) + sys.exit(1) + print() + + else: + sys.exit(f'ERROR: Unknown OAuth2 flow "{token["authflow"]}. Delete token file and ' + f'start over.') + + update_tokens(response) + + +if not access_token_valid(): + if args.verbose: + print('NOTICE: Invalid or expired access token; using refresh token ' + 'to obtain new access token.') + if not token['refresh_token']: + sys.exit('ERROR: No refresh token. Run script with "--authorize".') + p = baseparams.copy() + p.update({'client_secret': registration['client_secret'], + 'refresh_token': token['refresh_token'], + 'grant_type': 'refresh_token'}) + try: + response = urllib.request.urlopen(registration['token_endpoint'], + urllib.parse.urlencode(p).encode()) + except urllib.error.HTTPError as err: + print(err.code, err.reason) + response = err + response = response.read() + if args.debug: + print(response) + response = json.loads(response) + if 'error' in response: + print(response['error']) + if 'error_description' in response: + print(response['error_description']) + print('Perhaps refresh token invalid. Try running once with "--authorize"') + sys.exit(1) + update_tokens(response) + + +if not access_token_valid(): + sys.exit('ERROR: No valid access token. This should not be able to happen.') + + +if args.verbose: + print('Access Token: ', end='') +print(token['access_token']) + + +def build_sasl_string(user, host, port, bearer_token): + '''Build appropriate SASL string, which depends on cloud server's supported SASL method.''' + if registration['sasl_method'] == 'OAUTHBEARER': + return f'n,a={user},\1host={host}\1port={port}\1auth=Bearer {bearer_token}\1\1' + if registration['sasl_method'] == 'XOAUTH2': + return f'user={user}\1auth=Bearer {bearer_token}\1\1' + sys.exit(f'Unknown SASL method {registration["sasl_method"]}.') + + +if args.test: + errors = False + + imap_conn = imaplib.IMAP4_SSL(registration['imap_endpoint']) + sasl_string = build_sasl_string(token['email'], registration['imap_endpoint'], 993, + token['access_token']) + if args.debug: + imap_conn.debug = 4 + try: + imap_conn.authenticate(registration['sasl_method'], lambda _: sasl_string.encode()) + # Microsoft has a bug wherein a mismatch between username and token can still report a + # successful login... (Try a consumer login with the token from a work/school account.) + # Fortunately subsequent commands fail with an error. Thus we follow AUTH with another + # IMAP command before reporting success. + imap_conn.list() + if args.verbose: + print('IMAP authentication succeeded') + except imaplib.IMAP4.error as e: + print('IMAP authentication FAILED (does your account allow IMAP?):', e) + errors = True + + pop_conn = poplib.POP3_SSL(registration['pop_endpoint']) + sasl_string = build_sasl_string(token['email'], registration['pop_endpoint'], 995, + token['access_token']) + if args.debug: + pop_conn.set_debuglevel(2) + try: + # poplib doesn't have an auth command taking an authenticator object + # Microsoft requires a two-line SASL for POP + # pylint: disable=W0212 + pop_conn._shortcmd('AUTH ' + registration['sasl_method']) + pop_conn._shortcmd(base64.standard_b64encode(sasl_string.encode()).decode()) + if args.verbose: + print('POP authentication succeeded') + except poplib.error_proto as e: + print('POP authentication FAILED (does your account allow POP?):', e.args[0].decode()) + errors = True + + # SMTP_SSL would be simpler but Microsoft does not answer on port 465. + smtp_conn = smtplib.SMTP(registration['smtp_endpoint'], 587) + sasl_string = build_sasl_string(token['email'], registration['smtp_endpoint'], 587, + token['access_token']) + smtp_conn.ehlo('test') + smtp_conn.starttls() + smtp_conn.ehlo('test') + if args.debug: + smtp_conn.set_debuglevel(2) + try: + smtp_conn.auth(registration['sasl_method'], lambda _=None: sasl_string) + if args.verbose: + print('SMTP authentication succeeded') + except smtplib.SMTPAuthenticationError as e: + print('SMTP authentication FAILED:', e) + errors = True + + if errors: + sys.exit(1) diff --git a/mutt/muttrc b/mutt/muttrc new file mode 100644 index 0000000..73a6e0b --- /dev/null +++ b/mutt/muttrc @@ -0,0 +1,62 @@ + +source $HOME/.mutt/colors +source ~/.mutt/comprofix + + +macro index 'source ~/.mutt/comprofix!' + +set move = no +set confirmappend = no +set mailcap_path = $HOME/.mutt/mailcap +set sort = threads +set sort_aux = reverse-last-date-received +#set sort_aux = reverse-date-received +set smart_wrap +set signature=$HOME/.mutt/signature + +#alternative_order text/plain test text/html + +auto_view text/html +auto_view image/png +auto_view application/x-gunzip +auto_view application/x-gzip + +set sidebar_visible = yes +set sidebar_width = 23 +#set sidebar_delim = '|' +set sidebar_divider_char = '|' +set sidebar_sort_method = 'path' + +set sidebar_short_path = yes + +color sidebar_new color027 color000 + +macro index b 'toggle sidebar_visible' +macro pager b 'toggle sidebar_visible' +bind index B bounce-message + +set index_format="%3C %Z %[!%d.%m %H:%M] %-35.35L (%5c) %s" # Bronski's favourite +#set index_format="%4C %Z %[!%d %b %y %I:%M%p] %-35.35L (%5c) %s" +#set index_format="%4C %Z %d %-15.15L (%-5c) %s" +set status_chars = " *%A" +set status_format = "───[ Folder: %f ]───[%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]───%>─%?p?( %p postponed )?───" +set pager_index_lines=12 + +bind index \CP sidebar-prev +bind index \CN sidebar-next +bind index \CO sidebar-open +bind pager \CP sidebar-prev +bind pager \CN sidebar-next +bind pager \CO sidebar-open + + +# Pretty it up +# # # ---- +# # # default list of header fields to weed out when displaying mail +# # # ignore them all and then unignore what you want to see +ignore * +unignore Date To From: Cc Subject X-Tts X-Label +unignore x-mailing-list: posted-to: +unignore x-mailer: +hdr_order Date To From: Cc Subject X-Tts X-Label +# diff --git a/mutt/signature b/mutt/signature new file mode 100644 index 0000000..202c344 --- /dev/null +++ b/mutt/signature @@ -0,0 +1,7 @@ +Matt McKinnon +Comprofix Support +Web: https://www.comprofix.com +Email: support@comprofix.com +-- +For more information, please reread. + diff --git a/nano/nanorc b/nano/nanorc new file mode 100644 index 0000000..59ec555 --- /dev/null +++ b/nano/nanorc @@ -0,0 +1 @@ +include ~/.nano/syntax/ALL.nanorc diff --git a/nano/syntax/ALL.nanorc b/nano/syntax/ALL.nanorc new file mode 100644 index 0000000..60a1bba --- /dev/null +++ b/nano/syntax/ALL.nanorc @@ -0,0 +1,900 @@ +syntax "awk" "\.awk$" +header "^#!.*bin/(env +)?awk( |$)" + +color brightyellow "\$[A-Za-z0-9_!@#$*?-]+" +color brightyellow "\<(ARGC|ARGIND|ARGV|BINMODE|CONVFMT|ENVIRON|ERRNO|FIELDWIDTHS)\>" +color brightyellow "\<(FILENAME|FNR|FS|IGNORECASE|LINT|NF|NR|OFMT|OFS|ORS)\>" +color brightyellow "\<(PROCINFO|RS|RT|RSTART|RLENGTH|SUBSEP|TEXTDOMAIN)\>" +color brightblue "\<(function|extension|BEGIN|END)\>" +color red "[-+*/%^|!=&<>?;:]|\\|\[|\]" +color brightblack "\<(for|if|while|do|else|in|delete|exit)\>" +color brightblack "\<(break|continue|return)\>" +color brightblue "\<(close|getline|next|nextfile|print|printf|system|fflush)\>" +color brightblue "\<(atan2|cos|exp|int|log|rand|sin|sqrt|srand)\>" +color brightblue "\<(asort|asorti|gensub|gsub|index|length|match)\>" +color brightblue "\<(split|sprintf|strtonum|sub|substr|tolower|toupper)\>" +color brightblue "\<(mktime|strftime|systime)\>" +color brightblue "\<(and|compl|lshift|or|rshift|xor)\>" +color brightblue "\<(bindtextdomain|dcgettext|dcngettext)\>" +color magenta "/.*[^\]/" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color magenta "\\." +color cyan "(^|[[:space:]])#([^{].*)?$" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "c" "\.(c(c|pp|xx)?|C)$" "\.(h(h|pp|xx)?|H)$" "\.ii?$" + +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color brightyellow "\<[A-Z_][0-9A-Z_]+\>" +color green "\<(float|double|bool|char|int|short|long|void|(un)?signed)\>" +color green "\<[a-z0-9_]+_t\>" +color brightblack "\<(struct|enum|static|const|union|typedef|extern)\>" +color brightblack "\<(for|if|while|do|else|case|default|switch)\>" +color brightblack "\<(return|inline|sizeof|auto|register|volatile|restrict)\>" +color brightblack "\<(try|throw|catch|operator|new|delete)\>" +color brightred "\<(goto|break|continue)\>" +color brightcyan "\<(true|false)\>" +color red "[-+/*=<>?:!~%&|^]" +color blue "\<([0-9]+|0x[0-9a-fA-F]*)\>|'.'" +color brightyellow "^[[:space:]]*#[[:space:]]*(define|include(_next)?|(un|ifn?)def|endif|el(if|se)|if|warning|error|pragma)" +color magenta "__attribute__[[:space:]]*\(\([^)]*\)\)" "__(aligned|asm|builtin|hidden|inline|packed|restrict|section|typeof|weak)__" +color yellow ""(\\.|[^"])*"|<[A-Za-z_./-]+>" +color magenta "\\([\"'abfnrtv\\]|[0-3]?[0-7]{1,2}|x[A-Fa-f0-9]{1,2}|$)" +color cyan "(^|[[:space:]])//.*" +color cyan start="/\*" end="\*/" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "cmake" "CMakeLists\.txt$|\.cmake$" + +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color brightcyan "\<(ON|OFF|TRUE|FALSE|YES|NO)\>" +color brightyellow "\$\{[A-Za-z0-9_!@#$*?-]+\}" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color magenta "\\([()#$^]|\\|\")" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "coffeescript" "\.coffee$" +header "^#!.*/(env +)?coffee" + +color red "[!&|=/*+-<>]|\<(and|or|is|isnt|not)\>" +color brightblue "[A-Za-z_][A-Za-z0-9_]*:[[:space:]]*(->|\()" "->" +color black "[()]" +color brightblack "\<(for|of|continue|break|isnt|null|unless|this|else|if|return)\>" +color brightblack "\<(try|catch|finally|throw|new|delete|typeof|in|instanceof)\>" +color brightblack "\<(debugger|switch|while|do|class|extends|super)\>" +color brightblack "\<(undefined|then|unless|until|loop|of|by|when)\>" +color brightcyan "\<(true|false|yes|no|on|off)\>" +color brightyellow "@[A-Za-z0-9_]*" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "colortest" "ColorTest$" + +color black "\" + +color red "\" +color green "\" +color yellow "\" +color blue "\" +color magenta "\" +color cyan "\" + +color brightred "\" +color brightgreen "\" +color brightyellow "\" +color brightblue "\" +color brightmagenta "\" +color brightcyan "\" +syntax "c#" "\.cs$" + +# Class +color brightmagenta "class +[A-Za-z0-9]+ *((:) +[A-Za-z0-9.]+)?" + +# Annotation +color magenta "@[A-Za-z]+" + +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color green "\<(bool|byte|sbyte|char|decimal|double|float|IntPtr|int|uint|long|ulong|object|short|ushort|string|base|this|var|void)\>" +color brightblack "\<(alias|as|case|catch|checked|default|do|dynamic|else|finally|fixed|for|foreach|goto|if|is|lock|new|null|return|switch|throw|try|unchecked|while)\>" +color brightblack "\<(abstract|async|class|const|delegate|enum|event|explicit|extern|get|implicit|in|internal|interface|namespace|operator|out|override|params|partial|private|protected|public|readonly|ref|sealed|set|sizeof|stackalloc|static|struct|typeof|unsafe|using|value|virtual|volatile|yield)\>" +# LINQ-only keywords (ones that cannot be used outside of a LINQ query - lots others can) +color brightblack "\<(from|where|select|group|info|orderby|join|let|in|on|equals|by|ascending|descending)\>" +color brightred "\<(break|continue)\>" +color brightcyan "\<(true|false)\>" +color red "[-+/*=<>?:!~%&|]" +color blue "\<([0-9._]+|0x[A-Fa-f0-9_]+|0b[0-1_]+)[FL]?\>" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color magenta "\\([btnfr]|'|\"|\\)" +color magenta "\\u[A-Fa-f0-9]{4}" +color cyan "(^|[[:space:]])//.*" +color cyan start="/\*" end="\*/" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "css" "\.s?css$" + +# Selectors +color green "\<(a|abbr|address|area|article|aside|audio|b|base|bdo|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|eventsource|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|mark|map|menu|meta|meter|nav|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|ruby|rp|rt|samp|script|section|select|small|source|span|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|ul|var|video|wbr)\>" +color red "[>+~*]" +color brightyellow "[.#][A-Za-z_][A-Za-z0-9_-]*" +color red ":(active|focus|hover|link|visited|first-child|lang|valid|invalid|not|selection)\>" +color red ":(after|before|first-line|first-letter|root|target)\>" +color yellow "\[[^\[]*\]" +color black start="\{" end="\}" + +# Sass +color brightmagenta "(^|[[:space:]])@(include|mixin)\>" +color brightyellow "\$[A-Za-z0-9_-]+" + +color brightmagenta "(^|[[:space:]])@(charset|font-face|media|page|import)\>" +color red "[*]" +color brightcyan "\<(above|absolute|always|armenian|auto|avoid|baseline|behind|below|bidi-override|blink|block|bolder|bold|bottom|capitalize|center-left|center-right|center|circle|cjk-ideographic|close-quote|collapse|compact|condensed|continuous|crop|crosshair|cross|cue-after|cue-before|cursive|dashed|decimal|decimal-leading-zero|default|digits|disc|dotted|double|embed|e-resize|expanded|extra-condensed|extra-expanded|fantasy|far-left|far-right|faster|fast|fixed|fixed|georgian|groove|hebrew|help|hide|higher|high|hiragana-iroha|hiragana|inherit|inline|inline-block|inline-table|inset|inside|invert|italic|justify|katakana-iroha|katakana|landscape|large|larger|left|left-side|leftwards|level|lighter|line-through|list-item|loud|lower-alpha|lowercase|lower-greek|lower-latin|lower-roman|lower|low|ltr|marker|medium|medium|middle|mix|monospace|move|narrower|ne-resize|no-close-quote|none|no-open-quote|no-repeat|normal|nowrap|n-resize|nw-resize|oblique|once|open-quote|outset|outside|overline|pointer|portait|relative|repeat-x|repeat-y|repeat|ridge|right-side|right|rightwards|rlt|run-in|sans-serif|scroll|scroll|semi-condensed|semi-expanded|separate|se-resize|serif|show|silent|slower|slow|small-caps|smaller|small|soft|solid|spell-out|square|s-resize|static|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|text-bottom|text|text-top|thick|thin|top|top|transparent|ultra-condensed|ultra-expanded|underline|upper-alpha|uppercase|upper-latin|upper-roman|visible|wait|wider|w-resize|x-fast|x-high|x-large|x-loud|x-low|x-slow|x-small|x-soft|xx-large|xx-small|pre-wrap|break-word)([[:space:];,]|$)" +color brightyellow ":[[:space:]]*(code|hidden|table|pre)\>" +color brightblack "\<(background-attachment|background-clip|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-radius|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|marker-offset|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numerical|speak-punctuation|speak|speech-rate|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|transition|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|word-wrap|z-index)[[:space:]]*:" +color brightwhite,red "-(ms|moz|apple|khtml|wap|webkit|o|xv)-[a-z][a-z-]+" +color black "[:;,]" +color blue "\<(0|[\+-]?[1-9][0-9]*)" +color blue "[\+-]?([0-9]+|[0-9]*\.[0-9]+)(%|e(m|x)|p(x|t|c)|in|ft|(m|c)m|k?Hz|deg|g?rad|m?s)" +color blue "#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})\>" +color red "\!important\>" +color brightblue "[a-z-]*(-[a-z]+)?\(" "\(|\)" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "(^|[[:space:]])//.*" +color cyan start="/\*" end="\*/" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "cython" "\.(pyx|pxd|pyi)$" + +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color brightblack "\<(and|as|assert|break|class|continue|def|del|elif|else|except)\>" +color brightblack "\<(exec|finally|for|from|global|if|import|in|is|lambda|not|or)\>" +color brightblack "\<(pass|print|raise|return|try|while|with|yield|None)\>" +color brightblack "\<(DEF|ELIF|ELSE|IF)\>" + +color brightblack "\<(cp?def( inline)?|cimport|cppclass|ctypedef|extern|include)\>" +color brightblack "\<(namespace|property|struct)\>" +color green "\<(bint|char|double|int|public|void|unsigned)\>" + +color red "[.:;,+*|=!\%@<>/&-]" +color brightyellow "@[A-Za-z0-9_]+" +color brightmagenta "__[A-Za-z0-9_]+__" +color brightcyan "\<(True|False)\>" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color yellow "['][^']*[^\\][']" "[']{3}.*[^\\][']{3}" +color yellow "["][^"]*[^\\]["]" "["]{3}.*[^\\]["]{3}" +color yellow start=""""[^"]" end=""""" +color yellow start="'''[^']" end="'''" +color magenta "\\.?" +color cyan "(^|[[:space:]])#([^{].*)?$" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "default" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "dot" "\.(dot|gv)$" + +color brightblack "\<(digraph|edge|graph|node|subgraph)\>" +color magenta "\<(arrowhead|arrowsize|arrowtail|bgcolor|center|color|constraint|decorateP|dir|distortion|fillcolor|fontcolor|fontname|fontsize|headclip|headlabel|height|labelangle|labeldistance|labelfontcolor|labelfontname|labelfontsize|label|layers|layer|margin|mclimit|minlen|name|nodesep|nslimit|ordering|orientation|pagedir|page|peripheries|port_label_distance|rankdir|ranksep|rank|ratio|regular|rotate|samehead|sametail|shapefile|shape|sides|size|skew|style|tailclip|taillabel|URL|weight|width)\>" +color red "=|->|--" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "(^|[[:space:]])//.*" +color cyan start="/\*" end="\*/" +syntax "email" + +color magenta "^>([^>].*|$)" +color blue "^>>([^>].*|$)" +color green "^>>>.*" +syntax "gitconfig" "git(config|modules)$|\.git/config$" + +color brightcyan "\<(true|false)\>" +color brightblack "^[[:space:]]*[^=]*=" +color brightmagenta "^[[:space:]]*\[.*\]$" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT + +syntax "git-editmsg" "(COMMIT|TAG)_EDITMSG$" + +color cyan "^#.*$" +color ,red "[[:space:]]+$" + +syntax "git-rebase" "git-rebase-todo$" + +color brightblack "^(edit|fixup|pick|reword|squash|exec|[efprsx])\>" +color blue "\<[0-9a-f]{7,40}\>" +color cyan "^#.*" +syntax "glsl" "\.(frag|vert|fp|vp|glsl)$" + +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color green "\<(void|bool|bvec2|bvec3|bvec4|int|ivec2|ivec3|ivec4|float|vec2|vec3|vec4|mat2|mat3|mat4|struct|sampler1D|sampler2D|sampler3D|samplerCUBE|sampler1DShadow|sampler2DShadow)\>" +color green "\" +color brightblack "\<(const|attribute|varying|uniform|in|out|inout|if|else|return|discard|while|for|do)\>" +color brightred "\<(break|continue)\>" +color brightcyan "\<(true|false)\>" +color red "[-+/*=<>?:!~%&|^]" +color blue "\<([0-9]+|0x[0-9a-fA-F]*)\>" +color cyan "(^|[[:space:]])//.*" +color cyan start="/\*" end="\*/" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "go" "\.go$" + +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color brightblue "\<(append|cap|close|complex|copy|delete|imag|len)\>" +color brightblue "\<(make|new|panic|print|println|protect|real|recover)\>" +color green "\<(u?int(8|16|32|64)?|float(32|64)|complex(64|128))\>" +color green "\<(uintptr|byte|rune|string|interface|bool|map|chan|error)\>" +color brightblack "\<(package|import|const|var|type|struct|func|go|defer|nil|iota)\>" +color brightblack "\<(for|range|if|else|case|default|switch|return)\>" +color brightred "\<(go|goto|break|continue)\>" +color brightcyan "\<(true|false)\>" +color red "[-+/*=<>!~%&|^]|:=" +color blue "\<([0-9]+|0x[0-9a-fA-F]*)\>|'.'" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color magenta "\\[abfnrtv'\"\\]" +color magenta "\\([0-7]{3}|x[A-Fa-f0-9]{2}|u[A-Fa-f0-9]{4}|U[A-Fa-f0-9]{8})" +color yellow "`[^`]*`" +color cyan "(^|[[:space:]])//.*" +color cyan start="/\*" end="\*/" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "html" "\.html?$" +header "" +color brightwhite,red "]" +color brightmagenta "]" +color yellow "=([A-Za-z0-9!$%*\^(){}#|:;_~@+,.?/\\-]|\[|\])+" +color red "=" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color black start=">" end="<" +color brightmagenta "[<>]" + +# Embedded template languages +color brightyellow "\{\{[^}]*\}\}|<%=.*%>" +color brightblue start="<\?" end="\?>" +color brightblue start="<%[^=]" end="%>" +color brightblue start="\{%" end="%\}" + +color magenta "&(#[0-9]+|#x[0-9a-fA-F]+|[A-Za-z][A-Za-z0-9]*);" +color cyan start="" +color cyan "]*>" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "ini" "\.(ini|desktop|lfl|override)$" "(mimeapps\.list|pinforc|setup\.cfg)$" "weechat/.+\.conf$" +header "^\[[A-Za-z]+\]$" + +color brightcyan "\<(true|false)\>" +color brightblack "^[[:space:]]*[^=]*=" +color brightmagenta "^[[:space:]]*\[.*\]$" +color red "[=;]" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "inputrc" "inputrc$" + +color red "\<(off|none)\>" +color green "\" +color brightblue "\" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color magenta "\\.?" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "java" "\.java$" + +# Class +color brightmagenta "class +[A-Za-z0-9]+ *((implements|extends) +[A-Za-z0-9.]+)?" + +# Annotation +color magenta "@[A-Za-z]+" + +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color green "\<(boolean|byte|char|double|float|int|long|short|String|void)\>" +color brightblack "\<(case|catch|default|do|else|finally|for|if)\>" +color brightblack "\<(new|return|switch|this|throw|transient|try|while)\>" +color brightblack "\<(abstract|class|extends|final|implements|import|instanceof)\>" +color brightblack "\<(interface|native|package|private|protected|public|static)\>" +color brightblack "\<(strictfp|super|synchronized|throws|volatile|null)\>" +color brightred "\<(break|continue)\>" +color brightcyan "\<(true|false)\>" +color red "[-+/*=<>?:!~%&|]" +color blue "\<([0-9._]+|0x[A-Fa-f0-9_]+|0b[0-1_]+)[FL]?\>" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color magenta "\\([btnfr]|'|\"|\\)" +color magenta "\\u[A-Fa-f0-9]{4}" +color cyan "(^|[[:space:]])//.*" +color cyan start="/\*" end="\*/" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "JavaScript" "\.js$" + +color blue "\<[-+]?([1-9][0-9]*|0[0-7]*|0x[0-9a-fA-F]+)([uU][lL]?|[lL][uU]?)?\>" +color blue "\<[-+]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([EePp][+-]?[0-9]+)?[fFlL]?" +color blue "\<[-+]?([0-9]+[EePp][+-]?[0-9]+)[fFlL]?" +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color brightblack "\<(break|case|catch|continue|default|delete|do|else|finally)\>" +color brightblack "\<(for|function|get|if|in|instanceof|new|return|set|switch)\>" +color brightblack "\<(switch|this|throw|try|typeof|var|void|while|with)\>" +color brightblack "\<(null|undefined|NaN)\>" +color brightcyan "\<(true|false)\>" +color green "\<(Array|Boolean|Date|Enumerator|Error|Function|Math)\>" +color green "\<(Number|Object|RegExp|String)\>" +color red "[-+/*=<>!~%?:&|]" +color magenta "/[^*]([^/]|(\\/))*[^\\]/[gim]*" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color magenta "\\[0-7][0-7]?[0-7]?|\\x[0-9a-fA-F]+|\\[bfnrt'"\?\\]" +color cyan "(^|[[:space:]])//.*" +color cyan start="/\*" end="\*/" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "json" "\.json$" +header "^\{$" + +color blue "\<[-]?[1-9][0-9]*([Ee][+-]?[0-9]+)?\>" "\<[-]?[0](\.[0-9]+)?\>" +color brightblack "\" +color brightcyan "\<(true|false)\>" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color brightyellow "\"(\\"|[^"])*\"[[:space:]]*:" "'(\'|[^'])*'[[:space:]]*:" +color magenta "\\u[0-9a-fA-F]{4}|\\[bfnrt'"/\\]" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "keymap" "\.(k|key)?map$|Xmodmap$" + +color brightblack "\<(add|clear|compose|keycode|keymaps|keysym|remove|string)\>" +color brightblack "\<(control|alt|shift)\>" +color blue "\<[0-9]+\>" +color red "=" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "^!.*$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "KickStart" "\.ks$" "\.kickstart$" + +color brightmagenta "%[a-z]+" +color brightblack "^[[:space:]]*(install|cdrom|text|graphical|volgroup|logvol|reboot|timezone|lang|keyboard|authconfig|firstboot|rootpw|user|firewall|selinux|repo|part|partition|clearpart|bootloader)" +color brightblack "--(name|mirrorlist|baseurl|utc)(=|\>)" +color brightyellow "\$(releasever|basearch)\>" + +# Packages and groups +color brightblack "^@[A-Za-z][A-Za-z-]*" +color brightred "^-@[a-zA-Z0-9*-]+" +color red "^-[a-zA-Z0-9*-]+" + +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "ledger" "(^|\.|/)ledger$" + +color brightmagenta "^([0-9]{4}/[0-9]{2}/[0-9]{2}|[=~]) .*" +color blue "^[0-9]{4}/[0-9]{2}/[0-9]{2}" +color brightyellow "^~ .*" +color brightblue "^= .*" +color brightblack "^[[:space:]]+\(?[A-Za-z ]+(:[A-Za-z ]+)*\)?" +color red "[*]" +color cyan "^[[:space:]]*;.*" +syntax "lisp" "(emacs|zile)$" "\.(el|li?sp|scm|ss)$" + +color brightblue "\([a-z-]+" +color red "\(([-+*/<>]|<=|>=)|'" +color black "\(" +color blue "\<[0-9]+\>" +icolor brightblack "\" +color brightcyan "\<[tT]\>" +color yellow "\"(\\.|[^"])*\"" +color magenta "'[A-Za-z][A-Za-z0-9_-]+" +color magenta "\\.?" +color cyan "(^|[[:space:]]);.*" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "lua" "\.lua$" +header "^#!.*lua(jit)?$" + +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*([({'"]|\[=*\[)" +color brightblack "\<(do|end|while|repeat|until|if|elseif|then|else)\>" +color brightblack "\<(for|in|function|local|return|nil)\>" +color brightred "\<(goto|break)\>" +color brightcyan "\<(true|false)\>" +color red "[-+:*/%^=#<>]|~=|\.\.|\[|\]|\<(not|and|or)\>" +color brightwhite,red "[`!@$&|?]|!=" +color black "\.{3,}|[({'"]" +color blue "\<([0-9]+)(\.[0-9]+)?([Ee][+-]?[0-9]+)?\>|0x[0-9a-fA-F]*" +color brightmagenta "::[A-Za-z_][A-Za-z0-9_]*::" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color magenta "\\([0-9]{1,3}|x[A-Fa-f0-9]{2}|[abefntrv'"\\]|\[|\])" +color yellow start="\[\[" end="\]\]" +color yellow start="\[=\[" end="\]=\]" +color yellow start="\[==\[" end="\]==\]" +color cyan "^#!.*" "(^|[[:space:]])\-\-.*$" +color cyan start="\-\-\[\[" end="\]\]" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "makefile" "([Mm]akefile|\.ma?k)$" +header "^#!.*/(env +)?[bg]?make( |$)" + +color brightblack "\<(ifeq|ifdef|ifneq|ifndef|else|endif)\>" +color brightblack "^(export|include|override)\>" +color brightmagenta "^[^:= ]+:" +color red "[=,%]" "\+=|\?=|:=|&&|\|\|" +color brightblue "\$\((abspath|addprefix|addsuffix|and|basename|call|dir)[[:space:]]" +color brightblue "\$\((error|eval|filter|filter-out|findstring|firstword)[[:space:]]" +color brightblue "\$\((flavor|foreach|if|info|join|lastword|notdir|or)[[:space:]]" +color brightblue "\$\((origin|patsubst|realpath|shell|sort|strip|suffix)[[:space:]]" +color brightblue "\$\((value|warning|wildcard|word|wordlist|words)[[:space:]]" +color black "[()$]" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color brightyellow "\$+(\{[^} ]+\}|\([^) ]+\))" +color brightyellow "\$[@^<*?%|+]|\$\([@^<*?%+-][DF]\)" +color magenta "\$\$|\\.?" +color cyan "(^|[[:space:]])#([^{].*)?$" +color cyan "^ @#.*" + +# Show trailing whitespace +color ,green "[[:space:]]+$" +syntax "man" "\.[1-9]x?$" + +color brightmagenta "\.(S|T)H.*$" +color brightblack "\.(BR?|I[PR]?).*$" +color brightyellow "\.(S|T)H|\.TP|\.(BR?|I[PR]?|PP)|\\f[BIPR]" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color yellow "\.(br|DS|RS|RE|PD)" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "markdown" "\.(md|mkd|mkdn|markdown)$" + +# Emphasis +color green "(^|[[:space:]])(_[^ ][^_]*_|\*[^ ][^*]*\*)" + +# Strong emphasis +color brightgreen "(^|[[:space:]])(__[^ ][^_]*__|\*\*[^ ][^*]*\*\*)" + +color brightmagenta "^=====*$|^-----*$|^#{1,6}.*" +color blue "^[[:space:]]*[\*+-] |^[[:space:]]*[0-9]+\. " +color black "^[[:space:]]+" +color magenta "\(([CcRr]|[Tt][Mm])\)" "\.{3}" "(^|[[:space:]])\-\-($|[[:space:]])" +color brightyellow "\!?\[[^]]*\]([[:space:]]*\[[^]]*\]|\(.*\))?" +color brightyellow "^\[.*\]:[[:space:]]*[^"]*" +color yellow "`[^`]*`|^ {4}[^-+*].*" +color cyan "^>.*" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "mpdconf" "mpd\.conf$" + +color brightblack "\<(user|group|bind_to_address|host|port|plugin|name|type)\>" +color brightblack "\<((music|playlist)_directory|(db|log|state|pid|sticker)_file)\>" +color brightmagenta "^(input|audio_output|decoder)[[:space:]]*\{|\}" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "nanorc" "nanorc$" +header "^syntax +\"" + +color green "^i?color[[:space:]]*(bright)?(white|black|red|blue|green|yellow|magenta|cyan)?(,(white|black|red|blue|green|yellow|magenta|cyan))?\>" +color brightblack "^(set|unset)[[:space:]]+(allow_insecure_backup|autoindent|backup|backupdir|backwards|boldtext|brackets|casesensitive|const|cut|fill|historylog|matchbrackets|morespace|mouse|multibuffer|noconvert|nofollow|nohelp|nonewlines|nowrap|operatingdir|poslog|preserve|punct)\>" "^[[:space:]]*(set|unset)[[:space:]]+(quickblank|quotestr|rebinddelete|rebindkeypad|regexp|smarthome|smooth|softwrap|speller|suspend|suspendenable|tabsize|tabstospaces|tempfile|undo|view|whitespace|wordbounds)\>" +color brightblack "^(bind|i?color|set|unset|syntax|header|magic)\>" +color red "^unbind\>" +color brightblack "^i?color\>" "\<(start|end)=" +color brightyellow "^include\>" + +color brightblack "^(PLAIN|TYPE|STRING|MACRO|NUMBER|VARIABLE|OPERATOR|~?KEYWORD):" +color brightblack "^(BOOLEAN|SECTION|REGEXP|FUNCTION|ESCAPE|COMMENT|WARNING|JUMP):" +color brightblack "^(TAG|ATTRIBUTE):" +color brightyellow "^\+(TODO|LINT|STRING|BOOLEAN|FUNCTION|INI|(C|HASH)COMMENT)$" + +color magenta "\\.?" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "nginx" "nginx.*\.conf$" "\.nginx$" +header "^(server|upstream)[a-z ]*\{$" + +color brightmagenta "\<(events|server|http|location|upstream)[[:space:]]*\{" +color brightblack "(^|[[:space:]{;])(access_log|add_after_body|add_before_body|add_header|addition_types|aio|alias|allow|ancient_browser|ancient_browser_value|auth_basic|auth_basic_user_file|autoindex|autoindex_exact_size|autoindex_localtime|break|charset|charset_map|charset_types|chunked_transfer_encoding|client_body_buffer_size|client_body_in_file_only|client_body_in_single_buffer|client_body_temp_path|client_body_timeout|client_header_buffer_size|client_header_timeout|client_max_body_size|connection_pool_size|create_full_put_path|daemon|dav_access|dav_methods|default_type|deny|directio|directio_alignment|disable_symlinks|empty_gif|env|error_log|error_page|expires|fastcgi_buffer_size|fastcgi_buffers|fastcgi_busy_buffers_size|fastcgi_cache|fastcgi_cache_bypass|fastcgi_cache_key|fastcgi_cache_lock|fastcgi_cache_lock_timeout|fastcgi_cache_min_uses|fastcgi_cache_path|fastcgi_cache_use_stale|fastcgi_cache_valid|fastcgi_connect_timeout|fastcgi_hide_header|fastcgi_ignore_client_abort|fastcgi_ignore_headers|fastcgi_index|fastcgi_intercept_errors|fastcgi_keep_conn|fastcgi_max_temp_file_size|fastcgi_next_upstream|fastcgi_no_cache|fastcgi_param|fastcgi_pass|fastcgi_pass_header|fastcgi_read_timeout|fastcgi_send_timeout|fastcgi_split_path_info|fastcgi_store|fastcgi_store_access|fastcgi_temp_file_write_size|fastcgi_temp_path|flv|geo|geoip_city|geoip_country|gzip|gzip_buffers|gzip_comp_level|gzip_disable|gzip_http_version|gzip_min_length|gzip_proxied|gzip_static|gzip_types|gzip_vary|if|if_modified_since|ignore_invalid_headers|image_filter|image_filter_buffer|image_filter_jpeg_quality|image_filter_sharpen|image_filter_transparency|include|index|internal|ip_hash|keepalive|keepalive_disable|keepalive_requests|keepalive_timeout|large_client_header_buffers|limit_conn|limit_conn_log_level|limit_conn_zone|limit_except|limit_rate|limit_rate_after|limit_req|limit_req_log_level|limit_req_zone|limit_zone|lingering_close|lingering_time|lingering_timeout|listen|location|log_format|log_not_found|log_subrequest|map|map_hash_bucket_size|map_hash_max_size|master_process|max_ranges|memcached_buffer_size|memcached_connect_timeout|memcached_next_upstream|memcached_pass|memcached_read_timeout|memcached_send_timeout|merge_slashes|min_delete_depth|modern_browser|modern_browser_value|mp4|mp4_buffer_size|mp4_max_buffer_size|msie_padding|msie_refresh|open_file_cache|open_file_cache_errors|open_file_cache_min_uses|open_file_cache_valid|open_log_file_cache|optimize_server_names|override_charset|pcre_jit|perl|perl_modules|perl_require|perl_set|pid|port_in_redirect|postpone_output|proxy_buffer_size|proxy_buffering|proxy_buffers|proxy_busy_buffers_size|proxy_cache|proxy_cache_bypass|proxy_cache_key|proxy_cache_lock|proxy_cache_lock_timeout|proxy_cache_min_uses|proxy_cache_path|proxy_cache_use_stale|proxy_cache_valid|proxy_connect_timeout|proxy_cookie_domain|proxy_cookie_path|proxy_hide_header|proxy_http_version|proxy_ignore_client_abort|proxy_ignore_headers|proxy_intercept_errors|proxy_max_temp_file_size|proxy_next_upstream|proxy_no_cache|proxy_pass|proxy_pass_header|proxy_read_timeout|proxy_redirect|proxy_send_timeout|proxy_set_header|proxy_ssl_session_reuse|proxy_store|proxy_store_access|proxy_temp_file_write_size|proxy_temp_path|random_index|read_ahead|real_ip_header|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver|resolver_timeout|return|rewrite|root|satisfy|satisfy_any|secure_link_secret|send_lowat|send_timeout|sendfile|sendfile_max_chunk|server|server|server_name|server_name_in_redirect|server_names_hash_bucket_size|server_names_hash_max_size|server_tokens|set|set_real_ip_from|source_charset|split_clients|ssi|ssi_silent_errors|ssi_types|ssl|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_client_certificate|ssl_crl|ssl_dhparam|ssl_engine|ssl_prefer_server_ciphers|ssl_protocols|ssl_session_cache|ssl_session_timeout|ssl_verify_client|ssl_verify_depth|sub_filter|sub_filter_once|sub_filter_types|tcp_nodelay|tcp_nopush|timer_resolution|try_files|types|types_hash_bucket_size|types_hash_max_size|underscores_in_headers|uninitialized_variable_warn|upstream|user|userid|userid_domain|userid_expires|userid_name|userid_p3p|userid_path|userid_service|valid_referers|variables_hash_bucket_size|variables_hash_max_size|worker_priority|worker_processes|worker_rlimit_core|worker_rlimit_nofile|working_directory|xml_entities|xslt_stylesheet|xslt_types)([[:space:]]|$)" +color black "[{}]" +color brightcyan "\<(on|off)\>" +color brightyellow "\$[A-Za-z][A-Za-z0-9_]*" +color red "[*]" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color yellow start="'$" end="';$" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "patch" "\.(patch|diff)$" + +color brightgreen "^\+.*" +color green "^\+\+\+.*" +color brightred "^-.*" +color red "^---.*" +color blue "^@@.*" +color magenta "^diff.*" + +syntax "peg" "\.l?peg$" + +color brightblack "^[[:space:]]*[A-Za-z][A-Za-z0-9_]*[[:space:]]*<-" +color blue "\^[+-]?[0-9]+" +color red "[-+*?^/!&]|->|<-|=>" +color brightyellow "%[A-Za-z][A-Za-z0-9_]*" +color magenta "\[[^]]*\]" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "(^|[[:space:]])\-\-.*$" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "php" "\.php[2345s~]?$" +header "^(//|/\*).*[Pp][Hh][Pp]|<\?php\>" + +color red "[-+/*=<>?:!~%&|]" +color brightmagenta "(<\?(php)?|\?>)" +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color green "\<(float|global|double|bool|char|int|enum|const)\>" +color brightblack "\<(class|new|private|public|function|for|foreach|if|while|do|var)\>" +color brightblack "\<(return|else|elseif|case|default|switch)\>" +color brightred "\<(goto|break|continue)\>" +color brightcyan "\<(true|false)\>" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color brightyellow "\$[A-Za-z_][A-Za-z0-9_]*" +color cyan "(^|[[:space:]])//.*" +color cyan start="/\*" end="\*/" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "pkgbuild" "PKGBUILD$" "\.install$" + +color brightblue "^[A-Za-z0-9_+-]+[[:space:]]*\(\)" +color brightblack "\<(case|do|done|elif|else|esac|fi|for|function|if)\>" +color brightblack "\<(in|select|then|time|until|while)\>" +color brightblue "\<(echo|exit|export|let|local|read|return|set|shift|umask|unset)\>" +color green "\<(pkgname|pkgver|pkgrel|epoch|pkgdesc|arch|url|license)\>" +color green "\<(groups|depends|makedepends|checkdepends|optdepends)\>" +color green "\<(provides|conflicts|replaces|backup|options|^install)\>" +color green "\<(changelog|source|noextract)\>" +color green "\<(md5sums|sha1sums|sha256sums|sha384sums|sha512sums)\>" +color green "\<(srcdir|pkgdir)\>" +color brightyellow "\<(strip|docs|libtool|emptydirs|zipman|purge|upx)\>" +color brightyellow "\<(ccache|distcc|buildflags|makeflags)\>" +color red "[{}()<>!=&|;`$]|\\|\[|\]|-(eq|ne|gt|lt|ge|le|s|n|z)\>" +color yellow ""(\\.|[^"])*"" +color brightyellow "\$\{?[A-Za-z0-9_!@#$*?-]+\}?|`[^`]*`" +color yellow "'(\\.|[^'])*'" +color magenta "\\.?" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "pkg-config" "\.pc$" + +color brightblack "^(Name|Description|URL|Version|Conflicts|Cflags):" +color brightblack "^(Requires|Libs)(\.private)?:" +color red "=" +color brightyellow "\$\{[A-Za-z_][A-Za-z0-9_]*\}" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "po" "\.pot?$" + +color brightblack "\<(msgid|msgstr)\>" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color magenta "\\.?" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "privoxy-config" "privoxy/config$" + +color brightblack "(accept-intercepted-requests|actionsfile|admin-address|allow-cgi-request-crunching|buffer-limit|compression-level|confdir|connection-sharing|debug|default-server-timeout|deny-access|enable-compression|enable-edit-actions|enable-remote-http-toggle|enable-remote-toggle|enforce-blocks|filterfile|forward|forwarded-connect-retries|forward-socks4|forward-socks4a|forward-socks5|handle-as-empty-doc-returns-ok|hostname|keep-alive-timeout|listen-address|logdir|logfile|max-client-connections|permit-access|proxy-info-url|single-threaded|socket-timeout|split-large-forms|templdir|toggle|tolerate-pipelining|trustfile|trust-info-url|user-manual)[[:space:]]" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT + +syntax "privoxy-action" "\.action$" + +color brightred "[{[:space:]]\-block([[:space:]{}]|$)" +color brightgreen "[{[:space:]]\+block([[:space:]{}]|$)" + +color brightred "-(add-header|change-x-forwarded-for|client-header-filter|client-header-tagger|content-type-overwrite|crunch-client-header|crunch-if-none-match|crunch-incoming-cookies|crunch-outgoing-cookies|crunch-server-header|deanimate-gifs|downgrade-http-version|fast-redirects|filter|force-text-mode|forward-override|handle-as-empty-document|handle-as-image|hide-accept-language|hide-content-disposition|hide-from-header|hide-if-modified-since|hide-referrer|hide-user-agent|limit-connect|overwrite-last-modified|prevent-compression|redirect|server-header-filter|server-header-tagger|session-cookies-only|set-image-blocker)" +color brightgreen "\+(add-header|change-x-forwarded-for|client-header-filter|client-header-tagger|content-type-overwrite|crunch-client-header|crunch-if-none-match|crunch-incoming-cookies|crunch-outgoing-cookies|crunch-server-header|deanimate-gifs|downgrade-http-version|fast-redirects|filter|force-text-mode|forward-override|handle-as-empty-document|handle-as-image|hide-accept-language|hide-content-disposition|hide-from-header|hide-if-modified-since|hide-referrer|hide-user-agent|limit-connect|overwrite-last-modified|prevent-compression|redirect|server-header-filter|server-header-tagger|session-cookies-only|set-image-blocker)" +color black "[{}]" +color magenta "\\.?" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT + +syntax "privoxy-filter" "\.filter$" + +color brightblack "^(FILTER|CLIENT-HEADER-FILTER|CLIENT-HEADER-TAGGER|SERVER-HEADER-FILTER|SERVER-HEADER-TAGGER): [a-z-]+" +color brightblue "^(FILTER|CLIENT-HEADER-FILTER|CLIENT-HEADER-TAGGER|SERVER-HEADER-FILTER|SERVER-HEADER-TAGGER):" +color magenta "\\.?" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT + +syntax "properties" "\.properties$" + +color brightblack "^[[:space:]]*[^#!]([^:= ]|\\[:= ])*[:= ]" +color red "[:=]" +color magenta "\\([#!=: ]|$)" +color magenta "\\u[[:xdigit:]]{4}" +color cyan "^[[:space:]]*[#!].*$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "python" "\.py$" "jhbuildrc$" +header "^#!.*/(env +)?python[-0-9._]*( |$)" + +color brightblack "\<(as|assert|break|class|continue|def|del|elif|else|except)\>" +color brightblack "\<(exec|finally|for|from|global|if|import|lambda)\>" +color brightblack "\<(pass|print|raise|return|try|while|with|yield|None)\>" +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color red "[-+*/|=%<>&~^]|\<(and|not|or|is|in)\>" +color brightyellow "@[A-Za-z0-9_]+" +color brightmagenta "__[A-Za-z0-9_]+__" +color brightcyan "\<(True|False)\>" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color yellow "['][^']*[^\\][']" "[']{3}.*[^\\][']{3}" +color yellow "["][^"]*[^\\]["]" "["]{3}.*[^\\]["]{3}" +color yellow start=""""[^"]" end=""""" +color yellow start="'''[^']" end="'''" +color magenta "\\.?" +color cyan "(^|[[:space:]])#([^{].*)?$" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "rpmspec" "\.spec$" "\.rpmspec$" + +color brightblack "\<(Icon|ExclusiveOs|ExcludeOs):" +color brightblack "\<(BuildArch|BuildArchitectures|ExclusiveArch|ExcludeArch):" +color brightblack "\<(Conflicts|Obsoletes|Provides|Requires|Requires\(.*\)|Enhances|Suggests|BuildConflicts|BuildRequires|Recommends|PreReq|Supplements):" +color brightblack "\<(Epoch|Serial|Nosource|Nopatch):" +color brightblack "\<(AutoReq|AutoProv|AutoReqProv):" +color brightblack "\<(Copyright|License|Summary|Summary\(.*\)|Distribution|Vendor|Packager|Group|Source[0-9]*|Patch[0-9]*|BuildRoot|Prefix):" +color brightblack "\<(Name|Version|Release|Url|URL):" +color brightblack start="^(Source|Patch)" end=":" +color brightblack "(i386|i486|i586|i686|athlon|ia64|alpha|alphaev5|alphaev56|alphapca56|alphaev6|alphaev67|sparc|sparcv9|sparc64armv3l|armv4b|armv4lm|ips|mipsel|ppc|ppc|iseries|ppcpseries|ppc64|m68k|m68kmint|Sgi|rs6000|i370|s390x|s390|noarch)" +color brightblack "(ifarch|ifnarch|ifos|ifnos)" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color brightyellow "%(if|else|endif|define|global|undefine)" +color brightyellow "%_?([A-Z_a-z_0-9_]*)" +color brightyellow start="%\{" end="\}" +color brightyellow start="%\{__" end="\}" +color brightyellow "\$(RPM_BUILD_ROOT)\>" +color brightmagenta "^%(build$|changelog|check$|clean$|description)" +color brightmagenta "^%(files|install$|package|prep$)" +color brightmagenta "^%(pre|preun|pretrans|post|postun|posttrans)" +color brightmagenta "^%(trigger|triggerin|triggerpostun|triggerun|verifyscript)" +color cyan "(^|[[:space:]])#([^{].*)?$" +color blue "^\*.*$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +color brightwhite,cyan "TODO:?" +syntax "ruby" "\.rb$|Rakefile$" + +color brightblack "\<(BEGIN|END|alias|and|begin|break|case|class|def|defined\?|do|else|elsif|end|ensure|false|for|if|in|module|next|nil|not|or|redo|rescue|retry|return|self|super|then|true|undef|unless|until|when|while|yield)\>" +color yellow "(^|[[:space:]]):[A-Za-z0-9_]+\>" +color magenta "/([^/]|(\\/))*/[iomx]*" "%r\{([^}]|(\\}))*\}[iomx]*" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "(^|[[:space:]])#([^{].*)?$" +color cyan start="^=begin$" end="^=end$" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "sed" "\.sed$" +header "^#!.*bin/(env +)?sed( |$)" + +color red "[|^$.*+]" +color brightyellow "\{[0-9]+,?[0-9]*\}" +color magenta "\\." +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "sh" "\.sh$" "\.bash$" "bashrc$" "bash_profile$" +header "^#!.*/(env +)?(ba|k|pdk)?sh[-0-9_]*( |$)" + +color brightblue "^[A-Za-z0-9_+-]+[[:space:]]*\(\)" +color brightblack "\<(case|do|done|elif|else|esac|fi|for|function|if)\>" +color brightblack "\<(in|select|then|time|until|while)\>" +color brightblue "\<(echo|exit|export|let|local|read|return|set|shift|umask|unset)\>" +color brightblue "\<(source)\>" +color red "[{}()<>!=&|;`$]|\\|\[|\]|-(eq|ne|gt|lt|ge|le|s|n|z)\>" +color yellow ""(\\.|[^"])*"" +color brightyellow "\$\{?[A-Za-z0-9_!@#$*?-]+\}?|`[^`]*`" +color yellow "'(\\.|[^'])*'" +color magenta "\\.?" +color cyan "(^|[[:space:]])#([^{].*)?$" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "sql" "\.sql$" "sqliterc$" + +icolor brightblack "\<(ALL|ASC|AS|ALTER|AND|ADD|AUTO_INCREMENT)\>" +icolor brightblack "\<(BETWEEN|BINARY|BOTH|BY|BOOLEAN)\>" +icolor brightblack "\<(CHANGE|CHECK|COLUMNS|COLUMN|CROSS|CREATE)\>" +icolor brightblack "\<(DATABASES|DATABASE|DATA|DELAYED|DESCRIBE|DESC|DISTINCT|DELETE|DROP|DEFAULT)\>" +icolor brightblack "\<(ENCLOSED|ESCAPED|EXISTS|EXPLAIN)\>" +icolor brightblack "\<(FIELDS|FIELD|FLUSH|FOR|FOREIGN|FUNCTION|FROM)\>" +icolor brightblack "\<(GROUP|GRANT|HAVING)\>" +icolor brightblack "\<(IGNORE|INDEX|INFILE|INSERT|INNER|INTO|IDENTIFIED|IN|IS|IF)\>" +icolor brightblack "\<(JOIN|KEYS|KILL|KEY)\>" +icolor brightblack "\<(LEADING|LIKE|LIMIT|LINES|LOAD|LOCAL|LOCK|LOW_PRIORITY|LEFT|LANGUAGE)\>" +icolor brightblack "\<(MODIFY|NATURAL|NOT|NULL|NEXTVAL)\>" +icolor brightblack "\<(OPTIMIZE|OPTION|OPTIONALLY|ORDER|OUTFILE|OR|OUTER|ON)\>" +icolor brightblack "\<(PROCEDURE|PROCEDURAL|PRIMARY)\>" +icolor brightblack "\<(READ|REFERENCES|REGEXP|RENAME|REPLACE|RETURN|REVOKE|RLIKE|RIGHT)\>" +icolor brightblack "\<(SHOW|SONAME|STATUS|STRAIGHT_JOIN|SELECT|SETVAL|SET)\>" +icolor brightblack "\<(TABLES|TERMINATED|TO|TRAILING|TRUNCATE|TABLE|TEMPORARY|TRIGGER|TRUSTED)\>" +icolor brightblack "\<(UNIQUE|UNLOCK|USE|USING|UPDATE|VALUES|VARIABLES|VIEW)\>" +icolor brightblack "\<(WITH|WRITE|WHERE|ZEROFILL|TYPE|XOR)\>" +color green "\<(VARCHAR|TINYINT|TEXT|DATE|SMALLINT|MEDIUMINT|INT|INTEGER|BIGINT|FLOAT|DOUBLE|DECIMAL|DATETIME|TIMESTAMP|TIME|YEAR|UNSIGNED|CHAR|TINYBLOB|TINYTEXT|BLOB|MEDIUMBLOB|MEDIUMTEXT|LONGBLOB|LONGTEXT|ENUM|BOOL|BINARY|VARBINARY)\>" + +# SQLite meta commands +icolor brightblack "\.\<(databases|dump|echo|exit|explain|header(s)?|help)\>" +icolor brightblack "\.\<(import|indices|mode|nullvalue|output|prompt|quit|read)\>" +icolor brightblack "\.\<(schema|separator|show|tables|timeout|width)\>" +color brightcyan "\<(ON|OFF)\>" + +color blue "\<([0-9]+)\>" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color yellow "`(\\.|[^\\`])*`" +color cyan "\-\-.*$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "systemd" "\.(service|socket|mount|slice|target|timer|path)$" +header "^\[Unit\]$" + +color brightblack "^(Accept|After|Alias|AllowIsolate|Also|ANSI_COLOR|_AUDIT_LOGINUID|_AUDIT_SESSION|Backlog|Before|BindIPv6Only|BindsTo|BindToDevice|BlockIOReadBandwidth|BlockIOWeight|BlockIOWriteBandwidth|_BOOT_ID|Broadcast|BUG_REPORT_URL|BusName|Capabilities|CapabilityBoundingSet|CHASSIS|cipher|class|_CMDLINE|CODE_FILE|CODE_FUNC|CODE_LINE|_COMM|Compress|ConditionACPower|ConditionCapability|ConditionDirectoryNotEmpty|ConditionFileIsExecutable|ConditionFileNotEmpty|ConditionHost|ConditionKernelCommandLine|ConditionNull|ConditionPathExists|ConditionPathExistsGlob|ConditionPathIsDirectory|ConditionPathIsMountPoint|ConditionPathIsReadWrite|ConditionPathIsSymbolicLink|ConditionSecurity|ConditionVirtualization|Conflicts|ControlGroup|ControlGroupAttribute|ControlGroupModify|ControlGroupPersistent|controllers|Controllers|CPE_NAME|CPUAffinity|CPUSchedulingPolicy|CPUSchedulingPriority|CPUSchedulingResetOnFork|CPUShares|CrashChVT|CrashShell|__CURSOR|debug|DefaultControllers|DefaultDependencies|DefaultLimitAS|DefaultLimitCORE|DefaultLimitCPU|DefaultLimitDATA|DefaultLimitFSIZE|DefaultLimitLOCKS|DefaultLimitMEMLOCK|DefaultLimitMSGQUEUE|DefaultLimitNICE|DefaultLimitNOFILE|DefaultLimitNPROC|DefaultLimitRSS|DefaultLimitRTPRIO|DefaultLimitRTTIME|DefaultLimitSIGPENDING|DefaultLimitSTACK|DefaultStandardError|DefaultStandardOutput|Description|DeviceAllow|DeviceDeny|DirectoryMode|DirectoryNotEmpty|Documentation|DumpCore|entropy|Environment|EnvironmentFile|ERRNO|event_timeout|_EXE|ExecReload|ExecStart|ExecStartPost|ExecStartPre|ExecStop|ExecStopPost|ExecStopPre|filter|FONT|FONT_MAP|FONT_UNIMAP|ForwardToConsole|ForwardToKMsg|ForwardToSyslog|FreeBind|freq|FsckPassNo|fstab|_GID|Group|GuessMainPID|HandleHibernateKey|HandleLidSwitch|HandlePowerKey|HandleSuspendKey|hash|HibernateKeyIgnoreInhibited|HOME_URL|_HOSTNAME|ICON_NAME|ID|IdleAction|IdleActionSec|ID_LIKE|ID_MODEL|ID_MODEL_FROM_DATABASE|IgnoreOnIsolate|IgnoreOnSnapshot|IgnoreSIGPIPE|InaccessibleDirectories|InhibitDelayMaxSec|init|IOSchedulingClass|IOSchedulingPriority|IPTOS|IPTTL|JobTimeoutSec|JoinControllers|KeepAlive|KEYMAP|KEYMAP_TOGGLE|KillExcludeUsers|KillMode|KillOnlyUsers|KillSignal|KillUserProcesses|LidSwitchIgnoreInhibited|LimitAS|LimitCORE|LimitCPU|LimitDATA|LimitFSIZE|LimitLOCKS|LimitMEMLOCK|LimitMSGQUEUE|LimitNICE|LimitNOFILE|LimitNPROC|LimitRSS|LimitRTPRIO|LimitRTTIME|LimitSIGPENDING|LimitSTACK|link_priority|valueListenDatagram|ListenFIFO|ListenMessageQueue|ListenNetlink|ListenSequentialPacket|ListenSpecial|ListenStream|LogColor|LogLevel|LogLocation|LogTarget|luks|_MACHINE_ID|MakeDirectory|Mark|MaxConnections|MaxFileSec|MaxLevelConsole|MaxLevelKMsg|MaxLevelStore|MaxLevelSyslog|MaxRetentionSec|MemoryLimit|MemorySoftLimit|MESSAGE|MESSAGE_ID|MessageQueueMaxMessages|MessageQueueMessageSize|__MONOTONIC_TIMESTAMP|MountFlags|NAME|NAutoVTs|Nice|NonBlocking|NoNewPrivileges|NotifyAccess|OnActiveSec|OnBootSec|OnCalendar|OnFailure|OnFailureIsolate|OnStartupSec|OnUnitActiveSec|OnUnitInactiveSec|OOMScoreAdjust|Options|output|PAMName|PartOf|PassCredentials|PassSecurity|PathChanged|PathExists|PathExistsGlob|PathModified|PermissionsStartOnly|_PID|PIDFile|PipeSize|PowerKeyIgnoreInhibited|PRETTY_HOSTNAME|PRETTY_NAME|Priority|PRIORITY|PrivateNetwork|PrivateTmp|PropagatesReloadTo|pss|RateLimitBurst|RateLimitInterval|ReadOnlyDirectories|ReadWriteDirectories|__REALTIME_TIMESTAMP|ReceiveBuffer|RefuseManualStart|RefuseManualStop|rel|ReloadPropagatedFrom|RemainAfterExit|RequiredBy|Requires|RequiresMountsFor|RequiresOverridable|Requisite|RequisiteOverridable|ReserveVT|ResetControllers|Restart|RestartPreventExitStatus|RestartSec|RootDirectory|RootDirectoryStartOnly|RuntimeKeepFree|RuntimeMaxFileSize|RuntimeMaxUse|RuntimeWatchdogSec|samples|scale_x|scale_y|Seal|SecureBits|_SELINUX_CONTEXT|SendBuffer|SendSIGKILL|Service|ShowStatus|ShutdownWatchdogSec|size|SmackLabel|SmackLabelIPIn|SmackLabelIPOut|SocketMode|Sockets|SourcePath|_SOURCE_REALTIME_TIMESTAMP|SplitMode|StandardError|StandardInput|StandardOutput|StartLimitAction|StartLimitBurst|StartLimitInterval|static_node|StopWhenUnneeded|Storage|string_escape|none|replaceSuccessExitStatus|SupplementaryGroups|SUPPORT_URL|SuspendKeyIgnoreInhibited|SyslogFacility|SYSLOG_FACILITY|SyslogIdentifier|SYSLOG_IDENTIFIER|SyslogLevel|SyslogLevelPrefix|SYSLOG_PID|SystemCallFilter|SYSTEMD_ALIAS|_SYSTEMD_CGROUP|_SYSTEMD_OWNER_UID|SYSTEMD_READY|_SYSTEMD_SESSION|_SYSTEMD_UNIT|_SYSTEMD_USER_UNIT|SYSTEMD_WANTS|SystemKeepFree|SystemMaxFileSize|SystemMaxUse|SysVStartPriority|TCPCongestion|TCPWrapName|timeout|TimeoutSec|TimeoutStartSec|TimeoutStopSec|TimerSlackNSec|Transparent|_TRANSPORT|tries|TTYPath|TTYReset|TTYVHangup|TTYVTDisallocate|Type|_UID|UMask|Unit|User|UtmpIdentifier|VERSION|VERSION_ID|WantedBy|Wants|WatchdogSec|What|Where|WorkingDirectory)=" +color brightblue "^\.include\>" +color red "=" +color brightmagenta "^\[(Unit|Install|Service|Socket|Mount|Timer|Path)\]" +color brightyellow "\$MAINPID" +color brightcyan "\<(true|false)\>" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "tex" "\.(tex|cls|ltx|sty|dtx|ins|bbl)$" + +color brightyellow "\\[A-Za-z]+" +color brightmagenta "\\section" +color cyan "%.*" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "vala" "\.vala$" + +color green "\<(float|double|bool|char|int|uint|short|long|void|(un)?signed)\>" +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color brightblack "\<(for|if|while|do|else|case|default|switch|try|throw|catch)\>" +color brightblack "\<(inline|typedef|struct|enum|union|extern|static|const)\>" +color brightblack "\<(operator|new|delete|return|null|using)\>" +color brightblack "\<(class|override|private|public|signal|this|weak)\>" +color brightred "\<(goto|break|continue)\>" +color brightcyan "\<(true|false)\>" +color blue "\<([0-9]+)\>" +color red "[-+/*=<>?:!~%&|]" "->" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "(^|[[:space:]])//.*" +color cyan start="/\*" end="\*/" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "vi" "(^|/|\.)(ex|vim)rc$|\.vim" + +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color brightblack "\<([nvxsoilc]?(nore|un)?map|[nvlx]n|[ico]?no|[cilovx][um]|s?unm)\>" +color brightblack "\<(snor|nun|nm|set|if|endif|let|unlet)\>" +color red "[!&=]" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "(^|[[:space:]])\"[^"]*$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "xml" "\.([jrs]html?|sgml?|xml|opml|xslt?|plist)$" +header "<\?xml" + +color brightmagenta start="<" end=">" +color brightblack " [a-z_-]+=" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color brightwhite,red "&" +color magenta "&(#[0-9]+|#x[0-9a-fA-F]+|[A-Za-z][A-Za-z0-9]*);" +color cyan start="" +color cyan start="" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "xresources" "X(defaults|resources)$" + +color green "^[[:alnum:]]+\*" +color brightyellow "\*[[:alnum:]]+\:" +color blue "\<[0-9]+\>" +color red "[*:=]" +color brightcyan "\<(true|false)\>" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "yaml" "\.ya?ml$" +header "^---" "%YAML" + +color green "(^| )!!(binary|bool|float|int|map|null|omap|seq|set|str) " +color brightcyan "\<(YES|yes|Y|y|ON|on|NO|no|N|n|OFF|off)\>" +color brightcyan "\<(true|false)\>" +color red ":[[:space:]]" "\[" "\]" ":[[:space:]]+[|>]" "^[[:space:]]*- " +color brightyellow "[[:space:]][\*&][A-Za-z0-9]+" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "(^|[[:space:]])#([^{].*)?$" +color brightmagenta "^---" "^\.\.\." "^%YAML" "^%TAG" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +syntax "yum" "\.repo$|yum.*\.conf$" + +color brightblack "^[[:space:]]*[^=]*=" +color brightmagenta "^[[:space:]]*\[.*\]$" +color brightyellow "\$(releasever|arch|basearch|uuid|YUM[0-9])" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/awk.nanorc b/nano/syntax/awk.nanorc new file mode 100644 index 0000000..178fc9d --- /dev/null +++ b/nano/syntax/awk.nanorc @@ -0,0 +1,26 @@ +syntax "awk" "\.awk$" +header "^#!.*bin/(env +)?awk( |$)" + +color brightyellow "\$[A-Za-z0-9_!@#$*?-]+" +color brightyellow "\<(ARGC|ARGIND|ARGV|BINMODE|CONVFMT|ENVIRON|ERRNO|FIELDWIDTHS)\>" +color brightyellow "\<(FILENAME|FNR|FS|IGNORECASE|LINT|NF|NR|OFMT|OFS|ORS)\>" +color brightyellow "\<(PROCINFO|RS|RT|RSTART|RLENGTH|SUBSEP|TEXTDOMAIN)\>" +color brightblue "\<(function|extension|BEGIN|END)\>" +color red "[-+*/%^|!=&<>?;:]|\\|\[|\]" +color brightblack "\<(for|if|while|do|else|in|delete|exit)\>" +color brightblack "\<(break|continue|return)\>" +color brightblue "\<(close|getline|next|nextfile|print|printf|system|fflush)\>" +color brightblue "\<(atan2|cos|exp|int|log|rand|sin|sqrt|srand)\>" +color brightblue "\<(asort|asorti|gensub|gsub|index|length|match)\>" +color brightblue "\<(split|sprintf|strtonum|sub|substr|tolower|toupper)\>" +color brightblue "\<(mktime|strftime|systime)\>" +color brightblue "\<(and|compl|lshift|or|rshift|xor)\>" +color brightblue "\<(bindtextdomain|dcgettext|dcngettext)\>" +color magenta "/.*[^\]/" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color magenta "\\." +color cyan "(^|[[:space:]])#([^{].*)?$" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/c.nanorc b/nano/syntax/c.nanorc new file mode 100644 index 0000000..dd12989 --- /dev/null +++ b/nano/syntax/c.nanorc @@ -0,0 +1,25 @@ +syntax "c" "\.(c(c|pp|xx)?|C)$" "\.(h(h|pp|xx)?|H)$" "\.ii?$" + +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color brightyellow "\<[A-Z_][0-9A-Z_]+\>" +color green "\<(float|double|bool|char|int|short|long|void|(un)?signed)\>" +color green "\<[a-z0-9_]+_t\>" +color brightblack "\<(struct|enum|static|const|union|typedef|extern)\>" +color brightblack "\<(for|if|while|do|else|case|default|switch)\>" +color brightblack "\<(return|inline|sizeof|auto|register|volatile|restrict)\>" +color brightblack "\<(try|throw|catch|operator|new|delete)\>" +color brightred "\<(goto|break|continue)\>" +color brightcyan "\<(true|false)\>" +color red "[-+/*=<>?:!~%&|^]" +color blue "\<([0-9]+|0x[0-9a-fA-F]*)\>|'.'" +color brightyellow "^[[:space:]]*#[[:space:]]*(define|include(_next)?|(un|ifn?)def|endif|el(if|se)|if|warning|error|pragma)" +color magenta "__attribute__[[:space:]]*\(\([^)]*\)\)" "__(aligned|asm|builtin|hidden|inline|packed|restrict|section|typeof|weak)__" +color yellow ""(\\.|[^"])*"|<[A-Za-z_./-]+>" +color magenta "\\([\"'abfnrtv\\]|[0-3]?[0-7]{1,2}|x[A-Fa-f0-9]{1,2}|$)" +color cyan "(^|[[:space:]])//.*" +color cyan start="/\*" end="\*/" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/cmake.nanorc b/nano/syntax/cmake.nanorc new file mode 100644 index 0000000..43f4795 --- /dev/null +++ b/nano/syntax/cmake.nanorc @@ -0,0 +1,12 @@ +syntax "cmake" "CMakeLists\.txt$|\.cmake$" + +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color brightcyan "\<(ON|OFF|TRUE|FALSE|YES|NO)\>" +color brightyellow "\$\{[A-Za-z0-9_!@#$*?-]+\}" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color magenta "\\([()#$^]|\\|\")" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/coffeescript.nanorc b/nano/syntax/coffeescript.nanorc new file mode 100644 index 0000000..30427b6 --- /dev/null +++ b/nano/syntax/coffeescript.nanorc @@ -0,0 +1,17 @@ +syntax "coffeescript" "\.coffee$" +header "^#!.*/(env +)?coffee" + +color red "[!&|=/*+-<>]|\<(and|or|is|isnt|not)\>" +color brightblue "[A-Za-z_][A-Za-z0-9_]*:[[:space:]]*(->|\()" "->" +color black "[()]" +color brightblack "\<(for|of|continue|break|isnt|null|unless|this|else|if|return)\>" +color brightblack "\<(try|catch|finally|throw|new|delete|typeof|in|instanceof)\>" +color brightblack "\<(debugger|switch|while|do|class|extends|super)\>" +color brightblack "\<(undefined|then|unless|until|loop|of|by|when)\>" +color brightcyan "\<(true|false|yes|no|on|off)\>" +color brightyellow "@[A-Za-z0-9_]*" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/colortest.nanorc b/nano/syntax/colortest.nanorc new file mode 100644 index 0000000..bf48aaf --- /dev/null +++ b/nano/syntax/colortest.nanorc @@ -0,0 +1,17 @@ +syntax "colortest" "ColorTest$" + +color black "\" + +color red "\" +color green "\" +color yellow "\" +color blue "\" +color magenta "\" +color cyan "\" + +color brightred "\" +color brightgreen "\" +color brightyellow "\" +color brightblue "\" +color brightmagenta "\" +color brightcyan "\" diff --git a/nano/syntax/csharp.nanorc b/nano/syntax/csharp.nanorc new file mode 100644 index 0000000..74aff1b --- /dev/null +++ b/nano/syntax/csharp.nanorc @@ -0,0 +1,28 @@ +syntax "c#" "\.cs$" + +# Class +color brightmagenta "class +[A-Za-z0-9]+ *((:) +[A-Za-z0-9.]+)?" + +# Annotation +color magenta "@[A-Za-z]+" + +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color green "\<(bool|byte|sbyte|char|decimal|double|float|IntPtr|int|uint|long|ulong|object|short|ushort|string|base|this|var|void)\>" +color brightblack "\<(alias|as|case|catch|checked|default|do|dynamic|else|finally|fixed|for|foreach|goto|if|is|lock|new|null|return|switch|throw|try|unchecked|while)\>" +color brightblack "\<(abstract|async|class|const|delegate|enum|event|explicit|extern|get|implicit|in|internal|interface|namespace|operator|out|override|params|partial|private|protected|public|readonly|ref|sealed|set|sizeof|stackalloc|static|struct|typeof|unsafe|using|value|virtual|volatile|yield)\>" +# LINQ-only keywords (ones that cannot be used outside of a LINQ query - lots others can) +color brightblack "\<(from|where|select|group|info|orderby|join|let|in|on|equals|by|ascending|descending)\>" +color brightred "\<(break|continue)\>" +color brightcyan "\<(true|false)\>" +color red "[-+/*=<>?:!~%&|]" +color blue "\<([0-9._]+|0x[A-Fa-f0-9_]+|0b[0-1_]+)[FL]?\>" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color magenta "\\([btnfr]|'|\"|\\)" +color magenta "\\u[A-Fa-f0-9]{4}" +color cyan "(^|[[:space:]])//.*" +color cyan start="/\*" end="\*/" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/css.nanorc b/nano/syntax/css.nanorc new file mode 100644 index 0000000..f88b039 --- /dev/null +++ b/nano/syntax/css.nanorc @@ -0,0 +1,34 @@ +syntax "css" "\.s?css$" + +# Selectors +color green "\<(a|abbr|address|area|article|aside|audio|b|base|bdo|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|eventsource|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|mark|map|menu|meta|meter|nav|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|ruby|rp|rt|samp|script|section|select|small|source|span|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|ul|var|video|wbr)\>" +color red "[>+~*]" +color brightyellow "[.#][A-Za-z_][A-Za-z0-9_-]*" +color red ":(active|focus|hover|link|visited|first-child|lang|valid|invalid|not|selection)\>" +color red ":(after|before|first-line|first-letter|root|target)\>" +color yellow "\[[^\[]*\]" +color black start="\{" end="\}" + +# Sass +color brightmagenta "(^|[[:space:]])@(include|mixin)\>" +color brightyellow "\$[A-Za-z0-9_-]+" + +color brightmagenta "(^|[[:space:]])@(charset|font-face|media|page|import)\>" +color red "[*]" +color brightcyan "\<(above|absolute|always|armenian|auto|avoid|baseline|behind|below|bidi-override|blink|block|bolder|bold|bottom|capitalize|center-left|center-right|center|circle|cjk-ideographic|close-quote|collapse|compact|condensed|continuous|crop|crosshair|cross|cue-after|cue-before|cursive|dashed|decimal|decimal-leading-zero|default|digits|disc|dotted|double|embed|e-resize|expanded|extra-condensed|extra-expanded|fantasy|far-left|far-right|faster|fast|fixed|fixed|georgian|groove|hebrew|help|hide|higher|high|hiragana-iroha|hiragana|inherit|inline|inline-block|inline-table|inset|inside|invert|italic|justify|katakana-iroha|katakana|landscape|large|larger|left|left-side|leftwards|level|lighter|line-through|list-item|loud|lower-alpha|lowercase|lower-greek|lower-latin|lower-roman|lower|low|ltr|marker|medium|medium|middle|mix|monospace|move|narrower|ne-resize|no-close-quote|none|no-open-quote|no-repeat|normal|nowrap|n-resize|nw-resize|oblique|once|open-quote|outset|outside|overline|pointer|portait|relative|repeat-x|repeat-y|repeat|ridge|right-side|right|rightwards|rlt|run-in|sans-serif|scroll|scroll|semi-condensed|semi-expanded|separate|se-resize|serif|show|silent|slower|slow|small-caps|smaller|small|soft|solid|spell-out|square|s-resize|static|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|text-bottom|text|text-top|thick|thin|top|top|transparent|ultra-condensed|ultra-expanded|underline|upper-alpha|uppercase|upper-latin|upper-roman|visible|wait|wider|w-resize|x-fast|x-high|x-large|x-loud|x-low|x-slow|x-small|x-soft|xx-large|xx-small|pre-wrap|break-word)([[:space:];,]|$)" +color brightyellow ":[[:space:]]*(code|hidden|table|pre)\>" +color brightblack "\<(background-attachment|background-clip|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-radius|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|marker-offset|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numerical|speak-punctuation|speak|speech-rate|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|transition|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|word-wrap|z-index)[[:space:]]*:" +color brightwhite,red "-(ms|moz|apple|khtml|wap|webkit|o|xv)-[a-z][a-z-]+" +color black "[:;,]" +color blue "\<(0|[\+-]?[1-9][0-9]*)" +color blue "[\+-]?([0-9]+|[0-9]*\.[0-9]+)(%|e(m|x)|p(x|t|c)|in|ft|(m|c)m|k?Hz|deg|g?rad|m?s)" +color blue "#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})\>" +color red "\!important\>" +color brightblue "[a-z-]*(-[a-z]+)?\(" "\(|\)" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "(^|[[:space:]])//.*" +color cyan start="/\*" end="\*/" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/cython.nanorc b/nano/syntax/cython.nanorc new file mode 100644 index 0000000..9eb1c98 --- /dev/null +++ b/nano/syntax/cython.nanorc @@ -0,0 +1,28 @@ +syntax "cython" "\.(pyx|pxd|pyi)$" + +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color brightblack "\<(and|as|assert|break|class|continue|def|del|elif|else|except)\>" +color brightblack "\<(exec|finally|for|from|global|if|import|in|is|lambda|not|or)\>" +color brightblack "\<(pass|print|raise|return|try|while|with|yield|None)\>" +color brightblack "\<(DEF|ELIF|ELSE|IF)\>" + +color brightblack "\<(cp?def( inline)?|cimport|cppclass|ctypedef|extern|include)\>" +color brightblack "\<(namespace|property|struct)\>" +color green "\<(bint|char|double|int|public|void|unsigned)\>" + +color red "[.:;,+*|=!\%@<>/&-]" +color brightyellow "@[A-Za-z0-9_]+" +color brightmagenta "__[A-Za-z0-9_]+__" +color brightcyan "\<(True|False)\>" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color yellow "['][^']*[^\\][']" "[']{3}.*[^\\][']{3}" +color yellow "["][^"]*[^\\]["]" "["]{3}.*[^\\]["]{3}" +color yellow start=""""[^"]" end=""""" +color yellow start="'''[^']" end="'''" +color magenta "\\.?" +color cyan "(^|[[:space:]])#([^{].*)?$" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/default.nanorc b/nano/syntax/default.nanorc new file mode 100644 index 0000000..cf95e1a --- /dev/null +++ b/nano/syntax/default.nanorc @@ -0,0 +1,4 @@ +syntax "default" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/dot.nanorc b/nano/syntax/dot.nanorc new file mode 100644 index 0000000..1b36510 --- /dev/null +++ b/nano/syntax/dot.nanorc @@ -0,0 +1,8 @@ +syntax "dot" "\.(dot|gv)$" + +color brightblack "\<(digraph|edge|graph|node|subgraph)\>" +color magenta "\<(arrowhead|arrowsize|arrowtail|bgcolor|center|color|constraint|decorateP|dir|distortion|fillcolor|fontcolor|fontname|fontsize|headclip|headlabel|height|labelangle|labeldistance|labelfontcolor|labelfontname|labelfontsize|label|layers|layer|margin|mclimit|minlen|name|nodesep|nslimit|ordering|orientation|pagedir|page|peripheries|port_label_distance|rankdir|ranksep|rank|ratio|regular|rotate|samehead|sametail|shapefile|shape|sides|size|skew|style|tailclip|taillabel|URL|weight|width)\>" +color red "=|->|--" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "(^|[[:space:]])//.*" +color cyan start="/\*" end="\*/" diff --git a/nano/syntax/email.nanorc b/nano/syntax/email.nanorc new file mode 100644 index 0000000..6cd564e --- /dev/null +++ b/nano/syntax/email.nanorc @@ -0,0 +1,5 @@ +syntax "email" + +color magenta "^>([^>].*|$)" +color blue "^>>([^>].*|$)" +color green "^>>>.*" diff --git a/nano/syntax/git.nanorc b/nano/syntax/git.nanorc new file mode 100644 index 0000000..4fd1272 --- /dev/null +++ b/nano/syntax/git.nanorc @@ -0,0 +1,21 @@ +syntax "gitconfig" "git(config|modules)$|\.git/config$" + +color brightcyan "\<(true|false)\>" +color brightblack "^[[:space:]]*[^=]*=" +color brightmagenta "^[[:space:]]*\[.*\]$" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT + +syntax "git-editmsg" "(COMMIT|TAG)_EDITMSG$" + +color cyan "^#.*$" +color ,red "[[:space:]]+$" + +syntax "git-rebase" "git-rebase-todo$" + +color brightblack "^(edit|fixup|pick|reword|squash|exec|[efprsx])\>" +color blue "\<[0-9a-f]{7,40}\>" +color cyan "^#.*" diff --git a/nano/syntax/glsl.nanorc b/nano/syntax/glsl.nanorc new file mode 100644 index 0000000..2b157ee --- /dev/null +++ b/nano/syntax/glsl.nanorc @@ -0,0 +1,17 @@ +syntax "glsl" "\.(frag|vert|fp|vp|glsl)$" + +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color green "\<(void|bool|bvec2|bvec3|bvec4|int|ivec2|ivec3|ivec4|float|vec2|vec3|vec4|mat2|mat3|mat4|struct|sampler1D|sampler2D|sampler3D|samplerCUBE|sampler1DShadow|sampler2DShadow)\>" +color green "\" +color brightblack "\<(const|attribute|varying|uniform|in|out|inout|if|else|return|discard|while|for|do)\>" +color brightred "\<(break|continue)\>" +color brightcyan "\<(true|false)\>" +color red "[-+/*=<>?:!~%&|^]" +color blue "\<([0-9]+|0x[0-9a-fA-F]*)\>" +color cyan "(^|[[:space:]])//.*" +color cyan start="/\*" end="\*/" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/go.nanorc b/nano/syntax/go.nanorc new file mode 100644 index 0000000..8f483f3 --- /dev/null +++ b/nano/syntax/go.nanorc @@ -0,0 +1,24 @@ +syntax "go" "\.go$" + +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color brightblue "\<(append|cap|close|complex|copy|delete|imag|len)\>" +color brightblue "\<(make|new|panic|print|println|protect|real|recover)\>" +color green "\<(u?int(8|16|32|64)?|float(32|64)|complex(64|128))\>" +color green "\<(uintptr|byte|rune|string|interface|bool|map|chan|error)\>" +color brightblack "\<(package|import|const|var|type|struct|func|go|defer|nil|iota)\>" +color brightblack "\<(for|range|if|else|case|default|switch|return)\>" +color brightred "\<(go|goto|break|continue)\>" +color brightcyan "\<(true|false)\>" +color red "[-+/*=<>!~%&|^]|:=" +color blue "\<([0-9]+|0x[0-9a-fA-F]*)\>|'.'" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color magenta "\\[abfnrtv'\"\\]" +color magenta "\\([0-7]{3}|x[A-Fa-f0-9]{2}|u[A-Fa-f0-9]{4}|U[A-Fa-f0-9]{8})" +color yellow "`[^`]*`" +color cyan "(^|[[:space:]])//.*" +color cyan start="/\*" end="\*/" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/html.nanorc b/nano/syntax/html.nanorc new file mode 100644 index 0000000..e5aaddc --- /dev/null +++ b/nano/syntax/html.nanorc @@ -0,0 +1,24 @@ +syntax "html" "\.html?$" +header "" +color brightwhite,red "]" +color brightmagenta "]" +color yellow "=([A-Za-z0-9!$%*\^(){}#|:;_~@+,.?/\\-]|\[|\])+" +color red "=" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color black start=">" end="<" +color brightmagenta "[<>]" + +# Embedded template languages +color brightyellow "\{\{[^}]*\}\}|<%=.*%>" +color brightblue start="<\?" end="\?>" +color brightblue start="<%[^=]" end="%>" +color brightblue start="\{%" end="%\}" + +color magenta "&(#[0-9]+|#x[0-9a-fA-F]+|[A-Za-z][A-Za-z0-9]*);" +color cyan start="" +color cyan "]*>" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/ini.nanorc b/nano/syntax/ini.nanorc new file mode 100644 index 0000000..3233b23 --- /dev/null +++ b/nano/syntax/ini.nanorc @@ -0,0 +1,12 @@ +syntax "ini" "\.(ini|desktop|lfl|override)$" "(mimeapps\.list|pinforc|setup\.cfg)$" "weechat/.+\.conf$" +header "^\[[A-Za-z]+\]$" + +color brightcyan "\<(true|false)\>" +color brightblack "^[[:space:]]*[^=]*=" +color brightmagenta "^[[:space:]]*\[.*\]$" +color red "[=;]" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/inputrc.nanorc b/nano/syntax/inputrc.nanorc new file mode 100644 index 0000000..4b347f1 --- /dev/null +++ b/nano/syntax/inputrc.nanorc @@ -0,0 +1,11 @@ +syntax "inputrc" "inputrc$" + +color red "\<(off|none)\>" +color green "\" +color brightblue "\" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color magenta "\\.?" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/java.nanorc b/nano/syntax/java.nanorc new file mode 100644 index 0000000..a9e6b45 --- /dev/null +++ b/nano/syntax/java.nanorc @@ -0,0 +1,29 @@ +syntax "java" "\.java$" + +# Class +color brightmagenta "class +[A-Za-z0-9]+ *((implements|extends) +[A-Za-z0-9.]+)?" + +# Annotation +color magenta "@[A-Za-z]+" + +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color green "\<(boolean|byte|char|double|float|int|long|short|String|void)\>" +color brightblack "\<(case|catch|default|do|else|finally|for|if)\>" +color brightblack "\<(new|return|switch|this|throw|transient|try|while)\>" +color brightblack "\<(abstract|class|extends|final|implements|import|instanceof)\>" +color brightblack "\<(interface|native|package|private|protected|public|static)\>" +color brightblack "\<(strictfp|super|synchronized|throws|volatile|null)\>" +color brightred "\<(break|continue)\>" +color brightcyan "\<(true|false)\>" +color red "[-+/*=<>?:!~%&|]" +color blue "\<([0-9._]+|0x[A-Fa-f0-9_]+|0b[0-1_]+)[FL]?\>" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color magenta "\\([btnfr]|'|\"|\\)" +color magenta "\\u[A-Fa-f0-9]{4}" +color cyan "(^|[[:space:]])//.*" +color cyan start="/\*" end="\*/" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/javascript.nanorc b/nano/syntax/javascript.nanorc new file mode 100644 index 0000000..ee14e0f --- /dev/null +++ b/nano/syntax/javascript.nanorc @@ -0,0 +1,24 @@ +syntax "JavaScript" "\.js$" + +color blue "\<[-+]?([1-9][0-9]*|0[0-7]*|0x[0-9a-fA-F]+)([uU][lL]?|[lL][uU]?)?\>" +color blue "\<[-+]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([EePp][+-]?[0-9]+)?[fFlL]?" +color blue "\<[-+]?([0-9]+[EePp][+-]?[0-9]+)[fFlL]?" +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color brightblack "\<(break|case|catch|continue|default|delete|do|else|finally)\>" +color brightblack "\<(for|function|get|if|in|instanceof|new|return|set|switch)\>" +color brightblack "\<(switch|this|throw|try|typeof|var|void|while|with)\>" +color brightblack "\<(null|undefined|NaN)\>" +color brightcyan "\<(true|false)\>" +color green "\<(Array|Boolean|Date|Enumerator|Error|Function|Math)\>" +color green "\<(Number|Object|RegExp|String)\>" +color red "[-+/*=<>!~%?:&|]" +color magenta "/[^*]([^/]|(\\/))*[^\\]/[gim]*" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color magenta "\\[0-7][0-7]?[0-7]?|\\x[0-9a-fA-F]+|\\[bfnrt'"\?\\]" +color cyan "(^|[[:space:]])//.*" +color cyan start="/\*" end="\*/" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/json.nanorc b/nano/syntax/json.nanorc new file mode 100644 index 0000000..f4918d1 --- /dev/null +++ b/nano/syntax/json.nanorc @@ -0,0 +1,12 @@ +syntax "json" "\.json$" +header "^\{$" + +color blue "\<[-]?[1-9][0-9]*([Ee][+-]?[0-9]+)?\>" "\<[-]?[0](\.[0-9]+)?\>" +color brightblack "\" +color brightcyan "\<(true|false)\>" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color brightyellow "\"(\\"|[^"])*\"[[:space:]]*:" "'(\'|[^'])*'[[:space:]]*:" +color magenta "\\u[0-9a-fA-F]{4}|\\[bfnrt'"/\\]" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/keymap.nanorc b/nano/syntax/keymap.nanorc new file mode 100644 index 0000000..dd9bf15 --- /dev/null +++ b/nano/syntax/keymap.nanorc @@ -0,0 +1,11 @@ +syntax "keymap" "\.(k|key)?map$|Xmodmap$" + +color brightblack "\<(add|clear|compose|keycode|keymaps|keysym|remove|string)\>" +color brightblack "\<(control|alt|shift)\>" +color blue "\<[0-9]+\>" +color red "=" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "^!.*$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/kickstart.nanorc b/nano/syntax/kickstart.nanorc new file mode 100644 index 0000000..d568266 --- /dev/null +++ b/nano/syntax/kickstart.nanorc @@ -0,0 +1,16 @@ +syntax "KickStart" "\.ks$" "\.kickstart$" + +color brightmagenta "%[a-z]+" +color brightblack "^[[:space:]]*(install|cdrom|text|graphical|volgroup|logvol|reboot|timezone|lang|keyboard|authconfig|firstboot|rootpw|user|firewall|selinux|repo|part|partition|clearpart|bootloader)" +color brightblack "--(name|mirrorlist|baseurl|utc)(=|\>)" +color brightyellow "\$(releasever|basearch)\>" + +# Packages and groups +color brightblack "^@[A-Za-z][A-Za-z-]*" +color brightred "^-@[a-zA-Z0-9*-]+" +color red "^-[a-zA-Z0-9*-]+" + +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/ledger.nanorc b/nano/syntax/ledger.nanorc new file mode 100644 index 0000000..c6b8e83 --- /dev/null +++ b/nano/syntax/ledger.nanorc @@ -0,0 +1,9 @@ +syntax "ledger" "(^|\.|/)ledger$" + +color brightmagenta "^([0-9]{4}/[0-9]{2}/[0-9]{2}|[=~]) .*" +color blue "^[0-9]{4}/[0-9]{2}/[0-9]{2}" +color brightyellow "^~ .*" +color brightblue "^= .*" +color brightblack "^[[:space:]]+\(?[A-Za-z ]+(:[A-Za-z ]+)*\)?" +color red "[*]" +color cyan "^[[:space:]]*;.*" diff --git a/nano/syntax/lisp.nanorc b/nano/syntax/lisp.nanorc new file mode 100644 index 0000000..9491f64 --- /dev/null +++ b/nano/syntax/lisp.nanorc @@ -0,0 +1,15 @@ +syntax "lisp" "(emacs|zile)$" "\.(el|li?sp|scm|ss)$" + +color brightblue "\([a-z-]+" +color red "\(([-+*/<>]|<=|>=)|'" +color black "\(" +color blue "\<[0-9]+\>" +icolor brightblack "\" +color brightcyan "\<[tT]\>" +color yellow "\"(\\.|[^"])*\"" +color magenta "'[A-Za-z][A-Za-z0-9_-]+" +color magenta "\\.?" +color cyan "(^|[[:space:]]);.*" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/lua.nanorc b/nano/syntax/lua.nanorc new file mode 100644 index 0000000..0b9c29c --- /dev/null +++ b/nano/syntax/lua.nanorc @@ -0,0 +1,24 @@ +syntax "lua" "\.lua$" +header "^#!.*lua(jit)?$" + +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*([({'"]|\[=*\[)" +color brightblack "\<(do|end|while|repeat|until|if|elseif|then|else)\>" +color brightblack "\<(for|in|function|local|return|nil)\>" +color brightred "\<(goto|break)\>" +color brightcyan "\<(true|false)\>" +color red "[-+:*/%^=#<>]|~=|\.\.|\[|\]|\<(not|and|or)\>" +color brightwhite,red "[`!@$&|?]|!=" +color black "\.{3,}|[({'"]" +color blue "\<([0-9]+)(\.[0-9]+)?([Ee][+-]?[0-9]+)?\>|0x[0-9a-fA-F]*" +color brightmagenta "::[A-Za-z_][A-Za-z0-9_]*::" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color magenta "\\([0-9]{1,3}|x[A-Fa-f0-9]{2}|[abefntrv'"\\]|\[|\])" +color yellow start="\[\[" end="\]\]" +color yellow start="\[=\[" end="\]=\]" +color yellow start="\[==\[" end="\]==\]" +color cyan "^#!.*" "(^|[[:space:]])\-\-.*$" +color cyan start="\-\-\[\[" end="\]\]" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/makefile.nanorc b/nano/syntax/makefile.nanorc new file mode 100644 index 0000000..8c89054 --- /dev/null +++ b/nano/syntax/makefile.nanorc @@ -0,0 +1,22 @@ +syntax "makefile" "([Mm]akefile|\.ma?k)$" +header "^#!.*/(env +)?[bg]?make( |$)" + +color brightblack "\<(ifeq|ifdef|ifneq|ifndef|else|endif)\>" +color brightblack "^(export|include|override)\>" +color brightmagenta "^[^:= ]+:" +color red "[=,%]" "\+=|\?=|:=|&&|\|\|" +color brightblue "\$\((abspath|addprefix|addsuffix|and|basename|call|dir)[[:space:]]" +color brightblue "\$\((error|eval|filter|filter-out|findstring|firstword)[[:space:]]" +color brightblue "\$\((flavor|foreach|if|info|join|lastword|notdir|or)[[:space:]]" +color brightblue "\$\((origin|patsubst|realpath|shell|sort|strip|suffix)[[:space:]]" +color brightblue "\$\((value|warning|wildcard|word|wordlist|words)[[:space:]]" +color black "[()$]" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color brightyellow "\$+(\{[^} ]+\}|\([^) ]+\))" +color brightyellow "\$[@^<*?%|+]|\$\([@^<*?%+-][DF]\)" +color magenta "\$\$|\\.?" +color cyan "(^|[[:space:]])#([^{].*)?$" +color cyan "^ @#.*" + +# Show trailing whitespace +color ,green "[[:space:]]+$" diff --git a/nano/syntax/man.nanorc b/nano/syntax/man.nanorc new file mode 100644 index 0000000..ef2a83d --- /dev/null +++ b/nano/syntax/man.nanorc @@ -0,0 +1,10 @@ +syntax "man" "\.[1-9]x?$" + +color brightmagenta "\.(S|T)H.*$" +color brightblack "\.(BR?|I[PR]?).*$" +color brightyellow "\.(S|T)H|\.TP|\.(BR?|I[PR]?|PP)|\\f[BIPR]" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color yellow "\.(br|DS|RS|RE|PD)" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/markdown.nanorc b/nano/syntax/markdown.nanorc new file mode 100644 index 0000000..1df24ca --- /dev/null +++ b/nano/syntax/markdown.nanorc @@ -0,0 +1,19 @@ +syntax "markdown" "\.(md|mkd|mkdn|markdown)$" + +# Emphasis +color green "(^|[[:space:]])(_[^ ][^_]*_|\*[^ ][^*]*\*)" + +# Strong emphasis +color brightgreen "(^|[[:space:]])(__[^ ][^_]*__|\*\*[^ ][^*]*\*\*)" + +color brightmagenta "^=====*$|^-----*$|^#{1,6}.*" +color blue "^[[:space:]]*[\*+-] |^[[:space:]]*[0-9]+\. " +color black "^[[:space:]]+" +color magenta "\(([CcRr]|[Tt][Mm])\)" "\.{3}" "(^|[[:space:]])\-\-($|[[:space:]])" +color brightyellow "\!?\[[^]]*\]([[:space:]]*\[[^]]*\]|\(.*\))?" +color brightyellow "^\[.*\]:[[:space:]]*[^"]*" +color yellow "`[^`]*`|^ {4}[^-+*].*" +color cyan "^>.*" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/mpdconf.nanorc b/nano/syntax/mpdconf.nanorc new file mode 100644 index 0000000..01cdb50 --- /dev/null +++ b/nano/syntax/mpdconf.nanorc @@ -0,0 +1,10 @@ +syntax "mpdconf" "mpd\.conf$" + +color brightblack "\<(user|group|bind_to_address|host|port|plugin|name|type)\>" +color brightblack "\<((music|playlist)_directory|(db|log|state|pid|sticker)_file)\>" +color brightmagenta "^(input|audio_output|decoder)[[:space:]]*\{|\}" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/nanorc.nanorc b/nano/syntax/nanorc.nanorc new file mode 100644 index 0000000..9e5b65e --- /dev/null +++ b/nano/syntax/nanorc.nanorc @@ -0,0 +1,20 @@ +syntax "nanorc" "nanorc$" +header "^syntax +\"" + +color green "^i?color[[:space:]]*(bright)?(white|black|red|blue|green|yellow|magenta|cyan)?(,(white|black|red|blue|green|yellow|magenta|cyan))?\>" +color brightblack "^(set|unset)[[:space:]]+(allow_insecure_backup|autoindent|backup|backupdir|backwards|boldtext|brackets|casesensitive|const|cut|fill|historylog|matchbrackets|morespace|mouse|multibuffer|noconvert|nofollow|nohelp|nonewlines|nowrap|operatingdir|poslog|preserve|punct)\>" "^[[:space:]]*(set|unset)[[:space:]]+(quickblank|quotestr|rebinddelete|rebindkeypad|regexp|smarthome|smooth|softwrap|speller|suspend|suspendenable|tabsize|tabstospaces|tempfile|undo|view|whitespace|wordbounds)\>" +color brightblack "^(bind|i?color|set|unset|syntax|header|magic)\>" +color red "^unbind\>" +color brightblack "^i?color\>" "\<(start|end)=" +color brightyellow "^include\>" + +color brightblack "^(PLAIN|TYPE|STRING|MACRO|NUMBER|VARIABLE|OPERATOR|~?KEYWORD):" +color brightblack "^(BOOLEAN|SECTION|REGEXP|FUNCTION|ESCAPE|COMMENT|WARNING|JUMP):" +color brightblack "^(TAG|ATTRIBUTE):" +color brightyellow "^\+(TODO|LINT|STRING|BOOLEAN|FUNCTION|INI|(C|HASH)COMMENT)$" + +color magenta "\\.?" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/nginx.nanorc b/nano/syntax/nginx.nanorc new file mode 100644 index 0000000..af27522 --- /dev/null +++ b/nano/syntax/nginx.nanorc @@ -0,0 +1,15 @@ +syntax "nginx" "nginx.*\.conf$" "\.nginx$" +header "^(server|upstream)[a-z ]*\{$" + +color brightmagenta "\<(events|server|http|location|upstream)[[:space:]]*\{" +color brightblack "(^|[[:space:]{;])(access_log|add_after_body|add_before_body|add_header|addition_types|aio|alias|allow|ancient_browser|ancient_browser_value|auth_basic|auth_basic_user_file|autoindex|autoindex_exact_size|autoindex_localtime|break|charset|charset_map|charset_types|chunked_transfer_encoding|client_body_buffer_size|client_body_in_file_only|client_body_in_single_buffer|client_body_temp_path|client_body_timeout|client_header_buffer_size|client_header_timeout|client_max_body_size|connection_pool_size|create_full_put_path|daemon|dav_access|dav_methods|default_type|deny|directio|directio_alignment|disable_symlinks|empty_gif|env|error_log|error_page|expires|fastcgi_buffer_size|fastcgi_buffers|fastcgi_busy_buffers_size|fastcgi_cache|fastcgi_cache_bypass|fastcgi_cache_key|fastcgi_cache_lock|fastcgi_cache_lock_timeout|fastcgi_cache_min_uses|fastcgi_cache_path|fastcgi_cache_use_stale|fastcgi_cache_valid|fastcgi_connect_timeout|fastcgi_hide_header|fastcgi_ignore_client_abort|fastcgi_ignore_headers|fastcgi_index|fastcgi_intercept_errors|fastcgi_keep_conn|fastcgi_max_temp_file_size|fastcgi_next_upstream|fastcgi_no_cache|fastcgi_param|fastcgi_pass|fastcgi_pass_header|fastcgi_read_timeout|fastcgi_send_timeout|fastcgi_split_path_info|fastcgi_store|fastcgi_store_access|fastcgi_temp_file_write_size|fastcgi_temp_path|flv|geo|geoip_city|geoip_country|gzip|gzip_buffers|gzip_comp_level|gzip_disable|gzip_http_version|gzip_min_length|gzip_proxied|gzip_static|gzip_types|gzip_vary|if|if_modified_since|ignore_invalid_headers|image_filter|image_filter_buffer|image_filter_jpeg_quality|image_filter_sharpen|image_filter_transparency|include|index|internal|ip_hash|keepalive|keepalive_disable|keepalive_requests|keepalive_timeout|large_client_header_buffers|limit_conn|limit_conn_log_level|limit_conn_zone|limit_except|limit_rate|limit_rate_after|limit_req|limit_req_log_level|limit_req_zone|limit_zone|lingering_close|lingering_time|lingering_timeout|listen|location|log_format|log_not_found|log_subrequest|map|map_hash_bucket_size|map_hash_max_size|master_process|max_ranges|memcached_buffer_size|memcached_connect_timeout|memcached_next_upstream|memcached_pass|memcached_read_timeout|memcached_send_timeout|merge_slashes|min_delete_depth|modern_browser|modern_browser_value|mp4|mp4_buffer_size|mp4_max_buffer_size|msie_padding|msie_refresh|open_file_cache|open_file_cache_errors|open_file_cache_min_uses|open_file_cache_valid|open_log_file_cache|optimize_server_names|override_charset|pcre_jit|perl|perl_modules|perl_require|perl_set|pid|port_in_redirect|postpone_output|proxy_buffer_size|proxy_buffering|proxy_buffers|proxy_busy_buffers_size|proxy_cache|proxy_cache_bypass|proxy_cache_key|proxy_cache_lock|proxy_cache_lock_timeout|proxy_cache_min_uses|proxy_cache_path|proxy_cache_use_stale|proxy_cache_valid|proxy_connect_timeout|proxy_cookie_domain|proxy_cookie_path|proxy_hide_header|proxy_http_version|proxy_ignore_client_abort|proxy_ignore_headers|proxy_intercept_errors|proxy_max_temp_file_size|proxy_next_upstream|proxy_no_cache|proxy_pass|proxy_pass_header|proxy_read_timeout|proxy_redirect|proxy_send_timeout|proxy_set_header|proxy_ssl_session_reuse|proxy_store|proxy_store_access|proxy_temp_file_write_size|proxy_temp_path|random_index|read_ahead|real_ip_header|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver|resolver_timeout|return|rewrite|root|satisfy|satisfy_any|secure_link_secret|send_lowat|send_timeout|sendfile|sendfile_max_chunk|server|server|server_name|server_name_in_redirect|server_names_hash_bucket_size|server_names_hash_max_size|server_tokens|set|set_real_ip_from|source_charset|split_clients|ssi|ssi_silent_errors|ssi_types|ssl|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_client_certificate|ssl_crl|ssl_dhparam|ssl_engine|ssl_prefer_server_ciphers|ssl_protocols|ssl_session_cache|ssl_session_timeout|ssl_verify_client|ssl_verify_depth|sub_filter|sub_filter_once|sub_filter_types|tcp_nodelay|tcp_nopush|timer_resolution|try_files|types|types_hash_bucket_size|types_hash_max_size|underscores_in_headers|uninitialized_variable_warn|upstream|user|userid|userid_domain|userid_expires|userid_name|userid_p3p|userid_path|userid_service|valid_referers|variables_hash_bucket_size|variables_hash_max_size|worker_priority|worker_processes|worker_rlimit_core|worker_rlimit_nofile|working_directory|xml_entities|xslt_stylesheet|xslt_types)([[:space:]]|$)" +color black "[{}]" +color brightcyan "\<(on|off)\>" +color brightyellow "\$[A-Za-z][A-Za-z0-9_]*" +color red "[*]" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color yellow start="'$" end="';$" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/patch.nanorc b/nano/syntax/patch.nanorc new file mode 100644 index 0000000..60b6f8d --- /dev/null +++ b/nano/syntax/patch.nanorc @@ -0,0 +1,9 @@ +syntax "patch" "\.(patch|diff)$" + +color brightgreen "^\+.*" +color green "^\+\+\+.*" +color brightred "^-.*" +color red "^---.*" +color blue "^@@.*" +color magenta "^diff.*" + diff --git a/nano/syntax/peg.nanorc b/nano/syntax/peg.nanorc new file mode 100644 index 0000000..da6d9ff --- /dev/null +++ b/nano/syntax/peg.nanorc @@ -0,0 +1,13 @@ +syntax "peg" "\.l?peg$" + +color brightblack "^[[:space:]]*[A-Za-z][A-Za-z0-9_]*[[:space:]]*<-" +color blue "\^[+-]?[0-9]+" +color red "[-+*?^/!&]|->|<-|=>" +color brightyellow "%[A-Za-z][A-Za-z0-9_]*" +color magenta "\[[^]]*\]" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "(^|[[:space:]])\-\-.*$" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/php.nanorc b/nano/syntax/php.nanorc new file mode 100644 index 0000000..2b2a065 --- /dev/null +++ b/nano/syntax/php.nanorc @@ -0,0 +1,20 @@ +syntax "php" "\.php[2345s~]?$" +header "^(//|/\*).*[Pp][Hh][Pp]|<\?php\>" + +color red "[-+/*=<>?:!~%&|]" +color brightmagenta "(<\?(php)?|\?>)" +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color green "\<(float|global|double|bool|char|int|enum|const)\>" +color brightblack "\<(class|new|private|public|function|for|foreach|if|while|do|var)\>" +color brightblack "\<(return|else|elseif|case|default|switch)\>" +color brightred "\<(goto|break|continue)\>" +color brightcyan "\<(true|false)\>" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color brightyellow "\$[A-Za-z_][A-Za-z0-9_]*" +color cyan "(^|[[:space:]])//.*" +color cyan start="/\*" end="\*/" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/pkg-config.nanorc b/nano/syntax/pkg-config.nanorc new file mode 100644 index 0000000..ec02bee --- /dev/null +++ b/nano/syntax/pkg-config.nanorc @@ -0,0 +1,9 @@ +syntax "pkg-config" "\.pc$" + +color brightblack "^(Name|Description|URL|Version|Conflicts|Cflags):" +color brightblack "^(Requires|Libs)(\.private)?:" +color red "=" +color brightyellow "\$\{[A-Za-z_][A-Za-z0-9_]*\}" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/pkgbuild.nanorc b/nano/syntax/pkgbuild.nanorc new file mode 100644 index 0000000..20a4676 --- /dev/null +++ b/nano/syntax/pkgbuild.nanorc @@ -0,0 +1,23 @@ +syntax "pkgbuild" "PKGBUILD$" "\.install$" + +color brightblue "^[A-Za-z0-9_+-]+[[:space:]]*\(\)" +color brightblack "\<(case|do|done|elif|else|esac|fi|for|function|if)\>" +color brightblack "\<(in|select|then|time|until|while)\>" +color brightblue "\<(echo|exit|export|let|local|read|return|set|shift|umask|unset)\>" +color green "\<(pkgname|pkgver|pkgrel|epoch|pkgdesc|arch|url|license)\>" +color green "\<(groups|depends|makedepends|checkdepends|optdepends)\>" +color green "\<(provides|conflicts|replaces|backup|options|^install)\>" +color green "\<(changelog|source|noextract)\>" +color green "\<(md5sums|sha1sums|sha256sums|sha384sums|sha512sums)\>" +color green "\<(srcdir|pkgdir)\>" +color brightyellow "\<(strip|docs|libtool|emptydirs|zipman|purge|upx)\>" +color brightyellow "\<(ccache|distcc|buildflags|makeflags)\>" +color red "[{}()<>!=&|;`$]|\\|\[|\]|-(eq|ne|gt|lt|ge|le|s|n|z)\>" +color yellow ""(\\.|[^"])*"" +color brightyellow "\$\{?[A-Za-z0-9_!@#$*?-]+\}?|`[^`]*`" +color yellow "'(\\.|[^'])*'" +color magenta "\\.?" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/po.nanorc b/nano/syntax/po.nanorc new file mode 100644 index 0000000..72dc4b1 --- /dev/null +++ b/nano/syntax/po.nanorc @@ -0,0 +1,9 @@ +syntax "po" "\.pot?$" + +color brightblack "\<(msgid|msgstr)\>" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color magenta "\\.?" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/privoxy.nanorc b/nano/syntax/privoxy.nanorc new file mode 100644 index 0000000..220d5ca --- /dev/null +++ b/nano/syntax/privoxy.nanorc @@ -0,0 +1,32 @@ +syntax "privoxy-config" "privoxy/config$" + +color brightblack "(accept-intercepted-requests|actionsfile|admin-address|allow-cgi-request-crunching|buffer-limit|compression-level|confdir|connection-sharing|debug|default-server-timeout|deny-access|enable-compression|enable-edit-actions|enable-remote-http-toggle|enable-remote-toggle|enforce-blocks|filterfile|forward|forwarded-connect-retries|forward-socks4|forward-socks4a|forward-socks5|handle-as-empty-doc-returns-ok|hostname|keep-alive-timeout|listen-address|logdir|logfile|max-client-connections|permit-access|proxy-info-url|single-threaded|socket-timeout|split-large-forms|templdir|toggle|tolerate-pipelining|trustfile|trust-info-url|user-manual)[[:space:]]" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT + +syntax "privoxy-action" "\.action$" + +color brightred "[{[:space:]]\-block([[:space:]{}]|$)" +color brightgreen "[{[:space:]]\+block([[:space:]{}]|$)" + +color brightred "-(add-header|change-x-forwarded-for|client-header-filter|client-header-tagger|content-type-overwrite|crunch-client-header|crunch-if-none-match|crunch-incoming-cookies|crunch-outgoing-cookies|crunch-server-header|deanimate-gifs|downgrade-http-version|fast-redirects|filter|force-text-mode|forward-override|handle-as-empty-document|handle-as-image|hide-accept-language|hide-content-disposition|hide-from-header|hide-if-modified-since|hide-referrer|hide-user-agent|limit-connect|overwrite-last-modified|prevent-compression|redirect|server-header-filter|server-header-tagger|session-cookies-only|set-image-blocker)" +color brightgreen "\+(add-header|change-x-forwarded-for|client-header-filter|client-header-tagger|content-type-overwrite|crunch-client-header|crunch-if-none-match|crunch-incoming-cookies|crunch-outgoing-cookies|crunch-server-header|deanimate-gifs|downgrade-http-version|fast-redirects|filter|force-text-mode|forward-override|handle-as-empty-document|handle-as-image|hide-accept-language|hide-content-disposition|hide-from-header|hide-if-modified-since|hide-referrer|hide-user-agent|limit-connect|overwrite-last-modified|prevent-compression|redirect|server-header-filter|server-header-tagger|session-cookies-only|set-image-blocker)" +color black "[{}]" +color magenta "\\.?" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT + +syntax "privoxy-filter" "\.filter$" + +color brightblack "^(FILTER|CLIENT-HEADER-FILTER|CLIENT-HEADER-TAGGER|SERVER-HEADER-FILTER|SERVER-HEADER-TAGGER): [a-z-]+" +color brightblue "^(FILTER|CLIENT-HEADER-FILTER|CLIENT-HEADER-TAGGER|SERVER-HEADER-FILTER|SERVER-HEADER-TAGGER):" +color magenta "\\.?" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT + diff --git a/nano/syntax/properties.nanorc b/nano/syntax/properties.nanorc new file mode 100644 index 0000000..bb8f562 --- /dev/null +++ b/nano/syntax/properties.nanorc @@ -0,0 +1,10 @@ +syntax "properties" "\.properties$" + +color brightblack "^[[:space:]]*[^#!]([^:= ]|\\[:= ])*[:= ]" +color red "[:=]" +color magenta "\\([#!=: ]|$)" +color magenta "\\u[[:xdigit:]]{4}" +color cyan "^[[:space:]]*[#!].*$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/python.nanorc b/nano/syntax/python.nanorc new file mode 100644 index 0000000..35c83f5 --- /dev/null +++ b/nano/syntax/python.nanorc @@ -0,0 +1,23 @@ +syntax "python" "\.py$" "jhbuildrc$" +header "^#!.*/(env +)?python[-0-9._]*( |$)" + +color brightblack "\<(as|assert|break|class|continue|def|del|elif|else|except)\>" +color brightblack "\<(exec|finally|for|from|global|if|import|lambda)\>" +color brightblack "\<(pass|print|raise|return|try|while|with|yield|None)\>" +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color red "[-+*/|=%<>&~^]|\<(and|not|or|is|in)\>" +color brightyellow "@[A-Za-z0-9_]+" +color brightmagenta "__[A-Za-z0-9_]+__" +color brightcyan "\<(True|False)\>" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color yellow "['][^']*[^\\][']" "[']{3}.*[^\\][']{3}" +color yellow "["][^"]*[^\\]["]" "["]{3}.*[^\\]["]{3}" +color yellow start=""""[^"]" end=""""" +color yellow start="'''[^']" end="'''" +color magenta "\\.?" +color cyan "(^|[[:space:]])#([^{].*)?$" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/rpmspec.nanorc b/nano/syntax/rpmspec.nanorc new file mode 100644 index 0000000..ce376bc --- /dev/null +++ b/nano/syntax/rpmspec.nanorc @@ -0,0 +1,28 @@ +syntax "rpmspec" "\.spec$" "\.rpmspec$" + +color brightblack "\<(Icon|ExclusiveOs|ExcludeOs):" +color brightblack "\<(BuildArch|BuildArchitectures|ExclusiveArch|ExcludeArch):" +color brightblack "\<(Conflicts|Obsoletes|Provides|Requires|Requires\(.*\)|Enhances|Suggests|BuildConflicts|BuildRequires|Recommends|PreReq|Supplements):" +color brightblack "\<(Epoch|Serial|Nosource|Nopatch):" +color brightblack "\<(AutoReq|AutoProv|AutoReqProv):" +color brightblack "\<(Copyright|License|Summary|Summary\(.*\)|Distribution|Vendor|Packager|Group|Source[0-9]*|Patch[0-9]*|BuildRoot|Prefix):" +color brightblack "\<(Name|Version|Release|Url|URL):" +color brightblack start="^(Source|Patch)" end=":" +color brightblack "(i386|i486|i586|i686|athlon|ia64|alpha|alphaev5|alphaev56|alphapca56|alphaev6|alphaev67|sparc|sparcv9|sparc64armv3l|armv4b|armv4lm|ips|mipsel|ppc|ppc|iseries|ppcpseries|ppc64|m68k|m68kmint|Sgi|rs6000|i370|s390x|s390|noarch)" +color brightblack "(ifarch|ifnarch|ifos|ifnos)" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color brightyellow "%(if|else|endif|define|global|undefine)" +color brightyellow "%_?([A-Z_a-z_0-9_]*)" +color brightyellow start="%\{" end="\}" +color brightyellow start="%\{__" end="\}" +color brightyellow "\$(RPM_BUILD_ROOT)\>" +color brightmagenta "^%(build$|changelog|check$|clean$|description)" +color brightmagenta "^%(files|install$|package|prep$)" +color brightmagenta "^%(pre|preun|pretrans|post|postun|posttrans)" +color brightmagenta "^%(trigger|triggerin|triggerpostun|triggerun|verifyscript)" +color cyan "(^|[[:space:]])#([^{].*)?$" +color blue "^\*.*$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT +color brightwhite,cyan "TODO:?" diff --git a/nano/syntax/ruby.nanorc b/nano/syntax/ruby.nanorc new file mode 100644 index 0000000..92a5b48 --- /dev/null +++ b/nano/syntax/ruby.nanorc @@ -0,0 +1,12 @@ +syntax "ruby" "\.rb$|Rakefile$" + +color brightblack "\<(BEGIN|END|alias|and|begin|break|case|class|def|defined\?|do|else|elsif|end|ensure|false|for|if|in|module|next|nil|not|or|redo|rescue|retry|return|self|super|then|true|undef|unless|until|when|while|yield)\>" +color yellow "(^|[[:space:]]):[A-Za-z0-9_]+\>" +color magenta "/([^/]|(\\/))*/[iomx]*" "%r\{([^}]|(\\}))*\}[iomx]*" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "(^|[[:space:]])#([^{].*)?$" +color cyan start="^=begin$" end="^=end$" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/sed.nanorc b/nano/syntax/sed.nanorc new file mode 100644 index 0000000..cfd0770 --- /dev/null +++ b/nano/syntax/sed.nanorc @@ -0,0 +1,10 @@ +syntax "sed" "\.sed$" +header "^#!.*bin/(env +)?sed( |$)" + +color red "[|^$.*+]" +color brightyellow "\{[0-9]+,?[0-9]*\}" +color magenta "\\." +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/shell.nanorc b/nano/syntax/shell.nanorc new file mode 100644 index 0000000..0916ee7 --- /dev/null +++ b/nano/syntax/shell.nanorc @@ -0,0 +1,18 @@ +syntax "sh" "\.sh$" "\.bash$" "bashrc$" "bash_profile$" +header "^#!.*/(env +)?(ba|k|pdk)?sh[-0-9_]*( |$)" + +color brightblue "^[A-Za-z0-9_+-]+[[:space:]]*\(\)" +color brightblack "\<(case|do|done|elif|else|esac|fi|for|function|if)\>" +color brightblack "\<(in|select|then|time|until|while)\>" +color brightblue "\<(echo|exit|export|let|local|read|return|set|shift|umask|unset)\>" +color brightblue "\<(source)\>" +color red "[{}()<>!=&|;`$]|\\|\[|\]|-(eq|ne|gt|lt|ge|le|s|n|z)\>" +color yellow ""(\\.|[^"])*"" +color brightyellow "\$\{?[A-Za-z0-9_!@#$*?-]+\}?|`[^`]*`" +color yellow "'(\\.|[^'])*'" +color magenta "\\.?" +color cyan "(^|[[:space:]])#([^{].*)?$" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/sql.nanorc b/nano/syntax/sql.nanorc new file mode 100644 index 0000000..d2959fd --- /dev/null +++ b/nano/syntax/sql.nanorc @@ -0,0 +1,35 @@ +syntax "sql" "\.sql$" "sqliterc$" + +icolor brightblack "\<(ALL|ASC|AS|ALTER|AND|ADD|AUTO_INCREMENT)\>" +icolor brightblack "\<(BETWEEN|BINARY|BOTH|BY|BOOLEAN)\>" +icolor brightblack "\<(CHANGE|CHECK|COLUMNS|COLUMN|CROSS|CREATE)\>" +icolor brightblack "\<(DATABASES|DATABASE|DATA|DELAYED|DESCRIBE|DESC|DISTINCT|DELETE|DROP|DEFAULT)\>" +icolor brightblack "\<(ENCLOSED|ESCAPED|EXISTS|EXPLAIN)\>" +icolor brightblack "\<(FIELDS|FIELD|FLUSH|FOR|FOREIGN|FUNCTION|FROM)\>" +icolor brightblack "\<(GROUP|GRANT|HAVING)\>" +icolor brightblack "\<(IGNORE|INDEX|INFILE|INSERT|INNER|INTO|IDENTIFIED|IN|IS|IF)\>" +icolor brightblack "\<(JOIN|KEYS|KILL|KEY)\>" +icolor brightblack "\<(LEADING|LIKE|LIMIT|LINES|LOAD|LOCAL|LOCK|LOW_PRIORITY|LEFT|LANGUAGE)\>" +icolor brightblack "\<(MODIFY|NATURAL|NOT|NULL|NEXTVAL)\>" +icolor brightblack "\<(OPTIMIZE|OPTION|OPTIONALLY|ORDER|OUTFILE|OR|OUTER|ON)\>" +icolor brightblack "\<(PROCEDURE|PROCEDURAL|PRIMARY)\>" +icolor brightblack "\<(READ|REFERENCES|REGEXP|RENAME|REPLACE|RETURN|REVOKE|RLIKE|RIGHT)\>" +icolor brightblack "\<(SHOW|SONAME|STATUS|STRAIGHT_JOIN|SELECT|SETVAL|SET)\>" +icolor brightblack "\<(TABLES|TERMINATED|TO|TRAILING|TRUNCATE|TABLE|TEMPORARY|TRIGGER|TRUSTED)\>" +icolor brightblack "\<(UNIQUE|UNLOCK|USE|USING|UPDATE|VALUES|VARIABLES|VIEW)\>" +icolor brightblack "\<(WITH|WRITE|WHERE|ZEROFILL|TYPE|XOR)\>" +color green "\<(VARCHAR|TINYINT|TEXT|DATE|SMALLINT|MEDIUMINT|INT|INTEGER|BIGINT|FLOAT|DOUBLE|DECIMAL|DATETIME|TIMESTAMP|TIME|YEAR|UNSIGNED|CHAR|TINYBLOB|TINYTEXT|BLOB|MEDIUMBLOB|MEDIUMTEXT|LONGBLOB|LONGTEXT|ENUM|BOOL|BINARY|VARBINARY)\>" + +# SQLite meta commands +icolor brightblack "\.\<(databases|dump|echo|exit|explain|header(s)?|help)\>" +icolor brightblack "\.\<(import|indices|mode|nullvalue|output|prompt|quit|read)\>" +icolor brightblack "\.\<(schema|separator|show|tables|timeout|width)\>" +color brightcyan "\<(ON|OFF)\>" + +color blue "\<([0-9]+)\>" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color yellow "`(\\.|[^\\`])*`" +color cyan "\-\-.*$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/systemd.nanorc b/nano/syntax/systemd.nanorc new file mode 100644 index 0000000..8cbbb36 --- /dev/null +++ b/nano/syntax/systemd.nanorc @@ -0,0 +1,13 @@ +syntax "systemd" "\.(service|socket|mount|slice|target|timer|path)$" +header "^\[Unit\]$" + +color brightblack "^(Accept|After|Alias|AllowIsolate|Also|ANSI_COLOR|_AUDIT_LOGINUID|_AUDIT_SESSION|Backlog|Before|BindIPv6Only|BindsTo|BindToDevice|BlockIOReadBandwidth|BlockIOWeight|BlockIOWriteBandwidth|_BOOT_ID|Broadcast|BUG_REPORT_URL|BusName|Capabilities|CapabilityBoundingSet|CHASSIS|cipher|class|_CMDLINE|CODE_FILE|CODE_FUNC|CODE_LINE|_COMM|Compress|ConditionACPower|ConditionCapability|ConditionDirectoryNotEmpty|ConditionFileIsExecutable|ConditionFileNotEmpty|ConditionHost|ConditionKernelCommandLine|ConditionNull|ConditionPathExists|ConditionPathExistsGlob|ConditionPathIsDirectory|ConditionPathIsMountPoint|ConditionPathIsReadWrite|ConditionPathIsSymbolicLink|ConditionSecurity|ConditionVirtualization|Conflicts|ControlGroup|ControlGroupAttribute|ControlGroupModify|ControlGroupPersistent|controllers|Controllers|CPE_NAME|CPUAffinity|CPUSchedulingPolicy|CPUSchedulingPriority|CPUSchedulingResetOnFork|CPUShares|CrashChVT|CrashShell|__CURSOR|debug|DefaultControllers|DefaultDependencies|DefaultLimitAS|DefaultLimitCORE|DefaultLimitCPU|DefaultLimitDATA|DefaultLimitFSIZE|DefaultLimitLOCKS|DefaultLimitMEMLOCK|DefaultLimitMSGQUEUE|DefaultLimitNICE|DefaultLimitNOFILE|DefaultLimitNPROC|DefaultLimitRSS|DefaultLimitRTPRIO|DefaultLimitRTTIME|DefaultLimitSIGPENDING|DefaultLimitSTACK|DefaultStandardError|DefaultStandardOutput|Description|DeviceAllow|DeviceDeny|DirectoryMode|DirectoryNotEmpty|Documentation|DumpCore|entropy|Environment|EnvironmentFile|ERRNO|event_timeout|_EXE|ExecReload|ExecStart|ExecStartPost|ExecStartPre|ExecStop|ExecStopPost|ExecStopPre|filter|FONT|FONT_MAP|FONT_UNIMAP|ForwardToConsole|ForwardToKMsg|ForwardToSyslog|FreeBind|freq|FsckPassNo|fstab|_GID|Group|GuessMainPID|HandleHibernateKey|HandleLidSwitch|HandlePowerKey|HandleSuspendKey|hash|HibernateKeyIgnoreInhibited|HOME_URL|_HOSTNAME|ICON_NAME|ID|IdleAction|IdleActionSec|ID_LIKE|ID_MODEL|ID_MODEL_FROM_DATABASE|IgnoreOnIsolate|IgnoreOnSnapshot|IgnoreSIGPIPE|InaccessibleDirectories|InhibitDelayMaxSec|init|IOSchedulingClass|IOSchedulingPriority|IPTOS|IPTTL|JobTimeoutSec|JoinControllers|KeepAlive|KEYMAP|KEYMAP_TOGGLE|KillExcludeUsers|KillMode|KillOnlyUsers|KillSignal|KillUserProcesses|LidSwitchIgnoreInhibited|LimitAS|LimitCORE|LimitCPU|LimitDATA|LimitFSIZE|LimitLOCKS|LimitMEMLOCK|LimitMSGQUEUE|LimitNICE|LimitNOFILE|LimitNPROC|LimitRSS|LimitRTPRIO|LimitRTTIME|LimitSIGPENDING|LimitSTACK|link_priority|valueListenDatagram|ListenFIFO|ListenMessageQueue|ListenNetlink|ListenSequentialPacket|ListenSpecial|ListenStream|LogColor|LogLevel|LogLocation|LogTarget|luks|_MACHINE_ID|MakeDirectory|Mark|MaxConnections|MaxFileSec|MaxLevelConsole|MaxLevelKMsg|MaxLevelStore|MaxLevelSyslog|MaxRetentionSec|MemoryLimit|MemorySoftLimit|MESSAGE|MESSAGE_ID|MessageQueueMaxMessages|MessageQueueMessageSize|__MONOTONIC_TIMESTAMP|MountFlags|NAME|NAutoVTs|Nice|NonBlocking|NoNewPrivileges|NotifyAccess|OnActiveSec|OnBootSec|OnCalendar|OnFailure|OnFailureIsolate|OnStartupSec|OnUnitActiveSec|OnUnitInactiveSec|OOMScoreAdjust|Options|output|PAMName|PartOf|PassCredentials|PassSecurity|PathChanged|PathExists|PathExistsGlob|PathModified|PermissionsStartOnly|_PID|PIDFile|PipeSize|PowerKeyIgnoreInhibited|PRETTY_HOSTNAME|PRETTY_NAME|Priority|PRIORITY|PrivateNetwork|PrivateTmp|PropagatesReloadTo|pss|RateLimitBurst|RateLimitInterval|ReadOnlyDirectories|ReadWriteDirectories|__REALTIME_TIMESTAMP|ReceiveBuffer|RefuseManualStart|RefuseManualStop|rel|ReloadPropagatedFrom|RemainAfterExit|RequiredBy|Requires|RequiresMountsFor|RequiresOverridable|Requisite|RequisiteOverridable|ReserveVT|ResetControllers|Restart|RestartPreventExitStatus|RestartSec|RootDirectory|RootDirectoryStartOnly|RuntimeKeepFree|RuntimeMaxFileSize|RuntimeMaxUse|RuntimeWatchdogSec|samples|scale_x|scale_y|Seal|SecureBits|_SELINUX_CONTEXT|SendBuffer|SendSIGKILL|Service|ShowStatus|ShutdownWatchdogSec|size|SmackLabel|SmackLabelIPIn|SmackLabelIPOut|SocketMode|Sockets|SourcePath|_SOURCE_REALTIME_TIMESTAMP|SplitMode|StandardError|StandardInput|StandardOutput|StartLimitAction|StartLimitBurst|StartLimitInterval|static_node|StopWhenUnneeded|Storage|string_escape|none|replaceSuccessExitStatus|SupplementaryGroups|SUPPORT_URL|SuspendKeyIgnoreInhibited|SyslogFacility|SYSLOG_FACILITY|SyslogIdentifier|SYSLOG_IDENTIFIER|SyslogLevel|SyslogLevelPrefix|SYSLOG_PID|SystemCallFilter|SYSTEMD_ALIAS|_SYSTEMD_CGROUP|_SYSTEMD_OWNER_UID|SYSTEMD_READY|_SYSTEMD_SESSION|_SYSTEMD_UNIT|_SYSTEMD_USER_UNIT|SYSTEMD_WANTS|SystemKeepFree|SystemMaxFileSize|SystemMaxUse|SysVStartPriority|TCPCongestion|TCPWrapName|timeout|TimeoutSec|TimeoutStartSec|TimeoutStopSec|TimerSlackNSec|Transparent|_TRANSPORT|tries|TTYPath|TTYReset|TTYVHangup|TTYVTDisallocate|Type|_UID|UMask|Unit|User|UtmpIdentifier|VERSION|VERSION_ID|WantedBy|Wants|WatchdogSec|What|Where|WorkingDirectory)=" +color brightblue "^\.include\>" +color red "=" +color brightmagenta "^\[(Unit|Install|Service|Socket|Mount|Timer|Path)\]" +color brightyellow "\$MAINPID" +color brightcyan "\<(true|false)\>" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/tex.nanorc b/nano/syntax/tex.nanorc new file mode 100644 index 0000000..4393a9d --- /dev/null +++ b/nano/syntax/tex.nanorc @@ -0,0 +1,8 @@ +syntax "tex" "\.(tex|cls|ltx|sty|dtx|ins|bbl)$" + +color brightyellow "\\[A-Za-z]+" +color brightmagenta "\\section" +color cyan "%.*" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/vala.nanorc b/nano/syntax/vala.nanorc new file mode 100644 index 0000000..ced4e19 --- /dev/null +++ b/nano/syntax/vala.nanorc @@ -0,0 +1,20 @@ +syntax "vala" "\.vala$" + +color green "\<(float|double|bool|char|int|uint|short|long|void|(un)?signed)\>" +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color brightblack "\<(for|if|while|do|else|case|default|switch|try|throw|catch)\>" +color brightblack "\<(inline|typedef|struct|enum|union|extern|static|const)\>" +color brightblack "\<(operator|new|delete|return|null|using)\>" +color brightblack "\<(class|override|private|public|signal|this|weak)\>" +color brightred "\<(goto|break|continue)\>" +color brightcyan "\<(true|false)\>" +color blue "\<([0-9]+)\>" +color red "[-+/*=<>?:!~%&|]" "->" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "(^|[[:space:]])//.*" +color cyan start="/\*" end="\*/" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/vi.nanorc b/nano/syntax/vi.nanorc new file mode 100644 index 0000000..4899857 --- /dev/null +++ b/nano/syntax/vi.nanorc @@ -0,0 +1,12 @@ +syntax "vi" "(^|/|\.)(ex|vim)rc$|\.vim" + +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" +color black "[(]" +color brightblack "\<([nvxsoilc]?(nore|un)?map|[nvlx]n|[ico]?no|[cilovx][um]|s?unm)\>" +color brightblack "\<(snor|nun|nm|set|if|endif|let|unlet)\>" +color red "[!&=]" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "(^|[[:space:]])\"[^"]*$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/xml.nanorc b/nano/syntax/xml.nanorc new file mode 100644 index 0000000..502d379 --- /dev/null +++ b/nano/syntax/xml.nanorc @@ -0,0 +1,13 @@ +syntax "xml" "\.([jrs]html?|sgml?|xml|opml|xslt?|plist)$" +header "<\?xml" + +color brightmagenta start="<" end=">" +color brightblack " [a-z_-]+=" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color brightwhite,red "&" +color magenta "&(#[0-9]+|#x[0-9a-fA-F]+|[A-Za-z][A-Za-z0-9]*);" +color cyan start="" +color cyan start="" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/xresources.nanorc b/nano/syntax/xresources.nanorc new file mode 100644 index 0000000..e80838f --- /dev/null +++ b/nano/syntax/xresources.nanorc @@ -0,0 +1,11 @@ +syntax "xresources" "X(defaults|resources)$" + +color green "^[[:alnum:]]+\*" +color brightyellow "\*[[:alnum:]]+\:" +color blue "\<[0-9]+\>" +color red "[*:=]" +color brightcyan "\<(true|false)\>" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/yaml.nanorc b/nano/syntax/yaml.nanorc new file mode 100644 index 0000000..63b6e6f --- /dev/null +++ b/nano/syntax/yaml.nanorc @@ -0,0 +1,14 @@ +syntax "yaml" "\.ya?ml$" +header "^---" "%YAML" + +color green "(^| )!!(binary|bool|float|int|map|null|omap|seq|set|str) " +color brightcyan "\<(YES|yes|Y|y|ON|on|NO|no|N|n|OFF|off)\>" +color brightcyan "\<(true|false)\>" +color red ":[[:space:]]" "\[" "\]" ":[[:space:]]+[|>]" "^[[:space:]]*- " +color brightyellow "[[:space:]][\*&][A-Za-z0-9]+" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color cyan "(^|[[:space:]])#([^{].*)?$" +color brightmagenta "^---" "^\.\.\." "^%YAML" "^%TAG" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/nano/syntax/yum.nanorc b/nano/syntax/yum.nanorc new file mode 100644 index 0000000..1d65ee2 --- /dev/null +++ b/nano/syntax/yum.nanorc @@ -0,0 +1,9 @@ +syntax "yum" "\.repo$|yum.*\.conf$" + +color brightblack "^[[:space:]]*[^=]*=" +color brightmagenta "^[[:space:]]*\[.*\]$" +color brightyellow "\$(releasever|arch|basearch|uuid|YUM[0-9])" +color cyan "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" +# +EXTRALINT diff --git a/oh-my-zsh/moe.zsh-theme b/oh-my-zsh/moe.zsh-theme new file mode 100644 index 0000000..41633cd --- /dev/null +++ b/oh-my-zsh/moe.zsh-theme @@ -0,0 +1,37 @@ +# -*- sh -*- vim:set ft=sh ai et sw=4 sts=4: +# It might be bash like, but I can't have my co-workers knowing I use zsh + +for COLOR in CYAN WHITE YELLOW MAGENTA BLACK BLUE RED DEFAULT GREEN GREY; do + eval PR_$COLOR='%{$fg[${(L)COLOR}]%}' + eval PR_BOLD_$COLOR='%{$fg_bold[${(L)COLOR}]%}' +done +if [ "$EUID" -ne 0 ]; then + PROMPT='%{$fg_bold[white]%}[%{$fg_bold[green]%}%n%{$fg_bold[white]%}@%{$fg_bold[blue]%}%m %{$fg_bold[yellow]%}%~ %{$fg_bold[white]%}]%{$reset_color%}%(!.#.$) ' +else + PROMPT='%{$fg_bold[white]%}[%{$fg_bold[red]%}%n%{$fg_bold[white]%}@%{$fg_bold[blue]%}%m %{$fg_bold[yellow]%}%~ %{$fg_bold[white]%}]%{$reset_color%}%(!.#.$) ' +fi + +RPS1='$(git_prompt_info)$(git_prompt_status) $(svn_prompt_info) %{$reset_color%}' + +PR_RESET="%{$reset_color%}" +VCS_DIRTY_COLOR="${PR_RESET}${PR_BOLD_YELLOW}" +VCS_CLEAN_COLOR="${PR_RESET}${PR_BOLD_GREEN}" +# ########## COLOR ########### +# ########## SVN ########### +ZSH_THEME_SVN_PROMPT_PREFIX="${PR_RESET}${PR_BOLD_RED}[svn:" +ZSH_THEME_SVN_PROMPT_SUFFIX="${PR_RESET}${PR_BOLD_RED}]" +ZSH_THEME_SVN_PROMPT_DIRTY="${VCS_DIRTY_COLOR} ✘${VCS_SUFIX_COLOR}" +ZSH_THEME_SVN_PROMPT_CLEAN="${VCS_CLEAN_COLOR} ✔${VCS_SUFIX_COLOR}" +# ########## SVN ########### +# ########## GIT ########### +ZSH_THEME_GIT_PROMPT_PREFIX="${PR_RESET}${PR_BOLD_RED}[git:" +ZSH_THEME_GIT_PROMPT_SUFFIX="]" +ZSH_THEME_GIT_PROMPT_DIRTY="" +ZSH_THEME_GIT_PROMPT_CLEAN="" +ZSH_THEME_GIT_PROMPT_ADDED="${PR_RESET}${PR_BOLD_GREEN}✚${PR_RESET}" +ZSH_THEME_GIT_PROMPT_MODIFIED="${PR_RESET}${PR_BOLD_BLUE}✹${PR_RESET}" +ZSH_THEME_GIT_PROMPT_DELETED="${PR_RESET}${PR_BOLD_RED}✖${PR_RESET}" +ZSH_THEME_GIT_PROMPT_RENAMED="${PR_RESET}${PR_BOLD_MAGENTA}➜${PR_RESET}" +ZSH_THEME_GIT_PROMPT_UNMERGED="${PR_RESET}${PR_BOLD_YELLOW}═${PR_RESET}" +ZSH_THEME_GIT_PROMPT_UNTRACKED="${PR_RESET}${PR_BOLD_CYAN}✭${PR_RESET}" +# ########## GIT ########### diff --git a/vim/colors/codeschool.vim b/vim/colors/codeschool.vim new file mode 100644 index 0000000..e3cb85c --- /dev/null +++ b/vim/colors/codeschool.vim @@ -0,0 +1,108 @@ +" Vim color file +" Converted from my Textmate Code School theme using Coloration +" http://astonj.com + +set background=dark +highlight clear + +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "Code School 3" + +hi Cursor ctermfg=16 ctermbg=145 cterm=NONE guifg=#182227 guibg=#9ea7a6 gui=NONE +hi Visual ctermfg=NONE ctermbg=59 cterm=NONE guifg=NONE guibg=#3f4b52 gui=NONE +hi CursorLine ctermfg=NONE ctermbg=23 cterm=NONE guifg=NONE guibg=#2e373b gui=NONE +hi CursorColumn ctermfg=NONE ctermbg=23 cterm=NONE guifg=NONE guibg=#2e373b gui=NONE +hi ColorColumn ctermfg=NONE ctermbg=23 cterm=NONE guifg=NONE guibg=#2e373b gui=NONE +hi LineNr ctermfg=102 ctermbg=23 cterm=NONE guifg=#84898c guibg=#2a343a gui=NONE +hi VertSplit ctermfg=59 ctermbg=59 cterm=NONE guifg=#252c31 guibg=#252c31 gui=NONE +hi MatchParen ctermfg=180 ctermbg=NONE cterm=underline guifg=#dda790 guibg=NONE gui=underline +hi StatusLine ctermfg=231 ctermbg=59 cterm=bold guifg=#f0f0f0 guibg=#575e61 gui=bold +hi StatusLineNC ctermfg=231 ctermbg=59 cterm=NONE guifg=#f0f0f0 guibg=#575e61 gui=NONE +hi Pmenu ctermfg=153 ctermbg=NONE cterm=NONE guifg=#bcdbff guibg=NONE gui=NONE +hi PmenuSel ctermfg=NONE ctermbg=59 cterm=NONE guifg=NONE guibg=#3f4b52 gui=NONE +hi IncSearch ctermfg=16 ctermbg=107 cterm=NONE guifg=#182227 guibg=#8bb664 gui=NONE +hi Search ctermfg=NONE ctermbg=NONE cterm=underline guifg=NONE guibg=NONE gui=underline +hi Directory ctermfg=68 ctermbg=NONE cterm=NONE guifg=#3c98d9 guibg=NONE gui=NONE +hi Folded ctermfg=247 ctermbg=16 cterm=NONE guifg=#9a9a9a guibg=#182227 gui=NONE + +hi Normal ctermfg=231 ctermbg=16 cterm=NONE guifg=#f0f0f0 guibg=#252c31 gui=NONE +hi Boolean ctermfg=68 ctermbg=NONE cterm=NONE guifg=#3c98d9 guibg=NONE gui=NONE +hi Character ctermfg=68 ctermbg=NONE cterm=NONE guifg=#3c98d9 guibg=NONE gui=NONE +hi Comment ctermfg=247 ctermbg=NONE cterm=NONE guifg=#9a9a9a guibg=NONE gui=italic +hi Conditional ctermfg=180 ctermbg=NONE cterm=NONE guifg=#dda790 guibg=NONE gui=NONE +hi Constant ctermfg=68 ctermbg=NONE cterm=NONE guifg=#3c98d9 guibg=NONE gui=NONE +hi Define ctermfg=180 ctermbg=NONE cterm=NONE guifg=#dda790 guibg=NONE gui=NONE +hi DiffAdd ctermfg=231 ctermbg=64 cterm=bold guifg=#f0f0f0 guibg=#43820d gui=bold +hi DiffDelete ctermfg=88 ctermbg=NONE cterm=NONE guifg=#880708 guibg=NONE gui=NONE +hi DiffChange ctermfg=231 ctermbg=23 cterm=NONE guifg=#f0f0f0 guibg=#1c3657 gui=NONE +hi DiffText ctermfg=231 ctermbg=24 cterm=bold guifg=#f0f0f0 guibg=#204a87 gui=bold +hi ErrorMsg ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi WarningMsg ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi Float ctermfg=68 ctermbg=NONE cterm=NONE guifg=#3c98d9 guibg=NONE gui=NONE +hi Function ctermfg=153 ctermbg=NONE cterm=NONE guifg=#bcdbff guibg=NONE gui=NONE +hi Identifier ctermfg=113 ctermbg=NONE cterm=NONE guifg=#99cf50 guibg=NONE gui=NONE +hi Keyword ctermfg=180 ctermbg=NONE cterm=NONE guifg=#dda790 guibg=NONE gui=NONE +hi Label ctermfg=107 ctermbg=NONE cterm=NONE guifg=#8bb664 guibg=NONE gui=NONE +hi NonText ctermfg=59 ctermbg=17 cterm=NONE guifg=#414e58 guibg=#232c31 gui=NONE +hi Number ctermfg=68 ctermbg=NONE cterm=NONE guifg=#3c98d9 guibg=NONE gui=NONE +hi Operator ctermfg=180 ctermbg=NONE cterm=NONE guifg=#dda790 guibg=NONE gui=NONE +hi PreProc ctermfg=180 ctermbg=NONE cterm=NONE guifg=#dda790 guibg=NONE gui=NONE +hi Special ctermfg=231 ctermbg=NONE cterm=NONE guifg=#f0f0f0 guibg=NONE gui=NONE +hi SpecialKey ctermfg=59 ctermbg=23 cterm=NONE guifg=#414e58 guibg=#252c31 gui=NONE +hi Statement ctermfg=180 ctermbg=NONE cterm=NONE guifg=#dda790 guibg=NONE gui=NONE +hi StorageClass ctermfg=113 ctermbg=NONE cterm=NONE guifg=#99cf50 guibg=NONE gui=NONE +hi String ctermfg=107 ctermbg=NONE cterm=NONE guifg=#8bb664 guibg=NONE gui=NONE +hi Tag ctermfg=153 ctermbg=NONE cterm=NONE guifg=#bcdbff guibg=NONE gui=NONE +hi Title ctermfg=231 ctermbg=NONE cterm=bold guifg=#f0f0f0 guibg=NONE gui=bold +hi Todo ctermfg=247 ctermbg=NONE cterm=inverse,bold guifg=#9a9a9a guibg=NONE gui=inverse,bold,italic +hi Type ctermfg=153 ctermbg=NONE cterm=NONE guifg=#b5d8f6 guibg=NONE gui=NONE +hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline guifg=NONE guibg=NONE gui=underline +hi rubyClass ctermfg=180 ctermbg=NONE cterm=NONE guifg=#dda790 guibg=NONE gui=NONE +hi rubyFunction ctermfg=153 ctermbg=NONE cterm=NONE guifg=#bcdbff guibg=NONE gui=NONE +hi rubyInterpolationDelimiter ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi rubySymbol ctermfg=68 ctermbg=NONE cterm=NONE guifg=#3c98d9 guibg=NONE gui=NONE +hi rubyConstant ctermfg=146 ctermbg=NONE cterm=NONE guifg=#bfabcb guibg=NONE gui=NONE +hi rubyStringDelimiter ctermfg=107 ctermbg=NONE cterm=NONE guifg=#8bb664 guibg=NONE gui=NONE +hi rubyBlockParameter ctermfg=74 ctermbg=NONE cterm=NONE guifg=#68a9eb guibg=NONE gui=NONE +hi rubyInstanceVariable ctermfg=74 ctermbg=NONE cterm=NONE guifg=#68a9eb guibg=NONE gui=NONE +hi rubyInclude ctermfg=180 ctermbg=NONE cterm=NONE guifg=#dda790 guibg=NONE gui=NONE +hi rubyGlobalVariable ctermfg=74 ctermbg=NONE cterm=NONE guifg=#68a9eb guibg=NONE gui=NONE +hi rubyRegexp ctermfg=179 ctermbg=NONE cterm=NONE guifg=#e9c062 guibg=NONE gui=NONE +hi rubyRegexpDelimiter ctermfg=179 ctermbg=NONE cterm=NONE guifg=#e9c062 guibg=NONE gui=NONE +hi rubyEscape ctermfg=68 ctermbg=NONE cterm=NONE guifg=#3c98d9 guibg=NONE gui=NONE +hi rubyControl ctermfg=180 ctermbg=NONE cterm=NONE guifg=#dda790 guibg=NONE gui=NONE +hi rubyClassVariable ctermfg=74 ctermbg=NONE cterm=NONE guifg=#68a9eb guibg=NONE gui=NONE +hi rubyOperator ctermfg=180 ctermbg=NONE cterm=NONE guifg=#dda790 guibg=NONE gui=NONE +hi rubyException ctermfg=180 ctermbg=NONE cterm=NONE guifg=#dda790 guibg=NONE gui=NONE +hi rubyPseudoVariable ctermfg=74 ctermbg=NONE cterm=NONE guifg=#68a9eb guibg=NONE gui=NONE +hi rubyRailsUserClass ctermfg=146 ctermbg=NONE cterm=NONE guifg=#bfabcb guibg=NONE gui=NONE +hi rubyRailsARAssociationMethod ctermfg=186 ctermbg=NONE cterm=NONE guifg=#dad085 guibg=NONE gui=NONE +hi rubyRailsARMethod ctermfg=186 ctermbg=NONE cterm=NONE guifg=#dad085 guibg=NONE gui=NONE +hi rubyRailsRenderMethod ctermfg=186 ctermbg=NONE cterm=NONE guifg=#dad085 guibg=NONE gui=NONE +hi rubyRailsMethod ctermfg=186 ctermbg=NONE cterm=NONE guifg=#dad085 guibg=NONE gui=NONE +hi erubyDelimiter ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi erubyComment ctermfg=247 ctermbg=NONE cterm=NONE guifg=#9a9a9a guibg=NONE gui=italic +hi erubyRailsMethod ctermfg=186 ctermbg=NONE cterm=NONE guifg=#dad085 guibg=NONE gui=NONE +hi htmlTag ctermfg=111 ctermbg=NONE cterm=NONE guifg=#89bdff guibg=NONE gui=NONE +hi htmlEndTag ctermfg=111 ctermbg=NONE cterm=NONE guifg=#89bdff guibg=NONE gui=NONE +hi htmlTagName ctermfg=111 ctermbg=NONE cterm=NONE guifg=#89bdff guibg=NONE gui=NONE +hi htmlArg ctermfg=111 ctermbg=NONE cterm=NONE guifg=#89bdff guibg=NONE gui=NONE +hi htmlSpecialChar ctermfg=68 ctermbg=NONE cterm=NONE guifg=#3c98d9 guibg=NONE gui=NONE +hi javaScriptFunction ctermfg=113 ctermbg=NONE cterm=NONE guifg=#99cf50 guibg=NONE gui=NONE +hi javaScriptRailsFunction ctermfg=186 ctermbg=NONE cterm=NONE guifg=#dad085 guibg=NONE gui=NONE +hi javaScriptBraces ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi yamlKey ctermfg=153 ctermbg=NONE cterm=NONE guifg=#bcdbff guibg=NONE gui=NONE +hi yamlAnchor ctermfg=74 ctermbg=NONE cterm=NONE guifg=#68a9eb guibg=NONE gui=NONE +hi yamlAlias ctermfg=74 ctermbg=NONE cterm=NONE guifg=#68a9eb guibg=NONE gui=NONE +hi yamlDocumentHeader ctermfg=107 ctermbg=NONE cterm=NONE guifg=#8bb664 guibg=NONE gui=NONE +hi cssURL ctermfg=74 ctermbg=NONE cterm=NONE guifg=#68a9eb guibg=NONE gui=NONE +hi cssFunctionName ctermfg=186 ctermbg=NONE cterm=NONE guifg=#dad085 guibg=NONE gui=NONE +hi cssColor ctermfg=68 ctermbg=NONE cterm=NONE guifg=#3c98d9 guibg=NONE gui=NONE +hi cssPseudoClassId ctermfg=153 ctermbg=NONE cterm=NONE guifg=#bcdbff guibg=NONE gui=NONE +hi cssClassName ctermfg=153 ctermbg=NONE cterm=NONE guifg=#bcdbff guibg=NONE gui=NONE +hi cssValueLength ctermfg=68 ctermbg=NONE cterm=NONE guifg=#3c98d9 guibg=NONE gui=NONE +hi cssCommonAttr ctermfg=151 ctermbg=NONE cterm=NONE guifg=#a7cfa3 guibg=NONE gui=NONE +hi cssBraces ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE diff --git a/vim/colors/eldar.vim b/vim/colors/eldar.vim new file mode 100644 index 0000000..45c5a6c --- /dev/null +++ b/vim/colors/eldar.vim @@ -0,0 +1,292 @@ +" --------------------------------------------------------- +" ______ _ _ +" | ____| | | | +" | |__ | | __| | __ _ _ __ +" | __| | |/ _` |/ _` | '__| +" | |____| | (_| | (_| | | +" |______|_|\__,_|\__,_|_| +" +" --------------------------------------------------------- +" +" Maintainer: Alexander Gude +" Email: alex.public.account@gmail.com +" File: eldar.vim +" URL: github.com/agude/vim-eldar +" License: MIT +" +" --------------------------------------------------------- +" +" Copyright (c) 2016 Alexander Gude +" +" Permission is hereby granted, free of charge, to any per‐ +" son obtaining a copy of this software and associated doc‐ +" umentation files (the “Software”), to deal in the Soft‐ +" ware without restriction, including without limitation +" the rights to use, copy, modify, merge, publish, distrib‐ +" ute, 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 PARTICU‐ +" LAR 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 CON‐ +" TRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON‐ +" NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +" THE SOFTWARE. +" +" --------------------------------------------------------- + +" Eldar is designed for dark backgrounds +set background=dark + +highlight clear +if exists('syntax_on') + syntax reset +endif + +let g:colors_name = 'eldar' + +" Define colors (Tango is the default) +" GUI colors +let s:red = get(g:, 'eldar_red', '#EF2929') +let s:yellow = get(g:, 'eldar_yellow', '#FCE94F') +let s:green = get(g:, 'eldar_green', '#8AE234') +let s:cyan = get(g:, 'eldar_cyan', '#34E2E2') +let s:blue = get(g:, 'eldar_blue', '#729FCF') +let s:magenta = get(g:, 'eldar_magenta', '#AD7FA8') +let s:gui_text = get(g:, 'eldar_text', 'White') +let s:gui_bg = get(g:, 'eldar_background', 'Black') + +" Terminal colors +let s:term_text = get(g:, 'eldar_term_text', 'NONE') +let s:term_bg = get(g:, 'eldar_term_background', 'NONE') + +" The ColourAssignment map and function to unpack it are from the bandit +" colorscheme by Al Bunden, available here: +" http://www.cgtk.co.uk/vim-scripts/bandit + +let s:ColourAssignment = {} + +" Unspecified colours default to NONE, EXCEPT cterm(.*) which default to matching gui(.*) +" +" In most cases, only GUIFG is therefore important unless support for Black and White +" terminals is essential + +" Editor settings +" --------------- +let s:ColourAssignment['Normal'] = {'GUIFG': s:gui_text, 'GUIBG': s:gui_bg, 'CTERMBG': s:term_bg, 'CTERMFG': s:term_text} +let s:ColourAssignment['Cursor'] = {'GUI': 'Reverse'} +let s:ColourAssignment['CursorLine'] = {'GUI': 'NONE', 'GUIBG': 'Black'} +let s:ColourAssignment['LineNr'] = {'GUIFG': 'DarkGray'} +let s:ColourAssignment['CursorLineNr'] = {'GUIFG': 'White'} + + +" Number column +" ------------- +let s:ColourAssignment['CursorColumn'] = {'GUIBG': 'DarkGrey'} +let s:ColourAssignment['Folded'] = {'GUIFG': 'Cyan', 'GUIBG': 'DarkGrey'} +let s:ColourAssignment['FoldColumn'] = {'GUIBG': 'DarkGrey'} +highlight! link SignColumn FoldColumn + + +" Window/Tab delimiters +" --------------------- +let s:ColourAssignment['VertSplit'] = {'GUIFG': 'White', 'GUIBG': 'NONE'} +let s:ColourAssignment['ColorColumn'] = {'GUIBG': 'DarkGray'} +let s:ColourAssignment['TabLine'] = {'GUIFG': 'White', 'GUIBG': 'DarkGray'} +let s:ColourAssignment['TabLineFill'] = {'GUIBG': 'DarkGray'} +let s:ColourAssignment['TabLineSel'] = {'GUIFG': 'Black', 'GUIBG': 'Gray'} + + +" File Navigation / Searching +" --------------------------- +let s:ColourAssignment['Directory'] = {'GUIFG': s:blue, 'CTERMFG': 'Blue', 'GUI': 'Bold'} +let s:ColourAssignment['Search'] = {'GUIFG': 'Black', 'GUIBG': s:yellow, 'CTERMFG': 'yellow', 'CTERMBG': 'black', 'GUI': 'Bold', 'CTERM': 'Reverse,Bold'} +let s:ColourAssignment['IncSearch'] = {'GUI': 'Reverse'} + + +" Prompt/Status +" ------------- +let s:ColourAssignment['StatusLine'] = {'GUIFG': 'White', 'GUIBG': s:gui_bg, 'GUI': 'Bold,Reverse', 'CTERMFG': 'White', 'CTERMBG': s:term_bg} +let s:ColourAssignment['StatusLineNC'] = {'GUIFG': 'White', 'GUIBG': s:gui_bg, 'GUI': 'Reverse', 'CTERMFG': 'White', 'CTERMBG': s:term_bg} +let s:ColourAssignment['WildMenu'] = {'GUIFG': 'White', 'GUIBG': 'DarkGrey', 'GUI': 'Bold'} +let s:ColourAssignment['Question'] = {'GUIFG': s:blue, 'CTERMFG': 'Blue'} +let s:ColourAssignment['Title'] = {'GUI': 'Bold'} +let s:ColourAssignment['ModeMsg'] = {'GUI': 'Bold'} +let s:ColourAssignment['MoreMsg'] = {'GUIFG': s:green, 'CTERMFG': 'Green'} + + +" Visual aid +" ---------- +let s:ColourAssignment['MatchParen'] = {'GUIBG': s:cyan, 'CTERMBG': 'cyan'} +let s:ColourAssignment['Visual'] = {'GUIBG': 'DarkGrey'} +highlight! link VisualNOS Visual +let s:ColourAssignment['NonText'] = {'GUIFG': s:blue, 'CTERMFG': 'blue'} + +let s:ColourAssignment['Todo'] = {'GUIFG': 'Black', 'GUIBG': s:yellow, 'CTERMBG': 'yellow'} +let s:ColourAssignment['Underlined'] = {'GUIFG': s:cyan, 'CTERMFG': 'cyan', 'GUI': 'Underline'} +let s:ColourAssignment['Error'] = {'GUIFG': s:red, 'GUIBG': 'Black', 'CTERMFG': 'red', 'GUI': 'Reverse,Bold'} +let s:ColourAssignment['ErrorMsg'] = {'GUIFG': s:red, 'GUIBG': 'White', 'CTERMFG': 'red', 'GUI': 'Reverse,Bold'} +let s:ColourAssignment['WarningMsg'] = {'GUIFG': s:red, 'CTERMFG': 'red'} +let s:ColourAssignment['Ignore'] = {'GUIFG': 'bg', 'CTERMFG': 'Black'} +let s:ColourAssignment['SpecialKey'] = {'GUIFG': s:cyan, 'CTERMFG': 'Cyan'} + + +" Variable types +" -------------- +let s:ColourAssignment['Constant'] = {'GUIFG': s:magenta, 'CTERMFG': 'magenta'} +let s:ColourAssignment['Number'] = {'GUIFG': s:red, 'CTERMFG': 'red'} +highlight! link String Constant +highlight! link Boolean Constant +highlight! link Float Number + +let s:ColourAssignment['Identifier'] = {'GUIFG': s:green, 'CTERMFG': 'green', 'GUI': 'Bold'} +highlight! link Function Identifier + + +" Comments +" -------- +let s:ColourAssignment['Comment'] = {'GUIFG': s:cyan, 'CTERMFG': 'cyan'} +highlight! link SpecialComment Special + + +" Language constructs +" ------------------- +let s:ColourAssignment['Statement'] = {'GUIFG': s:yellow, 'CTERMFG': 'yellow', 'GUI': 'Bold'} +highlight! link Conditional Statement +highlight! link Repeat Statement +highlight! link Label Statement +highlight! link Operator Statement +highlight! link Keyword Statement +highlight! link Exception Statement + +let s:ColourAssignment['Special'] = {'GUIFG': s:red, 'CTERMFG': 'red'} +highlight! link SpecialChar Special +highlight! link Tag Special +highlight! link Delimiter Special +highlight! link Debug Special + + +" C like +" ------ +let s:ColourAssignment['PreProc'] = {'GUIFG': s:blue, 'CTERMFG': 'blue', 'GUI': 'Bold'} +highlight! link Include PreProc +highlight! link Define PreProc +highlight! link Macro PreProc +highlight! link PreCondit PreProc + +let s:ColourAssignment['Type'] = {'GUIFG': s:green, 'CTERMFG': 'green', 'GUI': 'Bold'} +let s:ColourAssignment['Structure'] = {'GUIFG': s:magenta, 'CTERMFG': 'magenta'} +highlight! link StorageClass Type +highlight! link Typedef Type + + +" Diff +" ---- +let s:ColourAssignment['DiffAdd'] = {'GUIFG': s:green, 'GUIBG': 'Black', 'CTERMFG': 'Green', 'GUI': 'Reverse,Bold'} +let s:ColourAssignment['DiffChange'] = {'GUIFG': 'NONE'} +let s:ColourAssignment['DiffDelete'] = {'GUIFG': s:red, 'GUIBG': 'Black', 'CTERMFG': 'Red', 'GUI': 'Reverse,Bold'} +let s:ColourAssignment['DiffText'] = {'GUIFG': s:blue, 'GUIBG': 'Black', 'CTERMFG': 'Blue', 'GUI': 'Reverse,Bold'} + + +" Completion menu +" --------------- +let s:ColourAssignment['Pmenu'] = {'GUIFG': 'Black', 'GUIBG': 'Grey'} +let s:ColourAssignment['PmenuSel'] = {'GUIFG': s:yellow, 'GUIBG': 'DarkGrey', 'GUI': 'Bold', 'CTERMFG': 'yellow'} +let s:ColourAssignment['PmenuThumb'] = {'GUIBG': 'DarkGrey'} +highlight! link PmenuSbar Pmenu + + +" Spelling +" -------- +let s:ColourAssignment['SpellBad'] = {'GUIFG': 'NONE', 'GUISP': s:red, 'CTERMFG': 'red', 'GUI': 'undercurl'} +let s:ColourAssignment['SpellCap'] = {'GUIFG': 'NONE', 'GUISP': s:blue, 'CTERMFG': 'blue', 'GUI': 'undercurl'} +let s:ColourAssignment['SpellLocal'] = {'GUIFG': 'NONE', 'GUISP': s:yellow, 'CTERMFG': 'yellow', 'GUI': 'undercurl'} +let s:ColourAssignment['SpellRare'] = {'GUIFG': 'NONE', 'GUISP': s:green, 'CTERMFG': 'green', 'GUI': 'undercurl'} + + +" Text Formatting +" --------------- +let s:ColourAssignment['Italic'] = {'GUIFG': 'White', 'GUI': 'Italic'} +let s:ColourAssignment['Bold'] = {'GUIFG': 'White', 'GUI': 'Bold'} +let s:ColourAssignment['BoldItalic'] = {'GUIFG': 'White', 'GUI': 'Italic,Bold'} +highlight! link htmlItalic Italic +highlight! link htmlBold Bold +highlight! link htmlBoldItalic BoldItalic + + +" Function to translate the ColourAssignments to highlight lines +let s:colours = {} +let s:valid_cterm_colours = + \ [ + \ 'Black', 'DarkBlue', 'DarkGreen', 'DarkCyan', + \ 'DarkRed', 'DarkMagenta', 'Brown', 'DarkYellow', + \ 'LightGray', 'LightGrey', 'Gray', 'Grey', + \ 'DarkGray', 'DarkGrey', 'Blue', 'LightBlue', + \ 'Green', 'LightGreen', 'Cyan', 'LightCyan', + \ 'Red', 'LightRed', 'Magenta', 'LightMagenta', + \ 'Yellow', 'LightYellow', 'White', + \ ] + +for s:key in keys(s:ColourAssignment) + let s:colours = s:ColourAssignment[s:key] + if has_key(s:colours, 'TERM') + let s:term = s:colours['TERM'] + else + let s:term = 'NONE' + endif + if has_key(s:colours, 'GUI') + let s:gui = s:colours['GUI'] + else + let s:gui = 'NONE' + endif + if has_key(s:colours, 'GUIFG') + let s:guifg = s:colours['GUIFG'] + else + let s:guifg = 'NONE' + endif + if has_key(s:colours, 'GUIBG') + let s:guibg = s:colours['GUIBG'] + else + let s:guibg = 'NONE' + endif + if has_key(s:colours, 'CTERM') + let s:cterm = s:colours['CTERM'] + else + let s:cterm = s:gui + endif + if has_key(s:colours, 'CTERMFG') + let s:ctermfg = s:colours['CTERMFG'] + else + if index(s:valid_cterm_colours, s:guifg) != -1 + let s:ctermfg = s:guifg + else + let s:ctermfg = 'NONE' + endif + endif + if has_key(s:colours, 'CTERMBG') + let s:ctermbg = s:colours['CTERMBG'] + else + if index(s:valid_cterm_colours, s:guibg) != -1 + let s:ctermbg = s:guibg + else + let s:ctermbg = 'NONE' + endif + endif + if has_key(s:colours, 'GUISP') + let s:guisp = s:colours['GUISP'] + else + let s:guisp = 'NONE' + endif + + if s:key =~# '^\k*$' + execute 'highlight '.s:key.' term='.s:term.' cterm='.s:cterm.' gui='.s:gui.' ctermfg='.s:ctermfg.' guifg='.s:guifg.' ctermbg='.s:ctermbg.' guibg='.s:guibg.' guisp='.s:guisp + endif +endfor diff --git a/vim/colors/wombat256i.vim b/vim/colors/wombat256i.vim new file mode 100644 index 0000000..4785ccf --- /dev/null +++ b/vim/colors/wombat256i.vim @@ -0,0 +1,307 @@ +" Vim color file +" Maintainer: David Liang (bmdavll at gmail dot com) +" Last Change: November 28 2008 +" +" wombat256.vim - a modified version of Wombat by Lars Nielsen that also +" works on xterms with 88 or 256 colors. The algorithm for approximating the +" GUI colors with the xterm palette is from desert256.vim by Henry So Jr. + +" Minor changes by Daniel Solstad (http://dsolstad.com) +" - Changed the static background color to terminal default, which makes it transparent (if your terminal is) +" - Changed colors of line numbering +" - Changed non text to nothing. Keeping space you havn't written on yet the same as the rest, and not hard black. + + +set background=dark + +if version > 580 + hi clear + if exists("syntax_on") + syntax reset + endif +endif + +let g:colors_name = "wombat256i" + +if !has("gui_running") && &t_Co != 88 && &t_Co != 256 + finish +endif + +" functions {{{ +" returns an approximate grey index for the given grey level +fun grey_number(x) + if &t_Co == 88 + if a:x < 23 + return 0 + elseif a:x < 69 + return 1 + elseif a:x < 103 + return 2 + elseif a:x < 127 + return 3 + elseif a:x < 150 + return 4 + elseif a:x < 173 + return 5 + elseif a:x < 196 + return 6 + elseif a:x < 219 + return 7 + elseif a:x < 243 + return 8 + else + return 9 + endif + else + if a:x < 14 + return 0 + else + let l:n = (a:x - 8) / 10 + let l:m = (a:x - 8) % 10 + if l:m < 5 + return l:n + else + return l:n + 1 + endif + endif + endif +endfun + +" returns the actual grey level represented by the grey index +fun grey_level(n) + if &t_Co == 88 + if a:n == 0 + return 0 + elseif a:n == 1 + return 46 + elseif a:n == 2 + return 92 + elseif a:n == 3 + return 115 + elseif a:n == 4 + return 139 + elseif a:n == 5 + return 162 + elseif a:n == 6 + return 185 + elseif a:n == 7 + return 208 + elseif a:n == 8 + return 231 + else + return 255 + endif + else + if a:n == 0 + return 0 + else + return 8 + (a:n * 10) + endif + endif +endfun + +" returns the palette index for the given grey index +fun grey_color(n) + if &t_Co == 88 + if a:n == 0 + return 16 + elseif a:n == 9 + return 79 + else + return 79 + a:n + endif + else + if a:n == 0 + return 16 + elseif a:n == 25 + return 231 + else + return 231 + a:n + endif + endif +endfun + +" returns an approximate color index for the given color level +fun rgb_number(x) + if &t_Co == 88 + if a:x < 69 + return 0 + elseif a:x < 172 + return 1 + elseif a:x < 230 + return 2 + else + return 3 + endif + else + if a:x < 75 + return 0 + else + let l:n = (a:x - 55) / 40 + let l:m = (a:x - 55) % 40 + if l:m < 20 + return l:n + else + return l:n + 1 + endif + endif + endif +endfun + +" returns the actual color level for the given color index +fun rgb_level(n) + if &t_Co == 88 + if a:n == 0 + return 0 + elseif a:n == 1 + return 139 + elseif a:n == 2 + return 205 + else + return 255 + endif + else + if a:n == 0 + return 0 + else + return 55 + (a:n * 40) + endif + endif +endfun + +" returns the palette index for the given R/G/B color indices +fun rgb_color(x, y, z) + if &t_Co == 88 + return 16 + (a:x * 16) + (a:y * 4) + a:z + else + return 16 + (a:x * 36) + (a:y * 6) + a:z + endif +endfun + +" returns the palette index to approximate the given R/G/B color levels +fun color(r, g, b) + " get the closest grey + let l:gx = grey_number(a:r) + let l:gy = grey_number(a:g) + let l:gz = grey_number(a:b) + + " get the closest color + let l:x = rgb_number(a:r) + let l:y = rgb_number(a:g) + let l:z = rgb_number(a:b) + + if l:gx == l:gy && l:gy == l:gz + " there are two possibilities + let l:dgr = grey_level(l:gx) - a:r + let l:dgg = grey_level(l:gy) - a:g + let l:dgb = grey_level(l:gz) - a:b + let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) + let l:dr = rgb_level(l:gx) - a:r + let l:dg = rgb_level(l:gy) - a:g + let l:db = rgb_level(l:gz) - a:b + let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db) + if l:dgrey < l:drgb + " use the grey + return grey_color(l:gx) + else + " use the color + return rgb_color(l:x, l:y, l:z) + endif + else + " only one possibility + return rgb_color(l:x, l:y, l:z) + endif +endfun + +" returns the palette index to approximate the 'rrggbb' hex string +fun rgb(rgb) + let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0 + let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0 + let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0 + return color(l:r, l:g, l:b) +endfun + +" sets the highlighting for the given group +fun X(group, fg, bg, attr) + if a:fg != "" + exec "hi ".a:group." guifg=#".a:fg." ctermfg=".rgb(a:fg) + endif + if a:bg != "" + exec "hi ".a:group." guibg=#".a:bg." ctermbg=".rgb(a:bg) + endif + if a:attr != "" + if a:attr == 'italic' + exec "hi ".a:group." gui=".a:attr." cterm=none" + else + exec "hi ".a:group." gui=".a:attr." cterm=".a:attr + endif + endif +endfun +" }}} + +call X("Normal", "cccccc", "", "none") +call X("Cursor", "222222", "ecee90", "none") +call X("CursorLine", "", "32322e", "none") +call X("CursorColumn", "", "2d2d2d", "") + "CursorIM + "Question + "IncSearch +call X("Search", "444444", "af87d7", "") +call X("MatchParen", "ecee90", "857b6f", "bold") +call X("SpecialKey", "6c6c6c", "", "none") +call X("Visual", "ecee90", "597418", "none") +call X("LineNr", "FFFFFF", "242424", "none") +call X("Folded", "a0a8b0", "404048", "none") +call X("Title", "f6f3e8", "", "bold") +call X("VertSplit", "444444", "444444", "none") +call X("StatusLine", "f6f3e8", "444444", "italic") +call X("StatusLineNC", "857b6f", "444444", "none") + "Scrollbar + "Tooltip + "Menu + "WildMenu +call X("Pmenu", "f6f3e8", "444444", "") +call X("PmenuSel", "121212", "caeb82", "") +call X("WarningMsg", "ff0000", "", "") + "ErrorMsg + "ModeMsg + "MoreMsg + "Directory + "DiffAdd + "DiffChange + "DiffDelete + "DiffText + +" syntax highlighting +call X("Number", "e5786d", "", "none") +call X("Constant", "e5786d", "", "none") +call X("String", "95e454", "", "italic") +call X("Comment", "c0bc6c", "", "italic") +call X("Identifier", "caeb82", "", "none") +call X("Keyword", "87afff", "", "none") +call X("Statement", "87afff", "", "none") +call X("Function", "caeb82", "", "none") +call X("PreProc", "e5786d", "", "none") +call X("Type", "caeb82", "", "none") +call X("Special", "ffdead", "", "none") +call X("Todo", "857b6f", "", "italic") + "Underlined + "Error + "Ignore + +hi! link VisualNOS Visual +hi! link FoldColumn Folded + +" delete functions {{{ +delf X +delf rgb +delf color +delf rgb_color +delf rgb_level +delf rgb_number +delf grey_color +delf grey_level +delf grey_number +" }}} + +" vim:set ts=4 sw=4 noet fdm=marker: diff --git a/vim/colors/zenburn.vim b/vim/colors/zenburn.vim new file mode 100644 index 0000000..65660a7 --- /dev/null +++ b/vim/colors/zenburn.vim @@ -0,0 +1,467 @@ +" Vim color file +" Maintainer: Jani Nurminen +" URL: http://kippura.org/zenburnpage/ +" License: GNU GPL +" +" Nothing too fancy, just some alien fruit salad to keep you in the zone. +" This syntax file was designed to be used with dark environments and +" low light situations. Of course, if it works during a daybright office, go +" ahead :) +" +" Owes heavily to other Vim color files! With special mentions +" to "BlackDust", "Camo" and "Desert". +" +" To install, copy to ~/.vim/colors directory. +" +" Alternatively, you can use Vimball installation: +" vim zenburn.vba +" :so % +" :q +" +" For details, see :help vimball +" +" After installation, use it with :colorscheme zenburn. +" See also :help syntax +" +" Credits: +" - Jani Nurminen - original Zenburn, maintainer +" - Steve Hall & Cream posse - higher-contrast Visual selection +" - Kurt Maier - 256 color console coloring, low and high contrast toggle, +" bug fixing +" - Charlie - spotted too bright StatusLine in non-high contrast mode +" - Pablo Castellazzi - CursorLine fix for 256 color mode +" - Tim Smith - force dark background +" - John Gabriele - spotted bad Ignore-group handling +" - Zac Thompson - spotted invisible NonText in low contrast mode +" - Christophe-Marie Duquesne - suggested making a Vimball, +" suggested support for ctags_highlighting.vim +" - Andrew Wagner - noted the CursorColumn bug (guifg was unintentionally set), +" unify CursorColumn colour +" - Martin Langasek - clarify the license, whitespace fixes +" - Marcin Szamotulski - support autocomplete for Zenburn configuration +" parameters +" - Clayton Parker (claytron) - Convinced by Kurt Maier to use Zenburn. Point +" out issues with LineNr, fix directory styles, and their usage in MacVim. +" - Paweł Piekarski - Spotted bad FoldColumn and TabLine. Made better +" FoldColumn colors, fixed TabLine colors. +" - Jim - Fix for missing Include group for terminal +" - Peter (Sakartu) - ColorColumn fixes +" - Please see git log for the others not listed here +" +" CONFIGURABLE PARAMETERS: +" +" You can use the default (don't set any parameters), or you can +" set some parameters to tweak the Zenburn colours. +" +" To use them, put them into your .vimrc file before loading the color scheme, +" example: +" let g:zenburn_high_Contrast=1 +" colors zenburn +" +" You can also do ":let g:zenburn" then hit Ctrl-d or Tab to scroll through the +" list of configurable parameters. +" +" * You can now set a darker background for bright environments. To activate, use: +" let g:zenburn_high_Contrast = 1 +" +" * For transparent terminals set the background to black with: +" let g:zenburn_transparent = 1 +" +" * For example, Vim help files uses the Ignore-group for the pipes in tags +" like "|somelink.txt|". By default, the pipes are not visible, as they +" map to Ignore group. If you wish to enable coloring of the Ignore group, +" set the following parameter to 1. Warning, it might make some syntax files +" look strange. +" +" let g:zenburn_color_also_Ignore = 1 +" +" * To get more contrast to the Visual selection, use +" +" let g:zenburn_alternate_Visual = 1 +" +" Note: this is enabled only if the old-style Visual +" if used, see g:zenburn_old_Visual +" +" * To use alternate colouring for Error message, use +" +" let g:zenburn_alternate_Error = 1 +" +" * The new default for Include is a duller orange. To use the original +" colouring for Include, use +" +" let g:zenburn_alternate_Include = 1 +" +" * To disable underlining for Labels, use +" +" let g:zenburn_disable_Label_underline = 1 +" +" * Work-around to a Vim bug, it seems to misinterpret ctermfg and 234 and 237 +" as light values, and sets background to light for some people. If you have +" this problem, use: +" +" let g:zenburn_force_dark_Background = 1 +" +" * By default the CursorColumn is of a lighter colour. I find it more readable +" that way, but some people may want to align it with the darker CursorLine +" color, for visual uniformity. To do so, use: +" +" let g:zenburn_unified_CursorColumn = 1 +" +" Note: you can ignore this unless you use +" ":set cursorline cursorcolumn", since otherwise the effect won't be +" seen. +" +" * New (dark) Visual coloring has been introduced. +" The dark Visual is more aligned with the rest of the colour scheme, +" especially if you use line numbers. If you wish to use the +" old Visual coloring, use +" +" let g:zenburn_old_Visual = 1 +" +" Default is to use the new Visual. +" +" * EXPERIMENTAL FEATURE: Zenburn would like to support TagHighlight +" (an evolved ctags-highlighter) by Al Budden (homepage: +" http://www.cgtk.co.uk/vim-scripts/taghighlight). +" Current support status is broken: there is no automatic detection of +" TagHighlight, no specific language support; however there is some basic +" support for Python. If you are a user of TagHighlight and want to help, +" please enable: +" +" let g:zenburn_enable_TagHighlight=1 +" +" and improve the corresponding block at the end of the file. +" +" NOTE: +" +" * To turn the parameter(s) back to defaults, use UNLET or set them to 0: +" +" unlet g:zenburn_alternate_Include +" or +" let g:zenburn_alternate_Include = 0 +" +" +" That's it, enjoy! +" +" TODO +" - Visual alternate color is broken? Try GVim >= 7.0.66 if you have trouble +" - IME colouring (CursorIM) + +" Finish if we are in a term lacking 256 color support +if ! has("gui_running") && &t_Co <= 255 + finish +endif + +" Set defaults, but keep any parameters already set by the user +if ! exists("g:zenburn_high_Contrast") + let g:zenburn_high_Contrast = 0 +endif + +if ! exists("g:zenburn_transparent") + let g:zenburn_transparent = 0 +endif + +if ! exists("g:zenburn_color_also_Ignore") + let g:zenburn_color_also_Ignore = 0 +endif + +if ! exists("g:zenburn_alternate_Error") + let g:zenburn_alternate_Error = 0 +endif + +if ! exists("g:zenburn_force_dark_Background") + let g:zenburn_force_dark_Background = 0 +endif + +if ! exists("g:zenburn_alternate_Visual") + let g:zenburn_alternate_Visual = 0 +endif + +if ! exists("g:zenburn_alternate_Include") + let g:zenburn_alternate_Include = 0 +endif + +if ! exists("g:zenburn_disable_Label_underline") + let g:zenburn_disable_Label_underline = 0 +endif + +if ! exists("g:zenburn_unified_CursorColumn") + let g:zenburn_unified_CursorColumn = 0 +endif + +if ! exists("g:zenburn_old_Visual") + let g:zenburn_old_Visual = 0 +endif + +if ! exists("g:zenburn_enable_TagHighlight") + let g:zenburn_enable_TagHighlight = 0 +endif + +" ----------------------------------------------- + +set background=dark + +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="zenburn" + +hi Boolean guifg=#dca3a3 ctermfg=181 +hi Character guifg=#dca3a3 gui=bold ctermfg=181 cterm=bold +hi Comment guifg=#7f9f7f gui=italic ctermfg=108 +hi Conditional guifg=#f0dfaf gui=bold ctermfg=223 cterm=bold +hi Constant guifg=#dca3a3 gui=bold ctermfg=181 cterm=bold +hi Cursor guifg=#000d18 guibg=#8faf9f gui=bold ctermfg=233 ctermbg=109 cterm=bold +hi Debug guifg=#bca3a3 gui=bold ctermfg=181 cterm=bold +hi Define guifg=#ffcfaf gui=bold ctermfg=223 cterm=bold +hi Delimiter guifg=#8f8f8f ctermfg=245 +hi DiffAdd guifg=#709080 guibg=#313c36 gui=bold ctermfg=66 ctermbg=237 cterm=bold +hi DiffChange guibg=#333333 ctermbg=236 +hi DiffDelete guifg=#333333 guibg=#464646 ctermfg=236 ctermbg=238 +hi DiffText guifg=#ecbcbc guibg=#41363c gui=bold ctermfg=217 ctermbg=237 cterm=bold +hi Directory guifg=#9fafaf gui=bold ctermfg=109 cterm=bold +hi ErrorMsg guifg=#80d4aa guibg=#2f2f2f gui=bold ctermfg=115 ctermbg=236 cterm=bold +hi Exception guifg=#c3bf9f gui=bold ctermfg=249 cterm=bold +hi Float guifg=#c0bed1 ctermfg=251 +hi FoldColumn guifg=#93b3a3 guibg=#3f4040 +hi Folded guifg=#93b3a3 guibg=#3f4040 +hi Function guifg=#efef8f ctermfg=228 +hi Identifier guifg=#efdcbc ctermfg=223 cterm=none +hi IncSearch guifg=#f8f893 guibg=#385f38 ctermfg=228 ctermbg=23 +hi Keyword guifg=#f0dfaf gui=bold ctermfg=223 cterm=bold +hi Macro guifg=#ffcfaf gui=bold ctermfg=223 cterm=bold +hi ModeMsg guifg=#ffcfaf gui=none ctermfg=223 cterm=none +hi MoreMsg guifg=#ffffff gui=bold ctermfg=231 cterm=bold +hi Number guifg=#8cd0d3 ctermfg=116 +hi Operator guifg=#f0efd0 ctermfg=230 +hi PmenuSbar guibg=#2e3330 guifg=#000000 ctermfg=16 ctermbg=236 +hi PmenuThumb guibg=#a0afa0 guifg=#040404 ctermfg=232 ctermbg=151 +hi PreCondit guifg=#dfaf8f gui=bold ctermfg=180 cterm=bold +hi PreProc guifg=#ffcfaf gui=bold ctermfg=223 cterm=bold +hi Question guifg=#ffffff gui=bold ctermfg=231 cterm=bold +hi Repeat guifg=#ffd7a7 gui=bold ctermfg=223 cterm=bold +hi Search guifg=#ffffe0 guibg=#284f28 ctermfg=230 ctermbg=22 +hi SignColumn guifg=#9fafaf gui=bold ctermfg=109 cterm=bold +hi SpecialChar guifg=#dca3a3 gui=bold ctermfg=181 cterm=bold +hi SpecialComment guifg=#82a282 gui=bold ctermfg=108 cterm=bold +hi Special guifg=#cfbfaf ctermfg=181 +hi SpecialKey guifg=#9ece9e ctermfg=151 +hi Statement guifg=#e3ceab gui=none ctermfg=187 cterm=none +hi StatusLine guifg=#313633 guibg=#ccdc90 ctermfg=236 ctermbg=186 +hi StatusLineNC guifg=#2e3330 guibg=#88b090 ctermfg=235 ctermbg=108 +hi StorageClass guifg=#c3bf9f gui=bold ctermfg=249 cterm=bold +hi String guifg=#cc9393 ctermfg=174 +hi Structure guifg=#efefaf gui=bold ctermfg=229 cterm=bold +hi Tag guifg=#e89393 gui=bold ctermfg=181 cterm=bold +hi Title guifg=#efefef gui=bold ctermfg=255 ctermbg=NONE cterm=bold +hi Todo guifg=#dfdfdf guibg=NONE gui=bold ctermfg=254 ctermbg=NONE cterm=bold +hi Typedef guifg=#dfe4cf gui=bold ctermfg=253 cterm=bold +hi Type guifg=#dfdfbf gui=bold ctermfg=187 cterm=bold +hi Underlined guifg=#dcdccc gui=underline ctermfg=188 cterm=underline +hi VertSplit guifg=#2e3330 guibg=#688060 ctermfg=236 ctermbg=65 +hi VisualNOS guifg=#333333 guibg=#f18c96 gui=bold,underline ctermfg=236 ctermbg=210 cterm=bold +hi WarningMsg guifg=#ffffff guibg=#333333 gui=bold ctermfg=231 ctermbg=236 cterm=bold +hi WildMenu guifg=#cbecd0 guibg=#2c302d gui=underline ctermfg=194 ctermbg=236 cterm=underline + +" spellchecking, always "bright" term background +hi SpellBad guisp=#bc6c4c guifg=#dc8c6c ctermfg=209 ctermbg=237 +hi SpellCap guisp=#6c6c9c guifg=#8c8cbc ctermfg=103 ctermbg=237 +hi SpellRare guisp=#bc6c9c guifg=#bc8cbc ctermfg=139 ctermbg=237 +hi SpellLocal guisp=#7cac7c guifg=#9ccc9c ctermfg=151 ctermbg=237 + +if exists("g:zenburn_high_Contrast") && g:zenburn_high_Contrast + " use new darker background + hi Normal guifg=#dcdccc guibg=#1f1f1f ctermfg=188 ctermbg=234 + hi ColorColumn guibg=#33332f ctermbg=235 + hi CursorLine guibg=#121212 gui=bold ctermbg=233 cterm=none + hi CursorLineNr guifg=#f2f3bb guibg=#161616 ctermfg=229 ctermbg=233 + if exists("g:zenburn_unified_CursorColumn") && g:zenburn_unified_CursorColumn + hi CursorColumn guibg=#121212 gui=bold ctermbg=233 cterm=none + else + hi CursorColumn guibg=#2b2b2b ctermbg=235 cterm=none + endif + hi FoldColumn guibg=#161616 ctermbg=233 ctermfg=109 + hi Folded guibg=#161616 ctermbg=233 ctermfg=109 + hi LineNr guifg=#9fafaf guibg=#161616 ctermfg=248 ctermbg=233 + hi NonText guifg=#404040 gui=bold ctermfg=238 + hi Pmenu guibg=#242424 guifg=#ccccbc ctermfg=251 ctermbg=235 + hi PmenuSel guibg=#353a37 guifg=#ccdc90 gui=bold ctermfg=187 ctermbg=236 cterm=bold + hi MatchParen guifg=#f0f0c0 guibg=#383838 gui=bold ctermfg=229 ctermbg=237 cterm=bold + hi SignColumn guibg=#181818 ctermbg=233 + hi SpecialKey guibg=#242424 + hi TabLine guifg=#88b090 guibg=#313633 gui=none ctermbg=236 ctermfg=108 cterm=none + hi TabLineSel guifg=#ccd990 guibg=#222222 ctermbg=235 ctermfg=186 cterm=bold + hi TabLineFill guifg=#88b090 guibg=#313633 gui=none ctermbg=236 ctermfg=108 cterm=none +else + " Original, lighter background + hi Normal guifg=#dcdccc guibg=#3f3f3f ctermfg=188 ctermbg=237 + hi ColorColumn guibg=#484848 ctermbg=238 + hi CursorLine guibg=#434443 ctermbg=238 cterm=none + hi CursorLineNr guifg=#d2d39b guibg=#262626 ctermfg=230 ctermbg=235 + if exists("g:zenburn_unified_CursorColumn") && g:zenburn_unified_CursorColumn + hi CursorColumn guibg=#434343 ctermbg=238 cterm=none + else + hi CursorColumn guibg=#4f4f4f ctermbg=239 cterm=none + endif + hi FoldColumn guibg=#333333 ctermbg=236 ctermfg=109 + hi Folded guibg=#333333 ctermbg=236 ctermfg=109 + hi LineNr guifg=#9fafaf guibg=#262626 ctermfg=248 ctermbg=235 + hi NonText guifg=#5b605e gui=bold ctermfg=240 + hi Pmenu guibg=#2c2e2e guifg=#9f9f9f ctermfg=248 ctermbg=235 + hi PmenuSel guibg=#242424 guifg=#d0d0a0 gui=bold ctermfg=187 ctermbg=235 cterm=bold + hi MatchParen guifg=#b2b2a0 guibg=#2e2e2e gui=bold ctermfg=145 ctermbg=236 cterm=bold + hi SignColumn guibg=#343434 ctermbg=236 + hi SpecialKey guibg=#444444 + hi TabLine guifg=#d0d0b8 guibg=#222222 gui=none ctermbg=235 ctermfg=187 cterm=none + hi TabLineSel guifg=#f0f0b0 guibg=#333333 gui=bold ctermbg=236 ctermfg=229 cterm=bold + hi TabLineFill guifg=#dccdcc guibg=#101010 gui=none ctermbg=233 ctermfg=188 cterm=none + + hi StatusLine ctermbg=144 +endif + +if exists("g:zenburn_force_dark_Background") && g:zenburn_force_dark_Background + " Force dark background, because of a bug in VIM: VIM sets background + " automatically during "hi Normal ctermfg=X"; it misinterprets the high + " value (234 or 237 above) as a light color, and wrongly sets background to + " light. See ":help highlight" for details. + set background=dark +endif + +if exists("g:zenburn_transparent") && g:zenburn_transparent + hi Normal ctermbg=0 guibg=#000000 + hi Statement ctermbg=NONE + hi Title ctermbg=NONE + hi Todo ctermbg=NONE + hi Underlined ctermbg=NONE + hi DiffAdd ctermbg=NONE + hi DiffText ctermbg=NONE + hi ErrorMsg ctermbg=NONE + hi LineNr ctermbg=NONE +endif + +if exists("g:zenburn_old_Visual") && g:zenburn_old_Visual + if exists("g:zenburn_alternate_Visual") && g:zenburn_alternate_Visual + " Visual with more contrast, thanks to Steve Hall & Cream posse + " gui=none fixes weird highlight problem in at least GVim 7.0.66, thanks to Kurt Maier + hi Visual guifg=#000000 guibg=#71d3b4 gui=none ctermfg=16 ctermbg=79 cterm=none + hi VisualNOS guifg=#000000 guibg=#71d3b4 gui=none ctermfg=16 ctermbg=79 cterm=none + else + " use default visual + hi Visual guifg=#233323 guibg=#71d3b4 gui=none ctermfg=235 ctermbg=79 cterm=none + hi VisualNOS guifg=#233323 guibg=#71d3b4 gui=none ctermfg=235 ctermbg=79 cterm=none + endif +else + " new Visual style + if exists("g:zenburn_high_Contrast") && g:zenburn_high_Contrast + " high contrast + "hi Visual guibg=#304a3d + "hi VisualNos guibg=#304a3d + "TODO no nice greenish in console, 65 is closest. use full black instead, + "although i like the green..! + hi Visual guibg=#0f0f0f ctermbg=232 + hi VisualNOS guibg=#0f0f0f ctermbg=232 + if exists("g:zenburn_transparent") && g:zenburn_transparent + hi Visual ctermbg=235 + endif + else + " low contrast + hi Visual guibg=#2f2f2f ctermbg=235 + hi VisualNOS guibg=#2f2f2f ctermbg=235 + endif +endif + +if exists("g:zenburn_alternate_Error") && g:zenburn_alternate_Error + " use more jumpy Error + hi Error guifg=#e37170 guibg=#664040 gui=bold ctermfg=210 ctermbg=52 cterm=bold +else + " default is something more zenburn-compatible + hi Error guifg=#e37170 guibg=#3d3535 gui=bold ctermfg=167 ctermbg=236 cterm=bold +endif + +if exists("g:zenburn_alternate_Include") && g:zenburn_alternate_Include + " original setting + hi Include guifg=#ffcfaf gui=bold ctermfg=223 cterm=bold +else + " new, less contrasted one + hi Include guifg=#dfaf8f gui=bold ctermfg=180 cterm=bold +endif + +if exists("g:zenburn_disable_Label_underline") && g:zenburn_disable_Label_underline + hi Label guifg=#dfcfaf ctermfg=187 +else + hi Label guifg=#dfcfaf gui=underline ctermfg=187 cterm=underline +endif + +if exists("g:zenburn_color_also_Ignore") && g:zenburn_color_also_Ignore + " color the Ignore groups + " note: if you get strange coloring for your files, turn this off (unlet) + if exists("g:zenburn_high_Contrast") && g:zenburn_high_Contrast + hi Ignore ctermfg=238 + else + hi Ignore guifg=#545a4f ctermfg=240 + endif +endif + +" EXPERIMENTAL TagHighlight support +" link/set sensible defaults here; +" +" For now I mostly link to subset of Zenburn colors, the linkage is based +" on appearance, not semantics. In later versions I might define more new colours. +" +" HELP NEEDED to make this work properly. + +if exists("g:zenburn_enable_TagHighlight") && g:zenburn_enable_TagHighlight + " CTag support may vary, but the first step is to start using it so + " we can fix it! + " + " Consult /plugin/TagHighlight/data/kinds.txt for info on your + " language and what's been defined. + " + " There is potential for language indepedent features here. (Acutally, + " seems it may be required for this to be useful...) This way we can + " implement features depending on how well CTags are currently implemented + " for the language. ie. Global problem for python is annoying. Special + " colors are defined for special language features, etc.. + " + " For now all I care about is python supported features: + " c:CTagsClass + " f:CTagsFunction + " i:CTagsImport + " m:CTagsMember + " v:CTagsGlobalVariable + " + " Note: TagHighlight defaults to setting new tags to Keyword + " highlighting. + + " TODO conditionally run each section + " BEGIN Python Section + hi link Class Function + hi link Import PythonInclude + hi link Member Function + "Note: Function is already defined + + " Highlighter seems to think a lot of things are global variables even + " though they're not. Example: python method-local variable is + " coloured as a global variable. They should not be global, since + " they're not visible outside the method. + " If this is some very bright colour group then things look bad. + " hi link GlobalVariable Identifier + + " Because of this problem I am disabling the feature by setting it to + " Normal instead + hi link GlobalVariable Normal + " END Python Section + + " Starting point for other languages. + hi link GlobalConstant Constant + hi link EnumerationValue Float + hi link EnumerationName Identifier + hi link DefinedName WarningMsg + hi link LocalVariable WarningMsg + hi link Structure WarningMsg + hi link Union WarningMsg +endif + +" TODO check for more obscure syntax groups that they're ok + diff --git a/vim/vimrc b/vim/vimrc new file mode 100644 index 0000000..7d63572 --- /dev/null +++ b/vim/vimrc @@ -0,0 +1,405 @@ +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Maintainer: +" Amir Salihefendic +" http://amix.dk - amix@amix.dk +" +" Version: +" 5.0 - 29/05/12 15:43:36 +" +" Blog_post: +" http://amix.dk/blog/post/19691#The-ultimate-Vim-configuration-on-Github +" +" Awesome_version: +" Get this config, nice color schemes and lots of plugins! +" +" Install the awesome version from: +" +" https://github.com/amix/vimrc +" +" Syntax_highlighted: +" http://amix.dk/vim/vimrc.html +" +" Raw_version: +" http://amix.dk/vim/vimrc.txt +" +" Sections: +" -> General +" -> VIM user interface +" -> Colors and Fonts +" -> Files and backups +" -> Text, tab and indent related +" -> Visual mode related +" -> Moving around, tabs and buffers +" -> Status line +" -> Editing mappings +" -> vimgrep searching and cope displaying +" -> Spell checking +" -> Misc +" -> Helper functions +" +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => General +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Sets how many lines of history VIM has to remember +set history=700 + +" Enable filetype plugins +filetype plugin on +filetype indent on + +" Set to auto read when a file is changed from the outside +set autoread + +" With a map leader it's possible to do extra key combinations +" like w saves the current file +let mapleader = "," +let g:mapleader = "," + +" Fast saving +nmap w :w! + + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => VIM user interface +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Set 7 lines to the cursor - when moving vertically using j/k +set so=7 + +" Turn on the WiLd menu +set wildmenu + +" Ignore compiled files +set wildignore=*.o,*~,*.pyc + +"Always show current position +set ruler + +" Height of the command bar +set cmdheight=2 + +" A buffer becomes hidden when it is abandoned +set hid + +" Configure backspace so it acts as it should act +set backspace=eol,start,indent +set whichwrap+=<,>,h,l + +" Ignore case when searching +set ignorecase + +" When searching try to be smart about cases +set smartcase + +" Highlight search results +set hlsearch + +" Makes search act like search in modern browsers +set incsearch + +" Don't redraw while executing macros (good performance config) +set lazyredraw + +" For regular expressions turn magic on +set magic + +" Show matching brackets when text indicator is over them +set showmatch +" How many tenths of a second to blink when matching brackets +set mat=2 + +" No annoying sound on errors +set noerrorbells +set novisualbell +set t_vb= +set tm=500 + + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Colors and Fonts +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Enable syntax highlighting +syntax enable + +set t_Co=256 +"set background=dark + +" Set extra options when running in GUI mode +if has("gui_running") + set guioptions-=T + set guioptions+=e + set t_Co=256 + set guitablabel=%M\ %t +endif + +" Set utf8 as standard encoding and en_US as the standard language +set encoding=utf8 + +" Use Unix as the standard file type +set ffs=unix,dos,mac + + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Files, backups and undo +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Turn backup off, since most stuff is in SVN, git et.c anyway... +set nobackup +set nowb +set noswapfile + + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Text, tab and indent related +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Use spaces instead of tabs +set expandtab + +" Be smart when using tabs ;) +set smarttab + +" 1 tab == 4 spaces +set shiftwidth=4 +set tabstop=4 + +" Linebreak on 500 characters +set lbr +set tw=500 + +set ai "Auto indent +set si "Smart indent +set wrap "Wrap lines + + +"""""""""""""""""""""""""""""" +" => Visual mode related +"""""""""""""""""""""""""""""" +" Visual mode pressing * or # searches for the current selection +" Super useful! From an idea by Michael Naumann +vnoremap * :call VisualSelection('f') +vnoremap # :call VisualSelection('b') + + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Moving around, tabs, windows and buffers +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Treat long lines as break lines (useful when moving around in them) +map j gj +map k gk + +" Map to / (search) and Ctrl- to ? (backwards search) +map / +map ? + +" Disable highlight when is pressed +map :noh + +" Smart way to move between windows +map j +map k +map h +map l + +" Close the current buffer +map bd :Bclose + +" Close all the buffers +map ba :1,1000 bd! + +" Useful mappings for managing tabs +map tn :tabnew +map to :tabonly +map tc :tabclose +map tm :tabmove + +" Opens a new tab with the current buffer's path +" Super useful when editing files in the same directory +map te :tabedit =expand("%:p:h")/ + +" Switch CWD to the directory of the open buffer +map cd :cd %:p:h:pwd + +" Specify the behavior when switching between buffers +try + set switchbuf=useopen,usetab,newtab + set stal=2 +catch +endtry + +" Return to last edit position when opening files (You want this!) +autocmd BufReadPost * + \ if line("'\"") > 0 && line("'\"") <= line("$") | + \ exe "normal! g`\"" | + \ endif +" Remember info about open buffers on close +set viminfo^=% + + +"""""""""""""""""""""""""""""" +" => Status line +"""""""""""""""""""""""""""""" +" Always show the status line +set laststatus=2 + +" Format the status line +set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l + + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Editing mappings +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Remap VIM 0 to first non-blank character +map 0 ^ + +" Move a line of text using ALT+[jk] or Comamnd+[jk] on mac +nmap mz:m+`z +nmap mz:m-2`z +vmap :m'>+`mzgv`yo`z +vmap :m'<-2`>my` + nmap + vmap + vmap +endif + +" Delete trailing white space on save, useful for Python and CoffeeScript ;) +func! DeleteTrailingWS() + exe "normal mz" + %s/\s\+$//ge + exe "normal `z" +endfunc +autocmd BufWrite *.py :call DeleteTrailingWS() +autocmd BufWrite *.coffee :call DeleteTrailingWS() + + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => vimgrep searching and cope displaying +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" When you press gv you vimgrep after the selected text +vnoremap gv :call VisualSelection('gv') + +" Open vimgrep and put the cursor in the right position +map g :vimgrep // **/*. + +" Vimgreps in the current file +map :vimgrep // % + +" When you press r you can search and replace the selected text +vnoremap r :call VisualSelection('replace') + +" Do :help cope if you are unsure what cope is. It's super useful! +" +" When you search with vimgrep, display your results in cope by doing: +" cc +" +" To go to the next search result do: +" n +" +" To go to the previous search results do: +" p +" +map cc :botright cope +map co ggVGy:tabnew:set syntax=qfpgg +map n :cn +map p :cp + + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Spell checking +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Pressing ,ss will toggle and untoggle spell checking +map ss :setlocal spell! + +" Shortcuts using +map sn ]s +map sp [s +map sa zg +map s? z= + + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Misc +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Remove the Windows ^M - when the encodings gets messed up +noremap m mmHmt:%s///ge'tzt'm + +" Quickly open a buffer for scripbble +map q :e ~/buffer + +" Toggle paste mode on and off +map pp :setlocal paste! + + + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Helper functions +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +function! CmdLine(str) + exe "menu Foo.Bar :" . a:str + emenu Foo.Bar + unmenu Foo +endfunction + +function! VisualSelection(direction) range + let l:saved_reg = @" + execute "normal! vgvy" + + let l:pattern = escape(@", '\\/.*$^~[]') + let l:pattern = substitute(l:pattern, "\n$", "", "") + + if a:direction == 'b' + execute "normal ?" . l:pattern . "^M" + elseif a:direction == 'gv' + call CmdLine("vimgrep " . '/'. l:pattern . '/' . ' **/*.') + elseif a:direction == 'replace' + call CmdLine("%s" . '/'. l:pattern . '/') + elseif a:direction == 'f' + execute "normal /" . l:pattern . "^M" + endif + + let @/ = l:pattern + let @" = l:saved_reg +endfunction + + +" Returns true if paste mode is enabled +function! HasPaste() + if &paste + return 'PASTE MODE ' + en + return '' +endfunction + +" Don't close window, when deleting a buffer +command! Bclose call BufcloseCloseIt() +function! BufcloseCloseIt() + let l:currentBufNum = bufnr("%") + let l:alternateBufNum = bufnr("#") + + if buflisted(l:alternateBufNum) + buffer # + else + bnext + endif + + if bufnr("%") == l:currentBufNum + new + endif + + if buflisted(l:currentBufNum) + execute("bdelete! ".l:currentBufNum) + endif +endfunction + +" colorscheme zenburn +" colorscheme eldar + +if v:version < 802 + packadd! dracula +endif +syntax enable +colorscheme dracula + diff --git a/xinitrc b/xinitrc new file mode 100755 index 0000000..9dbc9d0 --- /dev/null +++ b/xinitrc @@ -0,0 +1,44 @@ +#!/bin/sh + +userresources=$HOME/.Xresources +usermodmap=$HOME/.Xmodmap +sysresources=/etc/X11/xinit/.Xresources +sysmodmap=/etc/X11/xinit/.Xmodmap + +# merge in defaults and keymaps + +if [ -f $sysresources ]; then + xrdb -merge $sysresources +fi + +if [ -f $sysmodmap ]; then + xmodmap $sysmodmap +fi + +if [ -f "$userresources" ]; then + xrdb -merge "$userresources" +fi + +if [ -f "$usermodmap" ]; then + xmodmap "$usermodmap" +fi + +# start some nice programs + +if [ -d /etc/X11/xinit/xinitrc.d ] ; then + for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do + [ -x "$f" ] && . "$f" + done + unset f +fi + +#twm & +#xclock -geometry 50x50-1+1 & +#xterm -geometry 80x50+494+51 & +#xterm -geometry 80x20+494-0 & +#exec xterm -geometry 80x66+0+0 -name login +xrandr --output HDMI-0 --mode 1920x1080 --pos 0x0 --rotate normal --output DP-0 --primary --mode 1920x1080 --pos 1920x0 --rotate normal --output DP-1 --off --output HDMI-1 --off --output DP-2 --mode 1920x1080 --pos 3840x0 --rotate normal --output DP-3 --off --output None-1-1 --off +#exec awesome +export XDG_XSESSION_TYPE=x11 +export XDG_BACKEND=x11 +exec awesome > ~/.xsession.log 2>&1 diff --git a/zsh/zshrc b/zsh/zshrc new file mode 100644 index 0000000..5ecfad5 --- /dev/null +++ b/zsh/zshrc @@ -0,0 +1,170 @@ +# Path to your oh-my-zsh installation. +export ZSH=$HOME/.oh-my-zsh + +# Set name of the theme to load. +# Look in ~/.oh-my-zsh/themes/ +# Optionally, if you set this to "random", it'll load a random theme each +# time that oh-my-zsh is loaded. +#ZSH_THEME="moe" +#ZSH_THEME="fishy" +ZSH_THEME="dracula" + +# Uncomment the following line to use case-sensitive completion. +# CASE_SENSITIVE="true" + +# Uncomment the following line to use hyphen-insensitive completion. Case +# sensitive completion must be off. _ and - will be interchangeable. +# HYPHEN_INSENSITIVE="true" + +# Uncomment the following line to disable bi-weekly auto-update checks. +# DISABLE_AUTO_UPDATE="true" + +# Uncomment the following line to change how often to auto-update (in days). +# export UPDATE_ZSH_DAYS=13 + +# Uncomment the following line to disable colors in ls. +# DISABLE_LS_COLORS="true" + +# Uncomment the following line to disable auto-setting terminal title. +# DISABLE_AUTO_TITLE="true" + +# Uncomment the following line to enable command auto-correction. +# ENABLE_CORRECTION="true" + +# Uncomment the following line to display red dots whilst waiting for completion. +# COMPLETION_WAITING_DOTS="true" + +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status check for large repositories +# much, much faster. +# DISABLE_UNTRACKED_FILES_DIRTY="true" + +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. +# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# HIST_STAMPS="mm/dd/yyyy" + +# Would you like to use another custom folder than $ZSH/custom? +# ZSH_CUSTOM=/path/to/new-custom-folder + +# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) +# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=(git svn) + +# User configuration + +export PATH="/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/bin/:${PATH}" +# export MANPATH="/usr/local/man:$MANPATH" + +source $ZSH/oh-my-zsh.sh + +# You may need to manually set your language environment +# export LANG=en_US.UTF-8 + +# Preferred editor for local and remote sessions + if [[ -n $SSH_CONNECTION ]]; then + export EDITOR='vim' + else + export EDITOR='vim' + fi + +# Compilation flags +# export ARCHFLAGS="-arch x86_64" + +# ssh +# export SSH_KEY_PATH="~/.ssh/dsa_id" + +# Set personal aliases, overriding those provided by oh-my-zsh libs, +# plugins, and themes. Aliases can be placed here, though oh-my-zsh +# users are encouraged to define aliases within the ZSH_CUSTOM folder. +# For a full list of active aliases, run `alias`. +# +# Example aliases +# alias zshconfig="mate ~/.zshrc" +# alias ohmyzsh="mate ~/.oh-my-zsh" +#source ~/.zshrc_aliases +#if [ -e /usr/share/terminfo/x/xterm-256color ] && [ "$COLORTERM" = "xfce4-terminal" ]; then +# export TERM=xterm-256color +#fi + +#if [[ -n "$DISPLAY" && "$TERM" = "xterm" ]]; then +# export TERM=xterm-256color +#fis + +if [ -f /usr/bin/lsb_release ]; then + DISTRO=$(lsb_release -si) +fi + +if [[ $DISTRO = 'Debian' ]]; then + alias archey='screenfetch' +fi + +# Fun / Games +#alias aquarium='asciiquarium' +#alias sudoku='nsudoku' +#alias tetris='bastet' +#alias mario='mupen64plus --windowed ~/ROMs/N64/SuperMario64.v64' +#alias kart='mupen64plus --windowed ~/ROMs/N64/MarioKart64.v64' +#alias zelda='mupen64plus --windowed ~/ROMs/N64/Zelda64.rom' +#alias zeldamajora='mupen64plus --windowed ~/ROMs/N64/ZeldaMajorasMask.z' +#alias ps2='pcsx2' + +#System +alias shutdown='sudo shutdown -P now' +alias update='sudo apt-get update' +alias upgrade='sudo apt-get upgrade' +alias dist-upgrade='sudo apt-get dist-upgrade' +alias autoremove='sudo apt-get autoremove' +alias ainstall='sudo apt-get install' +alias search='sudo apt-cache search' + +# Default to human readable figures +alias df='df -h' +alias du='du -h' + +# Interactive operation... +# alias rm='rm -i' +# alias cp='cp -i' +# alias mv='mv -i' + +# Misc :) +alias less='less -r' # raw control characters +alias grep='grep --color' # show differences in colour +alias egrep='egrep --color=auto' # show differences in colour +alias fgrep='fgrep --color=auto' # show differences in colour + +# Some shortcuts for different directory listings +alias ls='ls -hF --color=auto' # classify files in colour +alias dir='ls --color=auto --format=vertical' +alias vdir='ls --color=auto --format=long' +alias ll='ls -l' # long list +alias la='ls -A' # all but . and .. +alias l='ls -CF' +alias k='exit' +alias D='cd ~/Downloads' + +## Vim Stuff +alias eV='vim ~/.vim/vimrc' +alias e='vim' + +#ZSH Stuff +alias eZ='vim ~/.zshrc' +alias eZA='atom ~/.zshrc' +alias eA='vim ~/.zshrc_aliases' +alias eAA='atom ~/.zshrc_aliases' +alias Z='source ~/.zshrc' + +## News and Music +alias news='newsbeuter' +alias nix='cortex linux' +alias twit='turses' + +## Net +alias irc='weechat-curses' +alias ST='speedtest-cli' +#alias ssh='TERM=xterm-256color; ssh' +alias mutt='TERM=xterm-256color; neomutt' +#alias UM='imapfilter; offlineimap' +alias home='ssh -p 2222 moe@home.comprofix.com'

N@FF6E=m5>ofa!J-CUFVH-uRNdfa^mJ( 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