Comment puis-je facilement faire des captures décran des régions décran sur Arch Linux avec i3 WM?

Il y a environ un mois, je suis passé dUbuntu 14.04 LTS à Arch et je « suis assez content de cette décision. Cependant, certaines fonctionnalités de ma nouvelle distribution me manquent. , en particulier Shift + printscr qui dans Unity permet de sélectionner une région décran à capturer.

Jutilise i3 WM. Donc, ma question est: Comment puis-je configurer un comportement de capture décran de type Unity pour pouvoir capturer des régions décran ou des fenêtres avec un raccourci clavier ou quelque chose (sans creuser dans lidentifiant de la fenêtre et les éléments de la console)?

Réponse

Vous pouvez utiliser import, qui fait partie dImageMagick.

Capturez une région

Cela changera votre curseur en réticule et lorsque vous cliquez et faites glisser pour former une boîte, cette boîte sera enregistrée sous ss.png.

import ss.png 

Capturer tout laffichage

Vous pouvez également remplacer le mot root par lidentifiant de la fenêtre pour capturer une fenêtre spécifique.

Commentaires

  • Vous pouvez également cliquer sur une fenêtre après import ss.png afin de prendre une capture décran de cette fenêtre.
  • Cela ne fonctionne pas ‘ t fonctionne à partir de la configuration i3, cependant. Exemple minimal: ajoutez la ligne bindsym $mod+shift+s exec import ~/screenshot.png à votre configuration. ‘ ne fait rien pour moi.
  • Voir lautre réponse sur Flameshot. Cest ‘ que je ‘ utilise ces jours-ci.

Réponse

Cela faisait longtemps que je navais pas posé cette question et il semble que cela soit utile pour certains utilisateurs. Je fournis donc mon propre script pour créer captures décran avec les packages xclip et imagemagick.

Tout dabord, installez les dépendances mentionnées ci-dessus. Ensuite, vous pouvez faire tout ce que vous voulez avec le script ci-dessous. Il prend en charge la création dune capture décran dun écran entier ou dune zone décran et copie automatiquement une capture décran dans un presse-papiers afin que vous puissiez la coller partout (navigateur Web ou messagerie Telegram).

Quelques hacks pas si difficiles à trouver ajouteraient un support pour capturer des fenêtres spécifiques et basculer la partie de copie.

 #!/usr/bin/env bash # screenshots stuff # TODO: docs function help_and_exit { if [ -n "${1}" ]; then echo "${1}" fi cat <<-EOF Usage: scregcp [-h|-s] [<screenshots_base_folder>] Take screenshot of a whole screen or a specified region, save it to a specified folder (current folder is default) and copy it to a clipboard. -h - print help and exit -s - take a screenshot of a screen region EOF if [ -n "${1}" ]; then exit 1 fi exit 0 } if [ "${1}" == "-h" ]; then help_and_exit elif [ "${1:0:1}" == "-" ]; then if [ "${1}" != "-s" ]; then help_and_exit "error: unknown option ${1}" fi base_folder="${2}" else base_folder="${1}" params="-window root" fi file_path=${base_folder}$( date "+%Y-%m-%d_%H-%M-%S" )_screenshot.png import ${params} ${file_path} xclip -selection clipboard -target image/png -i < ${file_path}  

Et voici mes raccourcis de référence pour un i3wm pour utiliser ce s cript:

# take a screenshot of a screen region and copy it to a clipboard bindsym --release Shift+Print exec "scregcp -s /home/ddnomad/pictures/screenshots/" # take a screenshot of a whole window and copy it to a clipboard bindsym --release Print exec "scregcp /home/ddnomad/pictures/screenshots/" 

Réponse

Flameshot est une alternative décente.

bindsym Print exec flameshot full bindsym Shift+Print exec flameshot gui 

Vous pouvez utiliser loption -p /path/to/directory pour ignorer en sélectionnant le répertoire de sauvegarde.

Commentaires

  • bel outil je cherchais un tel outil pour faire de la documentation. Même vous pouvez ajouter un marquage à la capture décran

Réponse

avez-vous essayé scrot a, utilitaire de capture décran simple en ligne de commande

ref.,: https://faq.i3wm.org/question/202/what-do-you-guys-use-for-printscreen/

Commentaires

  • vous pouvez également utiliser scrot -s pour capturer une région spécifique. exécutez la commande puis cliquez et maintenez puis cliquez sur le deuxième point, ‘ créera un fichier avec la date comme nom de fichier dans votre répertoire actuel.

Réponse

Tout dabord, installez xclip, imagemagick et jq!

pacman -S imagemagick jq xclip 

I avoir cette ligne dans ma configuration i3:

bindsym $mod+Print exec \ import -window $( \ i3-msg -t get_tree | \ jq "recurse(.nodes[]) | select(.focused).window" \ ) png:- | \ xclip -selection clipboard -t image/png 

Cela mettra une capture décran de la fenêtre active sur votre presse-papiers lorsque vous appuyez sur mod (Window / Alt) + Printscreen .

i3-msg -t get-tree récupère toutes les fenêtres de i3 en tant que json, puis nous utilisons jq pour obtenir lidentifiant de la fenêtre focalisée. Nous le transmettons à la commande imagemagicks import et dirigons le résultat vers xclip qui le mettra dans le presse-papiers!

Réponse

Utilisez mutiler . Il est plus activement développé et dépend de slop qui est bien meilleur.

Nutilisez pas scrot. Sa boîte de sélection corrompt et laisse une impression dans la capture décran (également la boîte se déforme lors du redimensionnement) lorsquelle est utilisée sur une fenêtre de mise à jour (par exemple htop).

Commentaires

  • (1) Quest-ce que «slop»? (2) Quest-ce que cest mieux que? (3) Pourquoi?
  • 1. Sélectionnez lopération, utilisée pour sélectionner les régions de la fenêtre [ github.com/naelstrof/slop] 2. Cest mieux ‘ que scrot car il ne subit pas ‘ la corruption de la boîte de sélection (Essayez scrot sur htop). 3. idk.

Réponse

Une option très simple si vous lavez installée ou si vous ne vous souciez pas de linstaller utilise xfce4-screenshooter et la configuration i3 serait:

bindsym Print exec --no-startup-id xfce4-screenshooter 

Attention: bien quassez léger, il existe des dépendances si vous nutilisez aucun autre programme xfce4

Réponse

Jaime shutter pour ses capacités de post-traitement (cercles rouges dessinés à la main!) et ses options de configuration complètes.

Vous pouvez saisir une zone décran en exécutant

shutter --select 

Vous pouvez configurer des raccourcis clavier dans .config/i3/config comme ceci:

bindsym Print exec shutter --full bindsym Shift+Print exec shutter --select 

Le chargement prend une seconde, donc vous voudrez peut-être le démarrer automatiquement en arrière-plan:

exec shutter --min_at_startup 

Lobturateur sera accessible via une icône de barre détat alors, qui vous donne de nombreuses options utiles au-delà de ce qui précède.

Com

  • Shutter peut ‘ être facilement installé entièrement sur Ubuntu 18.04 à ce stade (loutil dédition dépend de la bibliothèque indisponible ; PPA personnalisé non à jour). Triste.

Réponse

Ce script perl6 prend racine, zone, fenêtre, ou délai ScreenShots utilisant limportation et les enregistre dans un fichier $ et dans le presse-papiers.

#!/usr/bin/env perl6 use v6; sub print_window(Str $file) { qx{xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"} ~~ /(0x\S*)/; run <import -window>, $0, $file; } sub MAIN( Str $option where $option ∈ <root area window delay> ) { my $today = DateTime.now( formatter => { sprintf "%04d_%02d_%02d_%02d-%02d-%02d", .year, .month, .day, .hour, .minute, .second } ); my $file = "$*HOME/Dades/Imatges/ScreenShots/$today.png"; given $option { when "root" { run <import -window root>, $file } when "area" { run "import", $file } when "window" { print_window($file) } when "delay" { sleep 10; print_window($file) } } run <xclip -selection clipboard -target image/png -i>, $file; run <xmessage -nearmouse -timeout 3>, "Screenshot in clipboard, and saved in $today.png"; } 

Voici les raccourcis clavier dans i3 à exécuter le script:

bindsym $mod+Print exec Print_Screen root bindsym --release $mod+Shift+Print exec Print_Screen area bindsym $mod+Mod1+Print exec Print_Screen delay bindsym $mod+Control+Print exec Print_Screen window 

Answer

Légèrement modifié la solution par @ddnomad ci-dessus, voici la version bash du script avec plus de précision et un autre drapeau qui permet de sauvegarder uniquement dans le presse-papier.

 #! /bin/bash - help_and_exit() { cat <<-EOF Usage: scregcp [-h|-s|-c] [<screenshots_base_folder>] Take screenshot of a whole screen or a specified region, save it to a specified folder (current folder is default) and copy it to a clipboard. -h - print help and exit -s - take a screenshot of a screen region -c - save only to clipboard EOF exit 0 } base_folder="./" savefile=true region=false params="-window root" while test $# -gt 0; do case "$1" in -h|--help*) help_and_exit ;; -r|--region*) params="" shift ;; -c|--clipboard-only*) savefile=false shift ;; *) if [[ $1 =~ ^\- ]] ; then echo "error: unknown flag "$1"" help_and_exit fi base_folder="${1}" shift ;; esac done file_path=${base_folder}$( date "+%Y-%m-%d_%H-%M-%S" )_screenshot.png import ${params} ${file_path} xclip -selection clipboard -target image/png -i < ${file_path} if [ "$savefile" = false ] ; then rm ${file_path} fi  

Voici ce que vous ajoutez à i3 config:

 bindsym --release Shift+Print exec "/dir/to/script.sh -r $HOME/Pictures/screenshots/" bindsym --release Control+Shift+Print exec "/dir/to/script.sh -r -c $HOME/Pictures/screenshots/" bindsym --release Print exec "/dir/to/script.sh $HOME/Pictures/screenshots/" bindsym --release Control+Print exec "/dir/to/script.sh -c $HOME/Pictures/screenshots/"  

Le raccourci clavier est donc:

  • = faire une capture décran
  • +Control = enregistrer uniquement dans le presse-papiers
  • +Shift = ne capturer quune région spécifique de lécran

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *