Open kckennylau opened 8 years ago
The problem I see with this is that this varies with each different keyboard layout. To make matters worse, not all keyboard layouts are available on all platforms.
@kckennylau Do you run windows? If so, I can make a keyboard layout for you.
@ConorOBrien-Foxx Yes I do, thanks in advance.
In feature rich text editors such as vim and emacs, you can use rfc1345 mnemonics to input these characters. Here's a link to the usage in vim, where this function is called "digraphs" http://vimhelp.appspot.com/digraph.txt.html
Did someone write a VIM keyboard file "yet"?
@vendethiel I wrote one, you can download it here. Place the file in your home directory, and add source ~/.jelly.vim
in your vimrc. Every character can be made using C-k.
Nice :D
@DennisMitchell Hmm... and that's why I struggle with Jelly.
@ConorOBrien-Foxx Just a question: have you made the layout yet? Because I desparately need it, I can't use the Compose Key for everything :-1:
I actually started creating the keyboard with KLC for windows, I am modeling it to be as intuitive as possible. The only problem that I'm facing right now is figuring out which are the most commonly used symbols (which should be used as the default value for each key) and which ones are less common and should be enabled by alternating between modes (shift, caps, etc...). any leads so I can move on with it?
@ChaosCat (May not be ordered with most common symbols yet)
Key | Ctrl + Key | |
---|---|---|
1 | ! | |
2 | @ | |
3 | # | |
4 | $ | |
5 | % | |
6 | ^ | |
7 | & | |
8 | * | |
9 | (upper dot)* | |
0 | (lower dot)* | |
` | ⁾ | |
E | € | |
L | £ | |
C | © | |
R | ® | |
Y | ¥ | |
S | ß | |
¦ | ||
C | Ç | |
c | ç | |
N | Ñ | |
n | ñ | |
\ | ¡ | |
/ | ¢ | |
o | ¤ | |
T | Þ | |
t | þ | |
[ | ⁺ | |
] | ⁻ | |
h | ‘ | |
j | ’ | |
k | “ | |
l** | ” | |
. | ¿ | |
m | « | |
, | » | |
O | Ø | |
o | ø | |
e | œ | |
A | Æ | |
a | æ | |
; | Œ | |
z | ½ | |
x | × | |
d | ÷ | |
u | ¬ | |
b | µ | |
h | ð | |
G | Ɠ | |
g | ɠ | |
v | ƈ |
*Followed by another valid letter.
This is a lowercase L, not** a pipe!
Please note that, when only a lowercase letter is given, the uppercase should do the same thing (i.e. only a lowercase u is given, but U must also produce ¬ with Ctrl). You can use the Shift key in conjunction with Ctrl + Key to do Ctrl + Shift + Key instead (E instead of e for example), but I have tried to lessen Shift's use for these.
Key | Shift + Key |
---|---|
1 | ¹ |
2 | ² |
3 | ³ |
4 | ⁴ |
5 | ⁵ |
6 | ⁶ |
7 | ⁷ |
8 | ⁸ |
9 | ⁹ |
0 | °* |
*This is the degree character, not a superscript zero.
If I have missed anything, or I have either a duplicate key or a duplicate character in both tables, please reply.
The layout is ready, the only thing left to do is a bit of real-time testing and packaging as a DLL along with writing some installation instructions. By the way, there were 3 duplicate keys which I handled in a special way (the letters h, o, and C) but the cases were handled in a proper way.
1. Upper case is the default system and all lowercase letters can be accessed with {Shift} (Examples: {Shift} + R = r, {Shift} + T = t, {Shift} + 0 = °) 2. {Ctrl} + {Key} (default) = Uppercase version of a special character (Examples: {Ctrl} + C = Ç, {Ctrl} + E = €, {Ctrl} + Y = ¥) 3. In order to access the lowercase version of a special character use {Shift} + {Ctrl} + {Key} (Examples: {Shift} + {Ctrl} + c = ç, {Ctrl} + {Shift} + z = ½) 4. The duplicate characters (h, o, C) can be accessed using right alt key {AltGr} or alternatively ({Alt} + {Ctrl}). and thus:
5. I am not too sure if the upper and bottom dot function the way they should in real Jelly code (currently "Combining dot above/below" are used). 6. All other keys / combinations on the keyboard currently do nothing although the keyboard doesn't include the full Jelly charset.
Any requests/insights before I build it and proceed to the final stage?
@ChaosCat Of course combination characters are invalid. I tried to avoid Alt. The (upper dot) and (lower dot) are meant to be modifier combinations that must be followed by another letter. Here are all the upper-dot and lower-dot characters that must be supported:
ȦḂĊḊĖḞĠḢİĿṀṄȮṖṘṠṪẆẊȧḃċḟḣŀṁȯṗṙṡṫẋẇż ẠḄḌḤỊḲḶṂṆỌṚṢṬỤṾỴạḅḍịḷọṛṣṭ
Any other dot character must not be supported (Ctrl-9 and e must not produce ė, for example). Also, I would recommend supporting Caps Lock.
I do not think supporting the whole code page is an urgency, because not all characters are used up yet.
Oh, and please do Ctrl+Alt for ® too, to avoid confusion.
Hmm, I don't think that modifying keys in a way so they'd combine into a single character (such as the Japanese keyboard) is really implementable using MS-KLC. However, I did start using Caps Lock for shifting between uppercase and lowercase. I think about using {shift} as the upper dot modifier (and thus {shift} + {caps} would produce uppercase dot letter) and {AltGr} for the lower dot modifier (same system applies). I will move the current 4 AltGr keys (including ®) to some unassigned keyboard values in the other modes.
Update: finished implementing most of the changes, I'd like to note that I find the KB highly comfortable.
*The upper dot and lower dot are no longer necessary (ctrl + x/v should be kept for cut & paste since ctrl + c is already used)
@DennisMitchell I have tested the keyboard and it's installation and it works great (despite it's uhhh... "special" installation procedure) should I add it's source and installation files to a directory in the main jelly repository or should I make a separate repo for it?
@ChaosCat Well, you have to implement the modification characters, or the project is just waste that needs to be dumped away. I guess that Shift and Alt do not use combination characters anymore.
@erikkonstas All the characters ȦḂĊḊĖḞĠḢİṀṄȮṖṘṠṪẆẊȧḃċḟḣŀṁȯṗṙṡṫẇẋż and ẠḄḌḤỊḲḶṂṆỌṚṢỤṾỴạḅḍịḷọṛṣ [are those the modification characters you meant¿⁾ are present on the keyboard [As a matter of fact, I am using it right now to write this message⁾,what else am I missing¿
@ChaosCat Please allow normal ()? if you can. Also, I think the upper dot can do L too (it's just that L/l have a middle dot, not an upper one). Also, make sure that you have ° instead of ⁰.
@erikkonstas Done. No explanation is better than some screenshots (Although I do intend making a documentation for usage and installation :P) :
@ChaosCat ɠƈø are still missing though :( Yes, I still insist. I insist, for a better layout. Please do not take this personally. I like how the €Þ¥ØÆßðƓ£ÇÑ are put.
@erikkonstas I actually totally understand the way you chose the Ctrl layout, the ß is a strong s, Æ and Ø make perfect sense, same goes for the £ and ¥ which look like an L and Y. Same goes for the other letters... It's actually quite intuitive. I will add the other three characters later on today but more importantly, is the layout logic itself fine (consistent rules, easy to master, productive)? I'd really like to hear an opinion from someone who is a frequent user of jelly.
@ChaosCat If you have put the characters in, can you please upload new screenshots?
@GolfingSuccess haha sorry I kind of dropped off the github scene for a while. I've been tending to other things lately. I'll have the layout done by the end of December. It looks like one has already been made, but I'll try my hand at one.
@ConorOBrien-Foxx Yes, I am the main suggester of things being done there.
I've found a way to assign dead keys in KLC. So the combinations should work just fine (no combined characters). Problem is, I have to recreate the layout from scratch. If nothing comes up it will be done this weekend.
@ChaosCat Umm... done yet?
@GolfingSuccess Actually yeah, I got very busy last year. and I am sure there are a lot of new characters added which the keyboard doesn't support.
*Shift
produces the same result as the above image.
Although I am pretty worried about all the Ctrl
+ key shortcuts since they collide with the native editor/application/windows ones, why won't we move the keys to AltGr
and AltGr + shift
?
@ChaosCat Lots of chars are missing there...oh and Ẏ
was added.
@GolfingSuccess Which ones are missing? I went over the list above, all the characters with dot above/below (Ȧ to ṭ) are achieved by the combination of Ctrl + 9/0* + [Any valid character]
.
@ChaosCat Is there a download for this? I'd like to start programming in jelly, and I don't really have many other options besides your keyboard layout thingy.
Guys maybe you want to try Jelly Balls, an online editor designed to easily write code in Jelly Language.
The features include:
Hey, this might be super late to the party but I just wrote a super small collection of scripts called jellyfingers
It should work at least across all *nix systems. It uses the wiki descriptions to let the user search for a character or a combination thereof. With this you should be able to type a bunch of jelly with virtually any keyboard layout. I hope this is of use for anyone else than just me.
I think it would be good if you would include a tutorial on how exactly to type each character, except copying them from your webpage.