Actions to do after installing GNU Guix

1 reply [Last post]
ADFENO
Offline
Joined: 12/31/2012

Note 1: in the time of this writing, this didn't include what is
documented in the GNU Guix installation instructions[1] and application
setup[2] nor what GNU Guix recommends after installing other
applications through it.

Note 2: after my final bachelor's degree work I might turn this into a
wiki page here in Trisquel or a blog post in GNU Guix project's page.

* Make desktop menu entries and themes from GNU Guix appear in Trisquel

1. Copy the current contents of $XDG_DATA_DIRS variable, this can be
done with: echo $XDG_DATA_DIRS

Then copy the result;

2. Inside the "~/.profile" file, after the line that begins with "#umask
022" and preferably after the other variables that you have defined for
use with GNU Guix, add the following line:

-------------------cut here---------------start------------------
export XDG_DATA_DIRS="$HOME/.guix-profile/share:[Content copied from step 1, without these braces.]"
-------------------cut here---------------end--------------------

3. After this, log out and back in to your user's session (no need to
reboot the computer);

Technical important note: Trisquel's upstream still uses faulty
Xsession.d scripts, thus we cannot simply use the GNU `bash' paramenter
expansions such as `${VARIABLE:+:}$VARIABLE' because before starting the
desktop session that variable isn't set. At the same time, we can
neither do if/else checks to set it. If we do any of these, we would
always be creating that variable, and the faulty Xsession.d scripts
would not make the desktop session start, because the ".profile" is read
before starting the desktop session, the Xsession.d scripts are read
after .profile and before starting the desktop session, and these
scripts do nothing (don't set the needed variables) if the
$XDG_DATA_DIRS is found to be already set.

* Applications which use GTK have missing objects, colors or lines

1. Go to: Trisquel menu → System → Preferences → Visual and behavior →
Appearance (or Look);

2. Go where the current theme is ("Trisquel" by default which is also
the recommended), and click on the button to customize it;

3. Go to: Controls;

4. Select one of: Clearlooks, Crux, HighContrast, Industrial, Mist,
Redmond, ThinIce.

Side-effect: the task bar text will be black and thus hard to see with
the default background or bar color.

Important: this is only a work around, as the issue seems to be that
newer packages installed through GNU Guix ignore some CSS declarations
which are defined by the Trisquel theme. My limited knowledge leads me
to think that the correct fix should be to change those declarations
instead.

* Make text fonts installed from GNU Guix appear in Trisquel packages

Note: this fix only applies to packages that use the Fontconfig library.

1. Make this directory: "~/.config/fontconfig";

2. Create the following text file: "~/.config/fontconfig/fonts.conf". I
assume this doesn't exist. If it does, then you might need to fine tune
the configuration order that I'll give in the following steps;

3. Note that the following step might not be visible in the forums, if
so use the mailing list archives for trisquel-users and view this
message there. Inside that file, add:

-------------------cut here---------------start------------------
<?xml version="1.0"?>

~/.guix-profile/share/fonts
~/.guix-profile/share/fontconfig/conf.avail

-------------------cut here---------------end--------------------

The important parts here are the `dir' and `include' elements. The
others are only useful for the cases when no "fonts.conf" file
exists;

4. Run: FC_DEBUG=1024 fc-cache -vf

You can also pipe it to GNU `less' (like: `FC_DEBUG=1024 fc-cache -vf
| less') and use the / key to search for ".guix-profile/share/fonts"
and ".guix-profile/share/fontconfig". If you do have fonts installed
through GNU Guix, these two searches should respectively tell you if
font files are being found and if their special classification and
attributes are being recognized through their configuration files.

Now, for example Trisquel's GIMP will find fonts installed through GNU
Guix.

Happy hacking! :D

[1]
http://www.gnu.org/software/guix/manual/html_node/Binary-Installation.html

[2]
http://www.gnu.org/software/guix/manual/html_node/Application-Setup.html#Application-Setup

--
- Formas de contato: https://libreplanet.org/wiki/User:Adfeno#vCard
- Ativista do /software/ livre (não confundir com gratuito). Avaliador
da liberdade de /software/ e de /sites/.
- Arquivos que aceito: https://libreplanet.org/wiki/User:Adfeno#Arquivos
- Contribuições à sociedade:
https://libreplanet.org/wiki/User:Adfeno#Contributions
- Gosta do meu trabalho? Contrate-me ou doe algo para mim!
https://libreplanet.org/wiki/User:Adfeno#Suporte
- Use comunicações sociais federadas padronizadas, onde o "social"
permanece independente do fornecedor. #DeleteWhatsApp. Use #XMPP
(https://libreplanet.org/wiki/XMPP.pt), #DeleteFacebook
#DeleteInstagram #DeleteTwitter #DeleteYouTube. Use #ActivityPub via
#Mastodon (https://joinmastodon.org/).
- #DeleteNetflix #CancelNetflix. Evite #DRM:
https://www.defectivebydesign.org/

Platoxia
Offline
Joined: 05/30/2018

FYI, you can skip step 1 by simply using bash's command substitution like so:

-------------------cut here---------------start------------------
export XDG_DATA_DIRS="$HOME/.guix-profile/share:$(echo $XDG_DATA_DIRS)"
-------------------cut here---------------end--------------------

Edit to add, This is some great information and I think people who understand and promote Guix and GuixSD are awesome :-), it truly is the future of the GNU System IMHO. Kudos to you.