plugin-gentleman 1.1.1 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ascii-frames.ts +16 -16
- package/components.tsx +4 -4
- package/package.json +1 -1
package/ascii-frames.ts
CHANGED
|
@@ -16,8 +16,8 @@ export const eyeNeutralCenter = [
|
|
|
16
16
|
|
|
17
17
|
export const eyeNeutralUp = [
|
|
18
18
|
" █████ █████ ", // 27 chars
|
|
19
|
-
"
|
|
20
|
-
"
|
|
19
|
+
" ██░ ░██ ██░░░░░██ ", // 27 chars - hollow pupil up
|
|
20
|
+
" ██░░ ░░██ ██░░░░░░░██ ", // 27 chars - hollow pupil up
|
|
21
21
|
" ██░░░░░░░██ ██░░░░░░░██ ", // 27 chars
|
|
22
22
|
"██ ██░░░░░██ ██░░░░░██ ██", // 27 chars
|
|
23
23
|
]
|
|
@@ -27,7 +27,7 @@ export const eyeNeutralDown = [
|
|
|
27
27
|
" ██░░░░░██ ██░░░░░██ ", // 27 chars
|
|
28
28
|
" ██░░░░░░░██ ██░░░░░░░██ ", // 27 chars
|
|
29
29
|
" ██░░ ░░██ ██░░░░░░░██ ", // 27 chars - hollow pupil down
|
|
30
|
-
"██
|
|
30
|
+
"██ ██░ ░██ ██░░░░░██ ██", // 27 chars - hollow pupil down
|
|
31
31
|
]
|
|
32
32
|
|
|
33
33
|
export const eyeNeutralLeft = [
|
|
@@ -48,16 +48,16 @@ export const eyeNeutralRight = [
|
|
|
48
48
|
|
|
49
49
|
export const eyeNeutralUpLeft = [
|
|
50
50
|
" █████ █████ ", // 27 chars
|
|
51
|
-
" ██
|
|
52
|
-
" ██
|
|
51
|
+
" ██ ░░██ ██░░░░░██ ", // 27 chars - hollow pupil up-left
|
|
52
|
+
" ██ ░░░░██ ██░░░░░░░██ ", // 27 chars - hollow pupil up-left
|
|
53
53
|
" ██░░░░░░░██ ██░░░░░░░██ ", // 27 chars
|
|
54
54
|
"██ ██░░░░░██ ██░░░░░██ ██", // 27 chars
|
|
55
55
|
]
|
|
56
56
|
|
|
57
57
|
export const eyeNeutralUpRight = [
|
|
58
|
-
" █████
|
|
59
|
-
"
|
|
60
|
-
"
|
|
58
|
+
" ██████ █████ ", // 27 chars
|
|
59
|
+
" ██░░░ ██ ██░░░░░██ ", // 27 chars - hollow pupil up-right
|
|
60
|
+
" ██░░░░ ██ ██░░░░░░░██ ", // 27 chars - hollow pupil up-right
|
|
61
61
|
" ██░░░░░░░██ ██░░░░░░░██ ", // 27 chars
|
|
62
62
|
"██ ██░░░░░██ ██░░░░░██ ██", // 27 chars
|
|
63
63
|
]
|
|
@@ -66,16 +66,16 @@ export const eyeNeutralDownLeft = [
|
|
|
66
66
|
" █████ █████ ", // 27 chars
|
|
67
67
|
" ██░░░░░██ ██░░░░░██ ", // 27 chars
|
|
68
68
|
" ██░░░░░░░██ ██░░░░░░░██ ", // 27 chars
|
|
69
|
-
" ██
|
|
70
|
-
"██ ██
|
|
69
|
+
" ██ ░░░░██ ██░░░░░░░██ ", // 27 chars - hollow pupil down-left
|
|
70
|
+
"██ ██ ░░░██ ██░░░░░██ ██", // 27 chars - hollow pupil down-left
|
|
71
71
|
]
|
|
72
72
|
|
|
73
73
|
export const eyeNeutralDownRight = [
|
|
74
74
|
" █████ █████ ", // 27 chars
|
|
75
75
|
" ██░░░░░██ ██░░░░░██ ", // 27 chars
|
|
76
76
|
" ██░░░░░░░██ ██░░░░░░░██ ", // 27 chars
|
|
77
|
-
"
|
|
78
|
-
"██
|
|
77
|
+
" ██░░░░ ██ ██░░░░░░░██ ", // 27 chars - hollow pupil down-right
|
|
78
|
+
"██ ██░░░ ██ ██░░░░░██ ██", // 27 chars - hollow pupil down-right
|
|
79
79
|
]
|
|
80
80
|
|
|
81
81
|
// Squinted eyes version for busy/expressive state
|
|
@@ -107,17 +107,17 @@ export const eyeBlinkClosed = [
|
|
|
107
107
|
|
|
108
108
|
// Mustache section (all lines padded to 27 chars for alignment)
|
|
109
109
|
export const mustachiMustacheSection = [
|
|
110
|
-
"███████████ ███████████", // 27 chars - perfectly symmetric
|
|
111
110
|
"████████████ ████████████", // 27 chars - perfectly symmetric
|
|
111
|
+
"█████████████ █████████████", // 27 chars - perfectly symmetric
|
|
112
112
|
" █████████████████████████ ", // 27 chars - perfectly symmetric
|
|
113
|
-
"
|
|
114
|
-
"
|
|
113
|
+
" ▓█████████ █████████▓ ", // 27 chars - perfectly symmetric
|
|
114
|
+
" ▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓ ", // 27 chars - perfectly symmetric
|
|
115
115
|
]
|
|
116
116
|
|
|
117
117
|
// Tongue animation frames (progressive) - compact design
|
|
118
118
|
export const tongueFrames = [
|
|
119
119
|
[], // no tongue
|
|
120
|
-
["
|
|
120
|
+
[" ███", " █"], // tongue out
|
|
121
121
|
]
|
|
122
122
|
|
|
123
123
|
// Mustache-only ASCII art for home logo (original massive solid block design)
|
package/components.tsx
CHANGED
|
@@ -74,7 +74,7 @@ export const SidebarMustachi = (props: { theme: TuiThemeCurrent; config: Cfg; is
|
|
|
74
74
|
const randomDir = 1 + Math.floor(Math.random() * (pupilPositionFrames.length - 1))
|
|
75
75
|
setPupilIndex(randomDir)
|
|
76
76
|
}
|
|
77
|
-
}, 3000)
|
|
77
|
+
}, 3000) // Natural cadence: check every 3s for eye movement
|
|
78
78
|
|
|
79
79
|
onCleanup(() => clearInterval(interval))
|
|
80
80
|
})
|
|
@@ -97,12 +97,12 @@ export const SidebarMustachi = (props: { theme: TuiThemeCurrent; config: Cfg; is
|
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
const interval = setInterval(() => {
|
|
100
|
-
//
|
|
100
|
+
// Natural blink frequency (~every 5-6 seconds)
|
|
101
101
|
// 35% chance every 2s = average 5.7s between blinks
|
|
102
102
|
if (Math.random() < 0.35) {
|
|
103
103
|
blinkSequence()
|
|
104
104
|
}
|
|
105
|
-
}, 2000)
|
|
105
|
+
}, 2000) // Natural cadence: check every 2s for blink
|
|
106
106
|
|
|
107
107
|
onCleanup(() => clearInterval(interval))
|
|
108
108
|
})
|
|
@@ -172,7 +172,7 @@ export const SidebarMustachi = (props: { theme: TuiThemeCurrent; config: Cfg; is
|
|
|
172
172
|
}, 8000)
|
|
173
173
|
}
|
|
174
174
|
|
|
175
|
-
// First cycle after 30-45s, then every 45-60s
|
|
175
|
+
// First cycle after 30-45s, then every 45-60s (calm, occasional expressiveness)
|
|
176
176
|
const firstDelay = 30000 + Math.random() * 15000
|
|
177
177
|
const firstTimeout = setTimeout(triggerExpressiveCycle, firstDelay)
|
|
178
178
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "plugin-gentleman",
|
|
4
|
-
"version": "1.1.
|
|
4
|
+
"version": "1.1.3",
|
|
5
5
|
"description": "OpenCode TUI plugin featuring Mustachi - an animated ASCII mascot with eyes, mustache, and optional motivational phrases during busy states",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"exports": {
|