mpd+ncmpcpp finalized
This commit is contained in:
parent
fa9f73ccaf
commit
85d9c9c232
5 changed files with 593 additions and 5 deletions
|
@ -26,10 +26,9 @@ What I use right now (stuff I have to install on a fresh linux install):
|
|||
* lxqt-policykit
|
||||
* pavucontrol
|
||||
* brave
|
||||
* ~~rhythmbox -- TODO migrate to a MPD based music player~~
|
||||
* MPD and ncmpcpp
|
||||
* MPD and ncmpcpp (includes `mpd-mpris` and `mpd-rich-presence-discord`)
|
||||
* lxapperance
|
||||
* NerdFonts
|
||||
* **DASH set as /bin/sh** (Arch Linux)
|
||||
* **DASH set as /bin/sh** (Arch Linux) (! Some scripts won't run corectly if they are run by bash)
|
||||
|
||||
![screenshot](https://raw.githubusercontent.com/vibikim/dotfiles/master/screenshot.png)
|
||||
|
|
|
@ -2,6 +2,11 @@
|
|||
|
||||
if [ -z "`pgrep -x $1`" ]; then
|
||||
$@ &
|
||||
if [ "$1" = mpd ]; then
|
||||
sleep 1
|
||||
mpd-mpris &
|
||||
mpd-rpc &
|
||||
fi
|
||||
notify-send $1 "is now enabled"
|
||||
else
|
||||
notify-send $1 "is now disabled"
|
||||
|
|
543
ncmpcpp/bindings
Normal file
543
ncmpcpp/bindings
Normal file
|
@ -0,0 +1,543 @@
|
|||
##############################################################
|
||||
## This is the example bindings file. Copy it to ##
|
||||
## ~/.ncmpcpp/bindings or $XDG_CONFIG_HOME/ncmpcpp/bindings ##
|
||||
## and set up your preferences ##
|
||||
##############################################################
|
||||
##
|
||||
##### General rules #####
|
||||
##
|
||||
## 1) Because each action has runtime checks whether it's
|
||||
## ok to run it, a few actions can be bound to one key.
|
||||
## Actions will be bound in order given in configuration
|
||||
## file. When a key is pressed, first action in order
|
||||
## will test itself whether it's possible to run it. If
|
||||
## test succeeds, action is executed and other actions
|
||||
## bound to this key are ignored. If it doesn't, next
|
||||
## action in order tests itself etc.
|
||||
##
|
||||
## 2) It's possible to bind more that one action at once
|
||||
## to a key. It can be done using the following syntax:
|
||||
##
|
||||
## def_key "key"
|
||||
## action1
|
||||
## action2
|
||||
## ...
|
||||
##
|
||||
## This creates a chain of actions. When such chain is
|
||||
## executed, each action in chain is run until the end of
|
||||
## chain is reached or one of its actions fails to execute
|
||||
## due to its requirements not being met. If multiple actions
|
||||
## and/or chains are bound to the same key, they will be
|
||||
## consecutively run until one of them gets fully executed.
|
||||
##
|
||||
## 3) When ncmpcpp starts, bindings configuration file is
|
||||
## parsed and then ncmpcpp provides "missing pieces"
|
||||
## of default keybindings. If you want to disable some
|
||||
## bindings, there is a special action called 'dummy'
|
||||
## for that purpose. Eg. if you want to disable ability
|
||||
## to crop playlists, you need to put the following
|
||||
## into configuration file:
|
||||
##
|
||||
## def_key "C"
|
||||
## dummy
|
||||
##
|
||||
## After that ncmpcpp will not bind any default action
|
||||
## to this key.
|
||||
##
|
||||
## 4) To let you write simple macros, the following special
|
||||
## actions are provided:
|
||||
##
|
||||
## - push_character "character" - pushes given special
|
||||
## character into input queue, so it will be immediately
|
||||
## picked by ncmpcpp upon next call to readKey function.
|
||||
## Accepted values: mouse, up, down, page_up, page_down,
|
||||
## home, end, space, enter, insert, delete, left, right,
|
||||
## tab, ctrl-a, ctrl-b, ..., ctrl-z, ctrl-[, ctrl-\\,
|
||||
## ctrl-], ctrl-^, ctrl-_, f1, f2, ..., f12, backspace.
|
||||
## In addition, most of these names can be prefixed with
|
||||
## alt-/ctrl-/shift- to be recognized with the appropriate
|
||||
## modifier key(s).
|
||||
##
|
||||
## - push_characters "string" - pushes given string into
|
||||
## input queue.
|
||||
##
|
||||
## - require_runnable "action" - checks whether given action
|
||||
## is runnable and fails if it isn't. This is especially
|
||||
## useful when mixed with previous two functions. Consider
|
||||
## the following macro definition:
|
||||
##
|
||||
## def_key "key"
|
||||
## push_characters "custom_filter"
|
||||
## apply_filter
|
||||
##
|
||||
## If apply_filter can't be currently run, we end up with
|
||||
## sequence of characters in input queue which will be
|
||||
## treated just as we typed them. This may lead to unexpected
|
||||
## results (in this case 'c' will most likely clear current
|
||||
## playlist, 'u' will trigger database update, 's' will stop
|
||||
## playback etc.). To prevent such thing from happening, we
|
||||
## need to change above definition to this one:
|
||||
##
|
||||
## def_key "key"
|
||||
## require_runnable "apply_filter"
|
||||
## push_characters "custom_filter"
|
||||
## apply_filter
|
||||
##
|
||||
## Here, first we test whether apply_filter can be actually run
|
||||
## before we stuff characters into input queue, so if condition
|
||||
## is not met, whole chain is aborted and we're fine.
|
||||
##
|
||||
## - require_screen "screen" - checks whether given screen is
|
||||
## currently active. accepted values: browser, clock, help,
|
||||
## media_library, outputs, playlist, playlist_editor,
|
||||
## search_engine, tag_editor, visualizer, last_fm, lyrics,
|
||||
## selected_items_adder, server_info, song_info,
|
||||
## sort_playlist_dialog, tiny_tag_editor.
|
||||
##
|
||||
## - run_external_command "command" - runs given command using
|
||||
## system() function.
|
||||
##
|
||||
## 5) In addition to binding to a key, you can also bind actions
|
||||
## or chains of actions to a command. If it comes to commands,
|
||||
## syntax is very similar to defining keys. Here goes example
|
||||
## definition of a command:
|
||||
##
|
||||
## def_command "quit" [deferred]
|
||||
## stop
|
||||
## quit
|
||||
##
|
||||
## If you execute the above command (which can be done by
|
||||
## invoking action execute_command, typing 'quit' and pressing
|
||||
## enter), ncmpcpp will stop the player and then quit. Note the
|
||||
## presence of word 'deferred' enclosed in square brackets. It
|
||||
## tells ncmpcpp to wait for confirmation (ie. pressing enter)
|
||||
## after you typed quit. Instead of 'deferred', 'immediate'
|
||||
## could be used. Then ncmpcpp will not wait for confirmation
|
||||
## (enter) and will execute the command the moment it sees it.
|
||||
##
|
||||
## Note: while command chains are executed, internal environment
|
||||
## update (which includes current window refresh and mpd status
|
||||
## update) is not performed for performance reasons. However, it
|
||||
## may be desirable to do so in some situration. Therefore it's
|
||||
## possible to invoke by hand by performing 'update enviroment'
|
||||
## action.
|
||||
##
|
||||
## Note: There is a difference between:
|
||||
##
|
||||
## def_key "key"
|
||||
## action1
|
||||
##
|
||||
## def_key "key"
|
||||
## action2
|
||||
##
|
||||
## and
|
||||
##
|
||||
## def_key "key"
|
||||
## action1
|
||||
## action2
|
||||
##
|
||||
## First one binds two single actions to the same key whilst
|
||||
## second one defines a chain of actions. The behavior of
|
||||
## these two is different and is described in (1) and (2).
|
||||
##
|
||||
## Note: Function def_key accepts non-ascii characters.
|
||||
##
|
||||
##### List of unbound actions #####
|
||||
##
|
||||
## The following actions are not bound to any key/command:
|
||||
##
|
||||
## - set_volume
|
||||
##
|
||||
#
|
||||
#def_key "mouse"
|
||||
# mouse_event
|
||||
#
|
||||
def_key "k"
|
||||
scroll_up
|
||||
|
||||
def_key "j"
|
||||
scroll_down
|
||||
|
||||
def_key "shift-up"
|
||||
select_item
|
||||
scroll_up
|
||||
|
||||
def_key "shift-down"
|
||||
select_item
|
||||
scroll_down
|
||||
|
||||
#def_key "["
|
||||
# scroll_up_album
|
||||
#
|
||||
#def_key "]"
|
||||
# scroll_down_album
|
||||
#
|
||||
#def_key "{"
|
||||
# scroll_up_artist
|
||||
#
|
||||
#def_key "}"
|
||||
# scroll_down_artist
|
||||
#
|
||||
#def_key "page_up"
|
||||
# page_up
|
||||
#
|
||||
#def_key "page_down"
|
||||
# page_down
|
||||
#
|
||||
#def_key "home"
|
||||
# move_home
|
||||
#
|
||||
#def_key "end"
|
||||
# move_end
|
||||
#
|
||||
#def_key "insert"
|
||||
# select_item
|
||||
#
|
||||
#def_key "enter"
|
||||
# enter_directory
|
||||
#
|
||||
#def_key "enter"
|
||||
# toggle_output
|
||||
#
|
||||
#def_key "enter"
|
||||
# run_action
|
||||
#
|
||||
#def_key "enter"
|
||||
# play_item
|
||||
#
|
||||
#def_key "space"
|
||||
# add_item_to_playlist
|
||||
#
|
||||
#def_key "space"
|
||||
# toggle_lyrics_update_on_song_change
|
||||
#
|
||||
#def_key "space"
|
||||
# toggle_visualization_type
|
||||
#
|
||||
#def_key "delete"
|
||||
# delete_playlist_items
|
||||
#
|
||||
#def_key "delete"
|
||||
# delete_browser_items
|
||||
#
|
||||
#def_key "delete"
|
||||
# delete_stored_playlist
|
||||
#
|
||||
def_key "l"
|
||||
next_column
|
||||
|
||||
#def_key "right"
|
||||
# slave_screen
|
||||
#
|
||||
#def_key "right"
|
||||
# volume_up
|
||||
#
|
||||
#def_key "+"
|
||||
# volume_up
|
||||
#
|
||||
def_key "h"
|
||||
previous_column
|
||||
|
||||
#def_key "left"
|
||||
# master_screen
|
||||
#
|
||||
#def_key "left"
|
||||
# volume_down
|
||||
#
|
||||
#def_key "-"
|
||||
# volume_down
|
||||
#
|
||||
#def_key ":"
|
||||
# execute_command
|
||||
#
|
||||
#def_key "tab"
|
||||
# next_screen
|
||||
#
|
||||
#def_key "shift-tab"
|
||||
# previous_screen
|
||||
#
|
||||
#def_key "f1"
|
||||
# show_help
|
||||
#
|
||||
#def_key "1"
|
||||
# show_playlist
|
||||
#
|
||||
#def_key "2"
|
||||
# show_browser
|
||||
#
|
||||
#def_key "2"
|
||||
# change_browse_mode
|
||||
#
|
||||
#def_key "3"
|
||||
# show_search_engine
|
||||
#
|
||||
#def_key "3"
|
||||
# reset_search_engine
|
||||
#
|
||||
#def_key "4"
|
||||
# show_media_library
|
||||
#
|
||||
#def_key "4"
|
||||
# toggle_media_library_columns_mode
|
||||
#
|
||||
#def_key "5"
|
||||
# show_playlist_editor
|
||||
#
|
||||
#def_key "6"
|
||||
# show_tag_editor
|
||||
#
|
||||
#def_key "7"
|
||||
# show_outputs
|
||||
#
|
||||
#def_key "8"
|
||||
# show_visualizer
|
||||
#
|
||||
#def_key "="
|
||||
# show_clock
|
||||
#
|
||||
#def_key "@"
|
||||
# show_server_info
|
||||
#
|
||||
#def_key "s"
|
||||
# stop
|
||||
#
|
||||
#def_key "p"
|
||||
# pause
|
||||
#
|
||||
#def_key ">"
|
||||
# next
|
||||
#
|
||||
#def_key "<"
|
||||
# previous
|
||||
#
|
||||
#def_key "ctrl-h"
|
||||
# jump_to_parent_directory
|
||||
#
|
||||
#def_key "ctrl-h"
|
||||
# replay_song
|
||||
#
|
||||
#def_key "backspace"
|
||||
# jump_to_parent_directory
|
||||
#
|
||||
#def_key "backspace"
|
||||
# replay_song
|
||||
#
|
||||
#def_key "f"
|
||||
# seek_forward
|
||||
#
|
||||
#def_key "b"
|
||||
# seek_backward
|
||||
#
|
||||
#def_key "r"
|
||||
# toggle_repeat
|
||||
#
|
||||
#def_key "z"
|
||||
# toggle_random
|
||||
#
|
||||
#def_key "y"
|
||||
# save_tag_changes
|
||||
#
|
||||
#def_key "y"
|
||||
# start_searching
|
||||
#
|
||||
#def_key "y"
|
||||
# toggle_single
|
||||
#
|
||||
#def_key "R"
|
||||
# toggle_consume
|
||||
#
|
||||
#def_key "Y"
|
||||
# toggle_replay_gain_mode
|
||||
#
|
||||
#def_key "T"
|
||||
# toggle_add_mode
|
||||
#
|
||||
#def_key "|"
|
||||
# toggle_mouse
|
||||
#
|
||||
#def_key "#"
|
||||
# toggle_bitrate_visibility
|
||||
#
|
||||
#def_key "Z"
|
||||
# shuffle
|
||||
#
|
||||
#def_key "x"
|
||||
# toggle_crossfade
|
||||
#
|
||||
#def_key "X"
|
||||
# set_crossfade
|
||||
#
|
||||
#def_key "u"
|
||||
# update_database
|
||||
#
|
||||
#def_key "ctrl-s"
|
||||
# sort_playlist
|
||||
#
|
||||
#def_key "ctrl-s"
|
||||
# toggle_browser_sort_mode
|
||||
#
|
||||
#def_key "ctrl-s"
|
||||
# toggle_media_library_sort_mode
|
||||
#
|
||||
#def_key "ctrl-r"
|
||||
# reverse_playlist
|
||||
#
|
||||
#def_key "ctrl-f"
|
||||
# apply_filter
|
||||
#
|
||||
#def_key "ctrl-_"
|
||||
# select_found_items
|
||||
#
|
||||
#def_key "/"
|
||||
# find
|
||||
#
|
||||
#def_key "/"
|
||||
# find_item_forward
|
||||
#
|
||||
#def_key "?"
|
||||
# find
|
||||
#
|
||||
#def_key "?"
|
||||
# find_item_backward
|
||||
#
|
||||
#def_key "."
|
||||
# next_found_item
|
||||
#
|
||||
#def_key ","
|
||||
# previous_found_item
|
||||
#
|
||||
#def_key "w"
|
||||
# toggle_find_mode
|
||||
#
|
||||
#def_key "e"
|
||||
# edit_song
|
||||
#
|
||||
#def_key "e"
|
||||
# edit_library_tag
|
||||
#
|
||||
#def_key "e"
|
||||
# edit_library_album
|
||||
#
|
||||
#def_key "e"
|
||||
# edit_directory_name
|
||||
#
|
||||
#def_key "e"
|
||||
# edit_playlist_name
|
||||
#
|
||||
#def_key "e"
|
||||
# edit_lyrics
|
||||
#
|
||||
#def_key "i"
|
||||
# show_song_info
|
||||
#
|
||||
#def_key "I"
|
||||
# show_artist_info
|
||||
#
|
||||
#def_key "g"
|
||||
# jump_to_position_in_song
|
||||
#
|
||||
#def_key "l"
|
||||
# show_lyrics
|
||||
#
|
||||
#def_key "ctrl-v"
|
||||
# select_range
|
||||
#
|
||||
#def_key "v"
|
||||
# reverse_selection
|
||||
#
|
||||
#def_key "V"
|
||||
# remove_selection
|
||||
#
|
||||
#def_key "B"
|
||||
# select_album
|
||||
#
|
||||
#def_key "a"
|
||||
# add_selected_items
|
||||
#
|
||||
#def_key "c"
|
||||
# clear_playlist
|
||||
#
|
||||
#def_key "c"
|
||||
# clear_main_playlist
|
||||
#
|
||||
#def_key "C"
|
||||
# crop_playlist
|
||||
#
|
||||
#def_key "C"
|
||||
# crop_main_playlist
|
||||
#
|
||||
#def_key "m"
|
||||
# move_sort_order_up
|
||||
#
|
||||
#def_key "m"
|
||||
# move_selected_items_up
|
||||
#
|
||||
#def_key "n"
|
||||
# move_sort_order_down
|
||||
#
|
||||
#def_key "n"
|
||||
# move_selected_items_down
|
||||
#
|
||||
#def_key "M"
|
||||
# move_selected_items_to
|
||||
#
|
||||
#def_key "A"
|
||||
# add
|
||||
#
|
||||
#def_key "S"
|
||||
# save_playlist
|
||||
#
|
||||
#def_key "o"
|
||||
# jump_to_playing_song
|
||||
#
|
||||
#def_key "G"
|
||||
# jump_to_browser
|
||||
#
|
||||
#def_key "G"
|
||||
# jump_to_playlist_editor
|
||||
#
|
||||
#def_key "~"
|
||||
# jump_to_media_library
|
||||
#
|
||||
#def_key "E"
|
||||
# jump_to_tag_editor
|
||||
#
|
||||
#def_key "U"
|
||||
# toggle_playing_song_centering
|
||||
#
|
||||
#def_key "P"
|
||||
# toggle_display_mode
|
||||
#
|
||||
#def_key "\\"
|
||||
# toggle_interface
|
||||
#
|
||||
#def_key "!"
|
||||
# toggle_separators_between_albums
|
||||
#
|
||||
#def_key "L"
|
||||
# toggle_lyrics_fetcher
|
||||
#
|
||||
#def_key "F"
|
||||
# fetch_lyrics_in_background
|
||||
#
|
||||
#def_key "alt-l"
|
||||
# toggle_fetching_lyrics_in_background
|
||||
#
|
||||
#def_key "ctrl-l"
|
||||
# toggle_screen_lock
|
||||
#
|
||||
#def_key "`"
|
||||
# toggle_library_tag_type
|
||||
#
|
||||
#def_key "`"
|
||||
# refetch_lyrics
|
||||
#
|
||||
#def_key "`"
|
||||
# add_random_items
|
||||
#
|
||||
#def_key "ctrl-p"
|
||||
# set_selected_items_priority
|
||||
#
|
||||
#def_key "q"
|
||||
# quit
|
||||
#
|
|
@ -1,3 +1,42 @@
|
|||
# searching stuff
|
||||
ignore_leading_the = "yes"
|
||||
ignore_diacritics = "yes"
|
||||
|
||||
###
|
||||
# Appearance
|
||||
###
|
||||
user_interface = "alternative"
|
||||
alternative_header_first_line_format = "$0$aqqu$/a {$4%a$9 - }{$8%t$9}|{$3%f$9} $0$atqq$/a$9"
|
||||
alternative_header_second_line_format = "{{$4%b$9}{ [$8%y$9]}}|{$4%D$9}"
|
||||
|
||||
song_columns_list_format = "(10)[red]{l} (30)[white]{t} (30)[red]{a} (30)[red]{b}"
|
||||
song_list_format = "{$7%a - $9}{$5%t$9}|{$5%f$9}$R{$6%b $9}{$3%l$9}"
|
||||
|
||||
playlist_editor_display_mode = "columns"
|
||||
search_engine_display_mode = "columns"
|
||||
browser_display_mode = "columns"
|
||||
playlist_display_mode = "columns"
|
||||
|
||||
colors_enabled = "yes"
|
||||
main_window_color = "white"
|
||||
header_window_color = "red"
|
||||
volume_color = "green"
|
||||
statusbar_color = "white"
|
||||
progressbar_color = "red"
|
||||
progressbar_elapsed_color = "white"
|
||||
|
||||
progressbar_look = "▓*░"
|
||||
|
||||
now_playing_prefix = "> "
|
||||
centered_cursor = "yes"
|
||||
|
||||
display_bitrate = "yes"
|
||||
enable_window_title = "yes"
|
||||
empty_tag_marker = "-EMPTY-"
|
||||
|
||||
selected_item_prefix = "* "
|
||||
discard_colors_if_item_is_selected = "yes"
|
||||
|
||||
#### connection settings #####
|
||||
mpd_host = localhost
|
||||
mpd_port = 6600
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#restart sxhkd
|
||||
super + alt + x
|
||||
killall -q sxhkd && sleep 1 && sxhkd && notify-send "sxhkd restarted &
|
||||
killall -q sxhkd && sleep 1 && notify-send "sxhkd restarted" && sxhkd &
|
||||
###
|
||||
# LAUNCH APPS
|
||||
###
|
||||
|
@ -10,7 +10,7 @@ super + Return
|
|||
super + shift + w
|
||||
$BROWSER
|
||||
super + shift + m
|
||||
rhythmbox
|
||||
$TERMINAL -e ncmpcpp
|
||||
super + shift + v
|
||||
pavucontrol
|
||||
super + shift + f
|
||||
|
@ -40,6 +40,8 @@ super + ctrl + alt + s
|
|||
toggle redshift -l 44:26
|
||||
super + ctrl + alt + p
|
||||
toggle picom --experimental-backends
|
||||
super + ctrl + alt + m
|
||||
toggle mpd #(!)The toggle script has custom behaviour for mpd so it also starts `mpd-rpc` and `mpd-mpris`
|
||||
|
||||
###
|
||||
# MISC
|
||||
|
|
Loading…
Reference in a new issue