Commit Graph

1065 Commits

Author SHA1 Message Date
Thomas Frans
3587aa1441 docs: remove Snapcraft installation source
The Snapcraft package seems to have been removed. Therefore the links in
the documentation should also be removed.
2023-06-07 21:06:31 +02:00
Thomas Frans
6c990b5bda fix: config option command_key not working 2023-06-06 20:44:14 +02:00
Thomas Frans
ac0bcb4420 fix: prevent tab switching from command line 2023-06-04 22:21:10 +02:00
Thomas Frans
bbd7bcf4aa fix: command line multi-byte prefix panic
Don't index into the command line command as the prefix can be altered
by the user and therefore be a multi-byte unicode character.
2023-06-04 17:30:06 +02:00
Thomas Frans
96bb2ea06b fix: '/' character not working in search view 2023-06-02 23:20:24 +02:00
Thomas Frans
6d2a0552bf refactor: move layout functionality under layout 2023-06-02 23:20:24 +02:00
Thomas Frans
d0efc0868f chore: fix Application::new documentation 2023-06-02 23:20:24 +02:00
Thomas Frans
0c97bd36c3 fix: remove ipc import on non-unix systems 2023-06-02 23:20:24 +02:00
Thomas Frans
c36d3cf272 refactor: move and add functions 2023-06-02 23:20:24 +02:00
Thomas Frans
04cbe8ac20 refactor: move base path config + documentation 2023-06-02 23:20:24 +02:00
Thomas Frans
6be45ece90 chore: document items in the config module
Sometimes the use of an item wasn't clear without reading the code. This
should help with that.
2023-06-02 23:20:24 +02:00
Thomas Frans
3b8de6600f refactor: move panic hook into module 2023-06-02 23:20:24 +02:00
Thomas Frans
abffb3c2a9 refactor: move cli argument parsing to main
Command line arguments are part of the OS process and should be under
main.
2023-06-02 23:20:24 +02:00
Thomas Frans
ae090b6073 refactor: move async runtime to application module
To have a clear distinction between code dealing with OS process
characteristics and code of ncspot itself, it makes sense to move the
async runtime together with ncspot as it doesn't have anything to do
with the OS process.
2023-06-02 23:20:24 +02:00
Thomas Frans
6d32f3d1f8 refactor: move 'global' data into Application
Some applications move their 'global' data into a struct called `App` or
`Application`. This makes it very clear what data belongs to the
'global' scope or in other words, to the application itself.
2023-06-02 23:20:24 +02:00
Henrik Friedrichsen
b6e5495128 Update dependencies 2023-06-01 21:17:52 +02:00
Henrik Friedrichsen
e6ed4ea024 Support multiple IPC sockets (#1171)
For instance for when multiple ncspot instances are running. In that case the
PID will be appended to the path, i.e. `~/.cache/ncspot/ncspot.20707.sock`.

Also ncspot will now delete the socket on shutdown.

Fixes #1158
2023-05-22 22:14:59 +02:00
cyqsimon
d8faa87431 Fix incorrect notification ID reuse on XDG (#1150)
* Fix incorrect notification ID reuse on XDG

* Remove `notification_id` persistence

---------

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2023-05-22 17:51:29 +00:00
Henrik Friedrichsen
f18454082e Update dependencies 2023-05-22 19:37:05 +02:00
Thomas Frans
e9f34873b4 fix(ui): ListView decrement selected on remove
When removing an element, it is important to check whether it was the
last element in the list and decrement the selected index if so.
2023-05-12 21:07:53 +02:00
Henrik Friedrichsen
aeff120e67 Revert "Use native TLS only, don't mix it with rustls"
This reverts commit 80da5a877a.

Fixes #1159
2023-05-10 23:08:29 +02:00
Henrik Friedrichsen
2040620b42 Dependency updates 2023-05-09 21:07:20 +02:00
Jakub Jirutka
80da5a877a Use native TLS only, don't mix it with rustls
reqwest uses native TLS by default, but rspotify with ureq currently
uses rustls.
2023-05-09 10:36:04 +02:00
Jakub Jirutka
ba60fbddd0 Fix: breaking changes in rpostify 0.11.7 2023-05-09 10:36:04 +02:00
Jakub Jirutka
22badc9038 Bump rspotify from 0.11.6 to 0.11.7 2023-05-09 10:36:04 +02:00
Henrik Friedrichsen
41b3243df0 Update dependencies
Keep `rspotify` at v0.11.6 until ramsayleung/rspotify#407 is fixed
2023-05-05 10:17:19 +02:00
Henrik Friedrichsen
d3a27e2c15 Bump version to 0.13.2 2023-05-04 23:48:25 +02:00
Callum Wishart
43a4883bd3 Update Nerdfont glyphs (#1141) 2023-05-04 23:43:50 +02:00
dependabot[bot]
b742bec22e Bump clap from 4.2.1 to 4.2.7
Bumps [clap](https://github.com/clap-rs/clap) from 4.2.1 to 4.2.7.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.2.1...v4.2.7)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-04 23:43:06 +02:00
dependabot[bot]
9186ebc565 Bump tokio-stream from 0.1.12 to 0.1.14
Bumps [tokio-stream](https://github.com/tokio-rs/tokio) from 0.1.12 to 0.1.14.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Changelog](https://github.com/tokio-rs/tokio/blob/tokio-0.1.14/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-stream-0.1.12...tokio-0.1.14)

---
updated-dependencies:
- dependency-name: tokio-stream
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-04 23:40:45 +02:00
dependabot[bot]
fe2b108c69 Bump clap_complete from 4.2.0 to 4.2.1
Bumps [clap_complete](https://github.com/clap-rs/clap) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.2.0...clap_complete-v4.2.1)

---
updated-dependencies:
- dependency-name: clap_complete
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-04 23:40:38 +02:00
dependabot[bot]
a62c9b5c05 Bump libc from 0.2.141 to 0.2.142
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.141 to 0.2.142.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.141...0.2.142)

---
updated-dependencies:
- dependency-name: libc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-04 23:40:30 +02:00
dependabot[bot]
3b51dc35ba Bump tokio-util from 0.7.7 to 0.7.8
Bumps [tokio-util](https://github.com/tokio-rs/tokio) from 0.7.7 to 0.7.8.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-util-0.7.7...tokio-util-0.7.8)

---
updated-dependencies:
- dependency-name: tokio-util
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-03 10:30:15 +02:00
dependabot[bot]
2d91d13001 Bump tokio from 1.27.0 to 1.28.0
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.27.0 to 1.28.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.27.0...tokio-1.28.0)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-03 10:30:07 +02:00
dependabot[bot]
bd169955eb Bump regex from 1.7.3 to 1.8.1
Bumps [regex](https://github.com/rust-lang/regex) from 1.7.3 to 1.8.1.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.7.3...1.8.1)

---
updated-dependencies:
- dependency-name: regex
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-03 10:29:59 +02:00
dependabot[bot]
d3cf765f00 Bump reqwest from 0.11.16 to 0.11.17
Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.11.16 to 0.11.17.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.11.16...v0.11.17)

---
updated-dependencies:
- dependency-name: reqwest
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-03 10:29:53 +02:00
Henrik Friedrichsen
2771c319d6 Fix: gracefully handle invalid DBus setups
Some systems may have an ncspot binary with enabled MPRIS/DBus support, even
though DBus is not actually running on the system or the session is broken.

ncspot should not panic in such a situation, but handle gracefully instead.

Should help with #1139
2023-05-02 22:54:47 +02:00
Jakub Jirutka
cb9d9e7a93 Add ncurses_backend feature flag to enable cursive/ncurses-backend
Similar to existing crossterm_backend and pancurses_backend.
2023-04-23 22:49:42 +02:00
Jakub Jirutka
30903ef78e Use notify-rust with zbus instead of dbus
zbus is already used for MPRIS since
b0db0da3ef.

This saves ~0.5 MiB in release build with LTO.
2023-04-23 22:49:42 +02:00
Henrik Friedrichsen
97b31df575 Bump version to 0.13.1 2023-04-05 13:36:57 +02:00
Henrik Friedrichsen
e9f630e6e5 Update dependencies 2023-04-05 13:35:54 +02:00
Henrik Friedrichsen
d19d897e75 Fix: Restore previous Previous behavior (#1111)
* Fix: Restore previous `Previous` behavior

Fixes #1110
2023-04-04 14:54:32 +02:00
Henrik Friedrichsen
b0db0da3ef Rewrite MPRIS implementation using zbus (#1107)
* Rewrite MPRIS implementation using zbus

The initial DBus implementation was getting harder to maintain and `zbus` offers
some nice convenience features that should make our MPRIS implementation
cleaner.

For now this only implements the `org.mpris.MediaPlayer2` interface which does
not do much.

Should help with #1103

* Implement MPRIS properties

- `PlaybackStatus`
- `PlaybackRate`
- `Volume` (get/set)

* Implement remaining player properties/functions

* Emit signal for changed properties on track change
2023-04-01 21:53:37 +02:00
Henrik Friedrichsen
bcc2791116 Update dependencies 2023-04-01 21:51:24 +02:00
Thomas Frans
8fe30e34d0 Emulate double click to play items
Change the behavior of `ListView` to treat a click on an item that is
already selected as a double click. It allows the user to play songs
(not episodes since currently it's not possible to determine if a
`ListItem` is an episode) by "double clicking" them. It is a bit of a
hack, but it works pretty well. A possible downside is that when people
that don't like mouse integration in a TUI click to focus the terminal
window, it could jump to the song they clicked if that happened to be
the selected one.
2023-03-25 23:53:19 +01:00
Henrik Friedrichsen
ecaec1a494 Dependency updates 2023-03-25 23:49:15 +01:00
David Pedersen
ff01074666 Add 'browse' to 'library_tabs' docs (#1096) 2023-03-24 09:14:34 +01:00
Thomas Frans
5179859538 Update README (#1089)
* Update README.

* Update README version 2.
2023-03-20 23:00:19 +01:00
Collin Lefeber
dcfb820c13 statusbar: update nerdfont glyphs
As of https://github.com/ryanoasis/nerd-fonts/issues/1096
nf-mdi* glyphs are marked obsolete in nerd-fonts upstream

Update the glyphs to non-deprecated nf-fa* counterparts
2023-03-19 00:21:29 +01:00
Henrik Friedrichsen
7dce6b988d Fix: disable ncspot default features for xtask
Pulling in ncspot without disabling default features includes a lot of
unnecessary dependencies, i.e. audio backends including dynamic linkage to
`libpulse`. As it's not required for `xtask` we should disable default features,
resulting in a much smaller binary.
2023-03-12 16:35:18 +01:00