Captures d'écran

Vook -  
 hectotor -
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

  1. saga9 Messages postés 5912 Date d'inscription   Statut Contributeur Dernière intervention   876
     
    Salut,
    je pense que les captures d'ecran se font via un emulateur pc.
    Il en existe plein dont QEMU qui est libre.
    Le souci est qu'il faut installer l'os sur le pc virtuel "qemu":
    http://fabrice.bellard.free.fr/qemu/
    0
  2. Vook
     
    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.
    0
  3. marc[i1] Messages postés 2603 Statut Contributeur 382
     
    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 :)
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. marc[i1] Messages postés 2603 Statut Contributeur 382
     
    :(
    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 !!!
    0
  6. Vook
     
    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
    0
  7. Phiphi57 Messages postés 789 Date d'inscription   Statut Contributeur Dernière intervention   295
     
    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
    0
  8. Vook
     
    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" ... ;)
    0
  9. marc[i1] Messages postés 2603 Statut Contributeur 382
     
    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 :)
    0
  10. Vook
     
    ... 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?
    0
  11. hectotor
     
    pour capturer ton splash, utilise Xnest
    0