-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathINSTALL.sh
More file actions
199 lines (176 loc) · 5.35 KB
/
INSTALL.sh
File metadata and controls
199 lines (176 loc) · 5.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
#!/bin/bash
# Quick installation script for Notes
echo "[*] Installing Notes - KDE Desktop Application"
echo ""
# Check Python
if ! command -v python3 &> /dev/null; then
echo "[ERROR] Python 3 not found. Install Python 3.8+"
exit 1
fi
echo "[OK] Python found: $(python3 --version)"
# Detect Poetry installation
POETRY=""
if command -v poetry &> /dev/null; then
POETRY="poetry"
elif python3 -m poetry --version &> /dev/null; then
POETRY="python3 -m poetry"
fi
if [ -z "$POETRY" ]; then
echo ""
echo "[WARNING] Poetry not found. Installing..."
curl -sSL https://install.python-poetry.org | python3 -
export PATH="$HOME/.local/bin:$PATH"
POETRY="poetry"
fi
echo "[OK] Poetry found: $($POETRY --version)"
# Check system dependencies
echo ""
echo "[*] Checking system dependencies..."
MISSING_DEPS=""
if ! command -v g++ &> /dev/null; then
MISSING_DEPS="${MISSING_DEPS}g++ "
fi
if ! command -v unzip &> /dev/null; then
MISSING_DEPS="${MISSING_DEPS}unzip "
fi
if ! command -v wget &> /dev/null; then
MISSING_DEPS="${MISSING_DEPS}wget "
fi
if [ -n "$MISSING_DEPS" ]; then
echo "[WARNING] Missing system dependencies: $MISSING_DEPS"
echo " Install with:"
echo " Fedora: sudo dnf install gcc-c++ python3-devel unzip wget"
echo " Ubuntu: sudo apt install build-essential python3-dev unzip wget"
echo " Arch: sudo pacman -S base-devel unzip wget"
read -p " Continue anyway? (y/n) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
exit 1
fi
else
echo "[OK] System dependencies found"
fi
# Install dependencies
echo ""
echo "[*] Installing dependencies with Poetry..."
$POETRY install
# Download Vosk model if not present
echo ""
VOSK_MODEL_DIR="$HOME/.config/vosk/models"
# Ask user which language to install
echo "[*] Speech-to-text language selection"
echo " Which language do you want to use for speech recognition?"
echo " 1) English (en)"
echo " 2) Italian (it)"
echo " 3) Both"
echo " 4) Skip (install manually later)"
read -p " Choice [1-4]: " -n 1 -r
echo
case $REPLY in
1)
LANGS=("en")
;;
2)
LANGS=("it")
;;
3)
LANGS=("en" "it")
;;
4)
echo "[INFO] Skipping Vosk model installation"
LANGS=()
;;
*)
echo "[INFO] Invalid choice, skipping Vosk model installation"
LANGS=()
;;
esac
for LANG in "${LANGS[@]}"; do
case $LANG in
en)
VOSK_MODEL_NAME="vosk-model-small-en-us-0.15"
;;
it)
VOSK_MODEL_NAME="vosk-model-small-it-0.22"
;;
esac
VOSK_MODEL_PATH="$VOSK_MODEL_DIR/$VOSK_MODEL_NAME"
if [ -d "$VOSK_MODEL_PATH" ]; then
echo "[OK] Vosk model for $LANG already installed at $VOSK_MODEL_PATH"
else
echo "[*] Downloading Vosk model for $LANG..."
mkdir -p "$VOSK_MODEL_DIR"
cd "$VOSK_MODEL_DIR"
if wget -q --show-progress "https://alphacephei.com/vosk/models/${VOSK_MODEL_NAME}.zip"; then
echo "[*] Extracting model..."
unzip -q "${VOSK_MODEL_NAME}.zip"
rm "${VOSK_MODEL_NAME}.zip"
echo "[OK] Vosk model for $LANG installed successfully"
else
echo "[WARNING] Failed to download Vosk model for $LANG"
echo " Download manually from: https://alphacephei.com/vosk/models"
fi
cd - > /dev/null
fi
done
# Check Qt tools for translations
echo ""
if command -v lrelease &> /dev/null; then
echo "[OK] Qt tools found"
echo "[*] Compiling translations..."
./update_translations.sh
else
echo "[WARNING] Qt tools not found (optional, for translations)"
echo " Install with: sudo apt install qttools5-dev-tools"
echo " Translations will work but can't be recompiled without Qt tools"
fi
echo ""
echo "[OK] Installation completed!"
echo ""
echo "[INFO] All dependencies are managed by Poetry"
if [ ${#LANGS[@]} -gt 0 ]; then
echo "[INFO] Vosk models installed in: $VOSK_MODEL_DIR"
for LANG in "${LANGS[@]}"; do
case $LANG in
en) echo " - English: vosk-model-small-en-us-0.15" ;;
it) echo " - Italian: vosk-model-small-it-0.22" ;;
esac
done
else
echo "[INFO] No Vosk models installed - speech-to-text won't work"
echo " Download models from: https://alphacephei.com/vosk/models"
fi
echo ""
echo "To launch the app:"
if [ "$POETRY" = "python3 -m poetry" ]; then
echo " python3 -m poetry run python main.py"
else
echo " poetry run python main.py"
fi
echo ""
echo "With custom profile:"
if [ "$POETRY" = "python3 -m poetry" ]; then
echo " python3 -m poetry run python main.py --profile ~/my-notes"
else
echo " poetry run python main.py --profile ~/my-notes"
fi
echo ""
echo "Force language:"
if [ "$POETRY" = "python3 -m poetry" ]; then
echo " python3 -m poetry run python main.py --lang en # English"
echo " python3 -m poetry run python main.py --lang it # Italian"
else
echo " poetry run python main.py --lang en # English"
echo " poetry run python main.py --lang it # Italian"
fi
echo ""
echo "Or use the helper script:"
echo " ./poetry.sh run python main.py"
echo ""
echo "Or enter Poetry shell:"
if [ "$POETRY" = "python3 -m poetry" ]; then
echo " python3 -m poetry shell"
else
echo " poetry shell"
fi
echo " python main.py"