Lucas Stadler лет назад: 12
Родитель
Сommit
4c344c5a66
6 измененных файлов с 66 добавлено и 52 удалено
  1. 24 0
      .config/taffybar/taffybar.hs
  2. 2 1
      .tmux.conf
  3. 6 0
      .vimrc
  4. 3 2
      .xinitrc
  5. 30 49
      .xmonad/xmonad.hs
  6. 1 0
      .zshrc

+ 24 - 0
.config/taffybar/taffybar.hs

1
import System.Taffybar
2
import System.Taffybar.Systray
3
import System.Taffybar.XMonadLog
4
import System.Taffybar.SimpleClock
5
import System.Taffybar.Widgets.PollingGraph
6
import System.Information.CPU
7
8
cpuCallback = do
9
    (_, systemLoad, totalLoad) <- cpuLoad
10
    return [ totalLoad, systemLoad ]
11
12
main = do
13
    let cpuCfg = defaultGraphConfig {
14
            graphDataColors = [(0, 1, 0, 1), (1, 0, 1, 0.5)]
15
        }
16
        clock = textClockNew Nothing "<span fgcolor='orange'>%a %b %_d %H:%M</span>" 1
17
        log = xmonadLogNew
18
        tray = systrayNew
19
        cpu = pollingGraphNew cpuCfg 3 cpuCallback
20
    defaultTaffybar defaultTaffybarConfig {
21
        barHeight = 15,
22
        startWidgets = [log],
23
        endWidgets = [tray, clock, cpu]
24
    }

+ 2 - 1
.tmux.conf

9
set -g default-terminal "screen-256color"
9
set -g default-terminal "screen-256color"
10
set -g status-utf8 on
10
set -g status-utf8 on
11
set-option -g set-titles on
11
set-option -g set-titles on
12
set-option -g set-titles-string "tmux(#I): #W"
12
set-option -g set-titles-string "tmux(#I): #W #T"
13
13
14
set -g status-bg black
14
set -g status-bg black
15
set -g status-fg white
15
set -g status-fg white
20
setw -g window-status-format '#[fg=green]#I #[fg=white]#W#[default]  '
20
setw -g window-status-format '#[fg=green]#I #[fg=white]#W#[default]  '
21
setw -g window-status-current-format '#[bg=white,fg=black]⮀ #W #[bg=black,fg=white]⮀'
21
setw -g window-status-current-format '#[bg=white,fg=black]⮀ #W #[bg=black,fg=white]⮀'
22
22
23
set -g status off
23
bind-key f set -g status
24
bind-key f set -g status
24
25
25
bind-key -n F1 select-window -t 0
26
bind-key -n F1 select-window -t 0

+ 6 - 0
.vimrc

63
set undodir=~/.vim/tmp/
63
set undodir=~/.vim/tmp/
64
set undofile
64
set undofile
65
65
66
let &t_ts = "\e]2;"
67
let &t_fs = "\007"
68
set title
69
set titleold=
70
au BufEnter * let &titlestring=substitute(expand('%:p'), '^' . $HOME, '~', '')
71
66
" Wrap lines in textfiles automatically.
72
" Wrap lines in textfiles automatically.
67
" (Any way to enable in comments?)
73
" (Any way to enable in comments?)
68
set textwidth=72
74
set textwidth=72

+ 3 - 2
.xinitrc

5
xrdb -merge ~/.Xresources
5
xrdb -merge ~/.Xresources
6
#feh -bg-scale /usr/share/themes/Adwaita/backgrounds/stripes.jpg
6
#feh -bg-scale /usr/share/themes/Adwaita/backgrounds/stripes.jpg
7
7
8
eval `dbus-launch --auto-syntax`
8
start-pulseaudio-x11
9
start-pulseaudio-x11
9
pactl set-sink-volume 0 1.0
10
pactl set-sink-volume 0 1.0
10
nm-applet&
11
nm-applet&
13
#xmodmap ~/.swap-esc-capslock
14
#xmodmap ~/.swap-esc-capslock
14
synclient TouchpadOff=1
15
synclient TouchpadOff=1
15
16
16
exec awesome
17
#exec xmonad
17
#exec awesome
18
exec xmonad
18
#exec gnome-session
19
#exec gnome-session

+ 30 - 49
.xmonad/xmonad.hs

1
import XMonad
1
import XMonad
2
import XMonad.Hooks.DynamicLog
2
import XMonad.Actions.SpawnOn (manageSpawn, spawnHere)
3
import DBus.Client (connectSession)
4
import System.Taffybar.XMonadLog (dbusLog)
3
import XMonad.Hooks.ManageDocks (manageDocks, avoidStruts)
5
import XMonad.Hooks.ManageDocks (manageDocks, avoidStruts)
4
import XMonad.Hooks.ManageHelpers
6
import XMonad.Hooks.ManageHelpers
5
import XMonad.Layout.Tabbed (simpleTabbed)
7
import XMonad.Layout.NoBorders (smartBorders)
8
import XMonad.Layout.Fullscreen (fullscreenEventHook, fullscreenManageHook)
6
import XMonad.Util.Run (spawnPipe)
9
import XMonad.Util.Run (spawnPipe)
7
import XMonad.Util.EZConfig (additionalKeys)
10
import XMonad.Util.EZConfig (additionalKeys)
11
import Graphics.X11.ExtraTypes.XF86
12
import qualified XMonad.StackSet as W
13
8
import System.IO (hPutStrLn)
14
import System.IO (hPutStrLn)
9
import Data.IORef.MonadIO (newIORef, readIORef, modifyIORef)
15
import Data.IORef.MonadIO (newIORef, readIORef, modifyIORef)
10
11
import Control.Monad (when)
16
import Control.Monad (when)
12
import Data.Monoid (All (All))
17
import Data.Monoid (All (All))
13
import qualified XMonad.StackSet as W
14
18
15
-- My XMonad config (right now it's mostly copied from elsewhere...
19
-- My XMonad config (right now it's mostly copied from elsewhere...
16
--
20
--
18
--  * Some kind of launcher
22
--  * Some kind of launcher
19
--  * Logging framework (like reading urls from Firefox and the like)
23
--  * Logging framework (like reading urls from Firefox and the like)
20
24
25
(??) :: Query a -> (a -> Bool) -> Query Bool
26
(??) = flip fmap
27
21
main = do
28
main = do
22
    kbMap <- newIORef "us"
23
    xmobar <- spawnPipe "xmobar"
29
    dbusClient <- connectSession
24
    xmonad $ defaultConfig {
30
    xmonad $ defaultConfig {
25
        modMask  = mod4Mask,
31
        modMask  = mod4Mask,
26
        terminal = "urxvt",
32
        terminal = "sakura -x tmux",
27
        -- Ignore docks (via some WM_* attribute?)
33
        -- Ignore docks (via some WM_* attribute?)
28
        manageHook = composeAll [
34
        manageHook = composeAll [
35
                        className ?? (\cn -> any (cn ==) ["Skype", "Pidgin", "Geary"]) --> doF (W.shift "3"),
36
                        className =? "Exe" --> doFullFloat,
37
                        manageSpawn,
29
                        manageDocks,
38
                        manageDocks,
30
                        -- Allow fullscreen
31
                        composeOne [ isFullscreen -?> doFullFloat ]
39
                        fullscreenManageHook
32
                     ] <+> manageHook defaultConfig,
40
                     ] <+> manageHook defaultConfig,
33
        -- Don't overwrite the section used by docks
41
        -- Don't overwrite the section used by docks
34
        layoutHook = avoidStruts $ layoutHook defaultConfig ||| simpleTabbed,
35
        logHook = dynamicLogWithPP xmobarPP {
36
            ppOutput = hPutStrLn xmobar,
37
            ppTitle = xmobarColor "green" ""
38
        },
39
        handleEventHook = evHook
42
        layoutHook = avoidStruts $ smartBorders $ layoutHook defaultConfig,
43
        handleEventHook = fullscreenEventHook,
44
        logHook = dbusLog dbusClient
40
     } `additionalKeys` [
45
     } `additionalKeys` [
41
        ((mod4Mask, xK_l), changeKbMap kbMap)
42
     ]
43
  where changeKbMap kbMap = do
44
          kb <- readIORef kbMap
45
          let switchLang cur = if cur == "us" then "de" else "us"
46
          spawn $ "setxkbmap " ++ switchLang kb
47
          modifyIORef kbMap switchLang
46
        ((mod4Mask, xK_b), spawnHere "chromium --allow-file-access-from-files"),
47
        ((mod4Mask .|. shiftMask, xK_b), spawnHere "chromium --incognito --allow-file-access-from-files"),
48
48
49
evHook :: Event -> X All
50
evHook (ClientMessageEvent _ _ _ dpy win typ dat) = do
51
    state <- getAtom "_NET_WM_STATE"
52
    fullsc <- getAtom "_NET_WM_STATE_FULLSCREEN"
53
    isFull <- runQuery isFullscreen win
49
        ((0, xF86XK_AudioMute), spawn "amixer set Master toggle"),
50
        ((0, xF86XK_AudioLowerVolume), spawn "amixer set Master 5%-"),
51
        ((0, xF86XK_AudioRaiseVolume), spawn "amixer set Master 5%+"),
52
        ((mod4Mask .|. shiftMask, xK_m), spawnHere "quodlibet"),
54
53
55
    let remove = 0
56
        add = 1
57
        toggle = 2
54
        ((mod4Mask .|. shiftMask, xK_Tab), spawn "xkbswap"),
55
        ((mod4Mask .|. shiftMask, xK_l), spawn "slock"),
58
56
59
        ptype = 4
60
61
        action = head dat
62
63
    when (typ == state && (fromIntegral fullsc) `elem` tail dat) $ do
64
        when (action == add || (action == toggle && not isFull)) $ do
65
            io $ changeProperty32 dpy win state ptype propModeReplace [fromIntegral fullsc]
66
            fullFloat win
67
        when (head dat == remove || (action == toggle && isFull)) $ do
68
            io $ changeProperty32 dpy win state ptype propModeReplace []
69
            tileWin win
70
71
    return $ All False
72
73
evHook _ = return $ All True
74
75
fullFloat, tileWin :: Window -> X () 
76
fullFloat w = windows $ W.float w (W.RationalRect 0 0 1 1)
77
tileWin   w = windows $ W.sink w
57
        ((mod4Mask, xK_q), restart "xmonad" True)
58
     ]

+ 1 - 0
.zshrc

29
29
30
autoload colors && colors
30
autoload colors && colors
31
function precmd {
31
function precmd {
32
	echo -ne "\033]0;\007"
32
	user="%{$fg[red]%}%n%{$reset_color%}"
33
	user="%{$fg[red]%}%n%{$reset_color%}"
33
	dir="%{$fg[cyan]%}%~%{$reset_color%}"
34
	dir="%{$fg[cyan]%}%~%{$reset_color%}"
34
	lastcmd="$history[$(($HISTCMD-1))]"
35
	lastcmd="$history[$(($HISTCMD-1))]"