From b161ffa89a8c79a20e97f6b612edf3b73e9ae47e Mon Sep 17 00:00:00 2001 From: krolxon Date: Thu, 31 Jul 2025 21:11:02 +0530 Subject: [PATCH] start using mpd & ncmpcpp --- .config/mpd/mpd.conf | 25 +++ .config/ncmpcpp/bindings | 475 +++++++++++++++++++++++++++++++++++++++ .config/ncmpcpp/config | 62 +++++ .config/shell/aliasrc | 2 +- .config/shell/profile | 6 + .config/user-dirs.dirs | 4 +- 6 files changed, 571 insertions(+), 3 deletions(-) create mode 100644 .config/mpd/mpd.conf create mode 100644 .config/ncmpcpp/bindings create mode 100644 .config/ncmpcpp/config diff --git a/.config/mpd/mpd.conf b/.config/mpd/mpd.conf new file mode 100644 index 0000000..3729240 --- /dev/null +++ b/.config/mpd/mpd.conf @@ -0,0 +1,25 @@ +db_file "~/.config/mpd/database" +music_directory "~/music" +playlist_directory "~/.config/mpd/playlists" + +auto_update "yes" +bind_to_address "127.0.0.1" +port "6600" +restore_paused "yes" +max_output_buffer_size "16384" + +audio_output { + # type "pulse" + # name "pulse" + #type "alsa" + #name "ALSA" + type "pipewire" + name "PipeWire Sound Server" +} + +audio_output { + type "fifo" + name "Visualizer feed" + path "/tmp/mpd.fifo" + format "44100:16:2" +} diff --git a/.config/ncmpcpp/bindings b/.config/ncmpcpp/bindings new file mode 100644 index 0000000..b2c40bb --- /dev/null +++ b/.config/ncmpcpp/bindings @@ -0,0 +1,475 @@ +############################################################## +## This is the example bindings file. Copy it to ## +## ~/.ncmpcpp/bindings or $XDG_CONFIG_HOME/ncmpcpp/bindings ## +## and set up your preferences ## +############################################################## +# +#def_key "mouse" +# mouse_event +# +#def_key "up" +# scroll_up +# +#def_key "shift-up" +# select_item +# scroll_up +# +#def_key "down" +# scroll_down +# +#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 "right" +# next_column +# +#def_key "right" +# slave_screen +# +#def_key "right" +# volume_up +# +#def_key "+" +# volume_up +# +#def_key "left" +# 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 +# +# +#def_key "f" +# find +#def_key "f" +# find_item_forward + +def_key "+" + show_clock +def_key "=" + volume_up + +def_key "j" + scroll_down +def_key "k" + scroll_up + +def_key "ctrl-u" + page_up +#push_characters "kkkkkkkkkkkkkkk" +def_key "ctrl-d" + page_down +#push_characters "jjjjjjjjjjjjjjj" +def_key "u" + page_up +#push_characters "kkkkkkkkkkkkkkk" +def_key "d" + page_down +#push_characters "jjjjjjjjjjjjjjj" +def_key "h" + previous_column +def_key "l" + next_column + +def_key "." + show_lyrics + +def_key "n" + next_found_item +def_key "N" + previous_found_item + +# not used but bound +def_key "J" + move_sort_order_down +def_key "K" + move_sort_order_up +def_key "h" + jump_to_parent_directory +def_key "l" + enter_directory +def_key "l" + run_action +def_key "l" + play_item +def_key "m" + show_media_library +def_key "m" + toggle_media_library_columns_mode +def_key "t" + show_tag_editor +def_key "v" + show_visualizer +def_key "G" + move_end +def_key "g" + move_home +#jump_to_position_in_song +def_key "U" + update_database +def_key "s" + reset_search_engine +def_key "s" + show_search_engine +def_key "x" + delete_playlist_items +def_key "P" + show_playlist diff --git a/.config/ncmpcpp/config b/.config/ncmpcpp/config new file mode 100644 index 0000000..61d20c6 --- /dev/null +++ b/.config/ncmpcpp/config @@ -0,0 +1,62 @@ +ncmpcpp_directory = "~/.config/ncmpcpp" +lyrics_directory = "~/.local/share/lyrics" +lyrics_fetchers = tekstowo, justsomelyrics, internet, musixmatch, genius, sing365, metrolyrics, jahlyrics, plyrics, zeneszoveg +message_delay_time = "1" +visualizer_type = "spectrum" +song_list_format = {$4%a - }{%t}|{$8%f$9}$R{$3(%l)$9} +song_status_format = $b{{$8"%t"}} $3by {$4%a{ $3in $7%b{ (%y)}} $3}|{$8%f} +song_library_format = {%n - }{%t}|{%f} +current_item_prefix = $(cyan)$r$b +current_item_suffix = $/r$(end)$/b +current_item_inactive_column_prefix = $(magenta)$r +current_item_inactive_column_suffix = $/r$(end) +playlist_display_mode = columns +browser_display_mode = columns +media_library_primary_tag = album_artist +media_library_albums_split_by_date = no +startup_screen = "media_library" +jump_to_now_playing_song_at_start = "yes" +display_volume_level = yes +ignore_leading_the = yes +external_editor = nvim +use_console_editor = yes + +## Progress bar ## +progressbar_look = "▂▂▂" +progressbar_color = black:b +progressbar_elapsed_color = blue:b + +## Colors ## +colors_enabled = "yes" +empty_tag_color = magenta +main_window_color = white +statusbar_color = red +volume_color = "green" +statusbar_time_color = cyan:b +execute_on_song_change="pkill -RTMIN+11 dwmblocks" + +## Selected tracks ## +selected_item_prefix = "* " + +## Seeking ## +incremental_seeking = "yes" +seek_time = "1" + +## Alternative Interface ## +# user_interface = "alternative" +alternative_header_first_line_format = $b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b +alternative_header_second_line_format = {{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D} + +## Visibility ## +header_visibility = "yes" +statusbar_visibility = "yes" +titles_visibility = "yes" + +## Now Playing ## +now_playing_prefix = "> " +centered_cursor = "yes" + +# Misc +display_bitrate = "yes" +enable_window_title = "yes" +empty_tag_marker = "" diff --git a/.config/shell/aliasrc b/.config/shell/aliasrc index 61f9094..945f226 100644 --- a/.config/shell/aliasrc +++ b/.config/shell/aliasrc @@ -26,7 +26,7 @@ alias \ # yt="yt-dlp --embed-metadata -i -o '%(title)s.%(ext)s' --external-downloader=aria2c" \ -alias on="tmux new-session -s notes -c ~/dox/brain" +alias on="tmux new-session -s notes -c ~/dox/brain 'nvim .'" alias todo="nvim ~/dox/brain/Todo.md" # Colorize commands when possible. diff --git a/.config/shell/profile b/.config/shell/profile index d21f4a1..e5787ba 100644 --- a/.config/shell/profile +++ b/.config/shell/profile @@ -49,5 +49,11 @@ export PATH="$PATH:${$(find ~/.local/bin -type d -printf %p:)%%:}" export PATH=$PATH:$HOME/.local/pbin # private bin export PATH="$PATH:$XDG_DATA_HOME/cargo/bin" +export MPD_HOST="localhost" +export MPD_PORT="6600" + +# Mpd daemon start +[ ! -s ~/.config/mpd/pid ] && mpd + # Start graphical server on user's current tty if not already running. [ "$(tty)" = "/dev/tty1" ] && ! pidof -s Xorg >/dev/null 2>&1 && exec startx "$XINITRC" diff --git a/.config/user-dirs.dirs b/.config/user-dirs.dirs index b530e7e..d400faa 100644 --- a/.config/user-dirs.dirs +++ b/.config/user-dirs.dirs @@ -4,12 +4,12 @@ # Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped # homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an # absolute path. No other format is supported. -# +# XDG_DESKTOP_DIR="$HOME/" XDG_DOWNLOAD_DIR="$HOME/dl" XDG_TEMPLATES_DIR="$HOME/" XDG_PUBLICSHARE_DIR="$HOME/" XDG_DOCUMENTS_DIR="$HOME/dox" -XDG_MUSIC_DIR="$HOME/" +XDG_MUSIC_DIR="$HOME/music" XDG_PICTURES_DIR="$HOME/pix" XDG_VIDEOS_DIR="$HOME/vids"