scorpid
Перешел на pikaur, все отлично работает. Советую :)
не советую ;-) pikaur частично несовместим по опциям c pacman, например даёт ошибку параметра --quiet
pikaur -Syu ; когда очередь дошла до обновления AUR-пакетов, конкретно cloudcross не собирался из-за старого ключа.
pikaur показывал ошибку сборки, собирал все следующие пакеты, затем вываливался с ошибкой: СБОЙ (неизвестный открытый ключ cloudcross…
Установка уже собранных пакетов не выполнялась. Я ошибки не видел, т.к. у меня обновление идёт автоматически.
более легковесный trizen отрабатывает нормально, т.е. ставит всё, конечно, исключая тот пакет, который не собрался.
vs220
А systemd-inhibit на powerdevil не действует?
Надо, чтобы комп всё же «засыпал». А если блокировать по имени процесса игры, то комп вообще не заснёт, даже если нет событий мыши\клавы:

systemd-inhibit --mode=block «имя процесса игры»
vasek - в таком варианте cat читает бесконечно, а мне нужно прерывание через секунд 30. read -t 30 не помогает…

vasek
я так и не понял смысл всего этого … неужели нельзя обойтись вообще без этого?
Дано: игра запускается в отдельном сеансе, например tty2. В основном tty1 для энергосбережения используется powerdevil.
Если играть в tty2 только мышью, то powerdevil почему-то считает комп бездействующим и запускает скрипт перехода в ждущий режим.
Чтобы комп не «засыпал», я добавил в скрипт проверку на события мыши, т.к. на нажатия клавиатуры powerdevil реагирует адекватно.
Как сохранить данные с устройства, например /dev/random или любого другого, в переменную вместо файла?

>/tmp/mouse_event
(cat /dev/input/mice | od -t x1 -w8 >> /tmp/mouse_event &)
sleep 3 #сколько ждать событий мыши
catpid=$(ps -eo pid,args | grep "cat /dev/input/mice" | head -1 | cut -d' ' -f3)
[[ -n $catpid ]] && kill -15 $catpid && fuser -k /tmp/mouse_event
[[ $(wc -l </tmp/mouse_event) -gt 1 ]] && echo MOUSE || echo SLEEP
этот код нужен, чтобы powerdevil не включал спящий режим - отслеживание событий мыши во всех Xorg-сеансах.
akorop
s1kls Выложено на AUR
переключалка раскладок удобная, но есть хотелка - выполнять после переключении каждой раскладки свою команду, или просто разный beep для каждой раскладки.
Допустим, указано 2 (или 3) клавиши, переключающие раскладки ru-en-uk. Нужно добавить звуковую индикацию переключения, разную для каждой раскладки, например однократный, двукратный, трёхкратный beep.
Или более универсальный метод - при наличии определённых ключей при переключении 1,2… раскладки выполнять 1,2… команду.

Это возможно ожидать в новых версиях?
Как известно, в .desktop-ярлыке необходим полный путь в Exec= для приложения, которое отсутствует в $PATH
Для портабельных приложений есть типичный способ запуска из любого каталога:
Name=Double Commander (portable)
Exec=bash -c 'cd "$(dirname "%k")"; ./doublecmd --config-dir=./'

Предлагаю ещё 2 способа выполнить скрипт, который «вложен» в .desktop-ярлык либо расположен рядом:

# создать из .desktop файла скрипт /tmp/имя_ярлыка.sh, содержащий строки после #!/bin/bash
Exec=bash -c "desk=\\$(echo %k); sh=/tmp/\\$(basename \\${desk// /_} .desktop).sh; sed '/^#!\\/bin\\/bash/,\\$!d;s/^# //' \\"\\$desk\\" >\\$sh; sh \\$sh %F" #список Drag-n Drop файлов
# запустить одноимённый ярлыку скрипт, т.е. путь/имя ярлыка.sh
Exec=bash -c "desk=\\$(echo %k); sh=\\"\\${desk%.desktop}.sh\\"; test -s \\"\\$sh\\" && sh \\"\\$sh\\" || Xdialog –title Script –infobox \\"Скрипт вернул код Ошибки \\$? или \nодноимённый ярлыку скрипт не найден!\\" 0x0 5000"
P.S. bash-код в ярлыке можно не комментировать, если у вас KDE, который обрабатывает в .desktop только валидные строки.
Некоторые окружения Рабочего стола (XFCE и видимо весь Gnome) некорректно запускают .desktop-файлы, выполняя строки, не соответствущие спецификации.

То есть, используя 1 способ, имеем только .desktop-ярлык, который может содержать сложный скрипт.
Потестируйте, может в этом способе есть недостатки? Скрипт для тестирования:
#!/bin/bash

desktop="$HOME/Desktop/bash long.desktop"
# ярлык, запускающий скрипт, на который можно перетаскивать файлы. код закомментирован после строки #!/bin/bash. /tmp/имя_ярлыка.sh создаётся из .desktop файла

sed '/^\[Desktop Entry]/,$!d' "$0" >"$desktop"; chmod ugo+x "$desktop"
kioclient5 exec "$desktop"
exit

[Desktop Entry]
Name=bash script
Type=Application
Icon=application-default-icon
Terminal=0
# создать из .desktop файла скрипт /tmp/имя_ярлыка.sh, содержащий строки после #!/bin/bash
Exec=bash -c "desk=\\$(echo %k); sh=/tmp/\\$(basename \\${desk// /_} .desktop).sh; sed '/^#!\\/bin\\/bash/,\\$!d;s/^# //' \\"\\$desk\\" >\\$sh; sh \\$sh %F" #список Drag-n Drop файлов
# запустиь одноимённый ярлыку скрипт, т.е. путь/имя ярлыка.sh
# Exec=bash -c "desk=\\$(echo %k); sh=\\"\\${desk%.desktop}.sh\\"; test -s \\"\\$sh\\" && sh \\"\\$sh\\" || Xdialog --title Script --infobox \\"Скрипт вернул код Ошибки \\$? или \nодноимённый ярлыку скрипт не найден!\\" 0x0 5000"

#!/bin/bash
# which_ex(){ for temp; do set -- $temp
# 		local exe=$(basename "$(which "$1" 2>/dev/null)" 2>/dev/null)
# 		((${#exe})) && { printf $exe; break;}; done
# }
# BEEP(){ # sound [AF*500 Гц] [.second] [repeat] +sox,alsa-utils
# 	for (( i=1; i <= ${3:-1}; i++ )); do case $(which_ex -one play /bin/beep) in
# 		beep) env -u SUDO_GID -u SUDO_COMMAND -u SUDO_USER -u SUDO_UID /bin/beep || /bin/beep ;;
# 		play) (play -n -c1 synth $(bc<<<"scale=2;${2:-5}/50") sine $[ ${1:-9}*100 ] 2>/dev/null)&
# 			sleep $(bc<<<0.03*${2:-5}) ;;
# 		esac; done
# }
# [[ -n $@ ]] && files="Files:\n$@"
# BEEP; Xdialog --title "include script" --infobox " Execute complete!${files:+\n${files}}" 0x0 5000
indeviral
Да и вообще менять яркость на внешнем мониторе это зачем?
Разная яркость монитора в зависимости от освещения в комнате, в графическом редакторе нужен режим sRGB, для фильмов цвета поярче, для серфинга «Стандартный режим»…
Оптимальные цвета проще переключать по i2c, или вместе с запуском нужной программы, чем выбирать в меню монитора.
vasek
В первую очередь использовать самое простое xbacklight, работает практически всегда, за исключением wayland.
Изменение через xrandr искажает цвета, не меняя энергопотребление. Правильный подход - регулировать яркость/контраст именно монитора, или backlight для ноутбука.
vasek
не понятна фраза
Dobrov
amdgpu-pro не использую. у меня драйвер стандартный на обычной рабочей станции.
xf86-video-amdgpu - это и есть открытый драйвер АДМ, а проприетарный это amdgpu-pro

vasek
лучше не использовать эти глючные утилиты. Есть же другие способы изменения яркости без этих сложных утилит.
Изменение регистров (яркость, пресеты, переключение входов и прочее) работает, но иногда не с первого раза…
Какие: «другие способы изменения яркости»? (исключая вариант тянуться к кнопкам монитора)
vasek
Dobrov
Хотелось бы менять яркость и другие режимы монитора утилитой ddcutil
Интересно узнать, чем же этот способ лучше других ???
Сделал скрипт изменения яркости по Hotkeys, пока только для ddccontrol, но хотел бы проверять, что установлено у пользователя: ddcutil или ddccontrol.

vasek
indeviral
https://www.ddcutil.com/adl/
AMD PRORIETARY DRIVER
amdgpu-pro не использую. у меня драйвер стандартный на обычной рабочей станции. Спасибо, с ключом --force-slave-address яркость меняется:
ddcutil --force-slave-address setvcp 10 75
но с ошибками:
(i2c_set_addr) Error in ioctl(I2C_SLAVE), errno=EBUSY(16): Device or resource busy
(i2c_set_addr                  ) Retrying using IOCTL op I2C_SLAVE_FORCE for address 0x50
(i2c_set_addr                  ) addr = 0x50. Returning OK(0): success
sudo ddcutil –force-slave-address detect вот выжимки из лога:
Found connector: card1-DVI-D-1
    /sys/class/drm/card1/card1-DVI-D-1/status: connected

Summary of udev I2C devices
   i2c-dev     i2c-8      AMDGPU DM i2c hw bus 2              /devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-8/i2c-dev/i2c-8

Examining /sys/bus/i2c/devices...
   /sys/bus/i2c/devices/i2c-3/name:   i915 gmbus dpd
   /sys/bus/i2c/devices/i2c-1/name:   i915 gmbus dpc
   /sys/bus/i2c/devices/i2c-8/name:   AMDGPU DM i2c hw bus 2
   /sys/bus/i2c/devices/i2c-6/name:   dmdc
   /sys/bus/i2c/devices/0-0053/name:  eeprom

   Bus /dev/i2c-8 found:   true
   Bus /dev/i2c-8 probed:  true
   Bus accessible:          true
   Bus is eDP:              false
   Valid bus name checked:  true
   I2C bus has valid name:  true
   Address 0x50 present:    false

   Examining device /dev/i2c-8...
      Functionality: I2C_FUNC_I2C, I2C_FUNC_SMBUS_PEC, I2C_FUNC_SMBUS_QUICK,
                     I2C_FUNC_SMBUS_READ_BYTE, I2C_FUNC_SMBUS_WRITE_BYTE,
                     I2C_FUNC_SMBUS_READ_BYTE_DATA, I2C_FUNC_SMBUS_WRITE_BYTE_DATA,
                     I2C_FUNC_SMBUS_READ_WORD_DATA, I2C_FUNC_SMBUS_WRITE_WORD_DATA,
                     I2C_FUNC_SMBUS_PROC_CALL, I2C_FUNC_SMBUS_WRITE_BLOCK_DATA,
                     I2C_FUNC_SMBUS_READ_I2C_BLOCK, I2C_FUNC_SMBUS_WRITE_I2C_BLOCK
(i2c_set_addr                  ) addr = 0x50. Returning EBUSY(-16): Device or resource busy
      Unable to read EDID, psc=EBUSY(-16): Device or resource busy

      Trying simple VCP read of feature 0x10...
      read() returned 6e 88 88 02 00 10 00 00 64 00 4b
      Attempt 1 to read feature failed. status = DDCRC_DDC_DATA(-3001): DDC data error.  Retrying...
      read() returned 6e 88 02 00 10 00 00 64 00 4b 8b
      Attempt 2 to read feature succeeded.
      DDC communication succeeded

   ***One Device ***
   path: /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-8/i2c-dev/i2c-8
   Device Node Path: /dev/i2c-8
      struct udev_device at: 0x55f05f7c9780
         devpath:   /devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-8/i2c-dev/i2c-8
         subsystem: i2c-dev
         devtype:   (null)
         syspath:   /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-8/i2c-dev/i2c-8
         sysname:   i2c-8
         sysnum:    8
         devnode:   /dev/i2c-8
         Properties:
            DEVNAME -> /dev/i2c-8
            DEVPATH -> /devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-8/i2c-dev/i2c-8
            MAJOR -> 89
            MINOR -> 8
            SUBSYSTEM -> i2c-dev
         Sysattrs:
            dev -> 89:8
            device -> (null)
            name -> AMDGPU DM i2c hw bus 2
            subsystem -> i2c-dev
            uevent -> MAJOR=89
                      MINOR=8
                      DEVNAME=i2c-8