ฉันจะเปลี่ยนชื่อเริ่มต้นสำหรับภาพหน้าจอของ gnome-screenshot ได้อย่างไร?


34

Gnome-screenshot 3.1.2 ใช้ชื่อไฟล์แบบนี้

สกรีนช็อตที่ 2011-07-31 12: 13: 04.png

ทำให้ค่อนข้างง่ายที่จะเห็นเมื่อมีการถ่าย

ปัญหาคือใช้ตัวอักษรโคลอน (:) ทำให้ไม่สามารถเข้าถึงรูปภาพจาก Windows ได้

พิจารณาฉันใช้ภาพหน้าจอส่วนใหญ่ของฉันดังนั้นฉันสามารถส่งพวกเขาไปยังผู้ใช้ Windows นี้ทำให้เกิดปัญหาบางอย่าง

มีวิธีใดบ้างในการเปลี่ยนชื่อเริ่มต้นที่เครื่องมือจับภาพหน้าจอใช้เพื่อแทนที่ ":" ด้วย " หรือ "," ?

คำตอบ:


12

ไม่สามารถทำการเปลี่ยนแปลงได้อย่างง่ายดายบางทีคุณอาจช่วยรายงานบั๊กนี้ได้

(สำหรับคนที่อยากรู้อยากเห็นตรวจสอบซอร์สโค้ดปัจจุบันบรรทัดที่เกี่ยวข้องคือ134 )

อัปเดต : ข้อผิดพลาดได้รับการแก้ไขอัปสตรีมใน 2015-01-28แทนที่โคลอนด้วยเครื่องหมายขีดคั่นซึ่งจะช่วย แต่พวกเขาไม่ได้ใช้พื้นที่อย่างน่าเสียดาย


3
+1 สำหรับการลิงก์ไปยังซอร์สโค้ด ตอนนี้เป็นวิธี linux (แม้ว่ารหัสชื่อไฟล์จะอยู่ที่นี่จริง ๆ ตอนนี้: git.gnome.org/browse/gnome-utils/tree/gnome-scurrency/… )
Mark E. Haase

1
น่าเสียดายที่ลิงก์นั้นตายแล้ว: ไม่พบที่เก็บ
gertvdijk

2
URL ใหม่: git.gnome.org/browse/gnome-scurrency/tree/src/ … (เรียกคืนเมื่อ 2013-02-16 18:08 UTC + 0800)
LiuYan 刘研

ฉันหวังว่าเราจะสามารถปรับแต่งสิ่งนี้ได้ในพื้นที่ก่อนที่นักพัฒนา GNOME เก่าจะตื่นขึ้นมาพบกับปัญหาสำคัญที่รายงานโดยผู้ใช้ ;-) โดยเร็ว
Sadi

3
ใครคิดว่าเป็นความคิดที่ดีที่จะ hardcode ชื่อสกรีนช็อตใน C ต้องการคอมไพล์ของสภาพแวดล้อมเดสก์ท็อปทั้งหมด ไม่มีใครเคยคิดว่าผู้ใช้อาจต้องการเปลี่ยนการตั้งชื่อเริ่มต้นหรือไม่? ตอนนี้มีdconf-editorและเช่นนั้นและgnome-screenshotใช้มันทำไมไม่มีรายการ dconf stting สำหรับ "นโยบายการตั้งชื่อภาพหน้าจอ" ซึ่งคุณสามารถตั้งค่าให้พูดScreenshot-%02d.pngและถ้าว่างแล้วไปพร้อมกับนโยบายการตั้งชื่อ hardcoded? เอ๊ะ ....
sdaau

10

มีวิธีที่ง่ายและสกปรกในการเปลี่ยนชื่อภาพหน้าจอทั้งหมดที่ถ่ายทันทีหลังจากการสร้าง แต่คุณจะต้องติดตั้ง inotify-tools ( apt-get install inotify-tools) จากนั้นคุณสามารถเรียกใช้คำสั่งนี้:

while true; do inotifywait -e CREATE ~/Pictures && rename 's/\:/\./g' Pictures/Screenshot*.png; done;

ในขณะที่คำสั่งนี้จะทำงานทุกครั้งที่คุณบันทึกภาพหน้าจอใหม่ใน Pictures / สคริปต์จะเปลี่ยนชื่อทุกไฟล์ที่มี:แทนที่:ด้วย.

(บางทีคุณอาจต้องการเปลี่ยนไดเรกทอรีฉันไม่ทราบว่าไดเรกทอรีใดที่ Gnome 3 ใช้) หากคุณชอบคุณสามารถเริ่มคำสั่งนี้ในสคริปต์ทุกครั้งที่ gnome เริ่มต้น


3
+1 นี่เป็นเคล็ดลับเล็ก ๆ น้อย ๆ แต่ regex ของคุณควรเป็น 's /\:/\./ g'
Mark E. Haase

ตัวเลือกอื่นของการแทนที่: ใช้อักขระ Unicode
LiuYan 刘研

โปรดทราบว่าหน้าจอจะถูกบันทึกไว้โดยเริ่มต้นในไม่~/Pictures ~/Desktop
MestreLion

9

แทนที่จะติดตั้งซอฟต์แวร์เพิ่มเติมและเขียนรหัสนี้ในเครื่องมือสกรีนช็อตต่อไปนี้เป็นวิธีแก้ไขปัญหาเพื่อเปลี่ยนชื่อไฟล์ในภายหลัง

สิ่งที่คุณต้องทำคือไปที่ไดเรกทอรีและเรียกใช้คำสั่งต่อไปนี้

rename 's/\:/\-/g' *.png

สิ่งนี้จะแทนที่เครื่องหมายโคลอนทั้งหมดด้วยเครื่องหมายขีดกลางในชื่อไฟล์ทั้งหมดที่ลงท้ายด้วยชื่อ.pngที่อยู่ในไดเรกทอรีปัจจุบัน


ที่เหมาะสมน้อย แต่วิธีแก้ปัญหาง่ายกว่าที่เสนอโดย fain182 +1
gertvdijk

6

gnome-screenshotไม่อนุญาตให้ตั้งค่าเริ่มต้นทั่วโลกสำหรับชื่อไฟล์ภาพหน้าจอ แต่คุณสามารถใช้-fตัวเลือกเพื่อระบุชื่อไฟล์ใน commandline

เราสามารถใช้มันเพื่อเขียนสคริปต์ทุบตีเล็ก ๆ ที่จะเข้าแทนที่gnome-screenshotไบนารีดั้งเดิมและจะเรียกใช้งานดั้งเดิมด้วยพารามิเตอร์ชื่อไฟล์ที่ถูกต้อง

โปรดทราบว่าคุณจะต้องมีสิทธิ์ root สำหรับการดำเนินการดังต่อไปนี้เพื่อให้คำนำหน้าแต่ละคำสั่งด้วยหรือเปิดเปลือกรากที่มีsudosudo -i

  1. ย้ายgnome-screenshotไบนารีดั้งเดิมออกไป:

    dpkg-divert --add --rename --divert /usr/bin/gnome-screenshot.real /usr/bin/gnome-screenshot
  2. เปิด/usr/bin/gnome-screenshotในตัวแก้ไข (คุณควรเห็นไฟล์ว่างใหม่):

    editor /usr/bin/gnome-screenshot
  3. วางสองบรรทัดต่อไปนี้ลงในเครื่องมือแก้ไข:

    #!/bin/bash  
    gnome-screenshot.real -f "$HOME/Pictures/Screenshots/$(date +%F_%H-%M-%S).png" $@

    คุณสามารถแทรกเส้นทางใดก็ได้ตามต้องการ-f; เพียงให้แน่ใจว่าได้ใส่ไว้ในเครื่องหมายคำพูดและเพื่อให้$@หลัง ในตัวอย่างนี้หน้าจอจะถูกเก็บไว้กับชื่อไฟล์เช่น
    /home/yourusername/Pictures/Screenshots/2011-07-31_12-13-04.pngดูman dateรายละเอียดเกี่ยวกับdate +%…ไวยากรณ์

  4. บันทึกไฟล์และปิดตัวแก้ไข (เช่นใช้Ctrl+ Xในนาโนหรือเป็น:wqกลุ่ม)

  5. ทำให้สคริปต์ที่สร้างขึ้นใหม่:

    chmod a+x /usr/bin/gnome-screenshot

4

Shutterเป็นอีกแอปพลิเคชั่นสำหรับการจับภาพหน้าจอซึ่งอนุญาตให้คุณปรับแต่งชื่อไฟล์: คุณสามารถติดตั้งได้จาก Ubuntu Software Center


1
Shutter นั้นน่าทึ่งมากและนี่คือ imho นี่เป็นวิธีที่ดีที่สุด: แทนที่จะแก้ไขชื่อไฟล์ที่ไม่ดีอย่าสร้างมันขึ้นมา!
MestreLion

$nb_name_%Y-%m-%d-%H%M%Sยกตัวอย่างเช่นชื่อไฟล์ในชัตเตอร์อาจจะมีตัวแทนต่อไปนี้: คุณสามารถตั้งค่าในการตั้งค่า
Vladimir S.

1

ถ้า:

  1. คุณคุ้นเคยกับเครื่องมือแก้ไขไบนารีเช่นbless(ดูตัวอย่างแพคเกจ ubuntuหรือgithub )
  2. และคุณรู้จักตัวดัดแปลงรูปแบบสตริง C
  3. และคุณทราบความแตกต่างระหว่าง0x0และ"0",
  4. และคุณไม่ต้องวุ่นวายกับไฟล์ไบนารีที่ติดตั้งโดยตัวเลือก Linux ของคุณ

จากนั้นคุณสามารถแก้ไขชื่อไฟล์ที่ใช้งานgnome-screenshotได้

เมื่อทำการแก้ไขแบบไบนารีgnome-screenshotคุณจะพบสตริงรูปแบบที่สอง:

  1. %Y-%m-%d %H-%M-%S ตามด้วย null null,
  2. และScreenshot from %s.%sตามด้วย null null

ในสตริงรูปแบบที่สองที่หนึ่ง%sคือวันที่ที่สอง%sคือนามสกุลไฟล์

จากที่นี่คุณสามารถยกตัวอย่างเช่นการเขียนทับ %Y-%m-%d %H-%M-%Sด้วย%F-%H%M%Sตามด้วยไบต์โมฆะและScreenshot from %s.%sโดยshot %s.%sตามด้วยไบต์โมฆะ: หน้าจอแล้วจะมีชื่อ"shot 2018-05-05_174857.png"เช่น

ปรับให้เข้ากับความต้องการของคุณ

มีข้อ จำกัด สองประการ:

  1. รูปแบบวันที่ใหม่และรูปแบบชื่อไฟล์ใหม่ต้องไม่ยาวกว่ารูปแบบเดิม
  2. การปรับแต่งของคุณจะถูกทำลายหากคุณติดตั้งเวอร์ชันใหม่gnome-screenshotเช่นเมื่ออัปเดตระบบของคุณ

คำเตือน:

  • ทดสอบกับ Ubuntu 16.04 LTS ระยะของคุณอาจแตกต่างกันไป
  • นี่คือแฮ็คไม่ใช่วิธีที่สะอาดในการแก้ไขชื่อเริ่มต้นที่สร้างโดยgnome-screenshot: ทำการสำรองข้อมูลก่อนดำเนินการต่อ
  • โพสต์โดยไม่มีการรับประกันใด ๆ

0

ใน Debian 8.6 KDE →การตั้งค่าระบบ→ทางลัดที่กำหนดเองฉันได้ตั้งค่า Trigger → PrtScn และ Action →

gnome-screenshot -p -f "$(date +%F_%H-%M-%S)_D.png"

และมันใช้งานได้ดี


ฉันสงสัยว่า Debian-version รุ่นใดเมื่อห้าปีที่แล้ว
mook765
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.