LINUX.ORG.RU

Сообщения Dreamdrawer

 

Как отобразить список файлов в emacs-dashboard

Форум — General

Как уговорить dashboard прочесть произвольный (указанный) файл со списком файлов, и отобразить этот список?

Т. е. то же, что он делает с «недавними» файлами и «закладками», только задача проще.

Поскольку не рублю в эти ваши лиспы, попробовал сделать по аналогии, вышло вот что:

(use-package dashboard
  :ensure t
  :config
  (dashboard-setup-startup-hook)
  (setq dashboard-items '((listfiles    . 5)))

;; my-files-list
;;
(defun dashboard-insert-my-files-list (list-size)
  "Add the list of LIST-SIZE items from recently edited files."
  (dashboard-insert-section
   "List Files:"
   my-files-list
   list-size
   "f"
   `(lambda (&rest ignore) (find-file "~/.emacs.d/my-files-list.txt"))
   ))

(defcustom dashboard-item-generators  '((listfiles   . dashboard-insert-my-files-list))
  "Association list of items to how to generate in the startup buffer.
Will be of the form `(list-type . list-function)'.
Possible values for list-type are: `recents', `bookmarks', `projects',
`agenda' ,`registers'."
  :type  '(repeat (alist :key-type symbol :value-type function))
  :group 'dashboard)
)

но, естественно, не работает.
Насколько я могу понять, надо корректно сформулировать секцию «dashboard-insert-my-files-list».

 ,

Dreamdrawer
()

i3blocks. Выполнение команды в отдельном процессе

Форум — Desktop

Использую связку i3wm+i3blocks.
В i3blocks стоит индикатор состояния плеера deadbeef (отдельным скриптом).
На индикаторе, помимо отображения, прикручена обработка событий для мыши — «колесо» крутит громкость, «клик» ставит на паузу/воспроизведение.

Всё работает, но есть момент.
Пауза/воспроизведение реализуется командой deadbeef --play-pause. Если эту команду выполнить в консоли при закрытом плеере, то плеер будет запущен.
Но вот из скрипта плеер запускается, но перестаёт обрабатываться индикатором. Т. е. плеер как будто запускается в каком-то подпроцессе. Кстати, если перезапустить оболочку i3wm, плеер будет выключен, в то время как если запустить его отдельной командой, он продолжает работать.

Соответственно вопрос, если я правильно понял проблему, как сделать, чтобы плеер запускался самостоятельным процессом?

Код индикатора:

#!/bin/bash

# иконки состояний
ICON_PLAY="[⏴]"
ICON_PAUSE="[⏸]"
ICON_STOP="проигрыватель остановлен [⏹]"
ICON_OFF="проигрыватель выключен [⏻]"
SONG=$(deadbeef --nowplaying-tf '%tracknumber%. %title% \ %playback_time% / %length%')

# проверить включена ли программа
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 "$SONG $ICON_PLAY"
elif [[ "$CALC" -eq "14" ]];
then echo "$SONG $ICON_PAUSE"
elif [[ "$CALC" -eq "15" ]];
then echo "$ICON_STOP"
elif [[ "$STATE" -eq "20" ]];
then echo "$ICON_OFF"
fi

case $BLOCK_BUTTON in
  # левым кликом поставить на паузу
  1) exec nohup deadbeef --play-pause && > /dev/null; exec pkill -SIGRTMIN+12 i3blocks ;;
  # средним кликом отключить звук
  2) ponymix toggle >/dev/null ;;
  # правым кликом передать фокус
  3) i3-msg workspace 4 ;;
  # Прокрутка вниз
  4) ponymix increase 5 >/dev/null; exec pkill -SIGRTMIN+10 i3blocks ;;
  # Прокрутка вниз
  5) ponymix decrease 5 >/dev/null; exec pkill -SIGRTMIN+10 i3blocks ;;
esac

 , , ,

Dreamdrawer
()

Firefox. Как изменить красный цвет выделения орфографических ошибок?

Форум — General

Как и где определяется цвет выделения орфографических ошибок (spellchecker)?
Тот, который по умолчанию красный и определяется параметром ui.SpellCheckerUnderline.

В идеале, изменить на уровне темы gtk, но сойдёт и на уровне браузерного userChrome.css.

 , ,

Dreamdrawer
()

Как заставить i3wm читать ~/.bashrc?

Форум — Desktop

Пути для некоторых программ прописаны в ~/.bashrc

вроде этого:

if [ -d /opt/deadbeef/bin ]; then
     export PATH=/opt/deadbeef/bin:$PATH
fi

Но менеджер окон, по всей видимости, запускается раньше, чем считывается файл ~/.bashrc, из-за чего все программы запущенные из i3wm не видят этих путей.

Соответственно вижу два варианта решения — заставить i3wm читать ~/.bashrc или заставить систему читать ~/.bashrc до запуска i3wm.

Как это реализовать?

 , ,

Dreamdrawer
()

Debian. Как правильно запускать менеджер окон?

Форум — Desktop

Чистый Дебиан 10 + i3wm.

Возникают проблемы в программах, запущенных автоматически при страте i3wm или через меню запуска i3wm.

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

Проблемы, в основном с обработкой нажатия клавиш. Ввод в полях ввода воспринимается нормально, и работают комбинации типа Alt/Ctrl+клавиша, но не работают команды, назначенные на одну клавишу или комбинацию с Shift.

Раскладка — кастомный XKB — вызывается также из автозапуска i3wm. DM — LightDM. Но ранее, также, запускал через startx — проблема сохраняется, но перестают подхватываться темы для qt.

Судя по всему, проблема упирается в корректность запуска окружения.

Делаю так: установил LightDM, прописал в ~/.xinitrc строку:
exec i3

Что я делаю не так и как сделать это правильно?

UPD.:
В корне неверная постановка вопроса. Проблемы оказались с путями к запускаемым программам.

Переезжаю со своим вопросом в новую тему — с более корректной формулировкой.

 , , ,

Dreamdrawer
()

Emacs. Скрыть строки

Форум — Development

Как сделать, чтобы при открытии файла в орг-моде были скрыты все строки, которые начинаются с определённой последовательности символов, например «abc…»?

 ,

Dreamdrawer
()

Emacs. Выделение текста в org-mode

Форум — General

Как реализовать выделение текста в org-mode между последовательностью символов, которые в свою очередь должны быть скрыты? Так как это реализовано в markdown, например для выделения кода с помощью трёх апострофов:

` ` `
с новой строки содержимое блока
...
многострочное
` ` `

Требуется нечто похожее на org-emphasis-alist, только с произвольным набором символов, которых будет более одного и должны уметь охватывать произвольное количество строк.

Да, есть ещё такая штука

#+BEGIN_SRC emacs-lisp
блок кода
...
#+END_SRC

но эти маркеры громоздкие, их невозможно скрыть, слишком массивно выглядят в тексте. Для больших объёмов даже удобно, поскольку могут сворачиваться, но для размещения в тексте кода на одну-две строки чрезмерны.

Ещё раз обобщу требования

  1. маркеры из произвольного набор сиволов;
  2. маркеры должны быть скрыты;
  3. маркеры должны обрабатывать многострочный текст.

Расскажите, а чем вы пользуетесь для решения этой задачи? Как выделяете текст/код в орг-заметках?

 , ,

Dreamdrawer
()

MPV. Открыть ссылку из буфера обмена

Форум — Desktop

Как передать плееру ссылку скопированную в буфер обмена?

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

 

Dreamdrawer
()

MPV. Очистить экран перед выводом сообщения

Форум — Desktop

Есть ли команда, которая убирает сообщения с экрана?
Задача в том, чтобы перед выводом требуемого сообщения (например плейлиста) убрать другие сообщения, которые могут отображаться в этот момент.
Т. е. повесить на горячую клавишу последовательное выполнение команд, первая из которых будет очищать экран от сообщений перед выполнением нужной команды.

 

Dreamdrawer
()

MPV. При запуске загрузить файлы, открытые в прошлый раз

Форум — Desktop

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

 

Dreamdrawer
()

Firefox. «Инспектор» не открывает файл с пользовательским стилем

Форум — Desktop

Почему я не могу открыть файл с пользовательским стилем (userChrome.css или userContent.css) через инспектор в Developer Tools?

В инспекторе я нахожу нужное правило, оно подсвечивается темным фоном, и надпись в скобках гласит:

(user agent) userChrome.css:номер_строки

Обычно, нажатие на эту надпись переключает на вкладку «Style Editor» и открывает соответствующий файл для редактирования. Но с пользовательскими стилями это не работает. Как будто файл заблокирован.

Но при этом, можно вручную переключиться на вкладку «Style Editor» и без проблем открыть этот файл. Вот только там огромный список css-файлов и найти нужный среди них очень сложно. Задача усложняется отсутствием поискового механизма.

А в случае с userContent.css, так он и вовсе в списке не отображается.

 ,

Dreamdrawer
()

XKB. Выделение без Shift

Форум — General

Как реализовать способ выделения без необходимости удерживать клавишу Shift средствами XKB?

Теоретически, это даже реализовано посредством зажатия двух шифтов:
key <LFSH> {[ Shift_L, Shift_Lock ]};

Но хотелось бы переназначить на привычный ModX+SPC.
Казалось бы, следуя логике, делаю по аналогии:
key <SPCE> {[ space, Shift_Lock ]};
Перечитываю XKB, ошибок не показывает. Но не работает. Т. е. попросту никак на реагирует на заданное сочетание ModX+SPC. А вдобавок, начинает вести себя чертовски непредсказуемым образом — часть клавиш начинает пропечатываться заглавными буквами, смена регистра начинает происходить после нажатия практически любого модификатора. Логику в поведении можно проследить, но не вижу смысла описывать, поскольку вести себя так не должно. Лечится возвратом к стандартному определению key <SPCE> {[ space ]};.

  1. Прошу подтвердить на собственном опыте, — у вас это будет работать так же (с такими же «артефактами»)?

  2. Существуют ли альтернативные способы реализации поставленной задачи средствами XKB?

 

Dreamdrawer
()

i3blocks. Сломался индикатор

Форум — Desktop

Перестал отрисовываться индикатор раскладки. Он работал исправно многие месяцы, но после недавнего обновления перестал. Есть другие варианты, которые работают, но мне необходим именно этот, поскольку умеет отображать три раскладки и показывать их определённым образом. В общем, отказываться от него я бы не хотел. Что в нём некорректно записано, чего может нехватать?

/.config/i3/i3blocks.conf:

[keyboard-layout]
command=~/.config/i3/xkb_layout
markup=pango
interval=1
signal=11
separator=false

/.config/i3/xkb_layout:

#!/bin/sh

LAYOUT=$(xkblayout-state print "%n" | awk '{print toupper($0)}')

case $LAYOUT in
    "LAT")
        echo -n "<span foreground='#268bd2' weight='bold' background='#00181F'> "
        echo -n ${LAYOUT}
        echo -n " </span>"
	;;
    "CYR")
        echo -n "<span foreground='#cb4b16' weight='bold' background='#00181F'> "
        echo -n ${LAYOUT}
        echo -n " </span>"
	;;
    "MOD")
        echo -n "<span foreground='#00181F' weight='bold' background='#859900'> "
        echo -n ${LAYOUT}
        echo -n " </span>"
esac

 ,

Dreamdrawer
()

Emacs. Операция копирования без копирования

Форум — Development

Извините, вопрос снят. Проблемы не было, я неверно понял функцию.

Админ, удали тему.

 ,

Dreamdrawer
()

GTK2. Стиль для определённого состояния виджета

Форум — Development

Возможно ли применить стиль к определённому состоянию виджета в теме gtk2?
Например для кнопки, которая нажата.
Т. е. реализовать разное поведение, в зависимости от состояния.
Что-нибудь вроде:

class "GtkButton::pressed" 	style "button-pressed"

 ,

Dreamdrawer
()

GTK. Свой набор цветов в диалоге выбора цвета

Форум — Development

Где хранится набор цветовых образцов, который предлагается в диалоге выбора цвета? Для приложений gtk2 и gtk3 они берутся из разных источников?

 ,

Dreamdrawer
()

Rofi. Запретить выгружать программу из памяти

Форум — Desktop

Хочу добиться от Rofi мгновенного отзыва.
Возможно ли каким-то образом держать в памяти постоянно?

 ,

Dreamdrawer
()

Emacs. Hydra. Non-latin input

Форум — General

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

Я что-то не так делаю или у всех так?

(use-package hydra
  :ensure t
  :commands defhydra
  :bind ("C-d" . hydra-common-commands/body)
  :config

   (defhydra hydra-common-commands
     ("v"   hydra-undo-tree/body)
     ("z"   hydra-zoom/body)
     ("d"   hydra-drag/body)
     ("b"   hydra-buffer-list/body)
     ("q"   nil "quit"))

   (defhydra hydra-undo-tree
     "
визуальный режим отмены
"
     ("v" undo-tree-visualize)
     ("h" undo-tree-visualize-switch-branch-left)
     ("l" undo-tree-visualize-switch-branch-right)
     ("k" undo-tree-visualize-undo)
     ("j" undo-tree-visualize-redo)
     ("s" undo-tree-save-history)
     ("S-s" undo-tree-load-history)
     ("q" nil "выйти" :color blue))

...

 

Dreamdrawer
()

urxvt. Назначение горячих клавиш

Форум — Desktop

Вроде простая и очевидная задача, но описаний толковых найти не смог. Общий принцип такой:
Rxvt*keysym.Shift-Control-H:\033[3~
но совершенно непонятно, откуда получать эти эскейп-последовательности вида \033[3~

Вот например, как выглядит команда удалить_слово? И где это искать?

 ,

Dreamdrawer
()

XKB. Как выявить ошибку

Форум — Desktop

Самодельная раскладка по неизвестным причинам отключает иксы и не даёт залогиниться. Методом тыка обнаружил, что проблема возникает только если изменяешь функциональные клавиши (F1-F12). Раскладку подключаю командой:
xkbcomp -I$HOME/.config/xkb $HOME/.config/xkb/keymap.xkb $DISPLAY

Как определить проблему?

 ,

Dreamdrawer
()

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