User:Et-8/GLARBS

GLARBS = Gentoo Linux Auto-Rice Bootstrapping Scripts

GLARBS is an efficient ebuild''' that will install a fully-featured dynamic window manager-based system on any Gentoo or Gentoo Linux-based system, without any of the routine of manual post-install processes and configuration. By default, GLARBS gives you the option to install any of the below video creators rice and deploy their personal dotfiles for their special builds of Suckless software, which is very cool!

GLARS will include the following video creators

 * Luke Smith
 * LARBS
 * Derek Taylor
 * DistroTube
 * Erik Letson
 * HMagellanLinux

How to install Suckless software the Gentoo way

 * 1) Enable the savedconfig USE flag globally in /etc/portage/make.conf
 * 2) Install the ebuilds for Suckless vanilla programs with Gentoo's package manager emerge.
 * 3) Install GLARBS overlay.
 * 4) Apply patches by activate USE flags in:

dwm
You must enable the  USE flag in order to save customized configuration file to  for later editing.

Users with multiple monitors should enable the  USE flag regardless of whether or not Xinerama will be used.

st
You must enable the savedconfig USE flag in order to save customized configuration file to /etc/portage/savedconfig/x11-terms/st-0.8.4.h for later editing.

surf
You must enable the savedconfig USE flag in order to save customized configuration file to /etc/portage/savedconfig/www-client/surf-2.0.h for later editing.

Some customization's requires the tabbed USE flag to be enabled. This will cause a rebuild of www-client/surf if it isn't already enabled.

Customisation
dwm is customised btermsy editing config.h, a C language header file, and config.mk, a Make include file.

What is config.h?
config.h is a source code file which is included by package-name.c, the main Suckless source code module. It serves as the configuration file for all of Suckless's features, e.g., application placement, tags, and colours. A vanilla download of any Suckless software will contain a file called config.def.h, a template you can use to create your own config.h file. To start customising, simply copy config.def.h into config.h, make some customisations and create a patch with your config.h customisations.

How do I modify config.h?
config.h can be edited just like any other C source code file. It contains definitions of variables that are going to be used by package-name.c and therefore it is vital that the file is always up to date. The default Makefile distributed with Suckless software will not overwrite your customised config.h with the contents of config.def.h, even if it was updated in the the latest git pull or release. Therefore, you should always compare your customised config.h with config.def.h and make sure you include any changes to the latter in your config.h''. The savedconfig USE flag and the CONFIG_PROTECT variable will solve this isssue.''

What is config.mk?
config.mk is a file included by Makefile. It allows you to configure how make is going to compile and install the Suckless software.

How do I modify config.mk?
config.mk can be edited just like any other text file. It contains definitions of variables that are going to be used inside Makefile. Unlike config.h, config.mk does not have a config.def.mk (a default Makefile). Therefore, during an update, you may run into conflicts if the original config.mk is edited. GLARBS ebuilds will solve this issue.

Updating customizations after new release
When the time comes to update your customizations after a new release of the Suckless software, you do the following...

Patches
There are two types of patches:
 * The ones that fit to your personal taste.
 * The ones included in mainline.

Patch filename format
There are two formats for patches:


 * For git revisions

The dwm patch allyourbase will look Like this:

The YYYYMMDD date should correspond to the last time the patch has been modified. The SHORTHASH here is the seven chars git commit short hash corresponding to the last commit of the tool on which the patch can be applied correctly and is working with. You can get it by taking the first seven chars of the full hash or for example:


 * For release versions

The RELEASE should correspond to the tool release version, ie 6.2 for dwm-6.2.

The dwm patch allyourbase will look Like this:

Diff generation

 * For git users


 * For tarballs

External resources

 * https://suckless.org/ - Official Suckless website.