Thanks for posting your detailed description of how to modify Xvkbd. It will be of benefit to anyone wanting to go down this route. One minor point of clarification however concerning:

Quote:

#include "XVkbd-common"
I'm not sure why it begins with the # sign.

Once you “un-comment” that line by removing the hash sign (#) in the relevant keyboard file, the copy of the modified file "XVkbd-common" is read and brought into play rather than the un-modified duplicate that is baked into the code that you cannot access or modify. It is a clever and versatile way of allowing for easy modification of the Xvkbd system.

I am still not certain that you received my PM, but have explained my thinking in that.
Other than having another stab at Webcam head control of the mouse, I propose to hold fire pending Will replying to the questions that I have raised:

Quote:

From 30th March
Will:
Can you give us some idea of the type and specification of the hardware that is likely to be used including if possible, the likely monitor sizes and resolutions?

From 1st April
Will:

Sorry to ask yet more questions but I omitted to ask about the age of the kit that may be available.

Also can you give an indication of the following in rough percentage terms?

1. Users for who head tracking would be the only option.
2. Users who could cope with both the switch solution and head tracking.
3. Only cope with the switch solution due to lack of muscular control.
4. Have poor vision.
5. Use Google voice search.

Hi ETP and All,
Word Completion: type a couple of letters and then insert into your text from a list the word or phrase beginning with those letters. For someone limited to waiting for a mouse-cursor following a prescribed pattern to reach each letter and typing one letter at a time, word completion should be of great value. But currently it isn't.
Unless, of course, I've missed something.
First problem: turning xvkbd's word-completion on. I can find no way for it to be turned on automatically when xvkbd starts. To use it, it must be turned on each time.
Second problem: To turn it on, you have to position the mouse-cursor on the MainMenu button (which bears the label “xvkbd”) and hold it down while scrolling to the word-completion listing on the pop-up menu. Those limited to a one-switch environment won't be able to turn it on.
Third problem: Word-completion's window more often than not opens at an inconvenient location and has to be moved & resized. I can find no way to set its location or dimensions before it opens.

Fourth problem: to select a word or phrase from those appearing in the word-completion window's list, the mouse-cursor must be on the desired word or phrase and a Left-click sent. Only Left-clicking works. Positioning the mouse-cursor requires exiting radar's (NavBar's) xvkbd mode. To exit xvkbd mode you have to wait for the mouse-cursor to scroll beyond the right or bottom edge of the onscreen keyboard. Some amelioration can be had by turning keypad off (this can be included in xvkbd's starup command) by positioning the Word-completion window below the onscreen keyboard, with radar positioned to its left, sort of like in the attached screen shot. Radar can probably be modified for a closer fit.
Fifth problem: Having exited xvkbd mode, to return to typing it must be re-entered: allow scrolling to begin, press button, select “more,” select “xvkbd” mode.

All-in-all, the time and aggravation involved in using word-completion exceeds whatever benefit its use presents.

Current recommendation: Don't use word-completion. Substitute LibreOffice for Abiword. LibreOffice's writer employs word-completion, albeit much more limited than that of xvkbd, if it worked.

mikeslr

PS: ETP, the last email I received from you was on April 28. I've since heard from Will. He's already using some of our work with some of the people he assists. Best email him again.

I think you may have missed my 2 posts dated 21st April which solved issues 1 to 3 inclusive.

The fourth and fifth problems are the reasons why I have only ever perceived word-completion as useful for really long words or hyphenated phrases. Only then does it become a time saver. It was also the main rational for including Chromium and having Google default to voice search in TPWNN.

LibreOffice, (In sfs form perhaps?) may be of more use but Google have recently purchased a Quantum computer and appear to be working on web based voice dictation for all. In effect a sort of on-line “Dragon Dictate” for everyone with only their browser to install.

It is encouraging and heart warming to learn that Will has been in contact. Some feedback from him on this forum would I am sure, be most welcome by all the contributors._________________Regards ETP
Pups inmy kennels.

I do not yet know whether or not this is needed, but a pet (18.5MB) is now available on my server. I have tested it on a number of Precise based pups but only with JWM. Someone may wish to try it with other WMs.

When using head mouse control, it is best to avoid having icons or panels in the centre of the screen to avoid unintentional mouse triggers. A limited number around the periphery of the screen seems to work best.

It works particularly well with Xbmc-Frodo. Have fun; a “teaser” shot is attached.

In one of my old Atari magazines, I have a word processor/ communicator that is joystick driven.
It shows a number of common words that can be selected to place in the document and inserts a space after each word.
Also partial words can be used as in one word being part of a longer word.
It is written in Atari Basic. But could possibly be programmed in another programming language.
What would make it nice is one would not have to type out words letter by letter.

Now for the bad news. I am no great programmer and the conversion could take a fair amount of time.

Do you know of anything like it ready made?
Any interest in a tried conversion of the program? (Not even started yet!)

Awhile ago darkcity mentioned a friend who might benefit if there were a variant of "one-switch" which could be operated using a joystick. While scanning the new Carolina, I got the impression that Geoffrey had some knowledge of joysticks/gamepads. So I emailed him for help enabling a joystick or gamepad to control mouse-cursor movements and he responded:

"I really don't know much about joysticks and gamepads, but I will usually find a way to get them working, most should work OOTB.

I've never had the need to use one, not even for gaming, well I'm not a gamer , I had a look at your request and found a QT application called qjoypad, I think this what you are needing, it can be configured to emulate a mouse very easily, I quickly set it up and works extremely well, I'm impress with it, all modern gamepad joysticks have a button under the stick so moving the mouse and then pushing down on the stick can act as the left mouse button.

I compiled this in Carolina but it should work with any pup with qt4 installed,[my emphasis] though I haven't tested in any other pups myself http://qjoypad.sourceforge.net/#download

I hope this proves to be useful for you

Cheers,

Geoff"

Since this will emulate a mouse, the user may not need One-switch/radar/navbar at all. The default xvkbd pet would provide an onscreen keyboard. Somewhere on this thread you'll find a 4,000+ word "common words" file which xvkbd can use with its word-completion module together with instructions on where to install it. Toward the end of this thread you'll also find an alternate keyboard placing frequently used letters close to each other. It, however, was designed for use with One-switch whose xvkbd mode runs a pattern beginning at the keyboard's top-left corner. In the next couple of days I hope to publish --thanks to a variation in how xvkbd mode works [without that automatic scrolling pattern] that SFR sent me-- a keyboard in which frequently used letters, and those they are frequently associated with, spiral out from a central space bar.
Let me know if the pet proves useful, or if there are any problems. I don't own a joystick or gamepad so I can't test.

mikesLr

Addendum: 6/10-- As I indicated above, it was my intention to write a keyboard in which frequently used letters, and those they are frequently associated with, spiral out from a central space bar. I have posted it on the MouseCam thread in the hope it may prove useful. Like those employing a joystick/gamepad, the mousecam pup does not rely on radar/Navbar. Instead it employs eviacam to control mouse movement. My post can be found here: http://murga-linux.com/puppy/viewtopic.php?p=707919#707919

As indicated in the above post, you'll find, for use with XVkbd, a keyboard file in which the most frequently employed keys spiral out from a central spacebar and, where possible, keys frequently associated with those keys are located near to them. As I've used this thread as a vehicle for providing guidance to those desiring to create their own customized keyboard layouts, for the sake of completeness I thought the following was appropriate.

I first tried to create a "letter frequency" keyboard using those models discussed previously in this thread. I used a LibreOffice Table to sketch out key placement. That revealed that it would require a Row for Function Keys and about two columns for Command and Modifier keys, and roughly a square of by 6 columns by 7 rows for Alpha-numeric keys. That posed the problem in that the space-key, which was supposed to be in the center, wasn't. The Function Keys were part of the problem. XVkbd is designed so that the Function Key Row can be turned on and off. Consequently a key occupying the central row had to do so whether there were 7 or 8 rows. And the center of 8 columns is actually the line between column 4 and column 5. I attempted to overcome these problems by declaring different heights for rows, and different widths for command-and-modifying keys versus the standard "30" width for Alpha-numerics. That resulted in a somewhat bizarre appearance, but more importantly no configuration I wrote reduced the spacebar's width below 60.. It seemed to be hard-wired.
Examination of various keyboards which Tom Sato wrote revealed only one instance in which the spacebar had the same width as Alphanumeric keys: his Strip Keyboard. The strip keyboard has two columns of keys (mostly Alphabetic) which run down the left side of the screen, and two columns (numbers and Function keys, unless a modifyer is engaged) running down the right side of the screen. All the keys, including the spacebar, (with one exception) were exactly the same height and width. Analysis of the composition of the Strip Keyboard revealed that what Mr. Sato did was to assign the number keys entirely to the keypad which his geometry declaration placed at the right edge, and the alphabetic keys to the keyboard which his geometry declaration placed at the left edg; and declare all keys to have the same height and width. So what I did --besides similarly declaring all keys to have the same height and widtth-- was to adopt Mr. Sato's command to "disinherit" geometry, but also include a command to turn the keypad off, to wit:

xvkbd.inheritGeoemetry: false
xvkbd.keypad: false

The center of the resulting keyboard is actually within the spacekey, albeit in its top-left quadrant.

Thanks to SFR's programming genius and tolerance to things that I could imagine but not personally create, I am pleased to present a pet which may provide to Radar users both an easy way to try and use the Square –letter frequency arranged-- keyboard and change back to the 1Switch Keyboard if or when that layout may be more convenient. A picture of the Square keyboard can be found here:
http://murga-linux.com/puppy/viewtopic.php?p=707919#707919. The pet installs both the Square and OneSwitch Keyboards.
The pet creates a menu entry, called xvkbd keyboard chooser, on the Desktop>Desktop Settings submenu, adjacent to xvkbd's entry. When clicked it will provide the choice between four keyboard layouts: Square – Manual Control, Square –Automatic Scrolling, OneSwitch and Default US. After making a choice, BOTH Xvkbd and radar will have to be restarted.
If Square – Manual Control is chosen, radar will operate without Automatic Scrolling in Xvkbd mode. If that mode is selected, radar's xvkbd mode works somewhat differently than under OneSwitch. The mouse-cursor will start at the central Space key, but its direction will be under user control as in “non-xvkbd” mode. The first keypress will move the cursor in the direction selected. The second keypress, when over a key, will send the value of that key to the target application and “jump” the mouse-cursor back to the central space key. As under OneSwitch, allowing the mouse-cursor to scroll beyond the keyboard takes radar out of “xvkbd-mode.” Hopefully, this combination will facilitate use of Xvkbd's Word-completion module: the mouse-cursor can be directed onto the Word-completion window, a selection made, a Lft-Click writing it to the target application and then selecting “xvkbd” in radar jumping the mouse-cursor back to the central space key. As radar's config provides for selection of different speeds of mouse-cursor movements in xvkbd and non-xvkbd mode, it may also be possible to use the keyboard in non-xvkbd mode. If that choice is made, when the mouse-cursor is over a key the first press will NOT send the value of the letter to the target application: rather radar will continue to operate, waiting for further instructions such as Lft-Click to “print” the value, or Move to move the mouse-cursor. In “non-xvkbd” mode, advantage of frequent letter combinations –such as typing “the”-- can be had because of the letter arrangement of the keyboard.
The selection “Square –Automatic Scrolling” will use the Square layout, but the “standard” radar, with initiation of “xvkbd mode” initiating Automatic Scrolling and always returning the mouse-cursor to the keyboard top-left corner. Probably, if automatic scrolling is wanted, the OneSwitch Keyboard provides a better choice, but this combination may help a user to become familiar with the placement of keys on the Square keyboard. This OneSwitch arrangement is slightly different from the one I've previously published: On ETP's suggestion, I've placed the Focus key in a more convenient location, albeit at the expense of the xvkbd (Main Menu) key. And I also was able to include the \ key.
The Default US is Tom Sato's default keyboard.
I attempted to add the 1Switch and Square keyboard to the list that pops up when “Change Keyboard Layout” is selected from xvkbd's menu. Someone with a better understanding of how Tom Sato built xvkbd may be able to. Although I was able to add them to the list, doing so caused the list to hang and xvkbd to become unresponsive. Perhaps it is just as well that I was unsuccessful. As mentioned, Square works best with radar set to Manual Control. Manual Control required SFR to re-write parts of radar. That re-write is incompatible with how radar ordinarily operates. So to change from Square-Manual Control to OneSwitch Automatic Scrolling, three files have to be substituted.
As I mentioned previously, I understand only one way to change xvkbd's layout: name the file of a keyboard configuaration “xvkbd” and overwrite the default file of that name in /etc/X11/app-defaults. What the keyboard chooser pet does is write three files there: Square, 1switch and xvkbd-original, the latter being an exact copy of the original xvkbd located there. When a choice is made via the pet, it overwrites the current xvkbd file with the choice by copying the chosen keyboard but with the name “xvkbd.” Similarly, four files are written to /usr/local/OneSwitch, they being the original radar-config and radar-main, now including the number 1, and the alternate files of radar-main and radar-config, including the number 2. Selection of a keyboard via the pet will overwrite the current radar-main and radar-config with the appropriate version.
There may be better ways of accomplishing the above –in fact, I pretty sure that the “action” removing current files was unnecessary (but it couldn't hurt)-- but not by me.
I recommend that you take the opportunity to open /usr/local/OneSwitch/keyboardchoice in a text editor. It's the script file which places the choices onscreen waiting to be clicked. SFR emailed me the structure whose functions I quickly grasped. But it took me awhile, and some searching, to realize it was a gtkdialog-widget as I've kept putting off delving into that area. So if I, having no prior knowledge, could figure it out, you should have little difficulty. The widget should prove a handy vehicle for providing choices which an end user can easily understand and effectuate.
For example, if you have a preference other than Tom Sato's default US Keyboard, the aforementioned script can be easily edited. Suppose you wanted to make the fourth choice the german keyboard Tom Sato provided. To be on the safe side, copy Xvkbd-german naming it, for example, XVkbd-german1. Now edit two lines in the keyboardchoice script. Where it says “Default US” change that to read “German.” And change the line which reads:
<action> cp /etc/X11/app-defaults/XVkbd-original /etc/X11/app-defaults/XVkbd</action>
to read:
<action> cp /etc/X11/app-defaults/XVkbd-german1 /etc/X11/app-defaults/XVkbd</action>
Be careful about capitalization. Linux is case sensitive.
Happy computing,

Thanks Mike, this will be good to try.
I'm very much behind the 8-ball at the moment, having had a substantial break (to the point where I've actually forgotten what I was doing a couple of months ago), and I feel it's going to take quite a lot of time for me to work out how well these alternative keyboards can work. (maybe thats a good thing that I can view it with fresh eyes...)

I'm guessing that someone who grew up with qwerty will still prefer something similar, but there are probably users who are happy to adjust to layouts that are geometrically more efficient.

I'm planning to sit down for a whole weekend at some point and only type with one finger and see what seems to works best.

Some tools for using xvkbd's word-completion module.
Inspired by ETP, I thought there should be an easy way for a user to add those words and phrases he or she commonly employs if they were not already in a wordlist. The attached add_words pet creates an entry on the desktop submenu. Although a Utility, I figured it would be easier to find if it were on the same submenu as xvkbd.
The “Add Words” pet opens the current “words” file in your default text editor and/or provides it with focus if already opened. Remember, the words and phrases you add will only be added to the currently chosen “words” file.
To add words or phrases it is not necessary that you place them in any special location on the list. Tom Sato cleverly constructed the word-completion module so that as you type it scans the entire list and reports in the word-completion window applicable choices regardless of where they are on the list. All that is necessary, therefore, to add a word or phrase is to do the following:
(1) Type the word or phrase into your target document.
(2) Click the Shift-Key, and then use the Left Arrow Key to “backspace" through your entire word or phrase. Doing that highlights it.
(3) Press Ctrl-c, copying it to your computer’s memory.
(4) Click “Add Words" on the SubMenu. This will open the currently selected Words file in your text editor, provide it with mouse-cursor focus, and place the cursor at the very beginning of that document.
(4) Press “Enter/Return” creating a space for your new word or phrase.
(5) Click the Up-Arrow to return the cursor to the empty line.
(6) Press Ctrl-v, copying your word or phrase from your computer’s memory into the Words file.
(7) Save the document by either (a) clicking the Save Icon; (b) clicking Alt-f, using the down-arrow to highlight Save and pressing Enter; or (c) easiest: press Ctrl-s.

If someone with a better understanding of bash would provide a script for sorting lists of words alphabetically, I’ll be happy to add it as an option to add-words. While sorting a list isn't necessary for its use in xvkbd, a sorted list may have other uses.
I’m also certain that a script can be fashioned which would add a new word or phrase to all three wordlists. I’ll be happy to add that tool as well.

Also attached is a pet to facilitate changing which wordlist xvkbd will use. Over the course of this thread I've provided or mentioned three: one having only 4,000 of the most commonly used words (at least by scrabble players and by inference probably everyone), one having about 51,176 words, and the other about 150,000 words.
Unfortunately because of the 256K file size restriction on the forum, a completed pet could not be uploaded. So I've uploaded a pet which installs the 4K wordlist. But you'll have to “finalize” the pet yourself with other wordlists you desire.

Some are lists of English “words” which –including acronyms-- have sizes from “small”, a mere 51,176 words, to “insane” at 650,723 words. You can choose between American, British and Canadian variants, unless you want “insane:” Than you'll have to go “American”. [Chances are a Brit got to name the lists. As far as stereotypes go, Brits have a finer sense of propriety than us sometimes wild and muddle-headed Yanks. Not every idea is a good idea. Not even yours, or mine]. There are also lists of words in languages other than English, including a couple of Spanish, French and German variants.

From the above link, click the list or lists of your choice, remembering that the words_choice pet currently only facilitates three choices. The links are different colors than the text. Clicking will take you to the Ubuntu package description page. Scroll down until you see the label “Download” and the word “all” in the “Architecture” box. Clicking the word “all” will take you to the links to various mirrors, also differently colored than the text. Clinking any link will download a “.deb” file to the folder of your choice.
The “.deb” contains a great deal of stuff you won't need. So rather than clicking the .deb to install it, at least in a Puppy-Precise you can right-click it and select “Extract -deb”. This will create a folder named “extracted-debian”. Browse within that folder to reach the actual wordlist. It will be located in /usr/share/dict. Copy it to your OS's /usr/share/dict. The dict folder may already be there; will be there if you install the words_choice.pet; or can be created using your file manager.
To use your wordlist with the word_choice.pet, you could change the name of the file you've placed in the dict folder to correspond to one of files the pet recognizes: words-4k, words-small, or words-large. But I recommend you modify words_choice's executable. This is a script file named choosewords in /usr/bin. Modifying choosewords would be especially useful if you are bi-lingual. Each button subroutine in choosewords has the structure of the following example:

For clarity, I've bolded the relevant terms to be modified. In the example, 4000 words is the label which will appear among the choices on the screen. You can name you label anything. But keep it short. If it occupies more than 300 pixels you'll have to also increase the width designation near the top of the script. Xvkbd's word-completion module uses, by default, a file named “words”. In the above example, clicking the 4000 Words button displayed on the screen will create a copy of the file words-4k (in the dict folder) giving the copy the name “words”. In order to enable the use of your wordlist as a choice, merely substitute its name where words-4k currently appears in the button subroutine, being careful to exactly duplicate its name.
Although the word_choices.pet as written presents only three choices, you can easily add more by simply copying and pasting another button definition before the last lines of the script, which are:

</vbox>
</window>
'

gtkdialog -cp MAIN

Again, modifying the choosewords script can be very useful if you are bi-lingual.

Happy Computing,

mikesLr

words_choice-0.8.pet

Description

Choose which of various wordlist xvkbd word-completion will use. See post forobtaining wordlists.

Have updated the keyboard modification thread to include a much simpler mod that I have done to a cheap usb keypad. Works well. (just uses the * asterisk key instead of a pause/break key - but it works perfectly because the oneswitch config gui allows you to select which keyboard, and which keyswitch you want to monitor)

Cost of various Puppy Operating systems - $0.00 (courtesy of BK et al)
Cost of OneSwitch Radar & Navbar dotpet - $0.00 (courtesy of SFR)
Cost of hotpluggable interface for switch - $10.00 or less (courtesy of the hardworking people of China)

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot vote in polls in this forumYou cannot attach files in this forumYou can download files in this forum