Hi folks, an annoying thing for me in a default Guix installation is the lack of an inputrc definition[0]. So while using the shell I miss going through my bash history via "page up"/"page down" keys. To tackle this issue I created a simple inputrc and copied to `/etc/inputrc`: ``` # alternate mappings for "page up" and "page down" to search the history "\e[5~": history-search-backward "\e[6~": history-search-forward ``` In order to achieve this more elegant I could write a simple service to copy the file to /etc. Another option would be a small package. I think other distros provide one in the default, basic installation: ArchLinux[1], Debian[2] and openSUSE has even a longer one. Are others missing that too? What do you think? Good night Jonathan [0] https://wiki.archlinux.org/index.php/Readline [1] https://git.archlinux.org/svntogit/packages.git/plain/trunk/inputrc?h=packages/readline [2] https://packages.debian.org/buster/all/readline-common/filelist
On +2020-07-13 00:01:32 +0200, Jonathan Brielmaier wrote: > Hi folks, > > an annoying thing for me in a default Guix installation is the lack of > an inputrc definition[0]. So while using the shell I miss going through > my bash history via "page up"/"page down" keys. > > To tackle this issue I created a simple inputrc and copied to > `/etc/inputrc`: > ``` What hat are you wearing? Admin or user as logged in, or user as user of a particular app, or? Of course, as owner of your machine, you may do as you please, if you can ;-) But IMO user preferences should stay out of the root directory, like /etc/... so I would put your mods in $HOME/.inputrc, as your ArchLinux referece [0] discusses, or maybe under ~/.emacs.d/ if it's just emacs you want to tweak. As you say, other distros provide defaults, but unless you want to modify everyone's experience who logs in on the machine, I would say stick to $HOME/.something, where something IMO should not be more global in effect than need be. Think twice about anything you need sudo to accomplish :) I think it is a kind of namespace hygiene problem, when it is not clear who gets to define names and what they do under what circumstances. My 2¢ ;-) > # alternate mappings for "page up" and "page down" to search the history > "\e[5~": history-search-backward > "\e[6~": history-search-forward > ``` > > In order to achieve this more elegant I could write a simple service to > copy the file to /etc. Another option would be a small package. > > I think other distros provide one in the default, basic installation: > ArchLinux[1], Debian[2] and openSUSE has even a longer one. > > Are others missing that too? What do you think? > > Good night > Jonathan > > [0] https://wiki.archlinux.org/index.php/Readline > [1] > https://git.archlinux.org/svntogit/packages.git/plain/trunk/inputrc?h=packages/readline > [2] https://packages.debian.org/buster/all/readline-common/filelist > -- Regards, Bengt Richter
> In order to achieve this more elegant I could write a simple service to
> copy the file to /etc. Another option would be a small package.
I like the service idea a lot better. It appears to me that Guix is designed for services to deal with the more customizable parts of the installation, whereas packages are standard. /etc/inputrc is one of those things each system admin would want to customize, just like most of the things in /etc.
[-- Attachment #1: Type: text/plain, Size: 1438 bytes --] On Mon, Jul 13, 2020 at 11:26:59AM -0600, Jesse Gibbons wrote: > > In order to achieve this more elegant I could write a simple service to > > copy the file to /etc. Another option would be a small package. > > I like the service idea a lot better. It appears to me that Guix is designed for services to deal with the more customizable parts of the installation, whereas packages are standard. /etc/inputrc is one of those things each system admin would want to customize, just like most of the things in /etc. I'll go ahead and link to my os-release service here. It's a small service that creates an /etc/os-release file. The service in action¹ and the actual service itself. It would also be possible to create an even simpler file than the one I made here², with something like this: (define %inputrc (plain-file "inputrc" "set show-mode-in-prompt on\n" "set enable-bracketed-paste on\n" "set editing-mode vi\n" "Control-l: clear-screen\n" "set bell-style visible\n")) ¹ https://gitlab.com/Efraim/guix-config/-/blob/master/E5400_config.scm#L68 ² https://gitlab.com/Efraim/guix-config/-/blob/master/config/os-release.scm -- Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --]
[-- Attachment #1: Type: text/plain, Size: 1867 bytes --] On Mon, Jul 13, 2020 at 09:30:31PM +0300, Efraim Flashner wrote: > On Mon, Jul 13, 2020 at 11:26:59AM -0600, Jesse Gibbons wrote: > > > In order to achieve this more elegant I could write a simple service to > > > copy the file to /etc. Another option would be a small package. > > > > I like the service idea a lot better. It appears to me that Guix is designed for services to deal with the more customizable parts of the installation, whereas packages are standard. /etc/inputrc is one of those things each system admin would want to customize, just like most of the things in /etc. > > I'll go ahead and link to my os-release service here. It's a small > service that creates an /etc/os-release file. The service in action¹ and > the actual service itself. It would also be possible to create an even > simpler file than the one I made here², with something like this: > > (define %inputrc > (plain-file "inputrc" > "set show-mode-in-prompt on\n" > "set enable-bracketed-paste on\n" > "set editing-mode vi\n" > "Control-l: clear-screen\n" > "set bell-style visible\n")) The above wouldn't actually work. It needs a string-append or to not be multiple strings. > ¹ https://gitlab.com/Efraim/guix-config/-/blob/master/E5400_config.scm#L68 > ² https://gitlab.com/Efraim/guix-config/-/blob/master/config/os-release.scm > > -- > Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר > GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 > Confidentiality cannot be guaranteed on emails sent or received unencrypted -- Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --]
[-- Attachment #1: Type: text/plain, Size: 1452 bytes --] Efraim Flashner <efraim@flashner.co.il> writes: > On Mon, Jul 13, 2020 at 09:30:31PM +0300, Efraim Flashner wrote: >> On Mon, Jul 13, 2020 at 11:26:59AM -0600, Jesse Gibbons wrote: >> > > In order to achieve this more elegant I could write a simple service to >> > > copy the file to /etc. Another option would be a small package. >> > >> > I like the service idea a lot better. It appears to me that Guix is designed for services to deal with the more customizable parts of the installation, whereas packages are standard. /etc/inputrc is one of those things each system admin would want to customize, just like most of the things in /etc. >> >> I'll go ahead and link to my os-release service here. It's a small >> service that creates an /etc/os-release file. The service in action¹ and >> the actual service itself. It would also be possible to create an even >> simpler file than the one I made here², with something like this: >> >> (define %inputrc >> (plain-file "inputrc" >> "set show-mode-in-prompt on\n" >> "set enable-bracketed-paste on\n" >> "set editing-mode vi\n" >> "Control-l: clear-screen\n" >> "set bell-style visible\n")) > > The above wouldn't actually work. It needs a string-append or to not be > multiple strings. Or use 'mixed-text-file' instead of 'plain-file'. Though 'string-join' might be clearer in this case. :-) [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 487 bytes --]