@fredlackey/devutils 0.0.1 → 0.0.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.
Files changed (259) hide show
  1. package/README.md +5 -5
  2. package/package.json +1 -1
  3. package/src/commands/install.js +374 -36
  4. package/src/installs/adobe-creative-cloud.js +527 -25
  5. package/src/installs/adobe-creative-cloud.md +605 -0
  6. package/src/installs/appcleaner.js +303 -26
  7. package/src/installs/appcleaner.md +699 -0
  8. package/src/installs/apt-transport-https.js +390 -0
  9. package/src/installs/apt-transport-https.md +678 -0
  10. package/src/installs/atomicparsley.js +624 -26
  11. package/src/installs/atomicparsley.md +795 -0
  12. package/src/installs/aws-cli.js +779 -26
  13. package/src/installs/aws-cli.md +727 -0
  14. package/src/installs/balena-etcher.js +688 -26
  15. package/src/installs/balena-etcher.md +761 -0
  16. package/src/installs/bambu-studio.js +912 -26
  17. package/src/installs/bambu-studio.md +780 -0
  18. package/src/installs/bash-completion.js +554 -23
  19. package/src/installs/bash-completion.md +833 -0
  20. package/src/installs/bash.js +399 -26
  21. package/src/installs/bash.md +993 -0
  22. package/src/installs/beyond-compare.js +585 -26
  23. package/src/installs/beyond-compare.md +813 -0
  24. package/src/installs/build-essential.js +511 -26
  25. package/src/installs/build-essential.md +977 -0
  26. package/src/installs/ca-certificates.js +618 -0
  27. package/src/installs/ca-certificates.md +937 -0
  28. package/src/installs/caffeine.js +490 -26
  29. package/src/installs/caffeine.md +839 -0
  30. package/src/installs/camtasia.js +577 -25
  31. package/src/installs/camtasia.md +762 -0
  32. package/src/installs/chatgpt.js +458 -26
  33. package/src/installs/chatgpt.md +814 -0
  34. package/src/installs/chocolatey.js +447 -0
  35. package/src/installs/chocolatey.md +661 -0
  36. package/src/installs/chrome-canary.js +472 -26
  37. package/src/installs/chrome-canary.md +641 -0
  38. package/src/installs/chromium.js +645 -26
  39. package/src/installs/chromium.md +838 -0
  40. package/src/installs/claude-code.js +558 -26
  41. package/src/installs/claude-code.md +1173 -0
  42. package/src/installs/curl.js +361 -26
  43. package/src/installs/curl.md +714 -0
  44. package/src/installs/cursor.js +561 -26
  45. package/src/installs/cursor.md +970 -0
  46. package/src/installs/dbschema.js +674 -26
  47. package/src/installs/dbschema.md +925 -0
  48. package/src/installs/dependencies.md +435 -0
  49. package/src/installs/development-tools.js +600 -0
  50. package/src/installs/development-tools.md +977 -0
  51. package/src/installs/docker.js +1010 -25
  52. package/src/installs/docker.md +1109 -0
  53. package/src/installs/drawio.js +1001 -26
  54. package/src/installs/drawio.md +795 -0
  55. package/src/installs/elmedia-player.js +328 -25
  56. package/src/installs/elmedia-player.md +556 -0
  57. package/src/installs/ffmpeg.js +870 -25
  58. package/src/installs/ffmpeg.md +852 -0
  59. package/src/installs/file.js +464 -0
  60. package/src/installs/file.md +987 -0
  61. package/src/installs/gemini-cli.js +793 -26
  62. package/src/installs/gemini-cli.md +1153 -0
  63. package/src/installs/git.js +382 -26
  64. package/src/installs/git.md +907 -0
  65. package/src/installs/gitego.js +931 -26
  66. package/src/installs/gitego.md +1172 -0
  67. package/src/installs/go.js +913 -26
  68. package/src/installs/go.md +958 -0
  69. package/src/installs/google-chrome.js +801 -25
  70. package/src/installs/google-chrome.md +862 -0
  71. package/src/installs/gpg.js +412 -73
  72. package/src/installs/gpg.md +1056 -0
  73. package/src/installs/homebrew.js +1015 -26
  74. package/src/installs/homebrew.md +988 -0
  75. package/src/installs/imageoptim.js +950 -26
  76. package/src/installs/imageoptim.md +1119 -0
  77. package/src/installs/installers.json +2297 -0
  78. package/src/installs/jq.js +382 -26
  79. package/src/installs/jq.md +809 -0
  80. package/src/installs/keyboard-maestro.js +701 -26
  81. package/src/installs/keyboard-maestro.md +825 -0
  82. package/src/installs/latex.js +771 -26
  83. package/src/installs/latex.md +1095 -0
  84. package/src/installs/lftp.js +338 -26
  85. package/src/installs/lftp.md +907 -0
  86. package/src/installs/lsb-release.js +346 -0
  87. package/src/installs/lsb-release.md +814 -0
  88. package/src/installs/messenger.js +829 -26
  89. package/src/installs/messenger.md +900 -0
  90. package/src/installs/microsoft-office.js +550 -26
  91. package/src/installs/microsoft-office.md +760 -0
  92. package/src/installs/microsoft-teams.js +782 -25
  93. package/src/installs/microsoft-teams.md +886 -0
  94. package/src/installs/node.js +886 -26
  95. package/src/installs/node.md +1153 -0
  96. package/src/installs/nordpass.js +698 -26
  97. package/src/installs/nordpass.md +921 -0
  98. package/src/installs/nvm.js +977 -26
  99. package/src/installs/nvm.md +1057 -0
  100. package/src/installs/openssh.js +734 -64
  101. package/src/installs/openssh.md +1056 -0
  102. package/src/installs/pandoc.js +644 -26
  103. package/src/installs/pandoc.md +1036 -0
  104. package/src/installs/pinentry.js +492 -26
  105. package/src/installs/pinentry.md +1142 -0
  106. package/src/installs/pngyu.js +851 -26
  107. package/src/installs/pngyu.md +896 -0
  108. package/src/installs/postman.js +781 -26
  109. package/src/installs/postman.md +940 -0
  110. package/src/installs/procps.js +425 -0
  111. package/src/installs/procps.md +851 -0
  112. package/src/installs/safari-tech-preview.js +355 -25
  113. package/src/installs/safari-tech-preview.md +533 -0
  114. package/src/installs/sfnt2woff.js +640 -26
  115. package/src/installs/sfnt2woff.md +795 -0
  116. package/src/installs/shellcheck.js +463 -26
  117. package/src/installs/shellcheck.md +1005 -0
  118. package/src/installs/slack.js +722 -25
  119. package/src/installs/slack.md +865 -0
  120. package/src/installs/snagit.js +566 -25
  121. package/src/installs/snagit.md +844 -0
  122. package/src/installs/software-properties-common.js +372 -0
  123. package/src/installs/software-properties-common.md +805 -0
  124. package/src/installs/spotify.js +858 -25
  125. package/src/installs/spotify.md +901 -0
  126. package/src/installs/studio-3t.js +803 -26
  127. package/src/installs/studio-3t.md +918 -0
  128. package/src/installs/sublime-text.js +780 -25
  129. package/src/installs/sublime-text.md +914 -0
  130. package/src/installs/superwhisper.js +687 -25
  131. package/src/installs/superwhisper.md +630 -0
  132. package/src/installs/tailscale.js +727 -26
  133. package/src/installs/tailscale.md +1100 -0
  134. package/src/installs/tar.js +389 -0
  135. package/src/installs/tar.md +946 -0
  136. package/src/installs/termius.js +780 -26
  137. package/src/installs/termius.md +844 -0
  138. package/src/installs/terraform.js +761 -26
  139. package/src/installs/terraform.md +899 -0
  140. package/src/installs/tidal.js +752 -25
  141. package/src/installs/tidal.md +864 -0
  142. package/src/installs/tmux.js +328 -26
  143. package/src/installs/tmux.md +1030 -0
  144. package/src/installs/tree.js +393 -26
  145. package/src/installs/tree.md +833 -0
  146. package/src/installs/unzip.js +460 -0
  147. package/src/installs/unzip.md +879 -0
  148. package/src/installs/vim.js +403 -26
  149. package/src/installs/vim.md +1040 -0
  150. package/src/installs/vlc.js +803 -26
  151. package/src/installs/vlc.md +927 -0
  152. package/src/installs/vscode.js +825 -26
  153. package/src/installs/vscode.md +1002 -0
  154. package/src/installs/wget.js +415 -0
  155. package/src/installs/wget.md +791 -0
  156. package/src/installs/whatsapp.js +710 -25
  157. package/src/installs/whatsapp.md +854 -0
  158. package/src/installs/winpty.js +352 -0
  159. package/src/installs/winpty.md +620 -0
  160. package/src/installs/woff2.js +535 -26
  161. package/src/installs/woff2.md +977 -0
  162. package/src/installs/wsl.js +572 -0
  163. package/src/installs/wsl.md +699 -0
  164. package/src/installs/xcode-clt.js +520 -0
  165. package/src/installs/xcode-clt.md +351 -0
  166. package/src/installs/xcode.js +542 -26
  167. package/src/installs/xcode.md +573 -0
  168. package/src/installs/yarn.js +806 -26
  169. package/src/installs/yarn.md +1074 -0
  170. package/src/installs/yq.js +636 -26
  171. package/src/installs/yq.md +944 -0
  172. package/src/installs/yt-dlp.js +683 -26
  173. package/src/installs/yt-dlp.md +946 -0
  174. package/src/installs/yum-utils.js +297 -0
  175. package/src/installs/yum-utils.md +648 -0
  176. package/src/installs/zoom.js +740 -25
  177. package/src/installs/zoom.md +884 -0
  178. package/src/scripts/README.md +567 -45
  179. package/src/scripts/STATUS.md +208 -0
  180. package/src/scripts/afk.js +395 -7
  181. package/src/scripts/backup-all.js +731 -9
  182. package/src/scripts/backup-source.js +711 -8
  183. package/src/scripts/brewd.js +373 -7
  184. package/src/scripts/brewi.js +505 -9
  185. package/src/scripts/brewr.js +512 -9
  186. package/src/scripts/brews.js +462 -9
  187. package/src/scripts/brewu.js +488 -7
  188. package/src/scripts/c.js +185 -7
  189. package/src/scripts/ccurl.js +325 -8
  190. package/src/scripts/certbot-crontab-init.js +488 -8
  191. package/src/scripts/certbot-init.js +641 -9
  192. package/src/scripts/ch.js +339 -7
  193. package/src/scripts/claude-danger.js +253 -8
  194. package/src/scripts/clean-dev.js +419 -8
  195. package/src/scripts/clear-dns-cache.js +525 -7
  196. package/src/scripts/clone.js +417 -7
  197. package/src/scripts/code-all.js +420 -7
  198. package/src/scripts/count-files.js +195 -8
  199. package/src/scripts/count-folders.js +195 -8
  200. package/src/scripts/count.js +248 -8
  201. package/src/scripts/d.js +203 -7
  202. package/src/scripts/datauri.js +373 -8
  203. package/src/scripts/delete-files.js +363 -7
  204. package/src/scripts/docker-clean.js +410 -8
  205. package/src/scripts/dp.js +426 -7
  206. package/src/scripts/e.js +375 -9
  207. package/src/scripts/empty-trash.js +497 -7
  208. package/src/scripts/evm.js +428 -9
  209. package/src/scripts/fetch-github-repos.js +441 -10
  210. package/src/scripts/get-channel.js +329 -8
  211. package/src/scripts/get-course.js +384 -11
  212. package/src/scripts/get-dependencies.js +290 -9
  213. package/src/scripts/get-folder.js +783 -10
  214. package/src/scripts/get-tunes.js +411 -10
  215. package/src/scripts/get-video.js +352 -9
  216. package/src/scripts/git-backup.js +561 -9
  217. package/src/scripts/git-clone.js +477 -9
  218. package/src/scripts/git-pup.js +303 -7
  219. package/src/scripts/git-push.js +380 -8
  220. package/src/scripts/h.js +607 -9
  221. package/src/scripts/hide-desktop-icons.js +483 -7
  222. package/src/scripts/hide-hidden-files.js +522 -7
  223. package/src/scripts/install-dependencies-from.js +440 -9
  224. package/src/scripts/ips.js +647 -10
  225. package/src/scripts/iso.js +354 -8
  226. package/src/scripts/killni.js +561 -7
  227. package/src/scripts/ll.js +451 -8
  228. package/src/scripts/local-ip.js +310 -8
  229. package/src/scripts/m.js +508 -8
  230. package/src/scripts/map.js +293 -8
  231. package/src/scripts/mkd.js +287 -7
  232. package/src/scripts/ncu-update-all.js +441 -8
  233. package/src/scripts/nginx-init.js +702 -12
  234. package/src/scripts/npmi.js +366 -7
  235. package/src/scripts/o.js +495 -8
  236. package/src/scripts/org-by-date.js +321 -7
  237. package/src/scripts/p.js +208 -7
  238. package/src/scripts/packages.js +313 -8
  239. package/src/scripts/path.js +209 -7
  240. package/src/scripts/ports.js +582 -8
  241. package/src/scripts/q.js +290 -8
  242. package/src/scripts/refresh-files.js +378 -10
  243. package/src/scripts/remove-smaller-files.js +500 -8
  244. package/src/scripts/rename-files-with-date.js +517 -9
  245. package/src/scripts/resize-image.js +523 -9
  246. package/src/scripts/rm-safe.js +653 -8
  247. package/src/scripts/s.js +525 -9
  248. package/src/scripts/set-git-public.js +349 -7
  249. package/src/scripts/show-desktop-icons.js +459 -7
  250. package/src/scripts/show-hidden-files.js +456 -7
  251. package/src/scripts/tpa.js +265 -8
  252. package/src/scripts/tpo.js +264 -7
  253. package/src/scripts/u.js +489 -7
  254. package/src/scripts/vpush.js +422 -8
  255. package/src/scripts/y.js +267 -7
  256. package/src/utils/common/os.js +94 -2
  257. package/src/utils/ubuntu/apt.js +13 -7
  258. package/src/utils/windows/choco.js +82 -26
  259. package/src/utils/windows/winget.js +89 -27
@@ -0,0 +1,901 @@
1
+ # Installing Spotify
2
+
3
+ ## Dependencies
4
+
5
+ ### macOS (Homebrew)
6
+ - **Required:**
7
+ - `brew` (Homebrew package manager) - Install via `dev install homebrew` or visit https://brew.sh
8
+ - **Optional:** None
9
+ - **Auto-installed:** None
10
+
11
+ ### Ubuntu/Debian (APT/Snap)
12
+ - **Required:**
13
+ - `snapd` (Snap package manager) - Install via `sudo apt-get update && sudo apt-get install -y snapd && sudo systemctl enable --now snapd.socket`
14
+ - **Optional:** None
15
+ - **Auto-installed:** None
16
+
17
+ ### Raspberry Pi OS (APT/Snap)
18
+ - **Required:**
19
+ - `curl` - Install via `sudo apt-get update && sudo apt-get install -y curl`
20
+ - APT package manager (pre-installed on Raspberry Pi OS)
21
+ - Spotify Premium account (required for Raspotify/Spotify Connect functionality)
22
+ - **Optional:** None
23
+ - **Auto-installed:**
24
+ - Raspotify service and all its dependencies (installed by https://dtcooper.github.io/raspotify/install.sh)
25
+
26
+ ### Amazon Linux/RHEL (DNF/YUM)
27
+ - **Required:**
28
+ - `dnf` or `yum` package manager (pre-installed on Amazon Linux/RHEL)
29
+ - EPEL repository - Install via `sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm` (AL2023/RHEL9) or `sudo amazon-linux-extras install -y epel` (AL2)
30
+ - `snapd` - Install via `sudo dnf install -y snapd` or `sudo yum install -y snapd`
31
+ - Graphical desktop environment (GNOME, KDE, etc.) for GUI functionality
32
+ - **Optional:** None
33
+ - **Auto-installed:**
34
+ - Classic snap support symlink (`/snap` -> `/var/lib/snapd/snap`)
35
+
36
+ ### Windows (Chocolatey/winget)
37
+ - **Required:**
38
+ - `choco` (Chocolatey package manager) - Install via PowerShell (Administrator): `Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))`
39
+ - Administrator privileges (required for installation)
40
+ - **Optional:** None
41
+ - **Auto-installed:** None
42
+
43
+ ### Git Bash (Manual/Portable)
44
+ - **Required:**
45
+ - `choco` (Chocolatey on Windows host) - Install via PowerShell (Administrator): `Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))`
46
+ - PowerShell access (for invoking Windows package manager)
47
+ - Administrator privileges (required for installation on Windows host)
48
+ - **Optional:** None
49
+ - **Auto-installed:** None (Spotify is installed on Windows host and accessed from Git Bash)
50
+
51
+ ## Overview
52
+
53
+ Spotify is a digital music streaming service that provides access to millions of songs, podcasts, and videos from creators worldwide. The desktop application offers features including offline listening (with Premium), high-quality audio streaming, curated playlists, and seamless syncing across devices. Spotify is widely used for personal entertainment, background music during development, and podcast consumption.
54
+
55
+ **Important Platform Note**: Spotify for Linux is described by Spotify as "a labor of love from our engineers that wanted to listen to Spotify on their Linux development machines. They work on it in their spare time and it is currently not a platform that we actively support." The experience may differ from Windows and Mac clients.
56
+
57
+ ## Prerequisites
58
+
59
+ Before installing Spotify on any platform, ensure:
60
+
61
+ 1. **Internet connectivity** - Required to download Spotify and stream music
62
+ 2. **Spotify account** - Required to sign in (create a free account at spotify.com or upgrade to Premium for additional features)
63
+ 3. **Audio output** - Speakers or headphones connected to your system
64
+ 4. **64-bit operating system** - Required for native desktop applications on most platforms
65
+
66
+ ## Platform-Specific Installation
67
+
68
+ ### macOS (Homebrew)
69
+
70
+ #### Prerequisites
71
+
72
+ - macOS 12 (Monterey) or later
73
+ - Homebrew package manager installed
74
+ - At least 500 MB free disk space
75
+ - Apple Silicon (M1/M2/M3/M4) or Intel processor
76
+
77
+ If Homebrew is not installed, install it first:
78
+
79
+ ```bash
80
+ NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
81
+ ```
82
+
83
+ #### Installation Steps
84
+
85
+ Run the following command to install Spotify:
86
+
87
+ ```bash
88
+ brew install --quiet --cask spotify
89
+ ```
90
+
91
+ The `--quiet` flag suppresses non-essential output for automation-friendly installation. The `--cask` flag specifies the graphical application version.
92
+
93
+ After installation, launch Spotify from the Applications folder or via command line:
94
+
95
+ ```bash
96
+ open -a Spotify
97
+ ```
98
+
99
+ **Note**: On first launch, Spotify will prompt you to sign in with your account credentials.
100
+
101
+ #### Verification
102
+
103
+ Confirm the installation succeeded by checking if the application exists:
104
+
105
+ ```bash
106
+ ls /Applications/ | grep -i spotify
107
+ ```
108
+
109
+ Expected output:
110
+
111
+ ```
112
+ Spotify.app
113
+ ```
114
+
115
+ Verify Spotify can launch:
116
+
117
+ ```bash
118
+ open -a Spotify
119
+ ```
120
+
121
+ #### Troubleshooting
122
+
123
+ **Problem**: `Error: Cask 'spotify' requires macOS >= 12`
124
+
125
+ **Solution**: Your macOS version is too old. Spotify requires macOS 12 (Monterey) or later. Upgrade your operating system before installing.
126
+
127
+ **Problem**: "Spotify is damaged and can't be opened" error
128
+
129
+ **Solution**: Clear the quarantine attribute:
130
+
131
+ ```bash
132
+ xattr -cr "/Applications/Spotify.app"
133
+ ```
134
+
135
+ **Problem**: Cask already installed
136
+
137
+ **Solution**: If you need to reinstall, first uninstall then reinstall:
138
+
139
+ ```bash
140
+ brew uninstall --cask spotify
141
+ brew install --quiet --cask spotify
142
+ ```
143
+
144
+ **Problem**: Spotify fails to start after macOS upgrade
145
+
146
+ **Solution**: Reinstall Spotify:
147
+
148
+ ```bash
149
+ brew uninstall --cask spotify
150
+ brew install --quiet --cask spotify
151
+ ```
152
+
153
+ ---
154
+
155
+ ### Ubuntu/Debian (Snap)
156
+
157
+ #### Prerequisites
158
+
159
+ - Ubuntu 16.04 LTS or later, or Debian 10 (Buster) or later (64-bit x86_64)
160
+ - sudo privileges
161
+ - Snap package manager (pre-installed on Ubuntu 16.04+)
162
+ - At least 250 MB free disk space
163
+
164
+ Snap is pre-installed on Ubuntu 16.04 and later. If snap is not installed (common on Debian):
165
+
166
+ ```bash
167
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
168
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y snapd
169
+ sudo systemctl enable --now snapd.socket
170
+ sudo ln -sf /var/lib/snapd/snap /snap
171
+ ```
172
+
173
+ After installing snapd on Debian, log out and log back in (or reboot) for the snap command to become available in your PATH.
174
+
175
+ #### Installation Steps
176
+
177
+ Run the following command to install Spotify via Snap:
178
+
179
+ ```bash
180
+ sudo snap install spotify
181
+ ```
182
+
183
+ The Snap package is the officially supported distribution method by Spotify for Linux.
184
+
185
+ After installation, launch Spotify:
186
+
187
+ ```bash
188
+ spotify &
189
+ ```
190
+
191
+ The ampersand (`&`) runs Spotify in the background, freeing your terminal.
192
+
193
+ #### Verification
194
+
195
+ Confirm the installation succeeded:
196
+
197
+ ```bash
198
+ snap list spotify
199
+ ```
200
+
201
+ Expected output (version may vary):
202
+
203
+ ```
204
+ Name Version Rev Tracking Publisher Notes
205
+ spotify 1.2.74.477... 168 latest/stable spotify -
206
+ ```
207
+
208
+ Verify Spotify launches correctly:
209
+
210
+ ```bash
211
+ spotify &
212
+ ```
213
+
214
+ The Spotify window should appear within a few seconds.
215
+
216
+ #### Troubleshooting
217
+
218
+ **Problem**: `error: snap "spotify" is not available on stable for this architecture`
219
+
220
+ **Solution**: This error occurs on 32-bit systems or ARM architecture. Spotify's Snap package requires 64-bit x86_64 (amd64) architecture. Check your architecture:
221
+
222
+ ```bash
223
+ uname -m
224
+ ```
225
+
226
+ If output is anything other than `x86_64`, you cannot install the native Spotify client. Use the web player at https://open.spotify.com instead.
227
+
228
+ **Problem**: "cannot communicate with server: Post ... dial unix /run/snapd.socket"
229
+
230
+ **Solution**: The snap daemon is not running. Start it:
231
+
232
+ ```bash
233
+ sudo systemctl start snapd
234
+ sudo systemctl enable snapd
235
+ ```
236
+
237
+ **Problem**: Spotify fails to launch with GPU/rendering errors
238
+
239
+ **Solution**: Disable GPU acceleration by launching with:
240
+
241
+ ```bash
242
+ spotify --disable-gpu &
243
+ ```
244
+
245
+ **Problem**: Notifications not appearing
246
+
247
+ **Solution**: Ensure notification permissions are granted in your desktop environment settings. On GNOME, check Settings > Notifications > Spotify.
248
+
249
+ **Problem**: Audio playback issues
250
+
251
+ **Solution**: Ensure PulseAudio or PipeWire is running:
252
+
253
+ ```bash
254
+ pulseaudio --check || pulseaudio --start
255
+ ```
256
+
257
+ ---
258
+
259
+ ### Raspberry Pi OS (ARM)
260
+
261
+ #### Platform Limitation
262
+
263
+ **Spotify does not provide native ARM packages.** The official Spotify desktop application and Snap package are only available for x86_64 (amd64) architecture. Raspberry Pi devices use ARM processors, which are not supported by the official client.
264
+
265
+ #### Prerequisites
266
+
267
+ - Raspberry Pi OS (64-bit or 32-bit)
268
+ - Raspberry Pi 3 or later (Raspberry Pi 4 or 5 recommended)
269
+ - sudo privileges
270
+ - Spotify Premium account (required for Raspotify/Spotify Connect)
271
+
272
+ #### Installation Steps
273
+
274
+ **Use Raspotify for Spotify Connect**
275
+
276
+ Raspotify is an open-source Spotify Connect client that turns your Raspberry Pi into a Spotify speaker. You control playback from your phone, tablet, or computer, and audio plays through the Raspberry Pi.
277
+
278
+ **Note**: Raspotify requires a Spotify Premium account.
279
+
280
+ ```bash
281
+ # Install curl if not present
282
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
283
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y curl
284
+
285
+ # Install Raspotify
286
+ curl -sL https://dtcooper.github.io/raspotify/install.sh | sh
287
+ ```
288
+
289
+ After installation, Raspotify runs as a service and starts automatically on boot.
290
+
291
+ **Configure Raspotify (Optional)**
292
+
293
+ Edit the configuration file to customize device name and other settings:
294
+
295
+ ```bash
296
+ sudo nano /etc/raspotify/conf
297
+ ```
298
+
299
+ Key configuration options:
300
+
301
+ ```bash
302
+ # Device name that appears in Spotify Connect
303
+ LIBRESPOT_NAME="Raspberry Pi"
304
+
305
+ # Audio backend (use 'alsa' for direct ALSA output)
306
+ LIBRESPOT_BACKEND="alsa"
307
+
308
+ # Audio device (use 'aplay -l' to list devices)
309
+ LIBRESPOT_DEVICE="default"
310
+
311
+ # Bitrate: 96, 160, or 320 (Premium only)
312
+ LIBRESPOT_BITRATE="320"
313
+ ```
314
+
315
+ Restart the service after making changes:
316
+
317
+ ```bash
318
+ sudo systemctl restart raspotify
319
+ ```
320
+
321
+ #### Verification
322
+
323
+ Confirm Raspotify is running:
324
+
325
+ ```bash
326
+ sudo systemctl status raspotify
327
+ ```
328
+
329
+ Expected output should show "active (running)".
330
+
331
+ Test Spotify Connect:
332
+
333
+ 1. Open Spotify on your phone, tablet, or computer
334
+ 2. Start playing music
335
+ 3. Tap the "Connect to a device" icon (speaker icon)
336
+ 4. Select your Raspberry Pi from the device list
337
+ 5. Audio should play through the Raspberry Pi speakers
338
+
339
+ #### Troubleshooting
340
+
341
+ **Problem**: Raspotify service fails to start
342
+
343
+ **Solution**: Check the service logs:
344
+
345
+ ```bash
346
+ sudo journalctl -u raspotify -n 50
347
+ ```
348
+
349
+ Common issues include audio device misconfiguration. List available audio devices:
350
+
351
+ ```bash
352
+ aplay -l
353
+ ```
354
+
355
+ **Problem**: Device does not appear in Spotify Connect
356
+
357
+ **Solution**: Ensure your Raspberry Pi and control device are on the same network. Restart the service:
358
+
359
+ ```bash
360
+ sudo systemctl restart raspotify
361
+ ```
362
+
363
+ **Problem**: Audio quality is poor or distorted
364
+
365
+ **Solution**: Reduce the bitrate in `/etc/raspotify/conf`:
366
+
367
+ ```bash
368
+ LIBRESPOT_BITRATE="160"
369
+ ```
370
+
371
+ Then restart the service.
372
+
373
+ **Problem**: "Cannot connect to Spotify" errors
374
+
375
+ **Solution**: Raspotify requires a Premium account. Verify your subscription at https://www.spotify.com/account.
376
+
377
+ ---
378
+
379
+ ### Amazon Linux/RHEL (Snap)
380
+
381
+ #### Prerequisites
382
+
383
+ - Amazon Linux 2023, Amazon Linux 2, RHEL 8/9, or Fedora (64-bit x86_64)
384
+ - sudo privileges
385
+ - Graphical desktop environment (required for Spotify GUI)
386
+ - EPEL repository enabled (for RHEL/Amazon Linux)
387
+ - At least 250 MB free disk space
388
+
389
+ **Important**: Amazon Linux EC2 instances typically run headless (no GUI). If you are running a headless server, use the Spotify web player at https://open.spotify.com instead.
390
+
391
+ #### Installation Steps
392
+
393
+ **Step 1: Enable EPEL and install snapd**
394
+
395
+ For Amazon Linux 2023:
396
+
397
+ ```bash
398
+ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
399
+ sudo dnf install -y snapd
400
+ ```
401
+
402
+ For Amazon Linux 2:
403
+
404
+ ```bash
405
+ sudo amazon-linux-extras install -y epel
406
+ sudo yum install -y snapd
407
+ ```
408
+
409
+ For RHEL 8/9:
410
+
411
+ ```bash
412
+ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-$(rpm -E %rhel).noarch.rpm
413
+ sudo dnf install -y snapd
414
+ ```
415
+
416
+ **Step 2: Enable and start snapd**
417
+
418
+ ```bash
419
+ sudo systemctl enable --now snapd.socket
420
+ sudo ln -sf /var/lib/snapd/snap /snap
421
+ ```
422
+
423
+ **Important**: Log out and log back in (or reboot) after this step for the snap command to become available in your PATH.
424
+
425
+ **Step 3: Install Spotify**
426
+
427
+ ```bash
428
+ sudo snap install spotify
429
+ ```
430
+
431
+ After installation, launch Spotify:
432
+
433
+ ```bash
434
+ spotify &
435
+ ```
436
+
437
+ #### Verification
438
+
439
+ Confirm the installation succeeded:
440
+
441
+ ```bash
442
+ snap list spotify
443
+ ```
444
+
445
+ Expected output (version may vary):
446
+
447
+ ```
448
+ Name Version Rev Tracking Publisher Notes
449
+ spotify 1.2.74.477... 168 latest/stable spotify -
450
+ ```
451
+
452
+ Verify Spotify can launch (requires graphical environment):
453
+
454
+ ```bash
455
+ spotify &
456
+ ```
457
+
458
+ #### Troubleshooting
459
+
460
+ **Problem**: `error: snap "spotify" is not available on stable for this architecture`
461
+
462
+ **Solution**: Spotify requires x86_64 architecture. Check your architecture:
463
+
464
+ ```bash
465
+ uname -m
466
+ ```
467
+
468
+ If not `x86_64`, use the web player at https://open.spotify.com.
469
+
470
+ **Problem**: Snapd fails to install
471
+
472
+ **Solution**: Ensure EPEL repository is enabled:
473
+
474
+ ```bash
475
+ # RHEL 8/9
476
+ sudo dnf repolist | grep epel
477
+
478
+ # If not listed, install EPEL
479
+ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-$(rpm -E %rhel).noarch.rpm
480
+ ```
481
+
482
+ **Problem**: Spotify fails to launch with display errors
483
+
484
+ **Solution**: Spotify requires a graphical environment. For headless servers:
485
+ - Use X11 forwarding with SSH: `ssh -X user@server` then run `spotify`
486
+ - Use VNC or RDP to connect to a desktop session
487
+ - Use the Spotify web player at https://open.spotify.com
488
+
489
+ **Problem**: Audio playback issues
490
+
491
+ **Solution**: Ensure PulseAudio is installed and running:
492
+
493
+ ```bash
494
+ sudo dnf install -y pulseaudio pulseaudio-utils
495
+ pulseaudio --start
496
+ ```
497
+
498
+ ---
499
+
500
+ ### Windows (Chocolatey)
501
+
502
+ #### Prerequisites
503
+
504
+ - Windows 10 version 1903 or later, or Windows 11 (64-bit)
505
+ - At least 500 MB free disk space
506
+ - Administrator PowerShell or Command Prompt
507
+ - Chocolatey package manager installed
508
+
509
+ If Chocolatey is not installed, install it first by running this command in an Administrator PowerShell:
510
+
511
+ ```powershell
512
+ Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
513
+ ```
514
+
515
+ #### Installation Steps
516
+
517
+ Run the following command in an Administrator PowerShell or Command Prompt:
518
+
519
+ ```powershell
520
+ choco install spotify -y
521
+ ```
522
+
523
+ The `-y` flag automatically confirms all prompts, enabling fully non-interactive installation.
524
+
525
+ After installation, Spotify can be launched from the Start Menu or via command line:
526
+
527
+ ```powershell
528
+ Start-Process spotify:
529
+ ```
530
+
531
+ **Note**: On first launch, Spotify will prompt you to sign in with your account credentials.
532
+
533
+ #### Verification
534
+
535
+ Open a new Command Prompt or PowerShell window, then verify Spotify is installed:
536
+
537
+ ```powershell
538
+ choco list spotify
539
+ ```
540
+
541
+ Expected output (version may vary):
542
+
543
+ ```
544
+ spotify 1.2.79.427
545
+ 1 packages installed.
546
+ ```
547
+
548
+ Launch Spotify to verify it opens correctly:
549
+
550
+ ```powershell
551
+ Start-Process spotify:
552
+ ```
553
+
554
+ The application should launch and display the sign-in screen.
555
+
556
+ #### Troubleshooting
557
+
558
+ **Problem**: `choco: command not found` or `'choco' is not recognized`
559
+
560
+ **Solution**: Chocolatey is not installed or not in PATH. Install Chocolatey first (see Prerequisites), then open a new terminal window.
561
+
562
+ **Problem**: Installation fails with permission errors
563
+
564
+ **Solution**: Run PowerShell as Administrator. Right-click PowerShell in the Start Menu and select "Run as administrator".
565
+
566
+ **Problem**: Spotify fails to launch after installation
567
+
568
+ **Solution**: Restart your computer to ensure all components are properly registered, then try launching again.
569
+
570
+ **Problem**: Need to update Spotify
571
+
572
+ **Solution**: Run the upgrade command:
573
+
574
+ ```powershell
575
+ choco upgrade spotify -y
576
+ ```
577
+
578
+ **Problem**: Installation completes but Spotify does not appear
579
+
580
+ **Solution**: Spotify installs to the user profile directory. Check:
581
+
582
+ ```powershell
583
+ Get-ChildItem "$env:APPDATA\Spotify" -ErrorAction SilentlyContinue
584
+ ```
585
+
586
+ If the directory exists, launch Spotify from the Start Menu.
587
+
588
+ ---
589
+
590
+ ### WSL (Ubuntu)
591
+
592
+ #### Platform Approach
593
+
594
+ **Spotify is installed on the Windows host, not within WSL.** While WSL 2 with WSLg (GUI support) can technically run Linux GUI applications, the recommended approach is to install Spotify on Windows and access it from WSL.
595
+
596
+ #### Prerequisites
597
+
598
+ - Windows 10 version 2004 or higher, or Windows 11
599
+ - WSL 2 enabled with Ubuntu distribution installed
600
+ - Administrator access on Windows for Spotify installation
601
+
602
+ #### Installation Steps
603
+
604
+ **Step 1: Install Spotify on Windows**
605
+
606
+ From a Windows Administrator PowerShell:
607
+
608
+ ```powershell
609
+ choco install spotify -y
610
+ ```
611
+
612
+ **Step 2: Access Spotify from WSL**
613
+
614
+ From within your WSL terminal, you can launch Windows Spotify:
615
+
616
+ ```bash
617
+ # Launch Spotify using Windows protocol handler
618
+ cmd.exe /c start spotify:
619
+ ```
620
+
621
+ This command uses Windows interoperability to launch the Spotify application installed on the Windows host.
622
+
623
+ **Alternative: Access Spotify via browser from WSL**
624
+
625
+ If you prefer browser-based access:
626
+
627
+ ```bash
628
+ # Open Spotify web player in default Windows browser
629
+ cmd.exe /c start https://open.spotify.com
630
+ ```
631
+
632
+ #### Verification
633
+
634
+ From WSL, verify you can launch Windows Spotify:
635
+
636
+ ```bash
637
+ cmd.exe /c start spotify:
638
+ ```
639
+
640
+ Spotify should open in a new window on the Windows desktop.
641
+
642
+ #### Troubleshooting
643
+
644
+ **Problem**: Cannot launch Windows Spotify from WSL
645
+
646
+ **Solution**: Ensure Spotify is installed on Windows first. Run `choco list spotify` in a Windows PowerShell to verify installation.
647
+
648
+ **Problem**: "start: command not found"
649
+
650
+ **Solution**: Use the full Windows command syntax:
651
+
652
+ ```bash
653
+ cmd.exe /c start spotify:
654
+ ```
655
+
656
+ **Problem**: Need to use Spotify commands in WSL scripts
657
+
658
+ **Solution**: Create a helper alias in your `~/.bashrc`:
659
+
660
+ ```bash
661
+ echo 'alias spotify="cmd.exe /c start spotify:"' >> ~/.bashrc
662
+ source ~/.bashrc
663
+ ```
664
+
665
+ Then simply run `spotify` from your WSL terminal.
666
+
667
+ ---
668
+
669
+ ### Git Bash (Windows Installation)
670
+
671
+ #### Prerequisites
672
+
673
+ - Windows 10 or Windows 11 (64-bit)
674
+ - Git Bash installed (comes with Git for Windows)
675
+ - Administrator access for Spotify installation
676
+
677
+ #### Installation Steps
678
+
679
+ Git Bash runs on Windows, so Spotify is installed on the Windows host and accessible from Git Bash.
680
+
681
+ **Step 1: Install Spotify on Windows**
682
+
683
+ From an Administrator Command Prompt or PowerShell (not Git Bash):
684
+
685
+ ```powershell
686
+ choco install spotify -y
687
+ ```
688
+
689
+ **Step 2: Access Spotify from Git Bash**
690
+
691
+ After installation, Spotify can be launched from Git Bash:
692
+
693
+ ```bash
694
+ start spotify:
695
+ ```
696
+
697
+ Or use the explicit command form:
698
+
699
+ ```bash
700
+ cmd //c "start spotify:"
701
+ ```
702
+
703
+ #### Verification
704
+
705
+ From Git Bash, verify Spotify can be launched:
706
+
707
+ ```bash
708
+ start spotify:
709
+ ```
710
+
711
+ Spotify should open in a new window.
712
+
713
+ #### Troubleshooting
714
+
715
+ **Problem**: `start: command not found`
716
+
717
+ **Solution**: Use the Windows-style command:
718
+
719
+ ```bash
720
+ cmd //c "start spotify:"
721
+ ```
722
+
723
+ **Problem**: Spotify does not launch
724
+
725
+ **Solution**: Ensure Spotify is installed on Windows. Open a Windows Command Prompt and verify:
726
+
727
+ ```cmd
728
+ choco list spotify
729
+ ```
730
+
731
+ If not installed, install it from an Administrator PowerShell first.
732
+
733
+ **Problem**: Need to use Spotify in scripts
734
+
735
+ **Solution**: For scripting, use the Windows command wrapper:
736
+
737
+ ```bash
738
+ #!/bin/bash
739
+ # Launch Spotify silently
740
+ cmd //c "start /min spotify:" 2>/dev/null
741
+ ```
742
+
743
+ ---
744
+
745
+ ## Post-Installation Configuration
746
+
747
+ After installing Spotify on any platform, complete these configuration steps.
748
+
749
+ ### Signing In
750
+
751
+ 1. Launch Spotify
752
+ 2. Click "Log in" and enter your credentials, or sign in with Facebook, Apple, or Google
753
+ 3. Complete any two-factor authentication if enabled on your account
754
+
755
+ ### Configuring Audio Quality
756
+
757
+ Adjust streaming quality based on your internet connection and preferences:
758
+
759
+ 1. Click your profile picture or username
760
+ 2. Go to **Settings**
761
+ 3. Under **Audio Quality**, select:
762
+ - **Automatic** - Adjusts based on connection
763
+ - **Low** (24 kbit/s) - Minimal data usage
764
+ - **Normal** (96 kbit/s) - Standard quality
765
+ - **High** (160 kbit/s) - Better quality
766
+ - **Very High** (320 kbit/s) - Premium only, best quality
767
+
768
+ ### Enabling Offline Mode (Premium)
769
+
770
+ Download music for offline listening:
771
+
772
+ 1. Navigate to a playlist, album, or podcast
773
+ 2. Toggle the **Download** switch
774
+ 3. Downloaded content is available without internet connection
775
+
776
+ ### Configuring Startup Behavior
777
+
778
+ To control whether Spotify starts automatically:
779
+
780
+ **Windows:**
781
+ 1. Open Spotify Settings
782
+ 2. Scroll to **Startup and Window Behavior**
783
+ 3. Set "Open Spotify automatically after you log into the computer" to No
784
+
785
+ **macOS:**
786
+ 1. Open Spotify Preferences
787
+ 2. Scroll to **Startup and Window Behavior**
788
+ 3. Set "Open Spotify automatically after you log into the computer" to No
789
+
790
+ **Linux:**
791
+ ```bash
792
+ # Disable autostart
793
+ rm ~/.config/autostart/spotify.desktop 2>/dev/null || true
794
+ ```
795
+
796
+ ### Keyboard Shortcuts
797
+
798
+ Essential shortcuts for productivity:
799
+
800
+ | Action | Windows/Linux | macOS |
801
+ |--------|---------------|-------|
802
+ | Play/Pause | `Space` | `Space` |
803
+ | Next Track | `Ctrl+Right` | `Cmd+Right` |
804
+ | Previous Track | `Ctrl+Left` | `Cmd+Left` |
805
+ | Volume Up | `Ctrl+Up` | `Cmd+Up` |
806
+ | Volume Down | `Ctrl+Down` | `Cmd+Down` |
807
+ | Search | `Ctrl+L` | `Cmd+L` |
808
+ | Toggle Shuffle | `Ctrl+S` | `Cmd+S` |
809
+
810
+ ---
811
+
812
+ ## Common Issues
813
+
814
+ ### Issue: "Unable to Connect" or Network Errors
815
+
816
+ **Symptoms**: Spotify shows connection errors or fails to load content
817
+
818
+ **Solutions**:
819
+ - Check internet connectivity
820
+ - Verify firewall allows Spotify traffic (ports 443, 4070)
821
+ - If behind a corporate proxy, configure proxy settings in Spotify Settings > Advanced > Proxy
822
+ - Try signing out and signing back in
823
+ - Clear cache: Settings > Storage > Clear cache
824
+
825
+ ### Issue: High Memory or CPU Usage
826
+
827
+ **Symptoms**: Spotify consumes excessive system resources
828
+
829
+ **Solutions**:
830
+ - Disable hardware acceleration: Settings > Compatibility > Hardware Acceleration (off)
831
+ - Clear cache to free disk space
832
+ - Restart Spotify periodically during long sessions
833
+ - Ensure Spotify is updated to the latest version
834
+
835
+ ### Issue: Audio Playback Problems
836
+
837
+ **Symptoms**: No sound, stuttering, or distorted audio
838
+
839
+ **Solutions**:
840
+
841
+ **All Platforms:**
842
+ - Check system volume and ensure Spotify is not muted
843
+ - Verify correct audio output device is selected in Spotify Settings > Audio
844
+ - Restart Spotify
845
+
846
+ **Linux:**
847
+ - Ensure PulseAudio or PipeWire is running
848
+ - Check audio device permissions
849
+
850
+ **Windows:**
851
+ - Run Windows Audio Troubleshooter
852
+ - Update audio drivers
853
+
854
+ ### Issue: Songs Skip or Won't Play
855
+
856
+ **Symptoms**: Songs skip after a few seconds or show as unavailable
857
+
858
+ **Solutions**:
859
+ - Check if the song is available in your region
860
+ - Verify your subscription status (some content requires Premium)
861
+ - Clear cache and restart Spotify
862
+ - Check for Spotify service outages at https://downdetector.com/status/spotify/
863
+
864
+ ### Issue: Spotify Connect Not Working
865
+
866
+ **Symptoms**: Cannot see or connect to other devices
867
+
868
+ **Solutions**:
869
+ - Ensure all devices are on the same Wi-Fi network
870
+ - Sign out and sign back in on all devices
871
+ - Restart the Spotify app on all devices
872
+ - Check that "Device Broadcast Status" is enabled in Settings
873
+
874
+ ---
875
+
876
+ ## Summary Table
877
+
878
+ | Platform | Native Support | Installation Method | Notes |
879
+ |----------|---------------|---------------------|-------|
880
+ | macOS | Yes | `brew install --quiet --cask spotify` | Requires macOS 12+ |
881
+ | Windows | Yes | `choco install spotify -y` | Primary supported platform |
882
+ | Ubuntu/Debian | Yes | `sudo snap install spotify` | x86_64 only, not officially supported |
883
+ | Raspberry Pi | No | Raspotify (Spotify Connect) | Requires Premium account |
884
+ | Amazon Linux/RHEL | Yes | Snap via EPEL | x86_64 only, requires desktop |
885
+ | WSL | N/A | Install on Windows host | Uses Windows installation |
886
+ | Git Bash | N/A | Uses Windows installation | Inherits Windows Spotify |
887
+
888
+ ---
889
+
890
+ ## References
891
+
892
+ - [Spotify Official Website](https://www.spotify.com/)
893
+ - [Spotify Downloads](https://www.spotify.com/download/)
894
+ - [Spotify for Linux](https://www.spotify.com/us/download/linux/)
895
+ - [Spotify Homebrew Cask](https://formulae.brew.sh/cask/spotify)
896
+ - [Spotify Chocolatey Package](https://community.chocolatey.org/packages/spotify)
897
+ - [Spotify Snap Package](https://snapcraft.io/spotify)
898
+ - [Spotify Web Player](https://open.spotify.com)
899
+ - [Raspotify - Spotify Connect for Raspberry Pi](https://github.com/dtcooper/raspotify)
900
+ - [Spotify Community - Linux Support](https://community.spotify.com/t5/Desktop-Linux/bd-p/desktop_linux)
901
+ - [Installing Spotify on Fedora](https://docs.fedoraproject.org/en-US/quick-docs/installing-spotify/)