new-ryuslash.org/config/index.org

3.6 KiB

Oni Machine Interface

This is my latest attempt at a literate configuration.

This is in the very early stages of an attempt to do this. And usually I get frustrated and give up quite early on. I'll try and get small bits and pieces in here one at a time.

Environment

This is a random assortment of environment variables that I like to have defined for various reasons.

The LESS environment variable specifies the default command-line arguments to pass in to less whenever it is run. I've gotten quite used to these:

F
Causes less to exit right away when there is less than one screen of text to display.
X
Prevents the screen from being cleared away when less exits (it does more, but this is why I use it)
R
Displays ANSI color escape sequences to be rendered as normal, instead of as readable characters. In other words it lets less display colored text instead of displaying escape sequences.
S
Truncates long lines instead of wrapping them. Makes it easier for me to read.
i
This causes any searches using / to become case-insensitive so that the search term “done” will match “done”, “Done”, “DONE”, and any other combination of upper- and lowercase letters.
  ("LESS" . "FXRSi")

I use the MY_GUIX_CONFIGURED just as an indication that Guix home actually configured my user profile. It's not actually necessary for anything.

  ("MY_GUIX_CONFIGURED" . "1")

This opts out of sending any telemetry to Microsoft whenever I play around with any .Net things.

  ("DOTNET_CLI_TELEMETRY_OPTOUT" . "1")

Turn on dark-mode for Calibre. I prefer dark mode everywhere.

  ("CALIBRE_USE_DARK_PALETTE" . "1")

Because I use Guix on top of another distribution, this variable needs to be set in order for locales to work properly for both package installed through Guix and ones installed by the host distribution.

  ("GUIX_LOCPATH" . "$HOME/.guix-home/profile/lib/locale")

Again because I use Guix on top of another distribution this variable ensures that the things I have stored away in my usual data directory get included, not just the ones Guix defines.

  ("XDG_DATA_DIRS"
   . "${XDG_DATA_DIRS}${XDG_DATA_DIRS:+:}/usr/local/share:/usr/share")

I was working with git recently, splitting some utilities out into their own repository from a bigger repository using filter-branch. Apparently filter-branch has been deprecated because it's easy to make mistakes and there's better alternatives now. But filter-branch is what I know and my needs are simple, so I disable that warning.

  ("FILTER_BRANCH_SQUELCH_WARNING" . "1")

Putting it all together to define the service for my home configuration.

    (define oni-environment-servicee
      (simple-service
       'home-environment-service
       home-environment-variables-service-type
       '(
         <<environment-variables>>)))