Compare commits
2 Commits
master
..
ae12c8f845
| Author | SHA1 | Date | |
|---|---|---|---|
| ae12c8f845 | |||
| 4b1b16e940 |
@@ -9,5 +9,3 @@ st-0.9.2/x.o
|
|||||||
karabiner-ts-config/node_modules
|
karabiner-ts-config/node_modules
|
||||||
__pycache__
|
__pycache__
|
||||||
tags
|
tags
|
||||||
vim/.vim/view
|
|
||||||
vim/.vim/.netrwhist
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
open -n -a "kitty.app"
|
open -n -a "alacritty.app"
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ dynamic_padding = true
|
|||||||
decorations = "Buttonless"
|
decorations = "Buttonless"
|
||||||
|
|
||||||
[font]
|
[font]
|
||||||
normal.family = "Comic Code"
|
normal.family = "GoMono Nerd Font Mono"
|
||||||
size = 12
|
size = 12
|
||||||
|
|
||||||
# Subtle positional tuning
|
# Subtle positional tuning
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -1,2 +0,0 @@
|
|||||||
tag:
|
|
||||||
ctags --langmap=c:.c.h --languages=c -R .
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Opens a fuzzy finding window with the given array of strings.
|
|
||||||
// Returns the index of the picked element.
|
|
||||||
// Returns -1 on no selection.
|
|
||||||
int picker(char const *strings, int strings_len, char const *prompt) {
|
|
||||||
}
|
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
#ifndef PLATFORM
|
|
||||||
#define PLATFORM
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <stdbool.h>
|
|
||||||
|
|
||||||
#include "utf.h"
|
|
||||||
|
|
||||||
typedef struct Color {
|
|
||||||
uint8_t r, g, b;
|
|
||||||
} Color;
|
|
||||||
|
|
||||||
#define WHITE ((Color){255,255,255})
|
|
||||||
#define BLACK ((Color){0,0,0})
|
|
||||||
|
|
||||||
typedef enum Key {
|
|
||||||
Key_backspace,
|
|
||||||
Key_ctrl,
|
|
||||||
Key_enter,
|
|
||||||
Key_h,
|
|
||||||
Key_n,
|
|
||||||
Key_p,
|
|
||||||
Key_y,
|
|
||||||
Count_Key
|
|
||||||
} Key;
|
|
||||||
|
|
||||||
bool KeyPressed(Key key);
|
|
||||||
bool InputGetNextPrintable(CodePoint const *out_key);
|
|
||||||
|
|
||||||
typedef struct Cell {
|
|
||||||
CodePoint character;
|
|
||||||
Color foreground;
|
|
||||||
Color background;
|
|
||||||
} Cell;
|
|
||||||
|
|
||||||
typedef struct Window {
|
|
||||||
int width;
|
|
||||||
int height;
|
|
||||||
Cell *cells;
|
|
||||||
} Window;
|
|
||||||
|
|
||||||
typedef struct PlatformState {
|
|
||||||
Window *prev;
|
|
||||||
Window *curr;
|
|
||||||
} PlatformState;
|
|
||||||
|
|
||||||
// Options for the backend. These options don't necessarily apply for all platforms.
|
|
||||||
typedef struct PlatformOpts {
|
|
||||||
float window_width_fraction; // decide the width of the window as a fraction of the total resolution. for gui backends
|
|
||||||
float window_height_fraction; // decide the height of the window as a fraction of the total resolution. for gui backends
|
|
||||||
} PlatformOpts;
|
|
||||||
|
|
||||||
PlatformOpts WindowCreateOptsDefault();
|
|
||||||
Window *WindowCreate(PlatformOpts opts);
|
|
||||||
void WindowClear(Window *window, Color color);
|
|
||||||
void WindowFlip(Window *window);
|
|
||||||
|
|
||||||
void PlatformInit(PlatformOpts opts);
|
|
||||||
int PlatformGetWidth();
|
|
||||||
int PlatformGetHeight();
|
|
||||||
|
|
||||||
// TODO: the platform layer would really update the keys being pressed, and
|
|
||||||
// receive a diff in the form of actions. print this line from here and change
|
|
||||||
// colors at these points.
|
|
||||||
|
|
||||||
#endif /* PLATFORM */
|
|
||||||
-43
@@ -1,43 +0,0 @@
|
|||||||
#include <stddef.h>
|
|
||||||
|
|
||||||
#include "str.h"
|
|
||||||
|
|
||||||
static bool intToIndex(String string, int i, size_t *out_index) {
|
|
||||||
int val = 0;
|
|
||||||
bool is_ok = true;
|
|
||||||
if (i >= 0) {
|
|
||||||
val = i;
|
|
||||||
} else {
|
|
||||||
val = string.size + 1 + i;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (val < 0) {
|
|
||||||
val = 0;
|
|
||||||
is_ok = false;
|
|
||||||
} else if (val > string.size) {
|
|
||||||
val = string.size;
|
|
||||||
is_ok = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
*out_index = val;
|
|
||||||
return is_ok;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool StringSub(String string, int start, int end, String *out_substr) {
|
|
||||||
|
|
||||||
size_t start_index = 0;
|
|
||||||
bool start_ok = intToIndex(string, start, &start_index);
|
|
||||||
size_t end_index = 0;
|
|
||||||
bool end_ok = intToIndex(string, end, &end_index);
|
|
||||||
|
|
||||||
if (string.size == 0 || start_index >= end_index) {
|
|
||||||
out_substr->size=0;
|
|
||||||
out_substr->buffer=NULL;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
out_substr->buffer = &string.buffer[start_index];
|
|
||||||
out_substr->size = end_index - start_index;
|
|
||||||
|
|
||||||
return start_ok && end_ok;
|
|
||||||
}
|
|
||||||
-10
@@ -1,10 +0,0 @@
|
|||||||
#include <stddef.h>
|
|
||||||
|
|
||||||
typedef struct String {
|
|
||||||
unsigned char const *buffer;
|
|
||||||
size_t size;
|
|
||||||
} String;
|
|
||||||
|
|
||||||
#define STRING(content) ((String){.buffer=#content, .size=sizeof(#content)-1})
|
|
||||||
|
|
||||||
bool StringSub(String string, int start, int end, String *out_substr);
|
|
||||||
-65
@@ -1,65 +0,0 @@
|
|||||||
#include <stddef.h>
|
|
||||||
|
|
||||||
#include "utf.h"
|
|
||||||
#include "str.h"
|
|
||||||
|
|
||||||
typedef struct Utf8Parser {
|
|
||||||
String str;
|
|
||||||
} Utf8Parser;
|
|
||||||
|
|
||||||
bool Utf8ParserNextCodePoint(Utf8Parser *this, CodePoint *out_codepoint) {
|
|
||||||
uitn8_t const flag_1_bytes = 0;
|
|
||||||
uint8_t const mask_1_bytes = 1 << 7;
|
|
||||||
|
|
||||||
uint8_t const flag_continuation = mask_1_bytes;
|
|
||||||
uint8_t const mask_continuation = (1 << 7) | (1 << 6);
|
|
||||||
|
|
||||||
uint8_t const flag_2_bytes = mask_continuation;
|
|
||||||
uint8_t const mask_2_bytes = (1 << 7) | (1 << 6) | (1 << 5);
|
|
||||||
|
|
||||||
uint8_t const flag_3_bytes = mask_2_bytes;
|
|
||||||
uint8_t const mask_3_bytes = (1 << 7) | (1 << 6) | (1 << 5) | (1 << 4);
|
|
||||||
|
|
||||||
uint8_t const flag_4_bytes = mask_3_bytes;
|
|
||||||
uint8_t const mask_4_bytes = (1 << 7) | (1 << 6) | (1 << 5) | (1 << 4) | (1 << 3);
|
|
||||||
|
|
||||||
if (this->str.size == 0) {
|
|
||||||
*out_codepoint = 0;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((this->str.buffer[0] & mask_1_bytes) == flag_1_bytes) {
|
|
||||||
*out_codepoint = (CodePoint) str[0];
|
|
||||||
bool ok = StringSub(this->str, 1, -1, &this->str);
|
|
||||||
assert(ok && "has to be ok since the size is not 0");
|
|
||||||
return ok;
|
|
||||||
} else
|
|
||||||
}
|
|
||||||
|
|
||||||
// max must be less than or equal to the capacity of target.
|
|
||||||
bool CodePointsFromUtf8String(
|
|
||||||
uint8_t const *str,
|
|
||||||
CodePoint *target,
|
|
||||||
int max
|
|
||||||
) {
|
|
||||||
|
|
||||||
for (size_t i = 0; str[i] != '\0' && max > 0;) {
|
|
||||||
if ((str[i] & mask_1_bytes) == flag_1_bytes) {
|
|
||||||
*target = (CodePoint) str[i];
|
|
||||||
|
|
||||||
target += 1;
|
|
||||||
max -= 1;
|
|
||||||
i += 1;
|
|
||||||
} else
|
|
||||||
if ((str[i] & mask_2_bytes) == flag_2_bytes) {
|
|
||||||
} else
|
|
||||||
if ((str[i] & mask_3_bytes) == flag_3_bytes) {
|
|
||||||
} else
|
|
||||||
if ((str[i] & mask_4_bytes) == flag_4_bytes) {
|
|
||||||
} else {
|
|
||||||
false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
#ifndef UTF
|
|
||||||
#define UTF
|
|
||||||
|
|
||||||
typedef uint32_t CodePoint;
|
|
||||||
|
|
||||||
int CodePointsFromUtf8String(char const *str, CodePoint *target, unsigned int max);
|
|
||||||
|
|
||||||
#endif // UTF
|
|
||||||
|
|
||||||
+6
-12
@@ -1,12 +1,16 @@
|
|||||||
|
# i3 config generated to mimic your sway config
|
||||||
|
|
||||||
# Set mod key (Mod1 = Alt)
|
# Set mod key (Mod1 = Alt)
|
||||||
set $mod Mod1
|
set $mod Mod1
|
||||||
set $left h
|
set $left h
|
||||||
set $down j
|
set $down j
|
||||||
set $up k
|
set $up k
|
||||||
set $right l
|
set $right l
|
||||||
set $term kitty
|
set $term alacritty
|
||||||
set $just just --justfile ~/.config/i3/justfile
|
set $just just --justfile ~/.config/i3/justfile
|
||||||
|
|
||||||
|
for_window [class=".*"] fullscreen disable
|
||||||
|
for_window [class=".*"] floating disable
|
||||||
floating_minimum_size -1 x -1
|
floating_minimum_size -1 x -1
|
||||||
floating_maximum_size -1 x -1
|
floating_maximum_size -1 x -1
|
||||||
|
|
||||||
@@ -32,7 +36,7 @@ floating_modifier $mod
|
|||||||
bindsym $mod+Shift+r reload
|
bindsym $mod+Shift+r reload
|
||||||
|
|
||||||
# Exit i3
|
# Exit i3
|
||||||
bindsym $mod+Shift+e exit
|
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'Exit i3? This will end your session.' -b 'Yes, exit i3' 'i3-msg exit'"
|
||||||
|
|
||||||
focus_follows_mouse yes
|
focus_follows_mouse yes
|
||||||
focus_on_window_activation none
|
focus_on_window_activation none
|
||||||
@@ -133,17 +137,7 @@ bindsym --release XF86MonBrightnessUp exec --no-startup-id brightnessctl set 5%+
|
|||||||
# Screenshot (use scrot instead of grim)
|
# Screenshot (use scrot instead of grim)
|
||||||
bindsym Print exec scrot ~/Pictures/screenshot-%Y-%m-%d-%H%M%S.png
|
bindsym Print exec scrot ~/Pictures/screenshot-%Y-%m-%d-%H%M%S.png
|
||||||
|
|
||||||
|
|
||||||
#class border background text indicator child_border
|
|
||||||
client.focused #ffffff #ffffff #000000 #ffffff #ffffff
|
|
||||||
|
|
||||||
# Status bar (use i3bar + i3status)
|
# Status bar (use i3bar + i3status)
|
||||||
bar {
|
bar {
|
||||||
status_command i3status
|
status_command i3status
|
||||||
|
|
||||||
colors {
|
|
||||||
#class border background text
|
|
||||||
focused_workspace #ffffff #ffffff #000000
|
|
||||||
inactive_workspace #333333 #333333 #ffffff
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ choose-monitor:
|
|||||||
just reset-wallpaper
|
just reset-wallpaper
|
||||||
|
|
||||||
reset-wallpaper:
|
reset-wallpaper:
|
||||||
xsetroot -solid black
|
feh --bg-fill ~/.wallpaper/
|
||||||
|
|
||||||
program-picker:
|
program-picker:
|
||||||
rofi -show drun
|
dmenu_run -p 'start program'
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
)
|
)
|
||||||
|
|
||||||
(defsrc ;;{{{1
|
(defsrc ;;{{{1
|
||||||
f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
|
|
||||||
grv 1 2 3 4 5 6 7 8 9 0 - = bspc
|
grv 1 2 3 4 5 6 7 8 9 0 - = bspc
|
||||||
tab q w e r t y u i o p [ ] \
|
tab q w e r t y u i o p [ ] \
|
||||||
caps a s d f g h j k l ; ' ret
|
caps a s d f g h j k l ; ' ret
|
||||||
@@ -14,7 +13,6 @@
|
|||||||
)
|
)
|
||||||
|
|
||||||
(deflayer default ;;{{{1
|
(deflayer default ;;{{{1
|
||||||
brdn brup bldn blup f5 f6 prev pp next mute vold volu
|
|
||||||
grv 1 2 3 4 5 6 7 8 9 0 - = bspc
|
grv 1 2 3 4 5 6 7 8 9 0 - = bspc
|
||||||
tab q w e r t y u i o p [ ] \
|
tab q w e r t y u i o p [ ] \
|
||||||
@cap a s d f g h j k l ; ' ret
|
@cap a s d f g h j k l ; ' ret
|
||||||
@@ -23,16 +21,14 @@
|
|||||||
)
|
)
|
||||||
|
|
||||||
(deflayer gaming ;;{{{1
|
(deflayer gaming ;;{{{1
|
||||||
f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
|
|
||||||
esc 1 2 3 4 5 6 7 8 9 0 - = bspc
|
esc 1 2 3 4 5 6 7 8 9 0 - = bspc
|
||||||
tab q w e r t y u i o p [ ] \
|
tab q w e r t y u i o p [ ] \
|
||||||
XX a s d f g h j k l ; ' ret
|
XX a s d f g h j k l ; ' ret
|
||||||
lsft z x c v b n m , . / rsft
|
lsft z x c v b n m , . / rsft
|
||||||
lctl lmet lalt spc @dflt rmet rctl
|
lctl lmet \ spc @dflt rmet rctl
|
||||||
)
|
)
|
||||||
|
|
||||||
(deflayer symbols ;;{{{1
|
(deflayer symbols ;;{{{1
|
||||||
f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
|
|
||||||
grv @1 @2 @3 @4 @5 @6 @7 @8 @9 @0 _ _ bspc
|
grv @1 @2 @3 @4 @5 @6 @7 @8 @9 @0 _ _ bspc
|
||||||
tab @` @m[ @m] @& @| @^ @_ @m- @+ @m= @nor _ lrld
|
tab @` @m[ @m] @& @| @^ @_ @m- @+ @m= @nor _ lrld
|
||||||
@cap @~ @bl @br @* @m\ bspc ret @? tab @: S-' ret
|
@cap @~ @bl @br @* @m\ bspc ret @? tab @: S-' ret
|
||||||
|
|||||||
@@ -0,0 +1,118 @@
|
|||||||
|
{
|
||||||
|
"profiles": [
|
||||||
|
{
|
||||||
|
"complex_modifications": {
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"description": "dual purpose modifiers",
|
||||||
|
"manipulators": [
|
||||||
|
{
|
||||||
|
"from": {
|
||||||
|
"key_code": "spacebar",
|
||||||
|
"modifiers": { "optional": ["any"] }
|
||||||
|
},
|
||||||
|
"to": [
|
||||||
|
{
|
||||||
|
"key_code": "left_shift",
|
||||||
|
"lazy": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"to_if_alone": [{ "key_code": "spacebar" }],
|
||||||
|
"type": "basic"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": {
|
||||||
|
"key_code": "caps_lock",
|
||||||
|
"modifiers": { "optional": ["any"] }
|
||||||
|
},
|
||||||
|
"to": [
|
||||||
|
{
|
||||||
|
"key_code": "left_control",
|
||||||
|
"lazy": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"to_if_alone": [{ "key_code": "escape" }],
|
||||||
|
"type": "basic"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "swap alt and cmd",
|
||||||
|
"enabled": false,
|
||||||
|
"manipulators": [
|
||||||
|
{
|
||||||
|
"from": { "key_code": "left_option" },
|
||||||
|
"to": [{ "key_code": "left_command" }],
|
||||||
|
"type": "basic"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": { "key_code": "left_command" },
|
||||||
|
"to": [{ "key_code": "left_option" }],
|
||||||
|
"type": "basic"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"name": "KarabinerTS",
|
||||||
|
"selected": true,
|
||||||
|
"virtual_hid_keyboard": { "keyboard_type_v2": "iso" }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Default profile",
|
||||||
|
"virtual_hid_keyboard": {
|
||||||
|
"country_code": 0,
|
||||||
|
"keyboard_type_v2": "ansi"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"complex_modifications": {
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"description": "Caps Lock to ESC on tap/Left control on hold",
|
||||||
|
"manipulators": [
|
||||||
|
{
|
||||||
|
"from": {
|
||||||
|
"key_code": "caps_lock",
|
||||||
|
"modifiers": { "optional": ["any"] }
|
||||||
|
},
|
||||||
|
"to": [
|
||||||
|
{
|
||||||
|
"key_code": "left_control",
|
||||||
|
"lazy": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"to_if_alone": [{ "key_code": "escape" }],
|
||||||
|
"type": "basic"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Space to shift on hold",
|
||||||
|
"manipulators": [
|
||||||
|
{
|
||||||
|
"from": {
|
||||||
|
"key_code": "spacebar",
|
||||||
|
"modifiers": { "optional": ["any"] }
|
||||||
|
},
|
||||||
|
"to": [
|
||||||
|
{
|
||||||
|
"key_code": "left_shift",
|
||||||
|
"lazy": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"to_if_alone": [{ "key_code": "spacebar" }],
|
||||||
|
"type": "basic"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"name": "Modified profile",
|
||||||
|
"virtual_hid_keyboard": {
|
||||||
|
"country_code": 0,
|
||||||
|
"keyboard_type_v2": "iso"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,118 @@
|
|||||||
|
{
|
||||||
|
"profiles": [
|
||||||
|
{
|
||||||
|
"complex_modifications": {
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"description": "dual purpose modifiers",
|
||||||
|
"manipulators": [
|
||||||
|
{
|
||||||
|
"from": {
|
||||||
|
"key_code": "spacebar",
|
||||||
|
"modifiers": { "optional": ["any"] }
|
||||||
|
},
|
||||||
|
"to": [
|
||||||
|
{
|
||||||
|
"key_code": "left_shift",
|
||||||
|
"lazy": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"to_if_alone": [{ "key_code": "spacebar" }],
|
||||||
|
"type": "basic"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": {
|
||||||
|
"key_code": "caps_lock",
|
||||||
|
"modifiers": { "optional": ["any"] }
|
||||||
|
},
|
||||||
|
"to": [
|
||||||
|
{
|
||||||
|
"key_code": "left_control",
|
||||||
|
"lazy": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"to_if_alone": [{ "key_code": "escape" }],
|
||||||
|
"type": "basic"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "swap alt and cmd",
|
||||||
|
"enabled": false,
|
||||||
|
"manipulators": [
|
||||||
|
{
|
||||||
|
"from": { "key_code": "left_option" },
|
||||||
|
"to": [{ "key_code": "left_command" }],
|
||||||
|
"type": "basic"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": { "key_code": "left_command" },
|
||||||
|
"to": [{ "key_code": "left_option" }],
|
||||||
|
"type": "basic"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"name": "KarabinerTS",
|
||||||
|
"selected": true,
|
||||||
|
"virtual_hid_keyboard": { "keyboard_type_v2": "iso" }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Default profile",
|
||||||
|
"virtual_hid_keyboard": {
|
||||||
|
"country_code": 0,
|
||||||
|
"keyboard_type_v2": "ansi"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"complex_modifications": {
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"description": "Caps Lock to ESC on tap/Left control on hold",
|
||||||
|
"manipulators": [
|
||||||
|
{
|
||||||
|
"from": {
|
||||||
|
"key_code": "caps_lock",
|
||||||
|
"modifiers": { "optional": ["any"] }
|
||||||
|
},
|
||||||
|
"to": [
|
||||||
|
{
|
||||||
|
"key_code": "left_control",
|
||||||
|
"lazy": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"to_if_alone": [{ "key_code": "escape" }],
|
||||||
|
"type": "basic"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Space to shift on hold",
|
||||||
|
"manipulators": [
|
||||||
|
{
|
||||||
|
"from": {
|
||||||
|
"key_code": "spacebar",
|
||||||
|
"modifiers": { "optional": ["any"] }
|
||||||
|
},
|
||||||
|
"to": [
|
||||||
|
{
|
||||||
|
"key_code": "left_shift",
|
||||||
|
"lazy": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"to_if_alone": [{ "key_code": "spacebar" }],
|
||||||
|
"type": "basic"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"name": "Modified profile",
|
||||||
|
"virtual_hid_keyboard": {
|
||||||
|
"country_code": 0,
|
||||||
|
"keyboard_type_v2": "iso"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,118 @@
|
|||||||
|
{
|
||||||
|
"profiles": [
|
||||||
|
{
|
||||||
|
"complex_modifications": {
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"description": "dual purpose modifiers",
|
||||||
|
"manipulators": [
|
||||||
|
{
|
||||||
|
"from": {
|
||||||
|
"key_code": "spacebar",
|
||||||
|
"modifiers": { "optional": ["any"] }
|
||||||
|
},
|
||||||
|
"to": [
|
||||||
|
{
|
||||||
|
"key_code": "left_shift",
|
||||||
|
"lazy": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"to_if_alone": [{ "key_code": "spacebar" }],
|
||||||
|
"type": "basic"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": {
|
||||||
|
"key_code": "caps_lock",
|
||||||
|
"modifiers": { "optional": ["any"] }
|
||||||
|
},
|
||||||
|
"to": [
|
||||||
|
{
|
||||||
|
"key_code": "left_control",
|
||||||
|
"lazy": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"to_if_alone": [{ "key_code": "escape" }],
|
||||||
|
"type": "basic"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "swap alt and cmd",
|
||||||
|
"enabled": false,
|
||||||
|
"manipulators": [
|
||||||
|
{
|
||||||
|
"from": { "key_code": "left_option" },
|
||||||
|
"to": [{ "key_code": "left_command" }],
|
||||||
|
"type": "basic"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": { "key_code": "left_command" },
|
||||||
|
"to": [{ "key_code": "left_option" }],
|
||||||
|
"type": "basic"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"name": "KarabinerTS",
|
||||||
|
"selected": true,
|
||||||
|
"virtual_hid_keyboard": { "keyboard_type_v2": "iso" }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Default profile",
|
||||||
|
"virtual_hid_keyboard": {
|
||||||
|
"country_code": 0,
|
||||||
|
"keyboard_type_v2": "ansi"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"complex_modifications": {
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"description": "Caps Lock to ESC on tap/Left control on hold",
|
||||||
|
"manipulators": [
|
||||||
|
{
|
||||||
|
"from": {
|
||||||
|
"key_code": "caps_lock",
|
||||||
|
"modifiers": { "optional": ["any"] }
|
||||||
|
},
|
||||||
|
"to": [
|
||||||
|
{
|
||||||
|
"key_code": "left_control",
|
||||||
|
"lazy": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"to_if_alone": [{ "key_code": "escape" }],
|
||||||
|
"type": "basic"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Space to shift on hold",
|
||||||
|
"manipulators": [
|
||||||
|
{
|
||||||
|
"from": {
|
||||||
|
"key_code": "spacebar",
|
||||||
|
"modifiers": { "optional": ["any"] }
|
||||||
|
},
|
||||||
|
"to": [
|
||||||
|
{
|
||||||
|
"key_code": "left_shift",
|
||||||
|
"lazy": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"to_if_alone": [{ "key_code": "spacebar" }],
|
||||||
|
"type": "basic"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"name": "Modified profile",
|
||||||
|
"virtual_hid_keyboard": {
|
||||||
|
"country_code": 0,
|
||||||
|
"keyboard_type_v2": "iso"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
+15
-15
@@ -35,24 +35,24 @@
|
|||||||
"type": "basic"
|
"type": "basic"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "swap alt and cmd",
|
||||||
|
"manipulators": [
|
||||||
|
{
|
||||||
|
"from": { "key_code": "left_option" },
|
||||||
|
"to": [{ "key_code": "left_command" }],
|
||||||
|
"type": "basic"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": { "key_code": "left_command" },
|
||||||
|
"to": [{ "key_code": "left_option" }],
|
||||||
|
"type": "basic"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"devices": [
|
|
||||||
{
|
|
||||||
"identifiers": {
|
|
||||||
"is_keyboard": true,
|
|
||||||
"product_id": 21042,
|
|
||||||
"vendor_id": 1155
|
|
||||||
},
|
|
||||||
"simple_modifications": [
|
|
||||||
{
|
|
||||||
"from": { "key_code": "grave_accent_and_tilde" },
|
|
||||||
"to": [{ "key_code": "non_us_backslash" }]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "KarabinerTS",
|
"name": "KarabinerTS",
|
||||||
"selected": true,
|
"selected": true,
|
||||||
"virtual_hid_keyboard": { "keyboard_type_v2": "iso" }
|
"virtual_hid_keyboard": { "keyboard_type_v2": "iso" }
|
||||||
+16
-16
@@ -35,25 +35,26 @@
|
|||||||
"type": "basic"
|
"type": "basic"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "swap alt and cmd",
|
||||||
|
"manipulators": [
|
||||||
|
{
|
||||||
|
"from": { "key_code": "left_option" },
|
||||||
|
"to": [{ "key_code": "left_command" }],
|
||||||
|
"type": "basic"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": { "key_code": "left_command" },
|
||||||
|
"to": [{ "key_code": "left_option" }],
|
||||||
|
"type": "basic"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"devices": [
|
|
||||||
{
|
|
||||||
"identifiers": {
|
|
||||||
"is_keyboard": true,
|
|
||||||
"product_id": 21042,
|
|
||||||
"vendor_id": 1155
|
|
||||||
},
|
|
||||||
"simple_modifications": [
|
|
||||||
{
|
|
||||||
"from": { "key_code": "grave_accent_and_tilde" },
|
|
||||||
"to": [{ "key_code": "non_us_backslash" }]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "KarabinerTS",
|
"name": "KarabinerTS",
|
||||||
|
"selected": true,
|
||||||
"virtual_hid_keyboard": { "keyboard_type_v2": "iso" }
|
"virtual_hid_keyboard": { "keyboard_type_v2": "iso" }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -107,7 +108,6 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"name": "Modified profile",
|
"name": "Modified profile",
|
||||||
"selected": true,
|
|
||||||
"virtual_hid_keyboard": {
|
"virtual_hid_keyboard": {
|
||||||
"country_code": 0,
|
"country_code": 0,
|
||||||
"keyboard_type_v2": "iso"
|
"keyboard_type_v2": "iso"
|
||||||
+15
-15
@@ -35,24 +35,24 @@
|
|||||||
"type": "basic"
|
"type": "basic"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "swap alt and cmd",
|
||||||
|
"manipulators": [
|
||||||
|
{
|
||||||
|
"from": { "key_code": "left_option" },
|
||||||
|
"to": [{ "key_code": "left_command" }],
|
||||||
|
"type": "basic"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": { "key_code": "left_command" },
|
||||||
|
"to": [{ "key_code": "left_option" }],
|
||||||
|
"type": "basic"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"devices": [
|
|
||||||
{
|
|
||||||
"identifiers": {
|
|
||||||
"is_keyboard": true,
|
|
||||||
"product_id": 21042,
|
|
||||||
"vendor_id": 1155
|
|
||||||
},
|
|
||||||
"simple_modifications": [
|
|
||||||
{
|
|
||||||
"from": { "key_code": "grave_accent_and_tilde" },
|
|
||||||
"to": [{ "key_code": "non_us_backslash" }]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "KarabinerTS",
|
"name": "KarabinerTS",
|
||||||
"selected": true,
|
"selected": true,
|
||||||
"virtual_hid_keyboard": { "keyboard_type_v2": "iso" }
|
"virtual_hid_keyboard": { "keyboard_type_v2": "iso" }
|
||||||
+15
-15
@@ -35,24 +35,24 @@
|
|||||||
"type": "basic"
|
"type": "basic"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "swap alt and cmd",
|
||||||
|
"manipulators": [
|
||||||
|
{
|
||||||
|
"from": { "key_code": "left_option" },
|
||||||
|
"to": [{ "key_code": "left_command" }],
|
||||||
|
"type": "basic"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": { "key_code": "left_command" },
|
||||||
|
"to": [{ "key_code": "left_option" }],
|
||||||
|
"type": "basic"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"devices": [
|
|
||||||
{
|
|
||||||
"identifiers": {
|
|
||||||
"is_keyboard": true,
|
|
||||||
"product_id": 21042,
|
|
||||||
"vendor_id": 1155
|
|
||||||
},
|
|
||||||
"simple_modifications": [
|
|
||||||
{
|
|
||||||
"from": { "key_code": "grave_accent_and_tilde" },
|
|
||||||
"to": [{ "key_code": "non_us_backslash" }]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "KarabinerTS",
|
"name": "KarabinerTS",
|
||||||
"selected": true,
|
"selected": true,
|
||||||
"virtual_hid_keyboard": { "keyboard_type_v2": "iso" }
|
"virtual_hid_keyboard": { "keyboard_type_v2": "iso" }
|
||||||
@@ -1,117 +0,0 @@
|
|||||||
{
|
|
||||||
"profiles": [
|
|
||||||
{
|
|
||||||
"complex_modifications": {
|
|
||||||
"rules": [
|
|
||||||
{
|
|
||||||
"description": "dual purpose modifiers",
|
|
||||||
"manipulators": [
|
|
||||||
{
|
|
||||||
"from": {
|
|
||||||
"key_code": "spacebar",
|
|
||||||
"modifiers": { "optional": ["any"] }
|
|
||||||
},
|
|
||||||
"to": [
|
|
||||||
{
|
|
||||||
"key_code": "left_shift",
|
|
||||||
"lazy": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"to_if_alone": [{ "key_code": "spacebar" }],
|
|
||||||
"type": "basic"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"from": {
|
|
||||||
"key_code": "caps_lock",
|
|
||||||
"modifiers": { "optional": ["any"] }
|
|
||||||
},
|
|
||||||
"to": [
|
|
||||||
{
|
|
||||||
"key_code": "left_control",
|
|
||||||
"lazy": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"to_if_alone": [{ "key_code": "escape" }],
|
|
||||||
"type": "basic"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"devices": [
|
|
||||||
{
|
|
||||||
"identifiers": {
|
|
||||||
"is_keyboard": true,
|
|
||||||
"product_id": 21042,
|
|
||||||
"vendor_id": 1155
|
|
||||||
},
|
|
||||||
"simple_modifications": [
|
|
||||||
{
|
|
||||||
"from": { "key_code": "grave_accent_and_tilde" },
|
|
||||||
"to": [{ "key_code": "non_us_backslash" }]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "KarabinerTS",
|
|
||||||
"selected": true,
|
|
||||||
"virtual_hid_keyboard": { "keyboard_type_v2": "iso" }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Default profile",
|
|
||||||
"virtual_hid_keyboard": {
|
|
||||||
"country_code": 0,
|
|
||||||
"keyboard_type_v2": "ansi"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"complex_modifications": {
|
|
||||||
"rules": [
|
|
||||||
{
|
|
||||||
"description": "Caps Lock to ESC on tap/Left control on hold",
|
|
||||||
"manipulators": [
|
|
||||||
{
|
|
||||||
"from": {
|
|
||||||
"key_code": "caps_lock",
|
|
||||||
"modifiers": { "optional": ["any"] }
|
|
||||||
},
|
|
||||||
"to": [
|
|
||||||
{
|
|
||||||
"key_code": "left_control",
|
|
||||||
"lazy": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"to_if_alone": [{ "key_code": "escape" }],
|
|
||||||
"type": "basic"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Space to shift on hold",
|
|
||||||
"manipulators": [
|
|
||||||
{
|
|
||||||
"from": {
|
|
||||||
"key_code": "spacebar",
|
|
||||||
"modifiers": { "optional": ["any"] }
|
|
||||||
},
|
|
||||||
"to": [
|
|
||||||
{
|
|
||||||
"key_code": "left_shift",
|
|
||||||
"lazy": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"to_if_alone": [{ "key_code": "spacebar" }],
|
|
||||||
"type": "basic"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"name": "Modified profile",
|
|
||||||
"virtual_hid_keyboard": {
|
|
||||||
"country_code": 0,
|
|
||||||
"keyboard_type_v2": "iso"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,117 +0,0 @@
|
|||||||
{
|
|
||||||
"profiles": [
|
|
||||||
{
|
|
||||||
"complex_modifications": {
|
|
||||||
"rules": [
|
|
||||||
{
|
|
||||||
"description": "dual purpose modifiers",
|
|
||||||
"manipulators": [
|
|
||||||
{
|
|
||||||
"from": {
|
|
||||||
"key_code": "spacebar",
|
|
||||||
"modifiers": { "optional": ["any"] }
|
|
||||||
},
|
|
||||||
"to": [
|
|
||||||
{
|
|
||||||
"key_code": "left_shift",
|
|
||||||
"lazy": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"to_if_alone": [{ "key_code": "spacebar" }],
|
|
||||||
"type": "basic"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"from": {
|
|
||||||
"key_code": "caps_lock",
|
|
||||||
"modifiers": { "optional": ["any"] }
|
|
||||||
},
|
|
||||||
"to": [
|
|
||||||
{
|
|
||||||
"key_code": "left_control",
|
|
||||||
"lazy": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"to_if_alone": [{ "key_code": "escape" }],
|
|
||||||
"type": "basic"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"devices": [
|
|
||||||
{
|
|
||||||
"identifiers": {
|
|
||||||
"is_keyboard": true,
|
|
||||||
"product_id": 21042,
|
|
||||||
"vendor_id": 1155
|
|
||||||
},
|
|
||||||
"simple_modifications": [
|
|
||||||
{
|
|
||||||
"from": { "key_code": "grave_accent_and_tilde" },
|
|
||||||
"to": [{ "key_code": "non_us_backslash" }]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "KarabinerTS",
|
|
||||||
"selected": true,
|
|
||||||
"virtual_hid_keyboard": { "keyboard_type_v2": "iso" }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Default profile",
|
|
||||||
"virtual_hid_keyboard": {
|
|
||||||
"country_code": 0,
|
|
||||||
"keyboard_type_v2": "ansi"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"complex_modifications": {
|
|
||||||
"rules": [
|
|
||||||
{
|
|
||||||
"description": "Caps Lock to ESC on tap/Left control on hold",
|
|
||||||
"manipulators": [
|
|
||||||
{
|
|
||||||
"from": {
|
|
||||||
"key_code": "caps_lock",
|
|
||||||
"modifiers": { "optional": ["any"] }
|
|
||||||
},
|
|
||||||
"to": [
|
|
||||||
{
|
|
||||||
"key_code": "left_control",
|
|
||||||
"lazy": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"to_if_alone": [{ "key_code": "escape" }],
|
|
||||||
"type": "basic"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Space to shift on hold",
|
|
||||||
"manipulators": [
|
|
||||||
{
|
|
||||||
"from": {
|
|
||||||
"key_code": "spacebar",
|
|
||||||
"modifiers": { "optional": ["any"] }
|
|
||||||
},
|
|
||||||
"to": [
|
|
||||||
{
|
|
||||||
"key_code": "left_shift",
|
|
||||||
"lazy": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"to_if_alone": [{ "key_code": "spacebar" }],
|
|
||||||
"type": "basic"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"name": "Modified profile",
|
|
||||||
"virtual_hid_keyboard": {
|
|
||||||
"country_code": 0,
|
|
||||||
"keyboard_type_v2": "iso"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,117 +0,0 @@
|
|||||||
{
|
|
||||||
"profiles": [
|
|
||||||
{
|
|
||||||
"complex_modifications": {
|
|
||||||
"rules": [
|
|
||||||
{
|
|
||||||
"description": "dual purpose modifiers",
|
|
||||||
"manipulators": [
|
|
||||||
{
|
|
||||||
"from": {
|
|
||||||
"key_code": "spacebar",
|
|
||||||
"modifiers": { "optional": ["any"] }
|
|
||||||
},
|
|
||||||
"to": [
|
|
||||||
{
|
|
||||||
"key_code": "left_shift",
|
|
||||||
"lazy": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"to_if_alone": [{ "key_code": "spacebar" }],
|
|
||||||
"type": "basic"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"from": {
|
|
||||||
"key_code": "caps_lock",
|
|
||||||
"modifiers": { "optional": ["any"] }
|
|
||||||
},
|
|
||||||
"to": [
|
|
||||||
{
|
|
||||||
"key_code": "left_control",
|
|
||||||
"lazy": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"to_if_alone": [{ "key_code": "escape" }],
|
|
||||||
"type": "basic"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"devices": [
|
|
||||||
{
|
|
||||||
"identifiers": {
|
|
||||||
"is_keyboard": true,
|
|
||||||
"product_id": 21042,
|
|
||||||
"vendor_id": 1155
|
|
||||||
},
|
|
||||||
"simple_modifications": [
|
|
||||||
{
|
|
||||||
"from": { "key_code": "grave_accent_and_tilde" },
|
|
||||||
"to": [{ "key_code": "non_us_backslash" }]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "KarabinerTS",
|
|
||||||
"selected": true,
|
|
||||||
"virtual_hid_keyboard": { "keyboard_type_v2": "iso" }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Default profile",
|
|
||||||
"virtual_hid_keyboard": {
|
|
||||||
"country_code": 0,
|
|
||||||
"keyboard_type_v2": "ansi"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"complex_modifications": {
|
|
||||||
"rules": [
|
|
||||||
{
|
|
||||||
"description": "Caps Lock to ESC on tap/Left control on hold",
|
|
||||||
"manipulators": [
|
|
||||||
{
|
|
||||||
"from": {
|
|
||||||
"key_code": "caps_lock",
|
|
||||||
"modifiers": { "optional": ["any"] }
|
|
||||||
},
|
|
||||||
"to": [
|
|
||||||
{
|
|
||||||
"key_code": "left_control",
|
|
||||||
"lazy": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"to_if_alone": [{ "key_code": "escape" }],
|
|
||||||
"type": "basic"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Space to shift on hold",
|
|
||||||
"manipulators": [
|
|
||||||
{
|
|
||||||
"from": {
|
|
||||||
"key_code": "spacebar",
|
|
||||||
"modifiers": { "optional": ["any"] }
|
|
||||||
},
|
|
||||||
"to": [
|
|
||||||
{
|
|
||||||
"key_code": "left_shift",
|
|
||||||
"lazy": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"to_if_alone": [{ "key_code": "spacebar" }],
|
|
||||||
"type": "basic"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"name": "Modified profile",
|
|
||||||
"virtual_hid_keyboard": {
|
|
||||||
"country_code": 0,
|
|
||||||
"keyboard_type_v2": "iso"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -51,23 +51,6 @@
|
|||||||
"to": [{ "key_code": "non_us_backslash" }]
|
"to": [{ "key_code": "non_us_backslash" }]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
|
||||||
{
|
|
||||||
"identifiers": {
|
|
||||||
"is_keyboard": true,
|
|
||||||
"product_id": 8467,
|
|
||||||
"vendor_id": 16700
|
|
||||||
},
|
|
||||||
"simple_modifications": [
|
|
||||||
{
|
|
||||||
"from": { "key_code": "left_option" },
|
|
||||||
"to": [{ "key_code": "left_command" }]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"from": { "key_code": "left_command" },
|
|
||||||
"to": [{ "key_code": "left_option" }]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"name": "KarabinerTS",
|
"name": "KarabinerTS",
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1 @@
|
|||||||
|
save-position-on-quit
|
||||||
+56
-22
@@ -6,6 +6,57 @@ end
|
|||||||
|
|
||||||
vim.g.python3_host_prog = get_python_venv_path()
|
vim.g.python3_host_prog = get_python_venv_path()
|
||||||
|
|
||||||
|
-- POPULATE QFLIST ON ERROR {{{1
|
||||||
|
do
|
||||||
|
local function full_trace()
|
||||||
|
local lines = {}
|
||||||
|
local level = 2
|
||||||
|
while true do
|
||||||
|
local info = debug.getinfo(level, "Sln")
|
||||||
|
if not info then break end
|
||||||
|
local src = info.source or "?"
|
||||||
|
local file = src:gsub("^@", "") -- remove @ prefix
|
||||||
|
local line = string.format(
|
||||||
|
"%s:%d: in %s",
|
||||||
|
file,
|
||||||
|
info.currentline or 0,
|
||||||
|
info.name or "?"
|
||||||
|
)
|
||||||
|
table.insert(lines, line)
|
||||||
|
level = level + 1
|
||||||
|
end
|
||||||
|
return table.concat(lines, "\n")
|
||||||
|
end
|
||||||
|
|
||||||
|
local orig = debug.traceback
|
||||||
|
---@diagnostic disable-next-line: duplicate-set-field, redundant-parameter
|
||||||
|
debug.traceback = function(thread, message, level)
|
||||||
|
local trace = vim.split(full_trace(), "\n")
|
||||||
|
local orig_trace = orig(thread, message, level)
|
||||||
|
if type(thread) ~= 'thread' then
|
||||||
|
level = message
|
||||||
|
message = thread
|
||||||
|
end
|
||||||
|
assert(type(message) == 'nil' or type(message) == 'string')
|
||||||
|
local qflist_items = vim.split(message, "\n")
|
||||||
|
-- doing this to remove truncated file location at the start of the error message
|
||||||
|
for i, msg in ipairs(qflist_items) do
|
||||||
|
local match = string.match(msg, ".*:%s*(.*)")
|
||||||
|
if match ~= nil then
|
||||||
|
qflist_items[i] = match
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for _, loc in ipairs(trace) do
|
||||||
|
table.insert(qflist_items, loc)
|
||||||
|
end
|
||||||
|
vim.fn.setqflist({}, "a", {
|
||||||
|
title = "Traceback",
|
||||||
|
lines = qflist_items,
|
||||||
|
})
|
||||||
|
return orig_trace
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- GENERAL SETTINGS {{{1
|
-- GENERAL SETTINGS {{{1
|
||||||
vim.cmd [=[
|
vim.cmd [=[
|
||||||
set autowriteall
|
set autowriteall
|
||||||
@@ -16,7 +67,6 @@ vim.cmd [=[
|
|||||||
set shiftwidth=0
|
set shiftwidth=0
|
||||||
set rnu
|
set rnu
|
||||||
set nu
|
set nu
|
||||||
set path=**
|
|
||||||
set nowrap
|
set nowrap
|
||||||
set shiftround
|
set shiftround
|
||||||
set expandtab
|
set expandtab
|
||||||
@@ -47,7 +97,6 @@ vim.cmd [=[
|
|||||||
nnoremap ,x <C-x>
|
nnoremap ,x <C-x>
|
||||||
nnoremap ,rl :checktime<CR>
|
nnoremap ,rl :checktime<CR>
|
||||||
nnoremap ,m :wa<CR>:make<CR>
|
nnoremap ,m :wa<CR>:make<CR>
|
||||||
inoremap <c-k> <c-x>
|
|
||||||
|
|
||||||
nnoremap ,cD :call setqflist(filter(getqflist(), 'v:val != getqflist()[getqflist({"idx": 0}).idx - 1]'))<CR>
|
nnoremap ,cD :call setqflist(filter(getqflist(), 'v:val != getqflist()[getqflist({"idx": 0}).idx - 1]'))<CR>
|
||||||
|
|
||||||
@@ -304,7 +353,6 @@ do
|
|||||||
gcc={'*.c'},
|
gcc={'*.c'},
|
||||||
['g++']={'*.cpp'},
|
['g++']={'*.cpp'},
|
||||||
cargo={'Cargo.toml'},
|
cargo={'Cargo.toml'},
|
||||||
zig={'*.zig'}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
---@param dir string?
|
---@param dir string?
|
||||||
@@ -404,6 +452,7 @@ require'lazy'.setup{ --{{{1
|
|||||||
---@module 'oil'
|
---@module 'oil'
|
||||||
---@type oil.SetupOpts
|
---@type oil.SetupOpts
|
||||||
opts = {},
|
opts = {},
|
||||||
|
dependencies = { { 'echasnovski/mini.icons', opts = {} } },
|
||||||
lazy = false,
|
lazy = false,
|
||||||
config = function ()
|
config = function ()
|
||||||
require('oil').setup({
|
require('oil').setup({
|
||||||
@@ -575,13 +624,12 @@ require'lazy'.setup{ --{{{1
|
|||||||
require'mini.align'.setup()
|
require'mini.align'.setup()
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
{ 'sainnhe/everforest', --{{{2
|
{ 'miikanissi/modus-themes.nvim', --{{{2
|
||||||
lazy = false,
|
lazy = false,
|
||||||
priority = 1000,
|
priority = 1000,
|
||||||
config = function()
|
config = function()
|
||||||
vim.o.termguicolors = true
|
vim.o.termguicolors = true
|
||||||
vim.g.everforest_enable_italic = true
|
vim.cmd.colorscheme('modus_vivendi')
|
||||||
vim.cmd.colorscheme('everforest')
|
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
{ 'folke/lazydev.nvim', --{{{2
|
{ 'folke/lazydev.nvim', --{{{2
|
||||||
@@ -598,10 +646,7 @@ require'lazy'.setup{ --{{{1
|
|||||||
'williamboman/mason.nvim',
|
'williamboman/mason.nvim',
|
||||||
},
|
},
|
||||||
cond = function()
|
cond = function()
|
||||||
local ok, mason_registry = pcall(require, 'mason-registry')
|
local mason_registry = require'mason-registry'
|
||||||
if not ok then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
return mason_registry.is_installed('roslyn')
|
return mason_registry.is_installed('roslyn')
|
||||||
end,
|
end,
|
||||||
opts = {
|
opts = {
|
||||||
@@ -676,18 +721,6 @@ require'lazy'.setup{ --{{{1
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
do -- turtle config
|
|
||||||
local turtle_server = vim.fn.exepath("turtle-language-server")
|
|
||||||
local node = vim.fn.exepath("node")
|
|
||||||
if turtle_server ~= "" and node ~= "" then
|
|
||||||
vim.lsp.config['turtle-language-server'] = {
|
|
||||||
cmd={ node, turtle_server, '--stdio' },
|
|
||||||
filetypes = { 'turtle', 'ttl' },
|
|
||||||
}
|
|
||||||
vim.lsp.enable('turtle-language-server')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.lsp.enable('gdscript')
|
vim.lsp.enable('gdscript')
|
||||||
vim.lsp.config('hls', {
|
vim.lsp.config('hls', {
|
||||||
filetypes = { 'haskell', 'lhaskell', 'cabal' },
|
filetypes = { 'haskell', 'lhaskell', 'cabal' },
|
||||||
@@ -868,6 +901,7 @@ require'lazy'.setup{ --{{{1
|
|||||||
dependencies = {
|
dependencies = {
|
||||||
'nvim-lua/plenary.nvim',
|
'nvim-lua/plenary.nvim',
|
||||||
'nvim-telescope/telescope-ui-select.nvim',
|
'nvim-telescope/telescope-ui-select.nvim',
|
||||||
|
'kyazdani42/nvim-web-devicons',
|
||||||
},
|
},
|
||||||
config = function()
|
config = function()
|
||||||
local actions = require'telescope.actions'
|
local actions = require'telescope.actions'
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ func Picker(options []string, pickerOptions ...PickerOption) (choiceIdx int, ok
|
|||||||
func initialize(nOptions int) {
|
func initialize(nOptions int) {
|
||||||
rl.SetTraceLogLevel(rl.LogError)
|
rl.SetTraceLogLevel(rl.LogError)
|
||||||
rl.InitWindow(0, 0, "raymenu")
|
rl.InitWindow(0, 0, "raymenu")
|
||||||
rl.SetWindowState(rl.FlagWindowUndecorated | rl.FlagWindowTopmost)
|
rl.SetWindowState(rl.FlagWindowUndecorated)
|
||||||
rl.SetTargetFPS(
|
rl.SetTargetFPS(
|
||||||
int32(
|
int32(
|
||||||
rl.GetMonitorRefreshRate(
|
rl.GetMonitorRefreshRate(
|
||||||
|
|||||||
@@ -92,12 +92,6 @@ func main() {
|
|||||||
}
|
}
|
||||||
slices.Sort(seshNames)
|
slices.Sort(seshNames)
|
||||||
|
|
||||||
printSeshContents := func(name string) (content string, ok bool) {
|
|
||||||
cmd := exec.Command(tmux, "capture-pane", "-epN", "-t", name)
|
|
||||||
stdout, err := cmd.Output()
|
|
||||||
return string(stdout), err == nil
|
|
||||||
}
|
|
||||||
|
|
||||||
options := []fuzzyfinder.Option{
|
options := []fuzzyfinder.Option{
|
||||||
fuzzyfinder.WithPreviewWindow(
|
fuzzyfinder.WithPreviewWindow(
|
||||||
func(i, width, height int) string {
|
func(i, width, height int) string {
|
||||||
@@ -106,10 +100,6 @@ func main() {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
seshName := seshNames[i]
|
seshName := seshNames[i]
|
||||||
content, ok := printSeshContents(seshName)
|
|
||||||
if ok {
|
|
||||||
return content
|
|
||||||
}
|
|
||||||
windows, _ := config[seshName]
|
windows, _ := config[seshName]
|
||||||
builder := strings.Builder{}
|
builder := strings.Builder{}
|
||||||
for _, window := range windows {
|
for _, window := range windows {
|
||||||
|
|||||||
+1
-4
@@ -23,8 +23,6 @@ bind-key c-p switch-client -l
|
|||||||
bind c-g popup -E -w 100% -h 100% -d "#{pane_current_path}" -b rounded lazygit
|
bind c-g popup -E -w 100% -h 100% -d "#{pane_current_path}" -b rounded lazygit
|
||||||
bind c-t popup -E -w 100% -h 100% -b rounded -d "#{pane_current_path}"
|
bind c-t popup -E -w 100% -h 100% -b rounded -d "#{pane_current_path}"
|
||||||
bind c-s popup -E -w 100% -h 100% -b rounded "sesh"
|
bind c-s popup -E -w 100% -h 100% -b rounded "sesh"
|
||||||
bind c-b popup -E -w 100% -h 100% -b rounded "btop"
|
|
||||||
bind c-f popup -E -w 100% -h 100% -b rounded "xplr"
|
|
||||||
bind c-x confirm-before -p "Kill current session #S? (y/n)" kill-session
|
bind c-x confirm-before -p "Kill current session #S? (y/n)" kill-session
|
||||||
|
|
||||||
bind j command-prompt -p "Join window:" "join-pane -h -s %1"
|
bind j command-prompt -p "Join window:" "join-pane -h -s %1"
|
||||||
@@ -32,7 +30,6 @@ bind b break-pane
|
|||||||
|
|
||||||
set -g default-terminal "tmux-256color"
|
set -g default-terminal "tmux-256color"
|
||||||
set -as terminal-overrides ",xterm-256color:Tc"
|
set -as terminal-overrides ",xterm-256color:Tc"
|
||||||
set -as terminal-features ',xterm-256color:sync'
|
|
||||||
set -g base-index 1
|
set -g base-index 1
|
||||||
setw -g pane-base-index 1
|
setw -g pane-base-index 1
|
||||||
set -g renumber-windows on
|
set -g renumber-windows on
|
||||||
@@ -49,7 +46,7 @@ set -g status-position top
|
|||||||
set -g status-left-length 100
|
set -g status-left-length 100
|
||||||
set -g status-style "fg=${gray_light},bg=default"
|
set -g status-style "fg=${gray_light},bg=default"
|
||||||
set -g status-left "#[fg=${green_soft},bold] #S #[fg=${gray_light},nobold] | "
|
set -g status-left "#[fg=${green_soft},bold] #S #[fg=${gray_light},nobold] | "
|
||||||
set -g status-right ""
|
set -g status-right "#[fg=${gray_dark}]%H:%M"
|
||||||
set -g window-status-current-format " #[fg=${white},bold]#I.#W "
|
set -g window-status-current-format " #[fg=${white},bold]#I.#W "
|
||||||
set -g window-status-format " #I.#W "
|
set -g window-status-format " #I.#W "
|
||||||
set -g message-style "fg=${gray_medium},bg=default"
|
set -g message-style "fg=${gray_medium},bg=default"
|
||||||
|
|||||||
+6
-7
@@ -62,13 +62,12 @@ set wildignore=*.o,*.obj,.git/**,tags,*.pyc
|
|||||||
set noswapfile
|
set noswapfile
|
||||||
set makeprg=just
|
set makeprg=just
|
||||||
syntax on
|
syntax on
|
||||||
tnoremap <silent> <c-w>c <c-\><c-n><c-w>c
|
tnoremap <c-w>c <c-\><c-n><c-w>c
|
||||||
xnoremap <silent> H ^
|
xnoremap H ^
|
||||||
xnoremap <silent> L $
|
xnoremap L $
|
||||||
nnoremap <silent> Q @@
|
nnoremap Q @@
|
||||||
nnoremap <silent> ,m :make<CR>
|
nnoremap ,m :make<CR>
|
||||||
nnoremap <silent> - :E<CR>
|
nnoremap - :E<CR>
|
||||||
nnoremap <silent> _ :execute 'Explore ' . fnameescape(getcwd())<CR>
|
|
||||||
|
|
||||||
if has('clipboard')
|
if has('clipboard')
|
||||||
set clipboard^=unnamed,unnamedplus
|
set clipboard^=unnamed,unnamedplus
|
||||||
|
|||||||
@@ -2,10 +2,3 @@ export GTK_THEME="Adwaita:dark";
|
|||||||
export QT_QPA_PLATFORMTHEME="gtk2";
|
export QT_QPA_PLATFORMTHEME="gtk2";
|
||||||
export PATH="$HOME/.local/share/JetBrains/Toolbox/scripts:$PATH"
|
export PATH="$HOME/.local/share/JetBrains/Toolbox/scripts:$PATH"
|
||||||
export PATH=$PATH:/var/lib/flatpak/exports/bin
|
export PATH=$PATH:/var/lib/flatpak/exports/bin
|
||||||
|
|
||||||
# Disable X11 screen blanking and monitor power-off permanently.
|
|
||||||
if command -v xset >/dev/null 2>&1; then
|
|
||||||
xset s off
|
|
||||||
xset s noblank
|
|
||||||
xset -dpms
|
|
||||||
fi
|
|
||||||
|
|||||||
Reference in New Issue
Block a user