Initial commit

This commit is contained in:
2012-12-29 23:32:51 +03:00
commit 614d54b402
130 changed files with 10058 additions and 0 deletions

BIN
.XCompose Normal file

Binary file not shown.

1
.Xmodmap Normal file
View File

@@ -0,0 +1 @@
keycode 108 = Multi_key

13
.ackrc Normal file
View File

@@ -0,0 +1,13 @@
--type-set
skipjack=.tdf,.vm
--type-set
diff=.diff
--type-set
erb=.erb
--pager=$PAGER
--context=1
--smart-case
--ignore-dir=ext
--ignore-dir=cherryonnext
--ignore-dir=CherryOnExt
--ignore-dir=build

73
.bash_colors Normal file
View File

@@ -0,0 +1,73 @@
# color constants
# Reset
Color_Off='\e[0m' # Text Reset
# Regular Colors
Black='\e[0;30m' # Black
Red='\e[0;31m' # Red
Green='\e[0;32m' # Green
Yellow='\e[0;33m' # Yellow
Blue='\e[0;34m' # Blue
Purple='\e[0;35m' # Purple
Cyan='\e[0;36m' # Cyan
White='\e[0;37m' # White
# Bold
BBlack='\e[1;30m' # Black
BRed='\e[1;31m' # Red
BGreen='\e[1;32m' # Green
BYellow='\e[1;33m' # Yellow
BBlue='\e[1;34m' # Blue
BPurple='\e[1;35m' # Purple
BCyan='\e[1;36m' # Cyan
BWhite='\e[1;37m' # White
# Underline
UBlack='\e[4;30m' # Black
URed='\e[4;31m' # Red
UGreen='\e[4;32m' # Green
UYellow='\e[4;33m' # Yellow
UBlue='\e[4;34m' # Blue
UPurple='\e[4;35m' # Purple
UCyan='\e[4;36m' # Cyan
UWhite='\e[4;37m' # White
# Background
On_Black='\e[40m' # Black
On_Red='\e[41m' # Red
On_Green='\e[42m' # Green
On_Yellow='\e[43m' # Yellow
On_Blue='\e[44m' # Blue
On_Purple='\e[45m' # Purple
On_Cyan='\e[46m' # Cyan
On_White='\e[47m' # White
# High Intensty
IBlack='\e[0;90m' # Black
IRed='\e[0;91m' # Red
IGreen='\e[0;92m' # Green
IYellow='\e[0;93m' # Yellow
IBlue='\e[0;94m' # Blue
IPurple='\e[0;95m' # Purple
ICyan='\e[0;96m' # Cyan
IWhite='\e[0;97m' # White
# Bold High Intensty
BIBlack='\e[1;90m' # Black
BIRed='\e[1;91m' # Red
BIGreen='\e[1;92m' # Green
BIYellow='\e[1;93m' # Yellow
BIBlue='\e[1;94m' # Blue
BIPurple='\e[1;95m' # Purple
BICyan='\e[1;96m' # Cyan
BIWhite='\e[1;97m' # White
# High Intensty backgrounds
On_IBlack='\e[0;100m' # Black
On_IRed='\e[0;101m' # Red
On_IGreen='\e[0;102m' # Green
On_IYellow='\e[0;103m' # Yellow
On_IBlue='\e[0;104m' # Blue
On_IPurple='\e[10;95m' # Purple
On_ICyan='\e[0;106m' # Cyan
On_IWhite='\e[0;107m' # White

46
.bashrc Normal file
View File

@@ -0,0 +1,46 @@
# colors
. ~/.bash_colors
# bash history with time
export HISTTIMEFORMAT="%F %T "
##
## prompt games
##
# DYNAMIC: first brace [ color depends on the exit code
PS1='$(if [ $? -eq 0 ]; then echo -ne "\[$BGreen\]"; else echo -ne "\[$BRed\]"; fi)['
# STATIC: username color depends on UID
if [ $UID -eq 0 ]; then
PS1="$PS1\[$BRed\]"
else
PS1="$PS1\[$BGreen\]"
fi
PS1="$PS1\u\[$BGreen\]"
# STATIC: @ color depends on session (X11/console)
if [ -z "$DISPLAY" ]; then
PS1="$PS1\[$BRed\]"
else
PS1="$PS1\[$BGreen\]"
fi
PS1="$PS1@"
# STATIC: hostname depends on Xorg installed (w/o Xorg looks like headless, thus RED)
if which X >/dev/null 2>&1; then
PS1="$PS1\[$BGreen\]"
else
PS1="$PS1\[$BRed\]"
fi
PS1="$PS1\h "
# DYNAMIC: wd bg is blue for symlinks
PS1="$PS1"'$(if [ -L "$PWD" ]; then echo -ne "\[$On_Blue\]"; fi)'
# DYNAMIC: wd length < 6 (/, /etc, /usr, /var, /home etc) brings red wd name
PS1="$PS1"'$(if [ ${#PWD} -lt 6 ]; then echo -ne "\[$BRed\]"; else echo -ne "\[$BGreen\]"; fi)\W'
PS1="$PS1\[$Color_Off\]\[$BGreen\]]\\$\[$Color_Off\] "
source ~/.rc

View File

@@ -0,0 +1,297 @@
externals = {}
--{{{ helpers
externals.hook = {
before = function(object, handler, hook)
local prev_handler = object[handler]
object[handler] = function(...)
if hook(...) then
prev_handler(...)
end
end
end,
after = function(object, handler, hook)
local prev_handler = object[handler]
object[handler] = function(...)
hook(..., prev_handler(...))
end
end
}
--}}}
-- specific
externals.players = {}
externals.browsers = {}
externals.powers = {}
externals.sounds = {}
externals.mails = {}
externals.displays = {}
--{{{ players.mpd
require('socket')
externals.players.mpd = {
sock = nil,
ping_timer = timer({ timeout = 10 }),
exec = function(command)
if not externals.players.mpd.sock then
if not externals.players.mpd.reconnect() then
return false
end
end
if not externals.players.mpd.sock:send(command .. "\n") then
externals.players.mpd.disconnect()
return externals.players.mpd.exec(command)
end
local answer = {}
local line = nil
while line ~= 'OK' do
line = externals.players.mpd.sock:receive()
if not line then
externals.players.mpd.disconnect()
break
end
if line:sub(1,3) == "ACK" then
return false
end
k, v = string.match(line, "([%w-]+):[%s](.*)$")
if k ~= nil then
answer[k] = v
end
end
return answer
end,
reconnect = function()
if externals.players.mpd.sock then
return true
end
externals.players.mpd.sock = socket.connect('localhost', 6600)
if externals.players.mpd.sock == nil then
return false
else
externals.players.mpd.sock:receive()
externals.players.mpd.sock:send('password "' .. externals.players.mpd.password .. '"\n')
externals.players.mpd.sock:receive()
end
return true
end,
disconnect = function()
if externals.players.mpd.sock then
externals.players.mpd.sock:shutdown('both')
externals.players.mpd.sock:close()
end
externals.players.mpd.sock = nil
end,
manager = function()
conexec('ncmpc')
end,
stop = function()
return externals.players.mpd.exec('stop')
end,
prev = function()
return externals.players.mpd.exec('previous')
end,
next = function()
return externals.players.mpd.exec('next')
end,
update = function()
return externals.players.mpd.exec('update')
end,
toggle = function()
if externals.players.mpd.state() == 'stop' then
return externals.players.mpd.exec('play')
else
return externals.players.mpd.exec('pause')
end
end,
ping = function()
return externals.players.mpd.exec('ping')
end,
state = function()
status = externals.players.mpd.exec('status')
if status then
return status.state
else
return false
end
end,
search = function(target)
exec('sh -c \'mpc search any "' .. target .. '" | mpc -q insert; mpc -q next\'')
end
}
externals.players.mpd.password = '56379534'
externals.players.mpd.ping_timer:connect_signal('timeout', externals.players.mpd.ping)
externals.players.mpd.ping_timer:start()
--}}}
--{{{ browsers.firefox
externals.browsers.firefox = {
exec = function(command)
awful.util.spawn('firefox ' .. command)
end,
manager = function()
awful.util.spawn('firefox')
end,
search = function(term)
externals.browsers.firefox.exec('http://www.google.com/search?q=' .. string.gsub(term, ' ', '+'))
end,
browse = function(...)
externals.browsers.firefox.exec(...)
end
}
--}}}
--{{{ browsers.chromium
externals.browsers.chromium = {
exec = function(command)
awful.util.spawn('chromium ' .. command)
end,
manager = function()
awful.util.spawn('chromium')
end,
search = function(term)
externals.browsers.chromium.exec('http://www.google.com/search?q=' .. string.gsub(term, ' ', '+'))
end,
browse = function(...)
externals.browsers.chromium.exec(...)
end
}
--}}}
--{{{ sounds.alsa
externals.sounds.alsa = {
exec = function(command)
exec('amixer -q ' .. command)
end,
manager = function()
conexec('alsamixer')
end,
mute = function()
externals.sounds.alsa.exec('set ' .. externals.sound.channel .. ' toggle')
end,
up = function()
externals.sounds.alsa.exec('set ' .. externals.sound.channel .. ' 2dB+')
end,
down = function()
externals.sounds.alsa.exec('set ' .. externals.sound.channel .. ' 2dB-')
end
}
--}}}
--{{{ powers.pm
externals.powers.pm = {
exec = function(command)
awful.util.spawn('sudo ' .. command)
end,
reboot = function()
externals.powers.pm.exec('shutdown -r now -t 10')
end,
halt = function()
externals.powers.pm.exec('shutdown -h now -t 10')
end,
suspend = function()
externals.powers.pm.exec('pm-suspend')
end,
hibernate = function()
externals.powers.pm.exec('pm-hibernate')
end,
switch_profile = function()
externals.powers.pm.exec('/opt/bin/powerctl switch')
end
}
--}}}
--{{{ powers.ck
externals.powers.ck = {
exec = function(command)
awful.util.spawn('dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.' .. command)
end,
reboot = function()
externals.powers.ck.exec('Restart')
end,
halt = function()
externals.powers.ck.exec('Stop')
end,
pm_exec = function(command)
awful.util.spawn('dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.' .. command)
end,
suspend = function()
externals.powers.ck.pm_exec('Suspend')
end,
hibernate = function()
externals.powers.ck.pm_exec('Hibernate')
end
}
--}}}
--{{{ mails.gmail
externals.mails.gmail = {
open = function(target)
externals.browser.browse("https://gmail.com")
end,
manager = function(...)
externals.mail.open(...)
end
}
--}}}
-- general
externals.player = externals.players.mpd
externals.browser = externals.browsers.chromium
externals.mail = externals.mails.gmail
externals.sound = externals.sounds.alsa
externals.sound.channel = 'Speaker'
externals.display = {
switch = function() exec('/opt/powerctl switch-display') end,
screensaver = function() exec('xautolock -locknow') end,
toggle = nil,
turn_off = function() exec('xset dpms force off') end,
save = function () exec("scrot -e 'mv $f ~/screenshots/'") end,
backlight = {
down = function() exec("sudo sh -c 'echo $[$(</sys/class/backlight/intel_backlight/brightness)-100] >/sys/class/backlight/intel_backlight/brightness'") end,
up = function() exec("sudo sh -c 'echo $[$(</sys/class/backlight/intel_backlight/brightness)+100] >/sys/class/backlight/intel_backlight/brightness'") end
}
}
externals.power = externals.powers.ck
-- vim: set foldmarker=--{{{,--}}} foldmethod=marker:

View File

@@ -0,0 +1,44 @@
function calendar()
local head = 'Su Mo Tu We Th Fr Sa'
local title = os.date('%B %Y')
while title:len() < head:len() do
title = ' ' .. title .. ' '
end
local calendar = title .. "\n" .. head .. "\n"
local today_w = tonumber(os.date('%u'))
local today_m = tonumber(os.date('%d'))
local day_w = (today_w - today_m + 1) % 7
local daysmap = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
local year = tonumber(os.date('%Y'))
if year % 4 == 0 and (year % 100 ~= 0 or year % 400 == 0) then
daysmap[2] = 29
end
calendar = calendar .. string.format('%' .. (day_w*3) .. 's', '')
local month = tonumber(os.date('%m'))
for day_m = 1,daysmap[month] do
if day_m > 9 then
day_s = day_m
else
day_s = '0' .. day_m
end
if day_m == today_m then
day_s = '<span color="yellow"><b>' .. day_s .. '</b></span>'
end
calendar = calendar .. day_s .. ' '
day_w = day_w + 1
if day_w > 6 then
day_w = 0
calendar = calendar .. "\n"
end
end
return calendar;
end

View File

@@ -0,0 +1,49 @@
-- typical mpc/mpd tasks:
-- *
prompt = {
box = nil,
exec = {
lua = function(command)
end,
google = function(command)
end,
player = function(command)
end
}
}
-- Prompt
awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end),
-- TODO: unite in a single prompt with prefix (=2+2, g weather in Minsk, http://tut.by/ etc)
awful.key({ modkey }, "x",
function()
awful.prompt.run({ prompt = "Run Lua code: " },
mypromptbox[mouse.screen].widget,
function (...)
local result = awful.util.eval(...)
promptbox.widget:set_text(result) -- I need a calculator :(
end, nil,
awful.util.getdir("cache") .. "/history_eval")
end),
awful.key({ modkey }, "s",
function()
awful.prompt.run({ prompt = "Google: " },
mypromptbox[mouse.screen].widget,
externals.browser.search, nil,
awful.util.getdir("cache") .. "/history_search")
end),
awful.key({ modkey }, "p",
function()
awful.prompt.run({ prompt = "Play: " },
mypromptbox[mouse.screen].widget,
externals.music.search, nil,
awful.util.getdir("cache") .. "/history_play")
end),

601
.config/awesome/rc.lua Normal file
View File

@@ -0,0 +1,601 @@
---- Standard awesome library
awful = require("awful")
awful.autofocus = require("awful.autofocus")
awful.rules = require("awful.rules")
-- Widget and layout library
wibox = require("wibox")
-- Theme handling library
beautiful = require("beautiful")
-- Notification library
naughty = require("naughty")
-- External programs
require("externals")
--{{{ Variable definitions
-- Themes define colours, icons, and wallpapers
beautiful.init(".config/awesome/theme/theme.lua")
-- TODO: when launching external app, make con window floating and switch to corresponding tab
-- This is used later as the default terminal and editor to run.
terminal = "xterm"
editor = os.getenv("EDITOR") or "vim"
editor_cmd = terminal .. " -e " .. editor
height = 18
function exec(command)
awful.util.spawn(command, false)
end
function conexec(command)
exec(terminal .. ' -e ' .. command)
end
-- Default modkey.
-- Usually, Mod4 is the key with a logo between Control and Alt.
-- If you do not like this or do not have such a key,
-- I suggest you to remap Mod4 to another key using xmodmap or other tools.
-- However, you can use another modifier like Mod1, but it may interact with others.
modkey = "Mod4"
altkey = "Mod1"
menukey = "Menu"
-- Table of layouts to cover with awful.layout.inc, order matters.
layouts =
{
awful.layout.suit.floating, -- 1
awful.layout.suit.tile, -- 2
awful.layout.suit.tile.left, -- 3
awful.layout.suit.tile.bottom, -- 4
awful.layout.suit.tile.top, -- 5
awful.layout.suit.fair, -- 6
awful.layout.suit.fair.horizontal, -- 7
awful.layout.suit.spiral, -- 8
awful.layout.suit.spiral.dwindle, -- 9
awful.layout.suit.max, -- 10
awful.layout.suit.max.fullscreen, -- 11
awful.layout.suit.magnifier -- 12
}
--}}}
--{{{ Tags
-- Define a tag table which hold all screen tags.
tags = {}
for s = 1, screen.count() do
-- Each screen has its own tag table.
tags[s] = awful.tag(
{ "1:term", "2:bw", "3:vim", "4:skype", "5:mcb", "6:vbox", 7, }, s,
{ layouts[7], layouts[10], layouts[10], layouts[7], layouts[10], layouts[10], layouts[10] }
)
end
--}}}
--{{{ Menu
-- Create a laucher widget and a main menu
myawesomemenu = {
{ "manual", terminal .. " -e man awesome" },
{ "edit config", editor_cmd .. " " .. awful.util.getdir("config") .. "/rc.lua" },
{ "restart", awesome.restart },
{ "quit", awesome.quit }
}
mymainmenu = awful.menu({ items = {
{ "awesome", myawesomemenu, beautiful.awesome_icon },
{ "open terminal", terminal },
{ "shutdown", {
{ "reboot", externals.power.reboot },
{ "halt", externals.power.halt },
{ "suspend", externals.power.suspend },
{ "hibernate", externals.power.hibernate }
} }
}})
mylauncher = awful.widget.launcher({
image = beautiful.awesome_icon,
menu = mymainmenu
})
--}}}
--{{{ Wibox
--{{{ Reusable separator
separator = wibox.widget.imagebox()
separator:set_image(beautiful.widget_sep)
--}}}
require('externals')
--require('widgets/cpu')
--require('widgets/mem')
--require('widgets/fs')
--require('widgets/net')
--require('widgets/wifi')
--require('widgets/vol')
--require('widgets/mpd')
--require('widgets/wth')
--require('widgets/gmail')
--require('widgets/pkg')
--require('widgets/bat')
--require('widgets/date')
-- Create a wibox for each screen and add it
mywibox = {}
mypromptbox = {}
mylayoutbox = {}
mytaglist = {}
mytaglist.buttons = awful.util.table.join(
awful.button({ }, 1, awful.tag.viewonly),
awful.button({ modkey }, 1, awful.client.movetotag),
awful.button({ }, 3, awful.tag.viewtoggle),
awful.button({ modkey }, 3, awful.client.toggletag),
awful.button({ }, 4, awful.tag.viewnext),
awful.button({ }, 5, awful.tag.viewprev)
)
mytasklist = {}
mytasklist.buttons = awful.util.table.join(
awful.button({ }, 1, function (c)
if c == client.focus then
c.minimized = true
else
if not c:isvisible() then
awful.tag.viewonly(c:tags()[1])
end
-- This will also un-minimize
-- the client, if needed
client.focus = c
c:raise()
end
end),
awful.button({ }, 3, function ()
if instance then
instance:hide()
instance = nil
else
instance = awful.menu.clients({ width=250 })
end
end),
awful.button({ }, 4, function ()
awful.client.focus.byidx(1)
if client.focus then client.focus:raise() end
end),
awful.button({ }, 5, function ()
awful.client.focus.byidx(-1)
if client.focus then client.focus:raise() end
end)
)
for s = 1, screen.count() do
-- Create a promptbox for each screen
mypromptbox[s] = awful.widget.prompt()
-- Create an imagebox widget which will contains an icon indicating which layout we're using.
-- We need one layoutbox per screen.
mylayoutbox[s] = awful.widget.layoutbox(s)
mylayoutbox[s]:buttons(awful.util.table.join(
awful.button({ }, 1, function () awful.layout.inc(layouts, 1) end),
awful.button({ }, 3, function () awful.layout.inc(layouts, -1) end),
awful.button({ }, 4, function () awful.layout.inc(layouts, 1) end),
awful.button({ }, 5, function () awful.layout.inc(layouts, -1) end)
))
-- Create a taglist widget
mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.filter.all, mytaglist.buttons)
-- Create a tasklist widget
mytasklist[s] = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, mytasklist.buttons)
-- Create the wibox
mywibox[s] = awful.wibox({ position = "top", screen = s })
local left_widgets = {
mylauncher,
mytaglist[s],
mypromptbox[s]
}
local left_layout = wibox.layout.fixed.horizontal()
for i, widget in pairs(left_widgets) do
left_layout:add(widget)
end
local right_widgets = awful.util.table.join({
--[[
cpuwidget.i,
cpuwidget.g,
cpuwidget.w,
separator,
memwidget.i,
memwidget.w,
separator,
fswidget.i
},
fswidget.get_fs_widgets(),
{
fswidget.w,
separator,
volwidget.i,
volwidget.w,
separator,
mpdwidget.i,
mpdwidget.w,
separator,
netwidget.i_dn,
netwidget.w,
netwidget.i_up,
wifiwidget.i,
wifiwidget.w,
separator,
--]]
s == 1 and wibox.widget.systray() or nil,
--[[
gmailwidget.i,
gmailwidget.w,
pkgwidget.i,
pkgwidget.w,
batwidget.i,
batwidget.w,
separator,
datewidget.i,
datewidget.w,
separator,
--]]
mylayoutbox[s]
})
local right_layout = wibox.layout.fixed.horizontal()
for i, widget in pairs(right_widgets) do
if widget then
right_layout:add(widget)
end
end
local layout = wibox.layout.align.horizontal()
layout:set_left(left_layout)
layout:set_middle(mytasklist[s])
layout:set_right(right_layout)
mywibox[s]:set_widget(layout)
end
--}}}
--{{{ Mouse bindings
root.buttons(awful.util.table.join(
awful.button({ }, 3, function () mymainmenu:toggle() end),
awful.button({ }, 4, awful.tag.viewnext),
awful.button({ }, 5, awful.tag.viewprev)
))
--}}}
--{{{ Key bindings
-- read with 'xev' (xorg-xev)
globalkeys = awful.util.table.join(
awful.key({ modkey, }, "Left", awful.tag.viewprev ),
awful.key({ modkey, }, "Right", awful.tag.viewnext ),
awful.key({ modkey, }, "Escape", awful.tag.history.restore),
awful.key({ modkey, }, "j",
function ()
awful.client.focus.byidx( 1)
if client.focus then client.focus:raise() end
end),
awful.key({ modkey, }, "k",
function ()
awful.client.focus.byidx(-1)
if client.focus then client.focus:raise() end
end),
awful.key({ modkey, }, "w", function () mymainmenu:show({keygrabber=true}) end),
-- Layout manipulation
awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end),
awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end),
awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end),
awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end),
awful.key({ modkey, }, "u", awful.client.urgent.jumpto),
awful.key({ modkey, }, "Tab",
function ()
awful.client.focus.history.previous()
if client.focus then
client.focus:raise()
end
end),
-- Standard program
awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end),
awful.key({ modkey, "Control" }, "r", awesome.restart),
awful.key({ modkey, "Shift" }, "q", awesome.quit),
awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end),
awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end),
awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end),
awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end),
awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1) end),
awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end),
awful.key({ modkey, }, "space", function () awful.layout.inc(layouts, 1) end),
awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(layouts, -1) end),
awful.key({ modkey, "Control" }, "n", awful.client.restore),
awful.key({ modkey }, "F12", externals.display.screensaver),
awful.key({ modkey, "Control" }, "Up", externals.player.toggle),
awful.key({ modkey, "Control" }, "Down", externals.player.stop),
awful.key({ modkey, "Control" }, "Left", externals.player.prev),
awful.key({ modkey, "Control" }, "Right", externals.player.next),
awful.key({ modkey }, "Up", externals.sound.up),
awful.key({ modkey }, "Down", externals.sound.down),
-- Media Keys
awful.key({ }, 'XF86AudioPlay', externals.player.toggle),
awful.key({ }, 'XF86AudioPrev', externals.player.prev),
awful.key({ }, 'XF86AudioNext', externals.player.next),
awful.key({ }, 'XF86AudioStop', externals.player.stop),
awful.key({ }, 'XF86AudioMute', externals.sound.mute),
awful.key({ }, 'XF86AudioRaiseVolume', externals.sound.up),
awful.key({ }, 'XF86AudioLowerVolume', externals.sound.down),
awful.key({ }, 'XF86MonBrightnessDown', externals.display.backlight.down),
awful.key({ }, 'XF86MonBrightnessUp', externals.display.backlight.up),
awful.key({ }, 'XF86Search', externals.browser.search), -- this will fail. Use the same func as Meta+S does instead
awful.key({ }, 'XF86Mail', externals.mail.manager),
awful.key({ }, 'XF86HomePage', externals.browser.manager),
awful.key({ }, 'XF86Display', externals.display.switch),
awful.key({ }, 'XF86ScreenSaver', externals.display.screensaver),
awful.key({ }, 'XF86Launch6', externals.power.switch_profile),
--awful.key({ }, 252, externals.display.turn_off),
awful.key({ }, 'XF86PowerOff', function() end),
awful.key({ }, 'XF86WLAN', function() end),
awful.key({ }, "Print", externals.display.save),
-- Prompt
awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end),
-- TODO: unite in a single prompt with prefix (=2+2, g weather in Minsk, http://tut.by/ etc)
awful.key({ modkey }, "x",
function()
awful.prompt.run({ prompt = "Eval: " },
mypromptbox[mouse.screen].widget,
function (s)
local result = awful.util.eval('return ' .. s)
mypromptbox[mouse.screen].widget:set_text('[ ' .. result .. ' ]')
end, nil,
awful.util.getdir("cache") .. "/history_eval")
end),
awful.key({ modkey }, "s",
function()
awful.prompt.run({ prompt = "Google: " },
mypromptbox[mouse.screen].widget,
externals.browser.search, nil,
awful.util.getdir("cache") .. "/history_search")
end),
awful.key({ modkey }, "p",
function()
awful.prompt.run({ prompt = "Play: " },
mypromptbox[mouse.screen].widget,
externals.player.search, nil,
awful.util.getdir("cache") .. "/history_play")
end),
awful.key({ modkey }, "g",
function()
awful.prompt.run({ prompt = "Go: " },
mypromptbox[mouse.screen].widget,
externals.browser.browse, nil,
awful.util.getdir("cache") .. "/history_goto")
end),
awful.key({ modkey }, "b",
function ()
mywibox[mouse.screen].visible = not mywibox[mouse.screen].visible
end)
)
clientkeys = awful.util.table.join(
awful.key({ modkey, }, "f", function (c) c.fullscreen = not c.fullscreen end),
awful.key({ modkey, }, "F4", function (c) c:kill() end),
awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ),
awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end),
awful.key({ modkey, }, "o", awful.client.movetoscreen ),
awful.key({ modkey, "Shift" }, "r", function (c) c:redraw() end),
awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end),
awful.key({ modkey, }, "n",
function (c)
-- The client currently has the input focus, so it cannot be
-- minimized, since minimized clients can't have the focus.
c.minimized = true
end),
awful.key({ modkey, }, "m",
function (c)
c.maximized_horizontal = not c.maximized_horizontal
c.maximized_vertical = not c.maximized_vertical
end)
)
-- Compute the maximum number of digit we need, limited to 9
keynumber = 0
for s = 1, screen.count() do
keynumber = math.min(9, math.max(#tags[s], keynumber));
end
-- Bind all key numbers to tags.
-- Be careful: we use keycodes to make it works on any keyboard layout.
-- This should map on the top row of your keyboard, usually 1 to 9.
for i = 1, keynumber do
globalkeys = awful.util.table.join(globalkeys,
awful.key({ modkey }, "#" .. i + 9,
function ()
local screen = mouse.screen
if tags[screen][i] then
awful.tag.viewonly(tags[screen][i])
end
end),
awful.key({ modkey, "Control" }, "#" .. i + 9,
function ()
local screen = mouse.screen
if tags[screen][i] then
awful.tag.viewtoggle(tags[screen][i])
end
end),
awful.key({ modkey, "Shift" }, "#" .. i + 9,
function ()
if client.focus and tags[client.focus.screen][i] then
awful.client.movetotag(tags[client.focus.screen][i])
end
end),
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
function ()
if client.focus and tags[client.focus.screen][i] then
awful.client.toggletag(tags[client.focus.screen][i])
end
end)
)
end
clientbuttons = awful.util.table.join(
awful.button({ }, 1, function (c) client.focus = c; c:raise() end),
awful.button({ modkey }, 1, awful.mouse.client.move),
awful.button({ modkey }, 3, awful.mouse.client.resize))
-- Set keys
root.keys(globalkeys)
--}}}
--{{{ Rules
-- get class / etc with 'xprop' (xorg-xprop)
-- ex.:
-- ...
-- WM_CLASS(STRING) = "Navigator", "Swiftfox"
-- WM_NAME(STRING) = "Problem loading page - Swiftfox"
-- ...
--
-- instance = "Navigator", class = "Swiftfox", name = "Problem loading page - Swiftfox"
awful.rules.rules = {
-- All clients will match this rule.
{
rule = { },
properties = {
border_width = beautiful.border_width,
border_color = beautiful.border_normal,
focus = true,
keys = clientkeys,
buttons = clientbuttons
}
}, {
rule_any = { class = { "MPlayer", "pinentry", "gimp" } },
properties = { floating = true }
}, {
rule_any = { instance = { "Navigator" }, class = { "Chromium" } },
properties = { tag = tags[1][2] }
}, {
rule = { instance = "gvim" },
properties = { tag = tags[1][3] }
}, {
rule = { class = "Skype" },
properties = { tag = tags[1][4], size_hints_honor = false }
}, {
rule = { instance = "gajim" },
properties = { tag = tags[1][5] }
}, {
rule = { class = "XTerm" },
callback = function(c)
if c.name:sub(#c.name - 9) == " - mcabber" then
awful.client.movetotag(tags[1][5], c)
end
-- see /usr/share/awesome/lib/wibox/layout/
--
-- eval geometry with respect to hint
--local geom = c:geometry()
--local hint = c.size_hints
--print("geom was: " .. geom.width .. "x" .. geom.height)
--local w_ratio = math.floor((geom.width - hint.base_width) / hint.width_inc)
--local h_ratio = math.floor((geom.height - hint.base_height) / hint.height_inc)
--geom.width = hint.base_width + hint.width_inc * w_ratio
--geom.height = hint.base_height + hint.height_inc * h_ratio
--print("geom is: " .. geom.width .. "x" .. geom.height)
--c:geometry(geom)
end
}, {
rule = { class = "XTerm" },
properties = { opacity = 0.9, size_hints_honor = false }
}, {
rule = { instance = "VCLSalFrame.DocumentWindow", class = "LibreOffice 3.5" },
properties = { size_hints_honor = false }
}, {
rule = { class = "VirtualBox" },
properties = { tag = tags[1][6], switchtotag = true }
}, {
rule = { class = "do-not-directly-run-secondlife-bin" },
properties = {
tag = tags[1][6],
switchtotag = true,
floating = true,
geometry = { x = 0, y = 0, width = 1364, height = 700 }
}
}
}
--}}}
--{{{ Signals
-- Signal function to execute when a new client appears.
client.connect_signal("manage", function (c, startup)
-- Add a titlebar
--awful.titlebar.add(c, { modkey = modkey })
-- Enable sloppy focus
c:connect_signal("mouse::enter", function(c)
if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier and awful.client.focus.filter(c) then
client.focus = c
end
end)
if not startup then
-- Set the windows at the slave,
-- i.e. put it at the end of others instead of setting it master.
-- awful.client.setslave(c)
-- Put windows in a smart way, only if they does not set an initial position.
if not c.size_hints.user_position and not c.size_hints.program_position then
awful.placement.no_overlap(c)
awful.placement.no_offscreen(c)
end
end
end)
client.connect_signal("focus", function(c)
c.border_color = beautiful.border_focus
end)
client.connect_signal("unfocus", function(c)
c.border_color = beautiful.border_normal
end)
for s = 1, screen.count() do
screen[s]:add_signal("tag::history::update", function()
client.focus = client.focus
end)
end
--}}}
-- vim: set foldmarker=--{{{,--}}} foldmethod=marker:

View File

@@ -0,0 +1,12 @@
All 'awesome' icons in this package were created by Adrian C. (anrxc).
They are licensed under the same terms as the awesome distribution itself
- GNU General Public License version 2. To view a human-readable summary
of this license, visit: http://creativecommons.org/licenses/GPL/2.0/
The widget icons with the exception of: 'chat', 'crypt', 'power' and
'rss' icons (which were made by me) were originally made by 'sm4tik'
for purposes of 'dzen', I could not find any licensing information
attached to those original bitmaps. Assuming they are in the public
domain I am licensing the widget icons under the terms of the
Creative Commons Attribution-Share Alike license. To view a copy of
this license, visit: http://creativecommons.org/licenses/by-sa/3.0/

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 B

View File

@@ -0,0 +1,116 @@
theme = {}
theme.font = "fixed 10"
theme.confdir = awful.util.getdir("config") .. "/theme"
theme.wallpaper_cmd = { "hsetroot -solid '#000000'" }
--theme.wallpaper_cmd = { "awsetbg -f media/images/Desktop/GirlGun1.jpg" }
theme.bg_normal = "#222222"
theme.bg_focus = "#535d6c"
theme.bg_urgent = "#ff0000"
theme.bg_minimize = "#444444"
theme.fg_normal = "#aaaaaa"
theme.fg_focus = "#ffffff"
theme.fg_urgent = "#ffffff"
theme.fg_minimize = "#ffffff"
theme.border_width = "1"
theme.border_normal = "#404080"
theme.border_focus = "#535d6c"
theme.border_marked = "#91231c"
theme.fg_widget = "#AECF96"
theme.fg_center_widget = "#88A175"
theme.fg_end_widget = "#FF5656"
theme.fg_off_widget = "#494B4F"
theme.fg_netup_widget = "#7F9F7F"
theme.fg_netdn_widget = "#CC9393"
theme.bg_widget = "#3F3F3F"
theme.border_widget = "#3F3F3F"
-- [taglist|tasklist]_[bg|fg]_[focus|urgent]
-- titlebar_[bg|fg]_[normal|focus]
-- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color]
-- mouse_finder_[color|timeout|animate_timeout|radius|factor]
-- Display the taglist squares
theme.taglist_squares_sel = theme.confdir .. "/icons/taglist/sel.png"
theme.taglist_squares_unsel = theme.confdir .. "/icons/taglist/unsel.png"
theme.tasklist_floating_icon = "/usr/share/awesome/themes/default/tasklist/floatingw.png"
-- Variables set for theming the menu:
-- menu_[bg|fg]_[normal|focus]
-- menu_[border_color|border_width]
theme.menu_submenu_icon = "/usr/share/awesome/themes/default/submenu.png"
theme.menu_height = "15"
theme.menu_width = "100"
-- You can add as many variables as
-- you wish and access them by using
-- beautiful.variable in your rc.lua
--theme.bg_widget = "#cc0000"
-- {{{ Widget icons
theme.widget_cpu = theme.confdir .. "/icons/cpu.png"
theme.widget_bat = theme.confdir .. "/icons/bat.png"
theme.widget_mem = theme.confdir .. "/icons/mem.png"
theme.widget_fs = theme.confdir .. "/icons/disk.png"
theme.widget_net = theme.confdir .. "/icons/down.png"
theme.widget_netup = theme.confdir .. "/icons/up.png"
theme.widget_wifi = theme.confdir .. "/icons/wifi.png"
theme.widget_mail = theme.confdir .. "/icons/mail.png"
theme.widget_vol = theme.confdir .. "/icons/vol.png"
theme.widget_org = theme.confdir .. "/icons/cal.png"
theme.widget_date = theme.confdir .. "/icons/time.png"
theme.widget_crypto = theme.confdir .. "/icons/crypto.png"
theme.widget_pacman = theme.confdir .. "/icons/pacman.png"
theme.widget_sep = theme.confdir .. "/icons/separator.png"
theme.widget_music = theme.confdir .. "/icons/music.png"
-- }}}
-- {{{ Layout icons
theme.layout_tile = theme.confdir .. "/icons/layouts/tile.png"
theme.layout_tileleft = theme.confdir .. "/icons/layouts/tileleft.png"
theme.layout_tilebottom = theme.confdir .. "/icons/layouts/tilebottom.png"
theme.layout_tiletop = theme.confdir .. "/icons/layouts/tiletop.png"
theme.layout_fairv = theme.confdir .. "/icons/layouts/fairv.png"
theme.layout_fairh = theme.confdir .. "/icons/layouts/fairh.png"
theme.layout_spiral = theme.confdir .. "/icons/layouts/spiral.png"
theme.layout_dwindle = theme.confdir .. "/icons/layouts/dwindle.png"
theme.layout_max = theme.confdir .. "/icons/layouts/max.png"
theme.layout_fullscreen = theme.confdir .. "/icons/layouts/fullscreen.png"
theme.layout_magnifier = theme.confdir .. "/icons/layouts/magnifier.png"
theme.layout_floating = theme.confdir .. "/icons/layouts/floating.png"
-- }}}
theme.awesome_icon = "/usr/share/awesome/icons/awesome16.png"
-- {{{ Titlebar icons
theme.titlebar_close_button_focus = theme.confdir .. "/icons/titlebar/close_focus.png"
theme.titlebar_close_button_normal = theme.confdir .. "/icons/titlebar/close_normal.png"
theme.titlebar_ontop_button_focus_active = theme.confdir .. "/icons/titlebar/ontop_focus_active.png"
theme.titlebar_ontop_button_normal_active = theme.confdir .. "/icons/titlebar/ontop_normal_active.png"
theme.titlebar_ontop_button_focus_inactive = theme.confdir .. "/icons/titlebar/ontop_focus_inactive.png"
theme.titlebar_ontop_button_normal_inactive = theme.confdir .. "/icons/titlebar/ontop_normal_inactive.png"
theme.titlebar_sticky_button_focus_active = theme.confdir .. "/icons/titlebar/sticky_focus_active.png"
theme.titlebar_sticky_button_normal_active = theme.confdir .. "/icons/titlebar/sticky_normal_active.png"
theme.titlebar_sticky_button_focus_inactive = theme.confdir .. "/icons/titlebar/sticky_focus_inactive.png"
theme.titlebar_sticky_button_normal_inactive = theme.confdir .. "/icons/titlebar/sticky_normal_inactive.png"
theme.titlebar_floating_button_focus_active = theme.confdir .. "/icons/titlebar/floating_focus_active.png"
theme.titlebar_floating_button_normal_active = theme.confdir .. "/icons/titlebar/floating_normal_active.png"
theme.titlebar_floating_button_focus_inactive = theme.confdir .. "/icons/titlebar/floating_focus_inactive.png"
theme.titlebar_floating_button_normal_inactive = theme.confdir .. "/icons/titlebar/floating_normal_inactive.png"
theme.titlebar_maximized_button_focus_active = theme.confdir .. "/icons/titlebar/maximized_focus_active.png"
theme.titlebar_maximized_button_normal_active = theme.confdir .. "/icons/titlebar/maximized_normal_active.png"
theme.titlebar_maximized_button_focus_inactive = theme.confdir .. "/icons/titlebar/maximized_focus_inactive.png"
theme.titlebar_maximized_button_normal_inactive = theme.confdir .. "/icons/titlebar/maximized_normal_inactive.png"
-- }}}
return theme
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80

View File

@@ -0,0 +1,33 @@
-- {{{ OK: Battery state
batwidget = {}
batwidget.i = wibox.widget.imagebox()
batwidget.w = wibox.widget.textbox()
batwidget.t = awful.tooltip({
objects = { batwidget.i, batwidget.w }
})
batwidget.b = awful.util.table.join(
awful.button({ }, 1, function ()
vicious.force({ batwidget })
end),
awful.button({ }, 3, function ()
conexec("'sudo powertop'")
end)
)
batwidget.w:buttons(batwidget.b)
batwidget.i:buttons(batwidget.b)
vicious.register(batwidget, vicious.widgets.bat, function(widget, args)
if args[2] == 0 then
widget.w:set_text('')
widget.i:set_image(nil)
else
widget.w:set_text(args[1] .. args[2] .. '%')
widget.i:set_image(beautiful.widget_bat)
end
if args[3] == 'N/A' then
widget.t:set_text('')
else
widget.t:set_text(args[3] .. ' remaining')
end
end, 57, "BAT0")
-- }}}

View File

@@ -0,0 +1,25 @@
-- {{{ OK: CPU usage and temperature
cpuwidget = {}
cpuwidget.i = wibox.widget.imagebox()
cpuwidget.i:set_image(beautiful.widget_cpu)
cpuwidget.g = awful.widget.graph()
cpuwidget.w = wibox.widget.textbox()
cpuwidget.g:set_width(40):set_height(height)
cpuwidget.g:set_background_color(beautiful.fg_off_widget)
--cpuwidget.g:set_gradient_angle(0):set_gradient_colors({
-- beautiful.fg_end_widget, beautiful.fg_center_widget, beautiful.fg_widget
--})
cpuwidget.b = awful.util.table.join(
awful.button({ }, 1, function ()
vicious.force({ cpuwidget.w, cpuwidget.g })
end),
awful.button({ }, 3, function ()
conexec('htop')
end)
)
cpuwidget.w:buttons(cpuwidget.b)
cpuwidget.g:buttons(cpuwidget.b)
cpuwidget.i:buttons(cpuwidget.b)
vicious.register(cpuwidget.g, vicious.widgets.cpu, '$1')
vicious.register(cpuwidget.w, vicious.widgets.thermal, ' $1C', 19, 'thermal_zone0')
-- }}}

View File

@@ -0,0 +1,23 @@
require("../misc/calendar")
-- {{{ OK: Date and time
datewidget = {}
datewidget.i = wibox.widget.imagebox()
datewidget.i:set_image(beautiful.widget_date)
datewidget.w = wibox.widget.textbox()
datewidget.format = '%a, %m/%d %R'
datewidget.t = awful.tooltip({
objects = { datewidget.w, datewidget.i },
timer_function = function()
return calendar();
end
})
datewidget.b = awful.util.table.join(
awful.button({ }, 1, function ()
datewidget.w:set_text(os.date(datewidget.format .. ':%S'))
end)
)
datewidget.w:buttons(datewidget.b)
datewidget.i:buttons(datewidget.b)
vicious.register(datewidget.w, vicious.widgets.date, datewidget.format, 61)
-- }}}

View File

@@ -0,0 +1,48 @@
-- {{{ OK: File system usage
fswidget = {}
fswidget.locations = { '/boot', '/', '/home' }
fswidget.i = wibox.widget.imagebox()
fswidget.i:set_image(beautiful.widget_fs)
fswidget.w = wibox.widget.textbox()
fswidget.t = awful.tooltip({
objects = { fswidget.i, fswidget.w }
})
fswidget.b = awful.util.table.join(
awful.button({ }, 1, function () vicious.force({ fswidget }) end),
awful.button({ }, 3, function () conexec('mc') end)
)
fswidget.w:buttons(fswidget.b)
fswidget.i:buttons(fswidget.b)
fswidget.fs_bars = {}
fswidget.get_fs_widgets = function()
local ws = {}
for _,v in pairs(fswidget.fs_bars) do table.insert(ws, v) end
return ws
end
for index, path in pairs(fswidget.locations) do
local fs_w = awful.widget.progressbar()
fs_w:set_vertical(true):set_ticks(true)
fs_w:set_height(height):set_width(5):set_ticks_size(2)
fs_w:set_border_color(beautiful.border_widget)
fs_w:set_background_color(beautiful.fg_off_widget)
-- fs_w:set_gradient_colors({ beautiful.fg_widget,
-- beautiful.fg_center_widget, beautiful.fg_end_widget
-- })
fs_w:buttons(fswidget.b)
fswidget.fs_bars[path] = fs_w
fswidget.t:add_to_object(fs_w)
end
vicious.register(fswidget, vicious.widgets.fs, function(widget, args)
local tip = ''
for path,w in pairs(widget.fs_bars) do
w:set_value(args['{' .. path .. ' used_p}'] / 100)
tip = tip .. path .. ' [' .. args['{' .. path .. ' used_p}'] .. '%] - <b>' .. args['{' .. path .. ' avail_gb}'] .. '</b> GB free\n' ..
' ' .. args['{' .. path .. ' used_gb}'] .. ' / ' .. args['{' .. path .. ' size_gb}'] .. ' GB\n\n'
end
widget.t:set_text(tip)
end, 599)
vicious.register(fswidget.w, vicious.widgets.hddtemp, ' ${/dev/sda}C', 17)
-- }}}

View File

@@ -0,0 +1,27 @@
-- {{{ OK: gmail
gmailwidget = {}
gmailwidget.i = wibox.widget.imagebox()
gmailwidget.w = wibox.widget.textbox()
gmailwidget.t = awful.tooltip({ objects = { gmailwidget.i, gmailwidget.w } })
gmailwidget.b = awful.util.table.join(
awful.button({ }, 1, function ()
vicious.force({ gmailwidget })
end),
awful.button({ }, 3, function ()
externals.mail.open('Inbox')
end)
)
gmailwidget.w:buttons(gmailwidget.b)
gmailwidget.i:buttons(gmailwidget.b)
vicious.register(gmailwidget, vicious.widgets.gmail, function(widget, args)
local count = tonumber(args['{count}'])
if count > 0 then
widget.t:set_text(args['{subject}'])
widget.w:set_text(count)
widget.i:set_image(beautiful.widget_mail)
else
widget.w:set_text('')
widget.i:set_image(nil)
end
end, 60 * 15 + 7)
-- }}}

View File

@@ -0,0 +1,26 @@
-- {{{ OK: Memory usage
memwidget = {}
memwidget.i = wibox.widget.imagebox()
memwidget.i:set_image(beautiful.widget_mem)
memwidget.w = awful.widget.progressbar()
memwidget.w:set_vertical(true):set_ticks(true)
memwidget.w:set_height(height):set_width(8):set_ticks_size(2)
memwidget.w:set_background_color(beautiful.fg_off_widget)
--memwidget.w:set_gradient_colors({ beautiful.fg_widget,
-- beautiful.fg_center_widget, beautiful.fg_end_widget
--})
memwidget.t = awful.tooltip({
objects = { memwidget.i, memwidget.w }
})
memwidget.w:buttons(cpuwidget.b);
memwidget.i:buttons(cpuwidget.b);
vicious.register(memwidget, vicious.widgets.mem, function(widget, args)
widget.t:set_text(
'RAM [' .. args[1] .. '%] - <b>' .. args[4] .. '</b> MB free\n' ..
' ' .. args[2] .. ' / ' .. args[3] .. ' MB\n\n' ..
'SWAP [' .. args[5] .. '%] - <b>' .. args[8] .. '</b> MB free\n' ..
' ' .. args[6] .. ' / ' .. args[7] .. ' MB\n\n' ..
'mem+buf+cache: ' .. args[9] .. ' MB')
memwidget.w:set_value(args[1] / 100)
end, 13)
-- }}}

View File

@@ -0,0 +1,38 @@
-- {{{ OK: MPD
mpdwidget = {};
mpdwidget.i = wibox.widget.imagebox()
mpdwidget.i:set_image(beautiful.widget_music)
mpdwidget.w = wibox.widget.textbox();
mpdwidget.t = awful.tooltip({ objects = { mpdwidget.i, mpdwidget.w } })
mpdwidget.refresh = function() vicious.force({ mpdwidget }) end
externals.hook.after(externals.player, 'update', mpdwidget.refresh)
externals.hook.after(externals.player, 'toggle', mpdwidget.refresh)
externals.hook.after(externals.player, 'prev', mpdwidget.refresh)
externals.hook.after(externals.player, 'next', mpdwidget.refresh)
externals.hook.after(externals.player, 'stop', mpdwidget.refresh)
mpdwidget.b = awful.util.table.join(
awful.button({ }, 1, function ()
vicious.force({ mpdwidget })
end),
awful.button({ }, 2, externals.player.update),
awful.button({ }, 3, externals.player.toggle),
awful.button({ }, 4, externals.player.prev),
awful.button({ }, 5, externals.player.next)
)
mpdwidget.w:buttons(mpdwidget.b);
vicious.register(mpdwidget, vicious.widgets.mpd, function(widget, args)
widget.t:set_text(' ' .. args["{Artist}"] .. ' - ' .. args["{Title}"] .. '\n '
.. args["{Album}"] .. ' (' .. args["{Genre}"] .. ') ')
local state = args["{state}"]
if state == "Play" then
widget.w:set_text('>>')
else
if state == "Pause" then
widget.w:set_text('||')
else
widget.w:set_text('[]')
end
end
end, 7, { "56379534" })
-- }}}

View File

@@ -0,0 +1,49 @@
-- {{{ OK: Network usage
netwidget = {}
netwidget.i_dn = wibox.widget.imagebox()
netwidget.i_up = wibox.widget.imagebox()
netwidget.i_dn:set_image(beautiful.widget_net)
netwidget.i_up:set_image(beautiful.widget_netup)
netwidget.w = wibox.widget.textbox()
netwidget.t = awful.tooltip({ objects = { netwidget.i_dn, netwidget.i_up, netwidget.w } })
netwidget.b = awful.util.table.join(
awful.button({ }, 1, function ()
vicious.force({ netwidget })
end),
awful.button({ }, 3, function ()
conexec('wicd-curses')
end)
)
netwidget.w:buttons(netwidget.b)
netwidget.i_dn:buttons(netwidget.b)
netwidget.i_up:buttons(netwidget.b)
vicious.register(netwidget, vicious.widgets.net, function(widget, args)
local up, down, tip = '', '', ''
for i=0,19 do
local eth = 'eth' .. i
if i > 9 then
eth = 'wlan' .. (i-10)
end
if args['{' .. eth .. ' carrier}'] == 1 then
if down ~= '' then
down = down .. '/'
up = up .. '/'
end
down = down .. args['{' .. eth .. ' down_kb}']
up = up .. args['{' .. eth .. ' up_kb}']
tip = tip .. eth .. '\n RX: ' .. args['{' .. eth .. ' rx_mb}'] .. ' MB' ..
'\n TX: ' .. args['{' .. eth .. ' tx_mb}'] .. ' MB' ..
'\n'
end
end
if down ~= '' then
widget.w:set_markup('<span color="' ..
beautiful.fg_netdn_widget .. '">' .. down .. '</span> <span color="' ..
beautiful.fg_netup_widget .. '">' .. up .. '</span>')
else
widget.w:set_text('N/A')
end
widget.t:set_text(tip)
end, 3)
-- }}}

View File

@@ -0,0 +1,25 @@
-- {{{ OK: Packages
pkgwidget = {}
pkgwidget.i = wibox.widget.imagebox()
pkgwidget.w = wibox.widget.textbox()
pkgwidget.b = awful.util.table.join(
awful.button({ }, 1, function ()
vicious.force({ pkgwidget })
end),
awful.button({ }, 3, function ()
conexec("'yaourt -Suy --aur; read'")
end)
)
pkgwidget.w:buttons(pkgwidget.b);
pkgwidget.i:buttons(pkgwidget.b);
vicious.register(pkgwidget, vicious.widgets.pkg, function(widget, args)
local pkcnt = tonumber(args[1])
if pkcnt > 0 then
widget.i:set_image(beautiful.widget_pacman)
widget.w:set_text(pkcnt)
else
widget.i:set_image(nil)
widget.w:set_text('')
end
end, 60 * 60 + 13, 'Arch')
-- }}}

View File

@@ -0,0 +1,32 @@
-- {{{ OK: Volume level
volwidget = {}
volwidget.i = wibox.widget.textbox()
--volwidget.i:set_image(beautiful.widget_vol)
volwidget.w = awful.widget.progressbar()
volwidget.w:set_vertical(true):set_ticks(true)
volwidget.w:set_height(height):set_width(8):set_ticks_size(2)
volwidget.w:set_background_color(beautiful.fg_off_widget)
--volwidget.w:set_gradient_colors({
-- beautiful.fg_widget,
-- beautiful.fg_center_widget,
-- beautiful.fg_end_widget
--})
volwidget.t = awful.tooltip({ objects = { volwidget.i, volwidget.w } })
volwidget.refresh = function() vicious.force({ volwidget }) end
externals.hook.after(externals.sound, 'down', volwidget.refresh)
externals.hook.after(externals.sound, 'up', volwidget.refresh)
externals.hook.after(externals.sound, 'mute', volwidget.refresh)
volwidget.b = awful.util.table.join(
awful.button({ }, 1, externals.sound.mute),
awful.button({ }, 3, externals.sound.manager),
awful.button({ }, 4, externals.sound.up),
awful.button({ }, 5, externals.sound.down)
)
volwidget.i:buttons(volwidget.b)
volwidget.w:buttons(volwidget.b)
vicious.register(volwidget, vicious.widgets.volume, function(widget, args)
widget.i:set_text(args[2] .. ' ')
widget.w:set_value(args[1] / 100.0)
widget.t:set_text(args[1] .. '%')
end, 15, externals.sound.channel)
-- }}}

View File

@@ -0,0 +1,24 @@
-- {{{ OK: Wifi
wifiwidget = {}
wifiwidget.i = wibox.widget.imagebox()
wifiwidget.w = wibox.widget.textbox()
wifiwidget.t = awful.tooltip({ objects = { wifiwidget.w, wifiwidget.i } })
wifiwidget.w:buttons(netwidget.b)
wifiwidget.i:buttons(netwidget.b)
vicious.register(wifiwidget, vicious.widgets.wifi, function(widget, args)
if args['{ssid}'] == 'N/A' then
widget.t:set_text('')
widget.i:set_image(nil)
widget.w:set_text('')
else
widget.t:set_text(
'mode : ' .. args['{mode}'] .. '\n' ..
'rate : ' .. args['{rate}'] .. ' Mbit/s\n' ..
'channel : ' .. args['{chan}'] .. '\n' ..
'strength: ' .. args['{sign}'] .. ' db'
)
widget.i:set_image(beautiful.widget_wifi)
widget.w:set_text(' ' .. args['{ssid}'])
end
end, 67, 'wlan0')
-- }}}

View File

@@ -0,0 +1,25 @@
-- {{{ OK: Weather
wthwidget = {}
wthwidget.w = widget({ type = "textbox" })
wthwidget.t = awful.tooltip({
objects = { wthwidget.w }
})
wthwidget.b = awful.util.table.join(
awful.button({ }, 1, function ()
vicious.force({ wthwidget })
end),
awful.button({ }, 3, function ()
awful.util.spawn('firefox http://www.weathercity.com/by/minsk/')
end)
)
wthwidget.w:buttons(wthwidget.b)
vicious.register(wthwidget, vicious.widgets.weather, function(widget, args)
widget.w:set_text(' ' .. args['{city}'] .. ': ' .. args['{tempc}'] .. 'C')
widget.t:set_text(
'Weather for ' .. args['{city}'] .. '\n' ..
' wind : ' .. args['{wind}'] .. ' ' .. args['{windkmh}'] .. ' km/h\n' ..
' sky : ' .. args['{sky}'] .. '\n' ..
' humidity: ' .. args['{humid}'] .. '%\n' ..
' pressure: ' .. args['{press}'] .. ' mm')
end, 60 * 30 + 23, 'UMMS')
-- }}}

23
.config/htop/htoprc Normal file
View File

@@ -0,0 +1,23 @@
# Beware! This file is rewritten by htop when settings are changed in the interface.
# The parser is also very primitive, and not human-friendly.
fields=20 0 48 38 39 2 46 47 49 1
sort_key=46
sort_direction=1
hide_threads=0
hide_kernel_threads=0
hide_userland_threads=1
shadow_other_users=0
show_thread_names=0
highlight_base_name=1
highlight_megabytes=1
highlight_threads=1
tree_view=1
header_margin=0
detailed_cpu_time=1
cpu_count_from_zero=0
color_scheme=0
delay=15
left_meters=AllCPUs Memory Swap
left_meter_modes=1 1 1
right_meters=Tasks LoadAverage Uptime Clock Battery
right_meter_modes=2 2 2 2 2

244
.dosbox/dosbox-0.74.conf Normal file
View File

@@ -0,0 +1,244 @@
# This is the configurationfile for DOSBox 0.74. (Please use the latest version of DOSBox)
# Lines starting with a # are commentlines and are ignored by DOSBox.
# They are used to (briefly) document the effect of each option.
[sdl]
# fullscreen: Start dosbox directly in fullscreen. (Press ALT-Enter to go back)
# fulldouble: Use double buffering in fullscreen. It can reduce screen flickering, but it can also result in a slow DOSBox.
# fullresolution: What resolution to use for fullscreen: original or fixed size (e.g. 1024x768).
# Using your monitor's native resolution with aspect=true might give the best results.
# If you end up with small window on a large screen, try an output different from surface.
# windowresolution: Scale the window to this size IF the output device supports hardware scaling.
# (output=surface does not!)
# output: What video system to use for output.
# Possible values: surface, overlay, opengl, openglnb.
# autolock: Mouse will automatically lock, if you click on the screen. (Press CTRL-F10 to unlock)
# sensitivity: Mouse sensitivity.
# waitonerror: Wait before closing the console if dosbox has an error.
# priority: Priority levels for dosbox. Second entry behind the comma is for when dosbox is not focused/minimized.
# pause is only valid for the second entry.
# Possible values: lowest, lower, normal, higher, highest, pause.
# mapperfile: File used to load/save the key/event mappings from. Resetmapper only works with the defaul value.
# usescancodes: Avoid usage of symkeys, might not work on all operating systems.
fullscreen=false
fulldouble=false
fullresolution=original
windowresolution=original
output=surface
autolock=true
sensitivity=100
waitonerror=true
priority=higher,normal
mapperfile=mapper-0.74.map
usescancodes=true
[dosbox]
# language: Select another language file.
# machine: The type of machine tries to emulate.
# Possible values: hercules, cga, tandy, pcjr, ega, vgaonly, svga_s3, svga_et3000, svga_et4000, svga_paradise, vesa_nolfb, vesa_oldvbe.
# captures: Directory where things like wave, midi, screenshot get captured.
# memsize: Amount of memory DOSBox has in megabytes.
# This value is best left at its default to avoid problems with some games,
# though few games might require a higher value.
# There is generally no speed advantage when raising this value.
language=
machine=svga_s3
captures=capture
memsize=16
[render]
# frameskip: How many frames DOSBox skips before drawing one.
# aspect: Do aspect correction, if your output method doesn't support scaling this can slow things down!.
# scaler: Scaler used to enlarge/enhance low resolution modes.
# If 'forced' is appended, then the scaler will be used even if the result might not be desired.
# Possible values: none, normal2x, normal3x, advmame2x, advmame3x, advinterp2x, advinterp3x, hq2x, hq3x, 2xsai, super2xsai, supereagle, tv2x, tv3x, rgb2x, rgb3x, scan2x, scan3x.
frameskip=0
aspect=false
scaler=normal2x
[cpu]
# core: CPU Core used in emulation. auto will switch to dynamic if available and appropriate.
# Possible values: auto, dynamic, normal, simple.
# cputype: CPU Type used in emulation. auto is the fastest choice.
# Possible values: auto, 386, 386_slow, 486_slow, pentium_slow, 386_prefetch.
# cycles: Amount of instructions DOSBox tries to emulate each millisecond.
# Setting this value too high results in sound dropouts and lags.
# Cycles can be set in 3 ways:
# 'auto' tries to guess what a game needs.
# It usually works, but can fail for certain games.
# 'fixed #number' will set a fixed amount of cycles. This is what you usually need if 'auto' fails.
# (Example: fixed 4000).
# 'max' will allocate as much cycles as your computer is able to handle.
#
# Possible values: auto, fixed, max.
# cycleup: Amount of cycles to decrease/increase with keycombo.(CTRL-F11/CTRL-F12)
# cycledown: Setting it lower than 100 will be a percentage.
core=auto
cputype=auto
cycles=auto
cycleup=10
cycledown=20
[mixer]
# nosound: Enable silent mode, sound is still emulated though.
# rate: Mixer sample rate, setting any device's rate higher than this will probably lower their sound quality.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# blocksize: Mixer block size, larger blocks might help sound stuttering but sound will also be more lagged.
# Possible values: 1024, 2048, 4096, 8192, 512, 256.
# prebuffer: How many milliseconds of data to keep on top of the blocksize.
nosound=false
rate=44100
blocksize=1024
prebuffer=20
[midi]
# mpu401: Type of MPU-401 to emulate.
# Possible values: intelligent, uart, none.
# mididevice: Device that will receive the MIDI data from MPU-401.
# Possible values: default, win32, alsa, oss, coreaudio, coremidi, none.
# midiconfig: Special configuration options for the device driver. This is usually the id of the device you want to use.
# See the README/Manual for more details.
mpu401=intelligent
mididevice=default
midiconfig=
[sblaster]
# sbtype: Type of Soundblaster to emulate. gb is Gameblaster.
# Possible values: sb1, sb2, sbpro1, sbpro2, sb16, gb, none.
# sbbase: The IO address of the soundblaster.
# Possible values: 220, 240, 260, 280, 2a0, 2c0, 2e0, 300.
# irq: The IRQ number of the soundblaster.
# Possible values: 7, 5, 3, 9, 10, 11, 12.
# dma: The DMA number of the soundblaster.
# Possible values: 1, 5, 0, 3, 6, 7.
# hdma: The High DMA number of the soundblaster.
# Possible values: 1, 5, 0, 3, 6, 7.
# sbmixer: Allow the soundblaster mixer to modify the DOSBox mixer.
# oplmode: Type of OPL emulation. On 'auto' the mode is determined by sblaster type. All OPL modes are Adlib-compatible, except for 'cms'.
# Possible values: auto, cms, opl2, dualopl2, opl3, none.
# oplemu: Provider for the OPL emulation. compat might provide better quality (see oplrate as well).
# Possible values: default, compat, fast.
# oplrate: Sample rate of OPL music emulation. Use 49716 for highest quality (set the mixer rate accordingly).
# Possible values: 44100, 49716, 48000, 32000, 22050, 16000, 11025, 8000.
sbtype=sb16
sbbase=220
irq=7
dma=1
hdma=5
sbmixer=true
oplmode=auto
oplemu=default
oplrate=44100
[gus]
# gus: Enable the Gravis Ultrasound emulation.
# gusrate: Sample rate of Ultrasound emulation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# gusbase: The IO base address of the Gravis Ultrasound.
# Possible values: 240, 220, 260, 280, 2a0, 2c0, 2e0, 300.
# gusirq: The IRQ number of the Gravis Ultrasound.
# Possible values: 5, 3, 7, 9, 10, 11, 12.
# gusdma: The DMA channel of the Gravis Ultrasound.
# Possible values: 3, 0, 1, 5, 6, 7.
# ultradir: Path to Ultrasound directory. In this directory
# there should be a MIDI directory that contains
# the patch files for GUS playback. Patch sets used
# with Timidity should work fine.
gus=false
gusrate=44100
gusbase=240
gusirq=5
gusdma=3
ultradir=C:\ULTRASND
[speaker]
# pcspeaker: Enable PC-Speaker emulation.
# pcrate: Sample rate of the PC-Speaker sound generation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# tandy: Enable Tandy Sound System emulation. For 'auto', emulation is present only if machine is set to 'tandy'.
# Possible values: auto, on, off.
# tandyrate: Sample rate of the Tandy 3-Voice generation.
# Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# disney: Enable Disney Sound Source emulation. (Covox Voice Master and Speech Thing compatible).
pcspeaker=true
pcrate=44100
tandy=auto
tandyrate=44100
disney=true
[joystick]
# joysticktype: Type of joystick to emulate: auto (default), none,
# 2axis (supports two joysticks),
# 4axis (supports one joystick, first joystick used),
# 4axis_2 (supports one joystick, second joystick used),
# fcs (Thrustmaster), ch (CH Flightstick).
# none disables joystick emulation.
# auto chooses emulation depending on real joystick(s).
# (Remember to reset dosbox's mapperfile if you saved it earlier)
# Possible values: auto, 2axis, 4axis, 4axis_2, fcs, ch, none.
# timed: enable timed intervals for axis. Experiment with this option, if your joystick drifts (away).
# autofire: continuously fires as long as you keep the button pressed.
# swap34: swap the 3rd and the 4th axis. can be useful for certain joysticks.
# buttonwrap: enable button wrapping at the number of emulated buttons.
joysticktype=auto
timed=true
autofire=false
swap34=false
buttonwrap=false
[serial]
# serial1: set type of device connected to com port.
# Can be disabled, dummy, modem, nullmodem, directserial.
# Additional parameters must be in the same line in the form of
# parameter:value. Parameter for all types is irq (optional).
# for directserial: realport (required), rxdelay (optional).
# (realport:COM1 realport:ttyS0).
# for modem: listenport (optional).
# for nullmodem: server, rxdelay, txdelay, telnet, usedtr,
# transparent, port, inhsocket (all optional).
# Example: serial1=modem listenport:5000
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial2: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial3: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial4: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
serial1=dummy
serial2=dummy
serial3=disabled
serial4=disabled
[dos]
# xms: Enable XMS support.
# ems: Enable EMS support.
# umb: Enable UMB support.
# keyboardlayout: Language code of the keyboard layout (or none).
xms=true
ems=true
umb=true
keyboardlayout=auto
[ipx]
# ipx: Enable ipx over UDP/IP emulation.
ipx=false
[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.
mount d ~/vbox/shared
mount c ~/vbox/dos
c:

24
.gitconfig Normal file
View File

@@ -0,0 +1,24 @@
[user]
name = Artem Sheremet
email = dot.doom@gmail.com
[color]
ui = auto
[alias]
co = checkout
st = status
di = diff -w --no-prefix
df = diff
dc = diff --cached
ci = commit
br = branch
lg = log -p
lol = log --graph --decorate --pretty=oneline --abbrev-commit
lola = log --graph --decorate --pretty=oneline --abbrev-commit --all
ls = ls-files
# Show files ignored by git:
ign = ls-files -o -i --exclude-standard
meta-fs = !/opt/bin/git-meta-fs
[apply]
whitespace = nowarn

14
.iftoprc Normal file
View File

@@ -0,0 +1,14 @@
interface: eth0
dns-resolution: yes
port-resolution: no
#filter-code: bpf
show-bars: yes
#promiscuous: (yes|no)
port-display: on
hide-source: yes
hide-destination: no
use-bytes: yes
sort: 2s
line-display: two-line
show-totals: yes
log-scale: no

View File

@@ -0,0 +1,19 @@
[Default Applications]
x-scheme-handler/http=chromium-browser.desktop
x-scheme-handler/https=chromium-browser.desktop
text/html=chromium-browser.desktop
application/pdf=xpdf.desktop
x-scheme-handler/about=chromium-browser.desktop
x-scheme-handler/unknown=chromium-browser.desktop
video/x-ogm+ogg=rpmfusion-smplayer.desktop
video/x-msvideo=rpmfusion-smplayer.desktop
video/x-matroska=rpmfusion-smplayer.desktop
[Added Associations]
video/x-ogm+ogg=rpmfusion-smplayer.desktop;totem.desktop;rpmfusion-smplayer_enqueue.desktop;
video/x-msvideo=rpmfusion-smplayer.desktop;
video/x-matroska=rpmfusion-smplayer.desktop;
application/x-shellscript=gedit.desktop;
application/x-ruby=gedit.desktop;
application/x-wine-extension-vbs=gedit.desktop;
application/x-shockwave-flash=chromium-browser.desktop;

6
.my.cnf Normal file
View File

@@ -0,0 +1,6 @@
[mysql]
prompt = [\D][\h:\p][\v]\n<\U:\d>\nmysql\_\c\_\l\_
pager = less -n -i -S -F -X
auto-rehash
user = root
password = root

491
.ncmpcpp/config Normal file
View File

@@ -0,0 +1,491 @@
####################################################
## this is example configuration file, copy it to ##
## ~/.ncmpcpp/config and set up your preferences ##
####################################################
#
##### directories ######
##
## Directory for storing ncmpcpp related files.
## Changing it is useful if you want to store
## everything somewhere else and provide command
## line setting for alternative location to config
## file which defines that while launching ncmpcpp.
##
#
#ncmpcpp_directory = "~/.ncmpcpp"
#
##
## Directory for storing downloaded lyrics. It
## defaults to ~/.lyrics since other MPD clients
## (eg. ncmpc) also use that location.
##
#
#lyrics_directory = "~/.lyrics"
#
##### connection settings #####
#
## set it in order to make tag editor and renaming files work properly
#
#mpd_host = "localhost"
#
#mpd_port = "6600"
#
mpd_music_dir = "/home/music"
#
#mpd_connection_timeout = "5"
#
#mpd_crossfade_time = "5"
#
#mpd_communication_mode = "notifications" (polling/notifications)
#
##### music visualizer #####
##
## Note: In order to make music visualizer work you'll
## need to use mpd fifo output, whose format parameter
## has to be set to 44100:16:1 for mono visualization
## or 44100:16:2 for stereo visualization. Example
## configuration (it has to be put into mpd.conf):
##
## audio_output {
## type "fifo"
## name "My FIFO"
## path "/tmp/mpd.fifo"
## format "44100:16:2"
## }
##
#
##
## If you set format to 44100:16:2, make it 'yes'.
##
#
#visualizer_in_stereo = "no"
#
#visualizer_fifo_path = ""
#
##
## Note: Below parameter is needed for ncmpcpp
## to determine which output provides data for
## visualizer and thus allow syncing between
## visualization and sound as currently there
## are some problems with it.
##
#
#visualizer_output_name = ""
#
##
## Note: Below parameter defines how often ncmpcpp
## has to "synchronize" visualizer and audio outputs.
## 30 seconds is optimal value, but if you experience
## synchronization problems, set it to lower value.
## Keep in mind that sane values start with >=10.
##
#
#visualizer_sync_interval = "30"
#
##
## Note: To enable spectrum frequency visualization
## you need to compile ncmpcpp with fftw3 support.
##
#
#visualizer_type = "wave" (spectrum/wave)
#
#visualizer_look = "◆│"
#
##### system encoding #####
##
## ncmpcpp should detect your charset encoding
## but if it failed to do so, you can specify
## charset encoding you are using here.
##
## Note: You can see whether your ncmpcpp build
## supports charset detection by checking output
## of `ncmpcpp --version`.
##
## Note: Since MPD uses utf8 by default, setting
## this option makes sense only if your encoding
## is different.
##
#
#system_encoding = ""
#
##### delays #####
#
## delay after playlist highlighting will be disabled (0 = don't disable)
#
#playlist_disable_highlight_delay = "5"
#
## defines how long various messages are supposed to be visible
#
#message_delay_time = "4"
#
##### song format #####
##
## for song format you can use:
##
## %l - length
## %f - filename
## %D - directory
## %a - artist
## %A - album artist
## %t - title
## %b - album
## %y - year
## %n - track number (01/12 -> 01)
## %N - full track info (01/12 -> 01/12)
## %g - genre
## %c - composer
## %p - performer
## %d - disc
## %C - comment
## $R - begin right alignment
##
## you can also put them in { } and then it will be displayed
## only if all requested values are available and/or define alternate
## value with { }|{ } eg. {%a - %t}|{%f}
##
## Note: If you want to set limit on maximal length of a tag, just
## put the appropriate number between % and character that defines
## tag type, e.g. to make album take max. 20 terminal cells, use '%20b'.
##
## Note: Format that is similar to "%a - %t" (i.e. without any additional
## braces) is equal to "{%a - %t}", so if one of the tags is missing,
## you'll get nothing.
##
## text can also have different color than the main window has,
## eg. if you want length to be green, write $3%l$9
##
## available values:
##
## - 0 - default window color (discards all other colors)
## - 1 - black
## - 2 - red
## - 3 - green
## - 4 - yellow
## - 5 - blue
## - 6 - magenta
## - 7 - cyan
## - 8 - white
## - 9 - end of current color
##
## Note: colors can be nested.
##
#
#song_list_format = "{%a - }{%t}|{$8%f$9}$R{$3(%l)$9}"
#
#song_status_format = "{{%a{ \"%b\"{ (%y)}} - }{%t}}|{%f}"
#
#song_library_format = "{%n - }{%t}|{%f}"
#
#tag_editor_album_format = "{(%y) }%b"
#
##
## Note: Below variables are for alternative version of user's interface.
## Their syntax supports all tags and colors listed above plus some extra
## markers used for text attributes. They are followed by character '$'.
## After that you can put:
##
## - b - bold text
## - u - underline text
## - r - reverse colors
## - a - use alternative character set
##
## If you don't want to use an attribute anymore, just put it again, but
## this time insert character '/' between '$' and attribute character,
## e.g. {$b%t$/b}|{$r%f$/r} will display bolded title tag or filename
## with reversed colors.
##
#
#alternative_header_first_line_format = "$b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b"
#
#alternative_header_second_line_format = "{{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D}"
#
##
## Note: Below variables also supports
## text attributes listed above.
##
#
#now_playing_prefix = "$b"
#
#now_playing_suffix = "$/b"
#
#browser_playlist_prefix = "$2playlist$9 "
#
#selected_item_prefix = "$6"
#
#selected_item_suffix = "$9"
#
## colors are not supported for below variable
#
#song_window_title_format = "{%a - }{%t}|{%f}"
#
##### columns settings #####
##
## syntax of song columns list format is "column column etc."
##
## - syntax for each column is:
##
## (width of column)[column's color]{displayed tag}
##
## Note: Width is by default in %, if you want a column to
## have fixed size, add 'f' after the value, e.g. (10)[white]{a}
## will be the column that take 10% of screen (so the real column's
## width will depend on actual screen size), whereas (10f)[white]{a}
## will take 10 terminal cells, no matter how wide the screen is.
##
## - color is optional (if you want the default one, type [])
##
## Note: You can give a column additional attributes by putting appropriate
## character after displayed tag character. Available attributes are:
##
## - r - column will be right aligned
## - E - if tag is empty, empty tag marker won't be displayed
##
## You can also:
##
## - give a column custom name by putting it after attributes,
## separated with character ':', e.g. {lr:Length} gives you
## right aligned column of lengths named "Length".
##
## - define sequence of tags, that have to be displayed in case
## predecessor is empty in a way similar to the one in classic
## song format, i.e. using '|' character, e.g. {a|c|p:Owner}
## creates column named "Owner" that tries to display artist
## tag and then composer and performer if previous ones are
## not available.
##
#
#song_columns_list_format = "(7f)[green]{l} (25)[cyan]{a} (40)[]{t|f} (30)[red]{b}"
#
##### various settings #####
#
##
## Note: Custom command that will be executed each
## time song changes. Useful for notifications etc.
##
## Attention: It doesn't support song format anymore.
## Use `ncmpcpp --now-playing SONG_FORMAT` instead.
##
#execute_on_song_change = ""
#
#playlist_show_remaining_time = "no"
#
#playlist_shorten_total_times = "no"
#
#playlist_separate_albums = "no"
#
#playlist_display_mode = "classic" (classic/columns)
#
#browser_display_mode = "classic" (classic/columns)
#
#search_engine_display_mode = "classic" (classic/columns)
#
#playlist_editor_display_mode = "classic" (classic/columns)
#
#discard_colors_if_item_is_selected = "yes"
#
#incremental_seeking = "yes"
#
#seek_time = "1"
#
#autocenter_mode = "no"
#
#centered_cursor = "no"
#
##
## Note: You can specify third character which will
## be used to build 'empty' part of progressbar.
##
#progressbar_look = "=>"
#
#default_place_to_search_in = "database" (database/playlist)
#
#user_interface = "classic" (classic/alternative)
#
#media_library_left_column = "a" (possible values: a,y,g,c,p, legend above)
#
#default_find_mode = "wrapped" (wrapped/normal)
#
#default_space_mode = "add" (add/select)
#
#default_tag_editor_left_col = "albums" (albums/dirs)
#
#default_tag_editor_pattern = "%n - %t"
#
#header_visibility = "yes"
#
#statusbar_visibility = "yes"
#
#titles_visibility = "yes"
#
#header_text_scrolling = "yes"
#
#fancy_scrolling = "yes"
#
#cyclic_scrolling = "no"
#
#lines_scrolled = "2"
#
#follow_now_playing_lyrics = "no"
#
#fetch_lyrics_for_current_song_in_background = "no"
#
#store_lyrics_in_song_dir = "no"
#
##
## Note: If you set this variable, ncmpcpp will try to
## get info from last.fm in language you set and if it
## fails, it will fall back to english. Otherwise it will
## use english the first time.
##
## Note: Language has to be expressed as an ISO 639 alpha-2 code.
##
#lastfm_preferred_language = ""
#
#ncmpc_like_songs_adding = "no" (enabled - add/remove, disabled - always add)
#
#show_hidden_files_in_local_browser = "no"
#
#display_screens_numbers_on_start = "yes"
#
##
## How shall key_screen_switcher work?
##
## - "previous" - switch between current and last used screen
## - "sequence: 2 -> 9 -> 5" - switch between given sequence of screens.
##
## Screen numbers you can use after 'sequence' keyword are:
##
## - 1 - help
## - 2 - playlist
## - 3 - browser
## - 4 - search engine
## - 5 - media library
## - 6 - playlist editor
## - 7 - tag editor
## - 8 - outputs
## - 9 - visualizer
## - 10 - clock
##
## As you can see, above example will switch between
## playlist, visualizer and media library screens.
##
#screen_switcher_mode = "sequence: 2 -> 3"
#
##
## Default width of locked screen (in %).
## Acceptable values are from 20 to 80.
##
#
#locked_screen_width_part = "50"
#
#ask_for_locked_screen_width_part = "yes"
#
##
## Note: You can define startup screen for ncmpcpp
## by choosing screen number from the list above.
##
#startup_screen = "2"
#
#jump_to_now_playing_song_at_start = "yes"
#
#ask_before_clearing_main_playlist = "no"
#
#clock_display_seconds = "no"
#
#display_volume_level = "yes"
#
#display_bitrate = "no"
#
#display_remaining_time = "no"
#
#regular_expressions = "basic" (basic/extended)
#
##
## Note: If below is enabled, ncmpcpp will ignore leading
## "The" word while sorting items in browser, tags in
## media library, etc.
##
#ignore_leading_the = "no"
#
#block_search_constraints_change_if_items_found = "yes"
#
#mouse_support = "yes"
#
#mouse_list_scroll_whole_page = "yes"
#
#empty_tag_marker = "<empty>"
#
#tag_editor_extended_numeration = "no"
#
#media_library_display_date = "yes"
#
#media_library_display_empty_tag = "yes"
#
#media_library_disable_two_column_mode = "no"
#
#enable_window_title = "yes"
#
##
## Note: You can choose default search mode for search
## engine. Available modes are:
##
## - 1 - use mpd built-in searching (no regexes, pattern matching)
## - 2 - use ncmpcpp searching (pattern matching with support for regexes,
## but if your mpd is on a remote machine, downloading big database
## to process it can take a while
## - 3 - match only exact values (this mode uses mpd function for searching
## in database and local one for searching in current playlist)
##
#
#search_engine_default_search_mode = "1"
#
##
## Note: Below variables can allow you to physically
## remove files and directories from your hdd using
## ncmpcpp's browser screen.
##
#
allow_physical_files_deletion = "yes"
#
allow_physical_directories_deletion = "yes"
#
#external_editor = ""
#
#use_console_editor = "no" (set to yes, if your editor is console app)
#
##### colors definitions #####
#
#colors_enabled = "yes"
#
#empty_tag_color = "cyan"
#
#header_window_color = "default"
#
#volume_color = "default"
#
#state_line_color = "default"
#
#state_flags_color = "default"
#
#main_window_color = "yellow"
#
#color1 = "white"
#
#color2 = "green"
#
#main_window_highlight_color = "yellow"
#
#progressbar_color = "default"
#
#statusbar_color = "default"
#
#alternative_ui_separator_color = "black"
#
#active_column_color = "red"
#
#visualizer_color = "yellow"
#
#window_border_color = "green"
#
#active_window_border = "red"
#

137
.rc Normal file
View File

@@ -0,0 +1,137 @@
. /etc/profile
export EDITOR=vim
export BROWSER=chromium
export PAGER='less -R -F -X -S -n -i'
export PATH="$HOME/bin:$HOME/.rvm/bin:/opt/bin:$HOME/.gem/ruby/1.9.1/bin:/usr/bin/vendor_perl:$PATH"
export GTK_IM_MODULE=xim
export GIT_COMMITTER_NAME='Artem Sheremet'
export GIT_COMMITTER_EMAIL='dot.doom@gmail.com'
# redefinitions
if [ "$(uname -s)" = "Linux" ]; then
LS_VER=`/bin/ls --version | head -1 | cut -d' ' -f4`
LS_VER_INT=`echo $LS_VER | cut -d'.' -f1`
if [ $LS_VER_INT -lt 8 ]; then
alias ls='ls -hF --color=auto'
else
alias ls='ls -hF --color=auto --group-directories-first'
fi
alias pgrep='pgrep -lf'
alias crontab='crontab -i'
elif [ "$(uname -s)" = "FreeBSD" ]; then
export LSCOLORS=ExGxFxFxCxdxDxabagacac
alias ls='ls -hFIG'
alias pgrep='pgrep -laf'
alias stat="/usr/bin/stat -f \" File: '%N'%SY%n Size: %-15z Blocks: %-10b IO Block: %-6k %HT%nDevice: %7Hr/%-7Lr Inode: %-11i Links: %l%nAccess: (%Mp%Lp/%Sp) Uid: (%5u/%8Su) Gid: (%5g/%8Sg)%nAccess: %Sa%nModify: %Sm%nChange: %Sc%n Birth: %SB\" -t '%F %T %z'"
fi
alias nc='nc -vv'
alias killall='killall -v'
alias scrot='scrot -e "mv \$f ~/screenshots/ 2>/dev/null" -cd 5'
alias qiv='qiv -fml -M'
alias qivr='qiv -u'
alias grep='grep --color=auto'
alias fgrep='grep -Frn --color=always'
alias figrep='fgrep -i'
alias svn='svn --no-auth-cache'
alias mysql='mysql --select_limit=1000'
alias ka='killall'
alias fsck='fsck -C'
alias pager=$PAGER
alias npager='pager -N'
alias l='ls -lA'
alias ds='du -sh'
alias la='cat /proc/loadavg'
alias ipt='iptables -nvL --line-numbers'
alias psa='ps axfo pid,euser,bsdstart,vsz,rss,bsdtime,args'
alias parent='ps -p $PPID -o comm='
alias dbgrep='dbgrep.pl -vpuroot'
# LOL protect me
alias mv='mv -i'
alias cp='cp -i'
alias rm='rm -i'
# git aliases
alias gb='git branch'
alias gba='git branch -av'
alias gc='git commit -v'
alias gd='git di'
alias gdc='gd --cached'
alias gl='git pull'
alias gp='git push'
alias gst='git status'
# sudo
alias sudo='sudo -E '
# work
RAILS=~/netmri/netmri/src/app/rails
alias rmunv='rm $(svn st | grep "^?" | sed -r "s/^\? +//")'
alias webui='cd $webui'
# useful stuff
[ -z "$VIM_ORIGINAL" ] && VIM_ORIGINAL="$(which vim)"
function vim() {
local COMPAT_TERM="xterm-256color"
# we only handle single-argument VIM
if [ $# -eq 1 ]; then
if [ -e "$1" ]; then
# editing an existing file
FILENAME="$1"
else
# trying to create new file, will check it's directory for WRITE access
FILENAME="`dirname $1 2>/dev/null`"
fi
if [ -w "$FILENAME" ]; then
# yahoo! writable
TERM=$COMPAT_TERM "$VIM_ORIGINAL" "$1"
else
echo 'this file will be opened with sudo'
TERM=$COMPAT_TERM sudo "$VIM_ORIGINAL" "$1" || "$VIM_ORIGINAL" "$1"
fi
else
TERM=$COMPAT_TERM "$VIM_ORIGINAL" $*
fi
}
function mkcd() {
mkdir -p $@
cd $@
}
function cpcd() {
cp $@
cd $_
}
function cdls() {
cd $@
ls
}
function fin() {
local filename="$1"
shift
find $* -iname "*$filename*"
}
if [ -r ~/.rc_local ]; then
. ~/.rc_local
fi
if [ -x "$(which dircolors 2>/dev/null)" ]; then
eval $(dircolors)
fi
webui="$RAILS"
case $- in
*i*)
# only with interactive non-sudo shell
if [ -n "$SSH_CLIENT" ] && [ -z "$SUDO_UID" ]; then
[ "$(parent)" = "screen" ] || screen -RR
fi
;;
esac
# vim: ft=sh

8
.screenrc Normal file
View File

@@ -0,0 +1,8 @@
vbell off
startup_message off
defscrollback 10240
caption always "%{+b}%H | %c %d.%m.%Y | Load: %l"
hardstatus alwayslastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
bindkey -k F1 prev
bindkey -k F2 next
#%?%{yk}%-Lw%?%{wb}%n*%f %t%?(%u)%?%?%{yk}%+Lw%?"

124
.subversion/README.txt Normal file
View File

@@ -0,0 +1,124 @@
This directory holds run-time configuration information for Subversion
clients. The configuration files all share the same syntax, but you
should examine a particular file to learn what configuration
directives are valid for that file.
The syntax is standard INI format:
- Empty lines, and lines starting with '#', are ignored.
The first significant line in a file must be a section header.
- A section starts with a section header, which must start in
the first column:
[section-name]
- An option, which must always appear within a section, is a pair
(name, value). There are two valid forms for defining an
option, both of which must start in the first column:
name: value
name = value
Whitespace around the separator (:, =) is optional.
- Section and option names are case-insensitive, but case is
preserved.
- An option's value may be broken into several lines. The value
continuation lines must start with at least one whitespace.
Trailing whitespace in the previous line, the newline character
and the leading whitespace in the continuation line is compressed
into a single space character.
- All leading and trailing whitespace around a value is trimmed,
but the whitespace within a value is preserved, with the
exception of whitespace around line continuations, as
described above.
- When a value is a boolean, any of the following strings are
recognised as truth values (case does not matter):
true false
yes no
on off
1 0
- When a value is a list, it is comma-separated. Again, the
whitespace around each element of the list is trimmed.
- Option values may be expanded within a value by enclosing the
option name in parentheses, preceded by a percent sign and
followed by an 's':
%(name)s
The expansion is performed recursively and on demand, during
svn_option_get. The name is first searched for in the same
section, then in the special [DEFAULT] section. If the name
is not found, the whole '%(name)s' placeholder is left
unchanged.
Any modifications to the configuration data invalidate all
previously expanded values, so that the next svn_option_get
will take the modifications into account.
The syntax of the configuration files is a subset of the one used by
Python's ConfigParser module; see
http://www.python.org/doc/current/lib/module-ConfigParser.html
Configuration data in the Windows registry
==========================================
On Windows, configuration data may also be stored in the registry. The
functions svn_config_read and svn_config_merge will read from the
registry when passed file names of the form:
REGISTRY:<hive>/path/to/config-key
The REGISTRY: prefix must be in upper case. The <hive> part must be
one of:
HKLM for HKEY_LOCAL_MACHINE
HKCU for HKEY_CURRENT_USER
The values in config-key represent the options in the [DEFAULT] section.
The keys below config-key represent other sections, and their values
represent the options. Only values of type REG_SZ whose name doesn't
start with a '#' will be used; other values, as well as the keys'
default values, will be ignored.
File locations
==============
Typically, Subversion uses two config directories, one for site-wide
configuration,
Unix:
/etc/subversion/servers
/etc/subversion/config
/etc/subversion/hairstyles
Windows:
%ALLUSERSPROFILE%\Application Data\Subversion\servers
%ALLUSERSPROFILE%\Application Data\Subversion\config
%ALLUSERSPROFILE%\Application Data\Subversion\hairstyles
REGISTRY:HKLM\Software\Tigris.org\Subversion\Servers
REGISTRY:HKLM\Software\Tigris.org\Subversion\Config
REGISTRY:HKLM\Software\Tigris.org\Subversion\Hairstyles
and one for per-user configuration:
Unix:
~/.subversion/servers
~/.subversion/config
~/.subversion/hairstyles
Windows:
%APPDATA%\Subversion\servers
%APPDATA%\Subversion\config
%APPDATA%\Subversion\hairstyles
REGISTRY:HKCU\Software\Tigris.org\Subversion\Servers
REGISTRY:HKCU\Software\Tigris.org\Subversion\Config
REGISTRY:HKCU\Software\Tigris.org\Subversion\Hairstyles

View File

@@ -0,0 +1,17 @@
K 8
passtype
V 6
simple
K 8
password
V 10
4025514pwf
K 15
svn:realmstring
V 63
<svn://dotdoom.zapto.org:3690> configuration files for home dir
K 8
username
V 5
artem
END

148
.subversion/config Normal file
View File

@@ -0,0 +1,148 @@
### This file configures various client-side behaviors.
###
### The commented-out examples below are intended to demonstrate
### how to use this file.
### Section for authentication and authorization customizations.
[auth]
### Set password stores used by Subversion. They should be
### delimited by spaces or commas. The order of values determines
### the order in which password stores are used.
### Valid password stores:
### gnome-keyring (Unix-like systems)
### kwallet (Unix-like systems)
### keychain (Mac OS X)
### windows-cryptoapi (Windows)
# password-stores = gnome-keyring,kwallet
###
### Set KWallet wallet used by Subversion. If empty or unset,
### then the default network wallet will be used.
# kwallet-wallet =
###
### Include PID (Process ID) in Subversion application name when
### using KWallet. It defaults to 'no'.
# kwallet-svn-application-name-with-pid = yes
###
### The rest of this section in this file has been deprecated.
### Both 'store-passwords' and 'store-auth-creds' can now be
### specified in the 'servers' file in your config directory.
### Anything specified in this section is overridden by settings
### specified in the 'servers' file.
###
### Set store-passwords to 'no' to avoid storing passwords in the
### auth/ area of your config directory. It defaults to 'yes',
### but Subversion will never save your password to disk in
### plaintext unless you tell it to (see the 'servers' file).
### Note that this option only prevents saving of *new* passwords;
### it doesn't invalidate existing passwords. (To do that, remove
### the cache files by hand as described in the Subversion book.)
store-passwords = yes
### Set store-auth-creds to 'no' to avoid storing any subversion
### credentials in the auth/ area of your config directory.
### It defaults to 'yes'. Note that this option only prevents
### saving of *new* credentials; it doesn't invalidate existing
### caches. (To do that, remove the cache files by hand.)
# store-auth-creds = no
### Section for configuring external helper applications.
[helpers]
### Set editor-cmd to the command used to invoke your text editor.
### This will override the environment variables that Subversion
### examines by default to find this information ($EDITOR,
### et al).
# editor-cmd = editor (vi, emacs, notepad, etc.)
### Set diff-cmd to the absolute path of your 'diff' program.
### This will override the compile-time default, which is to use
### Subversion's internal diff implementation.
# diff-cmd = diff_program (diff, gdiff, etc.)
### Set diff3-cmd to the absolute path of your 'diff3' program.
### This will override the compile-time default, which is to use
### Subversion's internal diff3 implementation.
# diff3-cmd = diff3_program (diff3, gdiff3, etc.)
### Set diff3-has-program-arg to 'yes' if your 'diff3' program
### accepts the '--diff-program' option.
# diff3-has-program-arg = [yes | no]
### Set merge-tool-cmd to the command used to invoke your external
### merging tool of choice. Subversion will pass 4 arguments to
### the specified command: base theirs mine merged
# merge-tool-cmd = merge_command
### Section for configuring tunnel agents.
[tunnels]
### Configure svn protocol tunnel schemes here. By default, only
### the 'ssh' scheme is defined. You can define other schemes to
### be used with 'svn+scheme://hostname/path' URLs. A scheme
### definition is simply a command, optionally prefixed by an
### environment variable name which can override the command if it
### is defined. The command (or environment variable) may contain
### arguments, using standard shell quoting for arguments with
### spaces. The command will be invoked as:
### <command> <hostname> svnserve -t
### (If the URL includes a username, then the hostname will be
### passed to the tunnel agent as <user>@<hostname>.) If the
### built-in ssh scheme were not predefined, it could be defined
### as:
# ssh = $SVN_SSH ssh -q
### If you wanted to define a new 'rsh' scheme, to be used with
### 'svn+rsh:' URLs, you could do so as follows:
# rsh = rsh
### Or, if you wanted to specify a full path and arguments:
# rsh = /path/to/rsh -l myusername
### On Windows, if you are specifying a full path to a command,
### use a forward slash (/) or a paired backslash (\\) as the
### path separator. A single backslash will be treated as an
### escape for the following character.
### Section for configuring miscelleneous Subversion options.
[miscellany]
### Set global-ignores to a set of whitespace-delimited globs
### which Subversion will ignore in its 'status' output, and
### while importing or adding files and directories.
### '*' matches leading dots, e.g. '*.rej' matches '.foo.rej'.
# global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo
# *.rej *~ #*# .#* .*.swp .DS_Store
### Set log-encoding to the default encoding for log messages
# log-encoding = latin1
### Set use-commit-times to make checkout/update/switch/revert
### put last-committed timestamps on every file touched.
# use-commit-times = yes
### Set no-unlock to prevent 'svn commit' from automatically
### releasing locks on files.
# no-unlock = yes
### Set mime-types-file to a MIME type registry file, used to
### provide hints to Subversion's MIME type auto-detection
### algorithm.
# mime-types-file = /path/to/mime.types
### Set preserved-conflict-file-exts to a whitespace-delimited
### list of patterns matching file extensions which should be
### preserved in generated conflict file names. By default,
### conflict files use custom extensions.
# preserved-conflict-file-exts = doc ppt xls od?
### Set enable-auto-props to 'yes' to enable automatic properties
### for 'svn add' and 'svn import', it defaults to 'no'.
### Automatic properties are defined in the section 'auto-props'.
# enable-auto-props = yes
### Set interactive-conflicts to 'no' to disable interactive
### conflict resolution prompting. It defaults to 'yes'.
# interactive-conflicts = no
### Section for configuring automatic properties.
[auto-props]
### The format of the entries is:
### file-name-pattern = propname[=value][;propname[=value]...]
### The file-name-pattern can contain wildcards (such as '*' and
### '?'). All entries which match (case-insensitively) will be
### applied to the file. Note that auto-props functionality
### must be enabled, which is typically done by setting the
### 'enable-auto-props' option.
# *.c = svn:eol-style=native
# *.cpp = svn:eol-style=native
# *.h = svn:keywords=Author Date Id Rev URL;svn:eol-style=native
# *.dsp = svn:eol-style=CRLF
# *.dsw = svn:eol-style=CRLF
# *.sh = svn:eol-style=native;svn:executable
# *.txt = svn:eol-style=native;svn:keywords=Author Date Id Rev URL;
# *.png = svn:mime-type=image/png
# *.jpg = svn:mime-type=image/jpeg
# Makefile = svn:eol-style=native

158
.subversion/servers Normal file
View File

@@ -0,0 +1,158 @@
### This file specifies server-specific parameters,
### including HTTP proxy information, HTTP timeout settings,
### and authentication settings.
###
### The currently defined server options are:
### http-proxy-host Proxy host for HTTP connection
### http-proxy-port Port number of proxy host service
### http-proxy-username Username for auth to proxy service
### http-proxy-password Password for auth to proxy service
### http-proxy-exceptions List of sites that do not use proxy
### http-timeout Timeout for HTTP requests in seconds
### http-compression Whether to compress HTTP requests
### neon-debug-mask Debug mask for Neon HTTP library
### http-auth-types Auth types to use for HTTP library
### ssl-authority-files List of files, each of a trusted CA
### ssl-trust-default-ca Trust the system 'default' CAs
### ssl-client-cert-file PKCS#12 format client certificate file
### ssl-client-cert-password Client Key password, if needed.
### ssl-pkcs11-provider Name of PKCS#11 provider to use.
### http-library Which library to use for http/https
### connections (neon or serf)
### store-passwords Specifies whether passwords used
### to authenticate against a
### Subversion server may be cached
### to disk in any way.
### store-plaintext-passwords Specifies whether passwords may
### be cached on disk unencrypted.
### store-ssl-client-cert-pp Specifies whether passphrase used
### to authenticate against a client
### certificate may be cached to disk
### in any way
### store-ssl-client-cert-pp-plaintext
### Specifies whether client cert
### passphrases may be cached on disk
### unencrypted (i.e., as plaintext).
### store-auth-creds Specifies whether any auth info
### (passwords as well as server certs)
### may be cached to disk.
### username Specifies the default username.
###
### Set store-passwords to 'no' to avoid storing passwords in the
### auth/ area of your config directory. It defaults to 'yes',
### but Subversion will never save your password to disk in
### plaintext unless you tell it to.
### Note that this option only prevents saving of *new* passwords;
### it doesn't invalidate existing passwords. (To do that, remove
### the cache files by hand as described in the Subversion book.)
###
### Set store-plaintext-passwords to 'no' to avoid storing
### passwords in unencrypted form in the auth/ area of your config
### directory. Set it to 'yes' to allow Subversion to store
### unencrypted passwords in the auth/ area. The default is
### 'ask', which means that Subversion will ask you before
### saving a password to disk in unencrypted form. Note that
### this option has no effect if either 'store-passwords' or
### 'store-auth-creds' is set to 'no'.
###
### Set store-ssl-client-cert-pp to 'no' to avoid storing ssl
### client certificate passphrases in the auth/ area of your
### config directory. It defaults to 'yes', but Subversion will
### never save your passphrase to disk in plaintext unless you tell
### it to via 'store-ssl-client-cert-pp-plaintext' (see below).
###
### Note store-ssl-client-cert-pp only prevents the saving of *new*
### passphrases; it doesn't invalidate existing passphrases. To do
### that, remove the cache files by hand as described in the
### Subversion book at http://svnbook.red-bean.com/nightly/en/\
### svn.serverconfig.netmodel.html\
### #svn.serverconfig.netmodel.credcache
###
### Set store-ssl-client-cert-pp-plaintext to 'no' to avoid storing
### passphrases in unencrypted form in the auth/ area of your
### config directory. Set it to 'yes' to allow Subversion to
### store unencrypted passphrases in the auth/ area. The default
### is 'ask', which means that Subversion will prompt before
### saving a passphrase to disk in unencrypted form. Note that
### this option has no effect if either 'store-auth-creds' or
### 'store-ssl-client-cert-pp' is set to 'no'.
###
### Set store-auth-creds to 'no' to avoid storing any Subversion
### credentials in the auth/ area of your config directory.
### Note that this includes SSL server certificates.
### It defaults to 'yes'. Note that this option only prevents
### saving of *new* credentials; it doesn't invalidate existing
### caches. (To do that, remove the cache files by hand.)
###
### HTTP timeouts, if given, are specified in seconds. A timeout
### of 0, i.e. zero, causes a builtin default to be used.
###
### The commented-out examples below are intended only to
### demonstrate how to use this file; any resemblance to actual
### servers, living or dead, is entirely coincidental.
### In the 'groups' section, the URL of the repository you're
### trying to access is matched against the patterns on the right.
### If a match is found, the server options are taken from the
### section with the corresponding name on the left.
[groups]
# group1 = *.collab.net
# othergroup = repository.blarggitywhoomph.com
# thirdgroup = *.example.com
### Information for the first group:
# [group1]
# http-proxy-host = proxy1.some-domain-name.com
# http-proxy-port = 80
# http-proxy-username = blah
# http-proxy-password = doubleblah
# http-timeout = 60
# http-auth-types = basic;digest;negotiate
# neon-debug-mask = 130
# store-plaintext-passwords = no
# username = harry
### Information for the second group:
# [othergroup]
# http-proxy-host = proxy2.some-domain-name.com
# http-proxy-port = 9000
# No username and password for the proxy, so use the defaults below.
### You can set default parameters in the 'global' section.
### These parameters apply if no corresponding parameter is set in
### a specifically matched group as shown above. Thus, if you go
### through the same proxy server to reach every site on the
### Internet, you probably just want to put that server's
### information in the 'global' section and not bother with
### 'groups' or any other sections.
###
### Most people might want to configure password caching
### parameters here, but you can also configure them per server
### group (per-group settings override global settings).
###
### If you go through a proxy for all but a few sites, you can
### list those exceptions under 'http-proxy-exceptions'. This only
### overrides defaults, not explicitly matched server names.
###
### 'ssl-authority-files' is a semicolon-delimited list of files,
### each pointing to a PEM-encoded Certificate Authority (CA)
### SSL certificate. See details above for overriding security
### due to SSL.
[global]
# http-proxy-exceptions = *.exception.com, www.internal-site.org
# http-proxy-host = defaultproxy.whatever.com
# http-proxy-port = 7000
# http-proxy-username = defaultusername
# http-proxy-password = defaultpassword
# http-compression = no
# http-auth-types = basic;digest;negotiate
# No http-timeout, so just use the builtin default.
# No neon-debug-mask, so neon debugging is disabled.
# ssl-authority-files = /path/to/CAcert.pem;/path/to/CAcert2.pem
#
# Password / passphrase caching parameters:
# store-passwords = no
# store-plaintext-passwords = no
# store-ssl-client-cert-pp = no
# store-ssl-client-cert-pp-plaintext = no

14
.toprc Normal file
View File

@@ -0,0 +1,14 @@
top's Config File (Linux processes with windows)
Id:f, Mode_altscr=0, Mode_irixps=1, Delay_time=3.000, Curwin=0
Def fieldscur=¥¨³´»½ÀÄ·º¹Å&')*+,-./012568<>?ABCFGHIJKLMNOPQRSTUVWXYZ[
winflags=32564, sortindx=18, maxtasks=0
summclr=1, msgsclr=1, headclr=3, taskclr=2
Job fieldscur=¥¦¹·º³´Ä»¼½§Å()*+,-./012568>?@ABCFGHIJKLMNOPQRSTUVWXYZ[
winflags=62772, sortindx=0, maxtasks=0
summclr=6, msgsclr=6, headclr=7, taskclr=6
Mem fieldscur=¥º»¼½¾¿ÀÁÃij´·Å&'()*+,-./0125689BFGHIJKLMNOPQRSTUVWXYZ[
winflags=62772, sortindx=21, maxtasks=0
summclr=5, msgsclr=5, headclr=4, taskclr=5
Usr fieldscur=¥¦§¨ª°¹·ºÄÅ)+,-./1234568;<=>?@ABCFGHIJKLMNOPQRSTUVWXYZ[
winflags=62772, sortindx=3, maxtasks=0
summclr=3, msgsclr=3, headclr=2, taskclr=3

245
.vim/autoload/pathogen.vim Normal file
View File

@@ -0,0 +1,245 @@
" pathogen.vim - path option manipulation
" Maintainer: Tim Pope <http://tpo.pe/>
" Version: 2.0
" Install in ~/.vim/autoload (or ~\vimfiles\autoload).
"
" For management of individually installed plugins in ~/.vim/bundle (or
" ~\vimfiles\bundle), adding `call pathogen#infect()` to your .vimrc
" prior to `filetype plugin indent on` is the only other setup necessary.
"
" The API is documented inline below. For maximum ease of reading,
" :set foldmethod=marker
if exists("g:loaded_pathogen") || &cp
finish
endif
let g:loaded_pathogen = 1
" Point of entry for basic default usage. Give a directory name to invoke
" pathogen#runtime_append_all_bundles() (defaults to "bundle"), or a full path
" to invoke pathogen#runtime_prepend_subdirectories(). Afterwards,
" pathogen#cycle_filetype() is invoked.
function! pathogen#infect(...) abort " {{{1
let source_path = a:0 ? a:1 : 'bundle'
if source_path =~# '[\\/]'
call pathogen#runtime_prepend_subdirectories(source_path)
else
call pathogen#runtime_append_all_bundles(source_path)
endif
call pathogen#cycle_filetype()
endfunction " }}}1
" Split a path into a list.
function! pathogen#split(path) abort " {{{1
if type(a:path) == type([]) | return a:path | endif
let split = split(a:path,'\\\@<!\%(\\\\\)*\zs,')
return map(split,'substitute(v:val,''\\\([\\,]\)'',''\1'',"g")')
endfunction " }}}1
" Convert a list to a path.
function! pathogen#join(...) abort " {{{1
if type(a:1) == type(1) && a:1
let i = 1
let space = ' '
else
let i = 0
let space = ''
endif
let path = ""
while i < a:0
if type(a:000[i]) == type([])
let list = a:000[i]
let j = 0
while j < len(list)
let escaped = substitute(list[j],'[,'.space.']\|\\[\,'.space.']\@=','\\&','g')
let path .= ',' . escaped
let j += 1
endwhile
else
let path .= "," . a:000[i]
endif
let i += 1
endwhile
return substitute(path,'^,','','')
endfunction " }}}1
" Convert a list to a path with escaped spaces for 'path', 'tag', etc.
function! pathogen#legacyjoin(...) abort " {{{1
return call('pathogen#join',[1] + a:000)
endfunction " }}}1
" Remove duplicates from a list.
function! pathogen#uniq(list) abort " {{{1
let i = 0
let seen = {}
while i < len(a:list)
if (a:list[i] ==# '' && exists('empty')) || has_key(seen,a:list[i])
call remove(a:list,i)
elseif a:list[i] ==# ''
let i += 1
let empty = 1
else
let seen[a:list[i]] = 1
let i += 1
endif
endwhile
return a:list
endfunction " }}}1
" \ on Windows unless shellslash is set, / everywhere else.
function! pathogen#separator() abort " {{{1
return !exists("+shellslash") || &shellslash ? '/' : '\'
endfunction " }}}1
" Convenience wrapper around glob() which returns a list.
function! pathogen#glob(pattern) abort " {{{1
let files = split(glob(a:pattern),"\n")
return map(files,'substitute(v:val,"[".pathogen#separator()."/]$","","")')
endfunction "}}}1
" Like pathogen#glob(), only limit the results to directories.
function! pathogen#glob_directories(pattern) abort " {{{1
return filter(pathogen#glob(a:pattern),'isdirectory(v:val)')
endfunction "}}}1
" Turn filetype detection off and back on again if it was already enabled.
function! pathogen#cycle_filetype() " {{{1
if exists('g:did_load_filetypes')
filetype off
filetype on
endif
endfunction " }}}1
" Checks if a bundle is 'disabled'. A bundle is considered 'disabled' if
" its 'basename()' is included in g:pathogen_disabled[]' or ends in a tilde.
function! pathogen#is_disabled(path) " {{{1
if a:path =~# '\~$'
return 1
elseif !exists("g:pathogen_disabled")
return 0
endif
let sep = pathogen#separator()
return index(g:pathogen_disabled, strpart(a:path, strridx(a:path, sep)+1)) != -1
endfunction "}}}1
" Prepend all subdirectories of path to the rtp, and append all 'after'
" directories in those subdirectories.
function! pathogen#runtime_prepend_subdirectories(path) " {{{1
let sep = pathogen#separator()
let before = filter(pathogen#glob_directories(a:path.sep."*"), '!pathogen#is_disabled(v:val)')
let after = filter(pathogen#glob_directories(a:path.sep."*".sep."after"), '!pathogen#is_disabled(v:val[0:-7])')
let rtp = pathogen#split(&rtp)
let path = expand(a:path)
call filter(rtp,'v:val[0:strlen(path)-1] !=# path')
let &rtp = pathogen#join(pathogen#uniq(before + rtp + after))
return &rtp
endfunction " }}}1
" For each directory in rtp, check for a subdirectory named dir. If it
" exists, add all subdirectories of that subdirectory to the rtp, immediately
" after the original directory. If no argument is given, 'bundle' is used.
" Repeated calls with the same arguments are ignored.
function! pathogen#runtime_append_all_bundles(...) " {{{1
let sep = pathogen#separator()
let name = a:0 ? a:1 : 'bundle'
if "\n".s:done_bundles =~# "\\M\n".name."\n"
return ""
endif
let s:done_bundles .= name . "\n"
let list = []
for dir in pathogen#split(&rtp)
if dir =~# '\<after$'
let list += filter(pathogen#glob_directories(substitute(dir,'after$',name,'').sep.'*[^~]'.sep.'after'), '!pathogen#is_disabled(v:val[0:-7])') + [dir]
else
let list += [dir] + filter(pathogen#glob_directories(dir.sep.name.sep.'*[^~]'), '!pathogen#is_disabled(v:val)')
endif
endfor
let &rtp = pathogen#join(pathogen#uniq(list))
return 1
endfunction
let s:done_bundles = ''
" }}}1
" Invoke :helptags on all non-$VIM doc directories in runtimepath.
function! pathogen#helptags() " {{{1
let sep = pathogen#separator()
for dir in pathogen#split(&rtp)
if (dir.sep)[0 : strlen($VIMRUNTIME)] !=# $VIMRUNTIME.sep && filewritable(dir.sep.'doc') == 2 && !empty(glob(dir.sep.'doc'.sep.'*')) && (!filereadable(dir.sep.'doc'.sep.'tags') || filewritable(dir.sep.'doc'.sep.'tags'))
helptags `=dir.'/doc'`
endif
endfor
endfunction " }}}1
command! -bar Helptags :call pathogen#helptags()
" Like findfile(), but hardcoded to use the runtimepath.
function! pathogen#runtime_findfile(file,count) "{{{1
let rtp = pathogen#join(1,pathogen#split(&rtp))
return fnamemodify(findfile(a:file,rtp,a:count),':p')
endfunction " }}}1
" Backport of fnameescape().
function! pathogen#fnameescape(string) " {{{1
if exists('*fnameescape')
return fnameescape(a:string)
elseif a:string ==# '-'
return '\-'
else
return substitute(escape(a:string," \t\n*?[{`$\\%#'\"|!<"),'^[+>]','\\&','')
endif
endfunction " }}}1
function! s:find(count,cmd,file,lcd) " {{{1
let rtp = pathogen#join(1,pathogen#split(&runtimepath))
let file = pathogen#runtime_findfile(a:file,a:count)
if file ==# ''
return "echoerr 'E345: Can''t find file \"".a:file."\" in runtimepath'"
elseif a:lcd
let path = file[0:-strlen(a:file)-2]
execute 'lcd `=path`'
return a:cmd.' '.pathogen#fnameescape(a:file)
else
return a:cmd.' '.pathogen#fnameescape(file)
endif
endfunction " }}}1
function! s:Findcomplete(A,L,P) " {{{1
let sep = pathogen#separator()
let cheats = {
\'a': 'autoload',
\'d': 'doc',
\'f': 'ftplugin',
\'i': 'indent',
\'p': 'plugin',
\'s': 'syntax'}
if a:A =~# '^\w[\\/]' && has_key(cheats,a:A[0])
let request = cheats[a:A[0]].a:A[1:-1]
else
let request = a:A
endif
let pattern = substitute(request,'\'.sep,'*'.sep,'g').'*'
let found = {}
for path in pathogen#split(&runtimepath)
let path = expand(path, ':p')
let matches = split(glob(path.sep.pattern),"\n")
call map(matches,'isdirectory(v:val) ? v:val.sep : v:val')
call map(matches,'expand(v:val, ":p")[strlen(path)+1:-1]')
for match in matches
let found[match] = 1
endfor
endfor
return sort(keys(found))
endfunction " }}}1
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Ve :execute s:find(<count>,'edit<bang>',<q-args>,0)
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vedit :execute s:find(<count>,'edit<bang>',<q-args>,0)
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vopen :execute s:find(<count>,'edit<bang>',<q-args>,1)
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vsplit :execute s:find(<count>,'split',<q-args>,<bang>1)
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vvsplit :execute s:find(<count>,'vsplit',<q-args>,<bang>1)
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vtabedit :execute s:find(<count>,'tabedit',<q-args>,<bang>1)
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vpedit :execute s:find(<count>,'pedit',<q-args>,<bang>1)
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vread :execute s:find(<count>,'read',<q-args>,<bang>1)
" vim:set ft=vim ts=8 sw=2 sts=2:

File diff suppressed because it is too large Load Diff

1
.vim/bundle/vundle/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
doc/tags

View File

@@ -0,0 +1,3 @@
let g:netrw_dirhistmax =10
let g:netrw_dirhist_cnt =1
let g:netrw_dirhist_1='/home/artem/downloads/java/test'

View File

@@ -0,0 +1,7 @@
Copyright (C) 2010 http://github.com/gmarik
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.

View File

@@ -0,0 +1,142 @@
## About
[Vundle] is short for **V**imb**undle** and is a [Vim] plugin manager.
![Vundle-installer](http://25.media.tumblr.com/tumblr_m8m96w06G81r39828o1_1280.png)
## Quick start
1. Setup [Vundle]:
```
$ git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
```
2. Configure bundles:
Sample `.vimrc`:
```vim
set nocompatible " be iMproved
filetype off " required!
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
" let Vundle manage Vundle
" required!
Bundle 'gmarik/vundle'
" My Bundles here:
"
" original repos on github
Bundle 'tpope/vim-fugitive'
Bundle 'Lokaltog/vim-easymotion'
Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
Bundle 'tpope/vim-rails.git'
" vim-scripts repos
Bundle 'L9'
Bundle 'FuzzyFinder'
" non github repos
Bundle 'git://git.wincent.com/command-t.git'
" ...
filetype plugin indent on " required!
"
" Brief help
" :BundleList - list configured bundles
" :BundleInstall(!) - install(update) bundles
" :BundleSearch(!) foo - search(or refresh cache first) for foo
" :BundleClean(!) - confirm(or auto-approve) removal of unused bundles
"
" see :h vundle for more details or wiki for FAQ
" NOTE: comments after Bundle command are not allowed..
```
3. Install configured bundles:
Launch `vim`, run `:BundleInstall`
(or `vim +BundleInstall +qall` for CLI lovers)
*Windows users* see [Vundle for Windows](https://github.com/gmarik/vundle/wiki/Vundle-for-Windows)
Installing requires [Git] and triggers [Git clone](http://gitref.org/creating/#clone) for each configured repo to `~/.vim/bundle/`.
4. Consider [donating](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=T44EJZX8RBUWY)
[*Thank you*](http://j.mp/rSbm01) for supporting this project! )
## Why Vundle
[Vundle] allows to:
- keep track and configure your scripts right in `.vimrc`
- [install] configured scripts (aka bundle)
- [update] configured scripts
- [search] by name [all available vim scripts]
- [clean] unused scripts up
- run above actions in a *single keypress* with [interactive mode]
Also [Vundle]:
- manages runtime path of your installed scripts
- regenerates helptag automatically
## Docs
see [`:h vundle`](vundle/blob/master/doc/vundle.txt#L1) vimdoc for more details.
## People Using Vundle
see [Examples](/gmarik/vundle/wiki/Examples)
## FAQ
see [wiki](/gmarik/vundle/wiki)
## Contributors
see [vundle contributors](https://github.com/gmarik/vundle/graphs/contributors)
*Thank you!*
## Inspiration and ideas from
* [pathogen]
* [bundler]
* [Scott Bronson](http://github.com/bronson)
## Also
* Vundle was developed and tested with [Vim] 7.3 on `OSX`, `Linux` and `Windows`
* Vundle tries to be as [KISS](http://en.wikipedia.org/wiki/KISS_principle) as possible
## TODO:
[Vundle] is a work in progress so any ideas/patches appreciated
* √ activate newly added bundles on .vimrc reload or after :BundleInstall
* √ use preview window for search results
* √ vim documentation
* √ put vundle to bundles/ too(will fix vundle help)
* √ tests
* √ improve error handling
* allow specify revision/version?
* handle dependencies
* show description in search results
* search by description as well
* make it rock!
[Vundle]:http://github.com/gmarik/vundle
[Pathogen]:http://github.com/tpope/vim-pathogen/
[Bundler]:http://github.com/wycats/bundler/
[Vim]:http://vim.org
[Git]:http://git-scm.com
[all available vim scripts]:http://vim-scripts.org/vim/scripts.html
[install]:https://github.com/gmarik/vundle/blob/master/doc/vundle.txt#L110-124
[update]:https://github.com/gmarik/vundle/blob/master/doc/vundle.txt#L128-134
[search]:https://github.com/gmarik/vundle/blob/master/doc/vundle.txt#L136-158
[clean]:https://github.com/gmarik/vundle/blob/master/doc/vundle.txt#L168-180
[interactive mode]:https://github.com/gmarik/vundle/blob/master/doc/vundle.txt#L184-210

View File

@@ -0,0 +1,46 @@
" Vundle is a shortcut for Vim Bundle and Is a simple plugin manager for Vim
" Author: gmarik
" HomePage: http://github.com/gmarik/vundle
" Readme: http://github.com/gmarik/vundle/blob/master/README.md
" Version: 0.9
com! -nargs=+ Bundle
\ call vundle#config#bundle(<args>)
com! -nargs=? -bang -complete=custom,vundle#scripts#complete BundleInstall
\ call vundle#installer#new('!' == '<bang>', <q-args>)
com! -nargs=? -bang -complete=custom,vundle#scripts#complete BundleSearch
\ call vundle#scripts#all('!'=='<bang>', <q-args>)
com! -nargs=? -bang -complete=custom,vundle#scripts#complete Bundles
\ call vundle#scripts#all('!'=='<bang>', <q-args>)
com! -nargs=0 -bang BundleList
\ call vundle#installer#list('!'=='<bang>')
com! -nargs=? -bang BundleClean
\ call vundle#installer#clean('!' == '<bang>')
com! -nargs=0 BundleDocs
\ call vundle#installer#helptags(g:bundles)
if (has('signs'))
sign define Vu_error text=! texthl=Error
sign define Vu_active text=> texthl=Comment
sign define Vu_todate text=. texthl=Comment
sign define Vu_new text=+ texthl=Comment
sign define Vu_updated text=* texthl=Comment
sign define Vu_deleted text=- texthl=Comment
sign define Vu_helptags text=* texthl=Comment
endif
func! vundle#rc(...) abort
let g:bundle_dir = len(a:000) > 0 ? expand(a:1, 1) : expand('$HOME/.vim/bundle', 1)
let g:updated_bundles = []
let g:vundle_log = []
let g:vundle_changelog = ['Updated Bundles:']
call vundle#config#init()
endf

Some files were not shown because too many files have changed in this diff Show More