Як я можу встановити mutt як клієнта пошти за замовчуванням, коли натискаю на "mailto" на веб-сторінці?


11

Я хотів запуститися muttв терміналі, коли натискаю на якийсь 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;

Це реєструє mutt з mailtoобробником. Ви можете підтвердити успішну реєстрацію

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

який повинен вивести mutt.desktop. Тепер ви можете натиснути на "mailto" в хромі, і термінал повинен з'являтися з екземпляром mutt. Не потрібно навіть перезавантажувати робочий стіл або браузер.


1

Вам потрібно написати сценарій, який визначає термінал, який ви хочете muttвідкрити. Потім у Firefox ви можете пов’язати цей скрипт із посиланнями mailto. Наприклад, якщо ви використовуєте термінатор, ви можете створити такий сценарій.

#!/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, я просто не знаю, як отримати міметик, це не файл, я не можу просто запустити "mimetype / path / to / file", щоб його ідентифікувати
Дейзі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.