initial commit

This commit is contained in:
Simon M 2015-12-06 23:43:41 +11:00
commit d0675aa7a6
63 changed files with 8878 additions and 0 deletions

90
Xresources Normal file
View File

@ -0,0 +1,90 @@
Xcursor.theme: Vanilla-DMZ-AA
! slightly modded TomorrowNightEighties
#define t_background #2d2d2d
#define t_current_line #eeeeee
#define t_selection #515151
#define t_foreground #eeeeee
#define t_comment #999999
#define t_red #f27777
#define t_orange #f99157
#define t_yellow #ffcc66
#define t_green #99cc99
#define t_aqua #66cccc
#define t_blue #6699cc
#define t_purple #cc99cc
*.foreground: t_foreground
*.background: t_background
*.cursorColor: #aeafad
! Black / Grey
*.color0: #000000
*.color8: #666666
! Red / Bright Red
*.color1: t_red
*.color9: #FF3334
! Green + Bright Green
*.color2: t_green
*.color10: #9ec400
! Yellow (Orange) + Bright Yellow (Yellow)
*.color3: t_orange
*.color11: t_yellow
! Blue + Bright Blue
*.color4: t_blue
*.color12: t_blue
! Magenta (Purple) + Bright Magenta
*.color5: t_purple
*.color13: #b777e0
! Cyan (Aqua) + Bright Cyan
*.color6: t_aqua
*.color14: #54ced6
! Light Grey (Selection) + White (Current Line)
*.color7: t_selection
*.color15: t_current_line
rofi.opacity: 100
rofi.width: 35
rofi.lines: 8
rofi.columns: 1
rofi.font: DejaVuSansMono 10
rofi.fg: #cccccc
rofi.bg: #2d2d2d
rofi.fg-active: #99cc99
rofi.bg-active: #2d2d2d
rofi.fg-urgent: #99cc99
rofi.bg-urgent: #2d2d2d
rofi.hlfg: #2d2d2d
rofi.hlbg: #99cc99
rofi.hlfg-active: #2d2d2d
rofi.hlbg-active: #99cc99
rofi.hlfg-urgent: #2d2d2d
rofi.hlbg-urgent: #99cc99
rofi.bc: #99cc99
rofi.bw: 2
rofi.separator-style: solid
rofi.loc: 0
rofi.padding: 2
rofi.yoffset: -2
rofi.xoffset: 0
rofi.fixed-num-lines: false
rofi.hmode: false
rofi.sidebar-mode: true
rofi.hide-scrollbar: true
rofi.terminal: i3-sensible-terminal
rofi.combi-modi: window,drun
xterm*faceName: DejaVu Sans Mono for Powerline:style=Book
xterm*faceSize: 10
Xft.antialias: 1
Xft.autohint: 0
Xft.dpi: 96
Xft.hinting: 1
Xft.hintstyle: hintfull
Xft.lcdfilter: lcddefault
Xft.rgba: rgb
xterm*tn: xterm-256color
xterm*saveLines: 10000
xterm*borderWidth: 0
XTerm*VT100.translations: #override <Btn1Up>: select-end(PRIMARY, CLIPBOARD, CUT_BUFFER0)

49
config/compton.conf Normal file
View File

@ -0,0 +1,49 @@
# ---^. BASICS .^--- #
backend = "xr_glx_hybrid";
glx-no-stencil = true;
glx-copy-from-front = false;
glx-no-rebind-pixmap = false;
xrender-sync = true;
vsync = "opengl-oml";
glx-swap-method = 1;
#detect-client-leader = true;
#force-win-blend = true;
# The following options could have something to do with
# non-opaque window backgrounds glitching out when a
# full-screen application is open.
paint-on-overlay = true;
unredir-if-possible = true;
# ---^. OPACITY .^--- #
detect-client-opacity = true;
menu-opacity = 0.95;
# ---^. SHADOW .^--- #
shadow = true;
no-dnd-shadow = true;
no-dock-shadow = true;
# Zero the part of the shadow's mask behind the window.
clear-shadow = true;
shadow-radius = 3;
shadow-offset-x = -1;
shadow-offset-y = -1;
shadow-opacity = 0.5;
shadow-exclude = [
"name *= 'compton'",
# "class_g = 'Kupfer'",
"class_g = 'i3bar'",
"class_g = 'twmn'"
];
wintypes: {
normal= {
shadow = false;
};
};
# ---^. FADING .^--- #
fading = false;

View File

@ -0,0 +1,17 @@
[Settings]
gtk-theme-name=cathexis
gtk-icon-theme-name=KFaenza
gtk-font-name=Liberation Sans 10
gtk-cursor-theme-name=Vanilla-DMZ-AA
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_ICONS
gtk-toolbar-icon-size=GTK_ICON_SIZE_SMALL_TOOLBAR
gtk-button-images=0
gtk-menu-images=1
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintfull
gtk-xft-rgba=rgb
gtk-color-scheme=panel_bg_color:#2d2d2d\ntooltip_fg_color:#cccccc\nlink_color:#99cc99\nmenu_fg_color:#ffffff\npanel_fg_color:#ffffff\nbase_color:#2d2d2d\ntext_color:#cccccc\nselected_fg_color:#2d2d2d\ntitlebar_bg_color:#2d2d2d\nmenubar_bg_color:#2d2d2d\nbg_color:#2d2d2d\ntoolbar_bg_color:#2d2d2d\ntooltip_bg_color:#2d2d2d\nmenu_bg_color:#2d2d2d\ntitlebar_fg_color:#ffffff\nmenubar_fg_color:#ffffff\nselected_bg_color:#99cc99\ntoolbar_fg_color:#ffffff\nfg_color:#cccccc\n

77
config/i3/.i3status.conf Normal file
View File

@ -0,0 +1,77 @@
# i3status configuration file.
# see "man i3status" for documentation.
# It is important that this file is edited as UTF-8.
# The following line should contain a sharp s:
# ß
# If the above line is not correctly displayed, fix your editor first!
general {
colors = true
interval = 1
}
#order += "ipv6"
#order += "disk /"
#order += "run_watch DHCP"
#order += "run_watch VPN"
#order += "wireless wlan0"
order += "volume master"
order += "ethernet eno1"
#order += "battery 0"
#order += "load"
order += "cpu_usage"
order += "cpu_temperature 2"
order += "tztime local"
volume master {
format = "♪: %volume"
#format_muted = "♪: muted (%volume)"
device = "default"
mixer = "Master"
mixer_idx = 0
}
wireless wlan0 {
format_up = "W: (%quality at %essid) %ip"
format_down = "W: down"
}
ethernet eno1 {
# if you use %speed, i3status requires root privileges
format_up = "E: %ip"
format_down = "E: down"
}
battery 0 {
format = "%status %percentage %remaining"
}
run_watch DHCP {
pidfile = "/var/run/dhclient*.pid"
}
run_watch VPN {
pidfile = "/var/run/vpnc/pid"
}
tztime local {
format = "%Y-%m-%d %H:%M" #i%S"
}
load {
format = "%1min"
}
cpu_usage {
format = "U: %usage"
}
cpu_temperature 2 {
format = "T: %degrees°C"
}
disk "/" {
format = "/: %free"
}

272
config/i3/config Normal file
View File

@ -0,0 +1,272 @@
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod1
set $altmod Mod4
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:DejaVu Sans Mono 10
# Before i3 v4.8, we used to recommend this one as the default:
# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
bindsym $mod+Return exec i3-sensible-terminal
# kill focused window
bindsym $mod+Shift+q kill
# start dmenu (a program launcher)
#bindsym $mod+space exec dmenu_run
# There also is the (new) i3-dmenu-desktop which only displays applications
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
# installed.
#bindsym $mod+space exec i3-dmenu-desktop
#bindsym $mod+space exec "rofi -modi combi,ssh -show combi"
# start Rofi in daemon mode instead
exec "rofi -modi drun,ssh,window -key-drun Alt+space"
# change focus (`hjkl` as opposed to the default `jkl;`)
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
# arrow keys for plebs:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right
# arrow keys for massive plebs:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
bindsym $mod+b split h
# split in vertical orientation
bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+d floating toggle
# change focus between tiling / floating windows
bindsym $mod+d focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
# move workspace between monitors
bindsym $mod+Shift+greater move workspace to output right
bindsym $mod+Shift+less move workspace to output left
# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# resize window (you can also use the mouse for that)
mode "resize" {
bindsym h resize shrink width 6 px or 6 ppt
bindsym j resize grow height 6 px or 6 ppt
bindsym k resize shrink height 6 px or 6 ppt
bindsym l resize grow width 6 px or 6 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 6 px or 6 ppt
bindsym Down resize grow height 6 px or 6 ppt
bindsym Up resize shrink height 6 px or 6 ppt
bindsym Right resize grow width 6 px or 6 ppt
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
# -=-=-=-=-=^. Additions .^=-=-=-=-=- #
# custom workspaces
set $tag1 "1: www"
bindsym $mod+1 workspace $tag1
bindsym $mod+Shift+1 move container to workspace $tag1
set $tag2 "2: dev"
bindsym $mod+2 workspace $tag2
bindsym $mod+Shift+2 move container to workspace $tag2
set $tag3 "3: media"
bindsym $mod+3 workspace $tag3
bindsym $mod+Shift+3 move container to workspace $tag3
set $tag4 "4: design"
bindsym $mod+4 workspace $tag4
bindsym $mod+Shift+4 move container to workspace $tag4
set $tag5 "5: generic"
bindsym $mod+5 workspace $tag5
bindsym $mod+Shift+5 move container to workspace $tag5
set $tag6 "6: generic"
bindsym $mod+6 workspace $tag6
bindsym $mod+Shift+6 move container to workspace $tag6
set $tag7 "7: generic"
bindsym $mod+7 workspace $tag7
bindsym $mod+Shift+7 move container to workspace $tag7
set $tag8 "8: generic"
bindsym $mod+8 workspace $tag8
bindsym $mod+Shift+8 move container to workspace $tag8
set $tag9 "9: status + playlist"
bindsym $mod+9 workspace $tag9
bindsym $mod+Shift+9 move container to workspace $tag9
set $tag0 "10: docs"
bindsym $mod+0 workspace $tag0
bindsym $mod+Shift+0 move container to workspace $tag0
set $tagminus "-: comms"
bindsym $mod+minus workspace $tagminus
bindsym $mod+Shift+underscore move container to workspace $tagminus
#workspace -> screen mappings (HDMI-0 primary, DVI-1 secondary)
set $mon0 HDMI-0
set $mon1 DVI-1
workspace $tag1 output $mon0
workspace $tag2 output $mon0
workspace $tag3 output $mon0
workspace $tag4 output $mon0
workspace $tag9 output $mon1
workspace $tag0 output $mon1
# dummy workspaces for blanking screen
workspace "dummy: 1" output $mon1
workspace "dummy: 2" output $mon0
bindsym $altmod+d workspace "dummy: 1", workspace "dummy: 2"
set $fcolor #99cc99
set $ftxcol #2d2d2d
set $bcolor #2d2d2d
set $btxcol #cccccc
set $ucolor #f27777
# i3bar
bar {
colors {
background $bcolor
statusline $btxcol
separator #515151
# Type border bg font
focused_workspace $fcolor $fcolor $ftxcol
active_workspace $bcolor $bcolor $btxcol
inactive_workspace $bcolor $bcolor $btxcol
urgent_workspace $ucolor $ucolor $ftxcol
}
position top
#status_command i3status
status_command python ~/.config/i3/status.py
tray_output $mon0
}
# COLORS
# class border bg font indicator
client.focused $fcolor $fcolor $ftxcol #ddffdd
client.focused_inactive $bcolor $bcolor $btxcol $bcolor
client.unfocused $bcolor $bcolor $btxcol $bcolor
client.urgent $ucolor $ucolor $ftxcol $ucolor
client.background $bcolor
#hide_edge_borders both
# startup commands
# polkit
#exec --no-startup-id /usr/libexec/polkit-gnome-authentication-agent-1 &
# wallpaper
exec --no-startup-id sh ~/.fehbg
exec "xwinwrap -ni -ov -fs -- /usr/lib/misc/xscreensaver/glmatrix -root -window-id WID"
# compositor
exec compton
# notifications
exec twmnd
# open source f.lux alternative
exec redshift-gtk
# clipboard manager
exec parcellite
# music
exec mpd
exec mpDris2
# system mode
set $sysmode "System (l) lock, (o) logout, (s) sleep, (r) reboot, (h) shutdown, (_) windows, (x) unmount"
mode $sysmode {
bindsym l exec "i3lock -d -c 2d2d2d", mode "default"
bindsym o exit
bindsym s exec "i3lock -c 2d2d2d", exec sleep 0.2, exec sudo s2mem, mode "default"
bindsym r exec sudo shutdown -r now
bindsym h exec sudo shutdown -h now
bindsym Shift+underscore exec sudo r2win, exec sudo shutdown -r now
bindsym x exec i3umount, mode "default"
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+grave mode $sysmode
bindsym XF86PowerOff exec "i3lock -c 2d2d2d", exec sleep 0.2, exec --no-startup-id sudo s2mem
bindsym --release $mod+Scroll_Lock exec "i3lock -c 2d2d2d", exec sleep 0.2, exec --no-startup-id sudo s2mem
bindsym --release Scroll_Lock exec "i3lock -d -c 2d2d2d"
# don't steal focus you bloody dialogs
no_focus [window_role="popup"]
# application workspace bindings
assign [class="^Pale moon$" instance="Navigator"] $tag1
assign [class="^Firefox$" instance="Navigator"] $tag1
assign [class="^Kodi$"] $tag3
assign [class="^smplayer$"] $tag3
assign [class="^Inkscape$"] $tag4
assign [class="^Gimp$"] $tag4
assign [class="^Ghb$"] $tag9
assign [class="^Zeal$"] $tag0
# todo : mail + irc + music programs
# media key bindings
bindsym XF86AudioLowerVolume exec --no-startup-id amixer set Master 2dB-
bindsym XF86AudioRaiseVolume exec --no-startup-id amixer set Master 2dB+
bindsym XF86AudioMute exec --no-startup-id amixer set Master toggle
bindsym $mod+XF86AudioPlay exec allplayerctl pause
bindsym $mod+XF86AudioPause exec allplayerctl pause
bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioPause exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
# application key bindings
bindsym $mod+z workspace $tag0, exec "ps -e | grep -q zeal || zeal -style=gtk &"
# screenshots
set $scrloc "/tmp/screenshot_$(date +'%Y-%m-%d_%H-%M-%S').png"
bindsym $altmod+Print exec scrot $scrloc
bindsym --release $altmod+Shift+Print exec --no-startup-id import $scrloc
# other key bindings
bindsym $mod+p exec mpvstream $(xclip -o) --no-terminal # play selection
bindsym $mod+o exec xdg-open $(xclip -o) # open selection
bindsym $altmod+grave exec notify-send "$(fortune bofh-excuses)" # excuses

157
config/i3/status.py Executable file
View File

@ -0,0 +1,157 @@
'''
Custom status line
'''
#!/usr/bin/python
from i3pystatus import Status
def merge_dicts(*dict_args):
'''
Given any number of dicts, shallow copy and merge into a new dict,
precedence goes to key value pairs in latter dicts.
'''
result = {}
for dictionary in dict_args:
result.update(dictionary)
return result
def status_configure():
'''
Configure statusbar
'''
status = Status(standalone=True)
span = lambda x, c: "<span color=\""+c+"\">"+x+"</span>"
xterm = lambda c: "i3-sensible-terminal -e '%s'"%(c)
red = "#f27777"
orange = "#f99157"
green = "#99cc99"
nosep = {"separator": False, "separator_block_width": 0}
pango = {"markup": "pango"}
# Displays clock like this: 2015-10-16 22:35:69
status.register("clock",
format = " %Y-%m-%d %H:%M:%S ",)
# CPU temperature (Intel CPUs only)
status.register("temp",
hints = pango,
file = "/sys/class/thermal/thermal_zone2/temp",
alert_temp = 75,
format = span(" ({temp:.0f}°C) ", green),)
# CPU usage
status.register("cpu_usage",
hints = merge_dicts(nosep, pango),
on_leftclick = xterm("htop"),
format = span(" {usage:02}%", green),)
status.register("cpu_usage_graph",
hints = merge_dicts(nosep, pango),
on_leftclick = xterm("htop"),
graph_width = 10,
start_color = green,
end_color = red,
format = " {cpu_graph}",)
# Network info
status.register("openvpn",
vpn_name = lambda: open("/etc/openvpn/current", 'r').read().strip(),
on_leftclick = xterm("vpnselect"),
on_rightclick = "notify-send \"$(internode-quota-check)\"",
interval = 20,
colour_up = green,
colour_down = red,
label = "vpn",
format = "{status} ",)
def formatuptoggle(self):
'''
Switch network display
'''
formats = [" TX: {tx_tot_Mbytes}MiB RX: {rx_tot_Mbytes}MiB ({interface}) ",
" {kbs}KB/s ({interface}) "]
self.format_up = formats[(formats.index(self.format_up) + 1) % len(formats)]
status.register("network",
hints = nosep,
on_leftclick = xterm("sudo -A nethogs eno1"),
on_rightclick = formatuptoggle,
interface = "eno1",
start_color = green,
end_color = red,
upper_limit = 384,
ignore_interfaces = ['lo', 'sit0'],
format_up = " {kbs}KB/s ({interface}) ",
format_down = " DOWN ({interface}) ",)
# Disk info
"""
disks, disk_idx, disk_fmt = ["/home", "/", "/mnt/homebak", ], 0, " {avail:0.1f}GiB (%s) "
def diskcycle(self, d=1):
global disk_idx
disk_idx = (disk_idx + d) % len(disks)
self.path = disks[disk_idx]
self.format = disk_fmt % (disks[disk_idx])
status.register("disk",
path = disks[0],
on_leftclick = xterm("ranger"),
on_rightclick = diskcycle,
on_upscroll = [diskcycle, -1],
on_downscroll = diskcycle,
critical_limit = 8,
format = disk_fmt % (disks[0]),)
"""
# DPMS (display blanking)
status.register("dpms",
format = " ({status}) ",)
# Sound volume
"""
status.register("alsa",
hints = pango,
format = " {volume} " + span("", green),)
"""
# Media info
playing_status = {
"play": span("", green),
"pause": span("", orange),
"stop": span("", red),
}
status.register("now_playing",
hints = merge_dicts(nosep, pango),
status = playing_status,
format = "\255 {status} mpv",
player = "mpv",)
status.register("now_playing",
hints = merge_dicts(nosep, pango),
status = playing_status,
format = "\255 {status} smplayer",
player = "smplayer",)
status.register("now_playing",
hints = merge_dicts(nosep, pango),
status = playing_status,
format = "\255 {status} kodi",
player = "xbmc",)
# mpd info
def mpdvol(self, adj):
'''
Adjust MPD volume
'''
vol = int(self._mpd_command(self.s, "status")["volume"])
self._mpd_command(self.s, "setvol " + str(vol + adj))
status.register("mpd",
hints = merge_dicts(nosep, pango),
on_rightclick = xterm("ncmpcpp"),
on_upscroll = [mpdvol, 4],
on_downscroll = [mpdvol, -4],
status = playing_status,
hide_inactive = True,
format = "{volume}{status} mpd",)
status.run()
status_configure()

View File

@ -0,0 +1,16 @@
# Copy this to /etc/mpDris2.conf or ~/.config/mpDris2/mpDris2.conf
# Default values are shown here, commented out.
[Connection]
# You can also export $MPD_HOST and/or $MPD_PORT to change the server.
host = localhost
port = 6600
#password =
[Library]
music_dir = /mnt/sierra/music/best
#cover_regex = ^(album|cover|\.?folder|front).*\.(gif|jpeg|jpg|png)$
[Bling]
mmkeys = False
notify = True

434
config/mpd/mpd.conf Normal file
View File

@ -0,0 +1,434 @@
# An example configuration file for MPD.
# Read the user manual for documentation: http://www.musicpd.org/doc/user/
# Files and directories #######################################################
#
# This setting controls the top directory which MPD will search to discover the
# available audio files and add them to the daemon's online database. This
# setting defaults to the XDG directory, otherwise the music directory will be
# be disabled and audio files will only be accepted over ipc socket (using
# file:// protocol) or streaming files over an accepted protocol.
#
music_directory "/mnt/sierra/music/best"
#
# This setting sets the MPD internal playlist directory. The purpose of this
# directory is storage for playlists created by MPD. The server will use
# playlist files not created by the server but only if they are in the MPD
# format. This setting defaults to playlist saving being disabled.
#
playlist_directory "/mnt/sierra/music/playlists"
#
# This setting sets the location of the MPD database. This file is used to
# load the database at server start up and store the database while the
# server is not up. This setting defaults to disabled which will allow
# MPD to accept files over ipc socket (using file:// protocol) or streaming
# files over an accepted protocol.
#
#db_file "~/local/share/mpd/database"
#
# These settings are the locations for the daemon log files for the daemon.
# These logs are great for troubleshooting, depending on your log_level
# settings.
#
# The special value "syslog" makes MPD use the local syslog daemon. This
# setting defaults to logging to syslog, otherwise logging is disabled.
#
log_file "/tmp/mpd.log"
#
# This setting sets the location of the file which stores the process ID
# for use of mpd --kill and some init scripts. This setting is required when
# using the Gentoo init script.
#
pid_file "~/.local/share/mpd/pid"
#
# This setting sets the location of the file which contains information about
# most variables to get MPD back into the same general shape it was in before
# it was brought down. This setting is disabled by default and the server
# state will be reset on server start up.
#
state_file "~/.local/share/mpd/state"
#
# The location of the sticker database. This is a database which
# manages dynamic information attached to songs.
#
sticker_file "~/.local/share/mpd/sticker.sql"
#
###############################################################################
# General music daemon options ################################################
#
# This setting specifies the user that MPD will run as. MPD should never run as
# root and you may use this setting to make MPD change its user ID after
# initialization. This setting is disabled by default and MPD is run as the
# current user.
#
#user ""
#
# This setting specifies the group that MPD will run as. If not specified
# primary group of user specified with "user" setting will be used (if set).
# This is useful if MPD needs to be a member of group such as "audio" to
# have permission to use sound card.
#
#group "nogroup"
#
# This setting sets the address for the daemon to listen on. Careful attention
# should be paid if this is assigned to anything other then the default, any.
# This setting can deny access to control of the daemon.
#
# For network
bind_to_address "localhost"
#
# And for Unix Socket
bind_to_address "~/.local/share/mpd/socket"
#
# This setting is the TCP port that is desired for the daemon to get assigned
# to.
#
#port "6600"
#
# This setting controls the type of information which is logged. Available
# setting arguments are "default", "secure" or "verbose". The "verbose" setting
# argument is recommended for troubleshooting, though can quickly stretch
# available resources on limited hardware storage.
#
#log_level "default"
#
# If you have a problem with your MP3s ending abruptly it is recommended that
# you set this argument to "no" to attempt to fix the problem. If this solves
# the problem, it is highly recommended to fix the MP3 files with vbrfix
# (available from <http://www.willwap.co.uk/Programs/vbrfix.php>), at which
# point gapless MP3 playback can be enabled.
#
gapless_mp3_playback "yes"
#
# Setting "restore_paused" to "yes" puts MPD into pause mode instead
# of starting playback after startup.
#
restore_paused "no"
#
# This setting enables MPD to create playlists in a format usable by other
# music players.
#
save_absolute_paths_in_playlists "no"
#
# This setting defines a list of tag types that will be extracted during the
# audio file discovery process. The complete list of possible values can be
# found in the mpd.conf man page.
#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
#
# This setting enables automatic update of MPD's database when files in
# music_directory are changed.
#
#auto_update "yes"
#
# Limit the depth of the directories being watched, 0 means only watch
# the music directory itself. There is no limit by default.
#
auto_update_depth "3"
#
###############################################################################
# Symbolic link behavior ######################################################
#
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links outside of the configured music_directory.
#
#follow_outside_symlinks "yes"
#
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links inside of the configured music_directory.
#
#follow_inside_symlinks "yes"
#
###############################################################################
# Zeroconf / Avahi Service Discovery ##########################################
#
# If this setting is set to "yes", service information will be published with
# Zeroconf / Avahi.
#
#zeroconf_enabled "yes"
#
# The argument to this setting will be the Zeroconf / Avahi unique name for
# this MPD server on the network.
#
#zeroconf_name "Music Player"
#
###############################################################################
# Permissions #################################################################
#
# If this setting is set, MPD will require password authorization. The password
# can setting can be specified multiple times for different password profiles.
#
#password "password@read,add,control,admin"
#
# This setting specifies the permissions a user has who has not yet logged in.
#
#default_permissions "read,add,control,admin"
#
###############################################################################
# Database #######################################################################
#
#database {
# plugin "proxy"
# host "other.mpd.host"
# port "6600"
#}
# Input #######################################################################
#
input {
plugin "curl"
# proxy "proxy.isp.com:8080"
# proxy_user "user"
# proxy_password "password"
}
#
###############################################################################
connection_timeout "60"
max_connections "10"
max_playlist_length "16384"
max_command_list_size "2048"
max_output_buffer_size "8192"
# Audio Output ################################################################
#
audio_output {
type "alsa"
name "DACport"
device "slim" # optional
# format "44100:16:2"
mixer_type "software" # optional
## mixer_device "default" # optional
## mixer_control "PCM" # optional
## mixer_index "0" # optional
auto_resample "no"
auto_format "no"
auto_channels "no"
}
audio_output {
type "alsa"
name "Realtek"
device "realtek" # optional
# format "44100:16:2"
mixer_type "hardware" # optional
## mixer_device "default" # optional
## mixer_control "PCM" # optional
## mixer_index "0" # optional
}
audio_output {
type "fifo"
name "Visualiser"
path "/tmp/mpd.fifo"
format "44100:16:2"
}
audio_output {
type "recorder"
name "Capture audio"
encoder "vorbis" # optional, vorbis or lame
path "/tmp/mpd_capture.ogg"
# quality "5.0" # do not define if bitrate is defined
bitrate "192" # do not define if quality is defined
format "44100:16:2"
}
#
# An example of an OSS output:
#
#audio_output {
# type "oss"
# name "My OSS Device"
## device "/dev/dsp" # optional
## mixer_type "hardware" # optional
## mixer_device "/dev/mixer" # optional
## mixer_control "PCM" # optional
#}
#
# An example of a shout output (for streaming to Icecast):
#
#audio_output {
# type "shout"
# encoding "ogg" # optional
# name "My Shout Stream"
# host "localhost"
# port "8000"
# mount "/mpd.ogg"
# password "hackme"
# quality "5.0"
# bitrate "128"
# format "44100:16:1"
## protocol "icecast2" # optional
## user "source" # optional
## description "My Stream Description" # optional
## url "http://example.com" # optional
## genre "jazz" # optional
## public "no" # optional
## timeout "2" # optional
## mixer_type "software" # optional
#}
#
# An example of a httpd output (built-in HTTP streaming server):
#
#audio_output {
# type "httpd"
# name "My HTTP Stream"
# encoder "vorbis" # optional, vorbis or lame
# port "8000"
# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
## quality "5.0" # do not define if bitrate is defined
# bitrate "128" # do not define if quality is defined
# format "44100:16:1"
# max_clients "0" # optional 0=no limit
#}
#
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
#
#audio_output {
# type "pulse"
# name "My Pulse Output"
## server "remote_server" # optional
## sink "remote_server_sink" # optional
#}
#
# An example of a winmm output (Windows multimedia API).
#
#audio_output {
# type "winmm"
# name "My WinMM output"
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
# or
## device "0" # optional
## mixer_type "hardware" # optional
#}
#
# An example of an openal output.
#
#audio_output {
# type "openal"
# name "My OpenAL output"
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
#}
#
## Example "pipe" output:
#
#audio_output {
# type "pipe"
# name "my pipe"
# command "aplay -f cd 2>/dev/null"
## Or if you're want to use AudioCompress
# command "AudioCompress -m | aplay -f cd 2>/dev/null"
## Or to send raw PCM stream through PCM:
# command "nc example.org 8765"
# format "44100:16:2"
#}
#
## An example of a null output (for no audio output):
#
#audio_output {
# type "null"
# name "My Null Output"
# mixer_type "none" # optional
#}
#
# If MPD has been compiled with libsamplerate support, this setting specifies
# the sample rate converter to use. Possible values can be found in the
# mpd.conf man page or the libsamplerate documentation. By default, this is
# setting is disabled.
#
samplerate_converter "Best Sinc Interpolator"
#
###############################################################################
# Normalization automatic volume adjustments ##################################
#
# This setting specifies the type of ReplayGain to use. This setting can have
# the argument "off", "album", "track" or "auto". "auto" is a special mode that
# chooses between "track" and "album" depending on the current state of
# random playback. If random playback is enabled then "track" mode is used.
# See <http://www.replaygain.org> for more details about ReplayGain.
# This setting is off by default.
#
replaygain "off"
#
# This setting sets the pre-amp used for files that have ReplayGain tags. By
# default this setting is disabled.
#
#replaygain_preamp "0"
#
# This setting sets the pre-amp used for files that do NOT have ReplayGain tags.
# By default this setting is disabled.
#
#replaygain_missing_preamp "0"
#
# This setting enables or disables ReplayGain limiting.
# MPD calculates actual amplification based on the ReplayGain tags
# and replaygain_preamp / replaygain_missing_preamp setting.
# If replaygain_limit is enabled MPD will never amplify audio signal
# above its original level. If replaygain_limit is disabled such amplification
# might occur. By default this setting is enabled.
#
#replaygain_limit "yes"
#
# This setting enables on-the-fly normalization volume adjustment. This will
# result in the volume of all playing audio to be adjusted so the output has
# equal "loudness". This setting is disabled by default.
#
volume_normalization "no"
#
###############################################################################
# Character Encoding ##########################################################
#
# If file or directory names do not display correctly for your locale then you
# may need to modify this setting.
#
filesystem_charset "UTF-8"
#
# This setting controls the encoding that ID3v1 tags should be converted from.
#
#id3v1_encoding "ISO-8859-1"
#
###############################################################################
# SIDPlay decoder #############################################################
#
# songlength_database:
# Location of your songlengths file, as distributed with the HVSC.
# The sidplay plugin checks this for matching MD5 fingerprints.
# See http://www.c64.org/HVSC/DOCUMENTS/Songlengths.faq
#
# default_songlength:
# This is the default playing time in seconds for songs not in the
# songlength database, or in case you're not using a database.
# A value of 0 means play indefinitely.
#
# filter:
# Turns the SID filter emulation on or off.
#
#decoder {
# plugin "sidplay"
# songlength_database "/media/C64Music/DOCUMENTS/Songlengths.txt"
# default_songlength "120"
# filter "true"
#}
#
###############################################################################

1
config/mpv/scripts/dbus.lua Symbolic link
View File

@ -0,0 +1 @@
mpris/mpv.lua

@ -0,0 +1 @@
Subproject commit ad64b6ca61cd7f660e2f54f4ee3cc653b5fe7e48

@ -0,0 +1 @@
Subproject commit cdef26d09aa61d7f1f175675040383f6ae0becbb

@ -0,0 +1 @@
Subproject commit 27530260e98afe1f0064d772003e8c7b0b9867b6

View File

@ -0,0 +1,293 @@
-- notify.lua -- Desktop notifications for mpv.
-- Just put this file into your ~/.mpv/lua folder and mpv will find it.
--
-- Copyright (c) 2014 Roland Hieber
--
-- Permission is hereby granted, free of charge, to any person obtaining a copy
-- of this software and associated documentation files (the "Software"), to deal
-- in the Software without restriction, including without limitation the rights
-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-- copies of the Software, and to permit persons to whom the Software is
-- furnished to do so, subject to the following conditions:
--
-- The above copyright notice and this permission notice shall be included in
-- all copies or substantial portions of the Software.
--
-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-- SOFTWARE.
-------------------------------------------------------------------------------
-- helper functions
-------------------------------------------------------------------------------
function print_debug(s)
-- print("DEBUG: " .. s) -- comment out for no debug info
return true
end
-- url-escape a string, per RFC 2396, Section 2
function string.urlescape(str)
s, c = string.gsub(str, "([^A-Za-z0-9_.!~*'()/-])",
function(c)
return ("%%%02x"):format(c:byte())
end)
return s;
end
-- escape string for html
function string.htmlescape(str)
str = string.gsub(str, "<", "&lt;")
str = string.gsub(str, ">", "&gt;")
str = string.gsub(str, "&", "&amp;")
str = string.gsub(str, "\"", "&quot;")
str = string.gsub(str, "'", "&apos;")
return str
end
-- escape string for shell inclusion
function string.shellescape(str)
return "'"..string.gsub(str, "'", "'\"'\"'").."'"
end
-- converts string to a valid filename on most (modern) filesystems
function string.safe_filename(str)
s, c = string.gsub(str, "([^A-Za-z0-9_.-])",
function(c)
return ("%02x"):format(c:byte())
end)
return s;
end
-------------------------------------------------------------------------------
-- here we go.
-------------------------------------------------------------------------------
http = require("socket.http")
http.TIMEOUT = 3
http.USERAGENT = "mpv-notify/0.1"
local CACHE_DIR = os.getenv("XDG_CACHE_HOME")
CACHE_DIR = CACHE_DIR or os.getenv("HOME").."/.cache"
CACHE_DIR = CACHE_DIR.."/mpv/coverart"
print_debug("making " .. CACHE_DIR)
os.execute("mkdir -p -- " .. string.shellescape(CACHE_DIR))
function tmpname()
return "/tmp/mpv-coverart." .. math.random(0,0xffffff)
end
-- scale an image file
-- @return boolean of success
function scale_image(src, dst)
convert_cmd = ("convert -scale x64 -- %s %s"):format(
string.shellescape(src), string.shellescape(dst))
print_debug("executing " .. convert_cmd)
if os.execute(convert_cmd) then
return true
end
return false
end
-- look for a list of possible cover art images in the same folder as the file
-- @param absolute filename name of currently played file, or nil if no match
function get_folder_cover_art(filename)
if not filename or string.len(filename) < 1 then
return nil
end
print_debug("get_folder_cover_art: filename is " .. filename)
cover_extensions = { "png", "jpg", "jpeg", "gif" }
cover_names = { "cover", "folder", "front", "back", "insert" }
path = string.match(filename, "^(.*/)[^/]+$")
for k,name in pairs(cover_names) do
for k,ext in pairs(cover_extensions) do
morenames = { name, string.upper(name),
string.upper(string.sub(name, 1, 1)) .. string.sub(name, 2, -1) }
moreexts = { ext, string.upper(ext) }
for k,name in pairs(morenames) do
for k,ext in pairs(moreexts) do
fn = path .. name .. "." .. ext
--print_debug("get_folder_cover_art: trying " .. fn)
f = io.open(fn, "r")
if f then
f:close()
print_debug("get_folder_cover_art: match at " .. fn)
return fn
end
end
end
end
end
return nil
end
-- fetch cover art from MusicBrainz/Cover Art Archive
-- @return file name of downloaded cover art, or nil in case of error
-- @param mbid optional MusicBrainz release ID
function fetch_musicbrainz_cover_art(artist, album, mbid)
print_debug("fetch_musicbrainz_cover_art parameters:")
print_debug("artist: " .. artist)
print_debug("album: " .. album)
print_debug("mbid: " .. mbid)
if not artist or artist == "" or not album or album == "" then
print("not enough metadata, not fetching cover art.")
return nil
end
output_filename = string.safe_filename(artist .. "_" .. album)
output_filename = (CACHE_DIR .. "/%s.png"):format(output_filename)
-- TODO: dirty hack, may only work on Linux.
f, err = io.open(output_filename, "r")
if f then
print_debug("file is already in cache: " .. output_filename)
return output_filename -- exists and is readable
elseif string.find(err, "[Pp]ermission denied") then
print(("cannot read from cached file %s: %s"):format(output_filename, err))
return nil
end
print_debug("fetching album art to " .. output_filename)
valid_mbid = function(s)
return s and string.len(s) > 0 and not string.find(s, "[^0-9a-fA-F-]")
end
-- fetch release MBID from MusicBrainz, needed for Cover Art Archive
if not valid_mbid(mbid) then
string.gsub(artist, '"', "")
query = ("%s AND artist:%s"):format(album, artist)
url = "http://musicbrainz.org/ws/2/release?limit=1&query="
.. string.urlescape(query)
print_debug("fetching " .. url)
d, c, h = http.request(url)
-- poor man's XML parsing:
mbid = string.match(d or "",
"<%s*release%s+[^>]*id%s*=%s*['\"]%s*([0-9a-fA-F-]+)%s*['\"]")
if not mbid or not valid_mbid(mbid) then
print("MusicBrainz returned no match.")
print_debug("content: " .. d)
return nil
end
end
print_debug("got MusicBrainz ID " .. mbid)
-- fetch image from Cover Art Archive
url = ("http://coverartarchive.org/release/%s/front-250"):format(mbid)
print("fetching album cover from " .. url)
d, c, h = http.request(url)
if c ~= 200 then
print(("Cover Art Archive returned HTTP %s for MBID %s"):format(c, mbid))
return nil
end
if not d or string.len(d) < 1 then
print(("Cover Art Archive returned no content for MBID %s"):format(mbid))
print_debug("HTTP response: " .. d)
return nil
end
tmp_filename = tmpname()
f = io.open(tmp_filename, "w+")
f:write(d)
f:flush()
f:close()
-- make it a nice size
if scale_image(tmp_filename, output_filename) then
if not os.remove(tmp_filename) then
print("could not remove" .. tmp_filename .. ", please remove it manually")
end
return output_filename
end
print(("could not scale %s to %s"):format(tmp_filename, output_filename))
return nil
end
function notify_current_track()
data = mp.get_property_native("metadata")
function get_metadata(data, keys)
for k,v in pairs(keys) do
if data[v] and string.len(data[v]) > 0 then
return data[v]
end
end
return ""
end
-- srsly MPV, why do we have to do this? :-(
artist = get_metadata(data, {"artist", "ARTIST"})
album = get_metadata(data, {"album", "ALBUM"})
album_mbid = get_metadata(data, {"MusicBrainz Album Id",
"MUSICBRAINZ_ALBUMID"})
title = get_metadata(data, {"title", "TITLE"})
print_debug("notify_current_track: relevant metadata:")
print_debug("artist: " .. artist)
print_debug("album: " .. album)
print_debug("album_mbid: " .. album_mbid)
summary = ""
body = ""
params = ""
scaled_image = ""
delete_scaled_image = false
-- first try finding local cover art
abs_filename = os.getenv("PWD") .. "/" .. mp.get_property_native("path")
cover_image = get_folder_cover_art(abs_filename)
if cover_image and cover_image ~= "" then
scaled_image = tmpname()
scale_image(cover_image, scaled_image)
delete_scaled_image = true
end
-- then load cover art from the internet
if (not scaled_image or scaled_image == "")
and ((artist ~= "" and album ~= "") or album_mbid ~= "") then
scaled_image = fetch_musicbrainz_cover_art(artist, album, album_mbid)
cover_image = scaled_image
end
if scaled_image and string.len(scaled_image) > 1 then
print("found cover art in " .. cover_image)
params = " -i " .. string.shellescape(scaled_image)
end
if(artist == "") then
summary = string.shellescape("Now playing:")
else
summary = string.shellescape(string.htmlescape(artist))
end
if title == "" then
body = string.shellescape(mp.get_property_native("filename"))
else
if album == "" then
body = string.shellescape(string.htmlescape(title))
else
body = string.shellescape(("%s<br/><i>%s</i>"):format(
string.htmlescape(title), string.htmlescape(album)))
end
end
command = ("notify-send -a mpv %s -- %s %s"):format(params, summary, body)
print_debug("command: " .. command)
os.execute(command)
if delete_scaled_image and not os.remove(scaled_image) then
print("could not remove" .. scaled_image .. ", please remove it manually")
end
end
-- insert main() here
mp.register_event("file-loaded", notify_current_track)

View File

@ -0,0 +1,4 @@
[ColorScheme]
active_colors=#cccccc, #2c2c2c, #2c2c2c, #3c3c3c, #4c4c4c, #3c3c3c, #cccccc, #2d2d2d, #cccccc, #2c2c2c, #2c2c2c, #4d4d4d, #99cc99, #2c2c2c, #00aaff, #aa55ff, #3c3c3c, #cccccc, #ffffdc, #000000
disabled_colors=#808080, #2c2c2c, #2c2c2c, #3c3c3c, #4c4c4c, #3c3c3c, #808080, #2d2d2d, #808080, #2c2c2c, #2c2c2c, #4d4d4d, #99cc99, #808080, #00aaff, #aa55ff, #3c3c3c, #cccccc, #ffffdc, #000000
inactive_colors=#cccccc, #2c2c2c, #2c2c2c, #3c3c3c, #4c4c4c, #3c3c3c, #cccccc, #2d2d2d, #cccccc, #2c2c2c, #2c2c2c, #4d4d4d, #99cc99, #2c2c2c, #00aaff, #aa55ff, #3c3c3c, #cccccc, #ffffdc, #000000

24
config/qt5ct/qt5ct.conf Normal file
View File

@ -0,0 +1,24 @@
[Appearance]
color_scheme_path=/home/simon/.config/qt5ct/colors/99cc99.conf
custom_palette=true
icon_theme=KFaenza
style=Fusion
[Fonts]
fixed=@Variant(\0\0\0@\0\0\0 \0\x44\0\x65\0j\0\x61\0V\0u\0 \0S\0\x61\0n\0s\0 \0M\0o\0n\0o@$\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
general=@Variant(\0\0\0@\0\0\0\x1e\0L\0i\0\x62\0\x65\0r\0\x61\0t\0i\0o\0n\0 \0S\0\x61\0n\0s@$\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
[Interface]
buttonbox_layout=0
cursor_flash_time=1000
dialog_buttons_have_icons=1
double_click_interval=400
gui_effects=@Invalid()
menus_have_icons=true
stylesheets=@Invalid()
[PaletteEditor]
geometry="@ByteArray(\x1\xd9\xd0\xcb\0\x2\0\0\0\0\0\xc3\0\0\x1w\0\0\x3=\0\0\x3\x89\0\0\0\xc5\0\0\x1w\0\0\x3;\0\0\x3\x87\0\0\0\x1\0\0\0\0\x4\0)"
[SettingsWindow]
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x2\0\0\0\0\t\0\0\0\0)\0\0\v\x7f\0\0\x4\x37\0\0\t\x2\0\0\0)\0\0\v}\0\0\x4\x35\0\0\0\0\0\0\0\0\a\x80)

10
config/redshift.conf Normal file
View File

@ -0,0 +1,10 @@
[redshift]
temp-day=4800
temp-night=3400
adjustment-method=randr
location-provider=manual
[manual]
lat=34
lon=151.2

30
config/twmn/twmn.conf Normal file
View File

@ -0,0 +1,30 @@
[gui]
absolute_position=
always_on_top=true
background_color=#99cc99
bounce=true
bounce_duration=500
font=DejaVu Sans Mono
font_size=13
font_variant=medium
foreground_color=#2d2d2d
height=20
in_animation=38
in_animation_duration=1000
opacity=100
out_animation=13
out_animation_duration=1000
position=top_right
screen=0
[icons]
critical_icon=
info_icon=
warning_icon=
[main]
activate_command=
duration=6000
enable_shortcuts=true
port=9797
sound_command=

20
gtkrc-2.0 Normal file
View File

@ -0,0 +1,20 @@
# DO NOT EDIT! This file will be overwritten by LXAppearance.
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
gtk-theme-name="cathexis"
gtk-icon-theme-name="KFaenza"
gtk-font-name="Liberation Sans 10"
gtk-cursor-theme-name="Vanilla-DMZ-AA"
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_ICONS
gtk-toolbar-icon-size=GTK_ICON_SIZE_SMALL_TOOLBAR
gtk-button-images=0
gtk-menu-images=1
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle="hintfull"
gtk-xft-rgba="rgb"
gtk-color-scheme="panel_bg_color:#2d2d2d\ntooltip_fg_color:#cccccc\nlink_color:#99cc99\nmenu_fg_color:#ffffff\npanel_fg_color:#ffffff\nbase_color:#2d2d2d\ntext_color:#cccccc\nselected_fg_color:#2d2d2d\ntitlebar_bg_color:#2d2d2d\nmenubar_bg_color:#2d2d2d\nbg_color:#2d2d2d\ntoolbar_bg_color:#2d2d2d\ntooltip_bg_color:#2d2d2d\nmenu_bg_color:#2d2d2d\ntitlebar_fg_color:#ffffff\nmenubar_fg_color:#ffffff\nselected_bg_color:#99cc99\ntoolbar_fg_color:#ffffff\nfg_color:#cccccc\n"
include "/home/simon/.gtkrc-2.0.mine"

10
gtkrc-2.0.mine Normal file
View File

@ -0,0 +1,10 @@
style "font"
{
font = "Liberation Sans 10"
font_name = "Liberation Sans 10"
fontset = "Liberation Sans 10"
}
widget_class "*" style "font"
class "*" style "font"
gtk-color-scheme="selected_bg_color:#99cc99\ntoolbar_fg_color:#cccccc\ntooltip_fg_color:#cccccc\nlink_color:#9999cc\npanel_fg_color:#cccccc\nbase_color:#2d2d2d\nselected_fg_color:#2d2d2d\ntext_color:#cccccc\ntitlebar_bg_color:#2d2d2d\nmenubar_bg_color:#2d2d2d\nbg_color:#2d2d2d\ntoolbar_bg_color:#2d2d2d\ntooltip_bg_color:#2d2d2d\nmenu_bg_color:#2d2d2d\ntitlebar_fg_color:#cccccc\nmenubar_fg_color:#cccccc\npanel_bg_color:#2d2d2d\nmenu_fg_color:#cccccc\nfg_color:#cccccc\n"

View File

@ -0,0 +1,23 @@
# ==============================================================================
# BANSHEE SPECIFIC SETTINGS
# ==============================================================================
style "banshee_scrollbar" {
engine "murrine" {
roundness = 20
}
}
widget "__gtksharp_1*SeekSlider*" style "scale"
widget "__gtksharp_1*Player*croll*" style "banshee_scrollbar"
widget_class "__gtksharp_1*<GtkToolbar>*" style "default"
widget_class "__gtksharp_1*<GtkButton>*" style "button"
#widget_class "__gtksharp_1*<GtkScale>*" style "scale"

View File

@ -0,0 +1,40 @@
# ==============================================================================
# CHROMIUM SPECIFIC SETTINGS
# ==============================================================================
style "chromium_toolbar_button" {
engine "murrine" {
roundness = 3
textstyle = 0
}
}
style "chrome-gtk-frame"
{
ChromeGtkFrame::frame-color = @menu_bg_color
ChromeGtkFrame::inactive-frame-color = @menu_bg_color
ChromeGtkFrame::frame-gradient-size = 0
ChromeGtkFrame::frame-gradient-color = @menu_bg_color
ChromeGtkFrame::incognito-frame-color = @selected_bg_color
ChromeGtkFrame::incognito-inactive-frame-color = @menu_bg_color
ChromeGtkFrame::incognito-frame-gradient-size = 0
ChromeGtkFrame::incognito-frame-gradient-color = @selected_bg_color
ChromeGtkFrame::scrollbar-trough-color = @bg_color
ChromeGtkFrame::scrollbar-slider-prelight-color = shade (1.04, @bg_color)
ChromeGtkFrame::scrollbar-slider-normal-color = @bg_color
}
class "ChromeGtkFrame" style "chrome-gtk-frame"
widget_class "*Chrome*Button*" style "chromium_toolbar_button"

View File

@ -0,0 +1,43 @@
# ==============================================================================
# FIREFOX SPECIFIC SETTINGS
# ==============================================================================
style "ff-default" {
GtkCheckButton::indicator-size = 14
bg[NORMAL] = @menu_bg_color
}
style "theme-toolbar" {
bg[NORMAL] = @bg_color
bg[INSENSITIVE] = lighter (@menu_bg_color)
fg[NORMAL] = @fg_color
fg[ACTIVE] = @menu_bg_color
fg[SELECTED] =@menu_bg_color
fg[PRELIGHT] = @selected_fg_color
text[NORMAL] = @fg_color
text[ACTIVE] = @selected_fg_color
text[SELECTED] = @menu_bg_color
text[PRELIGHT] = @selected_fg_color
base[NORMAL] = @base_color
}
widget "MozillaGtkWidget*Toolbar*" style "theme-toolbar"
#widget "MozillaGtkWidget*Statusbar*" style "ff-statusbar"
widget "MozillaGtkWidget*" style "ff-default"
# ------------------------------------------------------------------------------
# Some Firefox (3.0/3.5) GTK widgets hierarchy (maybe useful for someone)
# ------------------------------------------------------------------------------
# Top toolbars (and maybe others)
#widget "MozillaGtkWidget.GtkFixed.GtkHandleBox.GtkToolbar" style "theme-dark-toolbar"
# Findbar entry, gecko (all html) entry
#widget "MozillaGtkWidget.GtkFixed.GtkEntry" style "theme-dark-entry"
# ALL buttons
#widget "MozillaGtkWidget.GtkFixed.GtkButton" style "theme-dark-button"

View File

@ -0,0 +1,52 @@
# ==============================================================================
# GNOME TERMINAL SPECIFIC SETTINGS
# ==============================================================================
style "terminal_window" = "dark" {
}
style "terminal_menubar"
{
engine "murrine" {
}
}
style "terminal_notebook" = "dark"
{
fg[ACTIVE] = mix (0.8, "#dfdbd2", "#3c3b37")
engine "murrine" {
}
}
style "terminal_scrollbar" = "scrollbar"
{
bg[NORMAL] = "#3c3b37"
bg[PRELIGHT] = shade(1.08, "#3c3b37")
bg[ACTIVE] = shade(0.94, "#3c3b37")
bg[SELECTED] = shade(1.0, @selected_bg_color)
bg[INSENSITIVE] = "#3c3b37"
engine "murrine" {
}
}
style "terminal_screen"
{
text[NORMAL] = "#ffffff"
base[NORMAL] = "#300a24"
TerminalScreen::background-darkness = 0.95
}
widget "*TerminalWindow*" style "terminal_window"
#widget "*TerminalWindow.*.*enu?ar" style "terminal_menubar"
widget "*TerminalWindow.*.GtkNotebook*" style "terminal_notebook"
widget "*TerminalWindow.*.GtkNotebook.*.GtkVScrollbar*" style "terminal_scrollbar"
#widget "*TerminalWindow.*.GtkNotebook*utton*" style "terminal_button"
widget "*TerminalWindow.*.TerminalScreen*" style "terminal_screen"

View File

@ -0,0 +1,11 @@
# ==============================================================================
# NAUTILUS SPECIFIC SETTINGS
# ==============================================================================
style "nautilus_info_pane" {
bg[NORMAL] = @bg_color
}
widget_class "*Nautilus*<GtkNotebook>*<GtkEventBox>" style "nautilus_info_pane"
widget_class "*Nautilus*<GtkButton>" style "notebook_button"
widget_class "*Nautilus*<GtkButton>*<GtkLabel>" style "notebook_button"

751
themes/cathexis/gtk-2.0/gtkrc Executable file
View File

@ -0,0 +1,751 @@
# Theme: CathexiS
# Description: Simple, minimal, distraction free foundation for building your desktop experience...
# Author: Samir Kahvedzic < akirapowered@gmail.com >
# Web: http://samirkahvedzic.deviantart.com
# -------------------------------------------------------
#gtk_color_scheme = "fg_color:#666666"
#gtk_color_scheme = "bg_color:#222222"
#gtk_color_scheme = "base_color:#222222"
#gtk_color_scheme = "text_color:#666666"
#gtk_color_scheme = "selected_bg_color:#FEA63C"
#gtk_color_scheme = "selected_fg_color:#000000"
#gtk_color_scheme = "tooltip_bg_color:#B5B5B5"
#gtk_color_scheme = "tooltip_fg_color:#101010"
#gtk_color_scheme = "link_color:#FEA63C"
#gtk_color_scheme = "menu_bg_color:#111111"
#gtk_color_scheme = "menu_fg_color:#666666"
include "/home/simon/.gtkrc-2.0.mine"
gtk-icon-sizes = "panel-menu=22,22:gtk-button=16,16"
gtk-button-images = 0
gtk-toolbar-style = 0
gtk-auto-mnemonics = 1
style "default" {
xthickness = 1
ythickness = 1
#######################
# Style Properties
#######################
GtkButton::child-displacement-x = 1
GtkButton::child-displacement-y = 1
GtkButton::default-border = { 0, 0, 0, 0 }
GtkCheckButton::indicator-size = 16
GtkPaned::handle-size = 6
GtkRange::trough-border = 0
GtkRange::slider-width = 14
GtkRange::stepper-size = 13
GtkRange::trough-under-steppers = 1
GtkScale::trough-border = 0
GtkScale::slider-width = 23
GtkScale::slider-length = 14
GtkScale::trough-side-details = 1
GtkScrollbar::activate-slider = 1
GtkScrollbar::trough-border = 1
GtkScrollbar::slider-width = 7
GtkScrollbar::min-slider-length = 31
GtkScrollbar::has-backward-stepper = 0
GtkScrollbar::has-forward-stepper = 0
GtkMenuBar::internal-padding = 0
GtkMenuBar::shadow-type = GTK_SHADOW_NONE
GtkExpander::expander-size = 11
GtkToolbar::internal-padding = 1
GtkToolbar::shadow-type = GTK_SHADOW_NONE
GtkTreeView::expander-size = 7
GtkTreeView::vertical-separator = 0
# GtkTreeView::odd-row-color = shade (0.96, @base_color)
GtkNotebook::tab-overlap = -1
GtkMenu::horizontal-padding = 0
GtkMenu::vertical-padding = 3
WnckTasklist::fade-overlay-rect = 0
# The following line hints to gecko (and possibly other appliations)
# that the entry should be drawn transparently on the canvas.
# Without this, gecko will fill in the background of the entry.
GtkEntry::honors-transparent-bg-hint = 1
GtkEntry::state-hint = 0
GtkEntry::progress-border = { 2, 2, 2, 2 }
GtkProgressBar::min-horizontal-bar-height = 7
GtkProgressBar::min-vertical-bar-width = 7
GtkImage::x-ayatana-indicator-dynamic = 1
GtkMenuBar::window-dragging = 1
GtkWidget::link-color = @link_color
GtkWidget::visited-link-color = @text_color
####################
# Color Definitions
####################
bg[NORMAL] = @bg_color
bg[PRELIGHT] = shade (1.02, @bg_color)
bg[SELECTED] = @selected_bg_color
bg[INSENSITIVE] = shade (0.95, @bg_color)
bg[ACTIVE] = shade (0.9, @bg_color)
fg[NORMAL] = @fg_color
fg[PRELIGHT] = @fg_color
fg[SELECTED] = @selected_fg_color
fg[INSENSITIVE] = darker (@bg_color)
fg[ACTIVE] = @fg_color
text[NORMAL] = @text_color
text[PRELIGHT] = @text_color
text[SELECTED] = @selected_fg_color
text[INSENSITIVE] = shade (0.8, @bg_color)
text[ACTIVE] = @selected_fg_color
base[NORMAL] = @base_color
base[PRELIGHT] = shade (0.4, @fg_color)
base[SELECTED] = @selected_bg_color
base[INSENSITIVE] = shade (0.97, @bg_color)
base[ACTIVE] = shade (0.75, @fg_color)
engine "murrine" {
contrast = 0.6
arrowstyle = 2
reliefstyle = 3
highlight_shade = 1.0
glazestyle = 0
default_button_color = shade (1.1, @selected_bg_color)
gradient_shades = {1.1, 1.0, 1.0, 0.9}
roundness = 0
lightborder_shade = 1.26
lightborderstyle = 1
listviewstyle = 2
progressbarstyle = 0
colorize_scrollbar = FALSE
menubaritemstyle = 1
menubarstyle = 1
menustyle = 0
focusstyle = 0
handlestyle = 1
sliderstyle = 3
scrollbarstyle = 0
stepperstyle = 3
# rgba = TRUE
}
}
style "dark"
{
color["bg_color_dark"] = "#111111"
color["fg_color_dark"] = "#FFFFFF"
color["selected_fg_color_dark"] = "#111111"
fg[NORMAL] = @fg_color_dark
fg[PRELIGHT] = shade (1.15, @fg_color_dark)
fg[ACTIVE] = @fg_color_dark
fg[SELECTED] = @selected_fg_color_dark
fg[INSENSITIVE] = shade (0.5, @fg_color_dark)
bg[NORMAL] = @bg_color_dark
bg[ACTIVE] = shade (0.8, @bg_color_dark)
bg[SELECTED] = @selected_bg_color
bg[PRELIGHT] = shade (1.0, "#4D4C48")
bg[INSENSITIVE] = shade (0.85, @bg_color_dark)
text[NORMAL] = @fg_color_dark
text[PRELIGHT] = shade (1.15, @fg_color_dark)
text[SELECTED] = @selected_fg_color_dark
text[ACTIVE] = @fg_color_dark
text[INSENSITIVE] = mix (0.5, @bg_color, @bg_color_dark)
}
style "wide" {
xthickness = 5
ythickness = 3
}
style "wider" {
xthickness = 7
ythickness = 3
}
style "entry" {
xthickness = 3
ythickness = 3
bg[NORMAL] = shade (0.70, @bg_color)
base[NORMAL] = @bg_color
bg[SELECTED] = shade (0.90, @bg_color)
fg[SELECTED] = @text_color
engine "murrine" {
focus_color = shade (0.40, @fg_color)
roundness = 2
}
}
style "vscale" {
}
style "hscale" {
}
style "button" {
xthickness = 3
ythickness = 3
bg[NORMAL] = shade (1.03, @bg_color)
bg[PRELIGHT] = shade (0.50, @fg_color)
bg[ACTIVE] = shade (0.96, @bg_color)
bg[INSENSITIVE] = @bg_color
fg[INSENSITIVE] = lighter (@menu_bg_color)
engine "murrine" {
contrast = 1.0
textstyle = 1
border_shades = {1.01, 0.8}
reliefstyle = 0
shadow_shades = {1.0, 1.1}
glowstyle = 5
glow_shade = 1.02
lightborder_shade = 1.32
# lightborderstyle = 0
text_shade = 1.04
}
}
style "notebook_button" = "button" {
}
style "spinbutton" = "notebook_button" {
xthickness = 4
engine "murrine" {
}
}
style "scrollbar" = "button" {
xthickness = 2
ythickness = 2
bg[NORMAL] = darker (@bg_color)
bg[PRELIGHT] = shade (1.04, @bg_color)
fg[PRELIGHT] = lighter (@fg_color)
bg[ACTIVE] = shade (0.96, @bg_color)
engine "murrine"
{
border_shades = {0.95, 0.90}
roundness = 20
contrast = 1.0
trough_shades = {0.92, 0.98}
lightborder_shade = 1.3
glowstyle = 5
glow_shade = 1.02
gradient_shades = {1.2, 1.0, 1.0, 0.86}
trough_border_shades = {0.9, 0.98}
}
}
style "hscrollbar" {
}
style "vscrollbar" {
}
style "overlay_scrollbar"
{
bg[SELECTED] = shade (1.0, @selected_bg_color)
bg[INSENSITIVE] = shade (0.85, @bg_color)
bg[ACTIVE] = shade (0.6, @bg_color)
}
style "scale" = "button" {
bg[NORMAL] = @bg_color
bg[PRELIGHT] = shade (1.06, @bg_color)
bg[ACTIVE] = shade (0.94, @bg_color)
engine "murrine" {
contrast = 0.6
border_shades = {0.9, 0.8}
roundness = 5
lightborder_shade = 1.32
gradient_shades = {1.1, 1.0, 1.0, 0.8}
handlestyle = 2
trough_border_shades = {0.9, 1.4}
glow_shade = 1.0
# reliefstyle = 2
# shadow_shades = { 1.0, 0.9 }
}
}
style "notebook_bg" {
bg[NORMAL] = shade (1.20, @bg_color)
bg[ACTIVE] = shade (0.90, @bg_color)
fg[NORMAL] = @fg_color
fg[ACTIVE] = darker (@fg_color)
fg[PRELIGHT] = lighter (@fg_color)
}
# The color is changed by the notebook_bg style, this style
# changes the x/ythickness
style "notebook" {
xthickness = 7
ythickness = 3
engine "murrine" {
focusstyle = 2
lightborder_shade = 1.16
gradient_shades = {1.1, 1.0, 1.0, 0.68}
contrast = 1.0
textstyle = 1
border_shades = {1.01, 0.8}
reliefstyle = 0
shadow_shades = {1.0, 1.1}
glowstyle = 5
glow_shade = 1.02
lightborder_shade = 1.32
# lightborderstyle = 0
text_shade = 1.04
}
}
style "statusbar" {
engine "murrine" {
contrast = 1.2
}
}
style "comboboxentry" = "notebook_button" {
xthickness = 3
ythickness = 3
engine "murrine" {
textstyle = 1
glowstyle = 5
glow_shade = 1.02
}
}
style "toolbar" {
engine "murrine" {
textstyle = 1
text_shade = 1.32
lightborder_shade = 1.0
}
}
style "toolbar-button" = "notebook_button" {
engine "murrine" {
}
}
style "menu" {
xthickness = 0
ythickness = 0
fg[PRELIGHT] = @selected_fg_color
fg[SELECTED] = @selected_bg_color
fg[ACTIVE] = @selected_bg_color
bg[NORMAL] = @menu_bg_color
engine "murrine"
{
roundness = 2
}
}
style "menu_item" = "menu" {
xthickness = 2
ythickness = 3
engine "murrine"
{
glowstyle = 5
glow_shade = 1.1
border_shades = {0.95, 0.85}
}
}
style "menubar_item" {
xthickness = 2
ythickness = 3
fg[NORMAL] = @menu_fg_color
fg[PRELIGHT] = @selected_bg_color
fg[SELECTED] = @selected_bg_color
fg[ACTIVE] = @selected_bg_color
fg[INSENSITIVE] = shade (0.49, @selected_bg_color)
engine "murrine" {
gradient_shades = {1.1, 1.0, 1.0, 0.88}
glowstyle = 5
glow_shade = 1.0
border_shades = {1.0, 0.9}
lightborderstyle = 3
lightborder_shade = 1.26
}
}
style "menubar" {
bg[SELECTED] = shade (1.2, @menu_bg_color)
bg[NORMAL] = @menu_bg_color
bg[PRELIGHT] = shade (1.2, @menu_bg_color)
bg[ACTIVE] = @menu_bg_color
engine "murrine" {
textstyle = 2
text_shade = 0.33
gradient_shades = {1.0, 1.0, 1.0, 1.0}
lightborder_shade = 1.0
}
}
style "scale_menu_item" = "scale" {
GtkScale::slider-width = 21
GtkScale::slider-length = 13
bg[ACTIVE] = shade(0.98, "#4D4C48")
bg[INSENSITIVE] = shade (0.9, @bg_color)
engine "murrine" {
roundness = 20
border_shades = {1.4, 1.4}
reliefstyle = 0
lightborder_shade = 1.36
}
}
# This style is there to modify the separator menu items. The goals are:
# 1. Get a specific height.
# 2. The line should go to the edges (ie. no border at the left/right)
style "separator_menu_item" {
xthickness = 1
ythickness = 0
GtkSeparatorMenuItem::horizontal-padding = 0
GtkWidget::wide-separators = 1
GtkWidget::separator-width = 1
GtkWidget::separator-height = 7
engine "murrine" {
contrast = 0.6
separatorstyle = 0
}
}
style "separator_tool_item" {
xthickness = 0
ythickness = 1
GtkVSeparator::vertical-padding = 0
GtkWidget::wide-separators = 1
GtkWidget::separator-width = 7
GtkWidget::separator-height = 1
engine "murrine" {
contrast = 0.6
separatorstyle = 0
}
}
style "frame_title" {
fg[NORMAL] = darker (@fg_color)
}
style "treeview" {
engine "murrine"
{
roundness = 2
lightborder_shade = 1.1
gradient_shades = {1.04, 1.0, 1.0, 0.96}
}
}
style "progressbar" {
xthickness = 1
ythickness = 1
fg[PRELIGHT] = shade (1.10, @selected_bg_color)
bg[NORMAL] = shade (1.10, @selected_bg_color)
bg[SELECTED] = shade (0.66, @selected_bg_color)
engine "murrine" {
trough_shades = {0.98, 1.02}
roundness = 2
lightborderstyle = 1
lightborder_shade = 1.26
border_shades = {0.95, 0.85}
gradient_shades = {1.1, 1.0, 1.0, 0.9}
trough_border_shades = {0.9, 1.4}
}
}
style "progressbar_menu_item" = "progressbar" {
bg[ACTIVE] = shade(0.98, "#4D4C48")
engine "murrine" {
roundness = 0
}
}
# This style is based on the default style, so that the colors from the button
# style are overriden again.
style "treeview_header" = "notebook_button" {
xthickness = 2
ythickness = 1
engine "murrine" {
glazestyle = 1
contrast = 0.8
lightborder_shade = 1.16
textstyle = 1
glow_shade = 1.0
}
}
style "treeview_header_scrolled" = "treeview_header" {
}
style "scrolledwindow" {
engine "murrine" {
contrast = 0.6
}
}
style "radiocheck" {
bg[SELECTED] = @bg_color
fg[ACTIVE] = lighter (@fg_color)
text[NORMAL] = @selected_bg_color
engine "murrine" {
reliefstyle = 3
gradient_shades = {1.2, 1.0, 1.0, 0.9}
shadow_shades = {0.6, 0.5}
textstyle = 0
}
}
style "tooltips" {
xthickness = 4
ythickness = 4
bg[NORMAL] = @tooltip_bg_color
fg[NORMAL] = @tooltip_fg_color
bg[SELECTED] = "#000000"
engine "murrine" {
rgba = TRUE
}
}
style "infobar" {
engine "murrine" {
}
}
style "nautilus_location" {
bg[NORMAL] = mix (0.60, shade (1.05, @bg_color), @selected_bg_color)
}
style "calendar" {
xthickness = 0
ythickness = 0
engine "murrine" {
roundness = 0
}
}
style "calendar_menu_item" = "calendar" {
base[NORMAL] = "#605E58"
base[ACTIVE] = "#4b4944"
}
style "iconview" {
engine "murrine" {
roundness = 6
border_shades = {1.16, 1.0}
glow_shade = 1.1
glowstyle = 5
}
}
style "soundfix"
{
}
# Wrokaround style for places where the text color is used instead of the fg color.
style "text_is_fg_color_workaround" {
text[NORMAL] = @fg_color
text[PRELIGHT] = @fg_color
text[SELECTED] = @selected_fg_color
text[ACTIVE] = @fg_color
text[INSENSITIVE] = darker (@bg_color)
}
# Workaround style for menus where the text color is used instead of the fg color.
style "menuitem_text_is_fg_color_workaround" {
text[NORMAL] = @fg_color
text[PRELIGHT] = @selected_fg_color
text[SELECTED] = @selected_fg_color
text[ACTIVE] = @fg_color
text[INSENSITIVE] = "#99958b"
}
# Workaround style for places where the fg color is used instead of the text color.
style "fg_is_text_color_workaround" {
fg[NORMAL] = @text_color
fg[PRELIGHT] = @text_color
fg[SELECTED] = @selected_fg_color
fg[ACTIVE] = @selected_fg_color
fg[INSENSITIVE] = darker (@bg_color)
}
# Style to set the toolbar to use a flat style. This is because the "New" button in
# Evolution is not drawn transparent. So if there is a gradient in the background it will
# look really wrong.
# See http://bugzilla.gnome.org/show_bug.cgi?id=446953.
style "evo_new_button_workaround" {
}
###############################################################################
# The following part of the gtkrc applies the different styles to the widgets.
###############################################################################
# The default style is applied to every widget
class "GtkWidget" style "default"
class "GtkSeparator" style "wide"
class "GtkFrame" style "wide"
class "GtkCalendar" style "wide"
class "GtkEntry" style "entry"
class "GtkSpinButton" style "spinbutton"
class "GtkScale" style "scale"
class "GtkVScale" style "vscale"
class "GtkHScale" style "hscale"
class "GtkScrollbar" style "scrollbar"
class "GtkHScrollbar" style "hscrollbar"
class "GtkVScrollbar" style "vscrollbar"
class "GtkCalendar" style "calendar"
class "GtkInfoBar" style "infobar"
class "GtkIconView" style "iconview"
# General matching follows. The order is choosen so that the right styles override
# each other. EG. progressbar needs to be more important than the menu match.
widget_class "*<GtkNotebook>" style "notebook_bg"
# This is not perfect, it could be done better.
# (That is modify *every* widget in the notebook, and change those back that
# we really don't want changed)
widget_class "*<GtkNotebook>*<GtkEventBox>" style "notebook_bg"
widget_class "*<GtkNotebook>*<GtkDrawingArea>" style "notebook_bg"
widget_class "*<GtkNotebook>*<GtkLayout>" style "notebook_bg"
widget_class "*<GtkNotebook>*<GtkLabel>" style "notebook_bg"
widget_class "*<GtkToolbar>*" style "toolbar"
widget_class "*<GtkScrolledWindow>*" style "scrolledwindow"
widget_class "*<GtkButton>" style "button"
widget_class "*<GtkButton>*<GtkLabel>" style "button"
widget_class "*<GtkToolbar>.*.<GtkButton>*" style "notebook_button"
widget_class "*<GtkNotebook>" style "notebook"
widget_class "*<GtkStatusbar>" style "statusbar"
widget_class "*<GtkSpinButton>*" style "spinbutton"
widget_class "*<GtkNotebook>*<GtkButton>" style "notebook_button"
widget_class "*<GtkNotebook>*<GtkButton>*<GtkLabel>" style "notebook_button"
widget_class "*<GtkRadioButton>*" style "radiocheck"
widget_class "*<GtkCheckButton>*" style "radiocheck"
widget_class "*<GtkComboBoxEntry>*" style "comboboxentry"
widget_class "*<GtkCombo>*" style "comboboxentry"
widget_class "*<GtkMenuBar>*" style "menubar"
widget_class "*<GtkMenu>*" style "menu"
widget_class "*<GtkMenuItem>*" style "menu_item"
widget_class "*<GtkSeparatorMenuItem>*" style "separator_menu_item"
widget_class "*<GtkSeparatorToolItem>*" style "separator_tool_item"
widget_class "*<GtkMenuBar>*<GtkMenuItem>*" style "menubar_item"
widget_class "*.<GtkFrame>.<GtkLabel>" style "frame_title"
widget_class "*.<GtkTreeView>*" style "treeview"
widget_class "*<GtkProgress>" style "progressbar"
widget_class "*<GtkMenuItem>.*.<GtkProgressBar>" style "progressbar_menu_item"
widget_class "*<GtkMenuItem>.*.<GtkScale>" style "scale_menu_item"
widget_class "*<GtkMenuItem>.*.<GtkCalendar>" style "calendar_menu_item"
# Treeview headers (and similar stock GTK+ widgets)
widget_class "*.<GtkScrolledWindow>*<GtkTreeView>*" style "treeview_header_scrolled"
widget_class "*.<GtkTreeView>.<GtkButton>" style "treeview_header"
widget_class "*.<GtkCTree>.<GtkButton>" style "treeview_header"
widget_class "*.<GtkList>.<GtkButton>" style "treeview_header"
widget_class "*.<GtkCList>.<GtkButton>" style "treeview_header"
widget_class "*.<GtkTreeView>.<GtkButton>.*<GtkLabel>" style "treeview_header"
widget_class "*.<GtkCTree>.<GtkButton>.*<GtkLabel>" style "treeview_header"
widget_class "*.<GtkList>.<GtkButton>.*<GtkLabel>" style "treeview_header"
widget_class "*.<GtkCList>.<GtkButton>.*<GtkLabel>" style "treeview_header"
# Overlay scrollbar
widget_class "*<OsScrollbar>" style "overlay_scrollbar"
widget_class "*<OsThumb>" style "overlay_scrollbar"
# The window of the tooltip is called "gtk-tooltip"
##################################################################
# FIXME:
# This will not work if one embeds eg. a button into the tooltip.
# As far as I can tell right now we will need to rework the theme
# quite a bit to get this working correctly.
# (It will involve setting different priorities, etc.)
##################################################################
widget "gtk-tooltip*" style "tooltips"
##########################################################################
# Following are special cases and workarounds for issues in applications.
##########################################################################
# Workaround for the evolution ETable (bug #527532)
widget_class "*.ETable.ECanvas" style "treeview_header"
# Workaround for the evolution ETree
widget_class "*.ETree.ECanvas" style "treeview_header"
# Special case the nautilus-extra-view-widget
# ToDo: A more generic approach for all applications that have a widget like this.
widget "*.nautilus-extra-view-widget" style : highest "nautilus_location"
# Work around for http://bugzilla.gnome.org/show_bug.cgi?id=382646
# Note that this work around assumes that the combobox is _not_ in appears-as-list mode.
widget_class "*.<GtkComboBox>.<GtkCellView>" style "text_is_fg_color_workaround"
# This is the part of the workaround that fixes the menus
widget "*.gtk-combobox-popup-menu.*" style "menuitem_text_is_fg_color_workaround"
# Work around the usage of GtkLabel inside GtkListItems to display text.
# This breaks because the label is shown on a background that is based on the base color.
widget_class "*<GtkListItem>*" style "fg_is_text_color_workaround"
# GtkCList also uses the fg color to draw text on top of the base colors.
widget_class "*<GtkCList>" style "fg_is_text_color_workaround"
# Nautilus when renaming files, and maybe other places.
widget_class "*<EelEditableLabel>" style "fg_is_text_color_workaround"
# Work around for ubuntu's lucid sound indicator
widget "ido-offscreen-scale" style "soundfix"
# Thickness for indicator menu items
widget "*IdoEntryMenuItem*" style "wide"
# See the documentation of the style.
widget_class "EShellWindow.GtkVBox.BonoboDock.BonoboDockBand.BonoboDockItem*" style "evo_new_button_workaround"
# Includes
#include "apps/banshee.rc"
include "apps/chromium.rc"
include "apps/ff.rc"
include "apps/gnome-terminal.rc"
include "apps/nautilus.rc"

View File

@ -0,0 +1,16 @@
.baobab-toolbar.toolbar {
border-color: shade (@bg_color, 0.9);
border-style: solid;
border-width: 0 0 1px 0;
border-radius: 0;
}
.cell.baobab-level-cell,
.cell.baobab-level-cell:hover,
.cell.baobab-level-cell:selected,
.cell.baobab-level-cell:selected:hover {
border-color: alpha (black, 0.06);
border-width: 1px;
border-style: solid;
background-color: @base_color;
}

View File

@ -0,0 +1,40 @@
@define-color notebook_tab_gradient_b shade (@bg_color, 0.98);
GeditWindow .pane-separator,
GeditWindow .pane-separator:hover {
}
GeditPanel.title GtkLabel {
}
GeditPanel .toolbar {
border-style: none;
background-color: transparent;
}
GeditDocumentsPanel .view {
}
GeditDocumentsPanel .view:backdrop {
}
GeditWindow .notebook {
padding: 1px;
border-radius: 1px;
}
GeditPanel .notebook {
padding: 3px;
border-radius: 1px;
}
GeditPanel .notebook tab,
GeditWindow .notebook tab {
border-radius: 3px;
}
GeditFloatingSlider .not-found {
color: @error_fg_color;
background-image: none;
background-color: @error_bg_color;
}

View File

@ -0,0 +1,558 @@
@define-color nautilus_cluebar_color #729fcf;
@define-color documents_selection_toolbar_a #8e9c80;
@define-color documents_selection_toolbar_b #4f6838;
@define-color documents_selection_toolbar_border #3e7b05;
@define-color documents_selection_button_a #7fc141;
@define-color documents_selection_button_b #47850d;
@define-color documents_selection_button_c #4e9a06;
@define-color documents_emblem_bg #3465a4;
@define-color documents_collection_bg #d3d7cf;
@define-color documents_osd_toolbar_a alpha(#242424, 0.80);
@define-color documents_osd_toolbar_b alpha(#101010, 0.80);
@define-color documents_osd_toolbar_c alpha(#262626, 0.80);
@define-color documents_osd_button_a @theme_base_color;
@define-color documents_osd_button_b #525252;
@define-color documents_osd_button_inset #9f9f9f;
@define-color documents_osd_fg #bebebe;
/****************
* Applications *
****************/
ApDocView, /* Abiword */
EogScrollView, /* Eog */
CheeseThumbView /* Cheese */
{
background-color: @chrome_bg_color;
-EogScrollView-shadow-type: none;
}
/* gnome-terminal */
TerminalScreen {
background-color: @theme_base_color;
color: @theme_fg_color;
-TerminalScreen-background-darkness: 0.95;
}
TerminalWindow GtkNotebook.notebook {
border-bottom-width: 0;
border-right-width: 0;
border-left-width: 0;
}
/* gedit */
GeditWindow .pane-separator,
GeditWindow .pane-separator:hover {
border-width: 0 1px 1px 1px;
border-style: solid;
border-color: @borders;
background-color: shade(@theme_bg_color, 0.95);
color: @borders;
}
GeditPanel .toolbar {
border-style: none;
background-color: transparent;
}
GeditWindow .sidebar {
background-color: @theme_base_color;
border-width: 0 0 1px 0;
border-style: solid;
border-color: @borders;
}
GeditPanel .notebook {
padding: 2px;
border-width: 1px 0;
color:#FFF;
background: #232323;
}
GeditWindow .notebook {
border-width: 1px 0;
}
GeditPanel .notebook tab,
GeditWindow .notebook tab {
border-width: 0;
}
/* gnome-documents */
.documents-dropdown,
.documents-dropdown .view {
background-color: shade (@theme_bg_color, 1.02);
}
.documents-dropdown .frame {
border-width: 0 1px 1px 1px;
border-style: solid;
border-radius: 0 0 5px 5px;
}
.documents-dropdown .radio,
.documents-dropdown .radio:focused,
.documents-dropdown .radio:selected {
background-image: none;
background-color: alpha(@theme_base_color, 0.0);
}
.documents-dropdown .radio:active,
.documents-dropdown .radio:active:focused,
.documents-dropdown .radio:active:prelight {
background-image: url("assets/sidebar-radio-checked.svg");
}
.documents-dropdown .radio:prelight {
background-image: url("assets/sidebar-radio-prelight.svg");
}
.documents-dropdown .radio:active:selected,
.documents-dropdown .radio:active:selected:focused {
background-image: url("assets/sidebar-radio-selected.svg");
}
.documents-dropdown .radio:selected:prelight,
.documents-dropdown .radio:selected:focused {
background-image: url("assets/sidebar-radio-selected-prelight.svg");
}
.documents-load-more.button {
border-image-width: 0 2 2 2;
border-width: 0 1px 1px 1px;
}
.documents-scrolledwin.frame {
border-width: 1px 0;
border-radius: 0;
}
.documents-main-view.view {
background-color: #f1f2f1;
}
.documents-selection-mode.toolbar {
background-image: -gtk-gradient(linear, left top, left bottom,
from(@documents_selection_toolbar_a),
to(@documents_selection_toolbar_b));
color: @theme_base_color;
border-width: 1px 0 0 0;
border-color: @documents_selection_toolbar_border;
border-style: solid;
}
.documents-selection-mode.toolbar .dim-label {
color: alpha(@theme_base_color, 0.50);
}
.documents-selection-mode.toolbar .button {
background-image: -gtk-gradient(linear, left top, left bottom,
from(@documents_selection_button_a),
color-stop(0.83, @documents_selection_button_b),
to(@documents_selection_button_c));
border-color: @documents_selection_toolbar_border;
border-image: none;
border-style: solid;
border-width: 1px;
color: @theme_base_color;
text-shadow: none;
icon-shadow: none;
}
.documents-selection-mode.toolbar .button:hover {
background-image: -gtk-gradient(linear, left top, left bottom,
from(shade(@documents_selection_button_a, 1.20)),
color-stop(0.83, shade(@documents_selection_button_b, 1.10)),
to(shade(@documents_selection_button_c, 1.10)));
}
.documents-selection-mode.toolbar .button:active,
.documents-selection-mode.toolbar .button:hover:active {
background-image: -gtk-gradient(linear, left top, left bottom,
from(@documents_selection_button_b),
to(shade(@documents_selection_button_a, 0.90)));
border-color: @documents_selection_toolbar_border;
border-image: none;
border-style: solid;
border-width: 1px;
}
.documents-selection-mode.toolbar .button *:hover {
color: @theme_base_color;
}
.documents-icon-bg {
background-color: @documents_emblem_bg;
border-radius: 4px;
color: @theme_base_color;
}
.documents-collection-icon {
background-color: @documents_collection_bg;
border-radius: 8px;
}
.documents-osd {
background-image: none;
background-color: transparent;
}
.documents-osd .toolbar {
padding: 16px;
border-style: none;
border-radius: 5px;
border-width: 0;
background-image: -gtk-gradient(linear, left top, left bottom,
from(@documents_osd_toolbar_a),
color-stop(0.63, @documents_osd_toolbar_b),
to(@documents_osd_toolbar_c));
color: @documents_osd_fg;
-GtkToolbar-button-relief: normal;
}
.documents-osd .toolbar .button {
padding: 4px;
background-image: -gtk-gradient(linear, left top, left bottom,
from(alpha(@documents_osd_button_a, 0.16)),
color-stop(0.68, alpha(@documents_osd_button_b, 0.05)),
to(alpha(@documents_osd_button_a, 0.12)));
border-width: 1px 0;
border-style: solid;
border-image: none;
border-color: alpha(@documents_osd_button_a, 0.50);
border-radius: 0;
color: @documents_osd_fg;
text-shadow: none;
icon-shadow: none;
box-shadow: -1 0 inset @documents_osd_button_inset;
}
.documents-osd .toolbar .button,
.documents-osd .toolbar .button:prelight,
.documents-osd .toolbar .button:active {
background-color: transparent;
}
.documents-osd .toolbar .button:nth-child(first) {
border-radius: 4px 0 0 4px;
border-left-width: 1px;
box-shadow: -1 0 inset @documents_osd_button_inset;
}
.documents-osd .toolbar .button:nth-child(last) {
box-shadow: none;
border-radius: 0 4px 4px 0;
border-right-width: 1px;
}
.documents-osd .toolbar .button:only-child {
border-width: 1px;
border-radius: 4px;
border-style: solid;
}
.documents-osd .toolbar .separator {
color: @documents_osd_button_inset;
}
.documents-osd .toolbar .button:hover {
background-image: -gtk-gradient(linear, left top, left bottom,
from(alpha(@documents_osd_button_a, 0.28)),
color-stop(0.68, alpha(@documents_osd_button_b, 0.14)),
to(alpha(@documents_osd_button_a, 0.14)));
}
.documents-osd .toolbar .button *:hover {
color: shade(@documents_osd_fg, 1.20);
}
.documents-osd .toolbar .button:active,
.documents-osd .toolbar .button:active:hover {
background-image: -gtk-gradient(linear, left top, left bottom,
from(alpha(@documents_osd_button_b, 0.18)),
color-stop(0.68, alpha(@documents_osd_button_a, 0.23)),
to(alpha(@documents_osd_button_b, 0.17)));
}
.documents-osd .toolbar .button.favorite,
.documents-osd .toolbar .button.favorite *:hover {
color: shade(@theme_selected_bg_color, 1.20);
}
.documents-entry-tag {
background-color: @documents_emblem_bg;
color: @theme_base_color;
border-radius: 4px;
border-width: 0;
margin: 2px;
padding: 4px;
}
.documents-entry-tag:hover {
background-color: shade(@documents_emblem_bg, 1.10);
color: @theme_base_color;
}
.documents-entry-tag.button,
.documents-entry-tag.button:hover,
.documents-entry-tag.button:active,
.documents-entry-tag.button:active:hover {
background-color: transparent;
background-image: none;
border-image: none;
border-width: 0;
}
.documents-entry-tag.button:hover {
color: shade(@documents_emblem_bg, 2.10);
}
/* epiphany */
/* EphyToolbar.toolbar {
border-bottom: 1 solid @borders;
}
EphyToolbar.toolbar:backdrop {
border-bottom: 1 solid @unfocused_borders;
}
*/
EphyToolbar .entry,
EphyToolbar .entry:focus,
EphyToolbar .entry:backdrop {
border-image-width: 3 0 4 3;
border-width: 1px 0 2px 1px;
border-bottom-right-radius: 0;
border-top-right-radius: 0;
padding-left: 4px;
padding-right: 4px;
}
EphyToolbar .entry:focus {
box-shadow: 1 2 inset alpha(@theme_selected_bg_color, 0.1),
1 1 inset alpha(@theme_selected_bg_color, 0.1),
0 -1 inset alpha(@theme_selected_bg_color, 0.2);
}
EphyToolbar .location-entry .button {
color: @internal_element_color;
-GtkButton-child-displacement-y: 0;
}
EphyToolbar .location-entry .button:last-child {
border-image: url("borders/generic-border.svg") 3 3 4 3 / 3 3 4 0 stretch;
border-width: 1px 1px 2px 0;
border-bottom-left-radius: 0;
border-top-left-radius: 0;
padding-left: 4px;
padding-right: 2px;
}
EphyToolbar .location-entry .button,
EphyToolbar .location-entry .button:hover,
EphyToolbar .location-entry .button:focus {
icon-shadow: none;
background-image: -gtk-gradient(linear,
left top, left bottom,
from(@entry_background_a),
to(@entry_background_b));
box-shadow: 1 0 inset @inset_dark_color,
0 1 inset @entry_inset,
0 2 inset alpha(@entry_inset, 0.4);
}
EphyToolbar .location-entry .button:active,
EphyToolbar .location-entry .button:active:hover {
background-image: -gtk-gradient(linear, left top, left bottom,
from(shade(@entry_background_a, 0.9)),
to(@entry_background_b));
box-shadow: 1 0 inset @inset_dark_color,
0 1 inset @entry_inset,
0 2 inset alpha(@entry_inset, 0.4);
}
EphyToolbar .location-entry .button:hover,
EphyToolbar .location-entry .button:focus,
EphyToolbar .location-entry .button:active,
EphyToolbar .location-entry .button *:active {
color: @theme_text_color;
}
EphyToolbar .location-entry .button:backdrop,
EphyToolbar .location-entry .button:hover:backdrop {
background-image: none;
background-color: mix (@base_color, @bg_color, 0.4);
border-radius: 3px;
border-width: 1px 1px 2px 0;
}
EphyNotebook.notebook {
border-width: 1px 0 1px 0;
}
EphyNotebook.notebook tab {
border-width: 0;
}
EphyToolbar.toolbar .button {
padding-left: 4px;
padding-right: 4px;
}
#ephy-page-menu-button.active-menu {
background-image: none;
background-color: @bg_color;
border-image: none;
border-color: @bg_color;
border-radius: 4px 4px 0 0;
}
/* Gnome Contacts */
/* Line at top in contacts pane, similar to .documents-scrolledwin.frame */
.contacts-content.frame {
border-width: 1px 0 0 0;
border-radius: 0;
}
/* Background color in contacts pane, similar to .documents-main-view.view */
.contacts-main-view.view {
background-color: #f1f2f1;
}
.contacts-suggestion {
background-color: #434343;
color: #ffffff;
border-radius: 4px;
}
/* Border on the right in the left menu toolbar */
.contacts-left-toolbar.toolbar.menubar {
border-width: 0 1px 0 0;
border-style: solid;
border-color: @borders;
}
/* Sidebar with line at top and the left */
ContactsWindow .sidebar.frame {
border-width: 1px 1px 0 0;
border-style: solid;
border-color: @borders;
border-image: none;
border-radius: 0;
padding: 0;
}
.contacts-avatar-frame.frame {
border-width: 1px 1px 0 1px;
border-style: solid;
border-color: @borders;
border-image: none;
border-radius: 0;
padding: 0;
}
/* Primary toolbar with no line at top to avoid conflicts with frame border */
ContactsWindow .primary-toolbar.toolbar {
border-width: 0 0 1px 0;
}
ContactsWindow .sidebar .view {
background-color: #ebebeb;
}
ContactsWindow .sidebar .view:selected,
ContactsWindow .sidebar .view:selected:focus {
background-color: @selected_bg_color;
}
.contacts-button:active {
border-color: #000000;
border-image: none;
}
.contacts-entry {
box-shadow: none;
border-image: none;
border-width: 1px;
border-radius: 4px;
border-style: solid;
border-color: #bbbeb7;
background-image: none;
background-color: #ffffff;
}
.contacts-entry:selected,
.contacts-entry:selected:focus {
background-color: @selected_bg_color;
color: @selected_fg_color;
}
.contacts-entry.contacts-postal-entry {
border-radius: 0 0 0 0;
border-width: 1px 1px 0 1px;
}
.contacts-entry.contacts-postal-entry:nth-child(first) {
border-radius: 4px 4px 0 0;
}
.contacts-entry.contacts-postal-entry:nth-child(last) {
border-radius: 0 0 4px 4px;
border-width: 1px;
}
.button.contacts-square {
padding: 0px;
}
.contacts-combo .button {
border-image: none;
border-width: 1px;
border-style: solid;
border-color: #bbbeb7;
background-image: none;
background-color: #ffffff;
}
.contacts-notification {
border-style: solid;
border-color: #949486;
border-width: 0 1px 1px 1px;
border-radius: 0 0 5px 5px;
padding: 8px;
background-color: #d8d8d8;
background-image: -gtk-gradient (linear, left top, left bottom,
from (rgba (0, 0, 0, 0.15)),
color-stop (0.15, rgba (0, 0, 0, 0.04)),
to (rgba (0, 0, 0, 0.0)));
}
/* Gucharmap */
GucharmapChartable:active,
GucharmapChartable:focus,
GucharmapChartable:selected {
background-color: @theme_selected_bg_color;
color: @theme_selected_fg_color;
}

View File

@ -0,0 +1,6 @@
/*calculadora*/
MathWindow .button,
MathWindow .button:backdrop{background:none; border:5px solid transparent;}
MathWindow GtkViewport.frame,
MathWindow GtkViewport.frame:backdrop{padding:0px}
MathWindow GtkTextView {background:@bg_color;}

View File

@ -0,0 +1,99 @@
/* Fallback Mode Panel */
PanelWidget :backdrop,
PanelApplet :backdrop,
PanelToplevel :backdrop,
PanelWidget,
PanelApplet,
PanelToplevel {
border-image: none;
padding: 0;
color: @dark_fg_color;
}
PanelWidget,
PanelApplet,
PanelToplevel {
background-image: -gtk-gradient (linear, left top, left bottom,
from (shade (@dark_bg_color, 1.5)),
to (shade (@dark_bg_color, 1.05)));
}
PanelApplet {
border-width: 0;
}
PanelSeparator:backdrop,
PanelSeparator {
border-width: 0;
background-image: -gtk-gradient (linear, left top, left bottom,
from (shade (@dark_bg_color, 1.5)),
to (shade (@dark_bg_color, 1.05)));
color: @dark_fg_color;
}
.gnome-panel-menu-bar,
PanelApplet > GtkMenuBar.menubar,
PanelApplet > GtkMenuBar.menubar.menuitem,
PanelMenuBar.menubar,
PanelMenuBar.menubar.menuitem {
-PanelMenuBar-icon-visible: true;
background-image: -gtk-gradient (linear, left top, left bottom,
from (shade (@dark_bg_color, 1.5)),
to (shade (@dark_bg_color, 1.05)));
}
PanelAppletFrame {
background-color: @dark_bg_color;
background-image: -gtk-gradient (linear, left top, left bottom,
from (shade (@dark_bg_color, 1.5)),
to (shade (@dark_bg_color, 1.05)));
border-width: 0;
}
PanelApplet .button:backdrop,
PanelApplet .button {
-GtkButton-inner-border: 2;
border-image: none;
background-image: -gtk-gradient (linear, left top, left bottom,
from (shade (@dark_bg_color, 1.5)),
to (shade (@dark_bg_color, 1.05)));
border-color: alpha (shade (@dark_bg_color, 1.0), 0.6);
border-left-color: alpha (shade (@dark_bg_color, 1.5), 0.3);
border-radius: 0;
border-width: 0 1px 0 1px;
color: @dark_fg_color;
text-shadow: none;
}
PanelApplet .button:active:prelight:backdrop,
PanelApplet .button:active:prelight,
PanelApplet .button:active:backdrop,
PanelApplet .button:active {
border-image: none;
background-image: -gtk-gradient (linear, left top, left bottom,
from (shade (@dark_bg_color, 0.85)),
to (shade (@dark_bg_color, 1.0)));
border-color: shade (@dark_bg_color, 0.9);
}
PanelApplet .button:prelight:backdrop,
PanelApplet .button:prelight {
border-image: none;
background-image: -gtk-gradient (linear, left top, left bottom,
from (shade (@dark_bg_color, 1.7)),
to (shade (@dark_bg_color, 1.25)));
border-color: alpha (shade (@dark_bg_color, 1.0), 0.6);
border-left-color: alpha (shade (@dark_bg_color, 1.5), 0.4);
}
ClockBox {
text-shadow: 0 -1px shade (@dark_bg_color, 0.6);
}
WnckPager, WnckTasklist {
background-color: @dark_bg_color;
}

View File

@ -0,0 +1,114 @@
/* gnome-terminal */
TerminalScreen {
-TerminalScreen-background-darkness: 0.95;
background-color: #300a24;
color: #fff;
}
/*
TerminalWindow,
TerminalWindow.background {
background-color: @dark_bg_color;
color: @dark_fg_color;
}
*/
/* notebook */
/*
TerminalWindow .notebook {
background-image: none;
background-color: shade (@dark_bg_color, 1.02);
border-radius: 3;
-unico-border-gradient: -gtk-gradient (linear, left top, right top,
from (shade (@dark_bg_color, 0.93)),
to (shade (@dark_bg_color, 0.93)));
-unico-inner-stroke-width: 0;
-unico-outer-stroke-width: 0;
}
TerminalWindow .notebook tab {
background-image: -gtk-gradient (linear, left top, left bottom,
from (shade (@dark_bg_color, 0.92)),
color-stop (0.60, shade (@dark_bg_color, 0.9)),
to (shade (@dark_bg_color, 0.85)));
padding: 0;
color: @dark_fg_color;
-unico-inner-stroke-color: alpha (shade (@dark_bg_color, 1.26), 0.2);
}
TerminalWindow .notebook tab:active {
background-image: -gtk-gradient (linear, left top, left bottom,
from (shade (@dark_bg_color, 1.2)),
to (shade (@dark_bg_color, 1.12)));
-unico-inner-stroke-color: alpha (shade (@dark_bg_color, 1.26), 1.0);
}
TerminalWindow .notebook .button,
TerminalWindow .notebook .button:active {
background-image: -gtk-gradient (linear, left top, right top,
from (shade (@dark_bg_color, 1.08)),
to (shade (@dark_bg_color, 0.92)));
-unico-border-gradient: -gtk-gradient (linear, left top, right top,
from (shade (@dark_bg_color, 0.9)),
to (shade (@dark_bg_color, 0.9)));
-unico-inner-stroke-color: alpha (shade (@dark_bg_color, 1.26), 0.7);
-unico-outer-stroke-style: none;
}
*/
/* Scrollbars */
/*
TerminalWindow .scrollbar {
border-radius: 20;
-unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
from (shade (@dark_bg_color, 0.74)),
to (shade (@dark_bg_color, 0.74)));
}
TerminalWindow .scrollbar.trough {
background-image: -gtk-gradient (linear, left top, right top,
from (shade (@dark_bg_color, 0.9)),
to (shade (@dark_bg_color, 0.95)));
}
TerminalWindow .scrollbar.trough.horizontal {
background-image: -gtk-gradient (linear, left top, left bottom,
from (shade (@dark_bg_color, 0.9)),
to (shade (@dark_bg_color, 0.95)));
}
TerminalWindow .scrollbar.slider,
TerminalWindow .scrollbar.slider:prelight,
TerminalWindow .scrollbar.button,
TerminalWindow .scrollbar.button:insensitive {
background-image: -gtk-gradient (linear, left top, right top,
from (shade (@dark_bg_color, 1.08)),
to (shade (@dark_bg_color, 0.92)));
-unico-border-gradient: -gtk-gradient (linear, left top, right top,
from (shade (@dark_bg_color, 0.74)),
to (shade (@dark_bg_color, 0.74)));
-unico-inner-stroke-color: alpha (shade (@dark_bg_color, 1.26), 0.7);
}
TerminalWindow .scrollbar.slider.horizontal,
TerminalWindow .scrollbar.slider.horizontal:prelight,
TerminalWindow .scrollbar.button.horizontal,
TerminalWindow .scrollbar.button:insensitive {
background-image: -gtk-gradient (linear, left top, left bottom,
from (shade (@dark_bg_color, 1.08)),
to (shade (@dark_bg_color, 0.92)));
-unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
from (shade (@dark_bg_color, 0.74)),
to (shade (@dark_bg_color, 0.74)));
-unico-inner-stroke-color: alpha (shade (@dark_bg_color, 1.26), 0.7);
}
*/

View File

@ -0,0 +1,73 @@
@define-color cluebar_color alpha(@fg_color,0.1);
NautilusWindow * {
-GtkPaned-handle-size: 1;
}
.nautilus-canvas-item {
border-radius: 4px;
}
/* desktop mode */
.nautilus-desktop.nautilus-canvas-item {
color: @fg_color;
text-shadow: 1px 1px alpha (#000000, 0.8);
background:none;
}
.nautilus-desktop.nautilus-canvas-item:active {
background-image: none;
background-color: alpha (@bg_color, 0.84);
color: @fg_color;
}
.nautilus-desktop.nautilus-canvas-item:selected {
background-image: none;
background-color: alpha (@selected_bg_color, 0.84);
color: @selected_fg_color;
}
.nautilus-desktop.nautilus-canvas-item:active,
.nautilus-desktop.nautilus-canvas-item:prelight,
.nautilus-desktop.nautilus-canvas-item:selected {
text-shadow: none;
}
NautilusTrashBar.info,
NautilusXContentBar.info,
NautilusSearchBar.info,
NautilusQueryEditor.info {
background-color: @cluebar_color;
}
NautilusWindow .toolbar,
NautilusWindow .toolbar:backdrop{
background-image: url("../assets/toolbar.png");
background-position:left bottom;
background-repeat:repeat-x;
padding-bottom:10px;
}
NautilusWindow .frame,
NautilusWindow .frame:backdrop{border:none; border-image:none;}
NautilusWindow .sidebar row:selected {
background-color:alpha(@selected_bg_color,0.4);
background-image: url("../assets/sidebar-dark.png");
background-position:right top;
background-repeat:repeat-y;
}
NautilusWindow .sidebar,
NautilusWindow .sidebar .view{background:@bg_color}
NautilusWindow .sidebar:backdrop,
NautilusWindow .sidebar .view:backdrop{background:@backdrop_bg_color;}
NautilusWindow .sidebar .cell,
NautilusWindow .sidebar .cell:backdrop{
background-image: url("../assets/sidebar-dark.png");
background-position:right top;
background-repeat:repeat-y;
}

View File

@ -0,0 +1,65 @@
.lightdm.menu {
background-image: none;
background-color: alpha (black, 0.6);
border-color: alpha (white, 0.2);
border-radius: 4px;
padding: 1px;
color: white;
}
.lightdm-combo .menu {
background-color: shade (@dark_bg_color, 1.08);
border-radius: 0px;
padding: 0px;
color: white;
}
.lightdm.menu .menuitem *,
.lightdm.menu .menuitem.check:active,
.lightdm.menu .menuitem.radio:active {
color: white;
}
.lightdm.menubar {
background-image: none;
background-color: alpha (black, 0.5);
}
.lightdm-combo.combobox-entry .button,
.lightdm-combo .cell,
.lightdm-combo .button,
.lightdm-combo .entry,
.lightdm.button,
.lightdm.entry {
background-image: none;
background-color: alpha (black, 0.3);
border-color: alpha (white, 0.6);
border-radius: 5px;
padding: 7px;
color: white;
text-shadow: none;
}
.lightdm.button,
.lightdm.button:hover,
.lightdm.button:active,
.lightdm.button:active:focused,
.lightdm.entry,
.lightdm.entry:hover,
.lightdm.entry:active,
.lightdm.entry:active:focused {
background-image: none;
border-image: none;
}
.lightdm.button:focused,
.lightdm.entry:focused {
border-color: alpha (white, 0.9);
border-width: 1px;
border-style: solid;
color: white;
}

View File

@ -0,0 +1,32 @@
UnityPanelWidget,
.unity-panel {
background:@dark_bg_color;
color:@dark_fg_color;
text-shadow: 0 -1px shade (#000000, 0.7);
}
.unity-panel.menubar,
.unity-panel .menubar {
}
.unity-panel.menuitem,
.unity-panel .menuitem {
icon-shadow: 0 -1px shade (@dark_bg_color, 0.7);
background-color:transparent;
box-shadow:none;
border:none;
}
.unity-panel.menubar.menuitem:hover,
.unity-panel.menubar .menuitem *:hover {
background-image: -gtk-gradient (linear, 0 0, 0 1,
from (transparent),
to (alpha(@selected_bg_color,0.1)));
background-color:transparent;
border-radius:4px 4px 0 0;
border-color:transparent;
border-width:0px;
border-bottom:2px solid @selected_bg_color;
box-shadow:none;
transition: 150ms ease-in-out;
}

View File

@ -0,0 +1,51 @@
/*default color scheme */
@define-color bg_color #2d2d2d;
@define-color fg_color #cccccc;
@define-color base_color #2d2d2d;
@define-color text_color #cccccc;
@define-color selected_bg_color #99cc99;
@define-color selected_fg_color #2d2d2d;
@define-color tooltip_bg_color #2d2d2d;
@define-color tooltip_fg_color #cccccc;
@define-color menu_bg_color #2d2d2d;
@define-color menu_fg_color #cccccc;
@define-color transparent rgba (0, 0, 0, 0);
/* misc colors used by gtk+ */
@define-color info_fg_color #EFEFEF;
@define-color info_bg_color #33b5e5;
@define-color warning_fg_color #EFEFEF;
@define-color warning_bg_color #ff8800;
@define-color question_fg_color #EFEFEF;
@define-color question_bg_color #0099cc;
@define-color error_fg_color #EFEFEF;
@define-color error_bg_color #cc0000;
@define-color link_color #FEA63C;
@define-color success_color #669900;
@define-color error_color #cc0000;
/* theme common colors */
@define-color button_bg_color shade (@bg_color, 1.02); /*shade (#cdcdcd, 1.08);*/
@define-color notebook_button_bg_color shade (@bg_color, 1.02);
@define-color button_insensitive_bg_color mix (@button_bg_color, @bg_color, 0.6);
@define-color dark_bg_color #3d3d3d;
@define-color dark_h_color #2d2d2d;
@define-color dark_fg_color #f2f2f2;
@define-color dark_borde_color #404040;
@define-color backdrop_bg_color #515151;
@define-color backdrop_fg_color alpha(@fg_color, 0.6);
@define-color backdrop_text_color alpha(@fg_color, 0.6);
@define-color backdrop_dark_fg_color mix (@dark_bg_color, @dark_fg_color, 0.75);
@define-color backdrop_selected_bg_color shade (@bg_color, 0.92);
@define-color backdrop_selected_fg_color @fg_color;
@import url("gtk-widgets.css");
@import url("apps/unity.css");
@import url("apps/baobab.css");
@import url("apps/gedit.css");
@import url("apps/nautilus.css");
@import url("apps/gnome-panel.css");
@import url("apps/gnome-terminal.css");
@import url("apps/unity-greeter.css");
@import url("apps/gnome-extras.css");

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,10 @@
/***************
* Resize grip *
***************/
.grip {
background-color: transparent;
/*background-image: url("assets/resize-grip.svg");*/
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
@import url("gtk-main.css");

View File

@ -0,0 +1,3 @@
[Settings]
gtk-color-scheme = "base_color:#404040\nbg_color:#404040\ntooltip_bg_color:#404040\nselected_bg_color:#33b5e5\ntext_color:#EFEFEF\nfg_color:#EFEFEF\ntooltip_fg_color:#EFEFEF\nselected_fg_color:#EFEFEF\nlink_color:#0099cc\nbg_color_dark:#404040\nfg_color_dark:#EFEFEF"
gtk-auto-mnemonics = 1

12
themes/cathexis/index.theme Executable file
View File

@ -0,0 +1,12 @@
[Desktop Entry]
Type=X-GNOME-Metatheme
Name=cathexis
Comment=Simple, minimal, distraction free foundation for building your desktop experience...
Encoding=UTF-8
[X-GNOME-Metatheme]
GtkTheme=cathexis
MetacityTheme=cathexis
IconTheme=clarity
CursorTheme=DMZ-White
ButtonLayout=close,minimize,maximize:

View File

@ -0,0 +1,4 @@
#define bullet_width 5
#define bullet_height 5
static unsigned char bullet_bits[] = {
0x01, 0x05, 0x15, 0x05, 0x01 };

View File

@ -0,0 +1,4 @@
#define bullet_width 5
#define bullet_height 7
static unsigned char bullet_bits[] = {
0x00, 0x02, 0x04, 0x08, 0x04, 0x02, 0x00 };

View File

@ -0,0 +1,4 @@
#define bullet_small_width 6
#define bullet_small_height 6
static unsigned char bullet_small_bits[] = {
0x00, 0x00, 0x08, 0x18, 0x18, 0x08 };

View File

@ -0,0 +1,4 @@
#define close_width 6
#define close_height 6
static unsigned char close_bits[] = {
0x33, 0x33, 0x00, 0x00, 0x33, 0x33 };

View File

@ -0,0 +1,4 @@
#define desk_width 6
#define desk_height 6
static unsigned char desk_bits[] = {
0x00, 0x00, 0x30, 0x3e, 0x30, 0x00 };

View File

@ -0,0 +1,4 @@
#define desk_toggled_width 6
#define desk_toggled_height 6
static unsigned char desk_toggled_bits[] = {
0x00, 0x00, 0x38, 0x28, 0x38, 0x00 };

View File

@ -0,0 +1,4 @@
#define iconify_width 6
#define iconify_height 6
static unsigned char iconify_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x03, 0x03 };

View File

@ -0,0 +1,4 @@
#define max_width 6
#define max_height 6
static unsigned char max_bits[] = {
0x33, 0x33, 0x00, 0x00, 0x30, 0x30 };

View File

@ -0,0 +1,4 @@
#define max_toggled_width 6
#define max_toggled_height 6
static unsigned char max_toggled_bits[] = {
0x03, 0x03, 0x00, 0x00, 0x33, 0x33 };

View File

@ -0,0 +1,4 @@
#define shade_width 6
#define shade_height 6
static unsigned char shade_bits[] = {
0x33, 0x33, 0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,4 @@
#define shade_toggled_width 6
#define shade_toggled_height 6
static unsigned char shade_toggled_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x33, 0x33 };

View File

@ -0,0 +1,197 @@
!!------------------------------------------------------------------------
!! OpenBox Theme : CathexiS
!! Author : Samir Kahvedžić <http://samirkahvedzic.deviantart.com>
!! Web : http://samirkahvedzic.deviantart.com
!!------------------------------------------------------------------------
!! MENU SETTINGS
!!------------------------------------------------------------------------
!! menu title
menu.title.bg: Flat Solid
menu.title.bg.color: #111111
menu.title.text.color: #656565
menu.title.text.justify: Left
menu.border.width: 14
menu.border.color: #111111
menu.overlap.x: -18
menu.overlap.y: 0
!!------------------------------------------------------------------------
!! menu items
menu.items.bg: Flat Solid
menu.items.bg.color: #111111
menu.items.text.color: #666666
menu.items.justify: left
menu.items.disabled.text.color: #ffffff
menu.items.active.bg: Flat Vertical
menu.items.active.bg.color: #111111
menu.items.active.text.color: #B7CE42
!!------------------------------------------------------------------------
!! menu separator
menu.separator.width: 1
menu.separator.padding.width: 4
menu.separator.padding.height: 4
menu.separator.color: #222222
!!------------------------------------------------------------------------
!! WINDOW SETTINGS
!!------------------------------------------------------------------------
!! window title
window.active.title.bg: Flat Vertical
window.active.title.bg.color: #111111
window.inactive.title.bg: Flat Vertical
window.inactive.title.bg.color: #111111
!!------------------------------------------------------------------------
!! window text
padding.width: 4
padding.height: 0
window.label.text.justify: left
window.active.label.bg: Parentrelative
window.active.label.bg.color: #111111
window.active.label.bg.colorTo: #111111
window.active.label.text.color: #B7CE42
window.inactive.label.bg: Parentrelative
window.inactive.label.bg.color: #111111
window.inactive.label.bg.colorTo: #111111
window.inactive.label.text.color: #222222
!!------------------------------------------------------------------------
!! window borders
border.width: 4
border.color: #222222
window.active.border.color: #111111
window.inactive.border.color: #111111
window.client.padding.width: 0
window.client.padding.height: 0
window.active.client.color: #222222
window.inactive.client.color: #222222
window.active.title.separator.color: #111111
window.inactive.title.separator.color: #111111
!!------------------------------------------------------------------------
!! window handle and grip
window.handle.width: 0
window.active.handle.bg: Flat Vertical
window.active.handle.bg.color: #222222
window.active.grip.bg: Flat Vertical
window.active.grip.bg.color: #222222
window.inactive.handle.bg: Flat Vertical
window.inactive.handle.bg.color: #222222
window.inactive.grip.bg: Flat Vertical
window.inactive.grip.bg.color: #222222
!!------------------------------------------------------------------------
!! WINDOW BUTTONS
!!------------------------------------------------------------------------
!! ACTIVE
window.active.button.unpressed.bg: Flat Vertical
window.active.button.unpressed.bg.color: #111111
window.active.button.unpressed.image.color: #666666
window.active.button.pressed.bg: Flat Vertical
window.active.button.pressed.bg.color: #222222
window.active.button.pressed.image.color: #656565
window.active.button.disabled.bg: Flat Vertical
window.active.button.disabled.bg.color: #111111
window.active.button.disabled.image.color: #333333
window.active.button.hover.bg: Flat Vertical
window.active.button.hover.bg.color: #151515
window.active.button.hover.bg.colorTo: #151515
window.active.button.hover.image.color: #cdff00
window.active.button.toggled.bg: Flat Vertical
window.active.button.toggled.bg.color: #222222
window.active.button.toggled.image.color: #656565
!!------------------------------------------------------------------------
!! INACTIVE
window.inactive.button.unpressed.bg: Flat Vertical
window.inactive.button.unpressed.bg.color: #111111
window.inactive.button.unpressed.image.color: #111111
window.inactive.button.pressed.bg: Flat Vertical
window.inactive.button.pressed.bg.color: #222222
window.inactive.button.pressed.image.color: #222222
window.inactive.button.disabled.bg: Flat Vertical
window.inactive.button.disabled.bg.color: #111111
window.inactive.button.disabled.image.color: #222222
window.inactive.button.hover.bg: Flat Vertical
window.inactive.button.hover.bg.color: #222222
window.inactive.button.hover.bg.colorTo: #222222
window.inactive.button.hover.image.color: #656565
window.inactive.button.toggled.bg: Flat Vertical
window.inactive.button.toggled.bg.color: #222222
window.inactive.button.toggled.image.color: #222222
!!------------------------------------------------------------------------
!! OSD SETTINGS
osd.hilight.bg: flat
osd.hilight.bg.color: #356AA0
osd.unhilight.bg: flat
osd.unhilight.bg.color: #E04613
osd.border.width: 20
osd.border.color: #111111
osd.label.text.color #656565
### Fonts
window.active.label.text.font:shadow=y:shadowtint=0:shadowoffset=0
window.inactive.label.text.font:shadow=y:shadowtint=0:shadowoffset=0
menu.items.font:
menu.title.text.font:shadow=y:shadowtint=0

View File

@ -0,0 +1,489 @@
" Tomorrow Night Bright - Full Colour and 256 Colour
" http://chriskempson.com
"
" Hex colour conversion functions borrowed from the theme "Desert256""
" Default GUI Colours
let s:foreground = "eaeaea"
let s:background = "000000"
let s:selection = "424242"
let s:line = "2a2a2a"
let s:comment = "969896"
let s:red = "d54e53"
let s:orange = "e78c45"
let s:yellow = "e7c547"
let s:green = "b9ca4a"
let s:aqua = "70c0b1"
let s:blue = "7aa6da"
let s:purple = "c397d8"
let s:window = "4d5057"
hi clear
syntax reset
let g:colors_name = "Tomorrow-Night-Bright"
if has("gui_running") || &t_Co == 88 || &t_Co == 256
" Returns an approximate grey index for the given grey level
fun <SID>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 <SID>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 <SID>grey_colour(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 colour index for the given colour level
fun <SID>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 colour level for the given colour index
fun <SID>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 colour indices
fun <SID>rgb_colour(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 colour levels
fun <SID>colour(r, g, b)
" Get the closest grey
let l:gx = <SID>grey_number(a:r)
let l:gy = <SID>grey_number(a:g)
let l:gz = <SID>grey_number(a:b)
" Get the closest colour
let l:x = <SID>rgb_number(a:r)
let l:y = <SID>rgb_number(a:g)
let l:z = <SID>rgb_number(a:b)
if l:gx == l:gy && l:gy == l:gz
" There are two possibilities
let l:dgr = <SID>grey_level(l:gx) - a:r
let l:dgg = <SID>grey_level(l:gy) - a:g
let l:dgb = <SID>grey_level(l:gz) - a:b
let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb)
let l:dr = <SID>rgb_level(l:gx) - a:r
let l:dg = <SID>rgb_level(l:gy) - a:g
let l:db = <SID>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 <SID>grey_colour(l:gx)
else
" Use the colour
return <SID>rgb_colour(l:x, l:y, l:z)
endif
else
" Only one possibility
return <SID>rgb_colour(l:x, l:y, l:z)
endif
endfun
" Returns the palette index to approximate the 'rrggbb' hex string
fun <SID>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 <SID>colour(l:r, l:g, l:b)
endfun
" Sets the highlighting for the given group
fun <SID>X(group, fg, bg, attr)
if a:fg != ""
exec "hi " . a:group . " guifg=#" . a:fg . " ctermfg=" . <SID>rgb(a:fg)
endif
if a:bg != ""
exec "hi " . a:group . " guibg=#" . a:bg . " ctermbg=" . <SID>rgb(a:bg)
endif
if a:attr != ""
exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr
endif
endfun
" Vim Highlighting
call <SID>X("Normal", s:foreground, s:background, "")
call <SID>X("LineNr", s:selection, "", "")
call <SID>X("NonText", s:selection, "", "")
call <SID>X("SpecialKey", s:selection, "", "")
call <SID>X("Search", s:background, s:yellow, "")
call <SID>X("TabLine", s:window, s:foreground, "reverse")
call <SID>X("TabLineFill", s:window, s:foreground, "reverse")
call <SID>X("StatusLine", s:window, s:yellow, "reverse")
call <SID>X("StatusLineNC", s:window, s:foreground, "reverse")
call <SID>X("VertSplit", s:window, s:window, "none")
call <SID>X("Visual", "", s:selection, "")
call <SID>X("Directory", s:blue, "", "")
call <SID>X("ModeMsg", s:green, "", "")
call <SID>X("MoreMsg", s:green, "", "")
call <SID>X("Question", s:green, "", "")
call <SID>X("WarningMsg", s:red, "", "")
call <SID>X("MatchParen", "", s:selection, "")
call <SID>X("Folded", s:comment, s:background, "")
call <SID>X("FoldColumn", "", s:background, "")
if version >= 700
call <SID>X("CursorLine", "", s:line, "none")
call <SID>X("CursorColumn", "", s:line, "none")
call <SID>X("PMenu", s:foreground, s:selection, "none")
call <SID>X("PMenuSel", s:foreground, s:selection, "reverse")
call <SID>X("SignColumn", "", s:background, "none")
end
if version >= 703
call <SID>X("ColorColumn", "", s:line, "none")
end
" Standard Highlighting
call <SID>X("Comment", s:comment, "", "")
call <SID>X("Todo", s:comment, s:background, "")
call <SID>X("Title", s:comment, "", "")
call <SID>X("Identifier", s:red, "", "none")
call <SID>X("Statement", s:foreground, "", "")
call <SID>X("Conditional", s:foreground, "", "")
call <SID>X("Repeat", s:foreground, "", "")
call <SID>X("Structure", s:purple, "", "")
call <SID>X("Function", s:blue, "", "")
call <SID>X("Constant", s:orange, "", "")
call <SID>X("Keyword", s:orange, "", "")
call <SID>X("String", s:green, "", "")
call <SID>X("Special", s:foreground, "", "")
call <SID>X("PreProc", s:purple, "", "")
call <SID>X("Operator", s:aqua, "", "none")
call <SID>X("Type", s:blue, "", "none")
call <SID>X("Define", s:purple, "", "none")
call <SID>X("Include", s:blue, "", "")
"call <SID>X("Ignore", "666666", "", "")
" Vim Highlighting
call <SID>X("vimCommand", s:red, "", "none")
" C Highlighting
call <SID>X("cType", s:yellow, "", "")
call <SID>X("cStorageClass", s:purple, "", "")
call <SID>X("cConditional", s:purple, "", "")
call <SID>X("cRepeat", s:purple, "", "")
" PHP Highlighting
call <SID>X("phpVarSelector", s:red, "", "")
call <SID>X("phpKeyword", s:purple, "", "")
call <SID>X("phpRepeat", s:purple, "", "")
call <SID>X("phpConditional", s:purple, "", "")
call <SID>X("phpStatement", s:purple, "", "")
call <SID>X("phpMemberSelector", s:foreground, "", "")
" Ruby Highlighting
call <SID>X("rubySymbol", s:green, "", "")
call <SID>X("rubyConstant", s:yellow, "", "")
call <SID>X("rubyAccess", s:yellow, "", "")
call <SID>X("rubyAttribute", s:blue, "", "")
call <SID>X("rubyInclude", s:blue, "", "")
call <SID>X("rubyLocalVariableOrMethod", s:orange, "", "")
call <SID>X("rubyCurlyBlock", s:orange, "", "")
call <SID>X("rubyStringDelimiter", s:green, "", "")
call <SID>X("rubyInterpolationDelimiter", s:orange, "", "")
call <SID>X("rubyConditional", s:purple, "", "")
call <SID>X("rubyRepeat", s:purple, "", "")
call <SID>X("rubyControl", s:purple, "", "")
call <SID>X("rubyException", s:purple, "", "")
" Crystal Highlighting
call <SID>X("crystalSymbol", s:green, "", "")
call <SID>X("crystalConstant", s:yellow, "", "")
call <SID>X("crystalAccess", s:yellow, "", "")
call <SID>X("crystalAttribute", s:blue, "", "")
call <SID>X("crystalInclude", s:blue, "", "")
call <SID>X("crystalLocalVariableOrMethod", s:orange, "", "")
call <SID>X("crystalCurlyBlock", s:orange, "", "")
call <SID>X("crystalStringDelimiter", s:green, "", "")
call <SID>X("crystalInterpolationDelimiter", s:orange, "", "")
call <SID>X("crystalConditional", s:purple, "", "")
call <SID>X("crystalRepeat", s:purple, "", "")
call <SID>X("crystalControl", s:purple, "", "")
call <SID>X("crystalException", s:purple, "", "")
" Python Highlighting
call <SID>X("pythonInclude", s:purple, "", "")
call <SID>X("pythonStatement", s:purple, "", "")
call <SID>X("pythonConditional", s:purple, "", "")
call <SID>X("pythonRepeat", s:purple, "", "")
call <SID>X("pythonException", s:purple, "", "")
call <SID>X("pythonFunction", s:blue, "", "")
call <SID>X("pythonPreCondit", s:purple, "", "")
call <SID>X("pythonRepeat", s:aqua, "", "")
call <SID>X("pythonExClass", s:orange, "", "")
" JavaScript Highlighting
call <SID>X("javaScriptBraces", s:foreground, "", "")
call <SID>X("javaScriptFunction", s:purple, "", "")
call <SID>X("javaScriptConditional", s:purple, "", "")
call <SID>X("javaScriptRepeat", s:purple, "", "")
call <SID>X("javaScriptNumber", s:orange, "", "")
call <SID>X("javaScriptMember", s:orange, "", "")
call <SID>X("javascriptNull", s:orange, "", "")
call <SID>X("javascriptGlobal", s:blue, "", "")
call <SID>X("javascriptStatement", s:red, "", "")
" CoffeeScript Highlighting
call <SID>X("coffeeRepeat", s:purple, "", "")
call <SID>X("coffeeConditional", s:purple, "", "")
call <SID>X("coffeeKeyword", s:purple, "", "")
call <SID>X("coffeeObject", s:yellow, "", "")
" HTML Highlighting
call <SID>X("htmlTag", s:red, "", "")
call <SID>X("htmlTagName", s:red, "", "")
call <SID>X("htmlArg", s:red, "", "")
call <SID>X("htmlScriptTag", s:red, "", "")
" Diff Highlighting
call <SID>X("diffAdd", "", "4c4e39", "")
call <SID>X("diffDelete", s:background, s:red, "")
call <SID>X("diffChange", "", "2B5B77", "")
call <SID>X("diffText", s:line, s:blue, "")
" ShowMarks Highlighting
call <SID>X("ShowMarksHLl", s:orange, s:background, "none")
call <SID>X("ShowMarksHLo", s:purple, s:background, "none")
call <SID>X("ShowMarksHLu", s:yellow, s:background, "none")
call <SID>X("ShowMarksHLm", s:aqua, s:background, "none")
" Lua Highlighting
call <SID>X("luaStatement", s:purple, "", "")
call <SID>X("luaRepeat", s:purple, "", "")
call <SID>X("luaCondStart", s:purple, "", "")
call <SID>X("luaCondElseif", s:purple, "", "")
call <SID>X("luaCond", s:purple, "", "")
call <SID>X("luaCondEnd", s:purple, "", "")
" Cucumber Highlighting
call <SID>X("cucumberGiven", s:blue, "", "")
call <SID>X("cucumberGivenAnd", s:blue, "", "")
" Go Highlighting
call <SID>X("goDirective", s:purple, "", "")
call <SID>X("goDeclaration", s:purple, "", "")
call <SID>X("goStatement", s:purple, "", "")
call <SID>X("goConditional", s:purple, "", "")
call <SID>X("goConstants", s:orange, "", "")
call <SID>X("goTodo", s:yellow, "", "")
call <SID>X("goDeclType", s:blue, "", "")
call <SID>X("goBuiltins", s:purple, "", "")
call <SID>X("goRepeat", s:purple, "", "")
call <SID>X("goLabel", s:purple, "", "")
" Clojure Highlighting
call <SID>X("clojureConstant", s:orange, "", "")
call <SID>X("clojureBoolean", s:orange, "", "")
call <SID>X("clojureCharacter", s:orange, "", "")
call <SID>X("clojureKeyword", s:green, "", "")
call <SID>X("clojureNumber", s:orange, "", "")
call <SID>X("clojureString", s:green, "", "")
call <SID>X("clojureRegexp", s:green, "", "")
call <SID>X("clojureParen", s:aqua, "", "")
call <SID>X("clojureVariable", s:yellow, "", "")
call <SID>X("clojureCond", s:blue, "", "")
call <SID>X("clojureDefine", s:purple, "", "")
call <SID>X("clojureException", s:red, "", "")
call <SID>X("clojureFunc", s:blue, "", "")
call <SID>X("clojureMacro", s:blue, "", "")
call <SID>X("clojureRepeat", s:blue, "", "")
call <SID>X("clojureSpecial", s:purple, "", "")
call <SID>X("clojureQuote", s:blue, "", "")
call <SID>X("clojureUnquote", s:blue, "", "")
call <SID>X("clojureMeta", s:blue, "", "")
call <SID>X("clojureDeref", s:blue, "", "")
call <SID>X("clojureAnonArg", s:blue, "", "")
call <SID>X("clojureRepeat", s:blue, "", "")
call <SID>X("clojureDispatch", s:blue, "", "")
" Scala Highlighting
call <SID>X("scalaKeyword", s:purple, "", "")
call <SID>X("scalaKeywordModifier", s:purple, "", "")
call <SID>X("scalaOperator", s:blue, "", "")
call <SID>X("scalaPackage", s:red, "", "")
call <SID>X("scalaFqn", s:foreground, "", "")
call <SID>X("scalaFqnSet", s:foreground, "", "")
call <SID>X("scalaImport", s:purple, "", "")
call <SID>X("scalaBoolean", s:orange, "", "")
call <SID>X("scalaDef", s:purple, "", "")
call <SID>X("scalaVal", s:purple, "", "")
call <SID>X("scalaVar", s:aqua, "", "")
call <SID>X("scalaClass", s:purple, "", "")
call <SID>X("scalaObject", s:purple, "", "")
call <SID>X("scalaTrait", s:purple, "", "")
call <SID>X("scalaDefName", s:blue, "", "")
call <SID>X("scalaValName", s:foreground, "", "")
call <SID>X("scalaVarName", s:foreground, "", "")
call <SID>X("scalaClassName", s:foreground, "", "")
call <SID>X("scalaType", s:yellow, "", "")
call <SID>X("scalaTypeSpecializer", s:yellow, "", "")
call <SID>X("scalaAnnotation", s:orange, "", "")
call <SID>X("scalaNumber", s:orange, "", "")
call <SID>X("scalaDefSpecializer", s:yellow, "", "")
call <SID>X("scalaClassSpecializer", s:yellow, "", "")
call <SID>X("scalaBackTick", s:green, "", "")
call <SID>X("scalaRoot", s:foreground, "", "")
call <SID>X("scalaMethodCall", s:blue, "", "")
call <SID>X("scalaCaseType", s:yellow, "", "")
call <SID>X("scalaLineComment", s:comment, "", "")
call <SID>X("scalaComment", s:comment, "", "")
call <SID>X("scalaDocComment", s:comment, "", "")
call <SID>X("scalaDocTags", s:comment, "", "")
call <SID>X("scalaEmptyString", s:green, "", "")
call <SID>X("scalaMultiLineString", s:green, "", "")
call <SID>X("scalaUnicode", s:orange, "", "")
call <SID>X("scalaString", s:green, "", "")
call <SID>X("scalaStringEscape", s:green, "", "")
call <SID>X("scalaSymbol", s:orange, "", "")
call <SID>X("scalaChar", s:orange, "", "")
call <SID>X("scalaXml", s:green, "", "")
call <SID>X("scalaConstructorSpecializer", s:yellow, "", "")
call <SID>X("scalaBackTick", s:blue, "", "")
" Git
call <SID>X("diffAdded", s:green, "", "")
call <SID>X("diffRemoved", s:red, "", "")
call <SID>X("gitcommitSummary", "", "", "bold")
" Delete Functions
delf <SID>X
delf <SID>rgb
delf <SID>colour
delf <SID>rgb_colour
delf <SID>rgb_level
delf <SID>rgb_number
delf <SID>grey_colour
delf <SID>grey_level
delf <SID>grey_number
endif
set background=dark

View File

@ -0,0 +1,489 @@
" Tomorrow Night Bright - Full Colour and 256 Colour
" http://chriskempson.com
"
" Hex colour conversion functions borrowed from the theme "Desert256"
" Default GUI Colours
let s:foreground = "eaeaea"
let s:background = "000000"
let s:selection = "424242"
let s:line = "2a2a2a"
let s:comment = "969896"
let s:red = "d54e53"
let s:orange = "e78c45"
let s:yellow = "e7c547"
let s:green = "b9ca4a"
let s:aqua = "70c0b1"
let s:blue = "7aa6da"
let s:purple = "c397d8"
let s:window = "4d5057"
hi clear
syntax reset
let g:colors_name = "Tomorrow-Night-Bright"
if has("gui_running") || &t_Co == 88 || &t_Co == 256
" Returns an approximate grey index for the given grey level
fun <SID>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 <SID>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 <SID>grey_colour(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 colour index for the given colour level
fun <SID>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 colour level for the given colour index
fun <SID>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 colour indices
fun <SID>rgb_colour(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 colour levels
fun <SID>colour(r, g, b)
" Get the closest grey
let l:gx = <SID>grey_number(a:r)
let l:gy = <SID>grey_number(a:g)
let l:gz = <SID>grey_number(a:b)
" Get the closest colour
let l:x = <SID>rgb_number(a:r)
let l:y = <SID>rgb_number(a:g)
let l:z = <SID>rgb_number(a:b)
if l:gx == l:gy && l:gy == l:gz
" There are two possibilities
let l:dgr = <SID>grey_level(l:gx) - a:r
let l:dgg = <SID>grey_level(l:gy) - a:g
let l:dgb = <SID>grey_level(l:gz) - a:b
let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb)
let l:dr = <SID>rgb_level(l:gx) - a:r
let l:dg = <SID>rgb_level(l:gy) - a:g
let l:db = <SID>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 <SID>grey_colour(l:gx)
else
" Use the colour
return <SID>rgb_colour(l:x, l:y, l:z)
endif
else
" Only one possibility
return <SID>rgb_colour(l:x, l:y, l:z)
endif
endfun
" Returns the palette index to approximate the 'rrggbb' hex string
fun <SID>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 <SID>colour(l:r, l:g, l:b)
endfun
" Sets the highlighting for the given group
fun <SID>X(group, fg, bg, attr)
if a:fg != ""
exec "hi " . a:group . " guifg=#" . a:fg . " ctermfg=" . <SID>rgb(a:fg)
endif
if a:bg != ""
exec "hi " . a:group . " guibg=#" . a:bg . " ctermbg=" . <SID>rgb(a:bg)
endif
if a:attr != ""
exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr
endif
endfun
" Vim Highlighting
call <SID>X("Normal", s:foreground, s:background, "")
call <SID>X("LineNr", s:selection, "", "")
call <SID>X("NonText", s:selection, "", "")
call <SID>X("SpecialKey", s:selection, "", "")
call <SID>X("Search", s:background, s:yellow, "")
call <SID>X("TabLine", s:window, s:foreground, "reverse")
call <SID>X("TabLineFill", s:window, s:foreground, "reverse")
call <SID>X("StatusLine", s:window, s:yellow, "reverse")
call <SID>X("StatusLineNC", s:window, s:foreground, "reverse")
call <SID>X("VertSplit", s:window, s:window, "none")
call <SID>X("Visual", "", s:selection, "")
call <SID>X("Directory", s:blue, "", "")
call <SID>X("ModeMsg", s:green, "", "")
call <SID>X("MoreMsg", s:green, "", "")
call <SID>X("Question", s:green, "", "")
call <SID>X("WarningMsg", s:red, "", "")
call <SID>X("MatchParen", "", s:selection, "")
call <SID>X("Folded", s:comment, s:background, "")
call <SID>X("FoldColumn", "", s:background, "")
if version >= 700
call <SID>X("CursorLine", "", s:line, "none")
call <SID>X("CursorColumn", "", s:line, "none")
call <SID>X("PMenu", s:foreground, s:selection, "none")
call <SID>X("PMenuSel", s:foreground, s:selection, "reverse")
call <SID>X("SignColumn", "", s:background, "none")
end
if version >= 703
call <SID>X("ColorColumn", "", s:line, "none")
end
" Standard Highlighting
call <SID>X("Comment", s:comment, "", "")
call <SID>X("Todo", s:comment, s:background, "")
call <SID>X("Title", s:comment, "", "")
call <SID>X("Identifier", s:red, "", "none")
call <SID>X("Statement", s:orange, "", "")
call <SID>X("Conditional", s:aqua, "", "")
call <SID>X("Repeat", s:aqua, "", "")
call <SID>X("Structure", s:purple, "", "")
call <SID>X("Function", s:blue, "", "")
call <SID>X("Constant", s:orange, "", "")
call <SID>X("Keyword", s:orange, "", "")
call <SID>X("String", s:green, "", "")
call <SID>X("Special", s:green, "", "")
call <SID>X("PreProc", s:purple, "", "")
call <SID>X("Operator", s:aqua, "", "none")
call <SID>X("Type", s:blue, "", "none")
call <SID>X("Define", s:purple, "", "none")
call <SID>X("Include", s:blue, "", "")
"call <SID>X("Ignore", "666666", "", "")
" Vim Highlighting
call <SID>X("vimCommand", s:red, "", "none")
" C Highlighting
call <SID>X("cType", s:yellow, "", "")
call <SID>X("cStorageClass", s:purple, "", "")
call <SID>X("cConditional", s:purple, "", "")
call <SID>X("cRepeat", s:purple, "", "")
" PHP Highlighting
call <SID>X("phpVarSelector", s:red, "", "")
call <SID>X("phpKeyword", s:purple, "", "")
call <SID>X("phpRepeat", s:purple, "", "")
call <SID>X("phpConditional", s:purple, "", "")
call <SID>X("phpStatement", s:purple, "", "")
call <SID>X("phpMemberSelector", s:foreground, "", "")
" Ruby Highlighting
call <SID>X("rubySymbol", s:green, "", "")
call <SID>X("rubyConstant", s:yellow, "", "")
call <SID>X("rubyAccess", s:yellow, "", "")
call <SID>X("rubyAttribute", s:blue, "", "")
call <SID>X("rubyInclude", s:blue, "", "")
call <SID>X("rubyLocalVariableOrMethod", s:orange, "", "")
call <SID>X("rubyCurlyBlock", s:orange, "", "")
call <SID>X("rubyStringDelimiter", s:green, "", "")
call <SID>X("rubyInterpolationDelimiter", s:orange, "", "")
call <SID>X("rubyConditional", s:purple, "", "")
call <SID>X("rubyRepeat", s:purple, "", "")
call <SID>X("rubyControl", s:purple, "", "")
call <SID>X("rubyException", s:purple, "", "")
" Crystal Highlighting
call <SID>X("crystalSymbol", s:green, "", "")
call <SID>X("crystalConstant", s:yellow, "", "")
call <SID>X("crystalAccess", s:yellow, "", "")
call <SID>X("crystalAttribute", s:blue, "", "")
call <SID>X("crystalInclude", s:blue, "", "")
call <SID>X("crystalLocalVariableOrMethod", s:orange, "", "")
call <SID>X("crystalCurlyBlock", s:orange, "", "")
call <SID>X("crystalStringDelimiter", s:green, "", "")
call <SID>X("crystalInterpolationDelimiter", s:orange, "", "")
call <SID>X("crystalConditional", s:purple, "", "")
call <SID>X("crystalRepeat", s:purple, "", "")
call <SID>X("crystalControl", s:purple, "", "")
call <SID>X("crystalException", s:purple, "", "")
" Python Highlighting
call <SID>X("pythonInclude", s:purple, "", "")
call <SID>X("pythonStatement", s:purple, "", "")
call <SID>X("pythonConditional", s:purple, "", "")
call <SID>X("pythonRepeat", s:purple, "", "")
call <SID>X("pythonException", s:purple, "", "")
call <SID>X("pythonFunction", s:blue, "", "")
call <SID>X("pythonPreCondit", s:purple, "", "")
call <SID>X("pythonRepeat", s:aqua, "", "")
call <SID>X("pythonExClass", s:orange, "", "")
" JavaScript Highlighting
call <SID>X("javaScriptBraces", s:foreground, "", "")
call <SID>X("javaScriptFunction", s:purple, "", "")
call <SID>X("javaScriptConditional", s:purple, "", "")
call <SID>X("javaScriptRepeat", s:purple, "", "")
call <SID>X("javaScriptNumber", s:orange, "", "")
call <SID>X("javaScriptMember", s:orange, "", "")
call <SID>X("javascriptNull", s:orange, "", "")
call <SID>X("javascriptGlobal", s:blue, "", "")
call <SID>X("javascriptStatement", s:red, "", "")
" CoffeeScript Highlighting
call <SID>X("coffeeRepeat", s:purple, "", "")
call <SID>X("coffeeConditional", s:purple, "", "")
call <SID>X("coffeeKeyword", s:purple, "", "")
call <SID>X("coffeeObject", s:yellow, "", "")
" HTML Highlighting
call <SID>X("htmlTag", s:red, "", "")
call <SID>X("htmlTagName", s:red, "", "")
call <SID>X("htmlArg", s:red, "", "")
call <SID>X("htmlScriptTag", s:red, "", "")
" Diff Highlighting
call <SID>X("diffAdd", "", "4c4e39", "")
call <SID>X("diffDelete", s:background, s:red, "")
call <SID>X("diffChange", "", "2B5B77", "")
call <SID>X("diffText", s:line, s:blue, "")
" ShowMarks Highlighting
call <SID>X("ShowMarksHLl", s:orange, s:background, "none")
call <SID>X("ShowMarksHLo", s:purple, s:background, "none")
call <SID>X("ShowMarksHLu", s:yellow, s:background, "none")
call <SID>X("ShowMarksHLm", s:aqua, s:background, "none")
" Lua Highlighting
call <SID>X("luaStatement", s:purple, "", "")
call <SID>X("luaRepeat", s:purple, "", "")
call <SID>X("luaCondStart", s:purple, "", "")
call <SID>X("luaCondElseif", s:purple, "", "")
call <SID>X("luaCond", s:purple, "", "")
call <SID>X("luaCondEnd", s:purple, "", "")
" Cucumber Highlighting
call <SID>X("cucumberGiven", s:blue, "", "")
call <SID>X("cucumberGivenAnd", s:blue, "", "")
" Go Highlighting
call <SID>X("goDirective", s:purple, "", "")
call <SID>X("goDeclaration", s:purple, "", "")
call <SID>X("goStatement", s:purple, "", "")
call <SID>X("goConditional", s:purple, "", "")
call <SID>X("goConstants", s:orange, "", "")
call <SID>X("goTodo", s:yellow, "", "")
call <SID>X("goDeclType", s:blue, "", "")
call <SID>X("goBuiltins", s:purple, "", "")
call <SID>X("goRepeat", s:purple, "", "")
call <SID>X("goLabel", s:purple, "", "")
" Clojure Highlighting
call <SID>X("clojureConstant", s:orange, "", "")
call <SID>X("clojureBoolean", s:orange, "", "")
call <SID>X("clojureCharacter", s:orange, "", "")
call <SID>X("clojureKeyword", s:green, "", "")
call <SID>X("clojureNumber", s:orange, "", "")
call <SID>X("clojureString", s:green, "", "")
call <SID>X("clojureRegexp", s:green, "", "")
call <SID>X("clojureParen", s:aqua, "", "")
call <SID>X("clojureVariable", s:yellow, "", "")
call <SID>X("clojureCond", s:blue, "", "")
call <SID>X("clojureDefine", s:purple, "", "")
call <SID>X("clojureException", s:red, "", "")
call <SID>X("clojureFunc", s:blue, "", "")
call <SID>X("clojureMacro", s:blue, "", "")
call <SID>X("clojureRepeat", s:blue, "", "")
call <SID>X("clojureSpecial", s:purple, "", "")
call <SID>X("clojureQuote", s:blue, "", "")
call <SID>X("clojureUnquote", s:blue, "", "")
call <SID>X("clojureMeta", s:blue, "", "")
call <SID>X("clojureDeref", s:blue, "", "")
call <SID>X("clojureAnonArg", s:blue, "", "")
call <SID>X("clojureRepeat", s:blue, "", "")
call <SID>X("clojureDispatch", s:blue, "", "")
" Scala Highlighting
call <SID>X("scalaKeyword", s:purple, "", "")
call <SID>X("scalaKeywordModifier", s:purple, "", "")
call <SID>X("scalaOperator", s:blue, "", "")
call <SID>X("scalaPackage", s:red, "", "")
call <SID>X("scalaFqn", s:foreground, "", "")
call <SID>X("scalaFqnSet", s:foreground, "", "")
call <SID>X("scalaImport", s:purple, "", "")
call <SID>X("scalaBoolean", s:orange, "", "")
call <SID>X("scalaDef", s:purple, "", "")
call <SID>X("scalaVal", s:purple, "", "")
call <SID>X("scalaVar", s:aqua, "", "")
call <SID>X("scalaClass", s:purple, "", "")
call <SID>X("scalaObject", s:purple, "", "")
call <SID>X("scalaTrait", s:purple, "", "")
call <SID>X("scalaDefName", s:blue, "", "")
call <SID>X("scalaValName", s:foreground, "", "")
call <SID>X("scalaVarName", s:foreground, "", "")
call <SID>X("scalaClassName", s:foreground, "", "")
call <SID>X("scalaType", s:yellow, "", "")
call <SID>X("scalaTypeSpecializer", s:yellow, "", "")
call <SID>X("scalaAnnotation", s:orange, "", "")
call <SID>X("scalaNumber", s:orange, "", "")
call <SID>X("scalaDefSpecializer", s:yellow, "", "")
call <SID>X("scalaClassSpecializer", s:yellow, "", "")
call <SID>X("scalaBackTick", s:green, "", "")
call <SID>X("scalaRoot", s:foreground, "", "")
call <SID>X("scalaMethodCall", s:blue, "", "")
call <SID>X("scalaCaseType", s:yellow, "", "")
call <SID>X("scalaLineComment", s:comment, "", "")
call <SID>X("scalaComment", s:comment, "", "")
call <SID>X("scalaDocComment", s:comment, "", "")
call <SID>X("scalaDocTags", s:comment, "", "")
call <SID>X("scalaEmptyString", s:green, "", "")
call <SID>X("scalaMultiLineString", s:green, "", "")
call <SID>X("scalaUnicode", s:orange, "", "")
call <SID>X("scalaString", s:green, "", "")
call <SID>X("scalaStringEscape", s:green, "", "")
call <SID>X("scalaSymbol", s:orange, "", "")
call <SID>X("scalaChar", s:orange, "", "")
call <SID>X("scalaXml", s:green, "", "")
call <SID>X("scalaConstructorSpecializer", s:yellow, "", "")
call <SID>X("scalaBackTick", s:blue, "", "")
" Git
call <SID>X("diffAdded", s:green, "", "")
call <SID>X("diffRemoved", s:red, "", "")
call <SID>X("gitcommitSummary", "", "", "bold")
" Delete Functions
delf <SID>X
delf <SID>rgb
delf <SID>colour
delf <SID>rgb_colour
delf <SID>rgb_level
delf <SID>rgb_number
delf <SID>grey_colour
delf <SID>grey_level
delf <SID>grey_number
endif
set background=dark

View File

@ -0,0 +1,492 @@
" Tomorrow Night Eighties - Full Colour and 256 Colour
" http://chriskempson.com
"
" Hex colour conversion functions borrowed from the theme "Desert256""
" Default GUI Colours
let s:foreground = "cccccc"
let s:background = ""
"let s:background = "2d2d2d"
let s:selection = "7f7f7f"
"let s:selection = "515151"
let s:linenr = "7f7f7f"
let s:line = "393939"
let s:comment = "999999"
let s:red = "f27777"
let s:orange = "f99157"
let s:yellow = "ffcc66"
let s:green = "99cc99"
let s:aqua = "66cccc"
let s:blue = "6699cc"
let s:purple = "cc99cc"
let s:window = "4d5057"
hi clear
syntax reset
let g:colors_name = "Tomorrow-Night-Eighties"
if has("gui_running") || &t_Co == 88 || &t_Co == 256
" Returns an approximate grey index for the given grey level
fun <SID>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 <SID>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 <SID>grey_colour(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 colour index for the given colour level
fun <SID>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 colour level for the given colour index
fun <SID>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 colour indices
fun <SID>rgb_colour(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 colour levels
fun <SID>colour(r, g, b)
" Get the closest grey
let l:gx = <SID>grey_number(a:r)
let l:gy = <SID>grey_number(a:g)
let l:gz = <SID>grey_number(a:b)
" Get the closest colour
let l:x = <SID>rgb_number(a:r)
let l:y = <SID>rgb_number(a:g)
let l:z = <SID>rgb_number(a:b)
if l:gx == l:gy && l:gy == l:gz
" There are two possibilities
let l:dgr = <SID>grey_level(l:gx) - a:r
let l:dgg = <SID>grey_level(l:gy) - a:g
let l:dgb = <SID>grey_level(l:gz) - a:b
let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb)
let l:dr = <SID>rgb_level(l:gx) - a:r
let l:dg = <SID>rgb_level(l:gy) - a:g
let l:db = <SID>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 <SID>grey_colour(l:gx)
else
" Use the colour
return <SID>rgb_colour(l:x, l:y, l:z)
endif
else
" Only one possibility
return <SID>rgb_colour(l:x, l:y, l:z)
endif
endfun
" Returns the palette index to approximate the 'rrggbb' hex string
fun <SID>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 <SID>colour(l:r, l:g, l:b)
endfun
" Sets the highlighting for the given group
fun <SID>X(group, fg, bg, attr)
if a:fg != ""
exec "hi " . a:group . " guifg=#" . a:fg . " ctermfg=" . <SID>rgb(a:fg)
endif
if a:bg != ""
exec "hi " . a:group . " guibg=#" . a:bg . " ctermbg=" . <SID>rgb(a:bg)
endif
if a:attr != ""
exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr
endif
endfun
" Vim Highlighting
call <SID>X("Normal", s:foreground, s:background, "")
call <SID>X("LineNr", s:linenr, "", "")
call <SID>X("NonText", s:selection, "", "")
call <SID>X("SpecialKey", s:selection, "", "")
call <SID>X("Search", s:background, s:yellow, "")
call <SID>X("TabLine", s:window, s:foreground, "reverse")
call <SID>X("TabLineFill", s:window, s:foreground, "reverse")
call <SID>X("StatusLine", s:window, s:yellow, "reverse")
call <SID>X("StatusLineNC", s:window, s:foreground, "reverse")
call <SID>X("VertSplit", s:window, s:window, "none")
call <SID>X("Visual", "", s:selection, "")
call <SID>X("Directory", s:blue, "", "")
call <SID>X("ModeMsg", s:green, "", "")
call <SID>X("MoreMsg", s:green, "", "")
call <SID>X("Question", s:green, "", "")
call <SID>X("WarningMsg", s:red, "", "")
call <SID>X("MatchParen", "", s:selection, "")
call <SID>X("Folded", s:comment, s:background, "")
call <SID>X("FoldColumn", "", s:background, "")
if version >= 700
call <SID>X("CursorLine", "", s:line, "none")
call <SID>X("CursorColumn", "", s:line, "none")
call <SID>X("PMenu", s:foreground, s:selection, "none")
call <SID>X("PMenuSel", s:foreground, s:selection, "reverse")
call <SID>X("SignColumn", "", s:background, "none")
end
if version >= 703
call <SID>X("ColorColumn", "", s:line, "none")
end
" Standard Highlighting
call <SID>X("Comment", s:comment, "", "")
call <SID>X("Todo", s:comment, s:background, "")
call <SID>X("Title", s:comment, "", "")
call <SID>X("Identifier", s:red, "", "none")
call <SID>X("Statement", s:orange, "", "")
call <SID>X("Conditional", s:aqua, "", "")
call <SID>X("Repeat", s:aqua, "", "")
call <SID>X("Structure", s:purple, "", "")
call <SID>X("Function", s:blue, "", "")
call <SID>X("Constant", s:orange, "", "")
call <SID>X("Keyword", s:orange, "", "")
call <SID>X("String", s:green, "", "")
call <SID>X("Special", s:green, "", "")
call <SID>X("PreProc", s:purple, "", "")
call <SID>X("Operator", s:aqua, "", "none")
call <SID>X("Type", s:blue, "", "none")
call <SID>X("Define", s:purple, "", "none")
call <SID>X("Include", s:blue, "", "")
"call <SID>X("Ignore", "666666", "", "")
" Vim Highlighting
call <SID>X("vimCommand", s:red, "", "none")
" C Highlighting
call <SID>X("cType", s:yellow, "", "")
call <SID>X("cStorageClass", s:purple, "", "")
call <SID>X("cConditional", s:purple, "", "")
call <SID>X("cRepeat", s:purple, "", "")
" PHP Highlighting
call <SID>X("phpVarSelector", s:red, "", "")
call <SID>X("phpKeyword", s:purple, "", "")
call <SID>X("phpRepeat", s:purple, "", "")
call <SID>X("phpConditional", s:purple, "", "")
call <SID>X("phpStatement", s:purple, "", "")
call <SID>X("phpMemberSelector", s:foreground, "", "")
" Ruby Highlighting
call <SID>X("rubySymbol", s:green, "", "")
call <SID>X("rubyConstant", s:yellow, "", "")
call <SID>X("rubyAccess", s:yellow, "", "")
call <SID>X("rubyAttribute", s:blue, "", "")
call <SID>X("rubyInclude", s:blue, "", "")
call <SID>X("rubyLocalVariableOrMethod", s:orange, "", "")
call <SID>X("rubyCurlyBlock", s:orange, "", "")
call <SID>X("rubyStringDelimiter", s:green, "", "")
call <SID>X("rubyInterpolationDelimiter", s:orange, "", "")
call <SID>X("rubyConditional", s:purple, "", "")
call <SID>X("rubyRepeat", s:purple, "", "")
call <SID>X("rubyControl", s:purple, "", "")
call <SID>X("rubyException", s:purple, "", "")
" Crystal Highlighting
call <SID>X("crystalSymbol", s:green, "", "")
call <SID>X("crystalConstant", s:yellow, "", "")
call <SID>X("crystalAccess", s:yellow, "", "")
call <SID>X("crystalAttribute", s:blue, "", "")
call <SID>X("crystalInclude", s:blue, "", "")
call <SID>X("crystalLocalVariableOrMethod", s:orange, "", "")
call <SID>X("crystalCurlyBlock", s:orange, "", "")
call <SID>X("crystalStringDelimiter", s:green, "", "")
call <SID>X("crystalInterpolationDelimiter", s:orange, "", "")
call <SID>X("crystalConditional", s:purple, "", "")
call <SID>X("crystalRepeat", s:purple, "", "")
call <SID>X("crystalControl", s:purple, "", "")
call <SID>X("crystalException", s:purple, "", "")
" Python Highlighting
call <SID>X("pythonInclude", s:purple, "", "")
call <SID>X("pythonStatement", s:purple, "", "")
call <SID>X("pythonConditional", s:purple, "", "")
call <SID>X("pythonRepeat", s:purple, "", "")
call <SID>X("pythonException", s:purple, "", "")
call <SID>X("pythonFunction", s:blue, "", "")
call <SID>X("pythonPreCondit", s:purple, "", "")
call <SID>X("pythonRepeat", s:aqua, "", "")
call <SID>X("pythonExClass", s:orange, "", "")
" JavaScript Highlighting
call <SID>X("javaScriptBraces", s:foreground, "", "")
call <SID>X("javaScriptFunction", s:purple, "", "")
call <SID>X("javaScriptConditional", s:purple, "", "")
call <SID>X("javaScriptRepeat", s:purple, "", "")
call <SID>X("javaScriptNumber", s:orange, "", "")
call <SID>X("javaScriptMember", s:orange, "", "")
call <SID>X("javascriptNull", s:orange, "", "")
call <SID>X("javascriptGlobal", s:blue, "", "")
call <SID>X("javascriptStatement", s:red, "", "")
" CoffeeScript Highlighting
call <SID>X("coffeeRepeat", s:purple, "", "")
call <SID>X("coffeeConditional", s:purple, "", "")
call <SID>X("coffeeKeyword", s:purple, "", "")
call <SID>X("coffeeObject", s:yellow, "", "")
" HTML Highlighting
call <SID>X("htmlTag", s:red, "", "")
call <SID>X("htmlTagName", s:red, "", "")
call <SID>X("htmlArg", s:red, "", "")
call <SID>X("htmlScriptTag", s:red, "", "")
" Diff Highlighting
call <SID>X("diffAdd", "", "4c4e39", "")
call <SID>X("diffDelete", s:background, s:red, "")
call <SID>X("diffChange", "", "2B5B77", "")
call <SID>X("diffText", s:line, s:blue, "")
" ShowMarks Highlighting
call <SID>X("ShowMarksHLl", s:orange, s:background, "none")
call <SID>X("ShowMarksHLo", s:purple, s:background, "none")
call <SID>X("ShowMarksHLu", s:yellow, s:background, "none")
call <SID>X("ShowMarksHLm", s:aqua, s:background, "none")
" Lua Highlighting
call <SID>X("luaStatement", s:purple, "", "")
call <SID>X("luaRepeat", s:purple, "", "")
call <SID>X("luaCondStart", s:purple, "", "")
call <SID>X("luaCondElseif", s:purple, "", "")
call <SID>X("luaCond", s:purple, "", "")
call <SID>X("luaCondEnd", s:purple, "", "")
" Cucumber Highlighting
call <SID>X("cucumberGiven", s:blue, "", "")
call <SID>X("cucumberGivenAnd", s:blue, "", "")
" Go Highlighting
call <SID>X("goDirective", s:purple, "", "")
call <SID>X("goDeclaration", s:purple, "", "")
call <SID>X("goStatement", s:purple, "", "")
call <SID>X("goConditional", s:purple, "", "")
call <SID>X("goConstants", s:orange, "", "")
call <SID>X("goTodo", s:yellow, "", "")
call <SID>X("goDeclType", s:blue, "", "")
call <SID>X("goBuiltins", s:purple, "", "")
call <SID>X("goRepeat", s:purple, "", "")
call <SID>X("goLabel", s:purple, "", "")
" Clojure Highlighting
call <SID>X("clojureConstant", s:orange, "", "")
call <SID>X("clojureBoolean", s:orange, "", "")
call <SID>X("clojureCharacter", s:orange, "", "")
call <SID>X("clojureKeyword", s:green, "", "")
call <SID>X("clojureNumber", s:orange, "", "")
call <SID>X("clojureString", s:green, "", "")
call <SID>X("clojureRegexp", s:green, "", "")
call <SID>X("clojureParen", s:aqua, "", "")
call <SID>X("clojureVariable", s:yellow, "", "")
call <SID>X("clojureCond", s:blue, "", "")
call <SID>X("clojureDefine", s:purple, "", "")
call <SID>X("clojureException", s:red, "", "")
call <SID>X("clojureFunc", s:blue, "", "")
call <SID>X("clojureMacro", s:blue, "", "")
call <SID>X("clojureRepeat", s:blue, "", "")
call <SID>X("clojureSpecial", s:purple, "", "")
call <SID>X("clojureQuote", s:blue, "", "")
call <SID>X("clojureUnquote", s:blue, "", "")
call <SID>X("clojureMeta", s:blue, "", "")
call <SID>X("clojureDeref", s:blue, "", "")
call <SID>X("clojureAnonArg", s:blue, "", "")
call <SID>X("clojureRepeat", s:blue, "", "")
call <SID>X("clojureDispatch", s:blue, "", "")
" Scala Highlighting
call <SID>X("scalaKeyword", s:purple, "", "")
call <SID>X("scalaKeywordModifier", s:purple, "", "")
call <SID>X("scalaOperator", s:blue, "", "")
call <SID>X("scalaPackage", s:red, "", "")
call <SID>X("scalaFqn", s:foreground, "", "")
call <SID>X("scalaFqnSet", s:foreground, "", "")
call <SID>X("scalaImport", s:purple, "", "")
call <SID>X("scalaBoolean", s:orange, "", "")
call <SID>X("scalaDef", s:purple, "", "")
call <SID>X("scalaVal", s:purple, "", "")
call <SID>X("scalaVar", s:aqua, "", "")
call <SID>X("scalaClass", s:purple, "", "")
call <SID>X("scalaObject", s:purple, "", "")
call <SID>X("scalaTrait", s:purple, "", "")
call <SID>X("scalaDefName", s:blue, "", "")
call <SID>X("scalaValName", s:foreground, "", "")
call <SID>X("scalaVarName", s:foreground, "", "")
call <SID>X("scalaClassName", s:foreground, "", "")
call <SID>X("scalaType", s:yellow, "", "")
call <SID>X("scalaTypeSpecializer", s:yellow, "", "")
call <SID>X("scalaAnnotation", s:orange, "", "")
call <SID>X("scalaNumber", s:orange, "", "")
call <SID>X("scalaDefSpecializer", s:yellow, "", "")
call <SID>X("scalaClassSpecializer", s:yellow, "", "")
call <SID>X("scalaBackTick", s:green, "", "")
call <SID>X("scalaRoot", s:foreground, "", "")
call <SID>X("scalaMethodCall", s:blue, "", "")
call <SID>X("scalaCaseType", s:yellow, "", "")
call <SID>X("scalaLineComment", s:comment, "", "")
call <SID>X("scalaComment", s:comment, "", "")
call <SID>X("scalaDocComment", s:comment, "", "")
call <SID>X("scalaDocTags", s:comment, "", "")
call <SID>X("scalaEmptyString", s:green, "", "")
call <SID>X("scalaMultiLineString", s:green, "", "")
call <SID>X("scalaUnicode", s:orange, "", "")
call <SID>X("scalaString", s:green, "", "")
call <SID>X("scalaStringEscape", s:green, "", "")
call <SID>X("scalaSymbol", s:orange, "", "")
call <SID>X("scalaChar", s:orange, "", "")
call <SID>X("scalaXml", s:green, "", "")
call <SID>X("scalaConstructorSpecializer", s:yellow, "", "")
call <SID>X("scalaBackTick", s:blue, "", "")
" Git
call <SID>X("diffAdded", s:green, "", "")
call <SID>X("diffRemoved", s:red, "", "")
call <SID>X("gitcommitSummary", "", "", "bold")
" Delete Functions
delf <SID>X
delf <SID>rgb
delf <SID>colour
delf <SID>rgb_colour
delf <SID>rgb_level
delf <SID>rgb_number
delf <SID>grey_colour
delf <SID>grey_level
delf <SID>grey_number
endif
set background=dark

134
vim/vimrc Normal file
View File

@ -0,0 +1,134 @@
" Begin vundle
set nocompatible
syntax on
filetype off
let mapleader = ","
let maplocalleader = "\\"
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'bling/vim-airline'
Plugin 'scrooloose/nerdtree'
Plugin 'mattn/emmet-vim'
Plugin 'kien/ctrlp.vim'
Plugin 'jistr/vim-nerdtree-tabs'
Plugin 'scrooloose/nerdcommenter'
Plugin 'scrooloose/syntastic'
Plugin 'airblade/vim-gitgutter'
Plugin 'majutsushi/tagbar'
Plugin 'hynek/vim-python-pep8-indent'
call vundle#end()
filetype plugin indent on
" indentation and filetype
"set ts=4 sts=4 sw=4 expandtab
"if has("autocmd")
" autocmd FileType python setlocal ts=8 sts=4 sw=4 expandtab
"endif
" plugin options
" airline
let g:airline#extensions#tabline#enabled = 1
let g:airline_theme = 'term'
" NERDTree
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif
"let g:nerdtree_tabs_open_on_console_startup=1
map <C-p> :NERDTreeToggle<CR>
nmap <leader>p :NERDTreeFind<CR>
" Emmet
"let g:user_emmet_leader_key='<C->'
let g:user_emmet_install_global = 0
autocmd FileType html,css EmmetInstall
" CtrlP
let g:ctrlp_map = '<leader>,'
let g:ctrlp_cmd = 'CtrlP'
cal ctrlp#clra()
let g:ctrlp_switch_buffer = 1
nmap <leader>. :CtrlPClearCache<CR>:CtrlP<CR>
" nerdcomment
" invert comment on the current line/selection
nmap <leader>/ :call NERDComment(0, "invert")<cr>
vmap <leader>/ :call NERDComment(0, "invert")<cr>
" syntastic
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
"let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
let b:syntastic_mode = "passive"
nmap gr :SyntasticCheck<CR>
nmap gc :SyntasticReset<CR>
" tagbar
nmap gb :TagbarToggle<CR>
" End vundle
" mouse support
if has('mouse')
set mouse=a
endif
" say no to swapfiles, kids
set noswf
" line numbers
set nu
" permanent statusline
set laststatus=2
" color scheme
colorscheme Tomorrow-Night-Eighties
"set t_Co=8
if &term ==? "xterm-256color" || has("gui_running")
let g:airline_powerline_fonts = 1
else
"colorscheme default
let g:airline_theme="dark"
endif
"set background=dark
" history
set history=250
" CUSTOM BINDINGS
" how could you not
nnoremap ; :
" look up word in Zeal (fixed by copying auscompgeek's)
nnoremap gt :!zeal -style=gtk --query "<cword>" &>/dev/null & <CR><CR>
" save as sudo
cmap w!! w !sudo tee > /dev/null %
" the typical vimbits.com stuff
" keep selection after in/outdent
vnoremap < <gv
vnoremap > >gv
" better navigation of wrapped lines
nnoremap j gj
nnoremap k gk
" increment/decrement
nnoremap + <C-a>
nnoremap - <C-x>
" easy split navigation
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l

43
zsh/alias.zsh Normal file
View File

@ -0,0 +1,43 @@
# Aliases
# Gentoo package management aliases
if [[ -x =emerge ]]; then
alias em='sudo emerge'
alias emu='em -auDN world && em -a --depclean && sudo revdep-rebuild'
alias ems='em --sync'
alias emf='emerge -s '
alias emp='emerge -pv '
alias emup='emerge -pvuDN world'
alias packmask="sudo $EDITOR /etc/portage/package.unmask"
alias packuse="cd /etc/portage/package.use/"
alias packkey="cd /etc/portage/package.accept_keywords/"
fi
# keep safe after hacking gibsons
# there is no other required countermeasure
alias priv='unset HISTFILE'
# the typical ls shortcuts
alias ls=' ls --color=auto'
alias l='ls'
alias la='l -A'
alias ll='l -hl'
alias lal='la -hl'
# for when you want to know what to delete
alias fs=' du -ah --max-depth=1 | sort -h'
# stop the 99% from making history
alias cd=' cd'
alias man=' man'
alias exit=' exit'
# ls on pwd change
function chpwd() {
emulate -L zsh
l
}
# fullscreen framebuffer, dual monitors screw up the autodetect
alias fbfull=' fbset -a -xres 1920 -yres 1080'
# Thesaurus
alias thes=' aiksaurus'

2
zsh/env.zsh Normal file
View File

@ -0,0 +1,2 @@
export LESSHISTFILE="-"
export WINEDLLOVERRIDES="winemenubuilder.exe=d"

55
zsh/functions.zsh Normal file
View File

@ -0,0 +1,55 @@
# Resume vim with C-z
foreground-vi() {
fg %vi
}
zle -N foreground-vi
bindkey '^Z' foreground-vi
# Search full zsh docs
zman() {
PAGER="less -g -s '+/^ "$1"'" man zshall
}
# Prepend sudo
prepend-sudo() {
if [[ "$BUFFER" != su(do|)\ * ]]; then
BUFFER="sudo $BUFFER"
(( CURSOR += 5 ))
fi
}
zle -N prepend-sudo
bindkey '^S' prepend-sudo
sudo-command-line() {
[[ -z $BUFFER ]] && zle up-history
[[ $BUFFER != sudo\ * ]] && BUFFER="sudo ${BUFFER% }"
zle end-of-line
}
zle -N sudo-command-line
bindkey "\e\e" sudo-command-line
# Directory helper - stolen from the Internet
# I don't have a bloody clue how this spaghetti works
# http://chneukirchen.org/blog/category/zsh.html
# `up N` to go up N dirs
# `up fud` to go to nearest dir with 'fud' in name
up() {
local op=print
[[ -t 1 ]] && op=cd
case "$1" in
'') up 1;;
-*|+*) $op ~$1;;
<->) $op $(printf '../%.0s' {1..$1});;
*) local -a seg; seg=(${(s:/:)PWD%/*})
local n=${(j:/:)seg[1,(I)$1*]}
if [[ -n $n ]]; then
$op /$n
else
print -u2 up: could not find prefix $1 in $PWD
return 1
fi
esac
}
zle -N up

66
zsh/prompt.zsh Normal file
View File

@ -0,0 +1,66 @@
# Pure
# by Sindre Sorhus
# https://github.com/sindresorhus/pure
# MIT License
# Change this to your own username
DEFAULT_USERNAME='simon'
# Threshold (sec) for showing cmd exec time
CMD_MAX_EXEC_TIME=5
# For my own and others sanity
# git:
# %b => current branch
# %a => current action (rebase/merge)
# prompt:
# %F => color dict
# %f => reset color
# %~ => current path
# %* => time
# %n => username
# %m => shortname host
# %(?..) => prompt conditional - %(condition.true.false)
autoload -Uz vcs_info
zstyle ':vcs_info:*' enable git # You can add hg too if needed: `git hg`
zstyle ':vcs_info:git*' formats ' %b'
zstyle ':vcs_info:git*' actionformats ' %b|%a'
# Only show username if not default
[ $USER != $DEFAULT_USERNAME ] && local username='%n@%m '
# Fastest possible way to check if repo is dirty
git_dirty() {
git diff --quiet --ignore-submodules HEAD 2>/dev/null; [ $? -eq 1 ] && echo '*'
}
# Displays the exec time of the last command if set threshold was exceeded
cmd_exec_time() {
local stop=`date +%s`
local start=${cmd_timestamp:-$stop}
let local elapsed=$stop-$start
[ $elapsed -gt $CMD_MAX_EXEC_TIME ] && echo ${elapsed}s
}
preexec() {
cmd_timestamp=`date +%s`
}
precmd() {
vcs_info
# Add `%*` to display the time
print -P "\n%B%F{cyan}%~%f%F{green}$vcs_info_msg_0_`git_dirty` $username%f %F{yellow}`cmd_exec_time`%f%b"
# Reset value since `preexec` isn't always triggered
unset cmd_timestamp
}
# Prompt turns red if the previous command didn't exit with 0
PROMPT='%B%(?.%F{green}.%F{red})%(!.#.)%f%b '
#RPROMPT="`battery_charge` %*"
#RPROMPT="%(?.%F{green}.%F{red})%*%f"
#RPROMPT="%*"
# Can be disabled:
# PROMPT='%F{magenta}%f '

103
zshrc Normal file
View File

@ -0,0 +1,103 @@
# sbins are important
export PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin
# automatic starting of X
if [ -z "$DISPLAY" ] && [ $(tty) = /dev/tty1 ]; then
# random foreground color
#fgcolor $(shuf -en 1 \#99cc99 \#ee4499 \#eeaa33 \#4488dd \#55ccdd)
exec startx -- #vt1
fi
# 256-color
if [ -e /usr/share/terminfo/x/xterm-256color ] && [ "$TERM" = "xterm" ]; then
export TERM=xterm-256color
fi
# Prompt options
autoload -U compinit #promptinit
compinit -d $HOME/.tmp/zcompdump; zstyle ':completion:*' menu select
#promptinit; prompt gentoo
. $HOME/.zsh/prompt.zsh
# History options
HISTFILE=$HOME/.zhistory
setopt APPEND_HISTORY
HISTSIZE=12000
SAVEHIST=1000
#setopt EXTENDED_HISTORY
setopt HIST_IGNORE_SPACE
# Directory options
setopt AUTO_CD
setopt AUTO_PUSHD
setopt PUSHD_TO_HOME
setopt PUSHD_IGNORE_DUPS
# create a zkbd compatible hash;
# to add other keys to this hash, see: man 5 terminfo
typeset -A key
key[Home]=${terminfo[khome]}
key[End]=${terminfo[kend]}
key[Insert]=${terminfo[kich1]}
key[Delete]=${terminfo[kdch1]}
key[Up]=${terminfo[kcuu1]}
key[Down]=${terminfo[kcud1]}
key[Left]=${terminfo[kcub1]}
key[Right]=${terminfo[kcuf1]}
key[PageUp]=${terminfo[kpp]}
key[PageDown]=${terminfo[knp]}
# setup key accordingly
[[ -n "${key[Home]}" ]] && bindkey "${key[Home]}" beginning-of-line
[[ -n "${key[End]}" ]] && bindkey "${key[End]}" end-of-line
[[ -n "${key[Insert]}" ]] && bindkey "${key[Insert]}" overwrite-mode
[[ -n "${key[Delete]}" ]] && bindkey "${key[Delete]}" delete-char
[[ -n "${key[Up]}" ]] && bindkey "${key[Up]}" up-line-or-history
[[ -n "${key[Down]}" ]] && bindkey "${key[Down]}" down-line-or-history
[[ -n "${key[Left]}" ]] && bindkey "${key[Left]}" backward-char
[[ -n "${key[Right]}" ]] && bindkey "${key[Right]}" forward-char
# history search with PageUp/PageDown keys
[[ -n "${key[PageUp]}" ]] && bindkey "${key[PageUp]}" history-beginning-search-backward
[[ -n "${key[PageDown]}" ]] && bindkey "${key[PageDown]}" history-beginning-search-forward
# backspace and ^h working even after
# returning from command mode
bindkey '^?' backward-delete-char
bindkey '^h' backward-delete-char
# ctrl-w removed word backwards
bindkey '^w' backward-kill-word
# ctrl-r starts searching history backward
bindkey '^r' history-incremental-search-backward
# insert mode in RPROMPT
function mode_rprompt {
VIM_PROMPT="%B%F{yellow} [% NORMAL]% %f%b"
RPROMPT="${${KEYMAP/vicmd/$VIM_PROMPT}/(main|viins)/}"
zle reset-prompt
}
# make sure the terminal is in application mode when zle is active
# mode_rprompt needs to hook into zle-line-init, so it's here for now
if (( ${+terminfo[smkx]} )) && (( ${+terminfo[rmkx]} )); then
function zle-line-init () {
printf '%s' "${terminfo[smkx]}"
mode_rprompt
}
function zle-keymap-select {
mode_rprompt
}
function zle-line-finish () {
printf '%s' "${terminfo[rmkx]}"
}
zle -N zle-line-init
zle -N zle-keymap-select
zle -N zle-line-finish
fi
# Functions
. $HOME/.zsh/functions.zsh
# Environment
. $HOME/.zsh/env.zsh
# Aliases
. $HOME/.zsh/alias.zsh