Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
input_remap_translation(3)	 Arcan Lua API	    input_remap_translation(3)

NAME
       input_remap_translation	-  Reset  or  modify  platform	level keyboard
       translation

SYNOPSIS
       bool:ok,	string:reason or nbiotbl
       input_remap_translation(	number:devid, number:action, string:arg_1, ...
       )
       input_remap_translation(	 number:devid,	number:action,	 bool:extract,
       string:arg_1, ...  )

DESCRIPTION
       For some	low level platforms it makes sense modifying input translation
       before  the  inputs  are	 processed  and	 forwarded  onwards and	forego
       patchin in the scripting	layer. The main	case  where  this  has	caused
       problems	 is  for Arcan running as the main display server on Linux and
       BSD  machines, where the	set of tables, configuration  and  so  on  are
       highly OS  specific and can get quite complicated. This function	can be
       used to define and tune such a mapping.

       The  devid  is provided by input	devices	and is thus discovered dynami-
       cally, but it can also be indirectly probed by  sweeping	 negative  in-
       dices in	the way	shown in the example further below.

       The action  can be one out of: TRANSLATION_CLEAR	, TRANSLATION_SET  and
       TRANSLATION_REMAP .  TRANSLATION_CLEAR  is to revert as close to	as the
       initial	state as possible.  TRANSLATION_SET  is	to set/override	a com-
       plete map.  TRANSLATION_REMAP  is to add	a specific remapping.

       The set of string arguments following the action	will be	 raw-forwarded
       to the input platform and is thus platform dependent.

       It  is  also  possible to get a readable	representation of the platform
       input map through the extract  parameter	form.  With  TRANSLATION_SET
       this  will  just	give you the map based on the spec as an iostream (see
       open_nonblock ).	With TRANSLATION_REMAP	this will instead provide  the
       current	active	map.  No local modifications will be made with the ex-
       tract  form.

       The constant API_ENGINE_BUILD  can be used to obtain which input	 plat-
       form  is	 currently in use, which mutates the interpretation and	effect
       of the various actions.

       A false result means that the feature is	not supported by the platform,
       and reason  is set to some short	error message.

NOTES
       1      for the 'evdev' platform,	the order and contents of the argument
	      strings corresponds to xkb 'layout' -> 'model' ->	 'variant'  ->
	      'options'

       2

EXAMPLE
       function	input_remap_translation0()
	     if	string.match(API_ENGINE_BUILD, "evdev")	then
		   local ind = -1
		   while (input_remap_translation(ind, TRANSLATION_SET,
			 "us,cz,de", "logicordless", "basic", "grp:alt_shift_toggle")) do
			 ind = ind - 1
		   end
	     end
       end

EXAMPLE
       function	input_remap_translation1()
	     local err,	msg = input_remap_translation(6666, TRANSLATION_CLEAR)
	     if	err then
		   warning(msg)
	     end
       end

SEE ALSO:
iodev				  April	2025	    input_remap_translation(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=input_remap_translation&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help