# Variables Variables contain information about the current state of the environment and input. They can be used in conditions or passed to commands. ## Global variables :::{list-table} :header-rows: 1 * - Name - Type - Description * - cursor_shape - *enum(alias, all_scroll, col_resize, copy, crosshair, default, e_resize, ew_resize, grab, grabbing, help, move, n_resize, ne_resize, nesw_resize, not_allowed, ns_resize, nw_resize, nwse_resize, pointer, progress, row_resize, s_resize, se_resize, sw_resize, text, up_arrow, w_resize, wait)* - Requires the application to use the cursor shape protocol. Will work in Qt 6 applications, may work in GTK applications, will not work in Qt 5 applications. See table at for preview. * - finger_{1..5}_initial_position_percentage - *point* - The initial position of the finger. This variable should be preferred over ``finger_{1..5}_position_percentage`` for swipe from edge triggers. * - finger_{1..5}_position_percentage - *point* - Absolute current position of the finger as a percentage. Ranges from ``0.0`` to ``1.0``. * - finger_{1..5}_pressure - *number* - * - fingers - *number* - Amount of fingers currently on the input device. Does not change thorough the trigger. * - keyboard_modifiers - *flags(alt, ctrl, meta, shift)* - Currently pressed keyboard modifiers. Does not change thorough the trigger. * - last_trigger_id - *string* - ID (*[](/trigger).id*) of the last trigger that was updated or ended. * - max_finger_distance_percentage - *number* - Maximum distance between two fingers as a percentage of the diagonal. * - plasma_overview_active - *bool* - Whether Plasma's overview is active. * - pointer_position_screen_percentage - *point* - Pointer position relative to the top-left corner of the screen it is currently on as a percentage. * - pointer_position_window_percentage - *point* - Pointer position relative to the top-left corner of the window it is currently hovering over as a percentage. * - screen_name - *string* - Name of the currently active screen. * - thumb_present - *bool* - Whether a thumb is currently present on the input device. * - thumb_initial_position_percentage - *point* - See ``finger_{1..5}_initial_position_percentage``. * - thumb_position_percentage - *point* - See ``finger_{1..5}_position_percentage``. * - time_since_last_trigger - *time* - Time in milliseconds since ``last_trigger_id`` was set. * - window_class
window_under_fingers_class
window_under_pointer_class - *string* - The window's resource class. * - window_fullscreen
window_under_fingers_fullscreen
window_under_pointer_fullscreen - *bool* - Whether the window is fullscreen. * - window_id
window_under_fingers_id
window_under_pointer_id - *string* - The window's identifier. * - window_maximized
window_under_fingers_maximized
window_under_pointer_maximized - *bool* - Whether the window is maximized. * - window_name
window_under_fingers_name
window_under_pointer_name - *string* - The window's resource name. * - window_pid
window_under_fingers_pid
window_under_pointer_pid - *number* - The window's process ID. * - window_title
window_under_fingers_title
window_under_pointer_title - *string* - The window's title. ::: All variables of the *point* type have variants with the ``_x`` and ``_y`` suffixes that return the X and Y values respectively. ``window_`` variables refer to the active window, ``window_under_pointer_`` - window under the cursor and ``window_under_fingers_`` - window under the finger placed on a touchscreen (in case of multiple fingers, under the center). ## Commands Variables can be referenced in commands (``$name``) and will be provided as environment variables if the value is not null. For boolean variables, the value of the environment variable will be ``1`` if ``true``, and will not be set at all if ``false``. ## Listing variables Some information that the user may need during configuration is exposed through variables. Run ``inputactions variables list`` to list all variables and their current values, can be combined with ``watch -n [time] [command]`` to update automatically. ## Saving variables for later use This is currently not possible, however if the variable only needs to be used in a command, a non-conflicting action may be used to write its value to a file: ```yaml - on: begin conflicting: false # Safe to use even in stroke triggers command: echo "$window_under_pointer_pid" > /tmp/inputactions_var - on: end command: kill -9 "$(cat /tmp/inputactions_var)" ```