Tags
arch, ArchLinux, AUR, install, linux, mpd, mpd configuration, ncmpcpp, ncmpcpp configuration
Arch wiki already has extremely well documented,organised, and lucid installation guide, so i won’t be trying to create a new one. what i’ll try instead is to try and offer a few suggestions ,and provide links to relevant arch wiki pages and some other sources.
this page will guide you through most of the installation https://wiki.archlinux.org/index.php/Beginners_Guide you just need to follow the steps and it’s a breeze to install the Arch base!
before you begin the install, this is the message that greets you :)
if you need a complete graphical tutorial on the base installation, head to this page and come back here after base installation is done and you are ready to install sound module and X.
when you reach about here, https://wiki.archlinux.org/index.php/Beginners_Guide#Sound, you get to choose between ALSA and OSS sound architecture. I would recommend sticking to ALSA unless you have a specific reason not to(OSS uses less resources to run, but we are splitting hairs now the difference is really small), here are the reasons: 1) configuring usb audio is very easy in ALSA, it’s a pain in the butt in OSS. 2) having a system wide equalizer is easy in ALSA.
after sound, you need to install X followed by a graphic user interface, if you have plenty of time in your hand, instead of installing Desktop Environment(DE) you can just pick and choose your Window Manager(WM) and choose your own set of apps to build your own DE. On the presumption that you don’t have time, here’s some suggestion for choosing a DE.
if you have been using GNOME or KDE, and you were happy with your experience, you can stick to them or you can try Mate desktop(based on Gnome-2) If you need lightweight but full featured DE, try Xfce, the most balanced option. if you need something even lighter, try LXDE or Enlightenment(E-17) . E-17 is extremely lightweight,but has out of the box, cool 3D effects, and funky looks. excellent for running on slightly older systems that can’t handle KDE or GNOME that well anymore.
after this laptop users would need to configure touchpad, you will find the guide here. easiest option is to install synclient and configure it.
the arch package manager ‘pacman’ sets the bar among all linux package managers(only other that can compete is ‘portage’ of Gentoo linux) but you need to install something more to install softwares from AUR(apart from three base repositories ‘core’,’extra’,and ‘community’ Arch has a vast library of packages maintained by individual users. it’s called Arch User Repository-AUR ). there are several package mangers(most of them are pacman wraps with some added features) that can query and install from AUR. here’s how to install one of them(yaourt).
- first open /etc/pacman.conf and add this two lines at the end:
[archlinuxfr] Server = http://repo.archlinux.fr/$arch
- then do system-upgrade by ‘sudo pacman -Syu’
- install yaourt by usual ‘sudo pacman -S yaourt’ now you can search for packages across all repositories(core, extra, community,aur,etc) just by entering: ‘yaourt packagename/approximate packagename‘ and it will show you list of packages containing the search phrase in it’s name or description.
# Files and directories ########################
music_directory “/home/svejk/music”
playlist_directory “~/.mpd/playlists”
db_file “~/.mpd/db”
log_file “~/.mpd/log”
pid_file “~/.mpd/pid”
state_file “~/.mpd/state”
sticker_file “~/.mpd/sticker.sql”
# General music daemon options #######################################
#bind_to_address “any”
# And for Unix Socket
#bind_to_address “~/.mpd/socket”
#port “6600”
save_absolute_paths_in_playlists “yes”
# Symbolic link behavior ########################
#follow_outside_symlinks “yes”
#follow_inside_symlinks “yes”
# Input ##################################
input {
plugin “curl”
# proxy “proxy.isp.com:8080”
# proxy_user “user”
# proxy_password “password”
}
#
###########################
# Audio Output ##################################
audio_output {
type “alsa”
name “My ALSA Device”
# device “hw:0,0” # optional
# format “44100:16:2” # optional
mixer_type “software” # optional
# mixer_device “default” # optional
# mixer_control “PCM” # optional
# mixer_index “0” # optional
}
#audio_output {
# type “httpd”
# name “My HTTP Stream”
# encoder “vorbis” # optional, vorbis or lame
# port “8000”
# bind_to_address “0.0.0.0” # optional, IPv4 or IPv6
## quality “5.0” # do not define if bitrate is defined
# bitrate “128” # do not define if quality is defined
# format “44100:16:1”
# max_clients “0” # optional 0=no limit
#}
#audio_output_format “44100:16:2”
#samplerate_converter “Fastest Sinc Interpolator”
# Normalization automatic volume adjustments ##################################
#replaygain “album”
#replaygain_preamp “0”
#volume_normalization “no”
# MPD Internal Buffering #####################
#audio_buffer_size “2048”
#buffer_before_play “10%”
# Resource Limitations ########################
#connection_timeout “60”
#max_connections “10”
#max_playlist_length “16384”
#max_command_list_size “2048”
#max_output_buffer_size “8192”
###################################
now create another folder in home named .ncmpcpp. create inside it a file called config and save the following content. edit mpd_music_dir = “/home/svejk/music” line to reflect your own music directory.
##########################################
## this is example configuration file, copy it to ##
## ~/.ncmpcpp/config and set up your preferences ##
######################################
#
##### connection settings #####
#
## set it in order to make tag editor and renaming files work properly
#
#mpd_host = “localhost”
#
#mpd_port = “6600”
#
mpd_music_dir = “/home/svejk/music”
#
#mpd_connection_timeout = “5”
#
#mpd_crossfade_time = “5”
#
#mpd_communication_mode = “notifications” (polling/notifications)
#
##### music visualizer #####
##
## Note: In order to make music visualizer work you’ll
## need to use mpd fifo output, whose format parameter
## has to be set to 44100:16:1. Example configuration:
## (it has to be put into mpd.conf)
##
## audio_output {
## type “fifo”
## name “My FIFO”
## path “/tmp/mpd.fifo”
## format “44100:16:1”
## }
##
#
visualizer_fifo_path = “/tmp/mpd.fifo”
#
##
## Note: Below parameter is needed for ncmpcpp
## to determine which output provides data for
## visualizer and thus allow syncing between
## visualization and sound as currently there
## are some problems with it.
##
#
#visualizer_output_name = “”
#
##
## Note: Below parameter defines how often ncmpcpp
## has to “synchronize” visualizer and audio outputs.
## 30 seconds is optimal value, but if you experience
## synchronization problems, set it to lower value.
## Keep in mind that sane values start with >=10.
##
#
visualizer_sync_interval = “20”
#
##
## Note: To enable spectrum frequency visualization
## you need to compile ncmpcpp with fftw3 support.
##
#
visualizer_type = “spectrum” (spectrum/wave)
#
##### system encoding #####
##
## ncmpcpp should detect your charset encoding
## but if it failed to do so, you can specify
## charset encoding you are using here.
##
## Note: You can see whether your ncmpcpp build
## supports charset detection by checking output
## of `ncmpcpp –version`.
##
## Note: Since MPD uses utf8 by default, setting
## this option makes sense only if your encoding
## is different.
##
#
#system_encoding = “”
#
##### delays #####
#
## delay after playlist highlighting will be disabled (0 = don’t disable)
#
#playlist_disable_highlight_delay = “5”
#
## defines how long various messages are supposed to be visible
#
#message_delay_time = “4”
#
##### song format #####
##
## for song format you can use:
##
## %l – length
## %f – filename
## %D – directory
## %a – artist
## %A – album artist
## %t – title
## %b – album
## %y – year
## %n – track number (01/12 -> 01)
## %N – full track info (01/12 -> 01/12)
## %g – genre
## %c – composer
## %p – performer
## %d – disc
## %C – comment
## $R – begin right alignment
##
## you can also put them in { } and then it will be displayed
## only if all requested values are available and/or define alternate
## value with { }|{ } eg. {%a – %t}|{%f}
##
## Note: If you want to set limit on maximal length of a tag, just
## put the appropriate number between % and character that defines
## tag type, e.g. to make album take max. 20 terminal cells, use ‘%20b’.
##
## Note: Format that is similar to “%a – %t” (i.e. without any additional
## braces) is equal to “{%a – %t}”, so if one of the tags is missing,
## you’ll get nothing.
##
## text can also have different color than the main window has,
## eg. if you want length to be green, write $3%l$9
##
## available values:
##
## – 0 – default window color (discards all other colors)
## – 1 – black
## – 2 – red
## – 3 – green
## – 4 – yellow
## – 5 – blue
## – 6 – magenta
## – 7 – cyan
## – 8 – white
## – 9 – end of current color
##
## Note: colors can be nested.
##
#
#song_list_format = “{%a – }{%t}|{$8%f$9}$R{$3(%l)$9}”
#
#song_status_format = “{{%a{ \”%b\”{ (%y)}} – }{%t}}|{%f}”
#
#song_library_format = “{%n – }{%t}|{%f}”
#
#tag_editor_album_format = “{(%y) }%b”
#
##
## Note: Below variables are for alternative version of user’s interface.
## Their syntax supports all tags and colors listed above plus some extra
## markers used for text attributes. They are followed by character ‘$’.
## After that you can put:
##
## – b – bold text
## – u – underline text
## – r – reverse colors
## – a – use alternative character set
##
## If you don’t want to use an attribute anymore, just put it again, but
## this time insert character ‘/’ between ‘$’ and attribute character,
## e.g. {$b%t$/b}|{$r%f$/r} will display bolded title tag or filename
## with reversed colors.
##
#
#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}”
#
##
## Note: Below variables also supports
## text attributes listed above.
##
#
#now_playing_prefix = “$b”
#
#now_playing_suffix = “$/b”
#
#browser_playlist_prefix = “$8playlist$9 “
#
#selected_item_prefix = “$6”
#
#selected_item_suffix = “$9”
#
## colors are not supported for below variable
#
#song_window_title_format = “{%a – }{%t}|{%f}”
#
##### columns settings #####
##
## syntax of song columns list format is “column column etc.”
##
## – syntax for each column is:
##
## (width of column)[column’s color]{displayed tag}
##
## Note: Width is by default in %, if you want a column to
## have fixed size, add ‘f’ after the value, e.g. (10)[white]{a}
## will be the column that take 10% of screen (so the real column’s
## width will depend on actual screen size), whereas (10f)[white]{a}
## will take 10 terminal cells, no matter how wide the screen is.
##
## – color is optional (if you want the default one, type [])
##
## Note: You can give a column additional attributes by putting appropriate
## character after displayed tag character. Available attributes are:
##
## – r – column will be right aligned
## – E – if tag is empty, empty tag marker won’t be displayed
##
## You can also:
##
## – give a column custom name by putting it after attributes,
## separated with character ‘:’, e.g. {lr:Length} gives you
## right aligned column of lengths named “Length”.
##
## – define sequence of tags, that have to be displayed in case
## predecessor is empty in a way similar to the one in classic
## song format, i.e. using ‘|’ character, e.g. {a|c|p:Owner}
## creates column named “Owner” that tries to display artist
## tag and then composer and performer if previous ones are
## not available.
##
#
song_columns_list_format = “(25)[cyan]{a} (30)[]{b} (40)[cyan]{t|f} (7f)[black]{l}”
#
##### various settings #####
#
##
## Note: Custom command that will be executed each
## time song changes. Useful for notifications etc.
##
## Attention: It doesn’t support song format anymore.
## Use `ncmpcpp –now-playing SONG_FORMAT` instead.
##
#execute_on_song_change = “”
#
playlist_show_remaining_time = “no”
#
#playlist_shorten_total_times = “no”
#
#playlist_separate_albums = “no”
#
playlist_display_mode = “columns” (classic/columns)
#
#browser_display_mode = “classic” (classic/columns)
#
search_engine_display_mode = “columns” (classic/columns)
#
#discard_colors_if_item_is_selected = “yes”
#
#incremental_seeking = “yes”
#
#seek_time = “1”
#
autocenter_mode = “yes”
#
#centered_cursor = “no”
#
##
## Note: You can specify third character which will
## be used to build ’empty’ part of progressbar.
##
progressbar_look = ” O “
#
#default_place_to_search_in = “database” (database/playlist)
#
user_interface = “alternative” (classic/alternative)
#
#media_library_left_column = “a” (possible values: a,y,g,c,p, legend above)
#
#default_find_mode = “wrapped” (wrapped/normal)
#
#default_space_mode = “add” (add/select)
#
default_tag_editor_left_col = “dirs” (albums/dirs)
#
#default_tag_editor_pattern = “%n – %t”
#
header_visibility = “yes”
#
#statusbar_visibility = “yes”
#
#titles_visibility = “yes”
#
#header_text_scrolling = “yes”
#
#fancy_scrolling = “yes”
#
cyclic_scrolling = “yes”
#
#lines_scrolled = “2”
#
follow_now_playing_lyrics = “yes”
#
store_lyrics_in_song_dir = “yes”
#
##
## Note: If you set this variable, ncmpcpp will try to
## get info from last.fm in language you set and if it
## fails, it will fall back to english. Otherwise it will
## use english the first time.
##
## Note: Language has to be expressed as an ISO 639 alpha-2 code.
##
#lastfm_preferred_language = “”
#
ncmpc_like_songs_adding = “yes” (enabled – add/remove, disabled – always add)
#
#show_hidden_files_in_local_browser = “no”
#
#display_screens_numbers_on_start = “yes”
#
##
## How shall key_screen_switcher work?
##
## – “previous” – switch between current and last used screen
## – “sequence: 2 -> 9 -> 5” – switch between given sequence of screens.
##
## Screen numbers you can use after ‘sequence’ keyword are:
##
## – 1 – help
## – 2 – playlist
## – 3 – browser
## – 4 – search engine
## – 5 – media library
## – 6 – playlist editor
## – 7 – tag editor
## – 8 – outputs
## – 9 – visualizer
## – 10 – clock
##
## As you can see, above example will switch between
## playlist, visualizer and media library screens.
##
#screen_switcher_mode = “sequence: 2 -> 3”
#
##
## Note: You can define startup screen for ncmpcpp
## by choosing screen number from the list above.
##
startup_screen = “2”
#
#jump_to_now_playing_song_at_start = “yes”
#
ask_before_clearing_main_playlist = “yes”
#
clock_display_seconds = “yes”
#
display_volume_level = “yes”
#
display_bitrate = “yes”
#
display_remaining_time = “yes”
#
regular_expressions = “extended” (basic/extended)
#
##
## Note: If below is enabled, ncmpcpp will ignore leading
## “The” word while sorting items in browser, tags in
## media library, etc.
##
#ignore_leading_the = “no”
#
#block_search_constraints_change_if_items_found = “yes”
#
mouse_support = “no”
#
#mouse_list_scroll_whole_page = “yes”
#
empty_tag_marker = “one doesn’t know!”
#
#tag_editor_extended_numeration = “no”
#
#media_library_display_date = “yes”
#
#media_library_display_empty_tag = “yes”
#
#media_library_disable_two_column_mode = “no”
#
#enable_window_title = “yes”
#
##
## Note: You can choose default search mode for search
## engine. Available modes are:
##
## – 1 – use mpd built-in searching (no regexes, pattern matching)
## – 2 – use ncmpcpp searching (pattern matching with support for regexes,
## but if your mpd is on a remote machine, downloading big database
## to process it can take a while
## – 3 – match only exact values (this mode uses mpd function for searching
## in database and local one for searching in current playlist)
##
#
#search_engine_default_search_mode = “1”
#
##
## Note: Below variables can allow you to physically
## remove files and directories from your hdd using
## ncmpcpp’s browser screen.
##
#
#allow_physical_files_deletion = “no”
#
#allow_physical_directories_deletion = “no”
#
external_editor = “nano”
#
use_console_editor = “yes” (set to yes, if your editor is console app)
#
##### colors definitions #####
#
#colors_enabled = “yes”
#
empty_tag_color = “cyan”
#
header_window_color = “white”
#
volume_color = “default”
#
state_line_color = “black”
#
state_flags_color = “default”
#
main_window_color = “white”
#
color1 = “white”
#
color2 = “white”
#
main_window_highlight_color = “cyan”
#
progressbar_color = “cyan”
#
statusbar_color = “default”
#
alternative_ui_separator_color = “black”
#
active_column_color = “white”
#
visualizer_color = “cyan”
#
window_border_color = “green”
#
active_window_border = “black”
############################################
now in .mpd folder, create 4 empty files named db,log, pid, and state.
..and you are done! run mpd, followed by ncmpcpp, and you would be taken to ncmpcpp kceyboard shortcuts page. hit ‘u’ once to update the music database and create the library.
and finally, don’t forget to take a look at this page for common applications that you might need, like office suite,image, audio,or video editor etc.
