change project structure to more pretty one

This commit is contained in:
2016-01-27 11:38:36 +03:00
parent 2ab2093829
commit c0ad1a6912
22 changed files with 90 additions and 242 deletions

View File

@ -0,0 +1,183 @@
---
permalink: ru/projects/git-etc
category: ru
hastr: true
layout: project
title: git-etc
short: git-etc
tags: git, python, qt, linux, system, демон
hasgui: true
hasdocs: false
developers:
- Evgeniy Alekseev
license: GPLv3
links:
- Пакет в <a href="//aur.archlinux.org/packages/git-etc" title="AUR">AUR</a>
---
<!-- info block -->
Простой демон, который создает git репозиторий в указанной директории и создает коммит в указанный промежуток времени.
<!--more-->
```bash
$ git-etc --help
Simple daemon written on BASH for monitoring changes in files
Usage: git-etc [ -c | --config /etc/git-etc.conf ] [ -h | --help ] [ -v | --version ]
Parametrs:
-c --config - path to configuration file
-h --help - show this help and exit
-v --version - show version and exit
See "man 1 git-etc" for more details
```
```bash
$ ctrlconf --help
GUI for git-etc daemon
Usage: ctrlconf [ --default ] [ -h | --help ] [ -v | --version ]
Additional parametrs:
--default - create default configuration file
-h --help - show this help and exit
-v --version - show version and exit
See "man 1 ctrlconf" for more details
```
### <a href="#devel" class="anchor" id="devel"><span class="octicon octicon-link"></span></a>Разработчики
{% for devel in page.developers %}
* {{ devel }}{% endfor %}
### <a href="#license" class="anchor" id="license"><span class="octicon octicon-link"></span></a>Лицензия
* {{ page.license }}
<!-- end of info block -->
<!-- install block -->
## <a href="#install" class="anchor" id="install"><span class="octicon octicon-link"></span></a>Установка
### <a href="#instruction" class="anchor" id="instruction"><span class="octicon octicon-link"></span></a>Инструкция
* Скачайте [архив](//github.com/arcan1s/git-etc/releases "GitHub") с актуальной версией исходных файлов.
* Извлеките из него файлы и установите приложение:
```bash
./install.sh "/путь/к/корню/"
```
Если Вы хотите установить в `/`, Вы должны запустить это, как root:
```bash
sudo ./install.sh
```
Если путь не указан, пакет будет установлен в `/`.
### <a href="#dependencies" class="anchor" id="dependencies"><span class="octicon octicon-link"></span></a>Зависимости
Все было протестировано на последних версиях зависимостей.
* Bash (включая awk, grep, sed)
* git
* python2 *(make)*
* systemd *(опционально, service-файл)*
* python2-pyqt4 *(опционально, GUI)*
* xterm *(опционально, GUI)*
<!-- end of install block -->
<!-- howto block -->
## <a href="#howto" class="anchor" id="howto"><span class="octicon octicon-link"></span></a>Использование
Если Вы хотите запустить демон в `/etc`, просто запустите
```bash
systemctl start git-etc
```
Если Вы хотите включить автозагрузку демона, запутите
```bash
systemctl enable git-etc
```
Но Вы можете изменить путь к конфигурационному файлу или изменить параметры. Для этого, скопируйте (рекомендуется) исходный конфигурационный файл
```bash
cp /etc/git-etc.conf /новый/путь/к/git-etc.conf
```
и отредактируйте его. Затем скопируйте исходный service-файл в `/etc`:
```bash
cp /usr/lib/systemd/system/git-etc.service /etc/systemd/system/git-etc-my-profile.service
```
Замените следующую строку в этом файле:
```bash
ExecStart=/usr/bin/git-etc -c /etc/git-etc.conf
```
на
```bash
ExecStart=/usr/bin/git-etc -c /новый/путь/к/git-etc.conf
```
<!-- end of howto block -->
<!-- config block -->
## <a href="#config" class="anchor" id="config"><span class="octicon octicon-link"></span></a>Настройка
Все настройки хранятся в `/etc/git-etc.conf`. После редактирования, Вы должны перезапустить демон
```bash
systemctl restart git-etc
```
### <a href="#options" class="anchor" id="options"><span class="octicon octicon-link"></span></a>Опции
| | |
|-------|-------|
| DIRECTORY | Полный путь к рабочей директории с наблюдаемыми файлами. По умолчанию `/etc`. |
| TIMESLEEP | Промежуток времени между обновлениями, часы. Должно быть целым и >= 1\. По умолчанию `12`. |
| IGNORELIST | Список файлов, которые не будут наблюдаться. Разделитель ";;". Может быть пустым. |
| FORALL | `1` включит доступ для обычного пользователя. По умолчанию `1`. |
<!-- end of config block -->
<!-- gui block -->
## <a href="#gui" class="anchor" id="gui"><span class="octicon octicon-link"></span></a>Графический интерфейс
Control Config (`ctrlconf`) - графический интерфейс для `git-etc`, написанный на `Python2/PyQt4`. Данное приложение позволяет Вам увидеть список коммитов и изменения в файлах в данных коммитах. Также данное приложение позволит Вам откатиться на указанный коммит (все файлы, посредством `git reset --hard`, или только указанный, посредством `git diff && git apply`). Также Вы можете объединить старый и новый конфигурационные файлы (используются две
ветки репозитория master и experimental). Приложение может потребовать привелегии root, убедитесь, что пакет `sudo` установлен.
### <a href="#gui_configuration" class="anchor" id="gui_configuration"><span class="octicon octicon-link"></span></a>Настройка
Запустите приложение и откройте окно настроек из меню.
### <a href="#screenshots" class="anchor" id="screenshots"><span class="octicon octicon-link"></span></a>Скриншоты
<div class="thumbnails">
{% assign scrdesc = "Основное окно" %}
{% assign scrname = "git-etc_mainwindow" %}
{% include prj_scr.html %}
{% assign scrdesc = "Окно 'О программе'" %}
{% assign scrname = "git-etc_aboutwindow" %}
{% include prj_scr.html %}
{% assign scrdesc = "Окно с просмотром изменений при коммите" %}
{% assign scrname = "git-etc_commitwindow" %}
{% include prj_scr.html %}
{% assign scrdesc = "Окно объединения" %}
{% assign scrname = "git-etc_mergingwindow" %}
{% include prj_scr.html %}
{% assign scrdesc = "Окно отката" %}
{% assign scrname = "git-etc_rollbackwindow" %}
{% include prj_scr.html %}
</div>
<!-- end of gui block -->

View File

@ -0,0 +1,423 @@
---
permalink: ru/projects/awesome-widgets
category: ru
hastr: true
layout: project
title: Awesome Widgets
short: awesome-widgets
tags: python, kde, qt, linux, система, awesome
hasgui: true
hasdocs: false
developers:
- Evgeniy Alekseev
- Ernesto Avilés Vzqz (перевод на испанский)
- Mermouy (перевод на французский)
- underr (перевод на бразильский португальский)
- Виктор Слободян (перевод на украинский)
- Lemueler (перевод на китайский)
- Heimen Stoffels (перевод на голландский)
license: GPLv3
links:
- Страница плазмоида на <a href="//kde-look.org/content/show.php/Awesome+Widgets?content=157124" title="kde-look">kde-look.org</a>
- Страница DataEngine на <a href="//kde-look.org/content/show.php/Extended+Systemmonitor+DataEngine?content=158773" title="kde-look">kde-look.org</a>
- Пакет в <a href="//aur.archlinux.org/packages/kdeplasma-applets-awesome-widgets" title="AUR">AUR</a>
- Пакет для <a href="//software.opensuse.org/package/plasma5-awesome-widgets" title="openSUSE">openSUSE</a> (спасибо Kott)
- Пакеты для <a href="//github.com/arcan1s/awesome-widgets/releases" title="Ubuntu">Ubuntu</a>
- <a href="/ru/2014/09/04/migration-to-v2/" title="Миграция">Миграция на версию 2.0</a>
- <a href="/ru/2014/12/19/aw-v21-bells-and-whistles/" title="Расширения">Расширения</a>
---
<!-- info block -->
Набор минималистичных легко настраиваемых пламоидов, написанных на `C++/Qt`. Они выглядят, как виджеты в [Awesome WM](//awesome.naquadah.org/ "Домашняя страница Awesome"). Также пакет предоставляет дополнительный системный [DataEngine](//techbase.kde.org/Development/Tutorials/Plasma/DataEngines "Мануал для разработчиков").
<!--more-->
**ВНИМАНИЕ:** [НУЖНЫ ПЕРЕВОДЧИКИ!](//github.com/arcan1s/awesome-widgets/issues/14 "Тикет")
**Совместим с Plasma 5!**
### <a href="#devel" class="anchor" id="devel"><span class="octicon octicon-link"></span></a>Разработчики
{% for devel in page.developers %}
* {{ devel }}{% endfor %}
### <a href="#license" class="anchor" id="license"><span class="octicon octicon-link"></span></a>Лицензия
* {{ page.license }}
### <a href="#changelog" class="anchor" id="changelog"><span class="octicon octicon-link"></span></a>Список изменений
[CHANGELOG-RU](//github.com/arcan1s/awesome-widgets/blob/master/CHANGELOG-RU "GitHub")
<!-- end of info block -->
<!-- install block -->
## <a href="#install" class="anchor" id="install"><span class="octicon octicon-link"></span></a>Установка
### <a href="#instruction" class="anchor" id="instruction"><span class="octicon octicon-link"></span></a>Инструкция
* Скачайте [архив](//github.com/arcan1s/awesome-widgets/releases "GitHub") с актуальной версией исходных файлов.
* Извлеките из него файлы и установите:
```bash
cd /путь/к/извлеченным/файлам/
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ../
make
sudo make install
```
**ВНИМАНИЕ:** Для Plasma 5, вероятно, потребуется флаг `-DKDE_INSTALL_USE_QT_SYS_PATHS=ON`
### <a href="#dependencies" class="anchor" id="dependencies"><span class="octicon octicon-link"></span></a>Зависимости
Все было протестировано на последних версиях зависимостей.
* plasma-framework
* cmake *(make)*
* extra-cmake-modules *(make)*
* hddtemp **или** smartmontools *(опционально, для контроля за температурой HDD)*
* один из поддерживаемых музыкальных плееров *(опционально, для контроля за музыкальным плеером)*
* проприетарный видеодрайвер *(опционально, для контроля за GPU)*
<!-- end of install block -->
<!-- howto block -->
## <a href="#howto" class="anchor" id="howto"><span class="octicon octicon-link"></span></a>Использование
Откройте список виджетов Plasma и выберете `Awesome Widget`.
### <a href="#tips" class="anchor" id="tips"><span class="octicon octicon-link"></span></a>Tips & tricks
Вы можете использовать несколько цветов в тексте. Просто вставьте нужный текст в html код. Смотри [вопрос](//github.com/arcan1s/awesome-widgets/issues/9 "GitHub") для более подробной информации.
<!-- end of howto block -->
<!-- config block -->
## <a href="#config" class="anchor" id="config"><span class="octicon octicon-link"></span></a>Настройка
### <a href="#deconf" class="anchor" id="deconf"><span class="octicon octicon-link"></span></a>Настройка DataEngine
Вы можете отредактировать настройки DataEngine, которые хранятся в `/etc/xdg/plasma-dataengine-extsysmon.conf` и `$HOME/.config/plasma-dataengine-extsysmon.conf`. Раскомментируйте необходимые строчки и отредактируйте их.
### <a href="#deoptions" class="anchor" id="deoptions"><span class="octicon octicon-link"></span></a>Опции DataEngine
| | |
|----------|----------|
| ACPIPATH | Путь к устройствам ACPI. По умолчанию `/sys/class/power_supply/`. |
| GPUDEV | Устанавливает тип GPU. Может быть `nvidia` (для nVidia), `ati` (для ATI Radeon), `disable` или `auto`. По умолчанию `auto`. |
| HDDDEV | Устанавливает блочное устройство для `hddtemp` через запятую или `all` для всех возможных. `disable` отключит монитор температуры HDD. По умолчанию `all`. |
| HDDTEMPCMD | Команда, которая будет запущена для hddtemp. По умолчанию `sudo smartctl -a`. Поддерживаемые приложения - `hddtemp` и `smartmontools`. |
| MPDADDRESS | Адрес MPD хоста. По умолчанию `localhost`. |
| MPDPORT | Адрес MPD хоста. По умолчанию `6600`. |
| PLAYER | Устанавливает музыкальный плеер. Поддерживаемые плееры: mpd и с поддержкой MPRIS/DBus. `disable` отключит данный монитор. |
| PLAYERSYMBOLS | Количество символов в динамических тегах монитора за плеером. По умолчанию `10`. |
### <a href="#widconf" class="anchor" id="widconf"><span class="octicon octicon-link"></span></a>Настройка виджета
Для настройки внешнего вида Вы должны открыть окно настроек и установить требуемый формат текста. HTML теги обрабатываются корректно.
Доступные флаги приведены в таблице ниже.
**ЗАМЕЧАНИЕ** Нумерация всех массивов в переменных начинается с 0.
| Тег | Описание | Введен |
|-----|----------|--------|
| `$time` | Время в стандартном формате. Например, `fri Nov 6 04:48:01 2013`. | 1.5.1 |
| `$isotime` | Время в формате ISO. | 1.5.2 |
| `$shorttime` | Время в коротком формате локали. | 1.5.2 |
| `$longtime` | Время в длинном формате локали. | 1.5.2 |
| `$ctime` | Специальный формат времени. | 2.0.0 |
| `$uptime` | Системный аптайм, `---d--h--m`. |
| `$cuptime` | Специальный формат аптайма. | 2.0.0 |
| `$la1` | Средняя загрузка за 1 минуту, `-----`. | 2.4.0 |
| `$la5` | Средняя загрузка за 5 минут, `-----`. | 2.4.0 |
| `$la15` | Средняя загрузка за 15 минут, `-----`. | 2.4.0 |
| `$cpu` | Полная загрузка CPU, %, `-----`. |
| `$cpuN` | Загрузка CPU для ядра N, %, `-----`. | 1.7.0 |
| `$cpucl` | Средняя частота CPU, МГц, `----`. | 1.1.2 |
| `$cpuclN` | Частота CPU для ядра N, МГц, `----`. | 1.7.0 |
| `$tempN` | Температура для датчика N, `----`. Пример: `$temp0` |
| `$gpu` | Использование GPU, %, `-----`. `aticonfig` или `nvidia-smi` должны быть установлены. | 1.3.2 |
| `$gputemp` | Температура GPU, `----`. `aticonfig` или `nvidia-smi` должны быть установлены. | 1.3.2 |
| `$mem` | Использование RAM, %, `-----`. |
| `$memmb` | Использование RAM, MB, `-----`. | 1.1.1 |
| `$memgb` | Использование RAM, GB, `----`. | 1.7.3 |
| `$memfreemb` | Свободная RAM, MB, `-----`. | 2.0.0 |
| `$memfreegb` | Свободная RAM, GB, `----`. | 2.0.0 |
| `$memtotmb` | RAM, MB, `-----`. | 1.10.0 |
| `$memtotgb` | RAM, GB, `----`. | 1.10.0 |
| `$memusedmb` | Занятая и кэшированная RAM, MB, `-----`. | 2.0.0 |
| `$memusedgb` | Занятая и кэшированная RAM, GB, `----`. | 2.0.0 |
| `$swap` | Использование swap, %, `-----`. |
| `$swapmb` | Использование swap, MB, `-----`. | 1.1.1 |
| `$swapgb` | Использование swap, GB, `----`. | 1.7.3 |
| `$swapfreemb` | Свободный swap, MB, `-----`. | 2.0.0 |
| `$swapfreegb` | Свободный swap, GB, `----`. | 2.0.0 |
| `$swaptotmb` | swap, MB, `-----`. | 1.10.0 |
| `$swaptotgb` | swap, GB, `----`. | 1.10.0 |
| `$hddN` | Занятость точки монтирования N, %, `-----`. Пример: `$hdd0`. | 1.3.2 |
| `$hddmbN` | Занятость точки монтирования N, MB, `-----`. Пример: `$hddmb0`. | 1.8.0 |
| `$hddgbN` | Занятость точки монтирования N, GB, `-----`. Пример: `$hddgb0`. | 1.8.0 |
| `$hddfreembN` | Свободное место точки монтирования N, MB, `-----`. Пример: `$hddfreemb0`. | 2.0.0 |
| `$hddfreegbN` | Свободное место точки монтирования N, GB, `-----`. Пример: `$hddfreegb0`. | 2.0.0 |
| `$hddtotmbN` | Размер точки монтирования N, MB, `-----`. Пример: `$hddtotmb0`. | 1.10.0 |
| `$hddtotgbN` | Размер точки монтирования N, GB, `-----`. Пример: `$hddtotgb0`. | 1.10.0 |
| `$hddrN` | Скорость записи диска N, KB/s, `-----`. Пример: `$hddr0`. | 1.9.0 |
| `$hddwN` | Скорость чтения диска N, KB/s, `-----`. Пример: `$hddw0`. | 1.9.0 |
| `$hddtempN` | Температура HDD с номером N, `----`. Пример `$hddtemp0`. `hddtemp` или `smartmontools` должен быть установлен. | 1.7.0 |
| `$down` | Скорость загрузки активного устройства, KB/s или MB/s, `----`. | 1.7.0 |
| `$downkb` | Скорость загрузки активного устройства, KB/s, `----`. | 3.0.0 |
| `$downunits` | Единицы скорости загрузки активного устройства, `----`. | 3.0.0 |
| `$downN` | Скорость загрузки устройства N, KB/s или MB/s, `----`. | 2.2.0 |
| `$downkbN` | Скорость загрузки устройства N, KB/s, `----`. | 3.0.0 |
| `$downunitsN` | Единицы cкорости загрузки устройства N, `----`. | 3.0.0 |
| `$up` | Скорость отдачи активного устройства, KB/s или MB/s, `----`. | 1.7.0 |
| `$upkb` | Скорость отдачи активного устройства, KB/s, `----`. | 3.0.0 |
| `$upunits` | Единицы скорости отдачи активного устройства, `----`. | 3.0.0 |
| `$upN` | Скорость отдачи устройства N, KB/s или MB/s, `----`. | 2.2.0 |
| `$upkbN` | Скорость отдачи устройства N, KB/s, `----`. | 3.0.0 |
| `$upunitsN` | Единицы скорости отдачи устройства N, `----`. | 3.0.0 |
| `$netdev` | Текущее устройство. | 1.1.1 |
| `$bat` | Средний заряд батареи, %, `---`. |
| `$batN` | Заряд батареи N, %, `---`. | 2.0.3 |
| `$ac` | Статус зарядного устройства. Возвращает `(*)`, если устройство подключено, или `( )`, если нет. |
| `$album` | Альбом текущей песни. Один из поддерживаемых музыкальных плееров должен быть установлен. | 1.5.3 |
| `$dalbum` | Альбом текущей песни с фиксированным количеством символов, показывающийся, как бегущая строка. | 3.0.0 |
| `$salbum` | Альбом текущей песни с фиксированным количеством символов, показывающийся с многоточием на конце. | 3.0.0 |
| `$artist` | Исполнитель текущей песни. Один из поддерживаемых музыкальных плееров должен быть установлен. | 1.5.0 |
| `$dartist` | Исполнитель текущей песни с фиксированным количеством символов, показывающийся, как бегущая строка. | 3.0.0 |
| `$sartist` | Исполнитель текущей песни с фиксированным количеством символов, показывающийся с многоточием на конце. | 3.0.0 |
| `$duration` | Длительность текущей песни. Один из поддерживаемых музыкальных плееров должен быть установлен. | 2.0.0 |
| `$progress` | Прогресс текущей песни. Один из поддерживаемых музыкальных плееров должен быть установлен. | 1.5.3 |
| `$title` | Название текущей песни. Один из поддерживаемых музыкальных плееров должен быть установлен. | 1.5.0 |
| `$dtitle` | Название текущей песни с фиксированным количеством символов, показывающийся, как бегущая строка. | 3.0.0 |
| `$stitle` | Название текущей песни с фиксированным количеством символов, показывающийся с многоточием на конце. | 3.0.0 |
| `$ps` | Список запущенных процессов, разделенных запятой. | 1.8.0 |
| `$pscount` | Число запущенных процессов. | 1.8.0 |
| `$pstotal` | Общее число процессов. | 1.8.0 |
| `$pkgcountN` | Число пакетов, доступных для обновления, для команды N. | 1.8.0 |
| `$customN` | Получить данные из указанной команды N. Например, `$custom0`. | 1.9.0 |
| `$desktop` | Имя текущего рабочего стола. | 2.0.0 |
| `$ndesktop` | Номер текущего рабочего стола. | 2.0.0 |
| `$tdesktops` | Общее число рабочих столов. | 2.0.0 |
| `$askN` | Получить аск по тикеру N. Например, `$ask0`. | 2.2.2 |
| `$askchgN` | Абсолютное изменение аск по тикеру N. Например, `$askchg0`. | 2.2.2 |
| `$percaskchgN` | Изменение аск по тикеру N, %. Например, `$percaskchg0`. | 2.2.2 |
| `$bidN` | Получить бид по тикеру N. Например, `$bid0`. | 2.2.2 |
| `$bidchgN` | Абсолютное изменение бид по тикеру N. Например, `$bidchg0`. | 2.2.2 |
| `$percbidchgN` | Изменение бид по тикеру N, %. Например, `$percbidchg0`. | 2.2.2 |
| `$priceN` | Получить цену по тикеру N. Например, `$price0`. | 2.2.2 |
| `$pricechgN` | Абсолютное изменение цены по тикеру N. Например, `$pricechg0`. | 2.2.2 |
| `$percpricechgN` | Изменение цены по тикеру N, %. Например, `$percpricechg0`. | 2.2.2 |
| `$weatherIdN` | Численное ID погоды. Например `$weatherId0`. | 2.4.0 |
| `$weatherN` | Статус погоды. Например `$weather0`. | 2.4.0 |
| `$humidityN` | Влажность, %. Например `$humidity0`. | 2.4.0 |
| `$pressureN` | Давление, бар. Например `$pressure0`. | 2.4.0 |
| `$temperatureN` | Температура. Humidity `$temperature0`. | 2.4.0 |
### <a href="#lambda" class="anchor" id="lambda"><span class="octicon octicon-link"></span></a>Лямбда функции
Начиная с версии 3.0.0 основной виджет поддерживает лямбда выражения, которые рассчитываются в рантайме. Они объявляются использованием конструкции `${% raw %}${{{% endraw %} {% raw %}}}{% endraw %}`:
```javascript
{% raw %}${{{% endraw %}
function three()
{
return 1 + 2;
}
three()
{% raw %}}}{% endraw %}
```
Функции внутри будут интерпретированы, как JavaScript, любая переменная из основного набора поддерживается. Так, функция:
```javascript
{% raw %}${{{% endraw %}
function colorCpu()
{
if ($cpu > 90.0)
return "<span style=\"color:#ff0000;\">$cpu</span>"
else
return "$cpu"
}
colorCpu()
{% raw %}}}{% endraw %}
```
покажет значение `$cpu` красным, если оно больше 90.0, иначе - покажет цветом по-умолчанию. Также поддерживаются произвольные вычисления:
```javascript
{% raw %}${{{% endraw %}
$down - $up
{% raw %}}}{% endraw %}
```
покажет разность между скоростями загрузки и отдачи. Другая особенность, предоставляемая лямбда выражениями - тег `$this`, который вернет последнее значение данной лямбда функции. Ниже чуть более сложный пример, который покажет бегущую строку "Артист - Название" с длиной меньшей либо равной 10 символам:
```javascript
{% raw %}${{{% endraw %}
function runningLine() {
var current = "$artist - $title";
var index = current.indexOf("$this");
if (("$this" == "") || ((index + 20 + 1) > current.length))
return current.substring(0, 20);
else
return current.substring(index + 1, index + 20 + 1);
}
runningLine()
{% raw %}}}{% endraw %}
```
Таким образом, лямбда выражения могут быть использованы, например, чтобы показывать произвольное значение, которое будет рассчитано в рантайме, или, чтобы показать различную информацию, в зависимости от некоторых условий. Однако, пожалуйста, учитывайте, что подобные вычисления в рантайме могут увеличить нагрузку на CPU.
### <a href="#advanced" class="anchor" id="advanced"><span class="octicon octicon-link"></span></a>Расширенные настройки
**Включить фон:** Снимите галочку, чтобы отключить стандартный фон виджета и установить прозрачный. По умолчанию `true`.
**Переводить строки:** Переводить или нет строковые теги. По умолчанию `true`.
**Заменить символ перевода строки:** Заменить `\n` на `&#60;br&#62;`. По умолчанию `false`.
**Перенос слов:** Включить перенос слов. По умолчанию `false`.
**Включить всплывающие сообщения:** Снимите галочку, если вы не хотите всплывающих сообщений на системные события. По умолчанию `true`.
**Проверять обновления:** Проверять или нет обновления при запуске. По умолчанию `true`.
**Высота виджета:** Отключит автоматическое определение высоты виджета и установит ее в данное значение. По умолчанию `0` (автоматически).
**Ширина виджета:** Отключит автоматическое определение ширины виджета и установит ее в данное значение. По умолчанию `0` (автоматически).
**Интервал обновления:** Интервал обновления виджета, мс. По умолчанию `1000`.
**Очередь сообщений:** Использовать указанное количество тредов в пуле. `0` означает идеальное количество тредов. По умолчанию `0`.
**Температурные единицы:** Выберете единицы температуры. Доступные единицы следующие: Цельсий, Фаренгейт и Кельвин.
**Свой формат времени:**
| | |
|---------|---------|
| `$dddd` | Длинный день недели. |
| `$ddd` | Короткий день недели. |
| `$dd` | День. |
| `$d` | День без нуля. |
| `$MMMM` | Месяц в длинном формате. |
| `$MMM` | Месяц в коротком формате. |
| `$MM` | Месяц. |
| `$M` | Месяц без нуля. |
| `$yyyy` | Год. |
| `$yy` | Год в коротком формате. |
| `$hh` | Часы. |
| `$h` | Часы без нуля. |
| `$HH` | Часы в 24-часовом формате. |
| `$H` | Часы в 24-часовом формате без нуля. |
| `$mm` | Минуты. |
| `$m` | Минуты без нуля. |
| `$ss` | Секунды. |
| `$s` | Секунды без нуля. |
| `$t` | Временная зона. |
| `$a`/`$ap` | am или pm. |
| `$A`/`$AP` | AM или PM. |
**Свой формат времени работы:**
| | |
|-------|-------|
| `$dd` | Дни аптайма. |
| `$d` | Дни аптайма без нуля. |
| `$hh` | Часы аптайма. |
| `$h` | Часы аптайма без нуля. |
| `$mm` | Минуты аптайма. |
| `$m` | Минуты аптайма без нуля. |
**AC online тег:** Строка, которая будет показана, когда AC онлайн. По умолчанию `(*)`.
**AC offline тег:** Строка, которая будет показана, когда AC оффлайн. По умолчанию `( )`.
### <a href="#tooltips" class="anchor" id="tooltips"><span class="octicon octicon-link"></span></a>Тултипы
Начиная с версии 1.7.0, поля CPU, частота CPU, память, swap, сеть и батарея поддерживают графический тултип (всплывающая подсказка). Чтобы включить их, просто поставьте нужные галочки. Число хранимых значений может быть установлено во вкладке. Также есть возможность настроить цвета графиков.
### <a href="#deguiconf" class="anchor" id="deguiconf"><span class="octicon octicon-link"></span></a>Настройка DataEngine
**Устройства ACPI:** Путь к устройствам ACPI. По умолчанию `/sys/class/power_supply/`.
**Устройство GPU:** Выберете одно из поддерживаемых устройств GPU. `auto` включит автоматическое определение устройства, `disable` отключит все мониторы GPU. По умолчанию `auto`.
**HDD:** Выберете один из HDD для монитора температуры HDD. `all` включит монитор для всех доступных устройств, `disable` отключит монитор температуры HDD. По умолчанию `all`.
**Команда hddtemp:** Введите команду, которая будет запущена для hddtemp DataEngine. По умолчанию `sudo hddtemp`.
**Количество символов для плеера:** Количество символов, которые будут показываться в динамических тегах плеера.
**Музыкальный плеер:** Выберете один из поддерживаемых музыкальных плееров для соответствующего поля.
**MPRIS:** Выберете имя плеера MPRIS. `auto` включит автоматическое определение плеера. По умолчанию `auto`.
**Адрес MPD:** Адрес MPD сервера. По умолчанию `localhost`.
**Порт MPD:** Порт MPD сервера. По умолчанию `6600`.
### <a href="#desktoppanel" class="anchor" id="desktoppanel"><span class="octicon octicon-link"></span></a>Desktop panel
Начиная с версии 1.11.0 виджеты предоставляют панель для мониторинга за рабочими столами. И да, он выглядит, как аналогичная панель в Awesome.
### <a href="#dpconf" class="anchor" id="dpconf"><span class="octicon octicon-link"></span></a>Настройка Desktop panel
**Включить фон:** Снимите галочку, чтобы отключить стандартный фон виджета и установить прозрачный. По умолчанию `true`.
**Вертикальная разметка:** Использовать вертикальную разметку вместо горизонтальной. По умолчанию `false`.
**Высота виджета:** Отключит автоматическое определение высоты виджета и установит ее в данное значение. По умолчанию `0` (автоматически).
**Ширина виджета:** Отключит автоматическое определение ширины виджета и установит ее в данное значение. По умолчанию `0` (автоматически).
**Метка** Введите символ (или строку), которая будет показана, если данный рабочий стол сейчас активен.
**Тип тултипа:** Тип превью, по умолчанию `Окна`.
**Ширина тултипа:** Ширина тултипа в пикселях. По умолчанию `200px`.
**Цвет тултипа:** Цвет, который будет использован в некоторых типах тултипа. По умолчанию `#ffffff`.
**Теги шаблона**
| | |
|---------|---------|
| `$mark` | Показать метку, если данный рабочий стол активен. Иначе показывает пробелы |
| `$name` | Имя рабочего стола. |
| `$number` | Номер рабочего стола. |
| `$total` | Общее число рабочих столов. |
<!-- end of config block -->
<!-- gui block -->
## <a href="#gui" class="anchor" id="gui"><span class="octicon octicon-link"></span></a>Графический интерфейс
## <a href="#screenshots" class="anchor" id="screenshots"><span class="octicon octicon-link"></span></a>Скриншоты
<div class="thumbnails">
{% assign scrdesc = "Виджет (кликабельно)" %}
{% assign scrname = "awesomewidgets_widget" %}
{% include prj_scr.html %}
{% assign scrdesc = "Окно настроек" %}
{% assign scrname = "awesomewidgets_config_01" %}
{% include prj_scr.html %}
{% assign scrdesc = "Окно настроек" %}
{% assign scrname = "awesomewidgets_config_02" %}
{% include prj_scr.html %}
{% assign scrdesc = "Окно настроек" %}
{% assign scrname = "awesomewidgets_config_03" %}
{% include prj_scr.html %}
{% assign scrdesc = "Окно настроек" %}
{% assign scrname = "awesomewidgets_config_04" %}
{% include prj_scr.html %}
{% assign scrdesc = "Окно настроек" %}
{% assign scrname = "awesomewidgets_config_05" %}
{% include prj_scr.html %}
{% assign scrdesc = "Тултипы" %}
{% assign scrname = "awesomewidgets_tooltips" %}
{% include prj_scr.html %}
</div>

View File

@ -0,0 +1,110 @@
---
permalink: ru/projects/oblikuestrategies
category: ru
hastr: true
layout: project
title: Oblikue strategies
short: oblikuestrategies
tags: qt, c++, kde, linux, досуг
hasgui: true
hasdocs: false
developers:
- Evgeniy Alekseev
license: GPL
links:
- Страница на <a href="//kde-look.org/content/show.php/oblikue-strategies?content=160503" title="kde-look">kde-look.org</a>
- Пакет в <a href="//aur.archlinux.org/packages/kdeplasma-applets-oblikuestrategies" title="AUR">AUR</a>
---
<!-- info block -->
Плазмоид, написанный на `CPP` который показывает случайные карты из Brian Eno и Peter Schmidt's [Oblique Strategies](//en.wikipedia.org/wiki/Oblique_strategies "Wiki"). Это форк [апплета для GNOME](//gnome-look.org/content/show.php/Oblique+Strategies?content=78405 "gnome-look") с некоторыми дополнительными фичами.
<!--more-->
### <a href="#devel" class="anchor" id="devel"><span class="octicon octicon-link"></span></a>Разработчики
{% for devel in page.developers %}
* {{ devel }}{% endfor %}
### <a href="#license" class="anchor" id="license"><span class="octicon octicon-link"></span></a>Лицензия
* {{ page.license }}
<!-- end of info block -->
<!-- install block -->
## <a href="#install" class="anchor" id="install"><span class="octicon octicon-link"></span></a>Установка
### <a href="#instruction" class="anchor" id="instruction"><span class="octicon octicon-link"></span></a>Инструкция
* Скачайте [архив](//github.com/arcan1s/oblikuestrategies/releases "GitHub") с актуальной версией исходных файлов.
* Извлеките из него файлы и установите приложение. Для глобальной установки наберите:
```bash
cd /путь/куда/распакован/архив
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` -DCMAKE_BUILD_TYPE=Release ../
make
sudo make install
```
Для локальной:
```bash
cd /where/your/applet/is/installed
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --localprefix` -DCMAKE_BUILD_TYPE=Release ../
make
make install
```
* Перезапустите plasma, чтобы загрузить апплет:
```bash
kquitapp plasma-desktop && sleep 2 && plasma-desktop
```
Также Вам может потребоваться запустить `kbuildsycoca4`, чтобы распознать `*.desktop` файл:
```bash
kbuildsycoca4 &> /dev/null
```
### <a href="#dependencies" class="anchor" id="dependencies"><span class="octicon octicon-link"></span></a>Зависимости
Все было протестировано на последних версиях зависимостей.
* kdebase-workspace
* automoc4 *(make)*
* cmake *(make)*
<!-- end of install block -->
<!-- howto block -->
## <a href="#howto" class="anchor" id="howto"><span class="octicon octicon-link"></span></a>Использование
Откройте список виджетов Plasma и выберете `Oblikue strategies`.
<!-- end of howto block -->
<!-- config block -->
## <a href="#config" class="anchor" id="config"><span class="octicon octicon-link"></span></a>Настройка
Клик правой кнопкой по виджету.
<!-- end of config block -->
<!-- gui block -->
## <a href="#gui" class="anchor" id="gui"><span class="octicon octicon-link"></span></a>Графический интерфейс
### <a href="#screenshots" class="anchor" id="screenshots"><span class="octicon octicon-link"></span></a>Скриншоты
<div class="thumbnails">
{% assign scrdesc = "Виджет" %}
{% assign scrname = "oblikuestrategies_widget" %}
{% include prj_scr.html %}
{% assign scrdesc = "Окно настроек" %}
{% assign scrname = "oblikuestrategies_config" %}
{% include prj_scr.html %}
</div>
<!-- end of gui block -->

View File

@ -0,0 +1,156 @@
---
permalink: ru/projects/queued
category: ru
hastr: true
layout: project
title: queued
short: queued
tags: linux, shell, демон, система
hasgui: false
hasdocs: false
developers:
- Evgeniy Alekseev
license: GPLv3
links:
---
<!-- info block -->
Демон для запуска задач в очередь вычислений. Был создан, как proof-of-concept.
<!--more-->
```bash
$ queued --help
Simple daemon written on BASH for starting jobs to queue of calculations
Usage: queued [ -c /etc/queued.conf ] [ -v | --version ] [ -h | --help ]
Parametrs:
-c PATH - path to configuration file. Default is '/etc/queued.conf'
-v --version - show version and exit
-h --help - show this help and exit
```
```bash
$ add_queued --help
add_queued [ -c /etc/queued.conf ] [ -p NUM ] [ -u USER ] [ -h | --help ] /path/to/script
Parameters:
-c PATH - path to configuration file. Default is '/etc/queued.conf'
-p NUM - job priority
-u USER - username
-h --help - show this help and exit
```
### <a href="#devel" class="anchor" id="devel"><span class="octicon octicon-link"></span></a>Разработчики
{% for devel in page.developers %}
* {{ devel }}{% endfor %}
### <a href="#license" class="anchor" id="license"><span class="octicon octicon-link"></span></a>Лицензия
* {{ page.license }}
<!-- end of info block -->
<!-- install block -->
## <a href="#install" class="anchor" id="install"><span class="octicon octicon-link"></span></a>Установка
### <a href="#instruction" class="anchor" id="instruction"><span class="octicon octicon-link"></span></a>Инструкция
* Скачайте [архив](//github.com/arcan1s/queued/releases "GitHub") с актуальной версией исходных файлов.
* Извлеките из него файлы и установите приложение:
```bash
./install.sh "/путь/к/корню/"
```
Если Вы хотите установить в `/`, Вы должны запустить это, как root:
```bash
sudo ./install.sh
```
Если путь не указан, пакет будет установлен в `/`.
### <a href="#dependencies" class="anchor" id="dependencies"><span class="octicon octicon-link"></span></a>Зависимости
Все было протестировано на последних версиях зависимостей.
* Bash (включая awk, grep, sed)
* systemd *(опционально, service-файл)*
<!-- end of install block -->
<!-- howto block -->
## <a href="#howto" class="anchor" id="howto"><span class="octicon octicon-link"></span></a>Использование
Если Вы хотите запустить демон, просто запустите
```bash
systemctl start queued
```
Если Вы хотите включить автозагрузку демона, запутите
```bash
systemctl enable queued
```
Но Вы можете изменить путь к конфигурационному файлу или изменить параметры. Для этого, скопируйте (рекомендуется) исходный конфигурационный файл
```bash
cp /etc/queued.conf /новый/путь/к/queued.conf
```
и отредактируйте его. Затем скопируйте исходный service-файл в `/etc`:
```bash
cp /usr/lib/systemd/system/queued.service /etc/systemd/system/queued-my-profile.service
```
Замените следующую строку в этом файле:
```bash
ExecStart=/usr/bin/queued
```
на
```bash
ExecStart=/usr/bin/queued -c /path/to/new/queued.conf
```
### <a href="#adding" class="anchor" id="adding"><span class="octicon octicon-link"></span></a>Добавление задачи
1. Создайте скрипт с командой (например, с именем `script.sh`).
2. Создайте файл с приоритетом (`script.sh.pr`) для данной задачи, если это необходимо.
3. Создайте файл с именем пользователя (`script.sh.user`) для данной задачи, если это необходимо
4. Скопируйте файлы в `$WORKDIR`
Также Вы можете воспользоваться `add_queued`.
## <a href="#configuration" class="anchor" id="configuration"><span class="octicon octicon-link"></span></a>Настройка
Все настройки хранятся в `/etc/queued.conf`. После редактирования, Вы должны перезапустить демон
```bash
systemctl restart queued
```
<!-- end of howto block -->
<!-- config block -->
### <a href="#options" class="anchor" id="options"><span class="octicon octicon-link"></span></a>Опции
| | |
|---------|---------|
| WORKDIR | Полный путь к директории с исходными файлами задач. По умолчанию `/var/lib/queued/work`. Эта директория должна содержать исходные скрипты `script-name`, файл с приоритетом (если необходимо) `script-name.pr` и файл с именем пользователя (если необходимо) `script-name.user`. |
| JOBDIR | Полный путь к директории с запущенными задачами. По умолчанию `/var/lib/queued/job`. Все файлы будут перемещены сюда. |
| QUEUEFILE | Полный путь к файлу с очередью вычислений. По умолчанию `/var/lib/queued/queue`. |
| PRIORITY | Стандартный приоритет. По умолчанию `0`. Чем выше значение, тем выше приоритет задачи. |
| SLEEPTIME | Интервал обновлений в минутах. По умолчанию `5`. |
| STARTASUSER | Стандартное имя пользователя. По умолчанию `root`. Именно данному пользователю будут принадлежать все созданные файлы. |
<!-- end of config block -->
<!-- gui block -->
<!-- end of gui block -->

View File

@ -0,0 +1,208 @@
---
permalink: ru/projects/netctl-gui
category: ru
hastr: true
layout: project
title: Netctl GUI
short: netctl-gui
tags: archlinux, c++, qt, сеть, kde, netctl, система, dbus, библиотека
hasgui: true
hasdocs: true
developers:
- Evgeniy Alekseev
- nosada (перевод на японский)
license: GPLv3
links:
- Страница на <a href="//linux.softpedia.com/get/System/Networking/Netctl-GUI-103383.shtml" title="Softpedia">Softpedia</a>
- Страница на <a href="//kde-apps.org/content/show.php?content=164490" title="kde-apps">kde-apps.org</a>
- <a href="//aur.archlinux.org/pkgbase/netctl-gui/" title="AUR">Пакет в AUR</a>
- <a href="/devs/netctl-gui-dbus-api.html" title="DBus API">Описание DBus API</a>
- <a href="/devs/netctl-gui-security-notes.html" title="Security">Примечания о безопасности</a>
---
<!-- info block -->
Графическая оболочка для `netctl` (набор скриптов для поднятия сети в Arch'е). Написана на `C++` с использованием библиотеки `Qt`. На текущим момент умеет работать с профилями, в том числе создавать новые, а также умеет подключаться к WiFi. Также предоставляет библиотеку для взаимодействия с netctl и виджет и DataEngine для KDE.
<!--more-->
**ВНИМАНИЕ:** [НУЖНЫ ПЕРЕВОДЧИКИ!](//github.com/arcan1s/netctl-gui/issues/3 "Тикет")
```bash
$ netctl-gui --help
Использование:
netctl-gui [ options ]
Опции:
Открыть окно:
--detached - запустить открепленным от консоли
--maximized - запустить развернутым
--minimized - запустить свернутым в трей
--about - показать окно "О программе"
--netctl-auto - показать окно netctl-auto
--settings - показать окно настроек
Функции:
-e, --essid <arg> - выбрать данный ESSID
-o, --open <arg> - открыть данный профиль
-s, --select <arg> - выбрать данный профиль
Дополнительные флаги:
-c, --config <arg> - прочитать настройки из данного файла
-d, --debug - показать отладочную информацию
--default - запустить со стандартными настройками
--set-opts <arg> - установить опции для данного запуска, разделенные запятыми
-t, --tab <arg> - открыть вкладку с этим номером
Показать сообщения:
-v, --version - показать версию и выход
-i, --info - показать информацию о сборке и выход
-h, --help - показать справку и выход
```
```bash
$ netctlgui-helper --help
Использование:
netctlgui-helper [ options ]
Опции:
-c, --config <arg> - прочитать настройки из данного файла
-d, --debug - показать отладочную информацию
--nodaemon - не запускать как демон
--replace - принудительно заменить существующую сессию
--restore - принудительно восстановить существующую сессию
--system - не считывать пользовательские настройки, только системные
Показать сообщения:
-v, --version - показать версию и выход
-i, --info - показать информацию о сборке и выход
-h, --help - показать справку и выход
```
### <a href="#devel" class="anchor" id="devel"><span class="octicon octicon-link"></span></a>Разработчики
{% for devel in page.developers %}
* {{ devel }}{% endfor %}
### <a href="#license" class="anchor" id="license"><span class="octicon octicon-link"></span></a>Лицензия
* {{ page.license }}
### <a href="#changelog" class="anchor" id="changelog"><span class="octicon octicon-link"></span></a>Changelog
[CHANGELOG](//github.com/arcan1s/netctl-gui/blob/master/CHANGELOG "GitHub")
<!-- end of info block -->
<!-- install block -->
## <a href="#install" class="anchor" id="install"><span class="octicon octicon-link"></span></a>Установка
### <a href="#instruction" class="anchor" id="instruction"><span class="octicon octicon-link"></span></a>Инструкция
* Скачайте [архив](//github.com/arcan1s/netctl-gui/releases "GitHub") с актуальной версией исходных файлов.
* Извлеките из него файлы и установите приложение. Если Вы хотите установить в `/`, Вы должны запустить как root:
```bash
cd /путь/к/распакованному/архиву
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release ../
make
sudo make install
```
Доступные флаги cmake:
* компоненты:
* `-DBUILD_DATAENGINE:BOOL=0` - не собирать DataEngine
* `-DBUILD_GUI:BOOL=0` - не собирать GUI
* `-DBUILD_HELPER:BOOL=0` - не собирать хелпер
* `-DBUILD_LIBRARY:BOOL=0` - не собирать библиотеку
* `-DBUILD_PLASMOID:BOOL=0` - не собирать плазмоид
* дополнительные компоненты:
* `-DBUILD_DOCS:BOOL=0` - не собирать документацию разработчика
* `-DBUILD_TEST:BOOL=1` - собирать авто тесты для библиотеки и хелпера
* свойства проекта:
* `-DDBUS_SYSTEMCONF_PATH=/etc/dbus-1/system.d/` - путь к системный файлам конфигурации DBus
* `-DSYSTEMD_SERVICE_PATH=lib/systemd/system` - путь к сервису systemd
* `-DUSE_CAPABILITIES:BOOL=0` - не использовать setcap, чтобы дать необходимые привилегии хелперу
* `-DBUILD_KDE4:BOOL=1` - собирать виджет под KDE4 вместо KF5
* `-DUSE_QT5:BOOL=0` - использовать Qt4 вместо Qt5
### <a href="#dependencies" class="anchor" id="dependencies"><span class="octicon octicon-link"></span></a>Зависимости
Все было протестировано на последних версиях зависимостей.
* netctl
* qt5-base *(если используется Qt5)* **или** qt4 *(если используется Qt4)*
* automoc4 *(make)*
* cmake *(make)*
* qt5-tools *(make, если используется Qt5)*
* kdebase-workspace *(опционально, KDE4 виджет)*
* plasma-frameworks *(опционально, KF5 виджет)*
* sudo *(опционально, поддержка sudo)*
* wpa_supplicant *(опционально, поддержка WiFi)*
<!-- end of install block -->
<!-- howto block -->
## <a href="#howto" class="anchor" id="howto"><span class="octicon octicon-link"></span></a>Использование
Просто запустите приложение `netctl-gui`. Если потребуется (и если Вы используете KDE), можете добавить виджет `netctl`, предоставляемый приложением.
<!-- end of howto block -->
<!-- config block -->
## <a href="#config" class="anchor" id="config"><span class="octicon octicon-link"></span></a>Настройка
Рекомендуется использовать графический интерфейс для настройки. Конфигурационные файлы:
* Графический интерфейс и хелпер
* `$HOME/.config/netctl-gui.conf` - пользовательские настройки GUI/хелпера
* `/etc/netctl-gui.conf` - системные настройки хелпера
* DataEngine (KDE4 версия)
* `$KDEHOME/share/config/plasma-dataengine-netctl.conf` - пользовательские настройки DataEngine
* `$KDESYSTEM/share/config/plasma-dataengine-netctl.conf` - системные настройки DataEngine
* DataEngine (KF5 версия)
* `$HOME/.config/plasma-dataengine-netctl.conf` - пользовательские настройки DataEngine
* `/etc/xdg/plasma-dataengine-netctl.conf` - системные настройки DataEngine
Для настройки виджета и DataEngine рекомендуется использовать графический интерфейс. Все настройки графического интерфейса хранятся в `$HOME/.config/netctl-gui.conf`. Для редактирования настоятельно рекомендуется использовать графический интерфейс.
<!-- end of config block -->
<!-- gui block -->
## <a href="#gui" class="anchor" id="gui"><span class="octicon octicon-link"></span></a>Графический интерфейс
Графический интерфейс предоставляется приложением `netctl-gui`.
### <a name="screenshots" class="anchor" href="#screenshots"><span class="octicon octicon-link"></span></a>Скриншоты
<div class="thumbnails">
{% assign scrdesc = "DataEngine" %}
{% assign scrname = "netctl-gui_dataengine" %}
{% include prj_scr.html %}
{% assign scrdesc = "Виджет" %}
{% assign scrname = "netctl-gui_plasmoid" %}
{% include prj_scr.html %}
{% assign scrdesc = "Настройки виджета" %}
{% assign scrname = "netctl-gui_plasmoid_conf_01" %}
{% include prj_scr.html %}
{% assign scrdesc = "Настройки виджета" %}
{% assign scrname = "netctl-gui_plasmoid_conf_02" %}
{% include prj_scr.html %}
{% assign scrdesc = "Настройки виджета" %}
{% assign scrname = "netctl-gui_plasmoid_conf_03" %}
{% include prj_scr.html %}
{% assign scrdesc = "Главное окно" %}
{% assign scrname = "netctl-gui_main" %}
{% include prj_scr.html %}
{% assign scrdesc = "Окно создания профиля" %}
{% assign scrname = "netctl-gui_profile" %}
{% include prj_scr.html %}
{% assign scrdesc = "WiFi меню" %}
{% assign scrname = "netctl-gui_wifi" %}
{% include prj_scr.html %}
{% assign scrdesc = "Окно 'О программе'" %}
{% assign scrname = "netctl-gui_about" %}
{% include prj_scr.html %}
{% assign scrdesc = "Окно netctl-auto" %}
{% assign scrname = "netctl-gui_netctl-auto" %}
{% include prj_scr.html %}
{% assign scrdesc = "Окно настроек" %}
{% assign scrname = "netctl-gui_settings" %}
{% include prj_scr.html %}
</div>
<!-- end of gui block -->

View File

@ -0,0 +1,159 @@
---
permalink: ru/projects/reportabug
category: ru
hastr: true
layout: project
title: Report a Bug
short: reportabug
tags: qt, c++, библиотека, разработка
hasgui: false
hasdocs: true
developers:
- Evgeniy Alekseev
license: LGPLv3
links:
---
<!-- info block -->
Приложение/библиотека, написанное на Qt, которое позволяет пользователям отправлять багрепорт для проектов, расположенных на GitHub. Оно может работать как через [GitHub](//github.com "GitHub"), так и через [GitReports](//gitreports.com "GitReports"). Работает нормально, однако данное приложение было создано as proof-of-concept.
<!--more-->
### <a href="#devel" class="anchor" id="devel"><span class="octicon octicon-link"></span></a>Разработчики
{% for devel in page.developers %}
* {{ devel }}{% endfor %}
### <a href="#license" class="anchor" id="license"><span class="octicon octicon-link"></span></a>Лицензия
* {{ page.license }}
<!-- end of info block -->
<!-- install block -->
## <a href="#install" class="anchor" id="install"><span class="octicon octicon-link"></span></a>Установка
### <a href="#instruction" class="anchor" id="instruction"><span class="octicon octicon-link"></span></a>Инструкция
### <a href="#singleapp" class="anchor" id="singleapp"><span class="octicon octicon-link"></span></a>Сборка, как отдельное приложение
* Скачайте [архив](//github.com/arcan1s/reportabug/releases "GitHub") с актуальной версией исходных файлов.
* Извлеките из него файлы и настройте под себя.
* Установите приложение:
```bash
cd /path/to/extracted/archive
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_AS_LIBRARY:BOOL=0 ../
make
sudo make install
```
### <a href="#aslibrary" class="anchor" id="aslibrary"><span class="octicon octicon-link"></span></a>Сборка, как библиотека в проекте
* Скачайте [архив](//github.com/arcan1s/reportabug/releases "GitHub") с актуальной версией исходных файлов.
* Извлеките из него файлы и настройте под себя.
* Включите библиотеку в Ваш проект. Например, если Вы используете `cmake`:
```cmake
add_subdirectory (reportabug)
```
* Объявите класс в Вашем приложении, например:
```cpp
Reportabug *reportWindow = new Reportabug(parent=this, debugCmd=false, params=0);
reportWindow->showWindow();
```
* Слинкуйте Ваше приложение с библиотекой.
### <a href="#cmakeflags" class="anchor" id="cmakeflags"><span class="octicon octicon-link"></span></a>Доступные флаги cmake
* `-DBUILD_AS_LIBRARY=0` - собирать отдельное приложение, а не библиотеку.
* `-DBUILD_DOCS=1` - собирать документацию для разработчиков.
* `-DBUILD_SHARED_LIBRARY=1` - собирать библиотеку общего доступа, а не статическую.
* `-DENABLE_GITHUB=0` - отключить модуль GitHub.
* `-DENABLE_GITREPORT=0` - отключить модуль GitReports
* `-DOWN_GITHUB_TOKEN=STRING` - использовать STRING, как свой GitHub токен.
* `-DUSE_QT5=0` - использовать Qt4 вместо Qt5.
### <a href="#dependencies" class="anchor" id="dependencies"><span class="octicon octicon-link"></span></a>Зависимости
Все было протестировано на последних версиях зависимостей.
* qt5-base *(если используется Qt5)* **или** qt4 *(если используется Qt4)*
* qt5-network (если используется Qt5)
* automoc4 *(make)*
* cmake *(make)*
* doxygen *(make, документация)*
* qt5-webkit (если используется Qt5) **или** qtwebkit (если используется Qt4) *(опционально, требуется для модуля GitReports)*
<!-- end of install block -->
<!-- howto block -->
## <a href="#howto" class="anchor" id="howto"><span class="octicon octicon-link"></span></a>Использование
### <a href="#github" class="anchor" id="github"><span class="octicon octicon-link"></span></a>Модуль GitHub
Данный модуль создает тикет, используя [GitHub API](//developer.github.com/v3/issues/ "Документация"). Данный модуль требует авторизации пользователя. Типичный POST запрос выглядит так:
```bash
curl -X POST -u user:pass -d '{"title":"A new bug","body":"Some error occurs"}' \
//api.github.com/repos/owner/repo/issues
```
Для того, чтобы отключить данный модуль, используйте `-DENABLE_GITHUB=0` флаг cmake.
Также данный модуль может отправлять запросы, используя токен разработчика. Пожалуйста, посетите [данную страницу](//github.com/settings/applications "Настройки") и сгенерируйте токен. Требуемые права для токена - **public_repo** (или **repo**, если Вы используете для приватных репозиториев).
**Имейте в виду, что передача токена в открытом виде может скомпрометировать его!**
Типичный POST запрос выглядит так:
```bash
curl -X POST -H "Authorization: token token" -d '{"title":"A new bug","body":"Some error occurs"}' \
//api.github.com/repos/owner/repo/issues
```
Для того, чтобы включить данный модуль, используйте `-DOWN_GITHUB_TOKEN=STRING` флаг cmake.
Данный модуль требует наличия в системе `QtNetwork`.
### <a href="#gitreports" class="anchor" id="gitreports"><span class="octicon octicon-link"></span></a>Модуль GitReports
Данный модуль создает тикет, используя возможности [GitReports](//gitreports.com/about "GitReports"). Пожалуйста, посетите [данную страницу](//gitreports.com/ "GitReports") и настройте под Ваши репозитории.
Для того, чтобы отключить данный модуль, используйте `-DENABLE_GITREPORT=0` флаг cmake. Данный модуль требует наличия в системе `QtNetwork` и `QtWebKit`.
<!-- end of howto block -->
<!-- config block -->
## <a href="#config" class="anchor" id="config"><span class="octicon octicon-link"></span></a>Настройка
Для настройки перед компиляцией отредактируйте хидер `src/config.h`. Также Вы можете подгрузить параметры автоматически, используя массив `params` (необходимые ключи такие же, как и для хидера).
### <a href="#mainconfig" class="anchor" id="mainconfig"><span class="octicon octicon-link"></span></a>Основные настройки
* `OWNER` - владелец репозитория.
* `PROJECT` - имя проекта.
* `TAG_BODY` - тело тикета по умолчанию. Может быть использовано в обоих модулях.
* `TAG_TITLE` - имя тикета по умолчанию. Может быть использовано только в модуле GitHub.
* `TAG_ASSIGNEE` - прикрепить тикет к данному аккаунту. Может быть использовано только в модуле GitHub. Данный тег будет работать, только если пользователь имеет права на запись. Если будет пустым, будет проигнорировано.
* `TAG_LABELS` - установить данные метки тикету. Метки должны быть разделены запятыми. Может быть использовано только в модуле GitHub. Данный тег будет работать, только если пользователь имеет права на запись. Если будет пустым, будет проигнорировано.
* `TAG_MILESTONE` - установить данную веху тикету. Может быть использовано только в модуле GitHub. Данный тег будет работать, только если пользователь имеет права на запись. Если будет пустым, будет проигнорировано.
### <a href="#githubconfig" class="anchor" id="githubconfig"><span class="octicon octicon-link"></span></a>Настройки модуля GitHub
* `GITHUB_COMBOBOX` - текст модуля в ComboBox.
* `ISSUES_URL` - URL, в большинстве случаев, не редактируйте его. По умолчанию `//api.github.com/repos/$OWNER/$PROJECT/issues`. Доступные теги `$PROJECT`, `$OWNER`.
### <a href="#gitreportsconfig" class="anchor" id="gitreportsconfig"><span class="octicon octicon-link"></span></a>Настройки модуля GitReports
* `CAPTCHA_URL` - URL капчи, в большинстве случаев, не редактируйте его. По умолчанию `//gitreports.com/simple_captcha?code=`.
* `GITREPORT_COMBOBOX` - текст модуля в ComboBox.
* `PUBLIC_URL` - URL, в большинстве случаев, не редактируйте его. По умолчанию `//gitreports.com/issue/$OWNER/$PROJECT`. Доступные теги `$PROJECT`, `$OWNER`.
<!-- end of config block -->
<!-- gui block -->
<!-- end of gui block -->