IT News: Digital Camera, OS, Laptop, Smartphone, Smart TV, Sound...

The Author's Project by Valeri N.Kravchuk
Сайт проверен Dr.Web
Меню сайта
  • Главная страница
  • Информация о сайте
  • Дневник
  • Каталог файлов
  • Обратная связь
  • Каталог сайтов
  • FAQ
  • Доска объявлений
  • Форум
  • Фотоальбом
  • Категории раздела
    Автомобильные гаджеты, ремонт... [220]
    Безопасность IT [484]
    Блоки питания, Power Banks, зарядки... [490]
    Видеорегистраторы [220]
    Гаджеты для спорта и здоровья... [190]
    Гаджеты, аксессуары... [625]
    Измерительная техника, инструменты [449]
    Накопители данных [226]
    Нетбуки, Ноутбуки, Ультрабуки [679]
    Мультиварки, блендеры и не только... [158]
    Планшеты [758]
    Радар-детекторы [26]
    Роботы-пылесосы [37]
    Своими руками [356]
    Сети, сетевые технологии, оборудование... [269]
    Смартфоны [4966]
    Фотокамеры, объективы, искусство фотографии.. [543]
    Умный дом [47]
    Электронные книги [96]
    CB, LPD, PMR- связь... [169]
    DECT, IP-телефоны [18]
    Drones, boats, cars... [108]
    electric cars [35]
    GPS-навигаторы, трекеры... [51]
    Linux и не только [4380]
    mini computers и не только... [409]
    News IT, Это интересно, ликбез... [1113]
    Smart TV, UltraHD, приставки, проекторы... [414]
    Smart Watch [263]
    Sound: наушники, плееры, усилители... [616]
    Windows 10... [298]
    Windows 11 [28]
    Погода

  • Метеорадар БРЕСТ
  • Погода в Бресте от www.yr.no

    Яндекс.Погода БРЕСТ

  • Интересные ссылки

    COMPIZOMANIA

    Наш опрос
    Оцените мой сайт
    Всего ответов: 1339
    Статистика
    Анализ веб сайтов

    Яндекс.Метрика

    Рейтинг@Mail.ru Яндекс цитирования

    Russian America Top. Рейтинг ресурсов Русской Америки.

    eXTReMe Tracker

    Правильный CSS!


    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Locations of visitors to this page
    Форма входа
    Главная » 2014 » Февраль » 16 » Яндекс.Диск в Linux. Пункт в меню KDE\Dolphin. Отображение состояния в conky
    07:49
    Яндекс.Диск в Linux. Пункт в меню KDE\Dolphin. Отображение состояния в conky

    Яндекс.Диск в Linux. Пункт в меню KDE\Dolphin. Отображение состояния в conky

    Недавно начал пользоваться консольным клиентом Яндекс.Диск в Linux.
    Для удобства использования пришлось добавить в контекстное меню Dolphin пункт публикации файла/папки, а в conky информацию о текущем состоянии Яндекс.Диска.




    Сделать и то и другое довольно просто.

    Добавим пункт в меню Dolphin.
    Для этого создадим файл *.desktop (мой файл называется YDisk.desktop) со следующим содержанием:
    [Desktop Entry]
    Type=Service
    ServiceTypes=all/allfiles
    MimeType=all/all;
    Actions=ToYandex;
    X-KDE-Priority=TopLevel
    X-KDE-Icon=/usr/share/pixmaps/YD_logo.png
    X-KDE-ServiceTypes=KonqPopupMenu/Plugin
    
    [Desktop Action ToYandex]
    Name=Опубликовать
    Icon=/usr/share/pixmaps/YD_logo.png
    Exec=/usr/bin/YD_public %F
    

    Теперь поместим его в каталог /usr/share/kde4/services
    sudo cp YDisk.desktop /usr/share/kde4/services
    


    Как видно из содержания файла, в качестве иконки я использую png картинку размещённую в папке /usr/share/pixmaps/
    а при нажатии на пункт выполняется команда /usr/bin/YD_public %F, где %F это имя файла.

    На случай если кому-то понадобится


    У нас появился пункт в меню.

    Создадим файл для обработки этого события.
    Для этого напишем файл YD_public следующего содержаниея.

    #!/usr/bin/bash
    
    # Выполняем команду yandex-disk publish объединяя поток error с stdout
    # в переменной var будет содержаться Ссылка на опубликованный файл либо Ошибка
    var=`yandex-disk publish $1 2>&1`
    # Запускаем оповещение о том, что файл опубликован
    notify-send -i /usr/share/pixmaps/YD_logo.png "Яндекс.Диск" "$var"
    # С помощью dbus копируем ссылку на файл в клипбоард
    qdbus org.kde.klipper /klipper org.kde.klipper.klipper.setClipboardContents $var
    

    Копируем наш файл в /usr/bin и делаем файл исполняемым.
    cp YD_public /usr/bin
    chmod +rx /usr/bin/YD_public
    

    Результат работы notify-send


    Ссылка в клипбоард тоже успешно скопирована


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

    Теперь разберёмся с conky (Я специально выделил белым всё что связано с Yandex.Disk)
    Тут у нас типичный conky с типичным .conkyrc



    Если выполнить в консоли yandex-disk status, то утилита в ответ выдаст что-то вроде
    [rain@rainhost kde]$ yandex-disk status
    Статус ядра синхронизации: ожидание команды
    Путь к папке Яндекс.Диска: '/mnt/raid/YDisk'
     Всего: 211.97 GB
     Занято: 4.08 GB
     Свободно: 207.89 GB
     Максимальный размер файла: 10 GB
     Размер корзины: 0 B
    

    Хоть и не совсем годится для отображения в conky, но ничто не мешает его «парсить».

    Посмотрите на файл конфигурации
    yandex.disk - ${exec yandex-disk status | grep -i Всего | sed -e 's/^.\{8\}//'}
    
    ${exec yandex-disk status | grep -i Занято | sed -e 's/^.\{9\}//'}${alignr}${execbar YD_free}
    
    Status:${alignr}${exec yandex-disk status | grep -i "Статус ядра"| sed -e 's/^.\{27\}//'}
    
    Other informations:
    
    ${exec yandex-disk status | grep -i "Статус синхронизации"| sed -e 's/^.\{22\}//'}
    

    Немного разберём его.
    В первой строке мы запускаем yandex-disk status, с помощью grep отбираем строчку в которой есть совпадение со словом «Всего» grep -i Всего и удаляем 8 первых символов sed -e 's/^.\{8\}//'. Таким образом мы получили общий объём Яндекс.Диска и вывели в conky. Аналогичным способом получили информацию о том сколько занято (строка 2), а также информацию о статусе (строки 3 и 5).
    Во второй строке я также вывожу bar с информацией о том на сколько заполнен диск в процентах, для этого написал небольшой скрипт YD_free который возвращает число от 0 до 100 в зависимости от заполненности диска, а execbar отображает его принимая в качестве аргумента результат работы YD_free:

    #!/usr/bin/bash
    
    var=`yandex-disk status | grep -i Всего | sed -e 's/^.\{8\}//' | sed 's/.\{6\}$//' 2>&1`
    vos=`yandex-disk status | grep -i Занято | sed -e 's/^.\{9\}//' | sed 's/.\{6\}$//' 2>&1`
    
    echo $[$vos*100/$var]
    

    Тут в первую переменную пишем сколько у нас места Всего, во вторую сколько Занято, в третей строке выводим процент.

    P.S. Хотелось бы что бы команда Яндекс добавила больше опций на вывод (к примеру пишешь команду yandex-disk status disk free — результат свободное место на диске цифрами), а читатель «получил запал» для старта новых идей.

    http://habrahabr.ru/post/212763/
    Категория: Linux и не только | Просмотров: 740 | Добавил: laptop | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк - единственный из зверей, который может пойти в бой на более сильного противника.
    Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...

    Праздники сегодня

    Поиск
    Календарь
    Архив записей
    Друзья сайта
  • Официальный блог
  • JEEP - the best! Mercedes - the best! Автомобильный портал города Бреста: технические характеристики с фото, авторынок, автоспорт...
    Наша кнопка
    IT новости с моего лаптопа...

    Внимание!
    Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.
    Copyright Valeri N.Kravchuk © 2007-2024