LINUX.ORG.RU

Сообщения Dreamdrawer

 

i3blocks. Кнопка ломает работу индикатора

Форум — Desktop

i3blocks выводит состояние аудиоплеера, этот индикатор является также кнопкой, которая может ставить плеер на паузу или продолжать воспроизведение. Делается это с помощью внутренней команды плеера deadbeef --play-pause. Если плеер выключен, то эта же команда его запустит. Всё работает. Но если научить индикатор отображать также состояние, когда плеер не запущен (с помощью команды pidof deadbeef > /dev/null), то кнопка начинает работать неправильно — проигрыватель запускается, но состояние уже не обновляется. По сути он зависает, и не работает более пока не перезапустишь. А если перезапустить i3blocks (сделав рестарт оболочки i3-msg restart), то плеер выключается.

Т. е. ошибка где-то на этапе проверки состояния плеера. Но с чем это связано? i3blocks, плеер или скрипт некорректно составлен? Как решить?

Скрипт индикатора:

#!/bin/bash

## проверить включена ли программа
if pidof deadbeef > /dev/null ;
then STATE="10"
else STATE="20"
fi

## определить статус воспроизведения
if [ $(deadbeef --nowplaying-tf '%isplaying%') == "1" ];
then STATUS="3"
elif [ $(deadbeef --nowplaying-tf '%ispaused%') == "1" ];
then STATUS="4"
else STATUS="5"
fi

## вычислить статус
let "CALC = $STATE + $STATUS"

## отобразить состояние плеера
if [[ "$CALC" -eq "13" ]];
then echo "PLAY"
elif [[ "$CALC" -eq "14" ]];
then echo "PAUSE"
elif [[ "$CALC" -eq "15" ]];
then echo "STOP"
elif [[ "$STATE" -eq "20" ]];
then echo "OFF"
fi

case $BLOCK_BUTTON in
  ## левым кликом поставить на паузу или запустить плеер
  1) deadbeef --play-pause ;;
esac

 , , ,

Dreamdrawer
()

Bash. Вывести четыре состояния из двух возможных

Форум — Development

Не получается заставить работать скрипт полностью.

Задача:
вывести текущее состояние аудиоплеера.
Условия:
плеер DeadBeeF умеет выводить только состояния «воспроизводится» и «пауза».

Сделал так:

#!/bin/bash

# проверить включена ли программа:
if deadbeef --version >/dev/null 2>&1;
  then STATE="10"
  else STATE="20"
fi

# обработать состояние воспроизведения:
if [ $(deadbeef --nowplaying-tf '%isplaying%') == "1" ];
  then STATUS="3"
elif [ $(deadbeef --nowplaying-tf '%ispaused%') == "1" ];
  then STATUS="4"
else STATUS="5"
fi

let "aaa = $STATE + $STATUS"

if [ "$aaa" -ge "20" ];
  then echo "[OFF]"
elif [ "$aaa" == "13" ];
  then echo "[PLAY]"
elif [ "$aaa" == "14" ];
  then echo "[PAUSE]"
elif [ "$aaa" == "15" ];
  then echo "[STOP]"
fi

Результат:
с таким решением выводит он только состояния «play»,«pause» и «stop».
Вопрос:
как заставить вывести четвёртое состояние «OFF»?

 , ,

Dreamdrawer
()

GTK3. Затемнение миниатюр

Форум — Development

Как называется объект (в теме /gtk-3.0/gtk-main.css), в котором указывается затемнение выделенных значков?

(например тех значков, которые выводятся в файловом менеджере в режиме миниатюр)

Нашёл только iconview, который может либо целиком закрасить значок, либо, если сделать background прозрачным, выделение вокруг миниатюры будет отсутствовать.

iconview:selected {
  background-color: green;
  opacity: 0.1;
}

Но ведь он как-то делается полупрозрачным с сохранением выделения вокруг значка на системном уровне, значит есть что-то за это отвечающее.

 ,

Dreamdrawer
()

urxvt. Сбивается длина строки

Форум — Desktop

Если изменить «строку приглашения» через .bashrc, а потом в терминале набрать длинную строку, после чего начать движение курсора к началу строки, то курсор начинает сходить с ума, прыгать по строкам аки по ступенькам, а началом строки будет считать место где-нибудь посередине строки приглашения.

Так происходит только если текст команды не вмещается в длину строки и перемещён на следующую. Как следствие, становится проблематично или вовсе невозможно исправить что-либо в середине строки.

Для примера, чтобы воспроизвести этот баг, выполнить например такую строку:

export PS1='\e[1;30m\]\t \e[1;32m\]\u\e[1;33m\]@\e[1;32m\]\h: \e[1;36m\]\W/\n\e[1;35m\]>\e[1;30m\]'

Кто-нибудь сталкивался с этим? Что происходит? Как бороться?

 ,

Dreamdrawer
()

Cmus. Как очистить плейлист?

Форум — Desktop

Функция очистки плейлиста не работает. Т. е. она работает только если активирована вкладка плейлиста и курсор сфокусирован на списке треков (а не списке плейлистов, где курсор находится изначально, при открытии вкладки «Playlist»).

Так происходит, если давать команду очистки через внутренний интерфейс, т. е. посредством команды clear, но так же и в случае выполнения cmus-remote -c

Соответственно вопрос — как дать команду «очистить содержимое конкретного плейлиста (*default)»?

Это надо для того, чтобы заменить текущий плейлист новыми треками. Не удобно для этого переключать фокус на плеер -> открывать вкладку с плейлистом -> переключаться на список треков -> давать команду очистки -> и только тогда добавлять новые файлы.
Неужели этот алгоритм является нормой для пользователей cmus?

 ,

Dreamdrawer
()

Cmus. Замена плейлиста

Форум — Desktop

Условия:

  • Воспроизводится трек из плейлиста.

Задача:

  • остановить текущий трек;
  • очистить плейлист;
  • добавить в плейлист файлы из папки;
  • инициировать воспроизведение первого трека в плейлисте.

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

Логически, должно работать так

cmus-remote -s -c -P "adding/dirs/" -p

но не работает (

 

Dreamdrawer
()

i3wm. Не переключаться на рабочее место

Форум — Desktop

Как запустить приложение на определённом рабочем месте, но не переключаться на это рабочее место?

Т. е. находясь в workspace 1 запустить приложение в workspace 5, оставаясь в workspace 1.

Требование — приложение должно вызываться горячей клавишей, т. е. вариант no_focus для всего класса окон не годится.

 

Dreamdrawer
()

MPV. Модифицировать скрипт

Форум — Development

Есть скрипт-плагин для плеера mpv, который показывает минималистичный GUI, в частности отображая истёкшее/оставшееся время, а в верхней части экрана отображает системное время. Как заменить системное время на общую продолжительность файла?

 , ,

Dreamdrawer
()

Firefox. Подружить новую вкладку с локальным файлом

Форум — Desktop

Как сделать, чтобы в новой вкладке открывался html файл c локального диска?

Я знаю, что возможность установки локального файла для новой вкладки была заблокирована разработчиками, но быть может есть лазейки?

Надежду на это мне подарило дополнение New Tab Override, которое таки позволяет это сделать, но этот вариант меня не устраивает, ввиду того, что во вкладках, создаваемых расширениями (тех. страницах) не работают жесты мыши и прочий функционал, реализованный другими дополнениями.

Также, можно установить локальный файл для домашней страницы, но для новой вкладки возможно установить лишь открытие домашней страницы (по умолчанию), которая является совсем не тем, что установлено в качестве домашней страницы.

 

Dreamdrawer
()

Firefox 68 и полосы прокрутки

Форум — Desktop

После обновления Firefox до версии 68, полосы прокрутки не подхватывают настройки системной темы (Linux gtk+3), т. е. выглядят как в теме по умолчанию. Остальные элементы интерфейса берут настройки из темы корректно. Выглядит ужасно. Особенно с тёмной темой светлые полосы прокрутки.
Да, можно поменять посредством userCSS, но это не интересно.
Занимательно, что на страницах «настроек», «дополнений» и пр. полосы прокрутки берут общесистемную тему.

Что вообще происходит и как это изменить?
Как заставить использовать общесистемную тему?

 , ,

Dreamdrawer
()

MPV. Несколько горячих клавиш для одной команды

Форум — Development

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

function add_keybinds()

  mp.add_forced_key_binding('k', 'moveup', moveup, "repeatable")
  mp.add_forced_key_binding('л', 'moveup', moveup, "repeatable")

end

Как привязать несколько клавиш для одной команды?

Контекст кода здесь: GitHub - playlist manager for mpv

 ,

Dreamdrawer
()

LUA. Сочетания клавиш в кириллической раскладке

Форум — Development

Имеется скрипт, который выводит простенькое меню, а перемещения по нему реализуются клавишами «j» и «k»:

...
local bookmarkerControls = {
j = function() jumpSlot(1) end,
k = function() jumpSlot(-1) end,
}
...

(клавиши эти менять на стрелки не хочу)
добавляю в этот блок кириллические символы:

о = function() jumpSlot(1) end,
л = function() jumpSlot(-1) end,

в результате скрипт работать перестаёт.
С другими скриптами такое срабатывало, но запись там была несколько по-другому организована.

Как добавить сочетания клавиш для русской раскладки?

 

Dreamdrawer
()

Нумерация строк в Rofi

Форум — General

Возможно ли уговорить Rofi отображать номера строк?
Вроде rofi.fixed-num-lines: true должен за это отвечать, но на деле вообще никакого эффекта не производит.
Быть может скрипт какой бывает?
В идеале, что бы он ещё и вызывать мог строку, при нажатии клавиши с цифрой, соответствующей номеру строки.

 

Dreamdrawer
()

Пусковая установка Rofi и пользовательские клавосочетания

Форум — General

В конфиге Rofi обнаружил некие зарезервированные команды

! Custom keybinding 1 - 19
rofi.kb-custom-1:	Alt+1
rofi.kb-custom-2:	Alt+2
rofi.kb-custom-3:	Alt+3
... e. t. c.

не могу взять в толк, что они должны делать. В руководстве их описания не нашёл. Логически, на них можно подвязать произвольные команды. Но где их прописывать тогда? Кто пользуется или знает смысл этих kb-custom, просветите пожалуйста.

 

Dreamdrawer
()

i3blocks и три раскладки

Форум — General

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

i3blocks.conf

[kbd]
interval=1
command=xset -q|grep LED| awk '{ if (substr ($10,5,1) == 1) print "РУС\nРУС"; else print "ENG\nENG"; }'

но так отображаются только две раскладки.
Как сюда добавить отображение третьей раскладки?

 , , ,

Dreamdrawer
()

Gnome-mpv не работает с конфигом MPV

Форум — Desktop

Gnome-mpv отказывается подхватывать настройки клавиш из конфига MPV.
Указывал в настройках
«загрузить файл конфигурации ввода MPV»
~/.config/mpv/input.conf
но в результате ничего не меняется и плеер продолжает работать с дефолтными клавишами. У кого-нибудь получалось подцепить input.conf ? Как делали?

 , ,

Dreamdrawer
()

XKB. Функциональные клавиши для раскладок

Форум — Desktop

Задумал реализовать для каждой раскладки своё собственное значение Fn-клавиш.
Т. е. в английской раскладке они должны играть роль Fn-клавиш (F1-F12), а в русской служить цифрами.

Как только не пробовал указывать, создавал отдельные файлы и указывал их в keymap.xkb, прописывал непосредственно для каждой раскладки, но всякий раз при загрузке раскладки попросту отключаются иксы (мгновенно).

Вот пример:

default partial function_keys
xkb_symbols "fkey2vt" {

	key.type [ Group1 ] = "CTRL+ALT";
	key.type [ Group2 ] = "CTRL+ALT";
                name[Group1] = "Modal";
                name[Group2] = "Latin";

    key <FK01> {[ F1, F1, XF86_Switch_VT_1 ],
    	       	[ 1, F1 ]};
    key <FK02> {[ F2, F2, XF86_Switch_VT_2 ],
    	       	[ 2, F2 ]};

// ... e. t. c.
};

Для других клавиш подобный способ срабатывает без проблем.
Использование уровней не подходит. Разве только если есть способ переключаться на уровни без обратного действия, т. е. клавиша переключения на уровень должна только активировать его, но не деактивировать при повторном нажатии.

 , , ,

Dreamdrawer
()

XKB. Назначить сочетание клавиш на одну клавишу

Форум — Desktop

Как реализовать посредством XKB отправку последовательности клавиш, например `Ctrl+C', при нажатии одной клавиши (например `С'?

Пробовал так:

//xkb/symbols
    key <AB03> {[ Uffe3+U63, C ]};
но это не работает.

 

Dreamdrawer
()

i3wm+plasma5. Артефакты при перерисовке интерфейса

Форум — Desktop

При отрисовке элементов интерфейса проявляются «фантомные» изображения.

Например.
Открываю изображение (в любой программе).
Закрываю.
Открываю «меню приложений» — в момент отрисовки вместо открывающегося элемента интерфейса несколько мгновений показывает изображение, которое было открыто ранее (а нынче закрыто).

Отчего так происходит и как это можно исправить?

 ,

Dreamdrawer
()

меняется тема курсора

Форум — Desktop

Установлен менеджер окон i3 в среду Plasma 5.
Курсор меняет внешний вид когда оказывается в зоне видимости элементов менеджера i3, в частности в области заголовков окон и панели состояния (панель статуса).

Тема курсоров указана как для qt так и gtk, т. е. проблема где-то в другом месте.

Есть идеи куда ещё смотреть?

 , ,

Dreamdrawer
()

RSS подписка на новые темы