AtomPup SFS
Posted: Sat 24 Oct 2009, 18:47
AtomPup is a suite of console applications, targeted at people with limited hardware and console-lovers. It requires extremely minimal system resources (32 MBs of RAM and basically any processor). Atom includes many many fixes that make everything work well, it's more than a pile of compiled applications.
Currently Atom is an addon for Puppy (any Puppy, as long as it works with SFSs). I'm currently working on a barebones Puppy to serve as a base for it, so I can make it a complete puplet.
It includes a variety of useful applications, for all common tasks:
- ELinks - a tabbed web browser with support for bookmarks, cookies, FTP, MIME-types and much more. Support for JavaScript, XBEL bookmarks, encryption, compression and other things are removed.
- CenterIM - a multi-protocol instant messaging client that supports MSN, Yahoo, AIM and ICQ. Support for Live Journal, Gadu-Gadu, Jabber and IRC is removed.
- WeeChat - a lightweight and extensible IRC client, comes with the FIFO plugin to use with the MOC script (read below), all other plugins are excluded.
- Music On Console - a feature-rich music player that supports MP3, OGG and Flac, file browsing and a playlist. Comes with the default theme and a theme that uses Vifm's colors. All other themes and support for additional formats are removed.
- Transmission - a BitTorrent client, the best there is.
- tnftp - a simple FTP client, included by default in major BSD operating systems.
- Calcurse - a personal organizer with a calendar and daily notes.
- Vifm - a tiny 2-panel file manager that integrates with Vim.
- nano - a simple text editor, support for all programming-related stuff and spell-checking is removed to make it smaller, but the vital help page and all functionality are there.
- Vim - the best text editor there is, with support for spell-checking and all advanced functionality needed for editing files, writing programs and scripting. Compiled with additional support for Python, Perl, Ruby and Tcl (it also supports C and many many other scripts and programming languages).
- htop - a process viewer with many features, such as system resources monitoring, process priority managing and process killing.
- Screen - a window manager that allows multiple terminals to run just like tabs in ELinks, for multitasking.
- Vitetris - a Tetris game, with difficulty levels and many options.
- NetHack - a dungeon exploring game. Comes with bug-fix patches, the menu colors patch, the colord HP monitor patch, the assorted YAFMs patch and several modifications to make it work well with Puppy.
All applications are compiled in Puppy standarts (i486) to ensure compatibility with older systems. Some features are removed to make applications depend on less libraries, make them thinner and faster, and lower the RAM usage (as needed libraries are loaded to RAM and kept there).
The RAM usage of Atom is 19 MB with only htop running. After running a frugal Puppy and using WeeChat, CenterIM (with MSN and ICQ), MOC (with 10, 320 Kbps VBR MP3 files), ELinks (with Barry's blog, CNN and the NetHack website open), htop, dhcpcd (a DHCP daemon for my internet connection) and Screen (with UTF-8 support), the RAM usage is 27 MB. The CPU usage doesn't go above 4%. This means that a computer with 32 MB RAM is able to boot Puppy frugally with Atom and run everything efficiently and quickly from RAM.
Another important thing I should not is that all applications are compiled without mouse support, for consistency, since some of them do not support it. Moreover, I believe that console-lovers prefer keyboard combinations.
Extras:
- Bookmarks in ELinks, that lead to application homepages and documentation.
- /usr/bin/mnp, a "now playing" script for MOC and WeeChat.
- /root/Downloads, for Transmission downloads.
- Default settings for Screen: startup message disabled, various tweaks to make it work nicely with all applications, a statusbar with a list of all open windows and a clock (a "taskbar").
- Default settings for ELinks: colors enabled, clock disabled.
- Default settings for Calcurse: the appointment key is set to p instead of ^A, because it conflicts with Screen.
- Default settings for Weechat: the default nickname is "userX" (user1, user2 ... ), automatic connection to the Puppy IRC channel.
- Default settings for NetHack: colors on, autpickup on, values for inventory, number pad on.
- Default settings for Vim: syntax highlightning on.
- /usr/bin/screen, a script that runs Screen with the -U parameter (to force UTF-8 support) and passes all other parameters. Fixes the issues with ELinks, MOC, Vifm and CenterIM. The Screen executable is /usr/bin/startscreen.
- /usr/bin/vimtutor, a script that runs the Vim tutorial, a silly replacement for the original script.
- /usr/bin/mocp, a script that runs MOC with the Kelev theme - the MOC executable is /usr/bin/startmocp.
Notes:
- The command used to run MOC is mocp, NOT moc, because that's something else.
- The "heaviest" (not heavy, just heavier than the others) applications are probably Vim and MOC.
- The reason I included both nano and Vim is that nano is supposed to be a simple editor for text files, and Vim is supposed to be a "word processor", for editing big files and programming, with extensive use of its programming-related and advanced functionality.
- Atom is designed to run in RAM, even on old systems, that's why it's so tiny.
- Vifm, Vim and NetHack share many key combinations. Your best choice is studying the Vim tutorial until you master it, then the other applications I mentioned will be alot easier to use.
- Vifm is also able to open files in Vim.
- Alsamixer is included in all Puppies, you can use it as a mixer. It is wise to set the volume slightly higher than the volume you usually use, so you can lower MOC's volume to 80% and raise it on on more quiet music.
Atom ships in 2 versions:
- A version for kernels 2.6.29 and above (Puppy 4.3 and above) - SFS4.
- A version for older kernels, for older Puppies and Retro versions - SFS3.
If you use a Puppy Retro version and downloaded the SFS4 version by mistake, you can use the SFS converter, through the utilities menu, to convert it to SFS3 and make it usable with your older kernel.
Changelog:
- 24/10/09: build 27, made /usr/bin/vimtutor mehave like the original vimtutor and added ELinks bookmarks to application homepages and documentation.
- 24/10/09: build 26, added default settings for Calcurse - the key to add a new appointment conflicted with Screen.
- 24/10/09: build 25, added comments to /usr/bin/screen, /root/.screenrc and /usr/bin/mocp, made /usr/bin/vimtutor friendlier.
- 24/10/09: build 24, made the script run itself by mistake, now fixed.
- 24/10/09: build 23, added the MOC Kelev theme and the /usr/bin/mocp script that runs MOC with the theme, removed the black theme.
- 24/10/09: build 22, /usr/bin/screen fixed to pass parameters to Screen.
- 24/10/09: build 21, /usr/bin/screen added, Vim tested.
- 24/10/09: build 20, /root/.vimrc and /usr/bin/vimtutor added.
- 24/10/09: build 19, Vim compiled, fixed and added.
- 23/10/09: build 19, experiments with Vim and the automatic Vim compliation script.
- 22/10/09: topic written, all applications fixed and packed, now for real, 18th build.
- 21/10/09: build 18, everything recompiled, ELinks fixed and optimized with dependencies removed, the "now playing" script is improved.
- 20/10/09: build 17, /root/.nethackrc added.
- 20/10/09: build 16, NetHack recompiled with all patches and Puppy fixes.
- ...
(Maybe) Interesting facts:
- All the Atom applications without Vim are just 4.1 MB. The addition of Vim makes them about 11 MB (Vim is huge, it's 21 MB after cleaning!). It doesn't really matter how big they are, unless you use pfix=copy. For example, if you run MOC from an SFS without Vim, and do this again with Vim in the SFS, the RAM usage will be identical. You only get an extra overhead of 6 MB when using pfix=ram, since Vim is not loaded to RAM when running MOC.
- I first compiled everything for i686 with O3 instead of i486 with O2, as all Puppy's packages. Everything was slightly bigger and felt somewhat slower. i486 feels smoother on my i686 machine ... maybe it's just me. Weird, isn't it?
- Yes, I use Atom. I just pick the latest Puppy, install it, run it once and open some wizard to trigger the saves thingy, make a save, reboot, add Atom to the SFS list, and use the installed Puppy with pfix=nox. When I really need xorg, I detach Screen, run xorg, reattach in rxvt, do whatever I do, detach, close xorg and reattach in the terminal.
Downloads, build 27:
- SFS3: here - 11 MB.
- SFS4: here - 11 MB.
- NetHack sources: here - 5 MB.
Currently Atom is an addon for Puppy (any Puppy, as long as it works with SFSs). I'm currently working on a barebones Puppy to serve as a base for it, so I can make it a complete puplet.
It includes a variety of useful applications, for all common tasks:
- ELinks - a tabbed web browser with support for bookmarks, cookies, FTP, MIME-types and much more. Support for JavaScript, XBEL bookmarks, encryption, compression and other things are removed.
- CenterIM - a multi-protocol instant messaging client that supports MSN, Yahoo, AIM and ICQ. Support for Live Journal, Gadu-Gadu, Jabber and IRC is removed.
- WeeChat - a lightweight and extensible IRC client, comes with the FIFO plugin to use with the MOC script (read below), all other plugins are excluded.
- Music On Console - a feature-rich music player that supports MP3, OGG and Flac, file browsing and a playlist. Comes with the default theme and a theme that uses Vifm's colors. All other themes and support for additional formats are removed.
- Transmission - a BitTorrent client, the best there is.
- tnftp - a simple FTP client, included by default in major BSD operating systems.
- Calcurse - a personal organizer with a calendar and daily notes.
- Vifm - a tiny 2-panel file manager that integrates with Vim.
- nano - a simple text editor, support for all programming-related stuff and spell-checking is removed to make it smaller, but the vital help page and all functionality are there.
- Vim - the best text editor there is, with support for spell-checking and all advanced functionality needed for editing files, writing programs and scripting. Compiled with additional support for Python, Perl, Ruby and Tcl (it also supports C and many many other scripts and programming languages).
- htop - a process viewer with many features, such as system resources monitoring, process priority managing and process killing.
- Screen - a window manager that allows multiple terminals to run just like tabs in ELinks, for multitasking.
- Vitetris - a Tetris game, with difficulty levels and many options.
- NetHack - a dungeon exploring game. Comes with bug-fix patches, the menu colors patch, the colord HP monitor patch, the assorted YAFMs patch and several modifications to make it work well with Puppy.
All applications are compiled in Puppy standarts (i486) to ensure compatibility with older systems. Some features are removed to make applications depend on less libraries, make them thinner and faster, and lower the RAM usage (as needed libraries are loaded to RAM and kept there).
The RAM usage of Atom is 19 MB with only htop running. After running a frugal Puppy and using WeeChat, CenterIM (with MSN and ICQ), MOC (with 10, 320 Kbps VBR MP3 files), ELinks (with Barry's blog, CNN and the NetHack website open), htop, dhcpcd (a DHCP daemon for my internet connection) and Screen (with UTF-8 support), the RAM usage is 27 MB. The CPU usage doesn't go above 4%. This means that a computer with 32 MB RAM is able to boot Puppy frugally with Atom and run everything efficiently and quickly from RAM.
Another important thing I should not is that all applications are compiled without mouse support, for consistency, since some of them do not support it. Moreover, I believe that console-lovers prefer keyboard combinations.
Extras:
- Bookmarks in ELinks, that lead to application homepages and documentation.
- /usr/bin/mnp, a "now playing" script for MOC and WeeChat.
- /root/Downloads, for Transmission downloads.
- Default settings for Screen: startup message disabled, various tweaks to make it work nicely with all applications, a statusbar with a list of all open windows and a clock (a "taskbar").
- Default settings for ELinks: colors enabled, clock disabled.
- Default settings for Calcurse: the appointment key is set to p instead of ^A, because it conflicts with Screen.
- Default settings for Weechat: the default nickname is "userX" (user1, user2 ... ), automatic connection to the Puppy IRC channel.
- Default settings for NetHack: colors on, autpickup on, values for inventory, number pad on.
- Default settings for Vim: syntax highlightning on.
- /usr/bin/screen, a script that runs Screen with the -U parameter (to force UTF-8 support) and passes all other parameters. Fixes the issues with ELinks, MOC, Vifm and CenterIM. The Screen executable is /usr/bin/startscreen.
- /usr/bin/vimtutor, a script that runs the Vim tutorial, a silly replacement for the original script.
- /usr/bin/mocp, a script that runs MOC with the Kelev theme - the MOC executable is /usr/bin/startmocp.
Notes:
- The command used to run MOC is mocp, NOT moc, because that's something else.
- The "heaviest" (not heavy, just heavier than the others) applications are probably Vim and MOC.
- The reason I included both nano and Vim is that nano is supposed to be a simple editor for text files, and Vim is supposed to be a "word processor", for editing big files and programming, with extensive use of its programming-related and advanced functionality.
- Atom is designed to run in RAM, even on old systems, that's why it's so tiny.
- Vifm, Vim and NetHack share many key combinations. Your best choice is studying the Vim tutorial until you master it, then the other applications I mentioned will be alot easier to use.
- Vifm is also able to open files in Vim.
- Alsamixer is included in all Puppies, you can use it as a mixer. It is wise to set the volume slightly higher than the volume you usually use, so you can lower MOC's volume to 80% and raise it on on more quiet music.
Atom ships in 2 versions:
- A version for kernels 2.6.29 and above (Puppy 4.3 and above) - SFS4.
- A version for older kernels, for older Puppies and Retro versions - SFS3.
If you use a Puppy Retro version and downloaded the SFS4 version by mistake, you can use the SFS converter, through the utilities menu, to convert it to SFS3 and make it usable with your older kernel.
Changelog:
- 24/10/09: build 27, made /usr/bin/vimtutor mehave like the original vimtutor and added ELinks bookmarks to application homepages and documentation.
- 24/10/09: build 26, added default settings for Calcurse - the key to add a new appointment conflicted with Screen.
- 24/10/09: build 25, added comments to /usr/bin/screen, /root/.screenrc and /usr/bin/mocp, made /usr/bin/vimtutor friendlier.
- 24/10/09: build 24, made the script run itself by mistake, now fixed.
- 24/10/09: build 23, added the MOC Kelev theme and the /usr/bin/mocp script that runs MOC with the theme, removed the black theme.
- 24/10/09: build 22, /usr/bin/screen fixed to pass parameters to Screen.
- 24/10/09: build 21, /usr/bin/screen added, Vim tested.
- 24/10/09: build 20, /root/.vimrc and /usr/bin/vimtutor added.
- 24/10/09: build 19, Vim compiled, fixed and added.
- 23/10/09: build 19, experiments with Vim and the automatic Vim compliation script.
- 22/10/09: topic written, all applications fixed and packed, now for real, 18th build.
- 21/10/09: build 18, everything recompiled, ELinks fixed and optimized with dependencies removed, the "now playing" script is improved.
- 20/10/09: build 17, /root/.nethackrc added.
- 20/10/09: build 16, NetHack recompiled with all patches and Puppy fixes.
- ...
(Maybe) Interesting facts:
- All the Atom applications without Vim are just 4.1 MB. The addition of Vim makes them about 11 MB (Vim is huge, it's 21 MB after cleaning!). It doesn't really matter how big they are, unless you use pfix=copy. For example, if you run MOC from an SFS without Vim, and do this again with Vim in the SFS, the RAM usage will be identical. You only get an extra overhead of 6 MB when using pfix=ram, since Vim is not loaded to RAM when running MOC.
- I first compiled everything for i686 with O3 instead of i486 with O2, as all Puppy's packages. Everything was slightly bigger and felt somewhat slower. i486 feels smoother on my i686 machine ... maybe it's just me. Weird, isn't it?
- Yes, I use Atom. I just pick the latest Puppy, install it, run it once and open some wizard to trigger the saves thingy, make a save, reboot, add Atom to the SFS list, and use the installed Puppy with pfix=nox. When I really need xorg, I detach Screen, run xorg, reattach in rxvt, do whatever I do, detach, close xorg and reattach in the terminal.
Downloads, build 27:
- SFS3: here - 11 MB.
- SFS4: here - 11 MB.
- NetHack sources: here - 5 MB.