wm4Nx is a port of twm, Tab Window Manager (or Tom's Window Manager)
version 1.0.10 to NuttX NX windows server. No, a port is not the right
word. It is a re-design of TWM from the inside out to work with the NuttX
NX server. The name Twm4Nx reflects this legacy. But Twm4Nx is more a
homage to TWM than a port of TWM.
The original TWM was based on X11 which provides a rich set of features.
TWM provided titlebars, shaped windows, several forms of icon management,
user-defined macro functions, click-to-type and pointer-driven keyboard
focus, graphic contexts, and user-specified key and pointer button bindings,
etc.
Twm4Nx, on the other hand is based on the NuttX NX server which provides
comparatively minimal support. Additional drawing support comes from
the NuttX NxWidgets library (which necessitated the change to C++).
Twm4Nx is greatly stripped down and targeted on small embedded systems
with minimal resources. For example, no assumption is made about the
availability of a file system; no .twmrc file is used. Bitmaps are not
used (other than for fonts).
The TWM license is, I believe compatible with the BSD license used by NuttX.
The origin TWM license required notice of copyrights within each file and
a full copy of the original license which you can find in the COPYING file.
within this directory.
STATUS:
This port was brutal. Much TWM logic was removed because it depending on X11 features (or just because I could not understand how to use it). The logic is partial. A lot more needs to be done to have a complete system (hence, it is marked EXPERIMENTAL). The kinds of things that need to done are:
1. Update some logic that is only fragmentary for how like resizing, and menus.
2. Integrate NxWidgets into the windows: The resize menu needs a CLabel, the menus are CListBox'es, but not completely integrated, the Icon Manager needs to be a button array.
3. Resit Icons. They are windows now, but need to be compound widgets lying on the background.
4. Widget events are only partially integrated. A lot more needs to be done. A partial change to thoe event system that hints at the redesign is in place but it is far from complete.
2019-04-26 00:54:17 +02:00
|
|
|
#
|
|
|
|
# For a description of the syntax of this configuration file,
|
|
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
|
|
|
#
|
|
|
|
|
2019-05-02 17:19:45 +02:00
|
|
|
menuconfig GRAPHICS_TWM4NX
|
wm4Nx is a port of twm, Tab Window Manager (or Tom's Window Manager)
version 1.0.10 to NuttX NX windows server. No, a port is not the right
word. It is a re-design of TWM from the inside out to work with the NuttX
NX server. The name Twm4Nx reflects this legacy. But Twm4Nx is more a
homage to TWM than a port of TWM.
The original TWM was based on X11 which provides a rich set of features.
TWM provided titlebars, shaped windows, several forms of icon management,
user-defined macro functions, click-to-type and pointer-driven keyboard
focus, graphic contexts, and user-specified key and pointer button bindings,
etc.
Twm4Nx, on the other hand is based on the NuttX NX server which provides
comparatively minimal support. Additional drawing support comes from
the NuttX NxWidgets library (which necessitated the change to C++).
Twm4Nx is greatly stripped down and targeted on small embedded systems
with minimal resources. For example, no assumption is made about the
availability of a file system; no .twmrc file is used. Bitmaps are not
used (other than for fonts).
The TWM license is, I believe compatible with the BSD license used by NuttX.
The origin TWM license required notice of copyrights within each file and
a full copy of the original license which you can find in the COPYING file.
within this directory.
STATUS:
This port was brutal. Much TWM logic was removed because it depending on X11 features (or just because I could not understand how to use it). The logic is partial. A lot more needs to be done to have a complete system (hence, it is marked EXPERIMENTAL). The kinds of things that need to done are:
1. Update some logic that is only fragmentary for how like resizing, and menus.
2. Integrate NxWidgets into the windows: The resize menu needs a CLabel, the menus are CListBox'es, but not completely integrated, the Icon Manager needs to be a button array.
3. Resit Icons. They are windows now, but need to be compound widgets lying on the background.
4. Widget events are only partially integrated. A lot more needs to be done. A partial change to thoe event system that hints at the redesign is in place but it is far from complete.
2019-04-26 00:54:17 +02:00
|
|
|
tristate "Minimal Tom's Window Manager (TWM) for NuttX (Twm4Nx)"
|
|
|
|
default n
|
|
|
|
select NX_RAMBACKED
|
|
|
|
select NXWIDGETS
|
2019-06-01 04:44:02 +02:00
|
|
|
depends on NX && HAVE_CXX
|
wm4Nx is a port of twm, Tab Window Manager (or Tom's Window Manager)
version 1.0.10 to NuttX NX windows server. No, a port is not the right
word. It is a re-design of TWM from the inside out to work with the NuttX
NX server. The name Twm4Nx reflects this legacy. But Twm4Nx is more a
homage to TWM than a port of TWM.
The original TWM was based on X11 which provides a rich set of features.
TWM provided titlebars, shaped windows, several forms of icon management,
user-defined macro functions, click-to-type and pointer-driven keyboard
focus, graphic contexts, and user-specified key and pointer button bindings,
etc.
Twm4Nx, on the other hand is based on the NuttX NX server which provides
comparatively minimal support. Additional drawing support comes from
the NuttX NxWidgets library (which necessitated the change to C++).
Twm4Nx is greatly stripped down and targeted on small embedded systems
with minimal resources. For example, no assumption is made about the
availability of a file system; no .twmrc file is used. Bitmaps are not
used (other than for fonts).
The TWM license is, I believe compatible with the BSD license used by NuttX.
The origin TWM license required notice of copyrights within each file and
a full copy of the original license which you can find in the COPYING file.
within this directory.
STATUS:
This port was brutal. Much TWM logic was removed because it depending on X11 features (or just because I could not understand how to use it). The logic is partial. A lot more needs to be done to have a complete system (hence, it is marked EXPERIMENTAL). The kinds of things that need to done are:
1. Update some logic that is only fragmentary for how like resizing, and menus.
2. Integrate NxWidgets into the windows: The resize menu needs a CLabel, the menus are CListBox'es, but not completely integrated, the Icon Manager needs to be a button array.
3. Resit Icons. They are windows now, but need to be compound widgets lying on the background.
4. Widget events are only partially integrated. A lot more needs to be done. A partial change to thoe event system that hints at the redesign is in place but it is far from complete.
2019-04-26 00:54:17 +02:00
|
|
|
---help---
|
|
|
|
Enable Tom's Window Manager (TWM) for NuttX (Twm4Nx).
|
|
|
|
|
|
|
|
Use of this window manager requires keyboard and mouse input.
|
|
|
|
Output is through the NX server.
|
|
|
|
|
|
|
|
if GRAPHICS_TWM4NX
|
|
|
|
|
2019-05-20 19:01:46 +02:00
|
|
|
comment "Twm4Nx Core Configuration"
|
|
|
|
|
wm4Nx is a port of twm, Tab Window Manager (or Tom's Window Manager)
version 1.0.10 to NuttX NX windows server. No, a port is not the right
word. It is a re-design of TWM from the inside out to work with the NuttX
NX server. The name Twm4Nx reflects this legacy. But Twm4Nx is more a
homage to TWM than a port of TWM.
The original TWM was based on X11 which provides a rich set of features.
TWM provided titlebars, shaped windows, several forms of icon management,
user-defined macro functions, click-to-type and pointer-driven keyboard
focus, graphic contexts, and user-specified key and pointer button bindings,
etc.
Twm4Nx, on the other hand is based on the NuttX NX server which provides
comparatively minimal support. Additional drawing support comes from
the NuttX NxWidgets library (which necessitated the change to C++).
Twm4Nx is greatly stripped down and targeted on small embedded systems
with minimal resources. For example, no assumption is made about the
availability of a file system; no .twmrc file is used. Bitmaps are not
used (other than for fonts).
The TWM license is, I believe compatible with the BSD license used by NuttX.
The origin TWM license required notice of copyrights within each file and
a full copy of the original license which you can find in the COPYING file.
within this directory.
STATUS:
This port was brutal. Much TWM logic was removed because it depending on X11 features (or just because I could not understand how to use it). The logic is partial. A lot more needs to be done to have a complete system (hence, it is marked EXPERIMENTAL). The kinds of things that need to done are:
1. Update some logic that is only fragmentary for how like resizing, and menus.
2. Integrate NxWidgets into the windows: The resize menu needs a CLabel, the menus are CListBox'es, but not completely integrated, the Icon Manager needs to be a button array.
3. Resit Icons. They are windows now, but need to be compound widgets lying on the background.
4. Widget events are only partially integrated. A lot more needs to be done. A partial change to thoe event system that hints at the redesign is in place but it is far from complete.
2019-04-26 00:54:17 +02:00
|
|
|
config TWM4NX_PROGNAME
|
|
|
|
string "Twm4Nx program name"
|
|
|
|
default "twm4nx"
|
|
|
|
---help---
|
2019-08-23 19:59:28 +02:00
|
|
|
This is the name of the program that will be used when the NSH ELF
|
wm4Nx is a port of twm, Tab Window Manager (or Tom's Window Manager)
version 1.0.10 to NuttX NX windows server. No, a port is not the right
word. It is a re-design of TWM from the inside out to work with the NuttX
NX server. The name Twm4Nx reflects this legacy. But Twm4Nx is more a
homage to TWM than a port of TWM.
The original TWM was based on X11 which provides a rich set of features.
TWM provided titlebars, shaped windows, several forms of icon management,
user-defined macro functions, click-to-type and pointer-driven keyboard
focus, graphic contexts, and user-specified key and pointer button bindings,
etc.
Twm4Nx, on the other hand is based on the NuttX NX server which provides
comparatively minimal support. Additional drawing support comes from
the NuttX NxWidgets library (which necessitated the change to C++).
Twm4Nx is greatly stripped down and targeted on small embedded systems
with minimal resources. For example, no assumption is made about the
availability of a file system; no .twmrc file is used. Bitmaps are not
used (other than for fonts).
The TWM license is, I believe compatible with the BSD license used by NuttX.
The origin TWM license required notice of copyrights within each file and
a full copy of the original license which you can find in the COPYING file.
within this directory.
STATUS:
This port was brutal. Much TWM logic was removed because it depending on X11 features (or just because I could not understand how to use it). The logic is partial. A lot more needs to be done to have a complete system (hence, it is marked EXPERIMENTAL). The kinds of things that need to done are:
1. Update some logic that is only fragmentary for how like resizing, and menus.
2. Integrate NxWidgets into the windows: The resize menu needs a CLabel, the menus are CListBox'es, but not completely integrated, the Icon Manager needs to be a button array.
3. Resit Icons. They are windows now, but need to be compound widgets lying on the background.
4. Widget events are only partially integrated. A lot more needs to be done. A partial change to thoe event system that hints at the redesign is in place but it is far from complete.
2019-04-26 00:54:17 +02:00
|
|
|
program is installed.
|
|
|
|
|
|
|
|
config TWM4NX_PRIORITY
|
|
|
|
int "Twm4Nx task priority"
|
|
|
|
default 100
|
|
|
|
|
|
|
|
config TWM4NX_STACKSIZE
|
|
|
|
int "Twm4Nx stack size"
|
|
|
|
default 2048
|
|
|
|
|
|
|
|
config TWM4NX_REVMAJOR
|
|
|
|
string "Twm4Nx major version number"
|
|
|
|
default "0"
|
|
|
|
|
|
|
|
config TWM4NX_REVMINOR
|
|
|
|
string "Twm4Nx minor version number"
|
|
|
|
default "0"
|
|
|
|
|
2019-04-29 19:49:15 +02:00
|
|
|
config TWM4NX_ARCHINIT
|
|
|
|
bool "Have architecture-specific initialization"
|
|
|
|
default n
|
|
|
|
select LIB_BOARDCTL
|
|
|
|
depends on !NSH_ARCHINIT
|
|
|
|
---help---
|
|
|
|
Set if your board provides architecture specific initialization
|
|
|
|
via the board-interface function boardctl(). The boardctl()
|
|
|
|
function will be called early in Twm4Nx initialization to allow
|
|
|
|
board logic to do such things as configure MMC/SD slots.
|
|
|
|
|
|
|
|
config TWM4NX_NETINIT
|
|
|
|
bool "Network initialization"
|
|
|
|
default y
|
|
|
|
depends on NET
|
|
|
|
select NETUTILS_NETINIT
|
2019-10-07 10:37:56 +02:00
|
|
|
depends on !NSH_NETINIT
|
2019-04-29 19:49:15 +02:00
|
|
|
---help---
|
|
|
|
This option enables/disables all network initialization in Twm4Nx.
|
|
|
|
|
2019-05-04 18:33:16 +02:00
|
|
|
config TWM4NX_VNCSERVER
|
|
|
|
bool "Use VNC Server"
|
|
|
|
default y
|
|
|
|
depends on VNCSERVER
|
|
|
|
select TWM4NX_NOKEYBOARD
|
|
|
|
select TWM4NX_NOMOUSE
|
|
|
|
---help---
|
|
|
|
If selected, then keyboard and positional input will come from the
|
|
|
|
VNC server. In this case all other input settings are ignored.
|
|
|
|
|
|
|
|
config TWM4NX_NOKEYBOARD
|
|
|
|
bool "Disable keyboard"
|
|
|
|
default n
|
|
|
|
---help---
|
|
|
|
Normally you would never disable keyboard input. That would make
|
|
|
|
using many Twm4Nx applications impossible. However, this setting
|
|
|
|
is sometimes useful for debugging Twm4Nx bringup in a simpler
|
|
|
|
environment (it is also used if VNC is selected)
|
|
|
|
|
|
|
|
config TWM4NX_NOMOUSE
|
2019-05-04 20:26:14 +02:00
|
|
|
bool "Disable mouse/touchscreen"
|
2019-05-04 18:33:16 +02:00
|
|
|
default n
|
|
|
|
---help---
|
|
|
|
Normally you would never disable mouse input. That would make using
|
|
|
|
Twm4Nx impossible. However, this setting is sometimes useful for
|
2019-05-26 20:37:18 +02:00
|
|
|
debugging Twm4Nx bring-up in a simpler environment (it is also used
|
2019-05-04 18:33:16 +02:00
|
|
|
if VNC is selected)
|
|
|
|
|
2019-05-04 20:26:14 +02:00
|
|
|
choice
|
|
|
|
prompt "Position device"
|
|
|
|
default TWM4NX_MOUSE
|
|
|
|
depends on !TWM4NX_NOMOUSE
|
|
|
|
|
|
|
|
config TWM4NX_MOUSE
|
|
|
|
bool "Mouse"
|
2019-05-17 20:49:17 +02:00
|
|
|
select NX_SWCURSOR
|
2019-05-04 20:26:14 +02:00
|
|
|
|
|
|
|
config TWM4NX_TOUCHSCREEN
|
|
|
|
bool "Touchscreen"
|
|
|
|
|
|
|
|
endchoice # Position device
|
|
|
|
|
|
|
|
config TWM4NX_MOUSE_DEVPATH
|
|
|
|
string "Path to input device"
|
|
|
|
default "/dev/mouse0" if TWM4NX_MOUSE
|
|
|
|
default "/dev/input0" if TWM4NX_TOUCHSCREEN
|
|
|
|
|
2019-05-26 20:37:18 +02:00
|
|
|
config TWM4NX_KEYBOARD_DEVPATH
|
|
|
|
string "Patch to keyboard input device"
|
|
|
|
default "/dev/kbd0"
|
|
|
|
depends on !TWM4NX_NOKEYBOARD
|
|
|
|
|
2019-05-21 22:48:01 +02:00
|
|
|
choice
|
|
|
|
prompt "Twm4Nx Theme"
|
|
|
|
default TWM4NX_CLASSIC
|
|
|
|
|
|
|
|
config TWM4NX_CLASSIC
|
|
|
|
bool "Classic"
|
|
|
|
---help---
|
|
|
|
Strong bordered windows with dark primary colors. Reminiscent of
|
|
|
|
Windows 98.
|
|
|
|
|
|
|
|
config TWM4NX_CONTEMPORARY
|
|
|
|
bool "Contemporary"
|
|
|
|
---help---
|
|
|
|
Border-less windows in pastel shades for a more contemporary look.
|
|
|
|
|
|
|
|
endchoice # Twm4Nx Theme
|
|
|
|
|
2019-05-22 00:00:19 +02:00
|
|
|
config TWM4NX_ICONMGR_NCOLUMNS
|
|
|
|
int "Icon Manager columns"
|
|
|
|
default 4
|
|
|
|
---help---
|
|
|
|
The number of buttons in one row of the Icon Manager.
|
|
|
|
|
2019-05-02 17:19:45 +02:00
|
|
|
config TWM4NX_DEBUG
|
|
|
|
bool "Force debug output"
|
|
|
|
default n
|
|
|
|
depends on DEBUG_FEATURES
|
|
|
|
---help---
|
|
|
|
This option will force graphics debug output for Twm4Nx even if
|
|
|
|
graphics debug output is not enabled. This is useful for very low
|
|
|
|
level debug of the Twm4Nx logic without interfering output from
|
|
|
|
other graphics components.
|
|
|
|
|
|
|
|
NOTE: The level of this Twm4Nx debug is still controlled by the
|
|
|
|
basic debug output settings CONFIG_DEBUG_INFO, CONFIG_DEBUG_WARN,
|
|
|
|
and CONFIG_DEBUG_ERROR (but not the corresponding
|
|
|
|
CONFIG_DEBUG_GRAPHICS_* settings)
|
|
|
|
|
2019-05-20 20:06:06 +02:00
|
|
|
source "$APPSDIR/graphics/twm4nx/apps/Kconfig"
|
2019-05-12 19:57:45 +02:00
|
|
|
|
wm4Nx is a port of twm, Tab Window Manager (or Tom's Window Manager)
version 1.0.10 to NuttX NX windows server. No, a port is not the right
word. It is a re-design of TWM from the inside out to work with the NuttX
NX server. The name Twm4Nx reflects this legacy. But Twm4Nx is more a
homage to TWM than a port of TWM.
The original TWM was based on X11 which provides a rich set of features.
TWM provided titlebars, shaped windows, several forms of icon management,
user-defined macro functions, click-to-type and pointer-driven keyboard
focus, graphic contexts, and user-specified key and pointer button bindings,
etc.
Twm4Nx, on the other hand is based on the NuttX NX server which provides
comparatively minimal support. Additional drawing support comes from
the NuttX NxWidgets library (which necessitated the change to C++).
Twm4Nx is greatly stripped down and targeted on small embedded systems
with minimal resources. For example, no assumption is made about the
availability of a file system; no .twmrc file is used. Bitmaps are not
used (other than for fonts).
The TWM license is, I believe compatible with the BSD license used by NuttX.
The origin TWM license required notice of copyrights within each file and
a full copy of the original license which you can find in the COPYING file.
within this directory.
STATUS:
This port was brutal. Much TWM logic was removed because it depending on X11 features (or just because I could not understand how to use it). The logic is partial. A lot more needs to be done to have a complete system (hence, it is marked EXPERIMENTAL). The kinds of things that need to done are:
1. Update some logic that is only fragmentary for how like resizing, and menus.
2. Integrate NxWidgets into the windows: The resize menu needs a CLabel, the menus are CListBox'es, but not completely integrated, the Icon Manager needs to be a button array.
3. Resit Icons. They are windows now, but need to be compound widgets lying on the background.
4. Widget events are only partially integrated. A lot more needs to be done. A partial change to thoe event system that hints at the redesign is in place but it is far from complete.
2019-04-26 00:54:17 +02:00
|
|
|
endif # GRAPHICS_TWM4NX
|