ทำไม...
ในคำตอบนี้ฉันตั้งใจจดจ่ออยู่กับการที่คุณพูดถึงนี่เป็นแอปพลิเคชันหลักของคุณในคำถาม
ดูซอร์สโค้ดไดอะล็อกบันทึกเป็นตั้งค่าชื่อไฟล์เริ่มต้นเท่านั้น เนื่องจากไม่มีการกำหนดโฟลเดอร์ไลบรารี GTK3 จะถือว่าโฟลเดอร์ล่าสุดที่ใช้เป็นโฟลเดอร์แรกที่จะแสดงในกล่องโต้ตอบ
แอปพลิเคชัน GTK3 จะต้องตั้งค่าโฟลเดอร์ให้ค้นหาเป็นครั้งแรก
โดยส่วนตัวฉันคิดว่าควรกำหนดโฟลเดอร์เริ่มต้นสำหรับ evince - เช่นนี้คุณควรยื่นเรื่องนี้ใน bugzilla เป็นข้อผิดพลาด / คำขอรายการที่ต้องการ
วิธีการ ...
ต่อไปนี้เป็นวิธีหนึ่งวิธีที่จะมีผลบังคับใช้ Evince ไปเริ่มต้นกับเอกสารโฟลเดอร์มากกว่าก่อนหน้านี้ใช้เมื่อเร็ว ๆ นี้
โดยสรุปแหล่งที่มามีการเปลี่ยนแปลงเพื่อให้ได้รับโฟลเดอร์เอกสารเริ่มต้นและตั้งค่านี้เป็นโฟลเดอร์เริ่มต้นสำหรับกล่องโต้ตอบบันทึกเป็น
ติดตั้งเครื่องมือพัฒนาพื้นฐาน
sudo apt-get install devscripts build-essential fakeroot
รับแหล่งที่มา
cd ~/Downloads
mkdir build
cd build
apt-get source evince
cd evince*
ทำการเปลี่ยนแปลง
เปิด ev-window.c
gedit shell/ev-window.c
คัดลอกและวางข้อมูลต่อไปนี้ลงในไฟล์ที่ตำแหน่งที่แสดงในภาพ
const gchar *folder;
folder = g_get_user_special_dir (G_USER_DIRECTORY_DOCUMENTS);
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (fc),
folder ? folder : g_get_home_dir ());
บันทึกและปิดgedit
ตั้งชื่อแพ็คเกจที่ไม่ซ้ำ
ตกลงเราต้องตั้งชื่อเฉพาะให้กับแพ็คเกจเพื่อป้องกันการอัปเดตที่เก็บไม่ให้เขียนทับแพ็คเกจที่คุณเปลี่ยน
gedit debian / changelog
ตอนนี้ผนวก+yourname
เข้ากับเวอร์ชันบนสุดแล้วบันทึก
กล่าวคือ evince (3.2.1-0ubuntu2+fossfreedom)
สร้างแพ็คเกจ
sudo apt-get build-dep evince
debuild -us -uc
NB สิ่งนี้จะดาวน์โหลด 161Mb ของการอ้างอิง
ไปดื่มกาแฟ ... และอาจเป็นอาหารกลางวัน!
cd ..
sudo dpkg -i evince_3.2*.deb
นอกเหนือจาก - เพื่อไม่ให้มีการอัพเกรดเวอร์ชั่นใหม่ในอนาคตให้ใช้synapticเพื่อปักหมุดเวอร์ชั่นนี้