Hogyan készíthetek egyszerűen képernyőképeket az Arch Linux képernyőterületeiről az i3 WM segítségével?

Körülbelül egy hónapja váltottam az Ubuntu 14.04 LTS-ről az Arch-ra, és “nagyon örülök ennek a döntésnek. Az új disztribútorommal azonban hiányoznak bizonyos funkciók , különösen a Shift + printscr , amelyek az Unity-ben lehetővé teszik a képernyőrégió kiválasztását.

i3 WM-et használok. Tehát a kérdésem: hogyan konfigurálhatom a Unity-szerű képernyőkép viselkedését úgy, hogy képes legyen a képernyőrégiók vagy az ablakok beillesztésére egy billentyűparancssal vagy valamivel (anélkül, hogy belemélyednék az ablakazonosítóba és a konzolba)? >

Használhatja a import t, amely az ImageMagick része.

Régió rögzítése

Ez a kurzort célkerékké változtatja, és amikor rákattint és húzza a mezőt, a mező elmentésre kerül ss.png.

import ss.png 

Teljes kijelző rögzítése

A root szót az ablak azonosítójával is helyettesítheti egy adott ablak rögzítéséhez.

Megjegyzések

  • A import ss.png után is kattinthat egy ablakra, hogy képernyőképet készítsen az ablakról.
  • Ez nem ' azonban az i3 config-ból nem működik. Minimális példa: adja hozzá a bindsym $mod+shift+s exec import ~/screenshot.png sort a konfigurációjához. Nem tesz semmit értem '.
  • Lásd a másik választ a lángokról. Ez ' amit ' m használok manapság.

Válasz

Hosszú idő telt el, amikor feltettem ezt a kérdést, és úgy tűnik, hogy ez a felhasználók egy részének hasznos. Tehát saját szkriptet adok a készítéshez képernyőképek xclip és imagemagick csomagokkal.

Először telepítse a fent említett függőségeket. Ezután megteheti amit csak akar, az alábbi szkript segítségével. Támogatja a teljes képernyőről vagy a képernyőrégióról készített képernyőkép készítését, és automatikusan másolja a képernyőképet a vágólapra, így mindenhova beillesztheti (ei böngésző vagy Telegram messenger).

Néhány nem olyan nehéz feltörési lehetőséggel támogatást nyújtana az egyes ablakok rögzítéséhez és az alkatrészek másolásának átkapcsolásához.

 #!/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}  

És itt találom a hivatkozások hivatkozásait egy i3wm használatához, hogy ezeket felhasználhassam parancsfájl:

# 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/" 

Válasz

Flameshot egy megfelelő alternatíva.

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

Az -p /path/to/directory opciót kihagyhatja a mentési könyvtár kiválasztása.

Megjegyzések

  • kedves eszköz, kerestem egy ilyen eszközt néhány dokumentáció elkészítéséhez. Még te is hozzáadhat jelölést a képernyőképhez

Válasz

próbálta már scrot a, egyszerű parancssori képernyőrögzítő segédprogram

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

Megjegyzések

  • scrot -s segítségével is rögzíthet egy adott régiót. futtassa a parancsot, majd kattintson és tartsa lenyomva, majd kattintson a második pontra. ' Létrehoz egy dátumot tartalmazó fájlt fájlnévként az aktuális könyvtárban.

Válasz

Először telepítse az xclip, imagemagick és jq!

pacman -S imagemagick jq xclip 

I legyen ez a sor az i3 config-ban:

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

Ez az aktív ablak képernyőképét teszi a vágólapra, amikor megnyomja a mod (Window / Alt) + Printscreen gombot. .

Az i3-msg -t get-tree az i3 összes ablakát json néven kapja meg, majd a jq használatával megkapjuk a fókuszált ablak ablakazonosítóját. Átadjuk az imagemagicks import parancsnak, és az eredményt átadjuk az xclip-nek, aki felteszi a vágólapra!

Answer

Use csalás . Aktívabban fejlődik, és a meredekségtől függ, amely sokkal jobb.

Ne használjon scrot-t. Kiválasztó doboza megrongál és benyomást hagy a képernyőképen (a doboz átméretezéskor is deformálódik), ha frissítő ablakon (mondjuk htop) használja.

Megjegyzések

  • (1) Mi az a „meredekség”? (2) Pontosan mi a jobb? (3) Miért?
  • 1. Kiválasztó művelet, amelyet az ablakrégiók kiválasztásához használnak [ github.com/naelstrof/slop] 2. Ez jobb ' mint a scrot, mert nem ' t nem esnek át a kiválasztó doboz sérülései (Próbálja meg a scrot-ot a htop felett). 3. idk.

Válasz

Nagyon egyszerű lehetőség, ha telepítette, vagy ne felejtse el telepíteni a xfce4-screenshoot és az i3 konfigurációja a következő lenne:

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

Figyelem: bár meglehetősen könnyű, vannak olyan függőségek, amelyek nem használnak más xfce4 programot

Válasz

Tetszik a redőny utófeldolgozási képességeiért (kézzel rajzolt piros körök!) és átfogó konfigurációs lehetőségekért.

Megfoghat egy képernyőterületet a

shutter --select 

A kulcs-összerendeléseket a .config/i3/config fájlban állíthatja be:

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

Egy másodpercbe telik a betöltése, ezért érdemes a háttérben automatikusan elindítani:

exec shutter --min_at_startup 

A zár elérhető lesz ezután egy tálcaikonon keresztül, amely számos hasznos lehetőséget kínál a fentieken túl.

Com ments

  • A redőny ' ebben a pillanatban nem telepíthető egyszerűen teljesen az Ubuntu 18.04-re (a szerkesztő eszköz a nem elérhető könyvtár függvénye ; egyedi PPA nem naprakész). Szomorú.

Válasz

Ez a perl6 szkript gyökér, terület, ablak, vagy delay A képernyőképek az importálás segítségével, és egy $ fájlba és a vágólapra menti őket.

#!/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"; } 

Ezek az i3 futtatásához szükséges kulcsok a szkript:

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 

Válasz

Kicsit szerkesztette a megoldást @ddnomad fent, itt a szkript bash változata egyértelműbb és egy másik zászló, amely csak a vágólapra történő mentést teszi lehetővé.

 #! /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  

Akkor ezt adja hozzá a 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/"  

Tehát a kulcskötés:

  • = képernyőkép készítése
  • +Control = csak a vágólapra mentés
  • +Shift = csak a képernyő egy meghatározott területét rögzíti

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük