Hcommands » History » Version 1
Stefan Mark, 03/07/2021 09:04 AM
| 1 | 1 | Stefan Mark | h1. nxhelper Commands |
|---|---|---|---|
| 2 | |||
| 3 | |||
| 4 | h2. nxbacklightctrl |
||
| 5 | |||
| 6 | <pre> |
||
| 7 | nxbacklightctrl [up, down, cur, set value] |
||
| 8 | </pre> |
||
| 9 | |||
| 10 | |||
| 11 | Manipulates the display backlight. The Display used is either the first in _/sys/class/backlight/_ or the value of key _bright_path_. |
||
| 12 | * **cur** echos the current brightness |
||
| 13 | * **set value** sets the current brightness to `cur` |
||
| 14 | * **up**, **down** increases or decreases the brightness by value of key _bright_steps_ |
||
| 15 | > Later additional commands will be added: **bright** (sets macimum brightness), **dark** (sets minimum (key _dark_brightness_) brightness), **max** (echos max brightness)\ |
||
| 16 | > Currently only usable as root (directly accessing backlight in sys). Later, it shall become usable for users by utilizing **nxsysdaemon** |
||
| 17 | |||
| 18 | h2. nxdisplaydaemon |
||
| 19 | |||
| 20 | <pre> |
||
| 21 | nxdisplaydaemon [-d[d]] [-t]` |
||
| 22 | </pre> |
||
| 23 | |||
| 24 | Manages brightness (using **nxsysdaemon** ) and screen locking (with **nxulock**). Does _not_ do power management. Leave that to dpms! When startet with `-d` or `-dd` prints out some or many debug messages. When start with `-t` (implies `-d`), sets darken timeouts to 5 Seconds. |
||
| 25 | |||
| 26 | Keys: |
||
| 27 | * _darken_timeout_ (default: 30s): inactivity time untils brightnes is reduced |
||
| 28 | * _darken_ac_timeout_ (default: 2 * _darken_timeout_): same but when connected to mains |
||
| 29 | * _lock_timeout_ (default: 300s): inactivity time until screen is locked |
||
| 30 | * _lock_ac_timeout_ (default: cfg.lock_timeout): same but when connected to mains |
||
| 31 | * _lock_save_timeout_ (default: 0): same but when docked or connected to a safe network |
||
| 32 | * _save_networks_ (default: ""): ESSID considered to be safe (see above), for example at home. |
||
| 33 | * _dock_is_save_ (default: false): Being docked is considered to be safe |
||
| 34 | * _pseudo_dock_, (default: ""): "VENDOR:DEVICE" string of a USB device which indicates safeness (eg a USB dock) |
||
| 35 | * _fade_step_duration_ (default: 0.1): duration of a step when fading the brightness up or down |
||
| 36 | * _dark_brightness_ (default: 1): darkest brightness when dimming down after inactivity |
||
| 37 | * _bright_fade_steps_ (default: 20): Amout of steps from maximum to minimal brightness |
||
| 38 | > There are many things to do. Both save_networks and pseudo_dock shall become arrays. Default values for _fade_step_duration_ and _bright_fade_steps_ shall be calculated suitably to the displays maximum brightness and possible amount of steps and a new key _fade_time_.\ |
||
| 39 | > Also, i will investigate how Gnome and KDE make it so that many videos will disable screen locking. At least some very common cases shall be supported. |
||
| 40 | |||
| 41 | h2. nxlid |
||
| 42 | |||
| 43 | <pre> |
||
| 44 | nxlid open/close |
||
| 45 | </pre> |
||
| 46 | |||
| 47 | Should be run by acpid for "button.*(LID).*close" and *open. For open, sends signal SIGHUP to **nxrandrd** (see there). For close sends SIGHUP to **nxrandrd** (see there) when docked (see `is_docked` in **nxhshlib**), otherwise calls `nxsuspend mem`. |
||
| 48 | > This is totally a stub |
||
| 49 | |||
| 50 | h2. nxrandr |
||
| 51 | |||
| 52 | <pre> |
||
| 53 | nxrandr [initialize] [silent] [debug] |
||
| 54 | </pre> |
||
| 55 | |||
| 56 | Automagically initializes multihead setups using xrandr. By default, nxrandr iterates through all connected displays, sets them to `--auto` and `--left-of` the one before. As that is boring, it tries to load _$NX_CONFIG_HOME/nxrandr.rc, which is supposed to be a bash script. See the examples one, it is pretty well documented. |
||
| 57 | As nxrandr is supposed to be called by **nxrandrd** upon changes to the connected displays, it tries to detect misfirings. Those usually happen as multiple, indistuingishable firings after connecteing or disconnecting a display. These multiple firings are detected by simply ignoring events in short succession. |
||
| 58 | |||
| 59 | > Note: The handling of multiple / misleading / wrong xrandr-events can become quite tricky. More on that in the example nxrandr.rc. Those events are may also be bugs in **nxrandrd** (see there) |
||
| 60 | |||
| 61 | h2. nxsdwhisper |
||
| 62 | |||
| 63 | <pre> |
||
| 64 | nxsdwhisper message |
||
| 65 | </pre> |
||
| 66 | |||
| 67 | Echos what **nxsysdaemon** answers to `message`. Returns 0 on success, 1 otherwise. |
||
| 68 | |||
| 69 | h2. nxsysdaemon |
||
| 70 | |||
| 71 | <pre> |
||
| 72 | nxsysdaemon [-d] [-g GID] |
||
| 73 | </pre> |
||
| 74 | |||
| 75 | A user-accessible interface to (a very small part of) /sys. Debug mode (`-d`) prints out all communication and disables daemonizing. Communications happens through a named pipe (/run/nxsysdaemon_fifo), by default the group 998 has write access. The group can be set by `-g GID`. |
||
| 76 | |||
| 77 | Protocoll: |
||
| 78 | * gpv [string]: returns the protocol version |
||
| 79 | * gcb [number]: returns current brightness |
||
| 80 | * gmb [number]: returns maximum brightness |
||
| 81 | * scbNUMBER [boolean]: sets current brightness to NUMBER, returns success |
||
| 82 | * iac [boolean]: returns 1 when connected to mains |
||
| 83 | |||
| 84 | > Note: This should probably provide much more features. For example batteries. And more.\ |
||
| 85 | > Note: Currently only support ONE display for brightness. Should support many.\ |
||
| 86 | > Note: Currently only support ONE power source for iac. Should support many.\ |
||
| 87 | > Note: The named pipes location should be configurable.\ |
||
| 88 | |||
| 89 | > Side note: this does not use DBus. Not because we find DBus particulary evil, but to keep the number of dependencies small.\ |
||
| 90 | > A future feature might be optional DBus support. Maybe implementing (part) of upower or something like that. |
||
| 91 | |||
| 92 | > This project is _especially_ open for more features. But keep in mind that this shall always remain a pretty thin layer. And look at the protocol. Its primitive, and shall remain so. |
||
| 93 | |||
| 94 | h2. nxulock |
||
| 95 | |||
| 96 | <pre> |
||
| 97 | nxulock -t |
||
| 98 | </pre> |
||
| 99 | |||
| 100 | Locks the screen. Uses value of key _lockApp_ if set, otherwise: csxlock, sxlock, slock xscreensaver. Uses **nxhshlibs** `prime_user` to find the current user owning an X11 session (see there). If the current user is neither that nor root, screen locking fails. |
||
| 101 | When `-t` is set returns 0 when the screen was already locked by nxulock and echos the PID of the current screen locker. Return 1 otherwise. |
||
| 102 | > Note: Screen locking should work at least also when the current user is not the prime_user but has an X11 session nontheless. The whole thing is somewhat b0rky. See **nxhshlibs** `prime_user` for more on that. Anyway. _Works for me_ |
||
| 103 | |||
| 104 | h2. nxunotify |
||
| 105 | |||
| 106 | <pre> |
||
| 107 | nxunotify |
||
| 108 | </pre> |
||
| 109 | |||
| 110 | A wrapper for notify-send. When called as root, uses **nxhshlibs** `prime_user` to get the current X11 user and use notify-send as that user. Sets notify-send's `-a` parameter to the calling processes' name. All parameters are send through. |
||
| 111 | > Use with care (as root user), as one can never be quite sure which user gets the message. |
||
| 112 | |||
| 113 | h2. nxurandr |
||
| 114 | |||
| 115 | <pre> |
||
| 116 | nxrandr |
||
| 117 | </pre> |
||
| 118 | |||
| 119 | Execs the value of key _randrApp_. When called as root, uses **nxhshlibs** `prime_user` to get the current X11 user and exec the value of key _randrApp_ in that users X session. Used to bind a xrandr-GUI-tool to an ACPI-key. |
||
| 120 | > This is a stub. Should rather become universal. |
||
| 121 | |||
| 122 | h2. nxwall |
||
| 123 | |||
| 124 | <pre> |
||
| 125 | nxwall path setter |
||
| 126 | </pre> |
||
| 127 | |||
| 128 | Randomly pics an image from `path` (recursive), and sets that as X-wallpaper using `setter`. |
||
| 129 | |||
| 130 | h2. nxxdg |
||
| 131 | |||
| 132 | <pre> |
||
| 133 | nxxdg [get file] [set aplication file] |
||
| 134 | </pre> |
||
| 135 | |||
| 136 | Either `get`s `file`s mimetype (via xdg-mime) or `set`s `application` as handler for `file`s mimetype (via xdg-mime). Makes working with xdg-open a wee bit less painfull. Stull hurts. A lot. |
||
| 137 | > Total stub. WIP. More an idea. Dont look. |
||
| 138 | |||
| 139 | h2. nxxsel |
||
| 140 | |||
| 141 | <pre> |
||
| 142 | nxxsel |
||
| 143 | </pre> |
||
| 144 | |||
| 145 | Displays a menu to select the X session to start. |
||
| 146 | > Now THIS is most stubby stub of all. Its literally just the menu I use. Completly static. Well, one can copy and modify it. But no worries, i intend to improve this.\ |
||
| 147 | > Might be moved to nxinit |
||
| 148 | |||
| 149 | h2. wait_wm |
||
| 150 | |||
| 151 | <pre> |
||
| 152 | wait_wm |
||
| 153 | </pre> |
||
| 154 | |||
| 155 | Simply waits until there is window manager present. Usefull for X initialization. Some thing to not like to be started before a window manager appears. |
||
| 156 | > Might be moved to nxinit |