ฉันจัดการเพื่อเปลี่ยนเครื่องมือค้นหาเริ่มต้นจาก Bing เป็น DuckDuckGo ใน Thunderbird 52.4.0 ด้วยวิธีแก้ปัญหาที่ซับซ้อนมาก ฉันไม่ชอบค่าที่ตั้งไว้ล่วงหน้าของธันเดอร์เบิร์ดดังนั้นฉันจึงเลือก DuckDuckGo เพราะถึงแม้ว่าฉันไม่เคยต้องการค้นหาจากธันเดอร์เบิร์ดถ้าฉันค้นหาโดยบังเอิญฉันก็ควรใช้เสิร์ชเอ็นจิ้นที่สัญญาว่าจะไม่ติดตามฉัน
สำหรับสิ่งนี้คุณจะต้องใช้อินสแตนซ์ของ Firefox ด้วยเครื่องมือค้นหา DuckDuckGo (ฉันใช้ Firefox 58.0.1) ฉันจะใช้[TB profile]
เพื่ออ้างถึงไดเรกทอรีโปรไฟล์ผู้ใช้ Thunderbird ของคุณ[FF profile]
เพื่ออ้างถึงไดเรกทอรีโปรไฟล์ผู้ใช้ Firefox ของคุณและ[FF app]
เพื่ออ้างถึงโฟลเดอร์แอปพลิเคชัน Firefox ของคุณ
ก่อนอื่นเราต้องการค้นหาddg.xml
ไฟล์ที่เราจะใช้สำหรับตัวเลือกการค้นหาของธันเดอร์เบิร์ด หากคุณติดตั้งปลั๊กอินนี้ด้วยตัวเองคุณอาจพบมันใน[FF profile]/searchplugins/
ไดเรกทอรี มิฉะนั้นคุณสามารถค้นหาได้จากภายในที่[FF app]/browser/omni.ja
เก็บถาวร หากต้องการค้นหาให้เปิดเครื่องรูดomni.ja
ไฟล์เก็บถาวรไปยังตำแหน่งชั่วคราวunzip omni.ja
(โดยใช้ยูทิลิตี Info-ZIP; 7-Zip และเครื่องมืออื่น ๆ ไม่สนับสนุนวิธีการ ZIP ที่ Firefox ใช้) จากนั้นในตำแหน่งชั่วคราวให้ค้นหาddg.xml
ไฟล์ ( find -iname ddg.xml
) หรืออาจ./chrome/en-US/locale/browser/searchplugins/ddg.xml
ขึ้นอยู่กับที่ตั้งของคุณ เมื่อคุณพบddg.xml
แล้วให้คัดลอกไปยัง[TB profile]/searchplugins/
ไดเรกทอรีของคุณ
จากนั้นเราต้องการใช้การตั้งค่าการค้นหาของ Firefox แต่ปรับเปลี่ยนเล็กน้อย ทั้ง Firefox และ Thunderbird ตอนนี้บีบอัดการตั้งค่าเพื่อประสิทธิภาพ แต่สิ่งนี้ทำให้การแยกและแก้ไขการตั้งค่าเหล่านี้ยากขึ้น หากต้องการเปิดไฟล์การตั้งค่าการบีบอัด Mozilla คุณสามารถใช้รหัสต่อไปนี้ในคอนโซลเบราว์เซอร์ ( Ctrl+Shift+J
สำหรับฉัน):
var { classes: Cc, interfaces: Ci, utils: Cu} = Components;
function decompressFile(oFilePath, nFilePath) {
Cu.import("resource://gre/modules/Task.jsm");
Cu.import("resource://gre/modules/osfile.jsm");
return Task.spawn(function*() {
var jsonString = yield OS.File.read(oFilePath, {
compression: "lz4"
});
yield OS.File.writeAtomic(nFilePath, jsonString);
})
}
// Set up file chooser
var fp = Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker);
var fu = Cu.import("resource://gre/modules/FileUtils.jsm").FileUtils
fp.init(window, "Open File", Ci.nsIFilePicker.modeOpen);
fp.appendFilter("Bookmarks/Session (.jsonlz4)", "*.jsonlz4");
fp.appendFilter("Search Engines (.mozlz4)", "*.mozlz4");
fp.appendFilter("Add-ons Files (.lz4)", "*.lz4");
// Call file chooser
fp.open((aResult) => {
if (aResult == Ci.nsIFilePicker.returnOK) {
if (fp.file.exists() && fp.file.isFile() && fp.file.isReadable()) {
var oldfile = fp.file.path;
var newfile = oldfile + ".json"; // Construct output file name
try {
decompressFile(oldfile, newfile);
console.log("Saved as: \"" + newfile + "\"");
if (confirm("Open JSON file in a Firefox tab?")) {
var uri = "file:///" + newfile.replace(/\\/g, "/");
window.open(uri, "_blank");
}
} catch (err) {
console.log(err);
}
}
}
});
ด้วยรหัสข้างต้นคุณต้องการเปิดไฟล์และมันจะสร้างไฟล์[FF profile]/search.json.mozlz4
search.json.mozlz4.json
แก้ไขไฟล์ JSON นี้และสมมติว่าคุณมีเนื้อหาที่พิมพ์ออกมาสวยคุณต้องการแก้ไขบรรทัดสำหรับ_loadPath
ตัวแปรของ DuckDuckGo ซึ่งจะมีลักษณะดังนี้:
"_loadPath":"jar:[app]/omni.ja!browser/ddg.xml",
คุณต้องการเปลี่ยนตัวแปรนี้ให้ชี้ไปที่ตำแหน่งภายในโปรไฟล์ธันเดอร์เบิร์ดที่คุณคัดลอกไฟล์ปลั๊กอิน (และในกรณีนี้ให้ปล่อย[profile]
เป็น[profile]
Thunderbird จะตีความว่าเป็น[TB profile]
โฟลเดอร์ของคุณ):
"_loadPath":"[profile]/searchplugins/ddg.xml",
ณ [TB profile]/search.json
จุดนี้ให้แน่ใจว่าคุณได้เดินออกมาจากอินสแตนซ์ธันเดอร์เบิร์ดและคัดลอกไฟล์นี้ไป ลบ[TB profile]/search.json.mozlz4
ไฟล์ที่มีอยู่ของคุณแล้วเริ่ม Thunderbird อีกครั้ง ธันเดอร์เบิร์ดควรบีบอัดไฟล์ให้คุณและตอนนี้แสดง DuckDuckGo เป็นตัวเลือกที่เลือกได้ในOptions > General > Default Search Engine
การตั้งค่าของคุณ
โดยสรุปให้ทำตามขั้นตอนต่อไปนี้:
- คัดลอก
ddg.xml
ไฟล์ของ Firefox ไปยังโปรไฟล์ธันเดอร์เบิร์ดของคุณ
- ขยายและแก้ไข
search.json.mozlz4
ไฟล์การตั้งค่าของคุณจาก Firefox เพื่อกำหนดเป้าหมายปลั๊กอินค้นหาในธันเดอร์เบิร์ดและใช้การตั้งค่าใหม่เหล่านี้ในโปรไฟล์ธันเดอร์เบิร์ดของคุณ