Noin kuukausi sitten vaihdoin Ubuntu 14.04 LTS: stä Archiin ja olen melko tyytyväinen tähän päätökseen. Kaipaan kuitenkin joitain ominaisuuksia uudessa distroissani , erityisesti Shift + printscr , joka Unityssä sallii näytön alueen valinnan kaappaamisen.
Käytän i3 WM: ää, joten kysymykseni on: Kuinka voin määrittää Unity-tyyppisen kuvakaappauksen käyttäytymisen niin, että se voi napsauttaa näytön alueita tai ikkunoita pikanäppäimellä tai muulla tavalla (ilman kaivamista ikkunan tunnukseen ja konsoliin)?
Vastaa
Voit käyttää import
, joka on osa ImageMagickia.
Sieppaa alue
Tämä muuttaa kohdistimen hiusristikoksi. Kun napsautat ja vedät muodostaaksesi laatikon, kyseinen laatikko tallennetaan nimellä ss.png
.
import ss.png
Kaappaa koko näyttö
Voit myös korvata sanan root
ikkunan tunnuksella kaapataksesi tietyn ikkunan.
Kommentit
Vastaa
Se on ollut kauan sitten, kun esitin tämän kysymyksen, ja näyttää siltä, että se on hyödyllinen joillekin käyttäjille. Joten annan oman käsikirjoitukseni kuvakaappaukset, joissa on xclip
ja imagemagick
-paketit.
Asenna ensin yllä mainitut riippuvuudet. Sitten voit tehdä mitä haluat alla olevan komentosarjan avulla. Se tukee kuvakaappauksen tekemistä koko näytöstä tai näyttöalueelta ja kopioi kuvakaappauksen automaattisesti leikepöydälle, jotta voit liittää sen kaikkialle (ei selain tai sähke Messenger).
Muutama vaikeasti keksittävä hakkerointi lisäisi tukea tiettyjen ikkunoiden kaappaamiseen ja osan kopioimiseen.
#!/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}
Ja tässä on viitteelliset pikanäppäimet i3wm
-laitteiden käyttämiseen komentosarja:
# 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/"
vastaus
Flameshot on hyvä vaihtoehto.
bindsym Print exec flameshot full bindsym Shift+Print exec flameshot gui
Voit ohittaa vaihtoehdon -p /path/to/directory
valitsemalla hakemiston.
Kommentit
- mukava työkalu Etsin sellaista työkalua dokumentaation tekemiseen. Jopa sinä voit lisätä merkinnän kuvakaappaukseen
Vastaa
oletko kokeillut scrot a, yksinkertainen komentorivin kaappaustyökalu
ref.,: https://faq.i3wm.org/question/202/what-do-you-guys-use-for-printscreen/
Kommentit
- voit myös käyttää scrot -s -sanomia tietyn alueen sieppaamiseen. Suorita komento ja pidä sitten painettuna ja napsauta sitten toista kohtaa. ’ ll luo tiedosto, jonka päivämäärä on tiedostonimi nykyiseen hakemistoon.
Vastaa
Asenna ensin xclip, imagemagick ja jq!
pacman -S imagemagick jq xclip
I sinulla on tämä rivi i3-asetuksissani:
bindsym $mod+Print exec \ import -window $( \ i3-msg -t get_tree | \ jq "recurse(.nodes[]) | select(.focused).window" \ ) png:- | \ xclip -selection clipboard -t image/png
Tämä tuo kuvakaappauksen aktiivisesta ikkunasta leikepöydälle, kun painat mod (Ikkuna / Alt) + Tulostusnäyttö .
i3-msg -t get-puu saa kaikki i3: n ikkunat jsonina, sitten käytämme jq: tä tarkennetun ikkunan ikkunatunnuksen saamiseksi. Välitämme sen imagemagicks import -komennolle ja lähetämme tuloksen xclipille, joka laittaa sen leikepöydälle!
Vastaa
Käytä maim . Se kehittyy aktiivisemmin ja riippuu kaltevuudesta , mikä on paljon parempi.
Älä käytä scrot-tiedostoa. Sen valintaruutu vioittuu ja jättää vaikutelman kuvakaappaukseen (myös ruutu muuttuu kokoa muutettaessa), kun sitä käytetään päivitysikkunassa (esimerkiksi htop).
Kommentit
- (1) Mikä on ”kaltevuus”? (2) Mikä on tarkalleen parempi? (3) Miksi?
- 1. Valitse toiminto, jota käytetään ikkuna-alueiden valitsemiseen [ github.com/naelstrof/slop] 2. Se on ’ parempi kuin scrot, koska se ei ’ t läpäise valintaruudun vioittumista (Kokeile scrot over htop). 3. idk.
vastaus
Hyvin yksinkertainen vaihtoehto, jos se on asennettu tai älä välitä asentamasta xfce4-screenhooter ja i3-kokoonpanot olisivat seuraavat:
bindsym Print exec --no-startup-id xfce4-screenshooter
Varoitus: vaikkakin melko kevyt, on joitain riippuvuuksia, jos et käytä muita xfce4-ohjelmia.
Vastaa
Pidän suljin jälkikäsittelyominaisuuksille (käsin piirretyt punaiset ympyrät!) ja kattaville määritysvaihtoehdoille.
Voit napata näytön alueen suorittamalla
shutter --select
Voit määrittää avainsidokset kansioon .config/i3/config
näin:
bindsym Print exec shutter --full bindsym Shift+Print exec shutter --select
Lataaminen kestää sekunnin, joten sinun kannattaa käynnistää se automaattisesti taustalla:
exec shutter --min_at_startup
Suljinta voi käyttää sitten tarjotinkuvakkeen kautta, mikä antaa sinulle monia hyödyllisiä vaihtoehtoja yllä olevan lisäksi.
Com ments
- Suljinta ei voi ’ asentaa helposti kokonaan Ubuntu 18.04: een tällä hetkellä (muokkaustyökalu riippuu kirjastosta, jota ei ole käytettävissä) ; mukautettu PPA ei ole ajan tasalla). Surullinen.
Vastaus
Tämä perl6-komentosarja vie juuri, alue, ikkuna, tai delay Kuvakaappaukset tuontia käyttämällä ja tallentavat ne $-tiedostoon ja leikepöydälle.
#!/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"; }
Nämä ovat i3: n avainsidokset suoritettavaksi komentosarja:
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
vastaus
Muokannut ratkaisua hiukan @ddnomad yllä, tässä ”komentosarjan bash
-versio on selkeämpi ja toinen lippu, jonka avulla voidaan tallentaa vain leikepöydälle.
#! /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
Sitten lisäät tämän kohtaan 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/"
Joten avaimen sidonta on:
- = tee kuvakaappaus
-
+Control
= tallenna vain leikepöydälle -
+Shift
= siepaa vain tietyn näytön alueen
import ss.png
jälkeen ottaaksesi kuvakaappauksen kyseisestä ikkunasta.bindsym $mod+shift+s exec import ~/screenshot.png
määrityksiisi. Eikö ’ tee mitään puolestani.