flattr

take a peek, go vote

the "pre-blog polls", now reside bellow the blog. please jump to the end of the page to have a little vote in them, just for fun. :)

... now, on with the rambling blog!

Thursday, 11 November 2010

*EXPLETIVE* I LOVE

Fuck i love linux! (which i now sometimes abreviate to merely "fill"

Fuck i love xmonad!

Fuck i love uzbl!


that last one is new.

:) just started playing around with it for the first time today. ok, not strictly the first time. i poked around fleetingly a couple other times when checking out a bunch of different browsers.

idk what prompted me to check it out again this time... but i'm glad i did.

i am very surprised!

it's now slotted to be the main browser in witch linux methinks. ... ok, it's not actually that small, but it's minimal and elegent, and renders sites really well *coughnetsurfcough*... and it claims to fit the unix philosophy, of an app should do one job and do it well... rather than apps bloating up in feature-lust.

ok, so it's like 55mb install here in arch. :/ it's not exactly small [(by my hardcore standards)], i accept this. there are smaller browsers.

i got my biggest surprise tho when i opened a youtube link... AND IT PLAYED!

i thought for sure a little browser like this wouldnt have such a feature.

it seems they've got it right... build it for the geeks n u will attract the geeks. more geeks in the userbase = more geeks to contribute to the development.

some brief hanging around in #uzbl on irc.freenode.net has given me the impression that it's progressing at pace. features missing 6 montsh ago, now available, and such like.

so anyways, i'm currently running uzbl to write this blog. uzbl-tabbed to be precise. i have my first uzbl youtube link opened in the previous tab. there's still loads n loads of controls i dont yet know in the default config, like how to close tabs (eep! better not go too crazy), but no doubt i'll be considering changing a few keybinds later on, knowing it's a configulurvable unix-philosophy app.

oh, yeah, and this blog entry isnt gonna be jsut for the lovely lovely uzbl...

i'm gonna share my xmonad config now too.
i've now got tiles resizeable by mouse! aw yeah. so if there are any "awesome" noobs out there who were too scared to try a real man's window manager like xmonad, you can try out my config, n see if it apeases your distrust of the keyboard. ^_^ (just some friendly teasing, dont get uppity with me if you're a awesome fanboy wanting to have a go at me for that.)

it's still a work in progress, but it's all i use in arch.

... come to think of it, when i'm in crunchbang10.04LTS (upped from 9.04), or in Toorox (a lovely gentoo-based distro if u dont know), xmonad is all i use in it too. although, still earlier versions of this config in each... with a couple distro-specific changes... like synaptic and porthole keybind.

suffice to say, it's production ready, to my standards. :)

one admission though... i have noticed it's not quite as zippy and responsive anymore as the default xmonad config is. :/ but still a few cuts above the bloated "Desktop Environment" interfaces.

import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Util.Run(spawnPipe)
import XMonad.Util.EZConfig(additionalKeys)
import XMonad.Hooks.EwmhDesktops
import XMonad.Config.Desktop
import XMonad.Actions.CycleWS
import XMonad.Layout.MouseResizableTile --and shrink/expand slave layout
import System.IO

-- initially created with help of: http://www.haskell.org/haskellwiki/Xmonad/Config_archive/John_Goerzen%27s_Configuration
-- use "xmonad --recompile" to check it's syntactically correct if making changes (better than just modQ)
-- list of key codes http://haskell.org/haskellwiki/Xmonad/Key_codes
-- may also prove useful for some keys and commands http://hackage.haskell.org/packages/archive/X11/1.4.5/doc/html/Graphics-X11-Types.html


-- also used
-- http://hackage.haskell.org/packages/archive/xmonad-contrib/0.8/doc/html/XMonad-Doc-Extending#Editing_mouse_bindings.html
-- http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Layout-MouseResizableTile.html
---- still need to learn how to change the size of the border gap between tiles now that a 6pixel gap has been adeed. :/


-- yet to be implimented:
-- resizing floating windows from any corner
-- http://hackage.haskell.org/packages/archive/xmonad-contrib/0.8/doc/html/XMonad-Actions-FlexibleResize.html
-- http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Actions-FlexibleResize.html


-- may want to encorporate:
-- http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Actions-GridSelect.html

-- DEFAULT TEMPATE : http://haskell.org/haskellwiki/Xmonad/Config_archive/Template_xmonad.hs_%280.9%29

myManageHook = composeAll
[ className =? "Gimp" --> doFloat
, className =? "pidgin" --> doFloat
, className =? "skype" --> doFloat
, className =? "vlc" --> doFloat
, className =? "tilda" --> doFloat
, className =? "Tilda" --> doFloat
, className =? "Vncviewer" --> doFloat
, className =? "gpicview" --> doFloat
, className =? "Gpicview" --> doFloat
, className =? "BetterPrivacy" --> doFloat
, className =? "Pidgin" --> doFloat
, className =? "Skype" --> doFloat
]

main = do
xmproc <- spawnPipe "/usr/bin/tint2 /home/digit/.config/tint2/tint2rc" xmonad $ ewmh desktopConfig { manageHook = manageDocks <+> myManageHook -- make sure to include myManageHook definition from above
<+> manageHook desktopConfig
, layoutHook = avoidStruts $ layoutHook defaultConfig { layoutHook = myLayout } --see "myLayout" bellow
, startupHook = spawn "starterscripts"
, modMask = mod4Mask -- Rebind Mod to the Windows key
} `additionalKeys`
[ ((mod4Mask, xK_F2), spawn "gmrun")
, ((mod4Mask .|. shiftMask, xK_F2), spawn "gedit ~/.gmrunrc")
, ((mod4Mask, xK_F3), spawn "~/.config/dmenu/dmenu-bind.sh")
, ((mod4Mask .|. shiftMask, xK_F3), spawn "gedit ~/.config/dmenu/dmenu-bind.sh") -- edit dmenu
, ((mod4Mask, xK_F4), kill) -- close focused window
, ((mod1Mask, xK_F4), kill) -- oldskool close focused window
, ((mod4Mask, xK_F5), spawn "xfce4-appfinder")
, ((mod4Mask, xK_F6), spawn "xkill")
, ((mod4Mask, xK_a), spawn "audacity")
, ((mod4Mask, xK_b), spawn "firefox")
, ((mod4Mask .|. mod1Mask, xK_b), spawn "seamonkey")
, ((mod4Mask, xK_c), spawn "pidgin & skype")
, ((mod4Mask, xK_d), spawn "gedit")
, ((mod4Mask .|. controlMask, xK_d), spawn "gksudo gedit")
, ((mod4Mask, xK_f), spawn "pcmanfm")
, ((mod4Mask .|. controlMask, xK_f), spawn "gksudo pcmanfm")
, ((mod4Mask .|. shiftMask, xK_f), spawn "searchmonkey")
, ((mod4Mask .|. shiftMask .|. mod1Mask, xK_f), spawn "catfish")
, ((mod4Mask, xK_g), spawn "gimp")
, ((mod4Mask, xK_i), spawn "inkscape")
, ((mod4Mask, xK_m), spawn "vlc")
, ((mod4Mask .|. mod1Mask, xK_m), spawn "deadbeef")
, ((mod4Mask .|. controlMask .|. mod1Mask, xK_m), spawn "gedit ~/.config/openbox/menu.xml") -- edit openbox menu
, ((mod4Mask, xK_n), sendMessage ToggleStruts) -- toggle panel visability.
, ((mod4Mask .|. mod1Mask, xK_n), spawn "pkill tint2 && tint2") -- restart panel.
, ((mod4Mask .|. controlMask .|. mod1Mask, xK_n), spawn "gedit ~/.config/tint2/tint2rc") -- edit panel config
, ((mod4Mask, xK_o), spawn "openbox --replace") -- switch to openbox
, ((mod4Mask .|. controlMask .|. mod1Mask, xK_o), spawn "gedit ~/.config/openbox/rc.xml") -- edit openbox config
, ((mod4Mask .|. shiftMask, xK_p), spawn "gksudo gparted")
, ((mod4Mask, xK_p), spawn "gksudo gtkpacman")
-- , ((mod4Mask, xK_q), spawn "xmonad --restart")
, ((mod4Mask .|. mod1Mask, xK_t), spawn "tilda") -- launch tilda
, ((mod4Mask, xK_v), spawn "VirtualBox")
, ((mod4Mask, xK_x), spawn "xmonad --recompile") -- recompile xmonad
, ((mod4Mask .|. mod1Mask, xK_x), spawn "xmonad --restart") -- restart xmonad
, ((mod4Mask .|. controlMask .|. mod1Mask, xK_x), spawn "gedit ~/.xmonad/xmonad.hs") -- edit xmonad config
, ((mod4Mask, xK_y), spawn "conky")
, ((mod4Mask .|. mod1Mask, xK_y), spawn "pkill conky && conky") --restart conky
, ((mod4Mask .|. controlMask .|. mod1Mask, xK_y), spawn "gedit ~/.conkyrc") --edit conky
, ((0, xK_Print), spawn "scrot '%Y-%m-%d--%s_$wx$h_scrot.png' -e 'mv $f ~/images/screenshots/ & gpicview ~/images/screenshots/$f'")
-- , ((modMask, next), nextWS)
-- , ((modMask, prev), prevWS)
, ((mod1Mask .|. controlMask, xK_Left), prevWS)
, ((mod1Mask .|. controlMask, xK_Right), nextWS)
-- , ((mod1Mask .|. controlMask .|. shiftMask, xK_Left), shiftToPrev)
-- , ((mod1Mask .|. controlMask .|. shiftMask, xK_Right), shiftToNext)
, ((mod1Mask .|. shiftMask, xK_Left), shiftToPrev)
, ((mod1Mask .|. shiftMask, xK_Right), shiftToNext)
--
, ((mod4Mask .|. mod1Mask, xK_h), sendMessage ShrinkSlave) -- %! Shrink a slave area
, ((mod4Mask .|. mod1Mask, xK_l), sendMessage ExpandSlave) -- %! Expand a slave area
]



--myLayout
myLayout = mouseResizableTile ||| mouseResizableTileMirrored ||| Full
where
-- default tiling algorithm partitions the screen into two panes
-- tiled = Tall nmaster delta ratio --need to figure out how to correctly impliment this line, if i want to adjust the nmaster, ratio and delta.... and i do very much want to adjust the delta. .. but its not essential, now that i have mouse resize

-- The default number of windows in the master pane
nmaster = 1

-- Default proportion of screen occupied by master pane
ratio = 1/2

-- Percent of screen to increment by when resizing panes
delta = 2/100
--

so anyways...

i love gnu|linux and xmonad, and now uzbl too.

probably indicative that i dont have a girlfriend right? lol.

No comments:

Post a Comment

flattr