Как я могу открыть меню приложений Openbox из панели задач Tint2?

Используя следующие переменные,

text_file="$1"
mail_file="$2"

lines_in_text=$( cat "$text_file" | wc -l )
lines_in_addr=$( cat "$mail_file" | wc -l )

line_num=1

Вы можете написать следующую процедуру:

send_mail() {
    while [[ "$line_num" -le "$lines_in_text" ]]; do
        text_line=$( sed -n "${line_num}p" "$text_file" )
        mail_line=$( sed -n "${line_num}p" "$mail_file" )
        echo "$text_line" | mail "$mail_line"
        line_num=$(( line_num + 1 ))
    done
}

send_mail   

Затем вы можете использовать свой сценарий следующим образом:

./script BOD ADDR

Изменить: Альтернативный способ сделать это - читать каждый из текстовых и адресных файлов в отдельные массивы, при этом каждый индекс содержит строку соответствующего файла, как таковой:

#!/bin/bash

IFS=$'\n' read -d '' -r -a texts < "$1"
IFS=$'\n' read -d '' -r -a mails < "$2"

send_mail_alternate() {
    for (( i = 0; i < "${#texts[@]}"; i++ )); do
        echo "${texts[i]}" | mail "${mails[i]}"
    done
}

send_mail_alternate

Здесь два созданных массива тексты и письма . "$ {# text [@]}" представляет общее количество строк в массиве text , и каждая строка может быть доступна для "$ {text [i]} " или " $ {mails [i]} ", где i начинается с 0, движение вверх, содержащее строку i + 1 указанного файла .

1
18.04.2019, 15:05
1 ответ

Вам не нужно добавлять кнопку как таковую, вы можете просто перенаправить событие мыши с вашей панели прямо в ваш оконный менеджер (в данном случае openbox ), который позволяет вам щелкнуть правой кнопкой мыши -любой пустое место на панели tint2, чтобы открыть меню.

Из руководства по настройке панели tint2 вы хотите прочитать это:

wm_menu = boolean (0 or 1) : Defines if tint2 forwards unhandled mouse events to your window manager. Useful for window managers such as openbox, which display the start menu if you right click on the desktop.

Вам необходимо отредактировать файл конфигурации, перейти к разделу конфигурации панели и добавить следующее:

wm_menu = 1

Сохраните и перезапустите tint2, теперь вы сможете -щелкнуть правой кнопкой мыши любую пустую область панели для вызова меню.

Я не знаю, как отправлять события напрямую в openbox из командной строки.

Альтернативой является настройка openbox для использования привязки клавиш. (Я использую дублирующую клавишу Windows )для отображения меню. Затем вы можете использовать xdotool для нажатия клавиши, как описано в Как я могу нажать клавишу Windows с помощью xdotool

Затем вы можете добавить раздел в файл конфигурации tint2

button = new
button_text = Start
button_font_color = #ababab 100
button_lclick_command = xdotool key super

Затем просто измените строку конфигурации панели, добавив Pв начало, т.е.

panel_items = P:LTSC
1
27.01.2020, 23:41

Теги

Похожие вопросы