initial commit
This commit is contained in:
commit
d0675aa7a6
Xresourcesindex.theme
config
gtkrc-2.0gtkrc-2.0.minethemes/cathexis
gtk-2.0
gtk-3.0
apps
baobab.cssgedit.cssgnome-applications.cssgnome-extras.cssgnome-panel.cssgnome-terminal.cssnautilus.cssunity-greeter.cssunity.css
gtk-main.cssgtk-plane.cssgtk-widgets-assets.cssgtk-widgets-borders.cssgtk-widgets.cssgtk.csssettings.iniopenbox-3
vim
zsh
zshrc
|
@ -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)
|
|
@ -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;
|
|
@ -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
|
|
@ -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"
|
||||
}
|
|
@ -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
|
|
@ -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()
|
|
@ -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
|
|
@ -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"
|
||||
#}
|
||||
#
|
||||
###############################################################################
|
||||
|
|
@ -0,0 +1 @@
|
|||
mpris/mpv.lua
|
|
@ -0,0 +1 @@
|
|||
Subproject commit ad64b6ca61cd7f660e2f54f4ee3cc653b5fe7e48
|
|
@ -0,0 +1 @@
|
|||
Subproject commit cdef26d09aa61d7f1f175675040383f6ae0becbb
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 27530260e98afe1f0064d772003e8c7b0b9867b6
|
|
@ -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, "<", "<")
|
||||
str = string.gsub(str, ">", ">")
|
||||
str = string.gsub(str, "&", "&")
|
||||
str = string.gsub(str, "\"", """)
|
||||
str = string.gsub(str, "'", "'")
|
||||
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)
|
|
@ -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
|
|
@ -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)
|
|
@ -0,0 +1,10 @@
|
|||
[redshift]
|
||||
temp-day=4800
|
||||
temp-night=3400
|
||||
adjustment-method=randr
|
||||
location-provider=manual
|
||||
|
||||
[manual]
|
||||
lat=34
|
||||
lon=151.2
|
||||
|
|
@ -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=
|
|
@ -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"
|
|
@ -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"
|
|
@ -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"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -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"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -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"
|
||||
|
|
@ -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"
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -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"
|
|
@ -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"
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;}
|
|
@ -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;
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
*/
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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
|
@ -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
|
@ -0,0 +1 @@
|
|||
@import url("gtk-main.css");
|
|
@ -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
|
|
@ -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:
|
|
@ -0,0 +1,4 @@
|
|||
#define bullet_width 5
|
||||
#define bullet_height 5
|
||||
static unsigned char bullet_bits[] = {
|
||||
0x01, 0x05, 0x15, 0x05, 0x01 };
|
|
@ -0,0 +1,4 @@
|
|||
#define bullet_width 5
|
||||
#define bullet_height 7
|
||||
static unsigned char bullet_bits[] = {
|
||||
0x00, 0x02, 0x04, 0x08, 0x04, 0x02, 0x00 };
|
|
@ -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 };
|
|
@ -0,0 +1,4 @@
|
|||
#define close_width 6
|
||||
#define close_height 6
|
||||
static unsigned char close_bits[] = {
|
||||
0x33, 0x33, 0x00, 0x00, 0x33, 0x33 };
|
|
@ -0,0 +1,4 @@
|
|||
#define desk_width 6
|
||||
#define desk_height 6
|
||||
static unsigned char desk_bits[] = {
|
||||
0x00, 0x00, 0x30, 0x3e, 0x30, 0x00 };
|
|
@ -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 };
|
|
@ -0,0 +1,4 @@
|
|||
#define iconify_width 6
|
||||
#define iconify_height 6
|
||||
static unsigned char iconify_bits[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x03, 0x03 };
|
|
@ -0,0 +1,4 @@
|
|||
#define max_width 6
|
||||
#define max_height 6
|
||||
static unsigned char max_bits[] = {
|
||||
0x33, 0x33, 0x00, 0x00, 0x30, 0x30 };
|
|
@ -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 };
|
|
@ -0,0 +1,4 @@
|
|||
#define shade_width 6
|
||||
#define shade_height 6
|
||||
static unsigned char shade_bits[] = {
|
||||
0x33, 0x33, 0x00, 0x00, 0x00, 0x00 };
|
|
@ -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 };
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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'
|
|
@ -0,0 +1,2 @@
|
|||
export LESSHISTFILE="-"
|
||||
export WINEDLLOVERRIDES="winemenubuilder.exe=d"
|
|
@ -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
|
|
@ -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 '
|
|
@ -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
|
Loading…
Reference in New Issue