import XMonad
import System.IO
import System.Exit
import XMonad.Util.Run
import XMonad.Actions.CycleWS
import XMonad.Actions.NoBorders
import XMonad.Actions.FloatKeys
import Data.Ratio ((%))
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.ManageHelpers
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.EwmhDesktops
import XMonad.Layout.NoBorders (noBorders)
import XMonad.Layout.MouseResizableTile
import qualified XMonad.StackSet as W
import qualified Data.Map as M
main = do
dzenLeftBar <- spawnPipe myXmonadBar
dzenRightBar <- spawnPipe myStatusBar
trayBar <- spawnPipe myTrayer
comPositor <- spawnPipe myCompositor
xmonad (ewmh defaultConfig)
{ terminal = myTerminal
, workspaces = myWorkspaces
, logHook = myLogHook dzenLeftBar
, manageHook = myManageHook
, layoutHook = myLayout
, modMask = mod4Mask
, keys = mykeys
, normalBorderColor = "grey15"
, focusedBorderColor = "grey42"
, borderWidth = 1
, handleEventHook = handleEventHook defaultConfig <+>
fullscreenEventHook
}
myXmonadBar = "pkill dzen2; dzen2 -x '0' -y '0' -h '24' -w '610' -ta 'l'" ++
" -fg 'yellow' -bg 'black' -fn xft:'liberation sans':size=11" ++
":style=bold:antialias=true:hinting=true"
myStatusBar = "pkill conky; conky -c /home/robertss/.xmonad/conky_dzen | " ++
"dzen2 -x '660' -y '0' -h '24' -w '620' -ta 'r' -bg 'black'"
myTrayer = "pkill trayer; trayer --edge top --align left --distancefrom left" ++
" --distance 610 --widthtype pixel --width 50 --transparent true " ++
"--alpha 0 --tint 0x000000 --expand true --heighttype pixel " ++
"--height 24"
myCompositor = "pkill compton; compton -b -o 0 -m 1 -D 0"
myTerminal = "urxvtc"
myWorkspaces = ["1","2","3","4 "]
myLogHook h = dynamicLogWithPP $ defaultPP
{
ppCurrent = dzenColor "red" "black" . pad
, ppVisible = dzenColor "white" "black" . pad
, ppHidden = dzenColor "green" "black" . pad
, ppHiddenNoWindows = dzenColor "#7b7b7b" "black" . pad
, ppUrgent = dzenColor "black" "red" . pad
, ppWsSep = ""
, ppSep = " | "
, ppLayout = dzenColor "yellow" "black" .
(\x -> case x of
"Full" -> " "
"MouseResizableTile" -> "|"
"Mirror MouseResizableTile" -> "-"
_ -> x
)
, ppTitle = (" " ++) . dzenColor "grey" "black" . dzenEscape
, ppOutput = hPutStrLn h
}
myManageHook = composeAll
[
resource =? "SmFloatTerm" -->
(doRectFloat $ W.RationalRect 0.4 0.4 0.58 0.58)
, resource =? "LgFloatTerm" -->
(doRectFloat $ W.RationalRect 0 0.03 1 0.96)
, manageDocks
]
myLayout = avoidStruts $ noBorders Full ||| layout3 ||| layout2
where layout2 = mouseResizableTile
{ draggerType = FixedDragger 0 3 }
layout3 = mouseResizableTileMirrored
{ draggerType = FixedDragger 0 3 }
myLauncher = "dmenu_run -fn 'liberation sans':size=14:style=bold:" ++
"antialias=true:hinting=true"
toggleFloat = withFocused (\windowId -> do
{ floats <- gets (W.floating . windowset);
if windowId `M.member` floats
then withFocused $ windows . W.sink
else do
keysResizeWindow (-240,-100) (4%5,2%3) windowId
}
)
mykeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $
[ ((modMask .|. controlMask, xK_Return ), spawn $ XMonad.terminal conf)
, ((modMask, xK_c ), kill)
, ((modMask, xK_space ), sendMessage NextLayout)
, ((modMask, xK_n ), sendMessage ToggleStruts)
, ((modMask, xK_r ), refresh)
, ((modMask, xK_Tab ), windows W.focusDown)
, ((modMask, xK_j ), windows W.focusDown)
, ((modMask, xK_k ), windows W.focusUp )
, ((modMask .|. controlMask, xK_j ), windows W.swapDown)
, ((modMask .|. controlMask, xK_k ), windows W.swapUp)
, ((modMask, xK_Return ), windows W.swapMaster)
, ((modMask, xK_t ), toggleFloat)
, ((modMask, xK_b ), withFocused toggleBorder)
, ((modMask, xK_h ), sendMessage Shrink)
, ((modMask, xK_l ), sendMessage Expand)
, ((modMask, xK_u ), sendMessage ShrinkSlave)
, ((modMask, xK_i ), sendMessage ExpandSlave)
, ((modMask, xK_comma ), sendMessage (IncMasterN 1))
, ((modMask, xK_period ),
sendMessage (IncMasterN (-1)))
, ((modMask, xK_Right ), nextWS)
, ((modMask .|. controlMask, xK_Right ), shiftToNext)
, ((modMask .|. mod1Mask, xK_Right ), shiftToNext >> nextWS)
, ((modMask, xK_Left ), prevWS)
, ((modMask .|. controlMask, xK_Left ), shiftToPrev)
, ((modMask .|. mod1Mask, xK_Left ), shiftToPrev >> prevWS)
, ((modMask, xK_p ), spawn myLauncher)
, ((modMask, xK_Home ), spawn
"urxvtc -name 'SmFloatTerm'")
, ((modMask .|. controlMask, xK_Home ), spawn
"urxvtc -name 'LgFloatTerm'")
, ((modMask, xK_f ), spawn "firefox")
, ((modMask, xK_m ),
spawn "thunderbird; xmonad --restart")
, ((modMask, xK_v ), spawn "vlc")
, ((modMask, xK_g ), spawn "geany")
, ((modMask .|. controlMask, xK_f ), spawn "xfe")
, ((0, xK_Print ), spawn
"scrot -e 'mv $f ~/screenshots/'")
, ((0, 0x1008ff11 ), spawn "mixer -s vol -2")
, ((0, 0x1008ff13 ), spawn "mixer -s vol +2")
, ((modMask, xK_w ), spawn "xmonad --restart")
, ((modMask, xK_q ),
spawn "xmonad --recompile && xmonad --restart")
, ((modMask .|. controlMask, xK_q ),
io (exitWith ExitSuccess))
]
background no
out_to_console yes
out_to_x no
update_interval 2.0
use_spacer none
TEXT
^fn(xft:liberation sans:size=11:style=bold:antialias=true:hinting=true)| \
^fg(green) ^i(/home/robertss/.xmonad/dzen2/net_down_03.xbm)${downspeed wlan0} \
^fg(magenta)^i(/home/robertss/.xmonad/dzen2/net_up_03.xbm)${upspeed wlan0}^fg() | \
^fg(blue)${exec sysctl hw.acpi.battery.life | egrep -o '[0-9]{1,3}' }% \
^fg(orange)${cpu}% \
^fg(cyan)${exec mixer vol | grep -o ':[0-9]*' | egrep -o '[0-9]{1,3}' }%^fg() |\
${execi 1800 /home/robertss/.xmonad/mail-notify} \
^fg(yellow)^fn(liberation sans:size=12:style=bold italic:\
antialias=true:hinting=true)${time %a %m/%d/%Y %R }
#! /usr/local/bin/bash
gmail=$(python /home/robertss/.xmonad/gmail.py)
if [ $gmail -eq 0 ]; then
echo ""
elif [ $gmail -gt 0 ]; then
echo "^fg(magenta)Email: $gmail^fg() |"
else
echo "^fg(red)Net Down?^fg() |"
fi
#!/usr/bin/env python
def gmail_checker(username,password):
import imaplib,re
i=imaplib.IMAP4_SSL('imap.gmail.com')
try:
i.login(username,password)
x,y=i.status('INBOX','(MESSAGES UNSEEN)')
messages=int(re.search('MESSAGES\s+(\d+)',y[0]).group(1))
unseen=int(re.search('UNSEEN\s+(\d+)',y[0]).group(1))
return (messages,unseen)
except:
return False,0
messages,unseen = gmail_checker('gmail_user@gmail.com','password')
print "%i" % (unseen)
urxvtd -q -f -o
exec xmonad
###################.fvwm2rc by ILUXA
ImagePath $HOME/.fvwm/pixmaps/:/usr/local/share/fvwm/pixmaps/
AddToFunc StartFunction
+ I Module FvwmCommandS
# + I Module FvwmBanner
+ I Module FvwmEvent FE-StartOps
# add taskbar and pager
# + I Module FvwmTaskBar
# + I Module FvwmPager 0 3
AddToFunc InitFunction
+ I Exec [ -f $HOME/.xinitrc-fvwm ] && sh $HOME/.xinitrc-fvwm
#AddToFunc RestartFunction
# + I Exec ...
IgnoreModifiers L25
DesktopSize 1x1
Emulate Fvwm
HideGeometryWindow Always
OpaqueMoveSize unlimited
# Working area : left right top bottom (33)
#EwmhBaseStruts 0 0 0 49
BugOpts RaiseOverUnmanaged off
DefaultFont "xft:Cantarell:pixelsize=14"
DefaultColors #FFFFFF #313434
Style * NoIcon
Style * ClickToFocus
Style * ResizeOpaque
Style * MwmFunctions
Style * MwmDecor
Style * OLDecor
Style * !StippledTitle
Style * DecorateTransient
Style * EWMHUseStackingOrderHints
Style * BorderWidth 3, HandleWidth 3
Style * SnapAttraction 13 SameType Screen
Style * Font "xft:Cantarell:pixelsize=14:Bold"
Style * ForeColor darkgray, BackColor #313434
Style * HilightFore white, HilightBack #313434
CursorStyle ROOT left_ptr
CursorStyle TITLE left_ptr
CursorStyle DEFAULT left_ptr
CursorStyle SYS left_ptr
CursorStyle MENU left_ptr
CursorStyle WAIT left_ptr
BusyCursor DynamicMenu True, Read True
MenuStyle * Fvwm
MenuStyle * Hilight3DOff
MenuStyle * SeparatorsLong
MenuStyle * BorderWidth 1
MenuStyle * VerticalMargins 10 10
MenuStyle * Font "xft:Cantarell:pixelsize=15"
MenuStyle * Foreground white, Background #313434
MenuStyle * ActiveFore white, HilightBack #215D9C
MenuStyle * VerticalItemSpacing 4 6, VerticalTitleSpacing 0 4
TitleStyle ActiveUp solid #313434 -- Flat
TitleStyle ActiveDown solid #313434 -- Flat
TitleStyle Inactive solid #313434 -- Flat
TitleStyle Centered Height 20
BorderStyle Inactive -- HiddenHandles NoInset
BorderStyle Active -- HiddenHandles NoInset
ButtonStyle 1 Pixmap close.png -- Flat
ButtonStyle 3 Pixmap min.png -- Flat
ButtonStyle 5 Pixmap max.png -- Flat
ButtonStyle 1 Inactive Pixmap unfocused.png -- Flat
ButtonStyle 3 Inactive Pixmap unfocused.png -- Flat
ButtonStyle 5 Inactive Pixmap unfocused.png -- Flat
ButtonStyle 1 ActiveDown Pixmap close-press.png -- Flat
ButtonStyle 3 ActiveDown Pixmap min-press.png -- Flat
ButtonStyle 5 ActiveDown Pixmap max-press.png -- Flat
##########Titlebar buttons
Mouse 1 1 A Close
Mouse 1 3 A Iconify
Mouse 1 5 A Maximize
##########Titlebar actions: move, raise and focus with single click, maximize with double click.
DestroyFunc MaximizeOrMove
AddToFunc MaximizeOrMove
+ I Raise
+ I Focus
+ D Maximize
+ M ThisWindow (Maximized, !Shaded) Maximize False
# + M TestRc (Match) Move 50-50w 50-50w
+ M TestRc (Match) WarpToWindow 50 1
+ M Move
Mouse 1 T A MaximizeOrMove
# Shade on titlebar middle click
Mouse 2 T A WindowShade
##########Options menu: Super+right click window/ right click titlebar or border/
Super+Space
# Toggle OnTop with Lower
DestroyFunc LowerTo4
AddToFunc LowerTo4
+ I Layer 0 4
+ I Lower
# Move function
DestroyFunc MyMove
AddToFunc MyMove
+ I ThisWindow (Maximized) Maximize False
# + I TestRc (Match) Move 50-50w 50-50w
+ I WarpToWindow 50 1
+ I Move
DestroyMenu WindowOptions
AddToMenu WindowOptions
+ " Lower" LowerTo4
+ " On Top" Layer 0 6
+ "" Nop
+ " Minimize" Iconify
+ " Maximize" Maximize
#+ "" Nop
#+ " Move" MyMove
#+ " Resize" Resize Direction SE
+ "" Nop
+ " Always on Visible Desk " Stick
+ "" Nop
+ " Move to Desk 1" MoveToDesk 0 0
+ " Move to Desk 2" MoveToDesk 0 1
+ " Move to Desk 3" MoveToDesk 0 2
+ " Move to Desk 4" MoveToDesk 0 3
+ "" Nop
+ " Close" Close
Mouse 3 W 4 Menu WindowOptions mouse -1p -1p
Mouse 3 TS A Menu WindowOptions mouse 0p 0p
Key Space A 4 Menu WindowOptions
##########Desktop: empty left click, right click -- desktop menu
DestroyMenu RootMenu
AddToMenu RootMenu " FVWM " Title
+ " &Identify" Module FvwmIdent
+ "" Nop
+ " &Console" FvwmConsole
+ "" Nop
+ " &Config" Exec xterm -e $EDITOR $HOME/.fvwm2rc
+ "" Nop
+ " &Restart" Restart
+ "" Nop
+ " &Quit" FvwmForm FvwmForm-QuitVerify
Mouse 1 R A Nop
Mouse 3 R A Menu RootMenu mouse -1p -1p
##########Show desktop with Ctrl+Alt+D
DestroyFunc ShowDesktop
AddToFunc ShowDesktop
+ I All (CurrentPage, !Iconic) Iconify
Key D A CM ShowDesktop
##########Move windows with Super+left mouse click
DestroyFunc FocusWhenMove
AddToFunc FocusWhenMove
+ I Raise
+ I Focus
+ M ThisWindow (Maximized) Maximize False
# + M TestRc (Match) Move 50-50w 50-50w
+ M TestRc (Match) WarpToWindow 50 10
+ M Move
Mouse 1 WST 4 FocusWhenMove
##########Resize windows with Super+middle mouse click
DestroyFunc FocusWhenResize
AddToFunc FocusWhenResize
+ I Raise
+ I Focus
+ I Resize Direction Automatic
Mouse 2 WST 4 FocusWhenResize
##########Scroll Desks with:
# Ctrl+Alt+mouse wheel
Mouse 4 A CM Desk -1 0 0 3
Mouse 5 A CM Desk +1 0 0 3
# Ctrl+Alt+PgUp\PgDn
Key Prior A CM Desk -1 0 0 3
Key Next A CM Desk +1 0 0 3
##########Show 1-4 Desk with Super + F1-F4
Key F1 A 4 GotoDesk 0 0
Key F2 A 4 GotoDesk 0 1
Key F3 A 4 GotoDesk 0 2
Key F4 A 4 GotoDesk 0 3
##########Move window to 1-4 Desk with Super + 1-4
Key 1 A 4 MoveToDesk 0 0
Key 2 A 4 MoveToDesk 0 1
Key 3 A 4 MoveToDesk 0 2
Key 4 A 4 MoveToDesk 0 3
##########Ctrl+Alt+ left\middle\right click to minimize\maximize\close
#Mouse 1 W CM Iconify
#Mouse 2 W CM Maximize
#Mouse 3 W CM Close
##########Alt+Tab
Key Tab A M WindowList Root c c NoGeometry, NoCurrentDeskTitle, IconifiedAtEnd
##########Tiling:
# Super + Left arrow
DestroyFunc TileLeft
AddToFunc TileLeft
+ I ThisWindow (!Shaded, !Iconic) Maximize 50 100
+ I ThisWindow (Maximized, !Shaded, !Iconic) Move 0 0
Key Left A 4 TileLeft
# Super + Right arrow
DestroyFunc TileRight
AddToFunc TileRight
+ I ThisWindow (!Shaded, !Iconic) Maximize 50 100
+ I ThisWindow (Maximized, !Shaded, !Iconic) Move 50 0
Key Right A 4 TileRight
##########Other key bindings
# Unmaximize or minimize
DestroyFunc UnmaximizeIconify
AddToFunc UnmaximizeIconify
+ I ThisWindow (Maximized) Maximize False
+ I TestRc (!Match) Iconify
#Keyname Context Modifiers Function Description
Key Up A 4 Maximize True #Super+Up arrow -- maximize
Key Down A 4 UnmaximizeIconify #Super+Down -- unmaximize or minimize
Key M A 4 MyMove #Super+M -- move
Key R A 4 Resize Direction SE #Super+R -- resize
Key H A 4 Iconify #Super+H -- minimize
Key Q A 4 Close #Super+Q -- close
Key R A C4 Restart #Ctrl+Super+R -- restart FVWM
# Keyboard shortcuts for apps
Key X A CM Exec xkill #Ctrl+Alt+X -- xkill
Key KP_Multiply A C Exec mixer vol mute #Ctrl+Num* -- volume mute
Key KP_Subtract A C Exec mixer vol -7 #Ctrl+Num- -- volume -
Key KP_Add A C Exec mixer vol +7 #Ctrl+Num+ -- volume +
Key F2 A M Exec gmrun #Alt+F2 -- gmrun
Key L A CM Exec xscreensaver-command -lock #Ctrl+Alt+L - lock screen
##########FVWM Modules
# FVWM banner
*FvwmBanner: NoDecor
*FvwmBanner: Pixmap Logo.png
# FVWM Identify app from desktop menu
Style FvwmIdent WindowListSkip, NeverFocus, !Title
*FvwmIdent: Font "xft:Cantarell:pixelsize=13"
*FvwmIdent: Fore white
*FvwmIdent: Back #313434
*FvwmIdent: MinimalLayer 6
# FVWM quit dialog
Style FvwmForm-QuitVerify WindowListSkip, !Title
*FvwmFormDefault: Font "xft:Cantarell:pixelsize=13"
*FvwmFormDefault: ButtonFont "xft:Cantarell:pixelsize=13"
*FvwmFormDefault: TimeoutFont "xft:Cantarell:pixelsize=13"
*FvwmFormDefault: Fore white
*FvwmFormDefault: Back #313434
*FvwmFormDefault: ItemFore white
*FvwmFormDefault: ItemBack #313434
# FVWM taskbar
Style "FvwmTaskBar" Sticky, WindowListSkip, CirculateSkip \
EWMHIgnoreStackingOrderHints, StaysOnTop, !Title \
NeverFocus, FixedPosition
*FvwmTaskBar: Geometry "+0-0"
*FvwmTaskBar: UseSkipList
*FvwmTaskBar: WindowButtonsLeftMargin 8
*FvwmTaskBar: Back #313434
*FvwmTaskBar: Fore white
*FvwmTaskBar: IconBack #242626
*FvwmTaskBar: IconFore #DADADA
*FvwmTaskBar: Font "xft:Cantarell:pixelsize=15"
*FvwmTaskBar: SelFont "xft:Cantarell:pixelsize=15"
*FvwmTaskBar: StatusFont "xft:Cantarell:pixelsize=15"
*FvwmTaskBar: StartCommand Popup RootMenu rectangle \
$widthx$height+$left+$top 0 -100m
*FvwmTaskBar: StartName FreeBSD
*FvwmTaskBar: StartIcon bsd.xpm
*FvwmTaskBar: ClockFormat %D %H:%M
*FvwmTaskBar: Action Click3 Iconify true, Lower
# FVWM desk switcher
Style FvwmPager Sticky, WindowListSkip, CirculateSkip, !Title, NeverFocus
*FvwmPager: Geometry 300x100-0+0
*FvwmPager: Rows 1
*FvwmPager: Columns 4
*FvwmPager: Font "xft:Cantarell:pixelsize=15"
*FvwmPager: Back #DADADA
*FvwmPager: Hilight #215D9C
*FvwmPager: Label 0 1
*FvwmPager: Label 1 2
*FvwmPager: Label 2 3
*FvwmPager: Label 3 4
##########Apps
Style Plank UnManaged
Style gvolwheel EWMHIgnoreStackingOrderHints, StaysOnTop
Style panel NeverFocus, EWMHIgnoreStackingOrderHints, StaysOnTop, FixedPosition
Style lxpanel EWMHIgnoreStackingOrderHints, StaysOnTop
Style Gmrun WindowListSkip, !UsePPosition, StaysOnTop, PositionPlacement Center
Style XTerm MiniIcon mini.x.xpm, ResizeHintOverride
Style Nautilus NoDecorHint, NakedTransient
Style File-roller NoDecorHint, TitleFormat %c
Style Totem NoDecorHint, TitleFormat %c
Style Evince NoDecorHint, TitleFormat %c
Style Gnome-screenshot NoDecorHint, TitleFormat
Style chromium-browser NoPPosition
Style Python NoDecorHint
# Wine games focus fix
Style *.exe FPLenient
##########Start options per app (set the window position, start maximized, etc)
DestroyModuleConfig FE-StartOps: *
*FE-StartOps: add_window FuncStartOps
DestroyFunc FuncStartOps
AddToFunc FuncStartOps
# Web browsers start maximized
#+ I ThisWindow ("Firefox") Maximize
#+ I ThisWindow ("Seamonkey") Maximize
#+ I ThisWindow ("Midori") Maximize
#+ I ThisWindow ("chromium-browser") Maximize
# Stjerm position fix
+ I ThisWindow ("Stjerm") Move 0 0
AddToFunc StartFunction
# add taskbar and pager
+ I Module FvwmTaskBar
+ I Module FvwmPager 0 3
#!/bin/sh
# add "~/.local/bin" to $PATH
PATH=${PATH}:~/.local/bin; export PATH
# enable GTK apps sound notifications (libcanberra & libcanberra-gtk3 should be installed)
GTK_MODULES="canberra-gtk-module"; export GTK_MODULES
xrdb -merge ~/.Xdefaults
setxkbmap -layout us,ru -option grp:caps_toggle -option grp_led:scroll -option terminate:ctrl_alt_bksp -option compose:ralt
# set your resolution & stop tearing (nvidia)
#nvidia-settings --assign CurrentMetaMode="1280x1024 +0+0 { ForceCompositionPipeline = On }"
# resolution for other video cards
#VGA_out="$(xrandr -q | grep -m 1 '\<connected\>' | cut -d ' ' -f1)"; export VGA_out
#xrandr --output $VGA_out --mode "1280x1024"
# set your wallpaper
#hsetroot -fill /home/user/picture.jpg
xscreensaver -nosplash &
compton -b
conky &
stjerm &
lxpanel &
clipit &
gvolwheel &
plank &
# restart FVWM to apply new resolution
#sleep 5 && FvwmCommand Restart
I love CDE (memories) and I think to install it. Is it possible to get 2560x1440 (16:9) resolution, please?I use DWM in my ThinkPad T430. A couple of days ago I installed the old CDE just for fun. It works great!
Since I don't have a corresponding monitor I just started Xvfb(1) with 2560x1440x24 resolution, here is the screenshot:I love CDE (memories) and I think to install it. Is it possible to get 2560x1440 (16:9) resolution, please?
I use DWM in my ThinkPad T430. A couple of days ago I installed the old CDE just for fun. It works great!
Nice setup. I like the wallpaper image. Can you post a link to the image?
wow very very nice, sir !
The greatest thing since bread came sliced! Probably the best screenshot in this thread.
ILUXA said: