Telegram свернись, Telegram вернись
Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод
inxi -Fxz
в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
-
Автор темы - Сообщения: 844
- Зарегистрирован: 12 авг 2017, 09:09
- Решено: 13
- Откуда: Ростов-на-Дону
- Благодарил (а): 29 раз
- Поблагодарили: 204 раза
- Контактная информация:
Telegram свернись, Telegram вернись
Linuxmint 21 Cinnamon
В настройках "Параметры системы" -> "Окна" -> "Раскладка кнопок" можно включить режим Gnome, что скроет кнопки "Скрыть" и "Развернуть".
Можно ли каким-то образом запустить отдельное приложение с такой настройкой?
В настройках "Параметры системы" -> "Окна" -> "Раскладка кнопок" можно включить режим Gnome, что скроет кнопки "Скрыть" и "Развернуть".
Можно ли каким-то образом запустить отдельное приложение с такой настройкой?
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD
-
- Сообщения: 10015
- Зарегистрирован: 27 июн 2017, 13:36
- Решено: 128
- Откуда: Нижний Тагил
- Благодарил (а): 776 раз
- Поблагодарили: 1950 раз
- Контактная информация:
Скрыть кнопку свернуть для одного приложения
Вряд ли. Элементы управления окном предоставляет оконный менеджер.
В случае Cinnamon - это muffin, форк mutter из гном.
Обычно эти элементы настраиваются на этапе разработки приложения. И в дальнейшем их доступность - это реакция на внешние условия
В случае Cinnamon - это muffin, форк mutter из гном.
Обычно эти элементы настраиваются на этапе разработки приложения. И в дальнейшем их доступность - это реакция на внешние условия
-
Автор темы - Сообщения: 844
- Зарегистрирован: 12 авг 2017, 09:09
- Решено: 13
- Откуда: Ростов-на-Дону
- Благодарил (а): 29 раз
- Поблагодарили: 204 раза
- Контактная информация:
Скрыть кнопку свернуть для одного приложения
Печально.
Да я всё с Telegram`ом борюсь ))
Да я всё с Telegram`ом борюсь ))
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD
-
- Сообщения: 583
- Зарегистрирован: 08 дек 2018, 01:08
- Решено: 18
- Благодарил (а): 37 раз
- Поблагодарили: 141 раз
Скрыть кнопку свернуть для одного приложения
Люблю линукс! Всё можно сделать, хоть через задницу, но можно)))
Только оно вообще все кнопки сносит. И закрыть не получится, и свернуть. Но проблемы трёх кликов это никак не решает, увы... Да, двойка на конце сносит декорации нафиг, нолик - возвращает как было.
UPD: сколько там всего интересного, в этой команде. Может, и нужная настройка найдётся, если поэкспериментировать...
xprop -name 'Telegram' -format _MOTIF_WM_HINTS 32i -set _MOTIF_WM_HINTS 1
Только оно вообще все кнопки сносит. И закрыть не получится, и свернуть. Но проблемы трёх кликов это никак не решает, увы... Да, двойка на конце сносит декорации нафиг, нолик - возвращает как было.
UPD: сколько там всего интересного, в этой команде. Может, и нужная настройка найдётся, если поэкспериментировать...
-
- Сообщения: 583
- Зарегистрирован: 08 дек 2018, 01:08
- Решено: 18
- Благодарил (а): 37 раз
- Поблагодарили: 141 раз
Скрыть кнопку свернуть для одного приложения
В общем, команда
Только вот как это лучше сделать? Скрипт, который раз в секунду будет чекать выхлоп команды, или есть более правильные варианты? Тут я как-то совсем не советчик...
xprop -name 'Telegram' _NET_WM_STATE
выдает состояние окна телеги. Например, _NET_WM_STATE_HIDDEN если оно свёрнуто или _NET_WM_STATE_DEMANDS_ATTENTION если оно требует внимания (мигает на панели задач вместо того, чтобы нормально нарисоваться на экране). А дальше два путя: нужен какой-то демон, который будет отслеживать состояние окна и активировать его, если оно требует внимания. Или наоборот, закрывать, если оно свернуто. И то, и другое легко делается через wmctrl
. Сама телега никуда из трея не денется: даже набранное, но не отправленное сообщение не пропадет. Только вот как это лучше сделать? Скрипт, который раз в секунду будет чекать выхлоп команды, или есть более правильные варианты? Тут я как-то совсем не советчик...
-
Автор темы - Сообщения: 844
- Зарегистрирован: 12 авг 2017, 09:09
- Решено: 13
- Откуда: Ростов-на-Дону
- Благодарил (а): 29 раз
- Поблагодарили: 204 раза
- Контактная информация:
Скрыть кнопку свернуть для одного приложения
Обратил внимание, что имя окна меняется произвольным образом.
Telegram
Telegram (1)
...
Пока написал такой сценарий:
Telegram
Telegram (1)
...
Пока написал такой сценарий:
Код: Выделить всё
title=`wmctrl -l | egrep -o Telegram.*` # Имя окна Telegram
if [ -n "$title" ] # Если окно найдено
then
echo "title = "$title
status=`xprop -name "$title" _NET_WM_STATE` # Текущее состояние окна
echo "status = "$status
marker1="_NET_WM_STATE(ATOM) = _NET_WM_STATE_HIDDEN, _NET_WM_STATE_DEMANDS_ATTENTION" # Маркер свёрнутого мигающего окна
if [ "$status" == "$marker1" ] # Статус соответствует маркеру
then
wmctrl -a "$title" # Активация окна
fi
else
echo "Окно Telegram не найдено"
fi
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD
-
- Сообщения: 10015
- Зарегистрирован: 27 июн 2017, 13:36
- Решено: 128
- Откуда: Нижний Тагил
- Благодарил (а): 776 раз
- Поблагодарили: 1950 раз
- Контактная информация:
Скрыть кнопку свернуть для одного приложения
demonlibra, а смысл делать вывод, если ты этот скрипт по хоткею вызываешь или он в фоне выполняется по таймеру?
-
Автор темы - Сообщения: 844
- Зарегистрирован: 12 авг 2017, 09:09
- Решено: 13
- Откуда: Ростов-на-Дону
- Благодарил (а): 29 раз
- Поблагодарили: 204 раза
- Контактная информация:
Скрыть кнопку свернуть для одного приложения
Думаю над этим.
Не хочется делать так.
Может быть есть какой-то более умный способ инициировать запуск сценария, чем такой? Хотя бы при любом нажатии в области трея.
Не хочется делать так.
Код: Выделить всё
./Telegram &
for ((;;))
do
echo "Бесконечный цикл"
...
sleep 1
done
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD
-
- Сообщения: 583
- Зарегистрирован: 08 дек 2018, 01:08
- Решено: 18
- Благодарил (а): 37 раз
- Поблагодарили: 141 раз
Скрыть кнопку свернуть для одного приложения
Да, вот тоже завис вчера на бесконечном цикле. Точнее, на нежелании к нему прибегать.
Думаю, мож в багтрекер написать? Или mint/muffin, или в телегу, или в оба.
Если в минтовский - то пусть вернут отключаемую опцию "Запретить похищать фокус". Так и надо, чтобы похищали. Вообще не жалко))
Если в телегу - то добавить проверку на DE, и если это Циннамон, то пнуть лишний раз окно наверх. Думаю, это можно и кодом сделать, без wmctrl и лишних зависимостей.
"_NET_WM_STATE(ATOM) = _NET_WM_STATE_HIDDEN, _NET_WM_STATE_DEMANDS_ATTENTION"
- вот тут, если окно не свёрнуто, может быть просто один статус "demands attention". При этом окно мигает и не прорисовывается.Думаю, мож в багтрекер написать? Или mint/muffin, или в телегу, или в оба.
Если в минтовский - то пусть вернут отключаемую опцию "Запретить похищать фокус". Так и надо, чтобы похищали. Вообще не жалко))
Если в телегу - то добавить проверку на DE, и если это Циннамон, то пнуть лишний раз окно наверх. Думаю, это можно и кодом сделать, без wmctrl и лишних зависимостей.
-
- Сообщения: 583
- Зарегистрирован: 08 дек 2018, 01:08
- Решено: 18
- Благодарил (а): 37 раз
- Поблагодарили: 141 раз
Скрыть кнопку свернуть для одного приложения
demonlibra, спасибо, всё фунциклирует!
С
Код: Выделить всё
#!/bin/bash
while true
do
title=`wmctrl -l | egrep -o Telegram.*`
if [ -n "$title" ]; then
status=`xprop -name "$title" _NET_WM_STATE`
if [[ $status == *"DEMANDS_ATTENTION"* ]]; then
wmctrl -R "$title"
fi
fi
sleep 1
done
sleep 0.3
жрет до 0,1% CPU, с секундной задержкой почти незаметен.-
Автор темы - Сообщения: 844
- Зарегистрирован: 12 авг 2017, 09:09
- Решено: 13
- Откуда: Ростов-на-Дону
- Благодарил (а): 29 раз
- Поблагодарили: 204 раза
- Контактная информация:
Скрыть кнопку свернуть для одного приложения
Я за день вылови пару моментов, когда этот сценарий не работает.
Надо задавать условия:
но при этом окно Telegram вываливается на передний план при получении уведомлений.
В общем костыль заставляет хромать другой ногой ))
Надо задавать условия:
Код: Выделить всё
marker1="_NET_WM_STATE(ATOM) = _NET_WM_STATE_HIDDEN, _NET_WM_STATE_DEMANDS_ATTENTION"
marker2="_NET_WM_STATE(ATOM) = _NET_WM_STATE_DEMANDS_ATTENTION"
if [ "$status" == "$marker1" ] || [ "$status" == "$marker2" ] # Статус соответствует маркеру
then
wmctrl -a "$title" # Активация окна
fi
В общем костыль заставляет хромать другой ногой ))
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD
-
- Сообщения: 583
- Зарегистрирован: 08 дек 2018, 01:08
- Решено: 18
- Благодарил (а): 37 раз
- Поблагодарили: 141 раз
Скрыть кнопку свернуть для одного приложения
А если убрать галку "Настройки > Уведомления и звуки > Подсветка окна"? У меня вроде работает.demonlibra писал(а): ↑11 авг 2022, 17:12но при этом окно Telegram вываливается на передний план при получении уведомлений.
Варик скрипта с однократным получением ID окошка вместо поиска раз в секунду (я заметил, что он даже после перезапуска телеги не меняется, только после выхода из сессии).
Код: Выделить всё
#!/bin/bash
while true
do
if [ -z $window_id ]; then
window_id=`wmctrl -l | grep -i telegram | awk '{print $1}'`
fi
status=`xprop -id "$window_id" _NET_WM_STATE`
if [[ $status == *"DEMANDS_ATTENTION"* ]]; then
wmctrl -i -R "$window_id"
fi
sleep 1
done
-
Автор темы - Сообщения: 844
- Зарегистрирован: 12 авг 2017, 09:09
- Решено: 13
- Откуда: Ростов-на-Дону
- Благодарил (а): 29 раз
- Поблагодарили: 204 раза
- Контактная информация:
Скрыть кнопку свернуть для одного приложения
До меня долго доходило, что название меняется так как содержит количество непрочитанных сообщений.
Небольшое условие к "бесконечному" циклу, чтобы сценарий завершился, если телегу закрыли
Небольшое условие к "бесконечному" циклу, чтобы сценарий завершился, если телегу закрыли
Код: Выделить всё
./Telegram &
sleep 5
while [[ -n `pgrep Telegram` ]]
...
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD
-
Автор темы - Сообщения: 844
- Зарегистрирован: 12 авг 2017, 09:09
- Решено: 13
- Откуда: Ростов-на-Дону
- Благодарил (а): 29 раз
- Поблагодарили: 204 раза
- Контактная информация:
Скрыть кнопку свернуть для одного приложения
Почему-то если запустить сценарий в терминале, то всё прекрасно работает.
Но стоит это сделать в фоне, то эффект нулевой.
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD
-
- Сообщения: 583
- Зарегистрирован: 08 дек 2018, 01:08
- Решено: 18
- Благодарил (а): 37 раз
- Поблагодарили: 141 раз
Скрыть кнопку свернуть для одного приложения
Странно... у меня и в фоне работает. Запускал просто из nemo. А процесс висит в системном мониторе, не пропадает? Там ещё sleep у него должен быть, если с зависимостями смотреть. Как вариант - можно echo в лог вывести, посмотреть, что там в переменных.demonlibra писал(а): ↑11 авг 2022, 20:46Почему-то если запустить сценарий в терминале, то всё прекрасно работает.
Но стоит это сделать в фоне, то эффект нулевой.
Телега, если что, из flatpak-а. Скрипт просто в домашней папке валяется.
У меня только
pgrep telegram
PID выдаёт. Если с большой буквы написать - то пустое значение.
Последний раз редактировалось пользователем 1 Ара Магеддон; всего редактировалось раз: 11
-
Автор темы - Сообщения: 844
- Зарегистрирован: 12 авг 2017, 09:09
- Решено: 13
- Откуда: Ростов-на-Дону
- Благодарил (а): 29 раз
- Поблагодарили: 204 раза
- Контактная информация:
Скрыть кнопку свернуть для одного приложения
Кажется разобрался. Задал принудительно интерпритатор bash добавив в начало сценария строку
Для запуска создал пункт в меню
/home/demonlibra/.local/share/applications/Telegram_fix.desktop
Код: Выделить всё
#!/bin/bash
/home/demonlibra/.local/share/applications/Telegram_fix.desktop
Код: Выделить всё
[Desktop Entry]
Name=Telegram fix
Comment=Desktop version of Telegram messaging app
Exec=/home/demonlibra/.scripts/telegram.sh
Icon=telegram
Terminal=false
StartupWMClass=TelegramDesktop
Type=Application
Categories=Chat;Network;InstantMessaging;Qt;
MimeType=x-scheme-handler/tg;
Keywords=tg;chat;im;messaging;messenger;sms;tdesktop;
SingleMainWindow=true
X-GNOME-UsesNotifications=true
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD
-
- Сообщения: 583
- Зарегистрирован: 08 дек 2018, 01:08
- Решено: 18
- Благодарил (а): 37 раз
- Поблагодарили: 141 раз
Скрыть кнопку свернуть для одного приложения
Движок сайта её коварно маскирует бледно-серым цветом почему-то )))demonlibra писал(а): ↑11 авг 2022, 21:26Задал принудительно интерпритатор bash добавив в начало сценария строку
Код: Выделить всё
#!/bin/bash
-
- Сообщения: 3874
- Зарегистрирован: 14 фев 2018, 00:51
- Решено: 28
- Откуда: Краснодар
- Благодарил (а): 1682 раза
- Поблагодарили: 1206 раз
- Контактная информация:
Telegram свернись, Telegram вернись
Ара Магеддон, потому что # это коммент... А #! признак для интерпретатора скрипта, но от этого для синтаксиса он не перестаёт быть комментарием
-
- Сообщения: 4469
- Зарегистрирован: 21 июн 2017, 18:09
- Решено: 95
- Благодарил (а): 51 раз
- Поблагодарили: 1966 раз
- Контактная информация:
Telegram свернись, Telegram вернись
Вот извращенцы. Вам надо для цикла убедится, что программа запущена? Дык это можно сделать гораздо проще:
while pidof telegram-desktop
И все. Вместо telegram-desktop - подставить имя исполняемого файла программы.
Как работает:
1. while проверяет вывод errorlevel следующей за ним программы. Если 0 - выполняет цикл (так же работает if, кстати)
2. pidof - выдает pid(ы) запущенной(ых) программ(ы) на консоль, и возвращает 0 в качестве errorlevel если нашел хоть одну работающую копию. И 1 если не нашел.
P.S. test, [ и [[ - это программы. Которые тоже выдают 0 в errorlevel если описанное в их параметрах условие выполнено.
-
Автор темы - Сообщения: 844
- Зарегистрирован: 12 авг 2017, 09:09
- Решено: 13
- Откуда: Ростов-на-Дону
- Благодарил (а): 29 раз
- Поблагодарили: 204 раза
- Контактная информация:
Telegram свернись, Telegram вернись
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD
Кто сейчас на конференции
Сейчас этот форум просматривают: KSG972 и 7 гостей