BTS

Issue528

Title Vorschl?ge und Verbesserungen der /etc/zsh/zshrc
Priority bug Status resolved
Superseder Nosy List ft, kiste, mika
Assigned To ft Topics grml-etc-core

Created on 2008-09-28.10:05:49 by kiste, last changed 2008-10-01.20:30:24 by mika.

Files
File name Uploaded Type Edit Remove
zshrc_diff.patch kiste, 2008-09-28.10:05:47 text/x-diff
zshrc_diff.patch kiste, 2008-09-28.21:41:35 text/x-diff
zshrc_diff.patch kiste, 2008-09-28.22:25:33 text/x-diff
zshrc_diff.patch kiste, 2008-09-29.14:32:07 text/x-diff
Messages
msg1547 (view) Author: mika Date: 2008-10-01.20:30:22
We believe that your issue has been closed by the upload of
Version 0.3.58 of grml-etc-core from Michael Prokop <mika@grml.org>.
The explanation is attached below

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Wed, 01 Oct 2008 22:12:31 +0200
Source: grml-etc-core
Binary: grml-etc-core
Architecture: source all
Version: 0.3.58
Distribution: unstable
Urgency: low
Maintainer: Michael Prokop <mika@grml.org>
Changed-By: Michael Prokop <mika@grml.org>
Description: 
 grml-etc-core - core ecetera files for the grml system
Changes: 
 grml-etc-core (0.3.58) unstable; urgency=low
 .
   [ Frank Terbeck ]
   * zshrc: partial rewrite and extension of vcs_info()
   * zshrc: improvements by Kai Wilke. Thanks! [Closes: issue528]
   * zshrc: update zsh-help() output
 .
   [ Michael Prokop ]
   * Replace hg with git URLs
   * Add /etc/skel/.gitconfig (thanks to ft and gebi for feedback
     and review).
Checksums-Sha1: 
 9b1259f2cd1b77d4a437337a71d2e59dc2a16cd0 873 grml-etc-core_0.3.58.dsc
 46eb5decad93476632c193f4f86f1f91bc25fa85 109124 grml-etc-core_0.3.58.tar.gz
 b47dfc8e492cc02496db9c698701a3e8de136edb 108044 grml-etc-core_0.3.58_all.deb
Checksums-Sha256: 
 65487d9dd14ad72c2d2fc3df82cd1c251bd00a5a4165f9c5e6d20f834041c39d 873 grml-etc-core_0.3.58.dsc
 e635a1e1432e7c9febde1c2d6b584c9460893d7aa1e8503626b226ff499beb0d 109124 grml-etc-core_0.3.58.tar.gz
 78fd2ae460bf68160c42a5e0e1a69ad0ebd8ad9e4b5e8ab99e8aab111c6e32c9 108044 grml-etc-core_0.3.58_all.deb
Files: 
 e3c001c82353c16a3d47d9548eadcb1f 873 grml optional grml-etc-core_0.3.58.dsc
 78599c15f26def580959b35304ed54aa 109124 grml optional grml-etc-core_0.3.58.tar.gz
 8a5a6fac85a632799a828df51b6a09ae 108044 grml optional grml-etc-core_0.3.58_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iD8DBQFI49n+2N9T+zficugRAiGpAJ4sck5rRoh3Bi9vcEdZDiFuqmVthQCfaNwZ
FjxTeTrUcJDP1EK7BqrJUUk=
=iHkQ
-----END PGP SIGNATURE-----
msg1532 (view) Author: kiste Date: 2008-09-29.20:37:16
High, high ...
* Frank Terbeck <bts@bts.grml.org> schrieb am [29.09.08 17:26]:
> 
> Frank Terbeck <ft@grml.org> added the comment:
> 
> Kai Wilke <bts@bts.grml.org>:
> > Letzte vergessene "setopt nonomatch" entfernt.
> 
> Der Patch schaut gut aus. Danke!

Bitte:)

> Siehe:
>     <http://hg.grml.org/grml-etc-core/rev/55d3cb2c587a>
> ...]

gelesen.

> Danke für deinem Beitrag!

Bitte und auch Danke für die Hilfestellung, etc.:)

mfg Kiste
-- 
#######################################################################
Netzworkk                   grml - Linux Live CD fuer Sysadmins
Kai Wilke                   http://grml.org
kiste@netzworkk.de
http://www.netzworkk.de
http://netzworkk.berlios.de
msg1531 (view) Author: ft Date: 2008-09-29.15:26:20
Kai Wilke <bts@bts.grml.org>:
> Letzte vergessene "setopt nonomatch" entfernt.

Der Patch schaut gut aus. Danke!

Siehe:
    <http://hg.grml.org/grml-etc-core/rev/55d3cb2c587a>

Und ein Dokumentationsupdate von mir:
    <http://hg.grml.org/grml-etc-core/rev/31c2eb69b3ce>

Danke für deinem Beitrag!

Gruß, Frank
msg1530 (view) Author: kiste Date: 2008-09-29.14:32:07
Letzte vergessene "setopt nonomatch" entfernt.

mfg Kiste
msg1529 (view) Author: ft Date: 2008-09-29.13:57:52
Kai Wilke <bts@bts.grml.org>:
[...]
> > > +        unsetopt nonomatch
> > 
> > Letzteres ist überflüssig. Der Rest sah gut aus.
> 
> Ein überflüssiger Fehler:((
> 
> Mache ich heute noch fertig. So ist das mit dem Stress, 3 Sachen auf
> einmal machen und auch noch fertig werden wollen.

Kein Grund sich zu entschuldigen. Kann passieren. Der
Reviewprozess ja dazu da um solche Sachen abzufangen..

> Schaue mir das nachher noch mal in Ruhe durch. Muss erst einmal hier
> auf Arbeit den Montag Morgen nach 2 Wo. Abstinenz managen.

Kein Stress.

Gruß, Frank
msg1528 (view) Author: kiste Date: 2008-09-29.06:11:37
High, high ...
* Frank Terbeck <bts@bts.grml.org> schrieb am [29.09.08 00:33]:
> 
> Frank Terbeck <ft@grml.org> added the comment:
> 
> Kai Wilke <bts@bts.grml.org>:
> > Kai Wilke <kiste@netzworkk.de> added the comment:
> > 
> > Ich hatte noch was vergessen/übersehen, da mein mailfilter einige mails in den 
> > Mülleimer geworfen hat (shit stress).
> > 
> > Alles was bisher zu Ende besprochen wurde ist in der Diff Datei.
> 
> Sehr schön. Bis auf:
> 
> > -        for func in /etc/zsh/functions.d/[^_]*[^~] ; do
> > +        for func in /etc/zsh/functions.d/[^_]*[^~](N.) ; do
> >              zrcautoload -U ${func:t}
> >          done
> > +        unsetopt nonomatch
> 
> Letzteres ist überflüssig. Der Rest sah gut aus.

Ein überflüssiger Fehler:((

Mache ich heute noch fertig. So ist das mit dem Stress, 3 Sachen auf
einmal machen und auch noch fertig werden wollen.
Schaue mir das nachher noch mal in Ruhe durch. Muss erst einmal hier
auf Arbeit den Montag Morgen nach 2 Wo. Abstinenz managen.

mfg Kiste
-- 
#######################################################################
Netzworkk                   grml - Linux Live CD fuer Sysadmins
Kai Wilke                   http://grml.org
kiste@netzworkk.de
http://www.netzworkk.de
http://netzworkk.berlios.de
msg1515 (view) Author: ft Date: 2008-09-28.22:33:14
Kai Wilke <bts@bts.grml.org>:
> Kai Wilke <kiste@netzworkk.de> added the comment:
> 
> Ich hatte noch was vergessen/übersehen, da mein mailfilter einige mails in den 
> Mülleimer geworfen hat (shit stress).
> 
> Alles was bisher zu Ende besprochen wurde ist in der Diff Datei.

Sehr schön. Bis auf:

> -        for func in /etc/zsh/functions.d/[^_]*[^~] ; do
> +        for func in /etc/zsh/functions.d/[^_]*[^~](N.) ; do
>              zrcautoload -U ${func:t}
>          done
> +        unsetopt nonomatch

Letzteres ist überflüssig. Der Rest sah gut aus.

Gruß, Frank
msg1514 (view) Author: kiste Date: 2008-09-28.22:25:33
Ich hatte noch was vergessen/übersehen, da mein mailfilter einige mails in den 
Mülleimer geworfen hat (shit stress).

Alles was bisher zu Ende besprochen wurde ist in der Diff Datei.
msg1513 (view) Author: ft Date: 2008-09-28.22:05:05
Kai Wilke <bts@bts.grml.org>:
> Kai Wilke <kiste@netzworkk.de> added the comment:
> So ich habe mal ein neues diff erstellt. Die datei sieht im Kopf
> jetzt etwas anders aus, da ich die zshrc von grml nach
> zshrc-grml.orig umbenannt habe.

Danke, mal durchsehen...

> Wie schon geschrieben ist in den Hash Tabellen der Verzeichnisse
> der name von sdoc wieder auf doc zurück gesetzt worden.
> 
> An dem Namen log wird noch gerätselt. Ich würde den Namen nicht
> benutzen, aber ich benutze auch log in zlogin z. B..
> myzlogin:
> -----------------Snip--------------------------
> stty dec cr0 -tabs
> ttyctl -f  # freeze the terminal modes... can't change without a ttyctl -u
> mesg y
> uptime
> log
> from 2>/dev/null
> -------------------------Snap-----------------------

Wird allein schon durch Mikas Veto nichts werden.
Bei mir würde das in der zlogin auch locker gehen, da ich kein auto_cd
und kein cdable_vars setze. Bei grmls Default mit auto_cd aber ohne
cdable_vars sollte das auch keine Umstände machen.

> Der unsägliche ls-Hack wurde auch berichtigt.

Gut.

> --- zshrc-grml.orig	2008-09-11 12:13:12.000000000 +0200
> +++ zshrc	2008-09-28 21:03:01.768996988 +0200
> @@ -87,7 +87,7 @@
>  
>  # zsh profiling {{{
>  # just execute 'ZSH_PROFILE_RC=1 zsh' and run 'zprof' to get the details
> -if [[ -n $ZSH_PROFILE_RC ]] ; then
> +if [[ $ZSH_PROFILE_RC -gt 0 ]] ; then

ACK.

>      zmodload zsh/zprof
>  fi
>  # }}}
> @@ -431,9 +431,10 @@
>      [[ -d /etc/zsh/completion.d ]] && fpath=( $fpath /etc/zsh/completion.d )
>      if [[ -d /etc/zsh/functions.d ]] ; then
>          fpath+=( /etc/zsh/functions.d )
> -        for func in /etc/zsh/functions.d/[^_]*[^~] ; do
> +        for func in /etc/zsh/functions.d/[^_]*[^~](N.) ; do
>              zrcautoload -U ${func:t}
>          done
> +        unsetopt nonomatch
>      fi
>  fi
>  
> @@ -805,7 +806,7 @@
>      tmpargs=(
>          a   stat
>          a   zpty
> -        ap  zprof
> +        #ap  zprof

Hier die Zeile einfach löschen.
'zprof' wird oben geladen, wenn es gebraucht wird. Ich bezweifele das
Nutzer zprof oft auf der Kommando Zeile nutzen. Sollte tatsächlich
gejammert werden lasse ich mir etwas einfallen. Kurz: nicht
auskommentieren, löschen.

>          ap  mapfile
>      )
>  
> @@ -1003,16 +1004,26 @@
>  # }}}
>  
>  # {{{ display battery status on right side of prompt via running 'BATTERY=1 zsh'
> -if [[ -n "$BATTERY" ]] ; then
> -    if check_com -c acpi ; then
> -        PERCENT="${(C)${(s| |)$(acpi 2>/dev/null)}[4]}"
> -        [[ -z "$PERCENT" ]] && PERCENT='acpi not present'
> +if [[ $BATTERY -gt 0 ]] ; then
> +    if ! check_com -c acpi ; then
> +        BATTERY=0
> +    fi
> +fi

ACK.

>  
> -        if [[ "${PERCENT%%%}" -lt 20 ]] ; then
> -            PERCENT="warning: ${PERCENT}%"
> +battery() {
> +if [[ $BATTERY -gt 0 ]] ; then
> +    PERCENT="${${"$(acpi 2>/dev/null)"}/(#b)[[:space:]]##Battery <->: [^0-9]##, (<->)%*/${match[1]}}"
> +    if [[ -z "$PERCENT" ]] ; then
> +        PERCENT='acpi not present'
> +    else
> +        if [[ "$PERCENT" -lt 20 ]] ; then
> +            PERCENT="warning: ${PERCENT}%%"
> +        else
> +            PERCENT="${PERCENT}%%"
>          fi
>      fi
>  fi
> +}

ACK.

>  # }}}
>  
>  # set colors for use in prompts {{{
> @@ -1630,8 +1641,8 @@
>  # make sure to use right prompt only when not running a command
>  is41 && setopt transient_rprompt
>  
> -is4 && [[ -z $NOPRECMD ]] && precmd () {
> -    [[ -n $NOPRECMD ]] && return 0
> +is4 && [[ $NOPRECMD -lt 1 ]] && precmd () {

Wie in meiner anderen Mail gesagt:
Bitte nicht -lt 1 sondern -eq 0; ich halte folgende Semantik für
sinnvoll:
    + Parameter gleich 0: false
    + Parameter größer 0: true

Daher: [[ $PARAM -gt 0 ]] und [[ $PARAM -eq 0 ]] als Tests.

> +    [[ $NOPRECMD -gt 0 ]] && return 0
>      # update VCS information
>      vcs_info
>  
> @@ -1641,8 +1652,10 @@
>          # return 0
>      fi
>      # just use DONTSETRPROMPT=1 to be able to overwrite RPROMPT
> -    if [[ -z $DONTSETRPROMPT ]] ; then
> -        if [[ -n $BATTERY ]] ; then
> +    if [[ $DONTSETRPROMPT -lt 1 ]] ; then

-eq 0

> +        if [[ $BATTERY -gt 0 ]] ; then
> +            # update BATTERY information
> +            battery
>              RPROMPT="%(?..:()% ${PERCENT}${SCREENTITLE}"
>              # RPROMPT="${PERCENT}${SCREENTITLE}"
>          else

Ansonsten ACK.

> @@ -1660,9 +1673,9 @@
>  }
>  
>  # preexec() => a function running before every command
> -is4 && [[ -z $NOPRECMD ]] && \
> +is4 && [[ $NOPRECMD -lt 1 ]] && \

-eq 0

>  preexec () {
> -    [[ -n $NOPRECMD ]] && return 0
> +    [[ $NOPRECMD -gt 0 ]] && return 0
>  # set hostname if not running on host with name 'grml'
>      if [[ -n "$HOSTNAME" ]] && [[ "$HOSTNAME" != $(hostname) ]] ; then
>         NAME="@$HOSTNAME"
> @@ -1704,7 +1717,7 @@
>  else
>      # only if $GRMLPROMPT is set (e.g. via 'GRMLPROMPT=1 zsh') use the extended prompt
>      # set variable identifying the chroot you work in (used in the prompt below)
> -    if [[ -n $GRMLPROMPT ]] ; then
> +    if [[ $GRMLPROMPT -gt 0 ]] ; then

ACK.

>          PROMPT="${RED}${EXITCODE}${CYAN}[%j running job(s)] ${GREEN}{history#%!} ${RED}%(3L.+.) ${BLUE}%* %D
>  ${BLUE}%n${NO_COLOUR}@%m %40<...<%B%~%b%<< %# "
>      else
> @@ -1728,7 +1741,7 @@
>  hash -d deb=/var/cache/apt/archives
>  hash -d doc=/usr/share/doc
>  hash -d linux=/lib/modules/$(command uname -r)/build/
> -hash -d log=/var/log
> +hash -d vlog=/var/log

NACK, siehe oben in der Mail.

>  hash -d slog=/var/log/syslog
>  hash -d src=/usr/src
>  hash -d templ=/usr/share/doc/grml-templates
> @@ -1888,7 +1901,7 @@
>  the zsh yet. :)
>  
>    "NOCOR=1    zsh" => deactivate automatic correction
> -  "NOMENU=1   zsh" => do not use menu completion (note: use strg-d for completion instead!)
> +  "NOMENU=1   zsh" => do not use auto menu completion (note: use ctrl-d for completion instead!)

ACK.

>    "NOPRECMD=1 zsh" => disable the precmd + preexec commands (set GNU screen title)
>    "BATTERY=1  zsh" => activate battery status (via acpi) on right side of prompt'
>  
> @@ -2054,7 +2067,7 @@
>      zstyle ':completion:*:matches'         group 'yes'
>      zstyle ':completion:*'                 group-name ''
>  
> -    if [[ -z "$NOMENU" ]] ; then
> +    if [[ "$NOMENU" -lt 1 ]] ; then

-eq 0

>          # if there are more than 5 options allow selecting from a menu
>          zstyle ':completion:*'               menu select=5
>      else
> @@ -2069,7 +2082,8 @@
>      zstyle ':completion:*:options'         description 'yes'
>  
>      # on processes completion complete all user processes
> -    zstyle ':completion:*:processes'       command 'ps -au$USER'
> +    #zstyle ':completion:*:processes'       command 'ps -au$USER'
> +    zstyle ':completion:*:processes' command 'ps --forest -u $USER -o pid,cmd'

Semi-NACK. Grundsätzlich ist die baumartige Anzeige erstrebenswert,
ich nehme mich dessen in den nächsten Tagen einmal an, und baue
verschiedene Styles für verschiedene Zugriffsrechte ein.

Kurz: erstmal raus lassen. Kommt aber in ähnlicher Form.

>  
>      # offer indexes before parameters in subscripts
>      zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters
> @@ -2108,7 +2122,7 @@
>  
>      ## correction
>      # some people don't like the automatic correction - so run 'NOCOR=1 zsh' to deactivate it
> -    if [[ -n "$NOCOR" ]] ; then
> +    if [[ "$NOCOR" -gt 0 ]] ; then

ACK.


Wir sind schon nah an dem, was man committen könnte.

Gruß, Frank

-- 
In protocol design, perfection has been reached not when there is
nothing left to add, but when there is nothing left to take away.
                                                  -- RFC 1925
msg1512 (view) Author: kiste Date: 2008-09-28.21:41:35
So ich habe mal ein neues diff erstellt. Die datei sieht im Kopf
jetzt etwas anders aus, da ich die zshrc von grml nach
zshrc-grml.orig umbenannt habe.

Wie schon geschrieben ist in den Hash Tabellen der Verzeichnisse
der name von sdoc wieder auf doc zurück gesetzt worden.

An dem Namen log wird noch gerätselt. Ich würde den Namen nicht
benutzen, aber ich benutze auch log in zlogin z. B..
myzlogin:
-----------------Snip--------------------------
stty dec cr0 -tabs
ttyctl -f  # freeze the terminal modes... can't change without a ttyctl -u
mesg y
uptime
log
from 2>/dev/null
-------------------------Snap-----------------------

Der unsägliche ls-Hack wurde auch berichtigt.
msg1511 (view) Author: ft Date: 2008-09-28.21:17:21
Michael Prokop <bts@bts.grml.org>:
> Michael Prokop <mika@grml.org> added the comment:
> * Frank Terbeck <bts@bts.grml.org> [20080928 17:35]:
> > Michael Prokop <bts@bts.grml.org>:
> > > Michael Prokop <mika@grml.org> added the comment:
> > > > Vielleicht gefällt es euch. Man hat eine genauere Anzeige über die
> > > > Prozesse.
> > > > --------------------snip---------------------
> > > > #zstyle ':completion:*:processes'       command 'ps -au$USER'
> > > > zstyle ':completion:*:processes' command 'ps --forest -u $USER -o pid,cmd'
> > > > --------------------snap---------------------
> 
> > > Pfuh, das ist aber schon *sehr* anders. ;) Frank, was meinst du
> > > dazu?
> 
> > Nun ich habe:
> >   zstyle ':completion:*:processes' command 'ps --forest -A -o pid,user,cmd'
> 
> Das ist fesch!
> 
> > Evtl sollte man da verschiedene Styles für normale Nutzer und für root
> > machen. As in: Nutzer-Prozesse vs. alle-Prozesse.
> 
> Ja, bitte!

Im Zuge einer möglichen skel/.zshrc -> global-zshrc Fusion würde ich
das angehen... ...mal sehen, die Tage.

> > Nun nochmal der Patch im Einzelnen (Bemerkungen unter bzw. in den
> > Ausschnitten):
> 
> Mein ACK hast du. :)

Okay. :-)

Gruß, Frank
msg1510 (view) Author: mika Date: 2008-09-28.21:05:43
* Frank Terbeck <bts@bts.grml.org> [20080928 17:35]:
> Michael Prokop <bts@bts.grml.org>:
> > Michael Prokop <mika@grml.org> added the comment:

> > > hash -d doc=/usr/share/doc und hash -d log=/var/log wurden umbenannt in
> > > sdoc und vlog. doc kann ein Unterverzeichnis irgendwo im Tree sein.
> > > Bsp.:
> > > cd /home/USER
> > > doc
> > > pwd
> > > /home/USER/doc
> > > log ist ein zsh builtin Befehl.

> > Sorry, helft mir weiter:

> > mika@fuchsiatard ~ % cd ~doc
> > mika@fuchsiatard ~doc % pwd
> > /usr/share/doc

> > Wieso soll das weg?

> Nun, das sind Probleme mit denen Leute die auf AUTO_CD stehen zu
> kämpfen haben. Da kannst du nicht Folgendes machen:

>     % cd ~
>     % ls
>     doc/
>     % doc
>     % pwd
>     /usr/share/doc

> (nicht getestet, einfach hingeschrieben. cdable_vars wird wohl zu
> auto_cd zusätzlich benötigt, für so einen Workflow.)

Aso ja, das find ich ein minor-issue[tm]. ;)

> Ich tendiere allerdings *stark* dazu, daß die Hash Namen nicht
> geändert werden. Ich denke, das die momentanen Namen sich schon recht
> gut eingebürgert haben.

FullACK! Wenn mir doc und log jemand wegnimmt gibt's Saures! ;)

> Zumindest bei 'doc' bin ich da kaum umzustimmen. Wenn das persönlich
> stört, ändere man das in seinem persönlichen Zusatzsetup.

> Bei 'log' könnte man darüber nachdenken, ob man eine Änderung
> vornimmt - da wir in oben beschriebenen Workflow tatsächlich ein
> builtin weg-maskieren würden.

> Allerdings ist das auch da wieder eine Frage des persönlichen
> Workflows. Ich würde sowas gar nicht spüren. Und da wir, AFAIR,
> cdable_vars gar nicht setzen sehe ich nicht so großen Handlungsbedarf.
> Sorry.

ACK, bitte nichts angreifen - das ist halt eingebürgert und die
Leute würde es eher verärgern als es ihnen hilft.

> > > Vielleicht gefällt es euch. Man hat eine genauere Anzeige über die
> > > Prozesse.
> > > --------------------snip---------------------
> > > #zstyle ':completion:*:processes'       command 'ps -au$USER'
> > > zstyle ':completion:*:processes' command 'ps --forest -u $USER -o pid,cmd'
> > > --------------------snap---------------------

> > Pfuh, das ist aber schon *sehr* anders. ;) Frank, was meinst du
> > dazu?

> Nun ich habe:
>   zstyle ':completion:*:processes' command 'ps --forest -A -o pid,user,cmd'

Das ist fesch!

> Evtl sollte man da verschiedene Styles für normale Nutzer und für root
> machen. As in: Nutzer-Prozesse vs. alle-Prozesse.

Ja, bitte!

> Nun nochmal der Patch im Einzelnen (Bemerkungen unter bzw. in den
> Ausschnitten):

Mein ACK hast du. :)

mfg,
-mika-
msg1509 (view) Author: kiste Date: 2008-09-28.19:03:18
High, high ...
* Frank Terbeck <bts@bts.grml.org> schrieb am [28.09.08 19:57]:
> 
> Frank Terbeck <ft@grml.org> added the comment:
> 
> Kai Wilke <bts@bts.grml.org>:
> > * Michael Prokop <bts@bts.grml.org> schrieb am [28.09.08 16:47]:
> > > Sorry, helft mir weiter:
> > > 
> > > mika@fuchsiatard ~ % cd ~doc
> > > mika@fuchsiatard ~doc % pwd
> > > /usr/share/doc
> > > 
> > > Wieso soll das weg?
> > 
> > Wenn man die Option setopt cdable_vars setzt und ein User vergisst
> > das ~ Zeichen davor und es gibt ein Subdirectory doc, dann landet er
> > dort anstelle von ~doc. Bei mir muss ich manchmal 2 mal auf die
> > Taste drücken bis ~ erscheint. Meist unter X.
> 
> deadkeys vs. nodeadkeys in der X11 Konfiguration.

Geht alles nicht, liegt vielleicht an kde. Egal erstmal oder besser
gesagt schon länger.

> 
> Ansonsten finde ich immer noch, das wenn der User eine Option setzt
> die grml nicht setzt, sollte sie/er auch derjenige sein, der dahinter
> aufräumt.

OK.
sdoc ist wieder doc.

mfg Kiste
-- 
#######################################################################
Netzworkk                   grml - Linux Live CD fuer Sysadmins
Kai Wilke                   http://grml.org
kiste@netzworkk.de
http://www.netzworkk.de
http://netzworkk.berlios.de
msg1508 (view) Author: ft Date: 2008-09-28.17:57:46
Kai Wilke <bts@bts.grml.org>:
> * Michael Prokop <bts@bts.grml.org> schrieb am [28.09.08 16:47]:
> > Sorry, helft mir weiter:
> > 
> > mika@fuchsiatard ~ % cd ~doc
> > mika@fuchsiatard ~doc % pwd
> > /usr/share/doc
> > 
> > Wieso soll das weg?
> 
> Wenn man die Option setopt cdable_vars setzt und ein User vergisst
> das ~ Zeichen davor und es gibt ein Subdirectory doc, dann landet er
> dort anstelle von ~doc. Bei mir muss ich manchmal 2 mal auf die
> Taste drücken bis ~ erscheint. Meist unter X.

deadkeys vs. nodeadkeys in der X11 Konfiguration.

Ansonsten finde ich immer noch, das wenn der User eine Option setzt
die grml nicht setzt, sollte sie/er auch derjenige sein, der dahinter
aufräumt.

Gruß, Frank
msg1507 (view) Author: ft Date: 2008-09-28.17:48:19
Kai Wilke <bts@bts.grml.org>:
[...]
> Kläre mich mal bitte kurz auf. Muss ich jetzt jede Änderung ins bts
> schicken oder erst wenns fertig ist oder ein Teil davon? Also wie im
> cvs,svn,git,.. system

Wenn du ein gutes diff machst, an dem ich nichts mehr auszusetzen
habe, reicht mir das. Ich fummele dann die einzelnen Hunks in einzelne
Commits, wenn ich das für nötig halte.

Ansonsten darfst du gern aus einem Mercurial Repository oder einem Git
Import arbeiten und dann aufeinander aufbauende Commits exportieren
und diese dann ins BTS stecken. Man könnte an so etwas ein klein wenig
besser reviewen. Aber du hast ja scheinbar genug zu tun, darum ist ein
diff okay; Das Einpflegen mache ich dann wenn ich mit allem in dem
Patch zufrieden bin. :-)

Gruß, Frank
msg1506 (view) Author: kiste Date: 2008-09-28.17:46:04
High, high ...
* Michael Prokop <bts@bts.grml.org> schrieb am [28.09.08 16:47]:
> 
> Michael Prokop <mika@grml.org> added the comment:
> 
> * Kai Wilke <bts@bts.grml.org> [20080928 12:06]:
> 
> > Bericht über das Paket grml-etc-core-0.3.57 + patch.
> 
> Danke Kai. Frank, magst du das mal bitte reviewen? (Ich liege krank
> im Bett und schreib nur mal was mir auf den ersten Blick auffällt).

Gute Besserung.

> > ---------------------------------------------------------------------
> 
> > hash -d doc=/usr/share/doc und hash -d log=/var/log wurden umbenannt in
> > sdoc und vlog. doc kann ein Unterverzeichnis irgendwo im Tree sein.
> > Bsp.:
> > cd /home/USER
> > doc
> > pwd
> > /home/USER/doc
> > log ist ein zsh builtin Befehl.
> 
> Sorry, helft mir weiter:
> 
> mika@fuchsiatard ~ % cd ~doc
> mika@fuchsiatard ~doc % pwd
> /usr/share/doc
> 
> Wieso soll das weg?

Wenn man die Option setopt cdable_vars setzt und ein User vergisst
das ~ Zeichen davor und es gibt ein Subdirectory doc, dann landet er
dort anstelle von ~doc. Bei mir muss ich manchmal 2 mal auf die
Taste drücken bis ~ erscheint. Meist unter X.

> [...] 

Ist halt nur ein bischen eindeutiger.

mfg Kiste
-- 
#######################################################################
Netzworkk                   grml - Linux Live CD fuer Sysadmins
Kai Wilke                   http://grml.org
kiste@netzworkk.de
http://www.netzworkk.de
http://netzworkk.berlios.de
msg1504 (view) Author: kiste Date: 2008-09-28.17:30:56
High, high ...
* Frank Terbeck <bts@bts.grml.org> schrieb am [28.09.08 17:45]:
> 
> Frank Terbeck <ft@grml.org> added the comment:
> 
> Frank Terbeck <ft@bewatermyfriend.org>:
> > [snip]
> > @@ -431,9 +431,11 @@
> >      [[ -d /etc/zsh/completion.d ]] && fpath=( $fpath /etc/zsh/completion.d )
> >      if [[ -d /etc/zsh/functions.d ]] ; then
> >          fpath+=( /etc/zsh/functions.d )
> > -        for func in /etc/zsh/functions.d/[^_]*[^~] ; do
> > +        setopt nonomatch
> > +        for func in `ls -C /etc/zsh/functions.d/[^_]*[^~] 2>&/dev/null` ; do
> >              zrcautoload -U ${func:t}
> >          done
> > +        unsetopt nonomatch
> > 
> >      fi
> >  fi
> > [snap]
> > 
> > No way. Das ist aus so vielen Gründen nicht akzeptabel, das ich
> > garnicht erst anfange. Ich weiß auch nicht, was du da mit nonomatch
> > erreichen willst. Ich nehme an, du willst null_glob. Erklärung bitte.

Na ja, was du schon schriebst. Ohne nonomatch hat die zsh ja auch
über ls gemeckert.

> > 
> > Dieser unsägliche ls-Hack kommt auf keinen Fall in Frage:
> >   <http://bewatermyfriend.org/posts/2007/02-08.12-18-45-rants.html>
> 
> Mika hat da ein wenig zuviel weggeschnitten. Schieben wir's mal auf
> die Erkrankung. :-)
> 
> Leeres Verzeichnis. In Ordnung.
> Aber wie gesagt, da will man NULL_GLOB. Und dieses ls-Gefrickel kommt
> ganz sicher nicht in die Tüte:
> 
>     for func in /etc/zsh/functions.d/[^_]*[^~](N.) ; do

Habe ich geändert.

Sorry, stand wohl ein bischen auf dem Hirn. Mache gerade Umsatz-,
Gewerbe- und Einkommenssteuerklärung. Seit 8 Jahren nicht selber
gemacht (Steuerberater). Na ja habe jetzt 2 Tage und Nächte für die
Umsatzsteuererklärung gebraucht, mit Geburtstag, etc. zw. durch.

> 
> 'N' schaltet temporär NULL_GLOB ein. '.' matched nur reguläre Dateien
> (macht nun noch keinen Unterschied, sollten aber in Zukunft einmal
> Subverzeichnisse in functions.d liegen, kommt der Glob damit schon

Mercy, lese ich mir nochmmal alles durch mit den Flags.

Kläre mich mal bitte kurz auf. Muss ich jetzt jede Änderung ins bts
schicken oder erst wenns fertig ist oder ein Teil davon? Also wie im
cvs,svn,git,.. system


mfg Kiste
-- 
#######################################################################
Netzworkk                   grml - Linux Live CD fuer Sysadmins
Kai Wilke                   http://grml.org
kiste@netzworkk.de
http://www.netzworkk.de
http://netzworkk.berlios.de
msg1502 (view) Author: ft Date: 2008-09-28.15:45:37
Frank Terbeck <ft@bewatermyfriend.org>:
> [snip]
> @@ -431,9 +431,11 @@
>      [[ -d /etc/zsh/completion.d ]] && fpath=( $fpath /etc/zsh/completion.d )
>      if [[ -d /etc/zsh/functions.d ]] ; then
>          fpath+=( /etc/zsh/functions.d )
> -        for func in /etc/zsh/functions.d/[^_]*[^~] ; do
> +        setopt nonomatch
> +        for func in `ls -C /etc/zsh/functions.d/[^_]*[^~] 2>&/dev/null` ; do
>              zrcautoload -U ${func:t}
>          done
> +        unsetopt nonomatch
> 
>      fi
>  fi
> [snap]
> 
> No way. Das ist aus so vielen Gründen nicht akzeptabel, das ich
> garnicht erst anfange. Ich weiß auch nicht, was du da mit nonomatch
> erreichen willst. Ich nehme an, du willst null_glob. Erklärung bitte.
> 
> Dieser unsägliche ls-Hack kommt auf keinen Fall in Frage:
>   <http://bewatermyfriend.org/posts/2007/02-08.12-18-45-rants.html>

Mika hat da ein wenig zuviel weggeschnitten. Schieben wir's mal auf
die Erkrankung. :-)

Leeres Verzeichnis. In Ordnung.
Aber wie gesagt, da will man NULL_GLOB. Und dieses ls-Gefrickel kommt
ganz sicher nicht in die Tüte:

    for func in /etc/zsh/functions.d/[^_]*[^~](N.) ; do

'N' schaltet temporär NULL_GLOB ein. '.' matched nur reguläre Dateien
(macht nun noch keinen Unterschied, sollten aber in Zukunft einmal
Subverzeichnisse in functions.d liegen, kommt der Glob damit schon
klar).

Gruß, Frank
msg1501 (view) Author: ft Date: 2008-09-28.15:38:10
Frank Terbeck <ft@bewatermyfriend.org>:
> [snip]
> -        ap  zprof
> +        #ap  zprof
> [snap]
> 
> ...erm, Grund?

Okay, nun wo ich Kais ursprünglichen Report gesehen habe wird mir da
etwas klar. Nur warum auskommentieren und nicht löschen?

Gruß, Frank

-- 
In protocol design, perfection has been reached not when there is
nothing left to add, but when there is nothing left to take away.
                                                  -- RFC 1925
msg1500 (view) Author: ft Date: 2008-09-28.15:35:04
Michael Prokop <bts@bts.grml.org>:
> Michael Prokop <mika@grml.org> added the comment:
> * Kai Wilke <bts@bts.grml.org> [20080928 12:06]:
> > Bericht über das Paket grml-etc-core-0.3.57 + patch.
> 
> Danke Kai. Frank, magst du das mal bitte reviewen? (Ich liege krank
> im Bett und schreib nur mal was mir auf den ersten Blick auffällt).

Eieiei... Gute Besserung!

> > hash -d doc=/usr/share/doc und hash -d log=/var/log wurden umbenannt in
> > sdoc und vlog. doc kann ein Unterverzeichnis irgendwo im Tree sein.
> > Bsp.:
> > cd /home/USER
> > doc
> > pwd
> > /home/USER/doc
> > log ist ein zsh builtin Befehl.
> 
> Sorry, helft mir weiter:
> 
> mika@fuchsiatard ~ % cd ~doc
> mika@fuchsiatard ~doc % pwd
> /usr/share/doc
> 
> Wieso soll das weg?

Nun, das sind Probleme mit denen Leute die auf AUTO_CD stehen zu
kämpfen haben. Da kannst du nicht Folgendes machen:

    % cd ~
    % ls
    doc/
    % doc
    % pwd
    /usr/share/doc

(nicht getestet, einfach hingeschrieben. cdable_vars wird wohl zu
auto_cd zusätzlich benötigt, für so einen Workflow.)

Ich tendiere allerdings *stark* dazu, daß die Hash Namen nicht
geändert werden. Ich denke, das die momentanen Namen sich schon recht
gut eingebürgert haben.

Zumindest bei 'doc' bin ich da kaum umzustimmen. Wenn das persönlich
stört, ändere man das in seinem persönlichen Zusatzsetup.

Bei 'log' könnte man darüber nachdenken, ob man eine Änderung
vornimmt - da wir in oben beschriebenen Workflow tatsächlich ein
builtin weg-maskieren würden.

Allerdings ist das auch da wieder eine Frage des persönlichen
Workflows. Ich würde sowas gar nicht spüren. Und da wir, AFAIR,
cdable_vars gar nicht setzen sehe ich nicht so großen Handlungsbedarf.
Sorry.

> > Vielleicht gefällt es euch. Man hat eine genauere Anzeige über die
> > Prozesse.
> > --------------------snip---------------------
> > #zstyle ':completion:*:processes'       command 'ps -au$USER'
> > zstyle ':completion:*:processes' command 'ps --forest -u $USER -o pid,cmd'
> > --------------------snap---------------------
> 
> Pfuh, das ist aber schon *sehr* anders. ;) Frank, was meinst du
> dazu?

Nun ich habe:
  zstyle ':completion:*:processes' command 'ps --forest -A -o pid,user,cmd'

Evtl sollte man da verschiedene Styles für normale Nutzer und für root
machen. As in: Nutzer-Prozesse vs. alle-Prozesse.


Nun nochmal der Patch im Einzelnen (Bemerkungen unter bzw. in den
Ausschnitten):

[snip]
-if [[ -n $ZSH_PROFILE_RC ]] ; then
+if [[ $ZSH_PROFILE_RC -gt 0 ]] ; then

  ACK.

-if [[ -n "$BATTERY" ]] ; then
+if [[ $BATTERY -gt 0 ]] ; then

  ACK.

-is4 && [[ -z $NOPRECMD ]] && precmd () {
-    [[ -n $NOPRECMD ]] && return 0
+is4 && [[ $NOPRECMD -lt 1 ]] && precmd () {

  [[ $NOPRECMD -eq 0 ]], bitte.

+    [[ $NOPRECMD -gt 0 ]] && return 0

  ACK.

-is4 && [[ -z $NOPRECMD ]] && \
+is4 && [[ $NOPRECMD -lt 1 ]] && \

  auch hier: -eq 0

-    [[ -n $NOPRECMD ]] && return 0
+    [[ $NOPRECMD -gt 0 ]] && return 0

  ACK.

-    if [[ -n $GRMLPROMPT ]] ; then
+    if [[ $GRMLPROMPT -gt 0 ]] ; then

  ACK.

-    if [[ -z "$NOMENU" ]] ; then
+    if [[ "$NOMENU" -lt 1 ]] ; then

  -eq 0

-    if [[ -n "$NOCOR" ]] ; then
+    if [[ "$NOCOR" -gt 0 ]] ; then

  ACK.

[snap]

Diese hatten Kai und ich privat besprochen. Sollten mit nach Umsetzung
der Anmerkungen in Ordnung sein.

[snip]
@@ -431,9 +431,11 @@
     [[ -d /etc/zsh/completion.d ]] && fpath=( $fpath /etc/zsh/completion.d )
     if [[ -d /etc/zsh/functions.d ]] ; then
         fpath+=( /etc/zsh/functions.d )
-        for func in /etc/zsh/functions.d/[^_]*[^~] ; do
+        setopt nonomatch
+        for func in `ls -C /etc/zsh/functions.d/[^_]*[^~] 2>&/dev/null` ; do
             zrcautoload -U ${func:t}
         done
+        unsetopt nonomatch

     fi
 fi
[snap]

No way. Das ist aus so vielen Gründen nicht akzeptabel, das ich
garnicht erst anfange. Ich weiß auch nicht, was du da mit nonomatch
erreichen willst. Ich nehme an, du willst null_glob. Erklärung bitte.

Dieser unsägliche ls-Hack kommt auf keinen Fall in Frage:
  <http://bewatermyfriend.org/posts/2007/02-08.12-18-45-rants.html>

[snip]
-        ap  zprof
+        #ap  zprof
[snap]

...erm, Grund?

[snip]
+battery() {
+if [[ $BATTERY -gt 0 ]] ; then
+    PERCENT="${${"$(acpi 2>/dev/null)"}/(#b)[[:space:]]##Battery <->: [^0-9]##, (<->)%*/${match[1]}}"
+    if [[ -z "$PERCENT" ]] ; then
+        PERCENT='acpi not present'
+    else
+        if [[ "$PERCENT" -lt 20 ]] ; then
+            PERCENT="warning: ${PERCENT}%%"
+        else
+            PERCENT="${PERCENT}%%"
         fi
     fi
 fi
+}
[snap]
 
Das schaut okay aus.
Besonders, das PERCENT so geupdated wird ist mir sehr willkommen.

[snip]
-    if [[ -z $DONTSETRPROMPT ]] ; then
-        if [[ -n $BATTERY ]] ; then
+    if [[ $DONTSETRPROMPT -lt 1 ]] ; then

+        if [[ $BATTERY -gt 0 ]] ; then
+            # update BATTERY information
+            battery
[snap]

Auch hier -eq 0, bitte.
Ansonsten okay.


[snip]
-hash -d doc=/usr/share/doc
+hash -d sdoc=/usr/share/doc
-hash -d log=/var/log
+hash -d vlog=/var/log
[snap]

Für diese siehe oben; eher nicht.

[snip]
-  "NOMENU=1   zsh" => do not use menu completion (note: use strg-d for completion instead!)
+  "NOMENU=1   zsh" => do not use auto menu completion (note: use ctrl-d for completion instead!)
[snap]

Eigentlich war folgende Zeile so oder so schon lang genug, aber okay:

[snip]
-    zstyle ':completion:*:processes'       command 'ps -au$USER'
+    #zstyle ':completion:*:processes'       command 'ps -au$USER'
+    zstyle ':completion:*:processes' command 'ps --forest -u $USER -o pid,cmd'
[snap]

Auch hier, siehe oben. Persönlich mag ich die Baum-artige Darstellung
auch. Allerdings muss dann wenigstens die Einfärbung angepasst werden.


-- 
In protocol design, perfection has been reached not when there is
nothing left to add, but when there is nothing left to take away.
                                                  -- RFC 1925
msg1499 (view) Author: mika Date: 2008-09-28.14:47:51
* Kai Wilke <bts@bts.grml.org> [20080928 12:06]:

> Bericht über das Paket grml-etc-core-0.3.57 + patch.

Danke Kai. Frank, magst du das mal bitte reviewen? (Ich liege krank
im Bett und schreib nur mal was mir auf den ersten Blick auffällt).

> ---------------------------------------------------------------------

> hash -d doc=/usr/share/doc und hash -d log=/var/log wurden umbenannt in
> sdoc und vlog. doc kann ein Unterverzeichnis irgendwo im Tree sein.
> Bsp.:
> cd /home/USER
> doc
> pwd
> /home/USER/doc
> log ist ein zsh builtin Befehl.

Sorry, helft mir weiter:

mika@fuchsiatard ~ % cd ~doc
mika@fuchsiatard ~doc % pwd
/usr/share/doc

Wieso soll das weg?

> ---------------------------------------------------------------------

> Vielleicht gefällt es euch. Man hat eine genauere Anzeige über die
> Prozesse.
> --------------------snip---------------------
> #zstyle ':completion:*:processes'       command 'ps -au$USER'
> zstyle ':completion:*:processes' command 'ps --forest -u $USER -o pid,cmd'
> --------------------snap---------------------

Pfuh, das ist aber schon *sehr* anders. ;) Frank, was meinst du
dazu?

mfg,
-mika-
msg1495 (view) Author: kiste Date: 2008-09-28.10:05:47
Bericht über das Paket grml-etc-core-0.3.57 + patch.

Ich weiss das gerade sehr viel geändert wird, aber mal bitte anschauen.

Profile Report:
ZSH_PROFILE_RC=1 zsh
ap Error
etc/zsh/zshrc:zmodload:756: module `zsh/zprof' has no such feature: `p:zprof'
a Error
/etc/zsh/zshrc:zmodload:756: failed to add builtin `zprof'

zprof wird durch ZSH_PROFILE_RC=1 geladen, dadurch funktioniert
folgender Code nicht mehr:
--------------------snip---------------------
# autoload zsh modules when they are referenced
if is4 ; then
    tmpargs=(
        a   stat
        a   zpty
        ap  zprof
        ap  mapfile
    )
...
--------------------snap---------------------
Habe ich erstmal zprof kommentiert.

---------------------------------------------------------------------

Completion Dateien /etc/zsh/function.d/*:
Folgender Code funktioniert nicht wenn das Verzeichnis leer ist.
Und was viel schlimmer ist, alles darauf folgende wird in
Mitleidenschaft gezogen (bindkey, .zshrc einlesen,...).

--------------------snip---------------------
        for func in /etc/zsh/functions.d/[^_]*[^~] ; do
            zrcautoload -U ${func:t}
        done
...
--------------------snap---------------------

---------------------------------------------------------------------

Battery Anzeige wurde mit Hilfe von Frank verbessert. So wird jetzt auch
das % Zeichen angezeigt und verschiedene acpi Ausgaben werden korrekt
ausgewertet (auch die neueste acpi Version). Die Battery Anzeige
funktioniert nur in Verbindung mit DONTSETRPROMPT=0 oder leer und
NOPRECMD=0 oder leer.

---------------------------------------------------------------------

hash -d doc=/usr/share/doc und hash -d log=/var/log wurden umbenannt in
sdoc und vlog. doc kann ein Unterverzeichnis irgendwo im Tree sein.
Bsp.:
cd /home/USER
doc
pwd
/home/USER/doc
log ist ein zsh builtin Befehl.

---------------------------------------------------------------------

Vielleicht gefällt es euch. Man hat eine genauere Anzeige über die
Prozesse.
--------------------snip---------------------
#zstyle ':completion:*:processes'       command 'ps -au$USER'
zstyle ':completion:*:processes' command 'ps --forest -u $USER -o pid,cmd'
--------------------snap---------------------

---------------------------------------------------------------------

Die Beschreibung für NOMENU=1 => ... wurde ausgebessert. Desweiteren
wurden alle Variablen Auswertungen, die man mit "VAR=1 zsh" aktivieren
kann, verbessert. VAR kann ja auch mit etwas anderem als 1 belegt sein.
History
Date User Action Args
2008-10-01 20:30:24mikasetstatus: chatting -> resolved
nosy: mika, ft, kiste
messages: + msg1547
2008-09-29 20:37:16kistesetnosy: mika, ft, kiste
messages: + msg1532
2008-09-29 15:26:21ftsetnosy: mika, ft, kiste
messages: + msg1531
2008-09-29 14:32:08kistesetfiles: + zshrc_diff.patch
nosy: mika, ft, kiste
messages: + msg1530
2008-09-29 13:57:54ftsetnosy: mika, ft, kiste
messages: + msg1529
title: Vorschläge und Verbesserungen der /etc/zsh/zshrc -> Vorschl?ge und Verbesserungen der /etc/zsh/zshrc
2008-09-29 06:11:38kistesetnosy: mika, ft, kiste
messages: + msg1528
2008-09-28 22:33:14ftsetnosy: mika, ft, kiste
messages: + msg1515
2008-09-28 22:25:33kistesetfiles: + zshrc_diff.patch
nosy: mika, ft, kiste
messages: + msg1514
2008-09-28 22:05:12ftsetnosy: mika, ft, kiste
messages: + msg1513
2008-09-28 21:41:35kistesetfiles: + zshrc_diff.patch
nosy: mika, ft, kiste
messages: + msg1512
2008-09-28 21:17:21ftsetnosy: mika, ft, kiste
messages: + msg1511
2008-09-28 21:05:47mikasetnosy: mika, ft, kiste
messages: + msg1510
title: Vorschl?ge und Verbesserungen der /etc/zsh/zshrc -> Vorschläge und Verbesserungen der /etc/zsh/zshrc
2008-09-28 19:03:19kistesetnosy: mika, ft, kiste
messages: + msg1509
2008-09-28 17:57:46ftsetnosy: mika, ft, kiste
messages: + msg1508
2008-09-28 17:48:19ftsetnosy: mika, ft, kiste
messages: + msg1507
2008-09-28 17:46:04kistesetnosy: mika, ft, kiste
messages: + msg1506
2008-09-28 17:30:59kistesetnosy: mika, ft, kiste
messages: + msg1504
title: Vorschläge und Verbesserungen der /etc/zsh/zshrc -> Vorschl?ge und Verbesserungen der /etc/zsh/zshrc
2008-09-28 15:45:37ftsetnosy: mika, ft, kiste
messages: + msg1502
2008-09-28 15:38:10ftsetnosy: mika, ft, kiste
messages: + msg1501
2008-09-28 15:35:06ftsetnosy: mika, ft, kiste
messages: + msg1500
2008-09-28 14:50:18mikasetnosy: mika, ft, kiste
assignedto: ft
2008-09-28 14:50:07mikasetnosy: + mika
2008-09-28 14:47:53mikasetstatus: unread -> chatting
messages: + msg1499
2008-09-28 14:47:47mikasetnosy: + kiste
2008-09-28 10:12:57kistesetnosy: + ft, - kiste
2008-09-28 10:05:49kistecreate