-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall.sh
More file actions
49 lines (40 loc) · 1.19 KB
/
install.sh
File metadata and controls
49 lines (40 loc) · 1.19 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
#!/usr/bin/env bash
set -euo pipefail
APP_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
BIN_DIR="$HOME/.local/bin"
AUTOSTART_DIR="$HOME/.config/autostart"
SYSTEMD_USER_DIR="$HOME/.config/systemd/user"
BIN_PATH="$BIN_DIR/capslock-indicator"
DESKTOP_PATH="$AUTOSTART_DIR/capslock-indicator.desktop"
SERVICE_PATH="$SYSTEMD_USER_DIR/capslock-indicator.service"
mkdir -p "$BIN_DIR" "$AUTOSTART_DIR" "$SYSTEMD_USER_DIR"
install -m 755 "$APP_DIR/capslock_indicator.py" "$BIN_PATH"
cat >"$DESKTOP_PATH" <<EOF
[Desktop Entry]
Type=Application
Name=Caps Lock Indicator
Comment=Show a square window while Caps Lock is on
Exec=$BIN_PATH
Terminal=false
X-GNOME-Autostart-enabled=true
EOF
cat >"$SERVICE_PATH" <<EOF
[Unit]
Description=Caps Lock Indicator Overlay
After=graphical-session.target
Wants=graphical-session.target
[Service]
Type=simple
ExecStart=$BIN_PATH
Restart=always
RestartSec=1
[Install]
WantedBy=default.target
EOF
systemctl --user import-environment DISPLAY XAUTHORITY DBUS_SESSION_BUS_ADDRESS || true
systemctl --user daemon-reload
systemctl --user enable --now capslock-indicator.service
echo "Installed:"
echo " Binary: $BIN_PATH"
echo " Autostart: $DESKTOP_PATH"
echo " Service: $SERVICE_PATH"