আমি কীভাবে সহজেই আই 3 ডাব্লুএম দিয়ে আর্চ লিনাক্সের স্ক্রিন অঞ্চলগুলির স্ক্রিনশট তৈরি করতে পারি?


27

প্রায় এক মাস আগে আমি উবুন্টু 14.04 এলটিএস থেকে আরচে চলে এসেছি এবং এই সিদ্ধান্তে আমি বেশ খুশি। তবে আমি আমার নতুন ডিস্ট্রো সহ কিছু বৈশিষ্ট্য মিস করছি, বিশেষত Shift+ printscrযা ইউনিটিতে স্ক্রিন অঞ্চল নির্বাচন ক্যাপচার করার অনুমতি দেয় allows

আমি আই 3 ডাব্লুএম ব্যবহার করি। সুতরাং, আমার প্রশ্নটি: আমি কীভাবে কিবোর্ড শর্টকাট বা কিছু (উইন্ডো আইডি এবং কনসোল স্টাফটিতে খনন না করে) স্ক্রিন অঞ্চল বা উইন্ডো স্ন্যাপ করতে সক্ষম হতে ইউনিটির মতো স্ক্রিনশট আচরণটি কনফিগার করব?

উত্তর:


29

আপনি importইমেজম্যাগিকের অংশ ব্যবহার করতে পারেন ।

একটি অঞ্চল ক্যাপচার করুন

এটি আপনার কার্সারটিকে ক্রসএয়ারে পরিবর্তন করবে এবং আপনি যখন একটি বাক্স তৈরি করতে ক্লিক করুন এবং টেনে আনেন, তখন সেই বাক্সটি সেভ হয়ে যাবে ss.png

import ss.png

পুরো প্রদর্শন ক্যাপচার

import -window root ss.png

আপনি rootএকটি নির্দিষ্ট উইন্ডো ক্যাপচার করতে উইন্ডো আইডি দিয়ে শব্দটি প্রতিস্থাপন করতে পারেন।


1
সহজ, নিখুঁত, ঠিক আমার যা প্রয়োজন - এবং আমাকে আর একটি প্রোগ্রাম ডাউনলোড করতে হয়নি।
ড্যারেন হেইনেস

1
import ss.pngসেই উইন্ডোটির স্ক্রিনশট নেওয়ার জন্য আপনি উইন্ডোতে ক্লিক করতে পারেন।
জন গওয়ার্স

9

আমি এই প্রশ্নটি জিজ্ঞাসা করে অনেক দিন হয়ে গেছে এবং দেখে মনে হচ্ছে এটি কিছু ব্যবহারকারীর জন্য সহায়ক। তাই আমি সঙ্গে স্ক্রিনশট তৈরীর জন্য আমার নিজের স্ক্রিপ্ট প্রদান xclipএবং imagemagickপ্যাকেজ।

প্রথমত, উপরে বর্ণিত নির্ভরতাগুলি ইনস্টল করুন। তারপরে আপনি নীচের স্ক্রিপ্টটি দিয়ে যা কিছু করতে পারেন তা করতে পারেন। এটি পুরো স্ক্রিন বা স্ক্রিন অঞ্চলের স্ক্রিনশট তৈরি করতে সহায়তা করে এবং এটি স্বয়ংক্রিয়ভাবে একটি ক্লিপবোর্ডে একটি স্ক্রিনশট অনুলিপি করে যাতে আপনি এটিকে যে কোনও জায়গায় আটকে দিতে পারেন (ei ব্রাউজার বা টেলিগ্রাম মেসেঞ্জার)।

হ্যাকগুলি নিয়ে আসা খুব কঠিন নয় এমন একটি দম্পতি নির্দিষ্ট উইন্ডোজ ক্যাপচার এবং অনুলিপি অংশটি টগল করার জন্য একটি সমর্থন যুক্ত করবে।

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

এবং i3wmএই স্ক্রিপ্টটি ব্যবহার করার জন্য এখানে আমার রেফারেন্স শর্টকাটগুলি রয়েছে :

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

6

আপনি কি স্ক্রট একটি, সাধারণ কমান্ডলাইন স্ক্রিন ক্যাপচার ইউটিলিটি চেষ্টা করেছেন?

সুত্র:। https://faq.i3wm.org/question/202/what-do-you-guys-use-for-printscreen/


বাহ, গুগল করার পরে আমি বুঝতে পেরেছিলাম, সেই স্ক্রোটটি আমার যা প্রয়োজন তা আসলেই সক্ষম। খুব অদ্ভুত আমি নিজে এটি খুঁজে পেলাম না। ধন্যবাদ দোস্ত!
ddnomad

আপনি কোনও নির্দিষ্ট অঞ্চল ক্যাপচার করতে স্ক্রোট-এস ব্যবহার করতে পারেন। কমান্ডটি চালান তারপর ক্লিক করুন এবং ধরে রাখুন তারপরে দ্বিতীয় পয়েন্টে ক্লিক করুন, এটি আপনার বর্তমান ডিরেক্টরিতে ফাইলের নাম হিসাবে তারিখ সহ একটি ফাইল তৈরি করবে।
ভিমদুদে

5

প্রথমে এক্সক্লিপ, ইমেজম্যাগিক এবং জকিউ ইনস্টল করুন!

pacman -S imagemagick jq xclip

আমার আই 3 কনফিগারেশনে আমার এই লাইনটি রয়েছে:

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

আপনি মোড (উইন্ডো / আল্ট) + প্রিন্টস্ক্রিন টিপলে এটি আপনার ক্লিপবোর্ডে সক্রিয় উইন্ডোটির একটি স্ক্রিনশট রাখবে।

i3-msg -t গেট-ট্রি i3 থেকে জেসসন হিসাবে সমস্ত উইন্ডো পায়, তারপরে আমরা ফোকাসযুক্ত উইন্ডোটির উইন্ডো আইডি পেতে jq ব্যবহার করি। আমরা এটিকে চিত্রগ্রাহকদের আমদানি কমান্ডে পাস করি এবং ফলাফলটি ক্লিপবোর্ডে রাখে কে এক্সক্লিপে ফলাফল পাইপ করি!


2

শিখা শট একটি শালীন বিকল্প।

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

আপনি -p /path/to/directoryসংরক্ষণ ডিরেক্টরিটি নির্বাচন এড়ানোর জন্য বিকল্পটি ব্যবহার করতে পারেন ।


1

আপনি যদি এটি ইনস্টল করে থাকেন বা এটি ইনস্টল করতে কিছু মনে করেন না তবে একটি খুব সহজ বিকল্প xfce4- স্ক্রীনশুটার ব্যবহার করছে এবং i3 কনফিগারেশনটি হ'ল :

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

ক্যাভেট: আপনি যদি অন্য কোনও এক্সফেস 4 প্রোগ্রাম ব্যবহার না করেন তবে মোটামুটি হালকা ওজনের কিছুটা নির্ভরশীলতা রয়েছে


1

মাইম ব্যবহার করুন । এটি আরও সক্রিয়ভাবে বিকাশিত এবং slালু উপর নির্ভর করে যা আরও ভাল।

স্ক্রোট ব্যবহার করবেন না। একটি আপডেটিং উইন্ডো ব্যবহার করার সময় এটির নির্বাচন বাক্সটি কলুষিত হয়ে যায় এবং স্ক্রিনশটে একটি ছাপ ফেলে (পুনরায় আকার দেওয়ার সময় বাক্সটিও বিকৃত করে) say


(1) "opালু" কী? (২) আসলে কি এর চেয়ে ভাল? (৩) কেন?
জি-ম্যান 22

১. উইন্ডো অঞ্চলগুলি নির্বাচন করার জন্য ব্যবহৃত অপারেশন নির্বাচন করুন [ github.com/naelstrof/slop] ২. এটি স্ক্রোটের চেয়ে ভাল কারণ এটি নির্বাচন বাক্সে দুর্নীতির শিকার হয় না (স্ক্রিনের উপরে স্ক্রোট ব্যবহার করে দেখুন)। 3. idk।
হৃতিক

1

আমি এর পোস্ট-প্রসেসিং দক্ষতার জন্য শাটার পছন্দ করি (হস্তচালিত লাল বৃত্ত!) এবং বিস্তৃত কনফিগারেশন বিকল্পগুলি।

আপনি চালিয়ে কোনও স্ক্রিন অঞ্চল দখল করতে পারেন

shutter --select

আপনি এর .config/i3/configমতো কী বাইন্ডিং সেট আপ করতে পারেন:

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

এটি লোড হতে এক সেকেন্ড সময় নেয়, তাই আপনি এটি পটভূমিতে অটোস্টার্ট করতে চাইতে পারেন:

exec shutter --min_at_startup

শাটার তখন ট্রে আইকনের মাধ্যমে অ্যাক্সেসযোগ্য হবে, যা আপনাকে উপরের বাইরে অনেকগুলি দরকারী বিকল্প দেয়।


এই সময়ে সময়ে উবার্টু 18.04 এ সহজেই শাটার সহজে ইনস্টল করা যায় না (সম্পাদনা সরঞ্জামটি উপলভ্য লাইব্রেরির উপর নির্ভর করে; কাস্টম পিপিএ আপ টু ডেট নয়)। দু: খিত।
রাফেল

1

এই পার্ল 6 লিপিটি আমদানি ব্যবহার করে রুট, অঞ্চল, উইন্ডো বা স্ক্রিনশটগুলিতে বিলম্ব করে এবং একটি ফাইল এবং ক্লিপবোর্ডে সেভ করে।

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

স্ক্রিপ্টটি চালানোর জন্য এইগুলি আই 3-র মূল বাইন্ডিংগুলি:

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
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.