Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
nx-libs
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
dimbor
nx-libs
Commits
161515d2
Commit
161515d2
authored
Dec 02, 2018
by
Ulrich Sibiller
Committed by
Mike Gabriel
Dec 19, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
nxagent: add additional keyboard config option rmlvo
Add possibility to pass more than model and layout via the keyboard parameter.
parent
1de6ca59
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
38 additions
and
7 deletions
+38
-7
Keyboard.c
nx-X11/programs/Xserver/hw/nxagent/Keyboard.c
+29
-5
nxagent.1
nx-X11/programs/Xserver/hw/nxagent/man/nxagent.1
+9
-2
No files found.
nx-X11/programs/Xserver/hw/nxagent/Keyboard.c
View file @
161515d2
...
@@ -774,8 +774,33 @@ XkbError:
...
@@ -774,8 +774,33 @@ XkbError:
goto
XkbError
;
goto
XkbError
;
}
}
model
=
strndup
(
nxagentKeyboard
,
i
);
/*
layout
=
strdup
(
&
nxagentKeyboard
[
i
+
1
]);
The original nxagent only supports model/layout values
here. It uses these values together with the default rules
and empty variant and options. We use a more or less
compatible hack here: The special keyword rlmvo for model
means that the layout part of the string will contain a
full RMLVO config, separated by #, e.g.
rlmvo/base#pc105#de,us#nodeadkeys#lv3:rwin_switch
*/
if
(
strncmp
(
nxagentKeyboard
,
"rlmvo/"
,
6
)
==
0
)
{
const
char
*
sep
=
"#"
;
char
*
rmlvo
=
strdup
(
&
nxagentKeyboard
[
i
+
1
]);
char
*
tmp
=
rmlvo
;
/* strtok cannot handle empty fields, so use strsep */
rules
=
strdup
(
strsep
(
&
tmp
,
sep
));
model
=
strdup
(
strsep
(
&
tmp
,
sep
));
layout
=
strdup
(
strsep
(
&
tmp
,
sep
));
variant
=
strdup
(
strsep
(
&
tmp
,
sep
));
options
=
strdup
(
strsep
(
&
tmp
,
sep
));
free
(
rmlvo
);
}
else
{
model
=
strndup
(
nxagentKeyboard
,
i
);
layout
=
strdup
(
&
nxagentKeyboard
[
i
+
1
]);
}
/*
/*
* There is no description for pc105 on Solaris.
* There is no description for pc105 on Solaris.
...
@@ -783,8 +808,8 @@ XkbError:
...
@@ -783,8 +808,8 @@ XkbError:
*/
*/
#ifdef TEST
#ifdef TEST
fprintf
(
stderr
,
"
nxagentKeyboardProc: Using keyboard model [%s] with layout [%s
].
\n
"
,
fprintf
(
stderr
,
"
%s: Using [rules='%s',model='%s',layout='%s',variant='%s',options='%s'
].
\n
"
,
model
,
layout
);
__func__
,
rules
,
model
,
layout
,
variant
,
options
);
#endif
#endif
#ifdef __sun
#ifdef __sun
...
@@ -793,7 +818,6 @@ XkbError:
...
@@ -793,7 +818,6 @@ XkbError:
{
{
#ifdef TEST
#ifdef TEST
fprintf
(
stderr
,
"nxagentKeyboardProc: WARNING! Keyboard model 'pc105' unsupported on Solaris.
\n
"
);
fprintf
(
stderr
,
"nxagentKeyboardProc: WARNING! Keyboard model 'pc105' unsupported on Solaris.
\n
"
);
fprintf
(
stderr
,
"nxagentKeyboardProc: WARNING! Forcing keyboard model to 'pc104'.
\n
"
);
fprintf
(
stderr
,
"nxagentKeyboardProc: WARNING! Forcing keyboard model to 'pc104'.
\n
"
);
#endif
#endif
...
...
nx-X11/programs/Xserver/hw/nxagent/man/nxagent.1
View file @
161515d2
...
@@ -603,7 +603,7 @@ start or resume a session in fullscreen mode (default: off)
...
@@ -603,7 +603,7 @@ start or resume a session in fullscreen mode (default: off)
.TP 8
.TP 8
.B keyboard=<string> or kbtype=<string>
.B keyboard=<string> or kbtype=<string>
.BR query | clone | <model>/<layout>
.BR query | clone | <model>/<layout>
| rmlvo/<rules>#<model>#<layout>#<variant>#<options>
.RS 8
.RS 8
.TP 8
.TP 8
...
@@ -624,8 +624,15 @@ compatibility reasons it is not the default.
...
@@ -624,8 +624,15 @@ compatibility reasons it is not the default.
.TP 8
.TP 8
.I <model>/<layout>
.I <model>/<layout>
use the given model and layout. You can not modify keyboard rules,
use the given model and layout. You can not modify keyboard rules,
variant or options. Instead preset values are used. These are
variant or options
this way
. Instead preset values are used. These are
\fIbase\fR for rules and empty strings for variant and options.
\fIbase\fR for rules and empty strings for variant and options.
.TP 8
.I rmlvo/<rules>#<model>#<layout>#<variant>#<options>
configure the keyboard according to the rmlvo
(Rules+Model+Layout+Variant+Options) description given after the / and
separated by #. This can be used to fully pass the keyboard
configuration of \fBnxagent\fR right after the start. Example:
rmlvo/base#pc105#de,us#nodeadkeys#lv3:rwin_switch
.RE
.RE
.TP 8
.TP 8
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment