Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

starting on the gui now

  • Loading branch information...
commit 829fb2ac4d75b687c5694d3ce2b99ad967eebf3c 1 parent 00cd165
@nisbus authored
View
2  Vagrantfile
@@ -9,7 +9,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box_url = "http://box.nisbus.com/packer_arch_virtualbox.box"
config.vm.network :forwarded_port, guest: 80, host: 8000
config.vm.provider :virtualbox do |vb|
- vb.gui = false
+ vb.gui = true
vb.customize ["modifyvm", :id, "--memory", "1024"]
end
config.vm.provision :puppet do |puppet|
View
6 puppet/manifests/site.pp
@@ -1,3 +1,5 @@
+
+
group { "puppet":
ensure => "present",
}
@@ -8,8 +10,8 @@
content => "Welcome to your Vagrant-built virtual machine!
Managed by Puppet.\n"
}
-
-node 'default' {
+
+node 'default' {
include "baseconfig"
include "xmonad"
include "developer"
View
40 puppet/modules/baseconfig/manifests/init.pp
@@ -1,8 +1,44 @@
# == Class: baseconfig
# Updates Arch linux on each boot
#
-class baseconfig {
+class baseconfig {
exec { 'pacman update':
command => '/usr/bin/pacman -Syu';
- }
+ }
+ package { 'xorg-server':
+ ensure => present
+ }
+ package { 'xorg-xinit':
+ ensure => present
+ }
+ package { 'xorg-xclock':
+ ensure => present
+ }
+ package { 'xterm':
+ ensure => present
+ }
+ package { 'xorg-xrdb':
+ ensure => present
+ }
+ package { 'xorg-xsetroot':
+ ensure => present
+ }
+ package { 'gnome-power-manager':
+ ensure => present
+ }
+ package { 'xf86-video-intel':
+ ensure => present
+ }
+ package { 'alsa-lib' :
+ ensure => present;
+ }
+ package { 'alsa-utils' :
+ ensure => present;
+ }
+ package { 'gnome-alsamixer' :
+ ensure => present;
+ }
+ package { 'rxvt-unicode' :
+ ensure => present;
+ }
}
View
6 puppet/modules/developer/manifests/init.pp
@@ -1,14 +1,14 @@
#Installs programming environments
class developer {
package { 'emacs' :
- ensure => latest;
+ ensure => 'present';
}
package { 'erlang' :
- ensure => latest;
+ ensure => 'present';
}
#need to figure out how to use packer
#instead of pacman for aur packages
#package { 'quantlib-docs' :
- # ensure => latest;
+ # ensure => 'present';
#}
}
View
18 puppet/modules/xmonad/files/.xinitrc
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+# ~/.xinitrc
+#
+# Executed by startx (run your window manager from here)
+setxkbmap -option ctrl:swapcaps
+
+if [ -d /etc/X11/xinit/xinitrc.d ]; then
+ for f in /etc/X11/xinit/xinitrc.d/*; do
+ [ -x "$f" ] && . "$f"
+ done
+ unset f
+fi
+xsetroot -cursor_name left_ptr
+trayer --edge top --align right --SetDockType true --SetPartialStrut true --expand true --width 10 --transparent true --tint -0x191970 --height 12 &
+volwheel &
+gnome-power-statistics &
+exec xmonad &> /dev/null
View
17 puppet/modules/xmonad/files/.xmobarrc
@@ -0,0 +1,17 @@
+Config { font = "-*-terminus-*-*-*-*-12-*-*-*-*-*-*-u"
+ , bgColor = "#000000"
+ , fgColor = "#00FFFF"
+ , position = TopW L 90
+ , lowerOnStart = False
+ , commands = [Run Weather "BIRK" ["-t","<station>: <tempC>C","-L","10","-H","25","--normal","green","--high","red","--low","lightblue"] 36000
+ ,Run Network "wlan0" ["-L","0","-H","32","-l", "green", "--normal","orange","--high","red"] 40
+ , Run Cpu ["<cpu0>","-L","10","-H","70","-l","green","--normal","orange","--high","red"] 40
+ , Run Memory ["-t","Mem: <usedratio>%", "-l", "green", "--normal","orange","--high","red"] 40
+ , Run Date "%a %b %_d %H:%M:%S" "date" 60
+ , Run Battery ["-t","Batt: <left>"] 10
+ , Run StdinReader
+ ]
+ , sepChar = "%"
+ , alignSep = "}{"
+ , template = " %StdinReader% }{ %cpu% <fc=#0033FF>|</fc> %memory% <fc=#0033FF>|</fc> %wlan0% <fc=#0033FF>|</fc> %date% | %BIRK% | %battery%"
+ }
View
318 puppet/modules/xmonad/files/xmonad.hs
@@ -0,0 +1,318 @@
+
+{- xmonad.hs
+ - Author: Jelle van der Waa ( jelly12gen )
+ -}
+
+-- Import stuff
+import XMonad
+import qualified XMonad.StackSet as W
+import qualified Data.Map as M
+import XMonad.Util.EZConfig(additionalKeys)
+import System.Exit
+import Graphics.X11.Xlib
+import System.IO
+
+
+-- actions
+import XMonad.Actions.CycleWS
+import XMonad.Actions.WindowGo
+import qualified XMonad.Actions.Search as S
+import XMonad.Actions.Search
+import qualified XMonad.Actions.Submap as SM
+import XMonad.Actions.GridSelect
+
+-- utils
+import XMonad.Util.Scratchpad (scratchpadSpawnAction, scratchpadManageHook, scratchpadFilterOutWorkspace)
+import XMonad.Util.Run(spawnPipe)
+import qualified XMonad.Prompt as P
+import XMonad.Prompt.Shell
+import XMonad.Prompt
+
+
+-- hooks
+import XMonad.Hooks.DynamicLog
+import XMonad.Hooks.ManageDocks
+import XMonad.Hooks.UrgencyHook
+import XMonad.Hooks.ManageHelpers
+
+-- layouts
+import XMonad.Layout.NoBorders
+import XMonad.Layout.ResizableTile
+import XMonad.Layout.Reflect
+import XMonad.Layout.IM
+import XMonad.Layout.Tabbed
+import XMonad.Layout.PerWorkspace (onWorkspace)
+import XMonad.Layout.Grid
+
+-- Data.Ratio for IM layout
+import Data.Ratio ((%))
+
+
+-- Main --
+main = do
+ xmproc <- spawnPipe "xmobar" -- start xmobar
+ xmonad $ withUrgencyHook NoUrgencyHook $ defaultConfig
+ { manageHook = myManageHook
+ , layoutHook = myLayoutHook
+ , borderWidth = myBorderWidth
+ , normalBorderColor = myNormalBorderColor
+ , focusedBorderColor = myFocusedBorderColor
+ , keys = myKeys
+ , logHook = myLogHook xmproc
+ , modMask = myModMask
+ , terminal = myTerminal
+ , workspaces = myWorkspaces
+ , focusFollowsMouse = False
+ }
+
+
+
+-- hooks
+-- automaticly switching app to workspace
+myManageHook :: ManageHook
+myManageHook = scratchpadManageHook (W.RationalRect 0.25 0.375 0.5 0.35) <+> ( composeAll . concat $
+ [[isFullscreen --> doFullFloat
+ , className =? "OpenOffice.org 3.1" --> doShift "5:doc"
+ , className =? "Xmessage" --> doCenterFloat
+ , className =? "Zenity" --> doCenterFloat
+ , className =? "feh" --> doCenterFloat
+ , className =? "Gimp" --> doShift "9:gimp"
+ , className =? "uzbl" --> doShift "2:web"
+ , className =? "chromium" --> doShift "2:web"
+ , className =? "firefox" --> doShift "2:web"
+ , className =? "vimprobable" --> doShift "2:web"
+ , className =? "Pidgin" --> doShift "1:chat"
+ , className =? "Skype" --> doShift "1:chat"
+ , className =? "MPlayer" --> doShift "8:vid"
+ , className =? "VirtualBox" --> doShift "6:virtual"
+ , className =? "Apvlv" --> doShift "4:pdf"
+ , className =? "Evince" --> doShift "4:pdf"
+ , className =? "Epdfview" --> doShift "4:pdf"
+ , className =? "Remmina" --> doShift "6:vbox"
+ , className =? "emacs" --> doShift "3:code"]
+
+ ]
+ ) <+> manageDocks
+
+
+
+--logHook
+myLogHook :: Handle -> X ()
+myLogHook h = dynamicLogWithPP $ customPP { ppOutput = hPutStrLn h }
+
+
+
+---- Looks --
+---- bar
+customPP :: PP
+customPP = defaultPP {
+ ppHidden = xmobarColor "#00FF00" ""
+ , ppCurrent = xmobarColor "#FF0000" "" . wrap "[" "]"
+ , ppUrgent = xmobarColor "#FF0000" "" . wrap "*" "*"
+ , ppLayout = xmobarColor "#FF0000" ""
+ , ppTitle = xmobarColor "#00FF00" "" . shorten 80
+ , ppSep = "<fc=#0033FF> | </fc>"
+ }
+
+-- some nice colors for the prompt windows to match the dzen status bar.
+myXPConfig = defaultXPConfig
+ {
+ fgColor = "#00FFFF"
+ , bgColor = "#000000"
+ , bgHLight = "#000000"
+ , fgHLight = "#FF0000"
+ , position = Top
+ }
+
+--- My Theme For Tabbed layout
+myTheme = defaultTheme { decoHeight = 16
+ , activeColor = "#a6c292"
+ , activeBorderColor = "#a6c292"
+ , activeTextColor = "#000000"
+ , inactiveBorderColor = "#000000"
+ }
+
+--LayoutHook
+myLayoutHook = onWorkspace "1:chat" imLayout $ onWorkspace "2:web" webL $ onWorkspace "9:gimp" gimpL $ onWorkspace "6:vbox" fullL $ onWorkspace "6:games" fullL $ onWorkspace "8:vid" fullL $ standardLayouts
+ where
+ standardLayouts = avoidStruts $ (tiled ||| reflectTiled ||| Mirror tiled ||| Grid ||| Full)
+
+ --Layouts
+ tiled = smartBorders (ResizableTall 1 (2/100) (1/2) [])
+ reflectTiled = (reflectHoriz tiled)
+ tabLayout = (tabbed shrinkText myTheme)
+ full = noBorders Full
+
+ --Im Layout
+ imLayout = avoidStruts $ smartBorders $ withIM ratio pidginRoster $ reflectHoriz $ withIM skypeRatio skypeRoster (tiled ||| reflectTiled ||| Grid) where
+ chatLayout = Grid
+ ratio = (1%9)
+ skypeRatio = (1%8)
+ pidginRoster = And (ClassName "Pidgin") (Role "buddy_list")
+ skypeRoster = (ClassName "Skype") `And` (Not (Title "Options")) `And` (Not (Role "Chats")) `And` (Not (Role "CallWindowForm"))
+
+ --Gimp Layout
+ gimpL = avoidStruts $ smartBorders $ withIM (0.11) (Role "gimp-toolbox") $ reflectHoriz $ withIM (0.15) (Role "gimp-dock") Full
+
+ --Web Layout
+ webL = avoidStruts $ tabLayout ||| tiled ||| reflectHoriz tiled ||| full
+
+ --VirtualLayout
+ fullL = avoidStruts $ full
+
+
+
+
+
+-------------------------------------------------------------------------------
+---- Terminal --
+myTerminal :: String
+myTerminal = "urxvt"
+
+-------------------------------------------------------------------------------
+-- Keys/Button bindings --
+-- modmask
+myModMask :: KeyMask
+myModMask = mod4Mask
+
+
+
+-- borders
+myBorderWidth :: Dimension
+myBorderWidth = 1
+--
+myNormalBorderColor, myFocusedBorderColor :: String
+myNormalBorderColor = "#333333"
+myFocusedBorderColor = "#FF0000"
+--
+
+
+--Workspaces
+myWorkspaces :: [WorkspaceId]
+myWorkspaces = ["1:chat", "2:web", "3:code", "4:pdf", "5:doc", "6:vbox" ,"7:games", "8:vid", "9:gimp"]
+--
+
+-- Switch to the "web" workspace
+viewWeb = windows (W.greedyView "2:web") -- (0,0a)
+--
+
+--Search engines to be selected : [google (g), wikipedia (w) , youtube (y) , maps (m), dictionary (d) , wikipedia (w), bbs (b) ,aur (r), wiki (a) , TPB (t), mininova (n), isohunt (i) ]
+--keybinding: hit mod + s + <searchengine>
+searchEngineMap method = M.fromList $
+ [ ((0, xK_g), method S.google )
+ , ((0, xK_y), method S.youtube )
+ , ((0, xK_m), method S.maps )
+ , ((0, xK_d), method S.dictionary )
+ , ((0, xK_w), method S.wikipedia )
+ , ((0, xK_h), method S.hoogle )
+ , ((0, xK_i), method S.isohunt )
+ , ((0, xK_b), method $ S.searchEngine "archbbs" "http://bbs.archlinux.org/search.php?action=search&keywords=")
+ , ((0, xK_r), method $ S.searchEngine "AUR" "http://aur.archlinux.org/packages.php?O=0&L=0&C=0&K=")
+ , ((0, xK_a), method $ S.searchEngine "archwiki" "http://wiki.archlinux.org/index.php/Special:Search?search=")
+ ]
+
+
+ssh = "ssh -i /path/to/file/.key usere@domain "
+-- keys
+myKeys :: XConfig Layout -> M.Map (KeyMask, KeySym) (X ())
+myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $
+ -- killing programs
+ [ ((modMask, xK_Return), spawn $ XMonad.terminal conf)
+ , ((modMask .|. shiftMask, xK_c ), kill)
+
+ -- opening program launcher / search engine
+ , ((modMask , xK_s ), SM.submap $ searchEngineMap $ S.promptSearchBrowser myXPConfig "chromium")
+ ,((modMask , xK_p), shellPrompt myXPConfig)
+
+
+ -- GridSelect
+ , ((modMask, xK_g), goToSelected defaultGSConfig)
+
+ -- layouts
+ , ((modMask, xK_space ), sendMessage NextLayout)
+ , ((modMask .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf)
+ , ((modMask, xK_b ), sendMessage ToggleStruts)
+
+ -- floating layer stuff
+ , ((modMask, xK_t ), withFocused $ windows . W.sink)
+
+ -- refresh'
+ , ((modMask, xK_n ), refresh)
+
+ -- focus
+ , ((modMask, xK_Tab ), windows W.focusDown)
+ , ((modMask, xK_j ), windows W.focusDown)
+ , ((modMask, xK_k ), windows W.focusUp)
+ , ((modMask, xK_m ), windows W.focusMaster)
+
+
+ -- swapping
+ , ((modMask .|. shiftMask, xK_Return), windows W.swapMaster)
+ , ((modMask .|. shiftMask, xK_j ), windows W.swapDown )
+ , ((modMask .|. shiftMask, xK_k ), windows W.swapUp )
+
+ -- increase or decrease number of windows in the master area
+ , ((modMask , xK_comma ), sendMessage (IncMasterN 1))
+ , ((modMask , xK_period), sendMessage (IncMasterN (-1)))
+
+ -- resizing
+ , ((modMask, xK_h ), sendMessage Shrink)
+ , ((modMask, xK_l ), sendMessage Expand)
+ , ((modMask .|. shiftMask, xK_h ), sendMessage MirrorShrink)
+ , ((modMask .|. shiftMask, xK_l ), sendMessage MirrorExpand)
+
+ -- mpd controls
+ , ((0 , 0x1008ff16 ), spawn (ssh ++ "ncmpcpp prev"))
+ , ((0 , 0x1008ff17 ), spawn (ssh ++ "ncmpcpp next"))
+ , ((0 , 0x1008ff14 ), spawn (ssh ++ "ncmpcpp play"))
+ , ((0 , 0x1008ff15 ), spawn (ssh ++"ncmpcpp pause"))
+
+ -- scratchpad
+ , ((modMask , xK_grave), scratchpadSpawnAction defaultConfig {terminal = myTerminal})
+
+ -- Libnotify
+ , ((modMask .|. shiftMask, xK_a ), spawn "/home/nisbus/bin/notify.py")
+ , ((modMask .|. shiftMask, xK_m ), spawn "/home/nisbus/Projects/Notify/mpd-notification.py")
+ , ((modMask .|. shiftMask, xK_t ), spawn "/home/nisbus/Projects/Notify/todo-notification.py")
+ , ((modMask .|. shiftMask, xK_g ), spawn "/home/nisbus/bin/notify-mail.py")
+ , ((modMask .|. shiftMask, xK_v ), spawn "/home/nisbus/Projects/Notify/sound-notification.py")
+
+ --Programs
+ , ((modMask .|. shiftMask, xK_u ), spawn "unison-gtk2 default")
+ , ((modMask .|. shiftMask, xK_p ), spawn "pidgin")
+ , ((modMask .|. shiftMask, xK_b ), spawn "chromium")
+
+ -- volume control
+ , ((0 , 0x1008ff13 ), spawn "amixer -q set Master 2dB+")
+ , ((0 , 0x1008ff11 ), spawn "amixer -q set Master 2dB-")
+ , ((0 , 0x1008ff12 ), spawn "amixer -q set Master toggle")
+
+
+ -- quit, or restart
+ , ((modMask .|. shiftMask, xK_q ), io (exitWith ExitSuccess))
+ , ((modMask , xK_q ), restart "xmonad" True)
+ ]
+ ++
+ -- mod-[1..9] %! Switch to workspace N
+ -- mod-shift-[1..9] %! Move client to workspace N
+ [((m .|. modMask, k), windows $ f i)
+ | (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]
+ , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
+ ++
+ -- mod-[w,e] %! switch to twinview screen 1/2
+ -- mod-shift-[w,e] %! move window to screen 1/2
+ [((m .|. modMask, key), screenWorkspace sc >>= flip whenJust (windows . f))
+ | (key, sc) <- zip [xK_e, xK_w] [0..]
+ , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]
+ ++
+ --Cycle workspaces
+ [((modMask, xK_Right), nextWS)
+ , ((modMask, xK_Left), prevWS)
+ , ((modMask .|. shiftMask, xK_Right), shiftToNext)
+ , ((modMask .|. shiftMask, xK_Left), shiftToPrev)
+ , ((modMask, xK_Up), nextScreen)
+ , ((modMask, xK_Down), prevScreen)
+ , ((modMask .|. shiftMask, xK_Up), shiftNextScreen)
+ , ((modMask .|. shiftMask, xK_Down), shiftPrevScreen)
+ , ((modMask, xK_z), toggleWS)
+ , ((modMask , xK_f), moveTo Next EmptyWS)] -- find a free workspace
View
40 puppet/modules/xmonad/manifests/init.pp
@@ -1,9 +1,43 @@
#Installs the GUI as I like it
class xmonad {
package { 'xmonad' :
- ensure => latest;
+ ensure => present;
}
- package { 'xmobar' :
- ensure => latest;
+ package { 'xmonad-contrib' :
+ ensure => present;
+ }
+ package { 'xmobar' :
+ ensure => present;
+ }
+ package { 'trayer' :
+ ensure => present;
+ }
+ package { 'volwheel':
+ ensure => present
+ }
+
+ file { '/home/vagrant/.xmonad':
+ ensure => 'directory',
+ owner => 'vagrant',
+ group => 'vagrant',
+ mode => 750,
}
+ file { '/home/vagrant/.xmonad/xmonad.hs':
+ ensure => present,
+ owner => "vagrant",
+ group => "vagrant",
+ source => ["puppet:///modules/xmonad/xmonad.hs"]
+ }
+ file { '/home/vagrant/.xmobarrc':
+ ensure => present,
+ owner => "vagrant",
+ group => "vagrant",
+ source => ["puppet:///modules/xmonad/.xmobarrc"]
+ }
+ file { '/home/vagrant/.xinitrc':
+ ensure => present,
+ owner => "vagrant",
+ group => "vagrant",
+ source => ["puppet:///modules/xmonad/.xinitrc"]
+ }
}
Please sign in to comment.
Something went wrong with that request. Please try again.