<p>AwhilebackIwassearchingforanewterminalandbrowsertouseonGentoothatwouldn't take ages to compile and didn'thaveamilliondependencies.Alongtheway,Iwasrecommendedtotakealookat<ahref="http://suckless.org/"target="_blank">Suckless</a>.Ifyou're not familiar with Suckless, it'sacollectionofsoftware(oradevelopmentgroup,doesn't really matter) that aims to develop based on the traditional UNIX mentality, primarily the slogan "Keep It Simple Stupid" (or KISS). You may be asking, "Well, doesn'tGNUalreadydothis?". In certain regards, yes, but in others (especially simplicity), no. Although we definitely have all four freedoms with regards to a program like GNU IceCat or GNOME, in order to modify these programs to suit your needs you'd have to spend days (or maybe even weeks) sifting through source-code until you found the segment that pertains to exactly what you wanted to modify, and then you'd have to figure out how to change it to work how you want it to within their very complex codebase. In the end, most of us just give up and put up with what we've got (this has happened to me on various occasions). But putting up with mediocrity isn't the spirit of free software, the spirit is that it's my software and should work as I want it to. This is why, with Suckless software, their programs aim to be as minimal and tiny as possible, with easy build scripts (just a Makefile, really), and simple code. This is so to such an extent that for many of their programs configuration is done before compiling to avoid parsers (if you've ever programmed a parser, these things can be a lot of code and get complex very quickly), instead you use patches and modifications to a <code>condig.def.h</code> file. One may find this tedious at first, because recompiling a program to change configuration is objectively more tedious than a settings menu, but it's worth noting that you're not always changing your settings. Typically, you setup your environment once, maybe over the course of a week, and then never change it again, or at least not for a few years. So why have a program constantly read a configuration file from your computer that has been the same for the past 3 years? When it's hard coded, there's no need for that.</p>
<p>So,nowthatweknowwhatSucklessis,let's get back to the story. Suckless has both, a web-browser, <a href="http://surf.suckless.org/" target="_blank" >Surf</a>, and a terminal, <a href="http://st.suckless.org/" target="_blank" >st</a> (meaning <i>simple terminal</i>). So far, st has been extremely useful and I have been using it on a daily basis with no regret. Surf, on the other hand, is a piece of crap. To be fair, this isn'tthefaultoftheguysatSuckless,andtheyare<ahref="http://suckless.org/project_ideas/"target="_blank">actuallyaware</a>oftheproblem(scrolldowntowhereitsays"A sane backend for surf").Essentially,Surfisanattemptatbeingalight-weightgraphicalbrowserwithfullsupportforJavaScript,HTML5,andCSS3.Problemis,inordertohavethis,theyneedaweb-rendererback-endthatwillsupportthese,butthistaskiseitherimpossibleorextremelydifficultwhilebeinglight-weight.Sofornowthey're conforming with webkit2 (which takes longer to compile than the Linux kernel or Qt libraries). Therefore, currently what I'musingis<ahref="http://w3m.sourceforge.net/"target="_blank">w3m</a>mostly,andwheneverI'mforcedtousesomefancywebfeatures(whichislessoftenthanIoriginallythought)IuseFirefoxfromthe<code>firefox-bin</code>packageGentoohas.</p>
<p>Ofcourse,eventhoughIwasdisillusionedwithSurf(orrather,thepainofupdatingitslargestdependency),IstillfoundothersoftwareSucklesshadtobeextremelyinteresting,namely<ahref="http://dwm.suckless.org/"target="_blank">dwm</a>and<ahref="http://tools.suckless.org/sent/"target="_blank">sent</a>.Iwon't talk about sent, since I haven'thadachancetouseitinanyreal-casescenario(Idon't do many presentations, and normally I dislike slide presentations to begin with), so instead I'llbefocusingondwm.UpuntilnowIhavebeenusingi3asmywindowmanager,andIstillthinkit's a great window manager, not even bloated, but dwm has certain characteristics that caught my eye. Apart from being another Suckless project (which is always something I look forward to), unlike i3, it automatically reorganizes windows such that the master window (normally the one you'reworkingonatthemoment)isinacentralplaceandhasmorespacethantheothers.Allthis,inlessthan1000linesofcode!AnotherthingIlikeisthestatusbar,whichiseditedviathe<code>WM_NAME</code>attributeusing<code>xsetroot-name"status stuff"</code>.TheoverallUNIXmentalitywiththiswindowmanagerissimplyamazing,anditsflexibilityhasbeenveryfun.</p>
<p>Now,becauseSucklesssoftwareisconfiguredandmodifiedprimarilythroughuser-madepatches,I've had to make a few of my own (especially for dwm). These are specific to my use cases (e.g. I have some that create shortcuts for the media keys to cmus), but they can be modified to suit your own needs, or will show you how to make your own patch. Therefore, I'llbecreatinganewpageforpatchessoon,whichwillcontainacollectionofpatchesthatIusefordifferentprograms.</p>