138 Commits

Author SHA1 Message Date
Thomas Frans
6de5d83c31 docs: remove remaining password manager documentation (#1573) 2024-12-30 16:25:05 +01:00
Thomas Frans
5cb25fbf56 docs: add Snapcraft installation source
The Snapcraft installation method was removed in the past as the package
disappeared from Snapcraft. It seems to be back and maintained, so it
should be back in the documentation.
2024-04-04 21:57:41 +02:00
Vladimir Budylnikov
d4db350000 docs: Add winget installation info
add winget info
2024-02-18 11:31:39 +01:00
Thomas Frans
0cee99ba4c feat: add info command line subcommand (#1330)
* feat: add `info` command line subcommand

Adding an info command allows the documentation to refer to it when
mentioning platform specific information. This gives users a nicer
experience since they don't need to think about how `ncspot` will behave
on their system, but can run `ncspot info` to get that information.

* fix: info command don't create runtime directory

* fix: don't print runtime path on Windows

Windows doesn't use the runtime path so it shouldn't be printed there.

* fix: make `info` command easier to parse

* docs: add back the default configuration directory
2023-11-27 08:43:55 +01:00
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
5179859538 Update README (#1089)
* Update README.

* Update README version 2.
2023-03-20 23:00:19 +01:00
BlakeJC94
1a0258f197 Add vim-like page scrolling
* feat: added match fallback for handle_command SelectViewExt

* feat: HalfPage and FullPage MoveAmount variants

* feat: Display for MoveAmount variants

* feat: fallback for MoveAmount variants in TabView

* feat: ListView FullPage/HalfPage MoveAmount

* feat: default keybinds for page scrolling

* feat: HalfPage/FullPage MoveAmount for HelpView

* feat: removed new defaul keybinds for pagescroll

* style: "upwards" -> "halfpageup" etc.

* feat: toml parse "move pageup" / "move halfpageup"

* chore: cargo fmt

* feat: simplified page scroll command interface

* docs: added `move` to readme

* feat: replace FullPage and HalfPage with Float variant

* fix: remove stray variant

* dosc: update move command

* chore: fmt

* feat: implement MoveAmount::Float for selectview

* chore: fmt
2023-03-12 13:26:00 +01:00
Thomas Frans
e8adff444c Automatic shell completion generation
* Add automatic shell completion generation.
Add automatic generation of shell completion scripts for various shells
(the ones supported by `clap_complete`). The scripts can be generated
using the `generate-shell-completion` xtask, which outputs the shell
script to stdout.

* Improve shell completion generation xtask.
General improvements to both the shell completion generation as well as
the xtask package itself. Update the README to match the new additions.
2023-03-09 19:02:11 +01:00
Thomas Frans
b27e84a386 Add manpage generation using xtask
* Add manpage generation.

* Hide xtask compilation info.
This changes the default behavior of the `cargo run` command for xtasks
to hide the compilation info. This makes sense as xtask's are run as a
program, and showing the compilation info every time clutters stdout
with unrelated info.

* Move ncspot's `clap::Command` to `lib.rs`.
Moving the `clap::Command` used internally by ncspot to a library allows
it to be easily shared between different packages (xtask and ncspot
itself).

This commit also reworks the xtasks to use clap for parsing the xtask
arguments, which simplifies writing new xtasks.

* Make `generate-manpage` `--output` optional.
When more xtasks get added, it would make sense to have a `generate-all`
subcommand that executes all xtasks, which wouldn't be able to have
options for every separate subcommand. Therefore the `output` argument
should be optional, and by default output to the `misc` directory which
contains extra metadata files already.

* Add packaging info to `README.md`.
Update the README to include information for packagers. The information
includes provided files as well as info on how to generate some of them.
2023-03-06 21:55:19 +01:00
inemajo
c2e030c2f0 Allow executing program to retrieve credentials
* config / authentication: permit to call external program for getting credentials

You can add into your ncspot/config.toml like this:

```
creds_username = "mylogin"
creds_passeval = "pass my_pass_path_to_spot_password"
```

Or using any password manager who send your password.to stdout.
If a newline is detected it will be automatically removed

* Move credential commands into separate structure

Also add an option for a username command

* Document credential commands

---------

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2023-03-01 11:28:11 +01:00
inemajo
801e847c88 commands: Adding "disconnect" command to force socket shutdown (#1057)
* commands: Adding "disconnect" command to force socket shutdown

* Rename to `reconnect`

* Add documentation to README

Related to: #628 #1033

---------

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2023-02-26 20:46:41 +01:00
Simon Vandevelde
25680bc9b4 Add info on extracting currently playing to README (#1038)
* Add info on extracting currently playing

* Add word

---------

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2023-01-31 23:53:32 +01:00
Henrik Friedrichsen
ec4b7c209a Create IPC socket on UNIX platforms (#1018)
* Create IPC socket on UNIX platforms

Creates an IPC socket which remote programs/scripts can connect to. This
can be used to control ncspot or fetch the current playback status.

At the moment, only remote control is implemented. Next step is to send
the current player status as a JSON object.

Fixes #524

* Publish status changes to connected sockets

Whenever the playback mode (playing, paused, stopped) or the track changes, all
socket listeners will be notified.

Fixes #924, fixes #1019

* Document IPC feature
2022-12-28 19:01:59 +01:00
Henrik Friedrichsen
8e54abf341 Add Flathub link
Fixes #997
2022-12-12 15:33:17 +01:00
Henrik Friedrichsen
5c1fe9331a Remove mention of RUST_BACKTRACE
See also https://github.com/hrkfdn/ncspot/pull/988#issuecomment-1320562882
2022-11-18 22:49:44 +01:00
Thomas
e15657ae67 fix(backtrace): Fix backtrace logging and stdout (#988)
* fix(backtrace): Fix backtrace logging and stdout
- Add manual implementation for panic that logs backtrace to a file.
- Remove all manual output to stdout.
- Fix new clippy warnings from Rust 1.65.

* Update docs

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2022-11-18 22:20:57 +01:00
Henrik Friedrichsen
1dcebeace1 Add "save/unsave album" to context menu
Fixes #964
2022-10-22 14:20:43 +02:00
ayushjaipuriyar
24fa9c1c44 Changes to README capitalized in playlists (#901)
* Changes to README

* Fix whitespaces in table alignment

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2022-08-09 17:56:45 +02:00
eulerfan271
593a4c9284 Add notification customization (#893)
* Add custom notification formatting

* Added `notification_format` to README

* cleaned up code formatting

* Fix typo

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2022-08-07 15:51:38 +02:00
Randall Mason
24414ef5f7 pancurses-backend was renamed to pancurses_backend 2022-08-07 15:49:05 +02:00
Henrik Friedrichsen
249a4ef5a7 Add statusbar_format configuration option
Fixes #877
2022-07-31 11:24:22 +02:00
Bettehem
555a09abd3 Updated context menu info and config values table in README.md
Updated context menu info and config values table in README.md
2022-07-31 10:53:21 +02:00
James Adam
ed10872ca3 Add 'hide_display_names' config option 2022-07-11 08:27:41 +02:00
cyqsimon
57d78c3123 Improve documentation (#836)
* Note `noop`

* Improve commands docs

* Auto-format tables

* Add feature comments

* Auto sort

* Rewrite Linux install & Build sections

* Better explain custom keybindings

* Various minor improvements

* Unify table style

* Remove duplicate footnote

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2022-06-19 15:28:36 +02:00
Bettehem
f7450321da Add track_format config option (#800)
* Added track_name_first config option to allow choosing if artists' names should be shown before or after the track name.

* Added active_fields config option, which allows configuration of which columns are visible in Queue/Library view.
This also removes the need for a separate track_name_first and album_column option.

* Fixed README

* Made custom tracklist formatting more flexible.
Updated readme with new instructions.
Reformatted impl member order to match the definitions in traits.rs.

* Added track_name_first config option to allow choosing if artists' names should be shown before or after the track name.

* Added active_fields config option, which allows configuration of which columns are visible in Queue/Library view.
This also removes the need for a separate track_name_first and album_column option.

* Fixed README

* Made custom tracklist formatting more flexible.
Updated readme with new instructions.
Reformatted impl member order to match the definitions in traits.rs.

* Fetch formatting config from library config

Instead of the lazy static mutex

* Moved custom format function to Playable impl as it's a better location to handle both Tracks and Episodes

* Rename from `tracklist_formatting` to `track_format`

Also shorten `format_{left|center|right}` to `{left|center|right}`

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2022-05-28 14:13:37 +02:00
Henrik Friedrichsen
c41294cb8d Update to librespot 0.4.0
Changes: https://github.com/librespot-org/librespot/compare/v0.3.1..v0.4.0
2022-05-22 17:15:02 +02:00
Henrik Friedrichsen
cef6eb43b0 Add option to customize library tabs
New option is called `library_tabs`. By default all tabs are enabled.

Fixes #798
2022-05-10 22:59:49 +02:00
Bettehem
dfecb759a0 Added playback_state config option (#783)
* Added playback_state config option.
It can be used to pre-define a certain playback state for the player.

* Changed playback_state to use enums and removed redundant check for the "Playing" state.
2022-04-28 10:03:17 +02:00
Henrik Friedrichsen
ee1d0ae7db Enable gapless by default
Fixes #735
2022-02-27 00:03:30 +01:00
cyqsimon
17867685ab Improved README (#683)
* auto generate table of contents

* cspell check

* Added `single` alias to repeat mode `track`

* Updated command documentation

* Reformat command table
Removed the "alias" column since it takes up too much space.
2021-12-27 16:34:56 +01:00
cyqsimon
e0ec759730 Improved seek command to allow more units (#682)
* `seek` command accepts fancy duration

* Use default formatting

* Better var naming

* Documented `seek` command
2021-12-27 09:28:49 +01:00
Henrik Friedrichsen
299c470cf9 Add exec command
Fixes #673
2021-12-17 20:57:52 +01:00
Martin Bjeldbak Madsen
172849107f Fix link to custom keybindings section 2021-12-06 11:13:17 +01:00
Martin Bjeldbak Madsen
2964b55ff8 Fix link to theming section in configuration table 2021-12-06 11:13:17 +01:00
Henrik Friedrichsen
dbd8ca93bb Move images to images/ folder 2021-11-29 23:10:35 +01:00
Olivier Cléro
3065efbb6b Improve README (logo, toc, layout, syntax) (#644) 2021-11-22 09:51:06 +01:00
Matheus Cardoso
1ea2f0a434 Fix key bindings inconsistency (#627) 2021-10-17 15:31:42 +02:00
Henrik Friedrichsen
ec640581bc Add initial_screen config variable
Resolves #616
2021-10-15 17:20:12 +02:00
Rashil Gandhi
dfce9683dc Add scoop instruction for installation 2021-09-18 20:59:45 +02:00
HMH
d17c66f8ad Add command to show recommendations. (#593)
* Add command to show recommendations.

This adds a command `similar selected|current` which enables searching for
track recommendations for playlists, albums as well as single tracks.

* Make sure to only send 5 seed items in total.

* Add docs for recommendation bindings to the README
2021-09-07 15:01:06 +02:00
Amogh Lele
4f4d8740e8 fix: typo in Debian 2021-08-17 21:15:14 +02:00
Henrik Friedrichsen
d731fe7188 Make command_key configurable
Fixes #487
2021-07-27 01:35:21 +02:00
Rashil Gandhi
30600326c9 Add Windows instructions 2021-06-12 01:07:15 +02:00
Henrik Friedrichsen
b42315d113 Add flip_status_indicators setting
Fixes #511
2021-05-14 17:41:19 +02:00
Henrik Friedrichsen
5fd93c33cb Add audio_cache_size to set maximum cache size 2021-05-07 23:14:26 +02:00
Ronak Buch
b0d2e8f62e Make behavior of Shift modifier consistent
Previously, Shift+o opened the menu for the currently playing item
while Shift+x copied a link to the currently selected item. Now Shift
operates on the currently playing item in both cases.
2021-05-07 22:52:42 +02:00
Jake Zimmerman
c44644db8a Document authentication and stored credentials. 2021-04-16 08:52:28 +02:00
Henrik Friedrichsen
4834a7aa44 Use debug build for backtrace logs 2021-03-02 17:18:15 +01:00
Henrik Friedrichsen
0f1227b7c7 Mention stderr file logging 2021-03-02 17:16:03 +01:00
KoffeinFlummi
df87ff9bdd Implement cover drawing as optional feature 2021-02-27 13:14:49 +01:00