Captures d'écran

Bonjour,

Ayant vu des captures d'écran sur osdir, je me demandais bien comment ils font pour faire des capture d'écran alors que l'installation de l'OS n'est même pas encore finie.

En fait je voudrais faire une capture d'écran de grub, et de kdm(ou gdm) et de mon splashscreen kde, mais je ne sais pas comment faire. Est-ce que quelqu'un peut m'aider svp?

Merci.

11 réponses

  • Votes
  • Date
  • Date décroissante
  1. Je m'en doutais aussi de l'émulation,

    J'ai alors une question:
    Pourrais-je faire une capture après lancement de X, capture de kdm par exemple ou du splashscreen? J'ai vu un peu à propos de xwd mais je ne vois pas comment l'utiliser à ce fin.

    Encore merci.
    1. Contributeur
      J'ai peut être une solution mais je ne garantie rien ;)

      1 - à l'invite de saisie utilisateur (devant KDM), tu fais :
      CLRL+ALT+F1

      2 - tu te trouves face à une invite en mode texte, tu te loggue en utilisateur.
      3 - tu utilises imagemagic pour faire un imprime écran en tapant :
      import monimage.png

      4 - tu fais
      CLRT+ALT+F7

      5 - tu clics avec ta souris n'importe tout sur ton écran
      6 - tu retournes à la console 1 :
      CTRL+ALT+F1

      7 - tu vérifies que le fichier existe :
      ls *.png

      8 - tu fermes ta session :
      exit

      9 - tu retournes à l'invite X :
      CTRL+ALT+F7

      10- tu te loggues comme d'habitude et tu ouvres ton image avec The Gimp ou autre !

      Bon, c'est un peu cavalier, mais cela devrait fonctionner en théorie :)
      1. Contributeur
        :(
        je viens de tester (chez moi ^_^) et c'est ce que je redoutai, imagemagic ne veux pas se lancer car la session n'a pas lancer de serveur X !

        mais bon, on doit bien pouvoir !!!
        1. J'ai essayé aussi mais pareil que chez toi
          Je pensais en fait à une ligne comme "
          xwd -root -out root.xwd
          " à ajouter à xinitrc ou qqch du genre pour prendre des screenshots et les mettre dans un fichier. Mais je ne sais pas m'y prendre. Mon xinitrc ne contient qu'une ligne:
           . /etc/X11/Xsession
          1. Contributeur
            Salut!

            jamais testé, mais pour rester dans l'idée un peu "cavalière", il me semble que tu as possibilité d'ouvrir une seconde session graphique (sur un bureau virtuel a choisir) : ainsi, tu pourrais peut etre lancer ton appli graphique ...

            ctrl + alt + F1
            tu te logges
            puis :
            startx -- :1
            ctrl + alt + F8
            pour aller sur cette session graphique...
            puis tu prends un capture de ton premier ecran sur lequel tu as toujours kdm??
            bon courage!

            Phiphi
            1. Marche pas non plus :(. Il veut pas lancer deux fois X

              J'ai essayé de mettre la commande xwd dans xinitrc, et j'ai eu un screenshot, comme rien qu'un fond d'écran. Je crois que c'est l'image qui s'affiche juste avant kdm.
              xwd -root -out /home/moi/capture1.xwd
               . /etc/X11/Xsession


              Le fichier Xsession contient ceci:

              #!/bin/sh
              #
              # /etc/X11/Xsession
              #
              # global Xsession file -- used by display managers and xinit (startx)
              
              # $Id: Xsession 1507M 2004-09-13 07:36:26Z (local) $
              
              set -e
              
              PROGNAME=Xsession
              
              message () {
                # pretty-print messages of arbitrary length; use xmessage if it
                # is available and $DISPLAY is set
                MESSAGE="$PROGNAME: $*"
                echo "$MESSAGE" | fold -s -w ${COLUMNS:-80} >&2
                if [ -n "$DISPLAY" ] && which xmessage > /dev/null 2>&1; then
                  echo "$MESSAGE" | fold -s -w ${COLUMNS:-80} | xmessage -center -file -
                fi
              }
              
              message_nonl () {
                # pretty-print messages of arbitrary length (no trailing newline); use
                # xmessage if it is available and $DISPLAY is set
                MESSAGE="$PROGNAME: $*"
                echo -n "$MESSAGE" | fold -s -w ${COLUMNS:-80} >&2;
                if [ -n "$DISPLAY" ] && which xmessage > /dev/null 2>&1; then
                  echo -n "$MESSAGE" | fold -s -w ${COLUMNS:-80} | xmessage -center -file -
                fi
              }
              
              errormsg () {
                # exit script with error
                message "$*"
                exit 1
              }
              
              internal_errormsg () {
                # exit script with error; essentially a "THIS SHOULD NEVER HAPPEN" message
                # One big call to message() for the sake of xmessage; if we had two then
                # the user would have dismissed the error we want reported before seeing the
                # request to report it.
                errormsg "$*" \
                         "Please report the installed version of the \"xfree86-common\"" \
                         "package and the complete text of this error message to" \
                         "<debian-x@lists.debian.org>."
              }
              
              run_parts () {
                # until run-parts --noexec is implemented
                if [ -z "$1" ]; then
                  internal_errormsg "run_parts() called without an argument."
                fi
                if [ ! -d "$1" ]; then
                  internal_errormsg "run_parts() called, but \"$1\" does not exist or is" \
                                    "not a directory."
                fi
                for F in $(ls $1); do
                  if expr "$F" : '[[:alnum:]_-]\+$' > /dev/null 2>&1; then
                    if [ -f "$1/$F" ]; then
                      echo "$1/$F"
                    fi
                  fi
                done
              }
              
              # initialize variables for use by all session scripts
              
              OPTIONFILE=/etc/X11/Xsession.options
              
              SYSRESOURCES=/etc/X11/Xresources
              USRRESOURCES=$HOME/.Xresources
              
              SYSSESSIONDIR=/etc/X11/Xsession.d
              USERXSESSION=$HOME/.xsession
              ALTUSERXSESSION=$HOME/.Xsession
              ERRFILE=$HOME/.xsession-errors
              
              # attempt to create an error file; abort if we cannot
              if touch "$ERRFILE" 2> /dev/null && [ -w "$ERRFILE" ] &&
                [ ! -L "$ERRFILE" ]; then
                chmod 600 "$ERRFILE"
              elif ERRFILE=$(tempfile 2> /dev/null); then
                if ! ln -sf "$ERRFILE" "${TMPDIR:=/tmp}/xsession-$USER"; then
                  message "warning: unable to symlink \"$TMPDIR/xsession-$USER\" to" \
                           "\"$ERRFILE\"; look for session log/errors in" \
                           "\"$TMPDIR/xsession-$USER\"."
                fi
              else
                errormsg "unable to create X session log/error file; aborting."
              fi
              
              exec >"$ERRFILE" 2>&1
              
              echo "$PROGNAME: X session started for $LOGNAME at $(date)"
              
              # sanity check; is our session script directory present?
              if [ ! -d "$SYSSESSIONDIR" ]; then
                errormsg "no \"$SYSSESSIONDIR\" directory found; aborting."
              fi
              
              # Attempt to create a file of non-zero length in /tmp; a full filesystem can
              # cause mysterious X session failures.  We do not use touch, :, or test -w
              # because they won't actually create a file with contents.  We also let standard
              # error from tempfile and echo go to the error file to aid the user in
              # determining what went wrong.
              WRITE_TEST=$(tempfile)
              if ! echo "*" >>"$WRITE_TEST"; then
                message "warning: unable to write to ${WRITE_TEST%/*}; X session may exit" \
                        "with an error"
              fi
              rm -f "$WRITE_TEST"
              
              # use run-parts to source every file in the session directory; we source
              # instead of executing so that the variables and functions defined above
              # are available to the scripts, and so that they can pass variables to each
              # other
              SESSIONFILES=$(run_parts $SYSSESSIONDIR)
              if [ -n "$SESSIONFILES" ]; then
                for SESSIONFILE in $SESSIONFILES; do
                  logger -t X -p daemon.info "Doing run-parts of: $SESSIONFILE"
                  . $SESSIONFILE
                done
              fi
              
              exit 0
              
              # vim:set ai et sts=2 sw=2 tw=80:
              


              Alors je sais pas où mettre la commande de capture pour avoir kdm et le splashscreen.

              ps: j'ai du composer le code de sécurité "gode" ... ;)
              1. Contributeur
                Marche pas non plus :(. Il veut pas lancer deux fois X
                tu ne peux pas lancer 2 sessions X pour le même utilisateur.

                donc pour lancer une deuxieme session tu peux le faire seulement avec un autre utilisateur :)
                1. ... avec un autre utilisateur
                  Au stade où KDM est affiché, aucun utilisateur n'est encore loggé, non?
                  Si je me loggues en root sur un autre display, je ne devrais pas avoir de restrictions. Mais ça ne marche pas.

                  Est-ce que vous pourriez m'indiquer à quel endroit dans Xsession (si c'est le bon fichier) ci-dessus dois-je insérer la commande de capture?