ฉันจะตั้งค่า mutt เป็นไคลเอนต์เมลเริ่มต้นได้อย่างไรเมื่อฉันคลิกที่ 'mailto' ในหน้าเว็บ


11

ฉันต้องการที่จะเริ่มต้นmuttใน terminal เมื่อฉันคลิกที่mailto:แท็กในหน้าเว็บ เป็นไปได้ไหม ปัจจุบัน Firefox เริ่มต้นซึ่งฉันไม่ชอบจริงๆ มันโหลดช้าและไม่จำเป็น

คำตอบ:


11

ก่อนอื่นคุณต้องตรวจสอบให้แน่ใจว่ามี.desktopไฟล์ที่ต้องการโดยข้อกำหนด XDG สำหรับโปรแกรม GUI โอกาสดีที่มี.desktopไฟล์ที่เหมาะสมอยู่แล้วสำหรับแอปพลิเคชันเทอร์มินัลโดยทั่วไปคุณต้องสร้างไฟล์ของคุณเอง ตรวจสอบไดเรกทอรี/usr/share/applicationsสำหรับไฟล์ที่มีอยู่ อาจมีmutt.desktopไฟล์อยู่แล้ว หากไม่มีให้สร้างขึ้นใหม่

จากนั้นแก้ไขไฟล์~/.local/share/applications/mimeapps.listและเพิ่มบรรทัดต่อไปนี้

[Default Applications]
x-scheme-handler/mailto=mutt.desktop;

การลงทะเบียนนี้เป็นการปิดด้วยmailtoตัวจัดการ คุณสามารถยืนยันการลงทะเบียนสำเร็จด้วย

xdg-mime query default 'x-scheme-handler/mailto'

mutt.desktopซึ่งควรเอาท์พุท ตอนนี้คุณสามารถคลิกที่“ mailto” ในโครเมียมและเทอร์มินัลควรปรากฏขึ้นพร้อมกับอินสแตนซ์ mutt ไม่จำเป็นต้องรีสตาร์ทเซสชันเดสก์ท็อปหรือเบราว์เซอร์


1

คุณต้องเขียนสคริปต์ที่ระบุเทอร์มินัลที่คุณต้องการmuttเปิดจากนั้นใน Firefox คุณสามารถเชื่อมโยงสคริปต์นี้กับลิงก์ mailto ตัวอย่างเช่นหากคุณใช้งาน terminator คุณสามารถสร้างสคริปต์ต่อไปนี้

#!/usr/bin/env bash
terminator -x "mutt '$@'"

ในกรณีของฉันฉันมีเทอร์มินอลแบบเลื่อนลงแบบถาวรดังนั้นฉันต้องการมันในแท็บใหม่ ฉันต้องการจานสี 256 สีดังนั้นฉันจึงใช้

#!/usr/bin/env bash
terminator --new-tab -x "TERM=xterm-256color; mutt '$@'"

FWIW นี่เป็นสคริปต์แบบเต็มของฉันซึ่งยังซ่อนตัวปิดเทอร์มินัล (หากซ่อนไว้) ใช้ปุ่มลัดCtrl+ Spaceและนำมาไว้ด้านหน้า

#!/usr/bin/env bash

terminator --new-tab -x "TERM=xterm-256color; mutt '$@'"

# If necessary, unhide and focus terminator window.
windowlist=$(xprop -root | sed -rn 's/_NET_CLIENT_LIST_STACKING\(WINDOW\): window id # (.*)/\1/p' | tr -d ',')
terminator_visible=false
for i in $windowlist; do
  [[ $(xprop -id $i | grep WM_CLASS\(STRING\)) == 'WM_CLASS(STRING) = "terminator", "Terminator"' ]] && terminator_visible=true && term_id=$i
done

if [[ $terminator_visible == false ]]; then # it's hidden
  xdotool key --clearmodifiers ctrl+space
elif [[ $(xprop -id $(xdotool getactivewindow) | grep WM_CLASS\(STRING\)) != 'WM_CLASS(STRING) = "terminator", "Terminator"' ]]; then # it's visible, but not active
  xdotool windowactivate $term_id 2> /dev/null # Gives error; not sure why. XGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)
fi

-1

คุณใช้สภาพแวดล้อมเดสก์ทอปใด คุณต้องตรวจสอบว่าการตั้งค่าตัวจัดการประเภท MIME เป็นวิธีการตั้งค่าตัวจัดการเฉพาะสำหรับสิ่งเหล่านี้


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