Skip to content

Instantly share code, notes, and snippets.

@tzbob
Created November 7, 2013 21:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tzbob/7362371 to your computer and use it in GitHub Desktop.
Save tzbob/7362371 to your computer and use it in GitHub Desktop.
[options]
resize_grip = false
scroll_on_output = false
scroll_on_keystroke = true
audible_bell = false
visible_bell = true
mouse_autohide = false
allow_bold = false
dynamic_title = true
urgent_on_bell = true
clickable_url = true
font = Source Code Pro 10
scrollback_lines = 1000
search_wrap = true
icon_name = terminal
#geometry = 640x480
# 0.0: opaque, 1.0: transparent
transparency = 0.0
pseudo_transparency = false
# "system", "on" or "off"
cursor_blink = system
# "block", "underline" or "ibeam"
cursor_shape = underline
# $BROWSER is used by default
browser = chromium
# word characters used for word selection
# (default if unset: all graphic non-punctuation/space characters)
#word_chars = -A-Za-z0-9,./?%&#:_=+@~
[colors]
background = #FEFEFE
foreground = #282828
foreground_bold = #888888
foreground_dim = #888888
cursor = #000000
# if unset, will reverse foreground and background
highlight = #2f2f2f
# black
color0 = #000000
# bright_black
color8 = #282828
# red
color1 = #a97475
# bright_red
color9 = #bb9091
# green
color2 = #75a974
# bright_green
color10 = #91bb90
# yellow
color3 = #a9a774
# bright_yellow
color11 = #bbb990
# blue
color4 = #7475a9
# bright_blue
color12 = #9091bb
# magenta
color5 = #a774a9
# bright_magenta
color13 = #b990bb
# cyan
color6 = #74a9a7
# bright_cyan
color14 = #90bbb9
# white
color7 = #c3c3c3
# bright_white
color15 = #AAAAAA
[hints]
#font = Monospace 12
#foreground = #dcdccc
#background = #3f3f3f
#padding = 2
#border = #3f3f3f
#border_width = 0.5
#roundness = 2.0
# vim: ft=dosini
" Vundle "
" ========== "
set nocompatible
filetype off
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
Bundle 'gmarik/vundle'
Bundle 'Raimondi/delimitMate'
Bundle 'Valloric/YouCompleteMe'
Bundle 'scrooloose/nerdcommenter'
Bundle 'bling/vim-airline'
Bundle 'flazz/vim-colorschemes'
Bundle 'derekwyatt/vim-scala'
Bundle 'Shougo/vimproc.vim'
Bundle 'Shougo/unite.vim'
" Config "
" ========== "
"" Eclim + YCM
let g:EclimCompletionMethod = 'omnifunc'
set mouse=a
syntax on
filetype plugin indent on
"" Tabs
set smarttab
set expandtab
set tabstop=2
set shiftwidth=2
set softtabstop=2
"" Relative Line numbers
set rnu
"" Show status bar
set laststatus=2
set visualbell ""No error sound
"" Show full menu
set wildmenu
set wildmode=full
"" Move as you type, wrapped-search
set incsearch
set wrapscan
"" Case insensitive search for lowercase, case sensitive for upper
"" http://stackoverflow.com/a/2288438
set ignorecase
set smartcase
set history=9999
"" Backup settings
set backup " keep a backup file
set backupdir=~/.vim/backup " backup files centralized
"" Show cursor
set cursorline
"" Set ruler
set cc=80
set ruler
"" Allow proper middle click buffer paste
set paste
"" Set a title on xterm systems
set title
"" Allow backspacing over everything in insert mode
set backspace=indent,eol,start
"" Unite
let g:unite_source_history_yank_enable = 1
call unite#filters#matcher_default#use(['matcher_fuzzy'])
nnoremap <C-p> :Unite file_rec/async -start-insert -no-split<cr>
nnoremap <C-f> :Unite line -start-insert -no-split<cr>
nnoremap <C-o> :Unite file -start-insert -no-split<cr>
nnoremap <C-e> :Unite buffer -quick-match -no-split<cr>
"" Move around with Ctrl
map <C-k> <C-w><Up>
map <C-j> <C-w><Down>
map <C-l> <C-w><Right>
map <C-h> <C-w><Left>
map <C-Tab> :bnext<cr>
map <C-S-Tab> :bprevious<cr>
map <C-s> :w<cr>
"" NERDComment
noremap <silent> <C-u> :call NERDComment(1, 'toggle')<CR>
"" :W asks for sudo pw
command! W w !sudo tee % > /dev/null
"" Strip GVIM
set guioptions=ac
set guifont=Source\ Code\ Pro\ ExtraLight\ 10
colors github
Config {
font = "xft:inconsolata:size=10"
, bgColor = "#FEFEFE"
, fgColor = "#999999"
, position = Static { xpos = 1, ypos = 1058, width = 1918, height = 20 }
, lowerOnStart = False
, commands = [
Run Battery ["-t", "<left>"] 100
, Run MultiCpu ["-t","<total0>"] 30
, Run Date "%_d %#B %Y <fc=#333333>|</fc> %H:%M" "date" 600
, Run Com "/home/tzbob/bin/alsavolume" [] "volume" 10
, Run StdinReader
]
, sepChar = "%"
, alignSep = "}{"
, template = " %StdinReader% }{<fc=#333333>cpu</fc> %multicpu% <fc=#333333>vol</fc> %volume% <fc=#333333>bat</fc> %battery% <fc=#333333>|</fc> %date% "
}
import XMonad
import Data.Monoid
import System.Exit
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.SetWMName
import XMonad.Hooks.ManageHelpers
import XMonad.Hooks.EwmhDesktops
import XMonad.Actions.UpdatePointer
import XMonad.Layout.NoBorders
import XMonad.Layout.ResizableTile
import XMonad.Layout.Spacing
import XMonad.Util.Run(spawnPipe)
import System.IO(hPutStrLn)
import qualified XMonad.StackSet as W
import qualified Data.Map as M
myTerminal :: String
myTerminal = "termite"
myFocusFollowsMouse :: Bool
myFocusFollowsMouse = True
myModMask = mod4Mask
myWorkspaces = ["All","Thesis","Dev","Film", "Zzz"]
myMainColor = "#333333"
myBgColor = "#FEFEFE"
myTextcolor = "#282828"
myLowColor = "#999999"
myBorderWidth = 0
myNormalBorderColor = myTextcolor
myFocusedBorderColor = myNormalBorderColor
-- Key bindings. Add, modify or remove key bindings here.
-------------------------------------------------------------------------------
myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
-- launch a terminal
[ ((modm .|. shiftMask, xK_Return), spawn $ XMonad.terminal conf)
-- close focused window
, ((modm .|. shiftMask, xK_c), kill)
-- Rotate through the available layout algorithms
, ((modm, xK_space ), sendMessage NextLayout)
-- Move focus to the next window
, ((modm, xK_j), windows W.focusDown)
-- Move focus to the previous window
, ((modm, xK_k), windows W.focusUp )
-- Swap the focused window and the master window
, ((modm, xK_Return), windows W.swapMaster)
-- Swap the focused window with the next window
, ((modm .|. shiftMask, xK_j), windows W.swapDown )
-- Swap the focused window with the previous window
, ((modm .|. shiftMask, xK_k), windows W.swapUp )
-- Shrink the master area
, ((modm, xK_h), sendMessage Shrink)
-- Expand the master area
, ((modm, xK_l), sendMessage Expand)
-- Shrink a window
, ((modm, xK_u), sendMessage MirrorShrink)
-- Expand a window
, ((modm, xK_i), sendMessage MirrorExpand)
-- Push window back into tiling
, ((modm, xK_t), withFocused $ windows . W.sink)
-- Increment the number of windows in the master area
, ((modm .|. shiftMask, xK_h), sendMessage (IncMasterN 1))
-- Deincrement the number of windows in the master area
, ((modm .|. shiftMask, xK_l), sendMessage (IncMasterN (-1)))
-- Volume
, ((modm .|. controlMask , xK_j), spawn "amixer -q set Master 5- unmute")
, ((modm .|. controlMask , xK_k), spawn "amixer -q set Master 5+ unmute")
, ((modm .|. controlMask , xK_m), spawn "amixer set Master toggle")
-- Cover the status bar gap
, ((modm, xK_c), sendMessage ToggleStruts)
-- Programs
, ((modm, xK_p), spawn "xfce4-appfinder")
, ((modm, xK_o), spawn "dmenu_run")
, ((modm, xK_b), spawn "chromium")
, ((modm, xK_v), spawn "~/bin/toggleTrayer.sh" >> refresh)
, ((modm, xK_g), spawn "gvim")
, ((modm, xK_x), spawn "~/scala-ide/eclipse")
, ((modm .|. shiftMask, xK_q), spawn "xfce4-session-logout")
, ((modm .|. shiftMask, xK_b), spawn "~/Dropbox/Scala/snapdim/target/start")
-- Restart xmonad
, ((modm, xK_q), spawn "xmonad --recompile; xmonad --restart")
]
++
--
-- mod-[asdf], Switch to workspace N
-- mod-shift-[asdf], Move client to workspace N
--
[((m .|. modm, k), windows $ f i)
| (i, k) <- zip (XMonad.workspaces conf) [xK_a, xK_s, xK_d, xK_f, xK_z]
, (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
++
--
-- mod-{w,e,r}, Switch to physical/Xinerama screens 1, 2, or 3
-- mod-shift-{w,e,r}, Move client to screen 1, 2, or 3
--
[((m .|. modm, key), screenWorkspace sc >>= flip whenJust (windows . f))
| (key, sc) <- zip [xK_w, xK_e, xK_r] [0..]
, (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]
-- Mouse bindings: default actions bound to mouse events
-------------------------------------------------------------------------------
myMouseBindings (XConfig {XMonad.modMask = modm}) = M.fromList
-- mod-button1, Set the window to floating mode and move by dragging
[ ((modm, button1), (\w -> focus w >> mouseMoveWindow w
>> windows W.shiftMaster))
-- mod-button2, Raise the window to the top of the stack
, ((modm, button2), (\w -> focus w >> windows W.shiftMaster))
-- mod-button3, Set the window to floating mode and resize by dragging
, ((modm, button3), (\w -> focus w >> mouseResizeWindow w
>> windows W.shiftMaster))
]
-- Layouts
------------------------------------------------------------------------
myLayout = avoidStruts $ smartSpacing 2 $ tiled ||| Mirror tiled ||| Full
where
tiled = ResizableTall 1 (3/100) (3/5) []
-- Window rules:
-- > xprop | grep WM_CLASS
-------------------------------------------------------------------------------
myManageHook = manageDocks <+> composeAll
[ isFullscreen --> doFullFloat
, className =? "Xfce4-notifyd" --> doIgnore
, className =? "Conky" --> doIgnore
, className =? "Xfce4-appfinder" --> doFloat
]
-- Event handling
-------------------------------------------------------------------------------
myEventHook = fullscreenEventHook
-- Status bars and logging
-------------------------------------------------------------------------------
addPad = wrap " " " "
myPP statusPipe = xmobarPP {
ppOutput = hPutStrLn statusPipe
, ppCurrent = xmobarColor myMainColor myBgColor . addPad
, ppHiddenNoWindows = xmobarColor myLowColor "" . addPad
, ppHidden = xmobarColor myTextcolor "" . addPad
, ppTitle = xmobarColor myTextcolor ""
, ppSep = xmobarColor myMainColor myBgColor " | "
}
myLogHook pipe = dynamicLogWithPP (myPP pipe) >> updatePointer (Relative 0.5 0.5)
-- Startup hook
-------------------------------------------------------------------------------
myStartupHook = setWMName "LG3D"
-- Configuration structure
-------------------------------------------------------------------------------
defaults statusPipe = ewmh defaultConfig {
-- simple stuff
terminal = myTerminal,
focusFollowsMouse = myFocusFollowsMouse,
borderWidth = myBorderWidth,
modMask = myModMask,
workspaces = myWorkspaces,
normalBorderColor = myNormalBorderColor,
focusedBorderColor = myFocusedBorderColor,
-- bindings
keys = myKeys,
mouseBindings = myMouseBindings,
-- hooks, layouts
layoutHook = myLayout,
manageHook = myManageHook,
handleEventHook = myEventHook,
logHook = myLogHook statusPipe,
startupHook = myStartupHook
}
-- Run xmonad with the settings specified. No need to modify this.
-------------------------------------------------------------------------------
main = do
statusPipe <- spawnPipe "xmobar ~/.xmonad/xmobar.hs"
xmonad $ defaults statusPipe
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment