Курить посреди улицы | Пердеть посреди улицы | |
---|---|---|
Портишь воздух | ✅ | ✅ |
Длительность | Минуты | Секунды |
Наркотическая зависимость | ✅ | ❌ |
Риск развития рака лёгких | ✅ | ❌ |
Риск пожара | ✅ | ❌ |
Общественное порицание | ❌ | ✅ |
КАКОГО ЧЁРТА???
/** Идея для программируемых клавиатур, когда каждая клавиша - функция. | |
В чатике много шутили, типо: давайте сделаем каждую клавишу - процессом)))000)), а давайте http-сервером)))00)). Так вот, эта идея является серьезной реализацией этих шуток, причём это даже может быть удобно. | |
*/ | |
typedef std::function<void()> Key; | |
//---------------------------------------------------------------------------- | |
// Стандартные клавиши | |
Key KC_NULL = [](){}; | |
Key KC_0 = [](){ |
Курить посреди улицы | Пердеть посреди улицы | |
---|---|---|
Портишь воздух | ✅ | ✅ |
Длительность | Минуты | Секунды |
Наркотическая зависимость | ✅ | ❌ |
Риск развития рака лёгких | ✅ | ❌ |
Риск пожара | ✅ | ❌ |
Общественное порицание | ❌ | ✅ |
КАКОГО ЧЁРТА???
inline void press_key(int key, std::function<void()> f = [](){}) { | |
register_code(key); | |
f(); | |
unregister_code(key); | |
} |
Итак, введём новые клавиши, под кодовым названием:
lv буква
, lv слово
, lv строка
, lv вкладка
, lv окно
, lv экран
.
Эти клавиши означают что действие будет применяться к конкретному уровню, например, если нажать lv буква
+ Left
, то курсор подвинется на одну букву влево, если же нажать lv окно
+ Left
, то фокус переключится на окно слева в списке открытых окон.
Распишу некоторые интересные использования этих клавиш в комбинации с другими:
Действие | lv буква |
lv слово |
lv строка |
lv вкладка |
lv окно |
lv экран |
---|---|---|---|---|---|---|
Стрелки вправо-влево | Left, Right | Ctrl+Left, Right | Home, End | Ctrl+Tab, Ctrl+Shift+Tab (Переключение на правую-левую вкладку относительно текущей) | Переключение на левое-право окно относительно текущего в списке приложений | Переключение фокуса на правый-левый экран |
// https://www.youtube.com/watch?v=XP8R0yzAbdo | |
// CROSSOVER IS OVERRATED, I USED ONLY 1 MUTATION PER CHILDREN TO GET BEST RESULT ON CIRCLE GRAPH | |
#define _USE_MATH_DEFINES | |
#include <vector> | |
#include <random> | |
#include <algorithm> | |
#include <cmath> | |
#include <iostream> |
#include <random> | |
double random(void) { | |
static std::mt19937 generator(time(0)); | |
static std::uniform_real_distribution<double> distribution(0, 1); | |
return distribution(generator); | |
} |