LINUX.ORG.RU

Добавляем клавишу hibernate на на клавиатуру, где такой нет

 , , ,


0

1

Решил сыскать клавиатуру по душе. Душа у меня тонкая, но широкая. В общем, клавиатура будет очень скромной, самой олдфажной раскладки, с правоверной формой Enter. Но среди таких не сыскал ни одной, где были бы Fn+Sleep, к которой я очень привык. Теперь ведь практически никогда не выключаю комп наглухо.

Какие существуют варианты приспособить какое-нибудь сочетание клавиш, или переназначить ненужные клавиши, типа PrintScreen, ScrollLock, чтобы заменить недостающие кнопки?



Последнее исправление: CrX (всего исправлений: 3)
Ответ на: комментарий от vbcnthfkmnth123

Я бы на твоем месте прописал это в настройках оконного менеджера, кажется так проще будет

Я бы тоже прописал, если бы знал как оно должно выглядеть в i3 . :(

Csandriel_x64
() автор топика
Последнее исправление: Csandriel_x64 (всего исправлений: 1)

Существует миллион способов, как это сделать. Один из самых простых (для KDE) - это приложение «Параметры системы» (/usr/bin/systemsettings) , Клавиатура / Комбинации клавиш / Управление питанием / Перейти в спящий режим.

PeleWin
()
Ответ на: комментарий от Csandriel_x64

как оно должно выглядеть в i3

Просто повесить на клавишу. Как-нибудь так:

bindsym Print  exec --no-startup-id systemctl hibernate # systemctl --help

Если в слаке есть systemctl?

dmitry237 ★★★★★
()
Последнее исправление: dmitry237 (всего исправлений: 1)

Какие существуют варианты приспособить какое-нибудь сочетание клавиш, или переназначить ненужные клавиши

  1. Использовать клавиатуру на прошивке QMK, тогда можно редактировать коды нажатых клавиш через VIA или VIAL. (или ZMK для беспроводных клав).
  2. Использовать программы типа kanata, kmonad, keyd - там можно определять слои, модификаторы, сложные комбинации клавиш и макросы.
sigurd ★★★★★
()
Последнее исправление: sigurd (всего исправлений: 1)
Ответ на: комментарий от Csandriel_x64

Значит ты неправильно сформулировал вопрос.

Кстати, я тоже долгое время использовал клавишу на клаве для сна, но потом купил отдельную кнопку power, и вот это очень удобно, рекомендую, если тянуться до кнопки на сис. блоке неудобно.

papin-aziat ★★★★★
()

У тебя есть целых 12 функциональных, программируемых клавиш, специально созданных для автоматизации.

Fn+Sleep

Это костыль, когда функциональная клавиша уже чем-то занята, и для активации этого чего-то надо ещё клавишу нажать, нажимай Ctrl+Fномер, например Ctrl+F8

:)

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от dmitry237

Если в слаке есть systemctl?

Разумеется, нет. Слака – правоверный дистрибутив. В нем нет троянского коня тысячелетия.

Между тем, я нашевелил, с помощью гугла, скриптец

#!/bin/bash
sync
echo -n suspend > /sys/power/disk
echo -n disk > /sys/power/state

И на этом примере лишний раз убедился, что systemd не упрощает, а многомерно усложняет не только систему саму по себе, но и управление ею. Прокладка, существующая лишь затем, чтобы отдетлить пользователя от прямого управления Linux. Для чего – ну предлагаю пофантазировать, зачем Поттерингу понадобилась прокладка между машиной и пользователем, на правах монопольного мендежера системы, глобальньй зависимости, как софта так и пользователя.

Осталось разобраться, как этот скрпитец присобачить к горячим клавишам, и выбрать на каком именно уровне: для wm или для иксов в целом.

А еще остается вопрос обеспечения прав доступа. AI насоветовал вписать скриптик в sudoers, через visudo. (пока не пробовал). По диагонали просмотрев man к нему, нахожу, это было одно из первых дыр средств, дающих возможность юзеру всунуть хобот туда, куда только root, от сотвореия Линукса, смел совать свой.

Может олдфаги расскажут, так ли нужен был теперь этот policy-kit моржовый?

Csandriel_x64
() автор топика
Последнее исправление: Csandriel_x64 (всего исправлений: 3)
Ответ на: комментарий от LINUX-ORG-RU

У тебя есть целых 12 функциональных, программируемых клавиш, специально созданных для автоматизации.

Благодарю. Я аж поверил в себя. В самом деле. Ковырну эту историю на досуге.

Csandriel_x64
() автор топика
Ответ на: комментарий от Csandriel_x64

AI насоветовал вписать скриптик в sudoers

Не слушай его :)

У нас же есть PolicyKit, можно сделать с его помощью. Например, можно наваять нечто такое: В /etc/polkit-1/rules.d положить файл org.user.powercfg.rules следующего содержания:

polkit.addRule(function(action, subject) {
    if (action.id == "org.user.powercfg" &&
        subject.local &&
        subject.active {
            return polkit.Result.YES;
    }
});

И в /etc/polkit-1/actions/ положить файл следующего содержания:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">

<policyconfig>
  <vendor>myself</vendor>
  <vendor_url>https://example.org</vendor_url>
  <icon_name>power</icon_name>
  <action id="org.user.powercfg">
    <description>Power management actions by the user</description>
     <defaults>
      <allow_any>no</allow_any>
      <allow_inactive>no</allow_inactive>
      <allow_active>auth_self</allow_active>
    </defaults>
  </action>
</policyconfig>

Ещё бы понять, как твой скриптик с клавиатурным сочетанием подружить :)

yars068 ★★★★★
()
Последнее исправление: yars068 (всего исправлений: 1)
Ответ на: комментарий от Csandriel_x64

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

Религия? Ну пишите скрипты, чтобы увести комп в hibernate или suspend.

Осталось разобраться, как этот скрпитец присобачить к горячим клавишам

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

PS. Можно еще почитать SlackWiki

dmitry237 ★★★★★
()
Последнее исправление: dmitry237 (всего исправлений: 1)
Ответ на: комментарий от dmitry237

Религия?

Более того. Священная война за чистоту общественного продукта от интервенции со стороны корпораций, стремящихся к технологической узурпации наследия предков. Пока существуют слаквариоры, адепты Генту, стражи FreeBSDы и подобные подвижники, корпорации не сумеют окочательно сделать троянский конь тысячелетия абсолютной зависимостью для всех.

Я вам показал рабочий пример

Спасибо. Я где-то что-то щелкнул клювом, да. Это очень похоже на i3.config скриптуру.

Csandriel_x64
() автор топика
Последнее исправление: Csandriel_x64 (всего исправлений: 3)
Ответ на: комментарий от yars068

Ну если есть такая клавиатура, да =) Ну или через shift (вроде) они эмулируются, которые больше 12.

А вообще жаль что не суют все 24. Так как просто нажатия на F1…F12 часто уже заняты умолчательными действиями, типа F1 справка, F11 на весь экран и так далее, просто пустой ряд функциональных клавиш F13…F24 на которых ничего и нигде не висит гарантированно, был бы к стати, и не надо никаких модификаторов пожимать. Тык и всё, даже если они нужны редко. Больше кнопок, богу кнопок!

Хотя, отдельный блок с кнопками именно для всяких своих дел, вроде популярны, типа как цифровой блок отдельный, только не цифровой блок.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

Эмулируются, но, к сожалению, насколько я понимаю, это умеет только mc, а xev так вообще распознаёт Shift+Fx как клавиатурное сочетание. Но вроде бы никто не мешает жать хоть Ctrl+Shift+Fx.

yars068 ★★★★★
()
Ответ на: комментарий от yars068

У меня есть прикольный блок цифровой с помойки :) От стационарного телефона

Всё хочу присобачить к этому atmega8 эмулирующим USB клавиатуру и навесить кнопки, тут к слову хорошая идея будет все F13…F24 коды отсылать и ещё 4 целых для чегонить останется, ну можно что-то ещё 4 с модификаторами схимичить. В деревянную коробочку встроить, проводок высунуть и красота, прикольно будет.

LINUX-ORG-RU ★★★★★
()

В линуксе на сканкод любой клавиши можно элекментарно повесить любой кейкод через /etc/udev/hwdb.d/keyboard.hwdb

Подробно - Переназначение клавиш на самом глубоком, ядерном уровне? (комментарий)

Тебе надо будет что-то типа

evdev:input:b0011v0001p0001* <--- ID твоей клавы из /proc/bus/input/devices
  KEYBOARD_KEY_<сканкод нужной тебе кнопки>=sleep
Stanson ★★★★★
()