Посмотреть полный текст длинного пузыря уведомления [dубликат]

Создайте новую папку /new_home. Используйте rsync для переноса всех данных из / home в /new_home. (См. Инструкции в wiki) Отредактируйте fstab, чтобы удалить mount для /home/ Unmount /home/ Удалить /home (Это удаляет только пустую папку) Переименуйте new_home в home

Возможно, вам понадобится чтобы изменить размер разделов, чтобы освободить место для вашего нового домашнего каталога, используя gparted.

Ссылка: Переезд домой в Ubuntu Wiki

7
задан 21 July 2016 в 10:40

4 ответа

Я опубликовал это некоторое время назад (теперь) удаленный Q / A. Возможно, это вам полезно.

Патч, позволяющий (очень) длинные сообщения

Ниже приведенный патч позволит вам получать уведомления как долго как это требуется на рабочем столе:

В случае (очень) длинных уведомлений вместо этого:

вы увидите это:

Продолжительность сообщения автоматически устанавливается на длину текста.

Что он делает

Уведомления , отправить по notify-osd (notify-send), ограничены ок. 120 символов. Решение «прослушивает» отправленные сообщения, используя dbus-monitor. Если сообщение превышает 120 символов, оно берет на себя сообщения и использует «свое» окно сообщений для отображения уведомления, как показано выше.

Сценарии

Настройка существует две секции; de "listen-", который перехватывает уведомления: #!/bin/bash currdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" dbus-monitor "interface='org.freedesktop.Notifications'" |\ grep --line-buffered "string" |\ grep --line-buffered -e method -e ":" -e '""' -e urgency -e notify -v |\ grep --line-buffered '.*(?=string)|(?<=string).*' -oPi |\ grep --line-buffered -v '^\s*$' |\ xargs -I '{}' $currdir/message {} Скопируйте сценарий в пустой файл и сохраните его как catch_notifs.sh Сценарий, создающий замещающие уведомления: #!/usr/bin/env python3 import subprocess import os import gi gi.require_version('Gtk', '3.0') from gi.repository import GObject, Gtk, Gdk, Pango from threading import Thread import time import sys text = sys.argv[1] length = len(text) showtime = length/20 def get_screen(): scr = [s.split("x") for s in subprocess.check_output([ "xrandr"]).decode("utf-8").split() if "+0+0" in s][0] return int(scr[0]) -450 class Splash(Gtk.Window): def __init__(self): Gtk.Window.__init__(self, title="splashtitle") maingrid = Gtk.Grid() self.add(maingrid) maingrid.set_border_width(20) label = Gtk.Label(text) label.set_line_wrap(True) label.set_max_width_chars(45) label.modify_font(Pango.FontDescription('Ubuntu 11')) maingrid.attach(label, 0, 0, 1, 1) self.stop = Thread(target=self.close_window) self.stop.start() def close_window(self): time.sleep(showtime) Gtk.main_quit() def splashwindow(): window = Splash() window.set_decorated(False) window.set_resizable(False) window.override_background_color(Gtk.StateType.NORMAL, Gdk.RGBA(0,0,0,1)) window.modify_fg(Gtk.StateFlags.NORMAL, Gdk.color_parse("white")) # window.set_opacity(0.8) window.move(get_screen(), 80) window.set_keep_above(True) window.show_all() window.set_default_size(200, 500) GObject.threads_init() Gtk.main() if len(text) > 120: subprocess.Popen(["pkill", "notify-osd"]) splashwindow() Скопируйте сценарий выше в пустой файл, сохраните его как (точно!) message (без расширения) и сделайте его исполняемым. Храните оба сценария в одном и том же каталоге. Протестируйте сценарий по команде (из окна терминала): /bin/bash /path/to/catch_notifs.sh (продолжайте ее выполнение). Вы можете протестировать установку, запустив (в другом терминале): notify-send '<long_text>' Если все работает нормально, добавьте его в приложения для запуска: Dash> Приложения для запуска> Добавить. Добавьте команду: /bin/bash /path/to/catch_notifs.sh

И она должна работать:)

9
ответ дан 18 July 2018 в 10:34

Я опубликовал это некоторое время назад (теперь) удаленный Q / A. Возможно, это вам полезно.

Патч, позволяющий (очень) длинные сообщения

Ниже приведенный патч позволит вам получать уведомления как долго как это требуется на рабочем столе:

В случае (очень) длинных уведомлений вместо этого:

вы увидите это:

Продолжительность сообщения автоматически устанавливается на длину текста.

Что он делает

Уведомления , отправить по notify-osd (notify-send), ограничены ок. 120 символов. Решение «прослушивает» отправленные сообщения, используя dbus-monitor. Если сообщение превышает 120 символов, оно берет на себя сообщения и использует «свое» окно сообщений для отображения уведомления, как показано выше.

Сценарии

Настройка существует две секции; de "listen-", который перехватывает уведомления: #!/bin/bash currdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" dbus-monitor "interface='org.freedesktop.Notifications'" |\ grep --line-buffered "string" |\ grep --line-buffered -e method -e ":" -e '""' -e urgency -e notify -v |\ grep --line-buffered '.*(?=string)|(?<=string).*' -oPi |\ grep --line-buffered -v '^\s*$' |\ xargs -I '{}' $currdir/message {} Скопируйте сценарий в пустой файл и сохраните его как catch_notifs.sh Сценарий, создающий замещающие уведомления: #!/usr/bin/env python3 import subprocess import os import gi gi.require_version('Gtk', '3.0') from gi.repository import GObject, Gtk, Gdk, Pango from threading import Thread import time import sys text = sys.argv[1] length = len(text) showtime = length/20 def get_screen(): scr = [s.split("x") for s in subprocess.check_output([ "xrandr"]).decode("utf-8").split() if "+0+0" in s][0] return int(scr[0]) -450 class Splash(Gtk.Window): def __init__(self): Gtk.Window.__init__(self, title="splashtitle") maingrid = Gtk.Grid() self.add(maingrid) maingrid.set_border_width(20) label = Gtk.Label(text) label.set_line_wrap(True) label.set_max_width_chars(45) label.modify_font(Pango.FontDescription('Ubuntu 11')) maingrid.attach(label, 0, 0, 1, 1) self.stop = Thread(target=self.close_window) self.stop.start() def close_window(self): time.sleep(showtime) Gtk.main_quit() def splashwindow(): window = Splash() window.set_decorated(False) window.set_resizable(False) window.override_background_color(Gtk.StateType.NORMAL, Gdk.RGBA(0,0,0,1)) window.modify_fg(Gtk.StateFlags.NORMAL, Gdk.color_parse("white")) # window.set_opacity(0.8) window.move(get_screen(), 80) window.set_keep_above(True) window.show_all() window.set_default_size(200, 500) GObject.threads_init() Gtk.main() if len(text) > 120: subprocess.Popen(["pkill", "notify-osd"]) splashwindow() Скопируйте сценарий выше в пустой файл, сохраните его как (точно!) message (без расширения) и сделайте его исполняемым. Храните оба сценария в одном и том же каталоге. Протестируйте сценарий по команде (из окна терминала): /bin/bash /path/to/catch_notifs.sh (продолжайте ее выполнение). Вы можете протестировать установку, запустив (в другом терминале): notify-send '<long_text>' Если все работает нормально, добавьте его в приложения для запуска: Dash> Приложения для запуска> Добавить. Добавьте команду: /bin/bash /path/to/catch_notifs.sh

И она должна работать:)

9
ответ дан 24 July 2018 в 19:36

Как я уже отмечал в комментариях, notify-osd не очень подходит для расширенных сообщений, и следует предпочесть zenity вместо этого.

Простым примером использования будет разворачивание диалога zenity через subprocess.call([COMMAND,OPTIONS])

import subprocess text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." command=['zenity', '--info', '--text="' +text + '"', '--width=250', '--height=300' ] subprocess.call(command)

Очень простой пример. С чем-то, что требует проверки статуса выхода, например вопросов, вы можете захотеть использовать структуру try - except - else

import subprocess text='Do you want to use Zenity?' command=['zenity', '--question', '--text="' +text + '"', '--width=250', '--height=300' ] try: stdout = subprocess.check_call(command) except subprocess.CalledProcessError: pass # if return sttus is non-zero, do something here else: # if exit status was 0 , we do something here print "Yes, I want to use Zenity too"

. Если вы хотите что-то более продвинутое, вероятно, подумайте об изучении одного из графических наборов инструментов, таких как PyQt или Gtk.

4
ответ дан 18 July 2018 в 10:34

Как я уже отмечал в комментариях, notify-osd не очень подходит для расширенных сообщений, и следует предпочесть zenity вместо этого.

Простым примером использования будет разворачивание диалога zenity через subprocess.call([COMMAND,OPTIONS])

import subprocess text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." command=['zenity', '--info', '--text="' +text + '"', '--width=250', '--height=300' ] subprocess.call(command)

Очень простой пример. С чем-то, что требует проверки статуса выхода, например вопросов, вы можете захотеть использовать структуру try - except - else

import subprocess text='Do you want to use Zenity?' command=['zenity', '--question', '--text="' +text + '"', '--width=250', '--height=300' ] try: stdout = subprocess.check_call(command) except subprocess.CalledProcessError: pass # if return sttus is non-zero, do something here else: # if exit status was 0 , we do something here print "Yes, I want to use Zenity too"

. Если вы хотите что-то более продвинутое, вероятно, подумайте об изучении одного из графических наборов инструментов, таких как PyQt или Gtk.

4
ответ дан 24 July 2018 в 19:36

Другие вопросы по тегам:

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