Skip to content

Commit fccc430

Browse files
committed
Add links to new Linux targets in README
1 parent ea04b68 commit fccc430

File tree

1 file changed

+43
-40
lines changed

1 file changed

+43
-40
lines changed

README.md

Lines changed: 43 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,22 @@ Contributions are welcome!
1111

1212
![Screenshot](./psst-gui/assets/screenshot.png)
1313

14-
1514
## Download
1615

1716
GitHub Actions automatically creates builds when new commits are pushed to the `master` branch.
1817
You can download the prebuilt binaries for x86_64 Windows, Linux (Ubuntu), and macOS.
1918

20-
| Platform |
21-
|----------|
22-
| [Windows](https://nightly.link/jpochyla/psst/workflows/build/master/Psst.exe.zip) |
23-
| [Linux (Ubuntu)](https://nightly.link/jpochyla/psst/workflows/build/master/psst-gui.zip) |
24-
| [Debian Package](https://nightly.link/jpochyla/psst/workflows/build/master/psst-deb.zip) |
25-
| [MacOS](https://nightly.link/jpochyla/psst/workflows/build/master/Psst.dmg.zip) |
19+
| Platform |
20+
| ------------------------------------------------------------------------------------------------------------------- |
21+
| [Linux (x86_64)](https://nightly.link/jpochyla/psst/workflows/build/master/psst-gui-x86_64-unknown-linux-gnu.zip) |
22+
| [Linux (aarch64)](https://nightly.link/jpochyla/psst/workflows/build/master/psst-gui-aarch64-unknown-linux-gnu.zip) |
23+
| [Debian Package (amd64)](https://nightly.link/jpochyla/psst/workflows/build/master/psst-deb-amd64.zip) |
24+
| [Debian Package (arm64)](https://nightly.link/jpochyla/psst/workflows/build/master/psst-deb-arm64.zip) |
25+
| [MacOS](https://nightly.link/jpochyla/psst/workflows/build/master/Psst.dmg.zip) |
26+
| [Windows](https://nightly.link/jpochyla/psst/workflows/build/master/Psst.exe.zip) |
2627

2728
Unofficial builds of Psst are also available through the [AUR](https://aur.archlinux.org/packages/psst-git) and [Homebrew](https://formulae.brew.sh/cask/psst).
2829

29-
3030
## Building
3131

3232
On all platforms, the **latest [Rust](https://rustup.rs/) stable** (at least 1.65.0) is required.
@@ -50,6 +50,7 @@ sudo apt-get install libssl-dev libgtk-3-dev libcairo2-dev libasound2-dev
5050
```shell
5151
sudo dnf install openssl-devel gtk3-devel cairo-devel alsa-lib-devel
5252
```
53+
5354
</details>
5455

5556
<details>
@@ -66,14 +67,17 @@ export LIBCLANG_PATH=/usr/local/lib
6667
```
6768

6869
In case rustc(1) fails building bigger crates
70+
6971
```shell
7072
memory allocation of xxxx bytes failed
7173
error: could not compile `gtk`
7274
Caused by:
7375
process didn't exit successfully: `rustc --crate-name gtk [...]` (signal: 6, SIGABRT: process abort signal)
7476
warning: build failed, waiting for other jobs to finish...
7577
```
78+
7679
try increasing your user's maximum heap size:
80+
7781
```shell
7882
ulimit -d $(( 2 * `ulimit -d` ))
7983
```
@@ -83,24 +87,26 @@ ulimit -d $(( 2 * `ulimit -d` ))
8387
---
8488

8589
#### Build from Source:
90+
8691
```shell
8792
cargo build
8893
# Append `--release` for a release build.
8994
```
9095

9196
#### Run from Source:
97+
9298
```shell
9399
cargo run --bin psst-gui
94100
# Append `--release` for a release build.
95101
```
96102

97103
#### Build Installation Bundle (i.e., macOS .app):
104+
98105
```shell
99106
cargo install cargo-bundle
100107
cargo bundle --release
101108
```
102109

103-
104110
## Roadmap
105111

106112
- [x] Vorbis track playback
@@ -117,38 +123,37 @@ cargo bundle --release
117123
- [x] Dark theme
118124
- [ ] Resilience to network errors (automatically retry timed-out requests)
119125
- [ ] Managing playlists
120-
- Follow/unfollow
121-
- Add/remove tracks
122-
- Reorder tracks
123-
- Rename playlist
124-
- Playlist folders
126+
- Follow/unfollow
127+
- Add/remove tracks
128+
- Reorder tracks
129+
- Rename playlist
130+
- Playlist folders
125131
- [x] Playback queue
126132
- [ ] React to audio output device events
127-
- Pause after disconnecting headphones
128-
- Transfer playback after connecting headphones
133+
- Pause after disconnecting headphones
134+
- Transfer playback after connecting headphones
129135
- [ ] Better caching
130-
- Cache as many WebAPI responses as possible
131-
- Visualize cache utilization
132-
- Total cache usage in the config dialog
133-
- Show time origin of cached data, allow to refresh
136+
- Cache as many WebAPI responses as possible
137+
- Visualize cache utilization
138+
- Total cache usage in the config dialog
139+
- Show time origin of cached data, allow to refresh
134140
- [ ] Trivia on the artist page, Wikipedia links
135141
- [ ] Downloading encrypted tracks
136142
- [ ] Reporting played tracks to Spotify servers
137143
- [ ] OS-specific application bundles
138144
- UI
139-
- [ ] Rethink the current design, consider a two-pane layout
140-
- Left pane for browsing
141-
- Right pane for current playback
142-
- [ ] Detect light/dark OS theme
143-
- [ ] Robust error states, ideally with a retry button
144-
- [ ] Correct playback highlight
145-
- Highlight now-playing track only in the correct album/playlist
146-
- Keep highlighted track in viewport
147-
- [ ] Paging or virtualized lists for albums and tracks
148-
- [ ] Grid for albums and artists
149-
- [ ] Robust active/inactive menu visualization
150-
- [ ] Save playback state
151-
145+
- [ ] Rethink the current design, consider a two-pane layout
146+
- Left pane for browsing
147+
- Right pane for current playback
148+
- [ ] Detect light/dark OS theme
149+
- [ ] Robust error states, ideally with a retry button
150+
- [ ] Correct playback highlight
151+
- Highlight now-playing track only in the correct album/playlist
152+
- Keep highlighted track in viewport
153+
- [ ] Paging or virtualized lists for albums and tracks
154+
- [ ] Grid for albums and artists
155+
- [ ] Robust active/inactive menu visualization
156+
- [ ] Save playback state
152157

153158
## Development
154159

@@ -157,25 +162,23 @@ Here's the basic project structure:
157162
158163
- `/psst-core` - Core library, takes care of Spotify TCP session, audio file retrieval, decoding, audio output, playback queue, etc.
159164
- `/psst-gui` - GUI application built with [Druid](https://github.com/linebender/druid)
160-
- `/psst-cli` - Example CLI that plays a track. Credentials must be configured in the code.
165+
- `/psst-cli` - Example CLI that plays a track. Credentials must be configured in the code.
161166
- `/psst-protocol` - Internal Protobuf definitions used for Spotify communication.
162167
163-
164168
## Privacy Policy
165169
166170
Psst connects only to the official Spotify servers and does not call home.
167171
Caches of various things are stored locally and can be deleted anytime.
168172
User credentials are not stored at all; instead, a re-usable authentication token from Spotify is used.
169173
170-
171174
## Thanks
172175
173176
This project would not exist without the following:
174177
175-
- Big thank you to [`librespot`](https://github.com/librespot-org/librespot), the Open Source Spotify client library for Rust. Most of `psst-core` is directly inspired by the ideas and code of `librespot`, although with a few differences:
176-
- Spotify Connect (remote control) is not supported yet.
177-
- Psst is completely synchronous, without `tokio` or other `async` runtime, although it will probably change in the future.
178-
- Psst is using HTTPS-based CDN audio file retrieval, similar to the official Web client or [`librespot-java`](https://github.com/librespot-org/librespot-java), instead of the channel-based approach in `librespot`.
178+
- Big thank you to [`librespot`](https://github.com/librespot-org/librespot), the Open Source Spotify client library for Rust. Most of `psst-core` is directly inspired by the ideas and code of `librespot`, although with a few differences:
179+
- Spotify Connect (remote control) is not supported yet.
180+
- Psst is completely synchronous, without `tokio` or other `async` runtime, although it will probably change in the future.
181+
- Psst is using HTTPS-based CDN audio file retrieval, similar to the official Web client or [`librespot-java`](https://github.com/librespot-org/librespot-java), instead of the channel-based approach in `librespot`.
179182
- [`druid`](https://github.com/linebender/druid) native GUI library for Rust.
180183
- [`ncspot`](https://github.com/hrkfdn/ncspot) cross-platform ncurses Spotify client written in Rust, using `librespot`.
181184
- ...and of course other libraries and projects.

0 commit comments

Comments
 (0)