@@ -118,7 +118,7 @@ fi | |||
set -o vi | |||
#Directory changes | |||
alias cdn='cd $HOME/Notes/; vim "+CtrlP"' | |||
alias cdn='vim ~/Notes/text "+cd ~/Notes/text" "+enew" "+CtrlP"' | |||
alias cdd='cd $HOME/Downloads/' | |||
alias cdo='cd $HOME/Source/' | |||
alias cdc='cd $HOME/.config/' | |||
@@ -144,6 +144,8 @@ alias update='sudo apt-get update; sudo apt-get upgrade;' | |||
alias rn='ranger' | |||
alias nnn='nnn -xE' | |||
alias util-dropdown="st -c 'DROPDOWN_TERM' -e 'tmux' &" | |||
alias do-xbind='xbindkeys -f "$XDG_CONFIG_HOME"/xbindkeys/config' | |||
alias get-rndnum='head /dev/urandom | tr -dc A-Za-z0-9 | head -c 8' | |||
#Programming | |||
@@ -212,7 +214,7 @@ clean () { | |||
echo "Clean complete" | |||
} | |||
wall(){ | |||
firewall(){ | |||
if [ "$#" -gt "1" ] | |||
then | |||
echo "Too many arguments. There are $#." | |||
@@ -0,0 +1,431 @@ | |||
[global] | |||
### Display ### | |||
# Which monitor should the notifications be displayed on. | |||
monitor = 0 | |||
# Display notification on focused monitor. Possible modes are: | |||
# mouse: follow mouse pointer | |||
# keyboard: follow window with keyboard focus | |||
# none: don't follow anything | |||
# | |||
# "keyboard" needs a window manager that exports the | |||
# _NET_ACTIVE_WINDOW property. | |||
# This should be the case for almost all modern window managers. | |||
# | |||
# If this option is set to mouse or keyboard, the monitor option | |||
# will be ignored. | |||
follow = mouse | |||
# The geometry of the window: | |||
# [{width}]x{height}[+/-{x}+/-{y}] | |||
# The geometry of the message window. | |||
# The height is measured in number of notifications everything else | |||
# in pixels. If the width is omitted but the height is given | |||
# ("-geometry x2"), the message window expands over the whole screen | |||
# (dmenu-like). If width is 0, the window expands to the longest | |||
# message displayed. A positive x is measured from the left, a | |||
# negative from the right side of the screen. Y is measured from | |||
# the top and down respectively. | |||
# The width can be negative. In this case the actual width is the | |||
# screen width minus the width defined in within the geometry option. | |||
geometry = "300x5-30+20" | |||
# Show how many messages are currently hidden (because of geometry). | |||
indicate_hidden = yes | |||
# Shrink window if it's smaller than the width. Will be ignored if | |||
# width is 0. | |||
shrink = no | |||
# The transparency of the window. Range: [0; 100]. | |||
# This option will only work if a compositing window manager is | |||
# present (e.g. xcompmgr, compiz, etc.). | |||
transparency = 0 | |||
# The height of the entire notification. If the height is smaller | |||
# than the font height and padding combined, it will be raised | |||
# to the font height and padding. | |||
notification_height = 0 | |||
# Draw a line of "separator_height" pixel height between two | |||
# notifications. | |||
# Set to 0 to disable. | |||
separator_height = 2 | |||
# Padding between text and separator. | |||
padding = 8 | |||
# Horizontal padding. | |||
horizontal_padding = 8 | |||
# Defines width in pixels of frame around the notification window. | |||
# Set to 0 to disable. | |||
frame_width = 3 | |||
# Defines color of the frame around the notification window. | |||
frame_color = "#aaaaaa" | |||
# Define a color for the separator. | |||
# possible values are: | |||
# * auto: dunst tries to find a color fitting to the background; | |||
# * foreground: use the same color as the foreground; | |||
# * frame: use the same color as the frame; | |||
# * anything else will be interpreted as a X color. | |||
separator_color = frame | |||
# Sort messages by urgency. | |||
sort = yes | |||
# Don't remove messages, if the user is idle (no mouse or keyboard input) | |||
# for longer than idle_threshold seconds. | |||
# Set to 0 to disable. | |||
# A client can set the 'transient' hint to bypass this. See the rules | |||
# section for how to disable this if necessary | |||
idle_threshold = 120 | |||
### Text ### | |||
font = Monospace 8 | |||
# The spacing between lines. If the height is smaller than the | |||
# font height, it will get raised to the font height. | |||
line_height = 0 | |||
# Possible values are: | |||
# full: Allow a small subset of html markup in notifications: | |||
# <b>bold</b> | |||
# <i>italic</i> | |||
# <s>strikethrough</s> | |||
# <u>underline</u> | |||
# | |||
# For a complete reference see | |||
# <https://developer.gnome.org/pango/stable/pango-Markup.html>. | |||
# | |||
# strip: This setting is provided for compatibility with some broken | |||
# clients that send markup even though it's not enabled on the | |||
# server. Dunst will try to strip the markup but the parsing is | |||
# simplistic so using this option outside of matching rules for | |||
# specific applications *IS GREATLY DISCOURAGED*. | |||
# | |||
# no: Disable markup parsing, incoming notifications will be treated as | |||
# plain text. Dunst will not advertise that it has the body-markup | |||
# capability if this is set as a global setting. | |||
# | |||
# It's important to note that markup inside the format option will be parsed | |||
# regardless of what this is set to. | |||
markup = full | |||
# The format of the message. Possible variables are: | |||
# %a appname | |||
# %s summary | |||
# %b body | |||
# %i iconname (including its path) | |||
# %I iconname (without its path) | |||
# %p progress value if set ([ 0%] to [100%]) or nothing | |||
# %n progress value if set without any extra characters | |||
# %% Literal % | |||
# Markup is allowed | |||
format = "<b>%s</b>\n%b" | |||
# Alignment of message text. | |||
# Possible values are "left", "center" and "right". | |||
alignment = left | |||
# Vertical alignment of message text and icon. | |||
# Possible values are "top", "center" and "bottom". | |||
vertical_alignment = center | |||
# Show age of message if message is older than show_age_threshold | |||
# seconds. | |||
# Set to -1 to disable. | |||
show_age_threshold = 60 | |||
# Split notifications into multiple lines if they don't fit into | |||
# geometry. | |||
word_wrap = yes | |||
# When word_wrap is set to no, specify where to make an ellipsis in long lines. | |||
# Possible values are "start", "middle" and "end". | |||
ellipsize = middle | |||
# Ignore newlines '\n' in notifications. | |||
ignore_newline = no | |||
# Stack together notifications with the same content | |||
stack_duplicates = true | |||
# Hide the count of stacked notifications with the same content | |||
hide_duplicate_count = false | |||
# Display indicators for URLs (U) and actions (A). | |||
show_indicators = yes | |||
### Icons ### | |||
# Align icons left/right/off | |||
icon_position = left | |||
# Scale small icons up to this size, set to 0 to disable. Helpful | |||
# for e.g. small files or high-dpi screens. In case of conflict, | |||
# max_icon_size takes precedence over this. | |||
min_icon_size = 0 | |||
# Scale larger icons down to this size, set to 0 to disable | |||
max_icon_size = 32 | |||
# Paths to default icons. | |||
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ | |||
### History ### | |||
# Should a notification popped up from history be sticky or timeout | |||
# as if it would normally do. | |||
sticky_history = yes | |||
# Maximum amount of notifications kept in history | |||
history_length = 20 | |||
### Misc/Advanced ### | |||
# dmenu path. | |||
dmenu = /usr/bin/dmenu -p dunst: | |||
# Browser for opening urls in context menu. | |||
browser = /usr/bin/sensible-browser | |||
# Always run rule-defined scripts, even if the notification is suppressed | |||
always_run_script = true | |||
# Define the title of the windows spawned by dunst | |||
title = Dunst | |||
# Define the class of the windows spawned by dunst | |||
class = Dunst | |||
# Print a notification on startup. | |||
# This is mainly for error detection, since dbus (re-)starts dunst | |||
# automatically after a crash. | |||
startup_notification = false | |||
# Manage dunst's desire for talking | |||
# Can be one of the following values: | |||
# crit: Critical features. Dunst aborts | |||
# warn: Only non-fatal warnings | |||
# mesg: Important Messages | |||
# info: all unimportant stuff | |||
# debug: all less than unimportant stuff | |||
verbosity = mesg | |||
# Define the corner radius of the notification window | |||
# in pixel size. If the radius is 0, you have no rounded | |||
# corners. | |||
# The radius will be automatically lowered if it exceeds half of the | |||
# notification height to avoid clipping text and/or icons. | |||
corner_radius = 0 | |||
# Ignore the dbus closeNotification message. | |||
# Useful to enforce the timeout set by dunst configuration. Without this | |||
# parameter, an application may close the notification sent before the | |||
# user defined timeout. | |||
ignore_dbusclose = false | |||
### Legacy | |||
# Use the Xinerama extension instead of RandR for multi-monitor support. | |||
# This setting is provided for compatibility with older nVidia drivers that | |||
# do not support RandR and using it on systems that support RandR is highly | |||
# discouraged. | |||
# | |||
# By enabling this setting dunst will not be able to detect when a monitor | |||
# is connected or disconnected which might break follow mode if the screen | |||
# layout changes. | |||
force_xinerama = false | |||
### mouse | |||
# Defines list of actions for each mouse event | |||
# Possible values are: | |||
# * none: Don't do anything. | |||
# * do_action: If the notification has exactly one action, or one is marked as default, | |||
# invoke it. If there are multiple and no default, open the context menu. | |||
# * close_current: Close current notification. | |||
# * close_all: Close all notifications. | |||
# These values can be strung together for each mouse event, and | |||
# will be executed in sequence. | |||
mouse_left_click = close_current | |||
mouse_middle_click = do_action, close_current | |||
mouse_right_click = close_all | |||
# Experimental features that may or may not work correctly. Do not expect them | |||
# to have a consistent behaviour across releases. | |||
[experimental] | |||
# Calculate the dpi to use on a per-monitor basis. | |||
# If this setting is enabled the Xft.dpi value will be ignored and instead | |||
# dunst will attempt to calculate an appropriate dpi value for each monitor | |||
# using the resolution and physical size. This might be useful in setups | |||
# where there are multiple screens with very different dpi values. | |||
per_monitor_dpi = false | |||
[shortcuts] | |||
# Shortcuts are specified as [modifier+][modifier+]...key | |||
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2", | |||
# "mod3" and "mod4" (windows-key). | |||
# Xev might be helpful to find names for keys. | |||
# Close notification. | |||
close = ctrl+space | |||
# Close all notifications. | |||
close_all = ctrl+shift+space | |||
# Redisplay last message(s). | |||
# On the US keyboard layout "grave" is normally above TAB and left | |||
# of "1". Make sure this key actually exists on your keyboard layout, | |||
# e.g. check output of 'xmodmap -pke' | |||
history = ctrl+grave | |||
# Context menu. | |||
context = ctrl+shift+period | |||
[urgency_low] | |||
# IMPORTANT: colors have to be defined in quotation marks. | |||
# Otherwise the "#" and following would be interpreted as a comment. | |||
background = "#222222" | |||
foreground = "#888888" | |||
timeout = 10 | |||
# Icon for notifications with low urgency, uncomment to enable | |||
#icon = /path/to/icon | |||
[urgency_normal] | |||
background = "#285577" | |||
foreground = "#ffffff" | |||
timeout = 10 | |||
# Icon for notifications with normal urgency, uncomment to enable | |||
#icon = /path/to/icon | |||
[urgency_critical] | |||
background = "#900000" | |||
foreground = "#ffffff" | |||
frame_color = "#ff0000" | |||
timeout = 0 | |||
# Icon for notifications with critical urgency, uncomment to enable | |||
#icon = /path/to/icon | |||
# Every section that isn't one of the above is interpreted as a rules to | |||
# override settings for certain messages. | |||
# | |||
# Messages can be matched by | |||
# appname (discouraged, see desktop_entry) | |||
# body | |||
# category | |||
# desktop_entry | |||
# icon | |||
# match_transient | |||
# msg_urgency | |||
# stack_tag | |||
# summary | |||
# | |||
# and you can override the | |||
# background | |||
# foreground | |||
# format | |||
# frame_color | |||
# fullscreen | |||
# new_icon | |||
# set_stack_tag | |||
# set_transient | |||
# timeout | |||
# urgency | |||
# | |||
# Shell-like globbing will get expanded. | |||
# | |||
# Instead of the appname filter, it's recommended to use the desktop_entry filter. | |||
# GLib based applications export their desktop-entry name. In comparison to the appname, | |||
# the desktop-entry won't get localized. | |||
# | |||
# SCRIPTING | |||
# You can specify a script that gets run when the rule matches by | |||
# setting the "script" option. | |||
# The script will be called as follows: | |||
# script appname summary body icon urgency | |||
# where urgency can be "LOW", "NORMAL" or "CRITICAL". | |||
# | |||
# NOTE: if you don't want a notification to be displayed, set the format | |||
# to "". | |||
# NOTE: It might be helpful to run dunst -print in a terminal in order | |||
# to find fitting options for rules. | |||
# Disable the transient hint so that idle_threshold cannot be bypassed from the | |||
# client | |||
#[transient_disable] | |||
# match_transient = yes | |||
# set_transient = no | |||
# | |||
# Make the handling of transient notifications more strict by making them not | |||
# be placed in history. | |||
#[transient_history_ignore] | |||
# match_transient = yes | |||
# history_ignore = yes | |||
# fullscreen values | |||
# show: show the notifications, regardless if there is a fullscreen window opened | |||
# delay: displays the new notification, if there is no fullscreen window active | |||
# If the notification is already drawn, it won't get undrawn. | |||
# pushback: same as delay, but when switching into fullscreen, the notification will get | |||
# withdrawn from screen again and will get delayed like a new notification | |||
#[fullscreen_delay_everything] | |||
# fullscreen = delay | |||
#[fullscreen_show_critical] | |||
# msg_urgency = critical | |||
# fullscreen = show | |||
#[espeak] | |||
# summary = "*" | |||
# script = dunst_espeak.sh | |||
#[script-test] | |||
# summary = "*script*" | |||
# script = dunst_test.sh | |||
#[ignore] | |||
# # This notification will not be displayed | |||
# summary = "foobar" | |||
# format = "" | |||
#[history-ignore] | |||
# # This notification will not be saved in history | |||
# summary = "foobar" | |||
# history_ignore = yes | |||
#[skip-display] | |||
# # This notification will not be displayed, but will be included in the history | |||
# summary = "foobar" | |||
# skip_display = yes | |||
#[signed_on] | |||
# appname = Pidgin | |||
# summary = "*signed on*" | |||
# urgency = low | |||
# | |||
#[signed_off] | |||
# appname = Pidgin | |||
# summary = *signed off* | |||
# urgency = low | |||
# | |||
#[says] | |||
# appname = Pidgin | |||
# summary = *says* | |||
# urgency = critical | |||
# | |||
#[twitter] | |||
# appname = Pidgin | |||
# summary = *twitter.com* | |||
# urgency = normal | |||
# | |||
#[stack-volumes] | |||
# appname = "some_volume_notifiers" | |||
# set_stack_tag = "volume" | |||
# | |||
# vim: ft=cfg |
@@ -0,0 +1,408 @@ | |||
# An example configuration file for MPD. | |||
# Read the user manual for documentation: http://www.musicpd.org/doc/user/ | |||
# or /usr/share/doc/mpd/html/user.html | |||
# Files and directories ####################################################### | |||
# | |||
# This setting controls the top directory which MPD will search to discover the | |||
# available audio files and add them to the daemon's online database. This | |||
# setting defaults to the XDG directory, otherwise the music directory will be | |||
# be disabled and audio files will only be accepted over ipc socket (using | |||
# file:// protocol) or streaming files over an accepted protocol. | |||
# | |||
music_directory "/home/immanuel/Music" | |||
# | |||
# This setting sets the MPD internal playlist directory. The purpose of this | |||
# directory is storage for playlists created by MPD. The server will use | |||
# playlist files not created by the server but only if they are in the MPD | |||
# format. This setting defaults to playlist saving being disabled. | |||
# | |||
playlist_directory "/var/lib/mpd/playlists" | |||
# | |||
# This setting sets the location of the MPD database. This file is used to | |||
# load the database at server start up and store the database while the | |||
# server is not up. This setting defaults to disabled which will allow | |||
# MPD to accept files over ipc socket (using file:// protocol) or streaming | |||
# files over an accepted protocol. | |||
# | |||
db_file "/var/lib/mpd/tag_cache" | |||
# | |||
# These settings are the locations for the daemon log files for the daemon. | |||
# These logs are great for troubleshooting, depending on your log_level | |||
# settings. | |||
# | |||
# The special value "syslog" makes MPD use the local syslog daemon. This | |||
# setting defaults to logging to syslog, or to journal if mpd was started as | |||
# a systemd service. | |||
# | |||
log_file "/var/log/mpd/mpd.log" | |||
# | |||
# This setting sets the location of the file which stores the process ID | |||
# for use of mpd --kill and some init scripts. This setting is disabled by | |||
# default and the pid file will not be stored. | |||
# | |||
pid_file "/run/mpd/pid" | |||
# | |||
# This setting sets the location of the file which contains information about | |||
# most variables to get MPD back into the same general shape it was in before | |||
# it was brought down. This setting is disabled by default and the server | |||
# state will be reset on server start up. | |||
# | |||
state_file "/var/lib/mpd/state" | |||
# | |||
# The location of the sticker database. This is a database which | |||
# manages dynamic information attached to songs. | |||
# | |||
sticker_file "/var/lib/mpd/sticker.sql" | |||
# | |||
############################################################################### | |||
# General music daemon options ################################################ | |||
# | |||
# This setting specifies the user that MPD will run as. MPD should never run as | |||
# root and you may use this setting to make MPD change its user ID after | |||
# initialization. This setting is disabled by default and MPD is run as the | |||
# current user. | |||
# | |||
user "mpd" | |||
# | |||
# This setting specifies the group that MPD will run as. If not specified | |||
# primary group of user specified with "user" setting will be used (if set). | |||
# This is useful if MPD needs to be a member of group such as "audio" to | |||
# have permission to use sound card. | |||
# | |||
#group "nogroup" | |||
# | |||
# This setting sets the address for the daemon to listen on. Careful attention | |||
# should be paid if this is assigned to anything other then the default, any. | |||
# This setting can deny access to control of the daemon. Choose any if you want | |||
# to have mpd listen on every address. Not effective if systemd socket | |||
# activation is in use. | |||
# | |||
# For network | |||
bind_to_address "localhost" | |||
# | |||
# And for Unix Socket | |||
#bind_to_address "/run/mpd/socket" | |||
# | |||
# This setting is the TCP port that is desired for the daemon to get assigned | |||
# to. | |||
# | |||
port "6602" | |||
# | |||
# This setting controls the type of information which is logged. Available | |||
# setting arguments are "default", "secure" or "verbose". The "verbose" setting | |||
# argument is recommended for troubleshooting, though can quickly stretch | |||
# available resources on limited hardware storage. | |||
# | |||
#log_level "default" | |||
# | |||
# Setting "restore_paused" to "yes" puts MPD into pause mode instead | |||
# of starting playback after startup. | |||
# | |||
#restore_paused "no" | |||
# | |||
# This setting enables MPD to create playlists in a format usable by other | |||
# music players. | |||
# | |||
#save_absolute_paths_in_playlists "no" | |||
# | |||
# This setting defines a list of tag types that will be extracted during the | |||
# audio file discovery process. The complete list of possible values can be | |||
# found in the user manual. | |||
#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc" | |||
# | |||
# This example just enables the "comment" tag without disabling all | |||
# the other supported tags: | |||
#metadata_to_use "+comment" | |||
# | |||
# This setting enables automatic update of MPD's database when files in | |||
# music_directory are changed. | |||
# | |||
#auto_update "yes" | |||
# | |||
# Limit the depth of the directories being watched, 0 means only watch | |||
# the music directory itself. There is no limit by default. | |||
# | |||
#auto_update_depth "3" | |||
# | |||
############################################################################### | |||
# Symbolic link behavior ###################################################### | |||
# | |||
# If this setting is set to "yes", MPD will discover audio files by following | |||
# symbolic links outside of the configured music_directory. | |||
# | |||
#follow_outside_symlinks "yes" | |||
# | |||
# If this setting is set to "yes", MPD will discover audio files by following | |||
# symbolic links inside of the configured music_directory. | |||
# | |||
#follow_inside_symlinks "yes" | |||
# | |||
############################################################################### | |||
# Zeroconf / Avahi Service Discovery ########################################## | |||
# | |||
# If this setting is set to "yes", service information will be published with | |||
# Zeroconf / Avahi. | |||
# | |||
#zeroconf_enabled "yes" | |||
# | |||
# The argument to this setting will be the Zeroconf / Avahi unique name for | |||
# this MPD server on the network. %h will be replaced with the hostname. | |||
# | |||
#zeroconf_name "Music Player @ %h" | |||
# | |||
############################################################################### | |||
# Permissions ################################################################# | |||
# | |||
# If this setting is set, MPD will require password authorization. The password | |||
# setting can be specified multiple times for different password profiles. | |||
# | |||
#password "password@read,add,control,admin" | |||
# | |||
# This setting specifies the permissions a user has who has not yet logged in. | |||
# | |||
#default_permissions "read,add,control,admin" | |||
# | |||
############################################################################### | |||
# Database ####################################################################### | |||
# | |||
#database { | |||
# plugin "proxy" | |||
# host "other.mpd.host" | |||
# port "6600" | |||
#} | |||
# Input ####################################################################### | |||
# | |||
input { | |||
plugin "curl" | |||
# proxy "proxy.isp.com:8080" | |||
# proxy_user "user" | |||
# proxy_password "password" | |||
} | |||
# QOBUZ input plugin | |||
input { | |||
enabled "no" | |||
plugin "qobuz" | |||
# app_id "ID" | |||
# app_secret "SECRET" | |||
# username "USERNAME" | |||
# password "PASSWORD" | |||
# format_id "N" | |||
} | |||
# TIDAL input plugin | |||
input { | |||
enabled "no" | |||
plugin "tidal" | |||
# token "TOKEN" | |||
# username "USERNAME" | |||
# password "PASSWORD" | |||
# audioquality "Q" | |||
} | |||
# Decoder ##################################################################### | |||
# | |||
decoder { | |||
plugin "hybrid_dsd" | |||
enabled "no" | |||
# gapless "no" | |||
} | |||
# | |||
############################################################################### | |||
# Audio Output ################################################################ | |||
# | |||
# MPD supports various audio output types, as well as playing through multiple | |||
# audio outputs at the same time, through multiple audio_output settings | |||
# blocks. Setting this block is optional, though the server will only attempt | |||
# autodetection for one sound card. | |||
# | |||
# An example of an ALSA output: | |||
# | |||
audio_output { | |||
type "alsa" | |||
name "My ALSA Device" | |||
# device "hw:0,0" # optional | |||
# mixer_type "hardware" # optional | |||
# mixer_device "default" # optional | |||
# mixer_control "PCM" # optional | |||
# mixer_index "0" # optional | |||
} | |||
# | |||
# An example of an OSS output: | |||
# | |||
#audio_output { | |||
# type "oss" | |||
# name "My OSS Device" | |||
# device "/dev/dsp" # optional | |||
# mixer_type "hardware" # optional | |||
# mixer_device "/dev/mixer" # optional | |||
# mixer_control "PCM" # optional | |||
#} | |||
# | |||
# An example of a shout output (for streaming to Icecast): | |||
# | |||
#audio_output { | |||
# type "shout" | |||
# encoder "vorbis" # optional | |||
# name "My Shout Stream" | |||
# host "localhost" | |||
# port "8000" | |||
# mount "/mpd.ogg" | |||
# password "hackme" | |||
# quality "5.0" | |||
# bitrate "128" | |||
# format "44100:16:1" | |||
# protocol "icecast2" # optional | |||
# user "source" # optional | |||
# description "My Stream Description" # optional | |||
# url "http://example.com" # optional | |||
# genre "jazz" # optional | |||
# public "no" # optional | |||
# timeout "2" # optional | |||
# mixer_type "software" # optional | |||
#} | |||
# | |||
# An example of a recorder output: | |||
# | |||
#audio_output { | |||
# type "recorder" | |||
# name "My recorder" | |||
# encoder "vorbis" # optional, vorbis or lame | |||
# path "/var/lib/mpd/recorder/mpd.ogg" | |||
## quality "5.0" # do not define if bitrate is defined | |||
# bitrate "128" # do not define if quality is defined | |||
# format "44100:16:1" | |||
#} | |||
# | |||
# An example of a httpd output (built-in HTTP streaming server): | |||
# | |||
#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 | |||
#} | |||
# | |||
# An example of a pulseaudio output (streaming to a remote pulseaudio server) | |||
# Please see README.Debian if you want mpd to play through the pulseaudio | |||
# daemon started as part of your graphical desktop session! | |||
# | |||
#audio_output { | |||
# type "pulse" | |||
# name "My Pulse Output" | |||
# server "remote_server" # optional | |||
# sink "remote_server_sink" # optional | |||
#} | |||
# | |||
# An example of a winmm output (Windows multimedia API). | |||
# | |||
#audio_output { | |||
# type "winmm" | |||
# name "My WinMM output" | |||
# device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional | |||
# or | |||
# device "0" # optional | |||
# mixer_type "hardware" # optional | |||
#} | |||
# | |||
# An example of an openal output. | |||
# | |||
#audio_output { | |||
# type "openal" | |||
# name "My OpenAL output" | |||
# device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional | |||
#} | |||
# | |||
## Example "pipe" output: | |||
# | |||
#audio_output { | |||
# type "pipe" | |||
# name "my pipe" | |||
# command "aplay -f cd 2>/dev/null" | |||
## Or if you're want to use AudioCompress | |||
# command "AudioCompress -m | aplay -f cd 2>/dev/null" | |||
## Or to send raw PCM stream through PCM: | |||
# command "nc example.org 8765" | |||
# format "44100:16:2" | |||
#} | |||
# | |||
## An example of a null output (for no audio output): | |||
# | |||
#audio_output { | |||
# type "null" | |||
# name "My Null Output" | |||
# mixer_type "none" # optional | |||
#} | |||
# | |||
############################################################################### | |||
# Normalization automatic volume adjustments ################################## | |||
# | |||
# This setting specifies the type of ReplayGain to use. This setting can have | |||
# the argument "off", "album", "track" or "auto". "auto" is a special mode that | |||
# chooses between "track" and "album" depending on the current state of | |||
# random playback. If random playback is enabled then "track" mode is used. | |||
# See <http://www.replaygain.org> for more details about ReplayGain. | |||
# This setting is off by default. | |||
# | |||
#replaygain "album" | |||
# | |||
# This setting sets the pre-amp used for files that have ReplayGain tags. By | |||
# default this setting is disabled. | |||
# | |||
#replaygain_preamp "0" | |||
# | |||
# This setting sets the pre-amp used for files that do NOT have ReplayGain tags. | |||
# By default this setting is disabled. | |||
# | |||
#replaygain_missing_preamp "0" | |||
# | |||
# This setting enables or disables ReplayGain limiting. | |||
# MPD calculates actual amplification based on the ReplayGain tags | |||
# and replaygain_preamp / replaygain_missing_preamp setting. | |||
# If replaygain_limit is enabled MPD will never amplify audio signal | |||
# above its original level. If replaygain_limit is disabled such amplification | |||
# might occur. By default this setting is enabled. | |||
# | |||
#replaygain_limit "yes" | |||
# | |||
# This setting enables on-the-fly normalization volume adjustment. This will | |||
# result in the volume of all playing audio to be adjusted so the output has | |||
# equal "loudness". This setting is disabled by default. | |||
# | |||
#volume_normalization "no" | |||
# | |||
############################################################################### | |||
# Character Encoding ########################################################## | |||
# | |||
# If file or directory names do not display correctly for your locale then you | |||
# may need to modify this setting. | |||
# | |||
filesystem_charset "UTF-8" | |||
# | |||
############################################################################### |
@@ -0,0 +1,590 @@ | |||
############################################################## | |||
## 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 "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 "ctrl-d" | |||
delete_playlist_items | |||
def_key "tab" | |||
next_screen | |||
def_key "shift-tab" | |||
previous_screen | |||
def_key "l" | |||
next_column | |||
def_key "l" | |||
slave_screen | |||
def_key "l" | |||
volume_up | |||
def_key "+" | |||
volume_up | |||
def_key "h" | |||
previous_column | |||
def_key "h" | |||
master_screen | |||
def_key "h" | |||
volume_down | |||
def_key "n" | |||
next_found_item | |||
def_key "N" | |||
previous_found_item | |||
def_key "J" | |||
move_sort_order_down | |||
def_key "K" | |||
move_sort_order_up | |||
def_key "j" | |||
scroll_down | |||
def_key "k" | |||
scroll_up |
@@ -0,0 +1,6 @@ | |||
visualizer_fifo_path = "/tmp/mpd.fifo" | |||
visualizer_output_name = "visualizer_fifo" | |||
visualizer_sync_interval = "30" | |||
visualizer_in_stereo = "yes" | |||
visualizer_type = "spectrum" | |||
visualizer_look = "+|" |
@@ -1,15 +0,0 @@ | |||
# Increase volume | |||
"pactl set-sink-volume @DEFAULT_SINK@ +2000" | |||
XF86AudioRaiseVolume | |||
# Decrease volume | |||
"pactl set-sink-volume @DEFAULT_SINK@ -2000" | |||
XF86AudioLowerVolume | |||
# Mute volume | |||
"pactl set-sink-mute @DEFAULT_SINK@ toggle" | |||
XF86AudioMute | |||
# Mute microphone | |||
"pactl set-source-mute @DEFAULT_SOURCE@ toggle" | |||
XF86AudioMicMute |
@@ -1,15 +1,21 @@ | |||
# Increase volume | |||
"pactl set-sink-volume @DEFAULT_SINK@ +2000" | |||
XF86AudioRaiseVolume | |||
Mod4 + F12 | |||
# Decrease volume | |||
"pactl set-sink-volume @DEFAULT_SINK@ -2000" | |||
XF86AudioLowerVolume | |||
Mod4 + F12 | |||
# Mute volume | |||
"pactl set-sink-mute @DEFAULT_SINK@ toggle" | |||
XF86AudioMute | |||
Mod4 + F10 | |||
# Mute microphone | |||
"pactl set-source-mute @DEFAULT_SOURCE@ toggle" | |||
XF86AudioMicMute | |||
Mod4 + F9 | |||
"app-launch" | |||
Mod4 + g | |||
"do-action" | |||
Mod4 + e |