---- -* [dwm mailing list archive][dwmarchive] -* [wmii mailing list archive][wmiiarchive] - -Related lists -------------- - -* [9fans](http://plan9.bell-labs.com/wiki/plan9/mailing_lists/#9fans) - Fans of the [Plan 9 from Bell Labs](http://9fans.net) operating system. -* [inferno-list](http://plan9.bell-labs.com/wiki/plan9/mailing_lists/#INFERNO-LIST) - Inferno users and developers - -IRC ---- - -The channels are in the [OFTC](http://www.oftc.net) IRC network: [irc.oftc.net](irc://irc.oftc.net/) - -Official channel of suckless.org projects: - -* [#suckless](irc://irc.oftc.net/#suckless) - -Other popular channels: - -* [#acme](irc://irc.oftc.net/#acme) -* [#plan9](irc://irc.freenode.net/#plan9) -* [#inferno](irc://irc.freenode.net/#inferno) - -[devarchive]: http://lists.suckless.org/dev/ -[dwmarchive]: http://lists.suckless.org/dwm/ -[hackersarchive]: http://lists.suckless.org/hackers/ -[wikiarchive]: http://lists.suckless.org/wiki/ -[wmiiarchive]: http://lists.suckless.org/wmii/ diff -r f0b26c2f2a56 -r 7e5ba9ea3cc6 suckless.org/common/cool_programs.md --- a/suckless.org/common/cool_programs.md Wed Sep 02 14:09:30 2009 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 _AT_@ -1,100 +0,0 @@ -COOL PROGRAMS -============= - -Some programs work well with wmii or dwm. Some general rules of thumb -for judging a programs as usable are: - -* The program will accept any window size -* The program consists of a single window (There are no nested windows, such as in Xpdf) - -This covers most console-based programs and programs from [plan9port][]. - -Text Editors ------------- -* [acme][acme] - [Rob Pike][rob]'s framing text editor for Plan 9. Included in [plan9port][]. -* [nvi](http://www.bostic.com/vi/) - A small, multiple file vi-alike. -* [sam](http://sam.cat-v.org/) - An editor by [Rob Pike][rob] with inspiration from ed. -* [traditional vi](http://ex-vi.sourceforge.net/) - A fixed version of the original vi. -* [vim](http://www.vim.org) (With the GUI, use `:set go+=c` to kill popup dialogs) -* [wily](http://www.cs.yorku.ca/~oz/wily/) - An acme clone for POSIX. - -Audio Players -------------- -* [cmus](http://onion.dynserv.net/~timo/cmus.html) -* [cplay](http://mask.tf.hut.fi/~flu/hacks/cplay/) -* [moc](http://moc.daper.net/) -* [mpd](http://www.musicpd.org/) - A client/server based music player with console and graphical front-ends. -* [mpg123](http://www.mpg123.de/) - A console mpg player which doesn't use auto*hell, or extra libraries. -* [mpg321](http://mpg321.sourceforge.net) -* [PyTone](http://www.luga.de/pytone/) - PyTone is a music jukebox written in Python with a curses based GUI. It provides features like crossfading and multiple players, special emphasis is put on ease of use. -* [vorbis-tools](http://www.xiph.org/) (Ogg/FLAC) - Command-line tools to play Ogg and FLAC files. - -Media Players -------------- -* [mplayer](http://www.mplayerhq.hu/) (without GUI) - You know mplayer, but you may not know that it works well without the GUI. -* smplayer - -Utilities ---------- -* [9menu](http://www.freshports.org/x11/9menu/) - A menu program based on the Blit-style menus so prevalent in Plan 9. - A take on it is included with wmii. -* [dmenu](/programs/dmenu.html) - Obvious - -Image Viewers -------------- -* [feh](http://linuxbrit.co.uk/feh/) -* [jpg/gif/bmp/png][plan9port] - Simple programs from Plan 9 to display images in no-frills windows. Included with plan9port. -* [page][plan9port] - Plan 9's image/document viewer program. Included with plan9port. -* [qiv](http://www.klografx.net/qiv/) -* [xli](http://pantransit.reptiles.org/prog/) -* [xzgv](http://sourceforge.net/projects/xzgv) - -IRC Clients ------------ -* [acme:SAC](http://caerwyn.com/acme/index.html) -* [ii](/programs/ii.html) - A FIFO based IRC client which is part of the suckless.org project. -* [ircc](http://www.r-36.net/ircc.tgz) - A no-frills, ncurses free, console-based IRC client. -* [Irc](http://swtch.com/irc/) -* [ircrc](http://plan9.bell-labs.com/sources/contrib/fgb/rc/ircrc) - An rc-based IRC client similar to ircc. Needs minor modification to run on UNIX. -* [irssi](http://www.irssi.org/) -* [sic](/programs/sic.html) - Another suckless.org IRC client. Similar to ircc. - -Mail Clients ------------- -* [heirloom-mailx](http://heirloom.sourceforge.net/mailx.html) - A mail client based on the original Berkeley Mail 8.1 with many new features. -* [Mail][plan9port] - A mail client for [acme][acme]. Included with plan9port. -* [mutt](http://www.mutt.org/) -* [muttator](http://vimperator.org/) - A Thunderbird extension to make it keyboard friendly and mutt/Vim-like. -* [nmh](http://www.nongnu.org/nmh/) -* Sylpheed claws - -Instant Messaging Clients -------------------------- -* [bitlbee](http://www.bitlbee.org/) - A program to translate IM protocols to IRC. You can now IM from your IRC client, and you don't even need to install anything. -* [centericq](http://konst.org.ua/centericq/) -* [centerim](http://www.centerim.org/) - A centericq fork. -* [climm](http://www.climm.org/) -* [mcabber](http://www.lilotux.net/~mikael/mcabber/) - A console jabber client. -* [ysm](http://ysmv7.sourceforge.net/) - -Web Browsers ------------- -* [Vimperator](http://vimperator.org/) - An extension to make Firefox keyboard friendly and Vim-like. - Developed in part by wmii's maintainer. -* [Conkeror](http://www.conkeror.org/) - A Gecko based browser, imparting it Emacs style key bindings, appearances, and behaviors. -* [Dillo](http://www.dillo.org/) (try the i18n version) -* [ELinks](http://elinks.or.cz/) -* [links2](http://links.twibright.com/) -* [Lynx](http://lynx.isc.org/) -* [w3m](http://w3m.sf.net/) -* [edbrowse](http://edbrowse.sourceforge.net/) -* [uzbl](http://uzbl.org/) - -Web Servers (httpd) ------------- -* [Nostromo](http://www.nazgul.ch/dev_nostromo.html) - -[rob]: http://herpolhode.com/rob/ -[plan9port]: http://swtch.com/plan9port/ -[acme]: http://acme.cat-v.org - diff -r f0b26c2f2a56 -r 7e5ba9ea3cc6 suckless.org/common/donations.md --- a/suckless.org/common/donations.md Wed Sep 02 14:09:30 2009 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 _AT_@ -1,35 +0,0 @@ -DONATIONS -========= -We thank all people who have donated or are donating in one way or another -to a suckless.org related project. We kindly ask to continue donating to the -suckless.org project. As the project grows and grows, there are plans to get -in touch with the [GSoC](http://code.google.com/soc/2008/) in 2009 to sponsor -more less sucking projects we have in mind. - -Present -------- -Following people are currently donating in one or another way to the suckless.org project: - -* Jason Thigpen donates a slicehost server, which hosts the source code and the tarballs of our projects. -* Anselm R Garbe donates all other servers currently in use. -* John V. Turek donated <b> 10 EUR</b> - -Past ----- -Following people have donated to the [wmii](/wmii) resp. [dwm](/dwm) project -certain amounts of money, which have been used for the dedicated server rent -in the past: - -* Filippo Negroni donated <b> 10 GBP </b> -* Markus Schnalke donated <b> 10 EUR</b> -* Sebastian Noack donated <b> 50 EUR </b> -* Jason Thigpen donated <b> 100 USD </b> -* Markus Schnalke donated <b> 20 EUR </b> -* Enno 'Gottox' Boland donated <b>50 EUR</b> -* Ivan F. Villanueva B. donated <b>20 EUR</b> -* Alexandre Dulaunoy donated <b>100 EUR</b> -* Alexis Hildebrandt donated <b>100 EUR</b> -* Al Wong (aka alvin) donated <b>100 USD</b> -* Heiko Schlichting (aka rundstutzen) donated <b>100 EUR</b> - - diff -r f0b26c2f2a56 -r 7e5ba9ea3cc6 suckless.org/common/dynamic_window_management.md --- a/suckless.org/common/dynamic_window_management.md Wed Sep 02 14:09:30 2009 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 _AT_@ -1,42 +0,0 @@ -DYNAMIC WINDOW MANAGEMENT -========================= - -We think that static window management as seen in Ion or wmi-10 is a far too -rigid and inflexible working environment. In [acme](http://acme.cat-v.org), -larswm, and oberon, dynamic window management frees the user from these -limitations. The user can start as many applications and windows as he likes, -and easily arrange them in a useful way, helped by the window manager - the -working environment changes with the tasks the user is performing. The -experience is very fluid and natural. Similar concepts have been introduced in -wmii and dwm. - -Dynamic window management states that it is the window manager's job to manage -windows - and not the user's job to have to set up some specialized layout that -will only work for one specific work scenario. This has been the larswm motto -for a long time. In contrast to static window management, the user rarely has -to think about how to organize windows, no matter what he is doing or how many -applications are running at the same time. The window manager adapts to the -current environment and helps the user manage and mold it to his needs, rather -than forcing it to use a preset, fixed layout and trying to shoehorn all -windows and applications into it. - -Dynamic window management has many advantages - you can create and tear down -whole working environments in a matter of seconds rather than spending time -fine-tuning a fixed layout that cannot work well in all cases. The number and -nature of windows you work with changes all the time, and a dynamic window -manager lets you adapt to that and always efficiently use your precious screen -real estate. - -Some will argue that you should setup a different static workspace for each of -the tasks you perform (one for web browsing, one for email reading, one for -coding, etc.), but that is just a workaround for the limitations of static -window management, and it doesn't account for the many sub-usage patterns each -main task has. - -For example: the layout you use during debugging would probably be quite -different to the one used during refactoring, you might want to have a patch -someone emailed you in view while you look at some code, or edit a -configuration file while you look at a man page or website. Dynamic window -management lets you mix and match on the fly to always have the windows you -need in view, and only the windows you need, without the need to reserve extra -space which you may or may not end up using. diff -r f0b26c2f2a56 -r 7e5ba9ea3cc6 suckless.org/common/faq.md --- a/suckless.org/common/faq.md Wed Sep 02 14:09:30 2009 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 _AT_@ -1,9 +0,0 @@ -FAQ -=== -Why don't you use autoconf, et al.? ------------------------------------ -We don't use auto*hell for various reasons, start here: - -* [“Stop the autoconf insanity! Why we need a new build system.”](http://freshmeat.net/articles/view/889/) -* [“Why autoconf, automake and libtool fail”](http://www.ohse.de/uwe/articles/aal.html) -* [“[9fans] configure misery”](http://lists.cse.psu.edu/archives/9fans/2003-November/029714.html) diff -r f0b26c2f2a56 -r 7e5ba9ea3cc6 suckless.org/common/index.md --- a/suckless.org/common/index.md Wed Sep 02 14:09:30 2009 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 _AT_@ -1,59 +0,0 @@ -SUCK LESS PHILOSOPHY -==================== - -Background ----------- -We are the home of quality software such as [dwm](http://dwm.suckless.org), -[dmenu](http://tools.suckless.org), [libixp](http://libs.suckless.org/libixp), -[wmii](http://wmii.suckless.org) and plenty of other [tools](http://tools.suckless.org), with -a focus on simplicity, clarity and frugality. Our philosophy is -about keeping things simple, minimal and usable. We believe this should become -the mainstream philosophy in the IT sector. Unfortunately, the tendency for -complex, error-prone and slow software seems to be prevalent in the present-day -software industry. We intend to prove the opposite with our software projects. - -Our project focuses on advanced and experienced computer users. In contrast -with the usual proprietary software world or many mainstream open source -projects that focus more on average and non-technical end users, we think that -experienced users are mostly ignored. This is particularly true for user -interfaces, such as graphical environments on desktop computers, on mobile -devices, and in so-called Web applications. We believe that the market of -experienced users is growing continuously, with each user looking for more -appropriate solutions for his/her work style. - -Designing simple and elegant software is far more difficult than letting ad-hoc -or over-ambitious features obscure the code over time. However one has to pay -this price to achieve reliability and maintainability. Furthermore, minimalism -results in reasonable and attainable goals. We strive to maintain minimalism and -clarity to drive development to completion. - -Manifest --------- -Many (open source) hackers are proud if they achieve large amounts of code, -because they believe the more lines of code they've written, the more progress -they have made. The more progress they have made, the more skilled they are. -This is simply a delusion. - -Most hackers actually don't care much about code quality. Thus, if they get -something working which seems to solve a problem, they stick with it. If this -kind of software development is applied to the same source code throughout its -entire life-cycle, we're left with large amounts of code, a totally screwed -code structure, and a flawed system design. This is because of a lack of -conceptual clarity and integrity in the development process. - -Code complexity is the mother of bloated, hard to use, and totally inconsistent -software. With complex code, problems are solved in suboptimal ways, valuable -resources are endlessly tied up, performance slows to a halt, and -vulnerabilities become a commonplace. The only solution is to scrap the entire -project and rewrite it from scratch. - -The bad news: quality rewrites rarely happen, because hackers are proud of -large amounts of code. They think they understand the complexity in the code, -thus there's no need to rewrite it. They think of themselves as masterminds, -understanding what others can never hope to grasp. To these types, complex -software is the ideal. - -Ingenious ideas are simple. Ingenious software is simple. Simplicity is the -heart of the Unix philosophy. The more code lines you have removed, the more -progress you have made. As the number of lines of code in your software -shrinks, the more skilled you have become and the less your software sucks. diff -r f0b26c2f2a56 -r 7e5ba9ea3cc6 suckless.org/common/other_projects.md --- a/suckless.org/common/other_projects.md Wed Sep 02 14:09:30 2009 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 _AT_@ -1,11 +0,0 @@ -OTHER PROJECTS -============== -There are several other projects which are inspired by the spirit of suckless. - -* [dietline](http://news.nopcode.org/dietline.c) -* [dvtm](http://www.brain-dump.org/projects/dvtm/) -* [dzen](http://dzen.geekmode.org/) -* [kelp](http://kelp.sf.net) -* [sltar](http://s01.de/~gottox/index.cgi/proj_sltar) -* [smu](http://s01.de/~gottox/index.cgi/proj_smu) -* [bgs](http://s01.de/~gottox/index.cgi/proj_bgs) diff -r f0b26c2f2a56 -r 7e5ba9ea3cc6 suckless.org/common/patches.md --- a/suckless.org/common/patches.md Wed Sep 02 14:09:30 2009 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 _AT_@ -1,28 +0,0 @@ -PATCHES -======= - -diff generation ---------------- -For mercurial users: - - cd program-directory - hg diff > program-X.Y-yourpatchname.diff - -For tarballs: - - cd modified-program-directory/.. - diff -up original-program-directory modified-program-directory > program-X.Y-yourpatchname.diff - -where `X.Y` is a wmii tag name or version number. - -patch program -------------- -For mercurial users: - - cd program-directory - hg patch path/to/patch.diff - -For tarballs: - - cd program-directory - patch -p1 < path/to/patch.diff diff -r f0b26c2f2a56 -r 7e5ba9ea3cc6 suckless.org/common/project_ideas.md --- a/suckless.org/common/project_ideas.md Wed Sep 02 14:09:30 2009 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 _AT_@ -1,181 +0,0 @@ -PROJECT IDEAS FOR FUTURE GSOCs -============================== -We applied as a mentoring organization for [Google Summer of Code 2009](http://code.google.com/soc/), but were rejected this time. Perhaps we will apply in 2010 again. - -Please read our [philosophy](/common) for background information. - -Mentors -------- -We intend that each student will be the project leader of his/her particular -project and the only individual with commit privilege for the repository. - -There will be one mentor and one backup mentor per project. In addition, the -suckless.org community will act as a rigid external reviewer of the -student's progress, as well as of the mentor's. - -General ideas -------------- -Our project ideas in general intended to focus on: - -* Graphical user interfaces for expert users (such as more advanced - concepts for mail clients, messaging clients, music players, text editors) -* Web applications for expert users following our GUI concepts -* Mobile applications for expert users following our GUI concepts -* General userland enhancements to Unix-like operating systems, in particular - GNU/Linux -* Audio applications -* Image/Streaming/Gallery desktop and web applications -* Foundations of a new windowing system for Unix-like operating systems - (based on xorg drivers, but no X11- or XServer-dependency) -* Improvements of our existing software projects - -Concrete ideas --------------- -The listed ideas generally require good knowledge of C and experience with -Unix-like operating systems. The difficulty ranges from medium to high. -An academic background in computer science is desirable but not essential. - -### Unix utilities - -Projects like [dmenu](http://tools.suckless.org/dmenu) prove that it's possible -to bring the Unix philosophy onto the desktop and into the land of graphical -applications. We believe that there is big potential for doing similar things -for other purposes such as managing contacts, bookmarks, browsing -files/directories, reading/managing mails, organizing/viewing images/videos and -listening to music, all in a very elegant and Unix-like way. We believe that such -tools should have a GUI but communicate via standard I/O and be very flexible in -the combination of their purposes. - -***Requirements:*** Good knowledge of the Unix userland, C and of the Xlib is essential. - -### Port dwm to different platforms - -Many dwm users who have to use Microsoft Windows regularly have requested a -port of dwm to Microsoft Windows. There are several tiling window managers, but -unfortunately the majority are proprietary software and can't keep up with dwm. - -Similarly we believe that porting dwm to Mac OS X, or onto mobile devices (with -certain constraints) might create a new paradigm of future window management -concepts in mainstream software. - -There might also be the opportunity to make dwm itself more friendly with -well-established desktop environments, to integrate well with Gnome or KDE in -order to prove that dynamic and tiled window management should be the default -in future window management concepts. - -***Requirements:*** Good knowledge of the Xlib and C is desirable. Also good -knowledge of the specific target platform, such as Cocoa/Quartz on Max OS X, - resp. Win32 API on Windows would be desirable. - -### ddm - -There is no suckless display manager for X11 at the moment, thus a new -dynamic display manager (ddm) should be designed and implemented. - -***Requirements:*** Good knowledge of the Xlib and C is desirable. - -### stm - -There seems to be a need for a suckless ticket management system, as this -is a common task in today's daily activity in business and private time -management. This task includes the design and implementation of a suckless -system that solves the problems of TTS (Trouble Ticket System), ARS (Action -Request System) and IRS (Incident Response System) all together. - -***Requirements:*** Good knowledge of web technologies are essential, good knowledge of C is desirable. - -### Lightweight volume manager alternative - -We'd like to see a lightweight and simple alternative to gnome-volume-manager -and similar programs. - -There's one such project already available at <http://tools.suckless.org/skvm>. - -***Requirements:*** Good C knowledge and knowledge of DBUS and similar techniques are essential. - -### Yet another less sucking editor - -Although vi(m) does its job, it has become a monster over the years. We -believe there is a gap between [ed](http://man.cat-v.org/plan_9/1/ed), [sam](http://sam.cat-v.org), [acme](http://acme.cat-v.org) and vim which must be filled with -a completely new, less-sucking editor. - -***Requirements:*** Good C knowledge and knowledge of I/O APIs is essential. - -### Less sucking C99 subset spec - -Although sufficient, C99 is not a perfect programming language. It suffers from -legacy syntax and semantics and lacks features that make designing libraries -and developing abstractions much easier. To address these shortcomings the -student should survey the problems of C, evaluate possible solutions and -enhance the language as a subset of C99. - -***Requirements:*** Very good C knowledge is essential. - -### Modern libc - -The standard libc is full of awkward and legacy concepts. We believe that -recent approaches such as Google's bionic libc are a step into the right -direction, though not radical enough. We think there is a great opportunity to -implement a completely new libc which abstracts a very nice standard -environment which can be implemented on modern OS platforms in a straightforward manner. -Our goal would be to realize an initial proposal on Linux. - -***Requirements:*** Very good C knowledge is essential. - -### Improve tcc - -We'd like to see [tcc](http://bellard.org/tcc/) being continued and improved. gcc is too slow and too -focused on language-agnostics and particularly focused on its C++ support. We -have the impression that most open source software is written in C and makes no -use of C++, so we desire an improved tcc. - -We are also concerned about recent attempts to implement the C front-end of gcc -in C++. We believe that is a bad decision in general (due to demanding C++ as -bootstrapping environment) and would like to get rid of the gcc dependency -for these reasons. - -We'd like the improved tcc to be able to build all suckless projects -and perhaps the modern libc replacement. - -***Requirements:*** Very good C knowledge is essential as well as knowledge of x86 assembler and executable formats. - -### Comprehensive code audit - -All software hosted at suckless.org should undergo a comprehensive -code audit. This includes search for vulnerabilities, verification of -all algorithms, proof-reading of the documentation and possibly a code -clean-up. The result has to be a report on all found errors and maybe some -advice for the project maintainers. This task requires experience in this -field. - -***Requirements:*** Good C knowledge is essential. - -### Improve sltar - -[sltar](http://s01.de/~gottox/index.cgi/proj_sltar) is a simplified tar -implementation which lacks gzip and bzip2 integration. The task requires to -extend sltar with these and to also write a test suite for it. - -***Requirements:*** Good C knowledge would be desirable. - -### Write a decent mailing list Web archive system - -All web archive systems such as hypermail, pipermail, etc. have plenty -drawbacks and are quite out-dated. This task requires to write a completely new -web mailing list archiving tool that follows the thread view concepts found in -the mutt MUA and which is designed with low footprint and efficiency in mind. - -We expect this tool as a stand-alone Unix tool written in C or shell. - -***Requirements:*** Good C/Shell/HTML5 knowledge would be desirable. - -### Extend werc with a repository browser - -This task requires to extend [werc](http://werc.cat-v.org) with a source -browser for VCS repositories including support for -[subversion](http://subversion.tigris.org/), -[mercurial](http://www.selenic.com/mercurial/) and [git](http://git-scm.com). - -***Requirements:*** Good knowledge of the [rc](http://en.wikipedia.org/wiki/Rc) shell -and the [Plan 9 userland for Unix](http://plan9.us) is essential. Good C -knowledge for the helper tools would be desirable. diff -r f0b26c2f2a56 -r 7e5ba9ea3cc6 suckless.org/common/style_guide.md --- a/suckless.org/common/style_guide.md Wed Sep 02 14:09:30 2009 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 _AT_@ -1,49 +0,0 @@ -Style guide of code hosted on suckless.org -========================================== -When it comes to code style questions, it is very likely that individual -programmers will disagree. It is absolutely fine to use an individual style for -individual projects, especially if only one developer is involved. However, if -there are two or more programmers involved in a project, guidelines become -handy in order to meet the first basic rule we follow: - -* Code developed by different individuals should follow a common style among those to found a consistent base. - -Thus consistency in the code style being used is more important than any -particular detail of the style itself. Due to the fact that most of the software of -suckless.org has been developed by more than one individual, some sort of -common style found in the code appeared during the past years. This common -style is described in detail, further on. - -C++ ---- -C++ was used in the early beginning and has been abandoned for various reasons. - -A summary of those reasons is: Nearly nobody understands C++ in all its -facettes and details. C++ has been designed and evolved to support any -programming language paradigm and feature invented by programming -language designers until the OO hype and beyond. This leads to mutual -exclusive programming paradigms and styles in one language and basically -destroys the simplicity and clarity of its ancestor C. The usual -workaround in the C++ world is to stick to certain C++ subsets, like only using -one calling convention, not using exceptions, not using STL but using libstdc++ -etc. - -It took quite a while for some of us to realize that C++ leads to more complex -software in general, because it provides the feature richness to do so. This is -especially dangerous if average programmers are involved in a project. In our -experience it is much more likely that a C++ project driven by average -programmers will fail, than a C project. The reason for this is simple: C++ is -hard to deal with when used in all its feature richness. - -We don't argue that C++ software performs better or worse than software written -in C. However we argue that in general C++ software performs poorer than -software written in C, because of its tendency to complexity and its hidden -pitfalls like expensive function calls in loops or too many inlines. - -All these problems do not happen with C, because C is too simple to be -misused in our opinion. - -So the second rule of this style guide concludes: - -* We use C as our primary programming language because it enforces clear and simple software. - diff -r f0b26c2f2a56 -r 7e5ba9ea3cc6 suckless.org/community.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/suckless.org/community.md Thu Sep 03 19:10:13 2009 +0100 _AT_@ -0,0 +1,99 @@ +COMMUNITY +========= + +Mailing lists +------------- + +* `dev_AT_suckless.org` - for dwm/wmii/st/... users, development discussion, bug reports, patches, and general discussion +* `hackers_AT_suckless.org` - commit messages and diffs from all suckless projects are posted here, and can be replied to +* `wiki_AT_suckless.org` - for discussion about wiki, also automatic wiki commit messages are posted here. + +### Best practice + +Please mention `dwm` or `wmii` in the subject when beginning a new discussion +on the `dev_AT_suckless.org` mailing list, if your email is stricly `dwm` or +`wmii` related only. + +### Mailing list commands + +Send a mail from your (not yet) subscribed email address to one of the +following addresses to perform the described action. + +**After both subscribe and unsubscribe command, confirmation email will be send to you (So look into your spam bin)!** + +**Note, replace `MAILHOST` with `suckless.org`** + +### `dev_AT_suckless.org` + +* `dev+subscribe_AT_MAILHOST` - subscribe to the mailing list +* `dev+subscribe-digest_AT_MAILHOST` - subscribe to the digest version of the mailing list +* `dev+subscribe-nomail_AT_MAILHOST` - subscribe without receiving e-mails from the mailing list +* `dev+unsubscribe_AT_MAILHOST` - unsubscribe from the mailing list +* `dev+unsubscribe-digest_AT_MAILHOST` - unsubscribe from the digest version +* `dev+unsubscribe-nomail_AT_MAILHOST` - receive e-mails from the maing list +* `dev+get-N_AT_MAILHOST` - retrieve message number N +* `dev+help_AT_MAILHOST` - receive detailed description of the mailing list commands + +### `hackers_AT_suckless.org` + +* `hackers+subscribe_AT_MAILHOST` - subscribe to the mailing list +* `hackers+subscribe-digest_AT_MAILHOST` - subscribe to the digest version of the mailing list +* `hackers+subscribe-nomail_AT_MAILHOST` - subscribe without receiving e-mails from the mailing list +* `hackers+unsubscribe_AT_MAILHOST` - unsubscribe from the mailing list +* `hackers+unsubscribe-digest_AT_MAILHOST` - unsubscribe from the digest version +* `hackers+unsubscribe-nomail_AT_MAILHOST` - receive e-mails from the maing list +* `hackers+get-N_AT_MAILHOST` - retrieve message number N +* `hackers+help_AT_MAILHOST` - receive detailed description of the mailing list commands + +### `wiki_AT_suckless.org` + +* `wiki+subscribe_AT_MAILHOST` - subscribe to the mailing list +* `wiki+subscribe-digest_AT_MAILHOST` - subscribe to the digest version of the mailing list +* `wiki+subscribe-nomail_AT_MAILHOST` - subscribe without receiving e-mails from the mailing list +* `wiki+unsubscribe_AT_MAILHOST` - unsubscribe from the mailing list +* `wiki+unsubscribe-digest_AT_MAILHOST` - unsubscribe from the digest version +* `wiki+unsubscribe-nomail_AT_MAILHOST` - receive e-mails from the maing list +* `wiki+get-N_AT_MAILHOST` - retrieve message number N +* `wiki+help_AT_MAILHOST` - receive detailed description of the mailing list commands + + +Mailing lists web archive +------------------------- + +Archive of all mails posted to mailing lists is accessible via [http://lists.suckless.org/](http://lists.suckless.org/) + +* [dev mailing list archive][devarchive] +* [hackers mailing list archive][hackersarchive] +* [wiki mailing list archive][wikiarchive] + +Old +--- +* [dwm mailing list archive][dwmarchive] +* [wmii mailing list archive][wmiiarchive] + +Related lists +------------- + +* [9fans](http://plan9.bell-labs.com/wiki/plan9/mailing_lists/#9fans) - Fans of the [Plan 9 from Bell Labs](http://9fans.net) operating system. +* [inferno-list](http://plan9.bell-labs.com/wiki/plan9/mailing_lists/#INFERNO-LIST) - Inferno users and developers + +IRC +--- + +The channels are in the [OFTC](http://www.oftc.net) IRC network: [irc.oftc.net](irc://irc.oftc.net/) + +Official channel of suckless.org projects: + +* [#suckless](irc://irc.oftc.net/#suckless) + +Other popular channels: + +* [#acme](irc://irc.oftc.net/#acme) +* [#plan9](irc://irc.freenode.net/#plan9) +* [#inferno](irc://irc.freenode.net/#inferno) + +[devarchive]: http://lists.suckless.org/dev/ +[dwmarchive]: http://lists.suckless.org/dwm/ +[hackersarchive]: http://lists.suckless.org/hackers/ +[wikiarchive]: http://lists.suckless.org/wiki/ +[wmiiarchive]: http://lists.suckless.org/wmii/ diff -r f0b26c2f2a56 -r 7e5ba9ea3cc6 suckless.org/devel/bugs.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/suckless.org/devel/bugs.md Thu Sep 03 19:10:13 2009 +0100 _AT_@ -0,0 +1,28 @@ +BUGS +==== + +Debugging +--------- +If you find any crashes, please send a full backtrace to the dedicated mailing list. +You can create backtraces with `gdb`: + +Before starting a program, you may have to allow core file creation. It is +recommended that you put this in your profile: + + $ ulimit -c unlimited + +Then start the program as usual. + +After the program crashes, do the following: + + $ gdb --quiet `which program` /path/to/core + gdb> bt full + +If you encounter freezes (no crash at all) of the program, you can debug as follows: + + $ gdb --quiet `which program` --attach `pgrep -o program` + gdb> bt full + +Send the output of that command to the mailing list along with the output of +`program -v`! Thank you! + diff -r f0b26c2f2a56 -r 7e5ba9ea3cc6 suckless.org/devel/faq.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/suckless.org/devel/faq.md Thu Sep 03 19:10:13 2009 +0100 _AT_@ -0,0 +1,9 @@ +FAQ +=== +Why don't you use autoconf, et al.? +----------------------------------- +We don't use auto*hell for various reasons, start here: + +* [“Stop the autoconf insanity! Why we need a new build system.”](http://freshmeat.net/articles/view/889/) +* [“Why autoconf, automake and libtool fail”](http://www.ohse.de/uwe/articles/aal.html) +* [“[9fans] configure misery”](http://lists.cse.psu.edu/archives/9fans/2003-November/029714.html) diff -r f0b26c2f2a56 -r 7e5ba9ea3cc6 suckless.org/devel/patches.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/suckless.org/devel/patches.md Thu Sep 03 19:10:13 2009 +0100 _AT_@ -0,0 +1,28 @@ +PATCHES +======= + +diff generation +--------------- +For mercurial users: + + cd program-directory + hg diff > program-X.Y-yourpatchname.diff + +For tarballs: + + cd modified-program-directory/.. + diff -up original-program-directory modified-program-directory > program-X.Y-yourpatchname.diff + +where `X.Y` is a wmii tag name or version number. + +patch program +------------- +For mercurial users: + + cd program-directory + hg patch path/to/patch.diff + +For tarballs: + + cd program-directory + patch -p1 < path/to/patch.diff diff -r f0b26c2f2a56 -r 7e5ba9ea3cc6 suckless.org/devel/style_guide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/suckless.org/devel/style_guide.md Thu Sep 03 19:10:13 2009 +0100 _AT_@ -0,0 +1,49 @@ +Style guide of code hosted on suckless.org +========================================== +When it comes to code style questions, it is very likely that individual +programmers will disagree. It is absolutely fine to use an individual style for +individual projects, especially if only one developer is involved. However, if +there are two or more programmers involved in a project, guidelines become +handy in order to meet the first basic rule we follow: + +* Code developed by different individuals should follow a common style among those to found a consistent base. + +Thus consistency in the code style being used is more important than any +particular detail of the style itself. Due to the fact that most of the software of +suckless.org has been developed by more than one individual, some sort of +common style found in the code appeared during the past years. This common +style is described in detail, further on. + +C++ +--- +C++ was used in the early beginning and has been abandoned for various reasons. + +A summary of those reasons is: Nearly nobody understands C++ in all its +facettes and details. C++ has been designed and evolved to support any +programming language paradigm and feature invented by programming +language designers until the OO hype and beyond. This leads to mutual +exclusive programming paradigms and styles in one language and basically +destroys the simplicity and clarity of its ancestor C. The usual +workaround in the C++ world is to stick to certain C++ subsets, like only using +one calling convention, not using exceptions, not using STL but using libstdc++ +etc. + +It took quite a while for some of us to realize that C++ leads to more complex +software in general, because it provides the feature richness to do so. This is +especially dangerous if average programmers are involved in a project. In our +experience it is much more likely that a C++ project driven by average +programmers will fail, than a C project. The reason for this is simple: C++ is +hard to deal with when used in all its feature richness. + +We don't argue that C++ software performs better or worse than software written +in C. However we argue that in general C++ software performs poorer than +software written in C, because of its tendency to complexity and its hidden +pitfalls like expensive function calls in loops or too many inlines. + +All these problems do not happen with C, because C is too simple to be +misused in our opinion. + +So the second rule of this style guide concludes: + +* We use C as our primary programming language because it enforces clear and simple software. + diff -r f0b26c2f2a56 -r 7e5ba9ea3cc6 suckless.org/donations.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/suckless.org/donations.md Thu Sep 03 19:10:13 2009 +0100 _AT_@ -0,0 +1,35 @@ +DONATIONS +========= +We thank all people who have donated or are donating in one way or another +to a suckless.org related project. We kindly ask to continue donating to the +suckless.org project. As the project grows and grows, there are plans to get +in touch with the [GSoC](http://code.google.com/soc/2008/) in 2009 to sponsor +more less sucking projects we have in mind. + +Present +------- +Following people are currently donating in one or another way to the suckless.org project: + +* Jason Thigpen donates a slicehost server, which hosts the source code and the tarballs of our projects. +* Anselm R Garbe donates all other servers currently in use. +* John V. Turek donated <b> 10 EUR</b> + +Past +---- +Following people have donated to the [wmii](/wmii) resp. [dwm](/dwm) project +certain amounts of money, which have been used for the dedicated server rent +in the past: + +* Filippo Negroni donated <b> 10 GBP </b> +* Markus Schnalke donated <b> 10 EUR</b> +* Sebastian Noack donated <b> 50 EUR </b> +* Jason Thigpen donated <b> 100 USD </b> +* Markus Schnalke donated <b> 20 EUR </b> +* Enno 'Gottox' Boland donated <b>50 EUR</b> +* Ivan F. Villanueva B. donated <b>20 EUR</b> +* Alexandre Dulaunoy donated <b>100 EUR</b> +* Alexis Hildebrandt donated <b>100 EUR</b> +* Al Wong (aka alvin) donated <b>100 USD</b> +* Heiko Schlichting (aka rundstutzen) donated <b>100 EUR</b> + + diff -r f0b26c2f2a56 -r 7e5ba9ea3cc6 suckless.org/index.md --- a/suckless.org/index.md Wed Sep 02 14:09:30 2009 +0000 +++ b/suckless.org/index.md Thu Sep 03 19:10:13 2009 +0100 _AT_@ -1,7 +1,7 @@ Home of [wmii](http://wmii.suckless.org), [dwm](http://dwm.suckless.org), [libixp](http://libs.suckless.org/libixp), and other quality software with a focus on simplicity, clarity, and frugality. -Read more about our [philosophy](/common/) and join us on the [mailing list](common/community). +Read more about our [philosophy](/manifest) and join us on the [mailing list](/community). 2009/08/27 ---------- _AT_@ -17,7 +17,7 @@ 2009/03/09 ---------- -We applied as a mentoring organization for [GSoC2009](http://suckless.org/common/project_ideas). +We applied as a mentoring organization for [GSoC2009](http://suckless.org/project_ideas). 2008/08/09 ---------- diff -r f0b26c2f2a56 -r 7e5ba9ea3cc6 suckless.org/manifest/dynamic_window_management.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/suckless.org/manifest/dynamic_window_management.md Thu Sep 03 19:10:13 2009 +0100 _AT_@ -0,0 +1,42 @@ +DYNAMIC WINDOW MANAGEMENT +========================= + +We think that static window management as seen in Ion or wmi-10 is a far too +rigid and inflexible working environment. In [acme](http://acme.cat-v.org), +larswm, and oberon, dynamic window management frees the user from these +limitations. The user can start as many applications and windows as he likes, +and easily arrange them in a useful way, helped by the window manager - the +working environment changes with the tasks the user is performing. The +experience is very fluid and natural. Similar concepts have been introduced in +wmii and dwm. + +Dynamic window management states that it is the window manager's job to manage +windows - and not the user's job to have to set up some specialized layout that +will only work for one specific work scenario. This has been the larswm motto +for a long time. In contrast to static window management, the user rarely has +to think about how to organize windows, no matter what he is doing or how many +applications are running at the same time. The window manager adapts to the +current environment and helps the user manage and mold it to his needs, rather +than forcing it to use a preset, fixed layout and trying to shoehorn all +windows and applications into it. + +Dynamic window management has many advantages - you can create and tear down +whole working environments in a matter of seconds rather than spending time +fine-tuning a fixed layout that cannot work well in all cases. The number and +nature of windows you work with changes all the time, and a dynamic window +manager lets you adapt to that and always efficiently use your precious screen +real estate. + +Some will argue that you should setup a different static workspace for each of +the tasks you perform (one for web browsing, one for email reading, one for +coding, etc.), but that is just a workaround for the limitations of static +window management, and it doesn't account for the many sub-usage patterns each +main task has. + +For example: the layout you use during debugging would probably be quite +different to the one used during refactoring, you might want to have a patch +someone emailed you in view while you look at some code, or edit a +configuration file while you look at a man page or website. Dynamic window +management lets you mix and match on the fly to always have the windows you +need in view, and only the windows you need, without the need to reserve extra +space which you may or may not end up using. diff -r f0b26c2f2a56 -r 7e5ba9ea3cc6 suckless.org/manifest/index.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/suckless.org/manifest/index.md Thu Sep 03 19:10:13 2009 +0100 _AT_@ -0,0 +1,59 @@ +SUCK LESS PHILOSOPHY +==================== + +Background +---------- +We are the home of quality software such as [dwm](http://dwm.suckless.org), +[dmenu](http://tools.suckless.org), [libixp](http://libs.suckless.org/libixp), +[wmii](http://wmii.suckless.org) and plenty of other [tools](http://tools.suckless.org), with +a focus on simplicity, clarity and frugality. Our philosophy is +about keeping things simple, minimal and usable. We believe this should become +the mainstream philosophy in the IT sector. Unfortunately, the tendency for +complex, error-prone and slow software seems to be prevalent in the present-day +software industry. We intend to prove the opposite with our software projects. + +Our project focuses on advanced and experienced computer users. In contrast +with the usual proprietary software world or many mainstream open source +projects that focus more on average and non-technical end users, we think that +experienced users are mostly ignored. This is particularly true for user +interfaces, such as graphical environments on desktop computers, on mobile +devices, and in so-called Web applications. We believe that the market of +experienced users is growing continuously, with each user looking for more +appropriate solutions for his/her work style. + +Designing simple and elegant software is far more difficult than letting ad-hoc +or over-ambitious features obscure the code over time. However one has to pay +this price to achieve reliability and maintainability. Furthermore, minimalism +results in reasonable and attainable goals. We strive to maintain minimalism and +clarity to drive development to completion. + +Manifest +-------- +Many (open source) hackers are proud if they achieve large amounts of code, +because they believe the more lines of code they've written, the more progress +they have made. The more progress they have made, the more skilled they are. +This is simply a delusion. + +Most hackers actually don't care much about code quality. Thus, if they get +something working which seems to solve a problem, they stick with it. If this +kind of software development is applied to the same source code throughout its +entire life-cycle, we're left with large amounts of code, a totally screwed +code structure, and a flawed system design. This is because of a lack of +conceptual clarity and integrity in the development process. + +Code complexity is the mother of bloated, hard to use, and totally inconsistent +software. With complex code, problems are solved in suboptimal ways, valuable +resources are endlessly tied up, performance slows to a halt, and +vulnerabilities become a commonplace. The only solution is to scrap the entire +project and rewrite it from scratch. + +The bad news: quality rewrites rarely happen, because hackers are proud of +large amounts of code. They think they understand the complexity in the code, +thus there's no need to rewrite it. They think of themselves as masterminds, +understanding what others can never hope to grasp. To these types, complex +software is the ideal. + +Ingenious ideas are simple. Ingenious software is simple. Simplicity is the +heart of the Unix philosophy. The more code lines you have removed, the more +progress you have made. As the number of lines of code in your software +shrinks, the more skilled you have become and the less your software sucks. diff -r f0b26c2f2a56 -r 7e5ba9ea3cc6 suckless.org/misc/broken_programs.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/suckless.org/misc/broken_programs.md Thu Sep 03 19:10:13 2009 +0100 _AT_@ -0,0 +1,50 @@ +BROKEN PROGRAMS +=============== + +There are many broken X programs. Go bug the developers of these +broken programs to fix them. Here are some of the main causes of this +brokenness: + +* The program assumes a specific window management model, i.e. + assumes you are using a WIMP-window manager like those found in KDE + or Gnome. This assumption breaks the [ICCCM conventions](http://tronche.com/gui/x/icccm/). +* The application uses a fixed size - this limitation does not fit + into the world of tiling window managers very well, + and can also be seen as breaking the ICCCM conventions, because a + fixed sized window assumes a specific window management model as + well (though the ICCCM does not forbid fixed-size windows). In any + case, the ICCCM requests that clients accept any size the window + manager proposes to them. +* The program is based on strange non-standard window manager + hints that only work properly with a window manager supporting + these extensions - this simply breaks the ICCCM as well. E.g. trash + icon programs. +* The program does not conform to ICCCM due to some missing or + improperly set hints. + +WORKAROUND +---------- + +If you still need some program which expects a floating WM, use it in +floating mode. + +The following programs are broken (see [cool programs](/common/cool_programs.html) for saner alternatives): + +* beep-media-player +* [Firefox](http://www.mozilla.org/products/firefox) (doesn't set the + TRANSIENT_FOR hint correctly on its download dialog) +* [GIMP](http://www.gimp.org/) (GIMP expects a float environment to + be useable) +* gqview +* gthumb +* mplayer with GUI (assumes special window management model. It works + without the GUI) +* Xchat +* xine (same as xmms) +* XMMS (assumes fixed size, doesn't set transient_for hint properly) + + +SEE ALSO +-------- + +The [list of harmful software](http://harmful.cat-v.org/software/) at [cat-v.org](http://cat-v.org). diff -r f0b26c2f2a56 -r 7e5ba9ea3cc6 suckless.org/misc/cool_programs.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/suckless.org/misc/cool_programs.md Thu Sep 03 19:10:13 2009 +0100 _AT_@ -0,0 +1,100 @@ +COOL PROGRAMS +============= + +Some programs work well with wmii or dwm. Some general rules of thumb +for judging a programs as usable are: + +* The program will accept any window size +* The program consists of a single window (There are no nested windows, such as in Xpdf) + +This covers most console-based programs and programs from [plan9port][]. + +Text Editors +------------ +* [acme][acme] - [Rob Pike][rob]'s framing text editor for Plan 9. Included in [plan9port][]. +* [nvi](http://www.bostic.com/vi/) - A small, multiple file vi-alike. +* [sam](http://sam.cat-v.org/) - An editor by [Rob Pike][rob] with inspiration from ed. +* [traditional vi](http://ex-vi.sourceforge.net/) - A fixed version of the original vi. +* [vim](http://www.vim.org) (With the GUI, use `:set go+=c` to kill popup dialogs) +* [wily](http://www.cs.yorku.ca/~oz/wily/) - An acme clone for POSIX. + +Audio Players +------------- +* [cmus](http://onion.dynserv.net/~timo/cmus.html) +* [cplay](http://mask.tf.hut.fi/~flu/hacks/cplay/) +* [moc](http://moc.daper.net/) +* [mpd](http://www.musicpd.org/) - A client/server based music player with console and graphical front-ends. +* [mpg123](http://www.mpg123.de/) - A console mpg player which doesn't use auto*hell, or extra libraries. +* [mpg321](http://mpg321.sourceforge.net) +* [PyTone](http://www.luga.de/pytone/) - PyTone is a music jukebox written in Python with a curses based GUI. It provides features like crossfading and multiple players, special emphasis is put on ease of use. +* [vorbis-tools](http://www.xiph.org/) (Ogg/FLAC) - Command-line tools to play Ogg and FLAC files. + +Media Players +------------- +* [mplayer](http://www.mplayerhq.hu/) (without GUI) - You know mplayer, but you may not know that it works well without the GUI. +* smplayer + +Utilities +--------- +* [9menu](http://www.freshports.org/x11/9menu/) - A menu program based on the Blit-style menus so prevalent in Plan 9. + A take on it is included with wmii. +* [dmenu](/programs/dmenu.html) - Obvious + +Image Viewers +------------- +* [feh](http://linuxbrit.co.uk/feh/) +* [jpg/gif/bmp/png][plan9port] - Simple programs from Plan 9 to display images in no-frills windows. Included with plan9port. +* [page][plan9port] - Plan 9's image/document viewer program. Included with plan9port. +* [qiv](http://www.klografx.net/qiv/) +* [xli](http://pantransit.reptiles.org/prog/) +* [xzgv](http://sourceforge.net/projects/xzgv) + +IRC Clients +----------- +* [acme:SAC](http://caerwyn.com/acme/index.html) +* [ii](/programs/ii.html) - A FIFO based IRC client which is part of the suckless.org project. +* [ircc](http://www.r-36.net/ircc.tgz) - A no-frills, ncurses free, console-based IRC client. +* [Irc](http://swtch.com/irc/) +* [ircrc](http://plan9.bell-labs.com/sources/contrib/fgb/rc/ircrc) - An rc-based IRC client similar to ircc. Needs minor modification to run on UNIX. +* [irssi](http://www.irssi.org/) +* [sic](/programs/sic.html) - Another suckless.org IRC client. Similar to ircc. + +Mail Clients +------------ +* [heirloom-mailx](http://heirloom.sourceforge.net/mailx.html) - A mail client based on the original Berkeley Mail 8.1 with many new features. +* [Mail][plan9port] - A mail client for [acme][acme]. Included with plan9port. +* [mutt](http://www.mutt.org/) +* [muttator](http://vimperator.org/) - A Thunderbird extension to make it keyboard friendly and mutt/Vim-like. +* [nmh](http://www.nongnu.org/nmh/) +* Sylpheed claws + +Instant Messaging Clients +------------------------- +* [bitlbee](http://www.bitlbee.org/) - A program to translate IM protocols to IRC. You can now IM from your IRC client, and you don't even need to install anything. +* [centericq](http://konst.org.ua/centericq/) +* [centerim](http://www.centerim.org/) - A centericq fork. +* [climm](http://www.climm.org/) +* [mcabber](http://www.lilotux.net/~mikael/mcabber/) - A console jabber client. +* [ysm](http://ysmv7.sourceforge.net/) + +Web Browsers +------------ +* [Vimperator](http://vimperator.org/) - An extension to make Firefox keyboard friendly and Vim-like. + Developed in part by wmii's maintainer. +* [Conkeror](http://www.conkeror.org/) - A Gecko based browser, imparting it Emacs style key bindings, appearances, and behaviors. +* [Dillo](http://www.dillo.org/) (try the i18n version) +* [ELinks](http://elinks.or.cz/) +* [links2](http://links.twibright.com/) +* [Lynx](http://lynx.isc.org/) +* [w3m](http://w3m.sf.net/) +* [edbrowse](http://edbrowse.sourceforge.net/) +* [uzbl](http://uzbl.org/) + +Web Servers (httpd) +------------ +* [Nostromo](http://www.nazgul.ch/dev_nostromo.html) + +[rob]: http://herpolhode.com/rob/ +[plan9port]: http://swtch.com/plan9port/ +[acme]: http://acme.cat-v.org + diff -r f0b26c2f2a56 -r 7e5ba9ea3cc6 suckless.org/other_projects.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/suckless.org/other_projects.md Thu Sep 03 19:10:13 2009 +0100 _AT_@ -0,0 +1,11 @@ +OTHER PROJECTS +============== +There are several other projects which are inspired by the spirit of suckless. + +* [dietline](http://news.nopcode.org/dietline.c) +* [dvtm](http://www.brain-dump.org/projects/dvtm/) +* [dzen](http://dzen.geekmode.org/) +* [kelp](http://kelp.sf.net) +* [sltar](http://s01.de/~gottox/index.cgi/proj_sltar) +* [smu](http://s01.de/~gottox/index.cgi/proj_smu) +* [bgs](http://s01.de/~gottox/index.cgi/proj_bgs) diff -r f0b26c2f2a56 -r 7e5ba9ea3cc6 suckless.org/project_ideas.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/suckless.org/project_ideas.md Thu Sep 03 19:10:13 2009 +0100 _AT_@ -0,0 +1,181 @@ +PROJECT IDEAS FOR FUTURE GSOCs +============================== +We applied as a mentoring organization for [Google Summer of Code 2009](http://code.google.com/soc/), but were rejected this time. Perhaps we will apply in 2010 again. + +Please read our [philosophy](/manifest) for background information. + +Mentors +------- +We intend that each student will be the project leader of his/her particular +project and the only individual with commit privilege for the repository. + +There will be one mentor and one backup mentor per project. In addition, the +suckless.org community will act as a rigid external reviewer of the +student's progress, as well as of the mentor's. + +General ideas +------------- +Our project ideas in general intended to focus on: + +* Graphical user interfaces for expert users (such as more advanced + concepts for mail clients, messaging clients, music players, text editors) +* Web applications for expert users following our GUI concepts +* Mobile applications for expert users following our GUI concepts +* General userland enhancements to Unix-like operating systems, in particular + GNU/Linux +* Audio applications +* Image/Streaming/Gallery desktop and web applications +* Foundations of a new windowing system for Unix-like operating systems + (based on xorg drivers, but no X11- or XServer-dependency) +* Improvements of our existing software projects + +Concrete ideas +-------------- +The listed ideas generally require good knowledge of C and experience with +Unix-like operating systems. The difficulty ranges from medium to high. +An academic background in computer science is desirable but not essential. + +### Unix utilities + +Projects like [dmenu](http://tools.suckless.org/dmenu) prove that it's possible +to bring the Unix philosophy onto the desktop and into the land of graphical +applications. We believe that there is big potential for doing similar things +for other purposes such as managing contacts, bookmarks, browsing +files/directories, reading/managing mails, organizing/viewing images/videos and +listening to music, all in a very elegant and Unix-like way. We believe that such +tools should have a GUI but communicate via standard I/O and be very flexible in +the combination of their purposes. + +***Requirements:*** Good knowledge of the Unix userland, C and of the Xlib is essential. + +### Port dwm to different platforms + +Many dwm users who have to use Microsoft Windows regularly have requested a +port of dwm to Microsoft Windows. There are several tiling window managers, but +unfortunately the majority are proprietary software and can't keep up with dwm. + +Similarly we believe that porting dwm to Mac OS X, or onto mobile devices (with +certain constraints) might create a new paradigm of future window management +concepts in mainstream software. + +There might also be the opportunity to make dwm itself more friendly with +well-established desktop environments, to integrate well with Gnome or KDE in +order to prove that dynamic and tiled window management should be the default +in future window management concepts. + +***Requirements:*** Good knowledge of the Xlib and C is desirable. Also good +knowledge of the specific target platform, such as Cocoa/Quartz on Max OS X, + resp. Win32 API on Windows would be desirable. + +### ddm + +There is no suckless display manager for X11 at the moment, thus a new +dynamic display manager (ddm) should be designed and implemented. + +***Requirements:*** Good knowledge of the Xlib and C is desirable. + +### stm + +There seems to be a need for a suckless ticket management system, as this +is a common task in today's daily activity in business and private time +management. This task includes the design and implementation of a suckless +system that solves the problems of TTS (Trouble Ticket System), ARS (Action +Request System) and IRS (Incident Response System) all together. + +***Requirements:*** Good knowledge of web technologies are essential, good knowledge of C is desirable. + +### Lightweight volume manager alternative + +We'd like to see a lightweight and simple alternative to gnome-volume-manager +and similar programs. + +There's one such project already available at <http://tools.suckless.org/skvm>. + +***Requirements:*** Good C knowledge and knowledge of DBUS and similar techniques are essential. + +### Yet another less sucking editor + +Although vi(m) does its job, it has become a monster over the years. We +believe there is a gap between [ed](http://man.cat-v.org/plan_9/1/ed), [sam](http://sam.cat-v.org), [acme](http://acme.cat-v.org) and vim which must be filled with +a completely new, less-sucking editor. + +***Requirements:*** Good C knowledge and knowledge of I/O APIs is essential. + +### Less sucking C99 subset spec + +Although sufficient, C99 is not a perfect programming language. It suffers from +legacy syntax and semantics and lacks features that make designing libraries +and developing abstractions much easier. To address these shortcomings the +student should survey the problems of C, evaluate possible solutions and +enhance the language as a subset of C99. + +***Requirements:*** Very good C knowledge is essential. + +### Modern libc + +The standard libc is full of awkward and legacy concepts. We believe that +recent approaches such as Google's bionic libc are a step into the right +direction, though not radical enough. We think there is a great opportunity to +implement a completely new libc which abstracts a very nice standard +environment which can be implemented on modern OS platforms in a straightforward manner. +Our goal would be to realize an initial proposal on Linux. + +***Requirements:*** Very good C knowledge is essential. + +### Improve tcc + +We'd like to see [tcc](http://bellard.org/tcc/) being continued and improved. gcc is too slow and too +focused on language-agnostics and particularly focused on its C++ support. We +have the impression that most open source software is written in C and makes no +use of C++, so we desire an improved tcc. + +We are also concerned about recent attempts to implement the C front-end of gcc +in C++. We believe that is a bad decision in general (due to demanding C++ as +bootstrapping environment) and would like to get rid of the gcc dependency +for these reasons. + +We'd like the improved tcc to be able to build all suckless projects +and perhaps the modern libc replacement. + +***Requirements:*** Very good C knowledge is essential as well as knowledge of x86 assembler and executable formats. + +### Comprehensive code audit + +All software hosted at suckless.org should undergo a comprehensive +code audit. This includes search for vulnerabilities, verification of +all algorithms, proof-reading of the documentation and possibly a code +clean-up. The result has to be a report on all found errors and maybe some +advice for the project maintainers. This task requires experience in this +field. + +***Requirements:*** Good C knowledge is essential. + +### Improve sltar + +[sltar](http://s01.de/~gottox/index.cgi/proj_sltar) is a simplified tar +implementation which lacks gzip and bzip2 integration. The task requires to +extend sltar with these and to also write a test suite for it. + +***Requirements:*** Good C knowledge would be desirable. + +### Write a decent mailing list Web archive system + +All web archive systems such as hypermail, pipermail, etc. have plenty +drawbacks and are quite out-dated. This task requires to write a completely new +web mailing list archiving tool that follows the thread view concepts found in +the mutt MUA and which is designed with low footprint and efficiency in mind. + +We expect this tool as a stand-alone Unix tool written in C or shell. + +***Requirements:*** Good C/Shell/HTML5 knowledge would be desirable. + +### Extend werc with a repository browser + +This task requires to extend [werc](http://werc.cat-v.org) with a source +browser for VCS repositories including support for +[subversion](http://subversion.tigris.org/), +[mercurial](http://www.selenic.com/mercurial/) and [git](http://git-scm.com). + +***Requirements:*** Good knowledge of the [rc](http://en.wikipedia.org/wiki/Rc) shell +and the [Plan 9 userland for Unix](http://plan9.us) is essential. Good C +knowledge for the helper tools would be desirable.Received on Thu Sep 03 2009 - 20:09:59 CEST
This archive was generated by hypermail 2.3.0 : Thu Sep 13 2012 - 19:30:45 CEST