Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Редакторы раскладок

Автор Валентин Н, января 3, 2012, 22:42

0 Пользователи и 1 гость просматривают эту тему.

Квас

Цитата: Тайльнемер от января  4, 2012, 15:43
Цитата: Квас от января  4, 2012, 15:09Например, простую идею о том, чтобы нажатие на s производило ſ, а ſ: автоматически заменялось бы на s, мне реализовать не удалось.
:o

Дело в том, что символ, введённый скриптом, не может использоваться в горячей строке.

Мне кажется, корень моих затруднений в природе вещей.

Если сделать раскладку, в которой ſ на месте s, то автозамену можно использовать. Я сделал такую раскладку для английского, а заведовать переключением назначил AHK. Как ни странно, он путал две английские раскладки — причина до сего дня для меня покрыта мраком.
Пишите письма! :)

arseniiv

Замечательно, что файл раскладки — текстовой! Редактор становится проще соорудить. Точнее, интерфейс-то никак не изменится, зато сохранение и открытие будет довольно простым.

А где можно найти формат файла и пожелания к редактору?

Python

Документации я пока не видел (впрочем, особо и не искал). Хотя образец исходника несложно создать самому с помощью MSKLC или где-то скачать.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

mnashe

Цитата: Квас от января  4, 2012, 15:48
Как ни странно, он путал две английские раскладки — причина до сего дня для меня покрыта мраком.
Путал, очевидно, не он, а Windows. Если переключать без AHK, с помощью Ctrl+Shift+0‥9 — то же самое.
Он переключает на последнюю использовавшуюся раскладку для требуемого языка.
И только со второго нажатия выбирает нужную.
Я уже привык всегда нажимать Ctrl+Shift+2×2, чтобы быть уверенным, что он переключит на мою йцукенг, а не на чёерты.
Но AHK почему-то переключает надёжно, повторять не приходится:
;Switch the active window's keyboard layout/language:
LangSwitch(layout)
{
  ControlGetFocus,ctl,A
  SendMessage, 0x50, 0, layout, %ctl%, A ;WM_INPUTLANGCHANGEREQUEST
}

GetInputLocaleId()
{
  SetFormat, Integer, H
  WinGet, WinId,, A
  ThreadId:=DllCall("GetWindowThreadProcessId", UInt, WinId, UInt, 0)
  Return DllCall("GetKeyboardLayout", UInt, ThreadId, UInt)
}

#1::LangSwitch(0x04090409) ; to English

#2::LangSwitch(0xF0C00419) ; to Russian

#3::LangSwitch(0xF0C20419) ; to Russian

#4::LangSwitch(0xF0C4040D) ; to Hebrew

^+`::
InputLocaleId:=GetInputLocaleId()
MsgBox, %InputLocaleId%

^CapsLock::
If (GetInputLocaleId()==0x04090409)
{
  LangSwitch(0xF0C00419)
  return
}
LangSwitch(0x04090409)
return
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

Валентин Н

Вот интересно — как перепрогаммировать шифт и капслок.

Капслок и шифт можно объединить в одной клавише, тк капс срабатывает от одиночного нажатия, а шифт только с чем-то.
Поясняю — если шифт нажать не одновременно с чем-то, а одиночно (без никто), то пусть бы он срабатывал как капс, с зажиганием лампочки.

А сам капс можно было бы использовать для переключения раскладки, с тем же принципом что и шифт.
Т.е: одиночное нажатие — постоянное переключение, одновременное — только пока зажат.

Это Мнаше такую идею подкинул, только не помню где и как именно это произошло.
ЗАБАНИЛ ВИКИПЕДИЮ
Нижниь ıндэкс в ҷıсʌах — степень тıсяҷı
Препинания авторские!

Квас

Цитата: Валентин Н от января  5, 2012, 19:13
Капслок и шифт можно объединить в одной клавише, тк капс срабатывает от одиночного нажатия, а шифт только с чем-то.
Поясняю — если шифт нажать не одновременно с чем-то, а одиночно (без никто), то пусть бы он срабатывал как капс, с зажиганием лампочки.

AHK: что-то не нашёл как переключать капс, так что просто прописал включение нужного режима.


Shift::
if (GetKeyState("CapsLock", "T"))
    SetCapsLockState, Off
else
    SetCapsLockState, On
return

CapsLock::MsgBox, Hello world!


А не жирно будет капсу, чтобы его шифт делал? Всё-таки капсом мы пользуемся раз в пятилетку. Один раз я функции капса передоверил Shift+CapsLock. А шифт можно чем-то более общественно-полезным загрузить: те же раскладки включать.
Пишите письма! :)

arseniiv

Цитата: Валентин Н от января  5, 2012, 19:13
а одиночно (без никто), то пусть бы он срабатывал как капс
Беее. :кашляет:

Валентин Н

Цитата: Квас от января  5, 2012, 19:36
А не жирно будет капсу, чтобы его шифт делал?
Что‽ Я про то и говорю, что жирно занимать клавишу, которой не пользуются. Переключить раскладку насовсем, можно шифтом (одиночным нажатием), если же нажимать шифт с чем-то, то переключение будет временным, так же как щас.

А капсом можно раскладки переключать по такому же принципу: одиночное нажатие — постоянно, одновременное — временно (пока зажат).
ЗАБАНИЛ ВИКИПЕДИЮ
Нижниь ıндэкс в ҷıсʌах — степень тıсяҷı
Препинания авторские!

Валентин Н

ЗАБАНИЛ ВИКИПЕДИЮ
Нижниь ıндэкс в ҷıсʌах — степень тıсяҷı
Препинания авторские!

Квас

Цитата: Валентин Н от января  5, 2012, 19:46
Скачал АНК и что с ним делать? :donno:

Установить.

Скрипты можно создавать в любом текстовом редакторе; расширение .ahk, кодировка utf-8. Они предлагают использовать SciTE для AHK, там подсветка синтаксиса искаропки.

Если двойным щелчком скрипты не запускаются, надо назначить autohotkey.exe программой по умолчанию.

Вот и всё. :)
Пишите письма! :)

Квас

Цитата: Валентин Н от января  5, 2012, 19:46
Цитата: Квас от января  5, 2012, 19:36А не жирно будет капсу, чтобы его шифт делал?
Что‽ Я про то и говорю, что жирно занимать клавишу, которой не пользуются. Переключить раскладку насовсем, можно шифтом (одиночным нажатием), если же нажимать шифт с чем-то, то переключение будет временным, так же как щас.

Мне за шифт обидно: целых две удобные клавиши, а на них вешать всякую муть.

Кстати, AHK позволяет управляться с ними индивидуально: LShift и RShift.
Пишите письма! :)

Квас

По умолчанию запущенный скрипт отображается иконкой в панели уведомлений, можно выключать, приостанавливать и т. д. с помощью контекстного меню.
Пишите письма! :)

Валентин Н

Цитата: Квас от января  5, 2012, 19:53
Скрипты можно создавать в любом текстовом редакторе;
Как это делать-то?
Где взять нормальную инструкцию?

Цитата: Квас от января  5, 2012, 19:54
Мне за шифт обидно: целых две удобные клавиши, а на них вешать всякую муть.
Я вообще не пойму что вам не нравится?
ЗАБАНИЛ ВИКИПЕДИЮ
Нижниь ıндэкс в ҷıсʌах — степень тıсяҷı
Препинания авторские!

Квас

Цитата: Валентин Н от января  5, 2012, 19:58
Цитата: Квас от января  5, 2012, 19:53Скрипты можно создавать в любом текстовом редакторе;
Как это делать-то?
Где взять нормальную инструкцию?

Можете поместить мой код в файл с расширением .ahk и запускать. Файл можно в Блокноте создать. А SciTE вы не скачивали? Я до сих пор им по инерции пользуюсь.

Насчёт туториала — можете посмотреть
http://www.autohotkey.com/docs/Tutorial.htm
(Вроде, видел и по-русски.) И справка у них совершенно замечательная. И я могу вам что-нибудь рассказать, если надо.

Пишите письма! :)

arseniiv

Да. Я по справке что-то себе натворил, чтобы включать и выкелючать определённый режим азмены, и затем забросил на долгое время. Лень выдумывать себе скрипт.

Квас

Цитата: arseniiv от января  5, 2012, 20:10
Лень выдумывать себе скрипт.

Это как? У меня сложность в том, чтобы задачу придумать. Придёт в голову задача — перероешь всю справку. :)
Пишите письма! :)

arseniiv


Квас

Цитата: arseniiv от января  5, 2012, 21:42
Я даже не знаю, какие символы хочу вводить. ;D

Да там же не только символы — что угодно можно делать. Одним из первых я сделал скрипт, который открывал книги, которыми часто пользовался — чтобы по папкам не лазить. Поисковичками по сканированным словарям постоянно пользуюсь. Сделал сейчас, чтобы в SumatraPDF клавиши j и k соответствовали Up и Down, à la vim. Короче говоря, нужна только фантазия.
Пишите письма! :)

arseniiv

Ну мне-то пока только для набора символов нужно. :) Фантазия у меня другим занята. Наверно.

Offtop
Эх, с грустью вспоминаю времена, когда эта тема была ещё о редавторах. :'(

Квас

Пишите письма! :)


Python

Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Python

Цитата: Квас от января  6, 2012, 00:23
Редавторы раскладок не нужны.  8-)
Мой идеал — формат раскладок, который можно было бы легко приспособить для различных ОС. AHK как основа для него плох тем, что может слишком много. Ну нельзя в одну кучу сваливать экзотические письменности, управляющие клавиши, действия с окнами, запуск софта — из этой каши трудно будет выделить собственно раскладку. Если чертить прямую без линейки, прямая линия не получится.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Gwennel

Цитата: Квас от января  5, 2012, 19:36
AHK: что-то не нашёл как переключать капс, так что просто прописал включение нужного режима.
Не знаю, как в AHK, а я в своей переключалке намучался и в конечном итогде сделал повторное «виртуальное» нажатие CapsLock'а. Потому что хук в Windows не может предотвратить нажимание CapsLock'а (как и других Lock'ов). Вот такой вот костыль:

if (key == VK_CAPITAL && state & 0x3a0000) {
    /*
state & 0x3a0000 гарантирует, что скан-код
     клавиши не равен 0. Т.е. что это физически нажатая клавиша,
     а не срабатывание хука на нашу виртуальную. */
    if (((GetKeyState(0x14)) & 0xffff) != 0) /*
Если CapsLock после нажатия включён... */
        keybd_event(VK_CAPITAL, 0, 0, 0); /*
Виртуально нажимаем CapsLock со скан-кодом 0. */
    if (state & 0x40000000) /*
Если клавиша отпущена (а не нажата), то... */
        setKeyboardLayout(shift); /*
Вызываю свою функцию смены раскладки */
    return -1; /*
Следующие хуки не вызываем */
}


Понятно, что это костыль, но, кажется, в Windows по другому нельзя. :donno: Недостаток подхода в том, что, если компьютер тормозит, может появиться задежка перед виртуальным нажатием CapsLock'а.


Цитата: Квас от января  5, 2012, 19:54
Мне за шифт обидно: целых две удобные клавиши, а на них вешать всякую муть.
А как Вам идея ColorForth'а? Мол, клавиш надо меньше: удобнее два раза нажать клавишу, до которой не надо тянуться, чем один раз клавишу =.

mnashe

Цитата: Квас от января  6, 2012, 00:01
Да там же не только символы — что угодно можно делать.
Просмотрю свои скрипты...

До́ма:
1. Меню перехода к самым частонужным каталогам (работает в Explorer, Open / Save file, и т.п.).
2. Меню ввода частонужных строк (email'ы, стандартные пароли на форумах, и т.п.). Назначено на то же сочетание клавиш, что и #1.
3. Переключение раскладок по Win+1,2,3,4. Переключение раскладок rus/eng по Ctrl+CapsLock.
4. Запуск / переход к частонужным программам (аудиоплеер, proxy, file-manager, англо-русский словарик, Opera, RegEdit).
5. Переход к окошку с открытым PDF или DJVU (одна и та же клавиша).
6. Регулировка громкости (Win+PgUp/PgDn). Усовершенствована по сравнению со стандартной: во-первых, меняется на проценты, а не на постоянную величину, так что на малой громкости регулировка очень плавная, а на большой не приходится сорок раз жать на клавишу, чтобы добиться заметных изменений. Во-вторых, Win+PgUp снимает Mute, если он был включён. В-третьих, нажатие Ctrl в дополнение к этим сочетаниям ускоряет изменения, а нажатие Alt меняет не общий уровень, а только громкость WAV, что важно, поскольку некоторые плееры меняют именно его.
7. Дозвон. Разрыв связи. Разрыв и передозвон. Пользовался, когда связь была через звонилку, а на рапиде долгие ожидания.
8. Minimize window.
9. Toggle «Always on top».
10. Установка уровня прозрачности текущего окна.
11. Выдвинуть CD. Задвинуть CD. Выдвинуть DVD. Задвинуть DVD.
12. Вернуть на место окошко настроек аудио Gigabyte, которое непонятнокакогохрена всегда открывается на втором экране, обычно выключенном (надоело включать ЭЛТ экран при каждом подключении наушников).
13. 1120 автозамен символов. Бо́льшую часть из них помню, благодаря простоте и логичности.

На работе:
0. Часть из уже перечисленных.
1. Нажать кнопку «Прошить телефон» в программе Nokia Phoenix (предварительно позакрывав модальные коробки).
2. Перезапустить Phoenix (удобно, если завис).
3. Распознать подключённый телефон и открыть окно прошивки. Если зависла в процессе — перезапустить.
4. F1‥F8: Нажать нужную из восьми кнопок в диалоге MultiFlash всё в том же фениксе.
5. Скопировать java-программу в телефон в Nokia PC Suite.
6. Вырезать дырку в текущем окне в форме буквы Ы :)
7. Перезапустить зависший Explorer (это нередко бывает при пользовании PC Suite'ом).
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр