commit 00cfba2e583eb80758a2f53cecb05da6d1e8c817 Author: Ryan Kes Date: Tue Mar 19 16:26:55 2019 +0100 initial import diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..d53ed8d --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,22 @@ +The MIT License (MIT) +===================== + +Copyright (c) `2016` `Ryan Kes` + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..2e77bd3 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +# Legacy Dotfiles + +Old dotfiles that I don't use anymore + +# License + +This theme is released under the MIT License. For more information read the [license][license]. + +[license]: https://github.com/alrayyes/legacy-dotfiles/blob/master/LICENSE.md diff --git a/i3/.Xresources.desktop b/i3/.Xresources.desktop new file mode 100644 index 0000000..8afabd0 --- /dev/null +++ b/i3/.Xresources.desktop @@ -0,0 +1,8 @@ +!------------------------------------------------------------------------------- +! Xft settings +!------------------------------------------------------------------------------- + +Xft.antialias: false +Xft.rgba: rgb +Xft.hinting: true +Xft.hintstyle: hintslight diff --git a/i3/.Xresources.thinkpad b/i3/.Xresources.thinkpad new file mode 100644 index 0000000..34e2b28 --- /dev/null +++ b/i3/.Xresources.thinkpad @@ -0,0 +1,9 @@ +!------------------------------------------------------------------------------- +! Xft settings +!------------------------------------------------------------------------------- + +Xft.dpi: 160 +Xft.antialias: false +Xft.rgba: rgb +Xft.hinting: true +Xft.hintstyle: hintslight diff --git a/i3/.config/i3/config.desktop b/i3/.config/i3/config.desktop new file mode 100644 index 0000000..e9b5728 --- /dev/null +++ b/i3/.config/i3/config.desktop @@ -0,0 +1,218 @@ +# vim: filetype=i3 + +# #---Basic Definitions ---# # +# i3-gaps +hide_edge_borders both +for_window [class="^.*"] border pixel 3 +gaps inner 5 +gaps outer 5 +font pango:DejaVuSansMonoForPowerline Nerd Font 8 +set $mod Mod4 + +# #---Start External Scripts---# # +# Align monitors +exec_always --no-startup-id xrandr --newmode "2560x1440_40" 201.00 2560 2720 2984 3408 1440 1443 1448 1476 -hsync +vsync && xrandr --addmode HDMI-2 2560x1440_40 && xrandr --output DP-1 --mode 3840x2160 --primary --output HDMI-2 --mode 2560x1440_40 --left-of DP-1 --rotate left + +# Polybar +exec_always --no-startup-id $HOME/.config/polybar/launch-desktop.sh +# Composite manager +exec --no-startup-id compton --xrender-sync-fence +# Makes mouse invisible after a brief period +exec --no-startup-id unclutter +# Applet to control pulseaudio +exec --no-startup-id pasystray +# Network manager applet +exec --no-startup-id nm-applet +# Redhift for better sleep +exec --no-startup-id redshift-gtk +# Syncthing +exec --no-startup-id syncthing-gtk -m +# Wallpaper +exec nitrogen --restore +# Notification +exec_always --no-startup-id dunst + +## --- Start Apps ---# # +# Browser +exec iceweasel +exec slack +exec i3-sensible-terminal -c weechat -e weechat +exec i3-sensible-terminal -c mutt -e neomutt +exec spotify +exec gpodder + +# #---Basic Bindings---# # +bindsym $mod+Return exec i3-sensible-terminal +bindsym $mod+shift+Return exec i3-sensible-terminal -e tmux + +bindsym $mod+Shift+space floating toggle +bindsym $mod+space focus mode_toggle + +bindsym $mod+Escape workspace prev +bindsym $mod+Shift+e exec i3-msg exit + +bindsym $mod+Shift+BackSpace exec sudo reboot + +bindsym $mod+Shift+q kill + +# change focus +bindsym $mod+j focus left +bindsym $mod+k focus down +bindsym $mod+l focus up +bindsym $mod+semicolon focus right + +# alternatively, you can use the cursor keys: +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# move focused window +bindsym $mod+Shift+j move left +bindsym $mod+Shift+k move down +bindsym $mod+Shift+l move up +bindsym $mod+Shift+semicolon move right + +# alternatively, you can use the cursor keys: +bindsym $mod+Shift+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up +bindsym $mod+Shift+Right move right + +# split in horizontal orientation +bindsym $mod+h split h + +# split in vertical orientation +bindsym $mod+v split v + +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen toggle + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + +# reload the configuration file +bindsym $mod+Shift+c reload +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+Shift+r restart + + +# my keybindings +bindsym $mod+u [instance="dropdown"] scratchpad show +bindsym $mod+d exec rofi -show +bindsym $mod+p exec rofi-pass -show +bindsym Control+$mod+l exec i3lock-fancy + +# Screenshots +bindsym Print exec --no-startup-id scrot -e 'mv $f ~/Pictures/Screenshots/' +bindsym Shift+Print exec --no-startup-id scrot -u -e 'mv $f ~/Pictures/Screenshots/' + +# #---Workspace Bindings--# # + +# name workspaces +set $workspace1 "1" +set $workspace2 "2" +set $workspace3 "3" +set $workspace4 "4" +set $workspace5 "5" +set $workspace6 "6" +set $workspace7 "7" +set $workspace8 "8" +set $workspace9 "9" +set $workspace10 "10" + +# switch to workspace +bindsym $mod+1 workspace $workspace1 +bindsym $mod+2 workspace $workspace2 +bindsym $mod+3 workspace $workspace3 +bindsym $mod+4 workspace $workspace4 +bindsym $mod+5 workspace $workspace5 +bindsym $mod+6 workspace $workspace6 +bindsym $mod+7 workspace $workspace7 +bindsym $mod+8 workspace $workspace8 +bindsym $mod+9 workspace $workspace9 +bindsym $mod+0 workspace $workspace10 + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace $workspace1 +bindsym $mod+Shift+2 move container to workspace $workspace2 +bindsym $mod+Shift+3 move container to workspace $workspace3 +bindsym $mod+Shift+4 move container to workspace $workspace4 +bindsym $mod+Shift+5 move container to workspace $workspace5 +bindsym $mod+Shift+6 move container to workspace $workspace6 +bindsym $mod+Shift+7 move container to workspace $workspace7 +bindsym $mod+Shift+8 move container to workspace $workspace8 +bindsym $mod+Shift+9 move container to workspace $workspace9 +bindsym $mod+Shift+0 move container to workspace $workspace10 + +workspace $workspace1 output DP-1 +workspace $workspace2 output DP-1 +workspace $workspace3 output DP-1 +workspace $workspace4 output DP-1 +workspace $workspace5 output DP-1 +workspace $workspace6 output DP-1 +workspace $workspace7 output HDMI-2 +workspace $workspace8 output DP-1 +workspace $workspace9 output DP-1 +workspace $workspace0 output DP-1 + +# enable floating for apps +for_window [title="Screen Layout Editor"] floating enable +for_window [window_role="gimp-dock"] floating disable; move left; resize shrink width 50 px or 50ppt +for_window [window_role="gimp-toolbox"] floating disable; move right; resize grow width 30 px or 30ppt +for_window [title="PulseAudio Manager"] floating enable +for_window [title="PulseAudio Volume Meter"] floating enable +for_window [title="Volume Control"] floating enable +for_window [title="Toggl Desktop"] floating enable +for_window [title="Syncthing"] floating enable for_window [title="QtPass"] floating enable + +# make sure all apps start where they're supposed to +assign [class="Google-chrome"] $workspace2 +assign [class="Iceweasel"] $workspace2 +assign [class="Gpodder"] $workspace4 +assign [class="ncmpcpp"] $workspace4 +for_window [class="Spotify"] move to workspace $workspace4 +assign [class="Slack"] $workspace7 +assign [class="weechat"] $workspace7 +assign [class="retroarch"] $workspace8 +assign [class="mutt"] $workspace6 + +# First I have a tmux window used for background scripts. +# I'll later bind this to mod+u. +for_window [instance="dropdown"] floating enable +for_window [instance="dropdown"] resize set 625 400 +for_window [instance="dropdown"] move scratchpad +for_window [instance="dropdown"] border pixel 5 +# Runs the tmuxinit script, which searches for an earlier tmux instance, +# otherwise starts a new one (to prevent multiple dropdown sessions). +exec --no-startup-id $term -n dropdown -e tmux +# Runs neofetch on first tmux screen if installed. +exec_always --no-startup-id "tmux send-keys -t 0:0 'clear && neofetch 2>/dev/null' Enter" + +floating_modifier $mod + +# resize window (you can also use the mouse for that) +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + + # Pressing left will shrink the window’s width. + # Pressing right will grow the window’s width. + # Pressing up will shrink the window’s height. + # Pressing down will grow the window’s height. + bindsym j resize shrink width 10 px or 10 ppt + bindsym k resize grow height 10 px or 10 ppt + bindsym l resize shrink height 10 px or 10 ppt + bindsym semicolon resize grow width 10 px or 10 ppt + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} bindsym $mod+r mode "resize" diff --git a/i3/.config/i3/config.thinkpad b/i3/.config/i3/config.thinkpad new file mode 100644 index 0000000..5d6b4f8 --- /dev/null +++ b/i3/.config/i3/config.thinkpad @@ -0,0 +1,217 @@ +# vim: filetype=i3 + +# #---Basic Definitions ---# # +# i3-gaps +hide_edge_borders both +for_window [class="^.*"] border pixel 0 +gaps inner 5 +gaps outer 5 +font pango:DejaVuSansMonoForPowerline Nerd Font 8 +set $mod Mod4 + +# #---Start External Scripts---# # +# Align monitors +exec_always --no-startup-id xrandr --dpi 150 +# Polybar +exec_always --no-startup-id $HOME/.config/polybar/launch-laptop.sh +# Composite manager +exec --no-startup-id compton --xrender-sync-fence +# Wallpaper +exec_always --no-startup-id feh --bg-scale ~/.config/wall.png +# Makes mouse invisible after a brief period +exec --no-startup-id unclutter +# Applet to control pulseaudio +exec --no-startup-id pasystray +# Network manager applet +exec --no-startup-id nm-applet +# Redhift for better sleep +exec --no-startup-id redshift-gtk +# Syncthing +exec --no-startup-id syncthing-gtk -m +# Notification +exec_always --no-startup-id dunst + +## --- Start Apps ---# # +# Browser +exec firefox +exec slack +exec i3-sensible-terminal -c weechat -e weechat +exec i3-sensible-terminal -c mutt -e neomutt +exec spotify +exec gpodder + +# #---Basic Bindings---# # +bindsym $mod+Return exec i3-sensible-terminal +bindsym $mod+shift+Return exec i3-sensible-terminal -e tmux + +bindsym $mod+Shift+space floating toggle +bindsym $mod+space focus mode_toggle + +bindsym $mod+Escape workspace prev +bindsym $mod+Shift+e exec i3-msg exit + +bindsym $mod+Shift+BackSpace exec sudo reboot + +bindsym $mod+Shift+q kill + +# change focus +bindsym $mod+j focus left +bindsym $mod+k focus down +bindsym $mod+l focus up +bindsym $mod+semicolon focus right + +# alternatively, you can use the cursor keys: +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# move focused window +bindsym $mod+Shift+j move left +bindsym $mod+Shift+k move down +bindsym $mod+Shift+l move up +bindsym $mod+Shift+semicolon move right + +# alternatively, you can use the cursor keys: +bindsym $mod+Shift+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up +bindsym $mod+Shift+Right move right + +# split in horizontal orientation +bindsym $mod+h split h + +# split in vertical orientation +bindsym $mod+v split v + +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen toggle + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + +# reload the configuration file +bindsym $mod+Shift+c reload +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+Shift+r restart + + +# my keybindings +bindsym $mod+u [instance="dropdown"] scratchpad show +bindsym $mod+d exec rofi -show +bindsym $mod+p exec rofi-pass -show +bindsym Control+$mod+l exec i3lock-fancy + +# Screenshots +bindsym Print exec --no-startup-id scrot -e 'mv $f ~/Pictures/Screenshots/' +bindsym Shift+Print exec --no-startup-id scrot -u -e 'mv $f ~/Pictures/Screenshots/' + +# Pulse Audio controls +bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% #increase sound volume +bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% #decrease sound volume +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle # mute sound + +# Sreen brightness controls +bindsym XF86MonBrightnessUp exec xbacklight -inc 20 # increase screen brightness +bindsym XF86MonBrightnessDown exec xbacklight -dec 20 # decrease screen brightness + +# #---Workspace Bindings--# # + +# name workspaces +set $workspace1 "1" +set $workspace2 "2" +set $workspace3 "3" +set $workspace4 "4" +set $workspace5 "5" +set $workspace6 "6" +set $workspace7 "7" +set $workspace8 "8" +set $workspace9 "9" +set $workspace10 "10" + +# switch to workspace +bindsym $mod+1 workspace $workspace1 +bindsym $mod+2 workspace $workspace2 +bindsym $mod+3 workspace $workspace3 +bindsym $mod+4 workspace $workspace4 +bindsym $mod+5 workspace $workspace5 +bindsym $mod+6 workspace $workspace6 +bindsym $mod+7 workspace $workspace7 +bindsym $mod+8 workspace $workspace8 +bindsym $mod+9 workspace $workspace9 +bindsym $mod+0 workspace $workspace10 + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace $workspace1 +bindsym $mod+Shift+2 move container to workspace $workspace2 +bindsym $mod+Shift+3 move container to workspace $workspace3 +bindsym $mod+Shift+4 move container to workspace $workspace4 +bindsym $mod+Shift+5 move container to workspace $workspace5 +bindsym $mod+Shift+6 move container to workspace $workspace6 +bindsym $mod+Shift+7 move container to workspace $workspace7 +bindsym $mod+Shift+8 move container to workspace $workspace8 +bindsym $mod+Shift+9 move container to workspace $workspace9 +bindsym $mod+Shift+0 move container to workspace $workspace10 + +workspace $workspace8 output HDMI2 + +# enable floating for apps +for_window [title="Screen Layout Editor"] floating enable +for_window [window_role="gimp-dock"] floating disable; move left; resize shrink width 50 px or 50ppt +for_window [window_role="gimp-toolbox"] floating disable; move right; resize grow width 30 px or 30ppt +for_window [title="PulseAudio Manager"] floating enable +for_window [title="PulseAudio Volume Meter"] floating enable +for_window [title="Volume Control"] floating enable +for_window [title="Toggl Desktop"] floating enable +for_window [title="Syncthing"] floating enable for_window [title="QtPass"] floating enable + +# make sure all apps start where they're supposed to +assign [class="Google-chrome"] $workspace2 +assign [class="Firefox"] $workspace2 +assign [class="Gpodder"] $workspace4 +assign [class="ncmpcpp"] $workspace4 +for_window [class="Spotify"] move to workspace $workspace4 +assign [class="Slack"] $workspace7 +assign [class="weechat"] $workspace7 +assign [class="retroarch"] $workspace8 +assign [class="mutt"] $workspace6 + +# First I have a tmux window used for background scripts. +# I'll later bind this to mod+u. +for_window [instance="dropdown"] floating enable +for_window [instance="dropdown"] resize set 625 400 +for_window [instance="dropdown"] move scratchpad +for_window [instance="dropdown"] border pixel 5 +# Runs the tmuxinit script, which searches for an earlier tmux instance, +# otherwise starts a new one (to prevent multiple dropdown sessions). +exec --no-startup-id $term -n dropdown -e tmux +# Runs neofetch on first tmux screen if installed. +exec_always --no-startup-id "tmux send-keys -t 0:0 'clear && neofetch 2>/dev/null' Enter" + +floating_modifier $mod + +# resize window (you can also use the mouse for that) +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + + # Pressing left will shrink the window’s width. + # Pressing right will grow the window’s width. + # Pressing up will shrink the window’s height. + # Pressing down will grow the window’s height. + bindsym j resize shrink width 10 px or 10 ppt + bindsym k resize grow height 10 px or 10 ppt + bindsym l resize shrink height 10 px or 10 ppt + bindsym semicolon resize grow width 10 px or 10 ppt + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} bindsym $mod+r mode "resize" diff --git a/moc/.moc/config b/moc/.moc/config new file mode 100644 index 0000000..a5231eb --- /dev/null +++ b/moc/.moc/config @@ -0,0 +1,690 @@ +# This is a configuration file for the MOC player. It should be named +# 'config' and placed in the ~/.moc directory. As this file can specify +# commands which invoke other applications, MOC will refuse to start if it +# is not owned by either root or the current user, or if it is writable by +# anyone other than its owner. All options are given with their default +# values, and therefore commented. + +# Comments begin with '#'. +# You can use quotes and escape ('\') in parameters. +# +# You can have variable values substituted by enclosing the variable name +# as "${...}". (This only applies to the portion of the option following +# the '='.) Variables are substituted first from the environment then, +# if not found, from the configuration options. (Note that the value of +# a configuration option substituted is that which it has at the time the +# substitution variable is encountered.) If there is a naming conflict +# between an environment and configuration variable, you may be able to +# resolve it by using lowercase as the environment variable matches are +# case-sensitive whereas the configuration variables are not. +# +# You can also use the form "${...:-...}" where the value in the second +# position will be substituted if the variable name given in the first +# position is unset or null. +# +# So, for example: +# +# MusicDir = /music/${USER:-public} +# Fastdir1 = ${MusicDir}/mp3/rock +# Fastdir2 = ${MusicDir}/mp3/electronic +# Fastdir3 = ${MusicDir}/mp3/rap +# Fastdir4 = ${MusicDir}/mp3/etc +# +# Variable names are limited to those accepted by the BASH shell; that +# is, those comprising the upper- and lowercase ASCII characters, digits +# and the underscore. +# +# If you need to use the "${" sequence for any other purpose, write "$${" +# and it will be replaced by "${" and not treated as a substitution. +# +# Some options take lists of strings as their values. The strings are +# separated by colons. Additional strings can be appended to the list +# using "+=" in place of a plain "=" to assign the value. For an example, +# see the XTerms option. +# +# You can override any configuration option when you run MOC using the +# '-O' command line option: +# +# mocp -O AutoNext=no -O messagelingertime=1 -O XTerms+=xxt:xwt +# +# This command line option can be repeated as many times as needed and +# the configuration option name is not case sensitive. (Note that MOC +# does not perform variable substitution on the value of such overridden +# configuration options.) Most option values are set before the +# configuration file is processed (which allows the new values to be +# picked up by substitutions), however list-valued options are overridden +# afterwards (which gives the choice of whether the configured values are +# replaced or added to). + +# Remember that the client and server are separate processes and the +# server will retain the configuration values formed from the environment +# within which it was originally started. + +# Show file titles (title, author, album) instead of file names? +#ReadTags = yes + +# In which directory do you store your music files? If you specify it +# you will be able to jump straight to this directory with the '-m' +# parameter or the 'm' command. This can also point to a playlist. +# +# Example: MusicDir = "/home/joe/music" +# +MusicDir = "~/music" + +# Start in the music directory by default? If set to 'no', start +# in the current directory by default. A single directory on +# the command line takes precedence. +#StartInMusicDir = yes + +# How to sort? FileName is the option's only value for now. +#Sort = FileName + +# Show errors in the streams (for example, broken frames in MP3 files)? +#ShowStreamErrors = no + +# Ignore CRC errors in MP3 files? Most players do that, so the default +# value is 'yes'. +#MP3IgnoreCRCErrors = yes + +# Set playback toggles. +#Repeat = no +#Shuffle = no +#AutoNext = yes + +# Default FormatString: +# +# %n - Track number +# %a - Artist +# %A - Album +# %t - Title +# %(X:TRUE:FALSE) - Ternary expression: if X exists, do TRUE, +# otherwise FALSE. The escape character must +# be doubled (i.e., '\\'). (See zshmisc +# documentation for more information.) +# +#FormatString = "%(n:%n :)%(a:%a - :)%(t:%t:)%(A: \(%A\):)" + +# Input and output buffer sizes (in kilobytes). +#InputBuffer = 512 # Minimum value is 32KB +#OutputBuffer = 512 # Minimum value is 128KB + +# How much to fill the input buffer before playing (in kilobytes)? +# This can't be greater than the value of InputBuffer. While this has +# a positive effect for network streams, it also causes the broadcast +# audio to be delayed. +#Prebuffering = 64 + +# Use this HTTP proxy server for internet streams. If not set, the +# environment variables http_proxy and ALL_PROXY will be used if present. +# +# Format: HTTPProxy = PROXY_NAME:PORT +# +#HTTPProxy = + +# Sound driver - OSS, ALSA, JACK, SNDIO (on OpenBSD) or null (only for +# debugging). You can enter more than one driver as a colon-separated +# list. The first working driver will be used. +#SoundDriver = JACK:ALSA:OSS + +# Jack output settings. +#JackClientName = "moc" +#JackStartServer = no +#JackOutLeft = "system:playback_1" +#JackOutRight = "system:playback_2" + +# OSS output settings. +#OSSDevice = /dev/dsp +#OSSMixerDevice = /dev/mixer +#OSSMixerChannel1 = pcm # 'pcm', 'master' or 'speaker' +#OSSMixerChannel2 = master # 'pcm', 'master' or 'speaker' + +# ALSA output settings. If you need to dump the audio produced by MOC +# to a file for diagnostic purposes, the following setting of 'ALSADevice' +# should do that: +# +# ALSADevice=tee:hw,'/tmp/out.wav',wav +# +#ALSADevice = default +#ALSAMixer1 = PCM +#ALSAMixer2 = Master + +# Under some circumstances on 32-bit systems, audio played continously +# for long periods of time may begin to stutter. Setting this option to +# 'yes' will force MOC to avoid ALSA's dmix resampling and prevent this +# stutter. But it also has other implications: +# +# - You may experience unacceptably high CPU load. +# - ALSA's resampler plug-ins will not be used. +# - The resampling may be of lower quality than ALSA would provide. +# - You may need to try different "ResampleMethod" option settings. +# - The "ForceSampleRate" option may be ineffective. +# - If libsamplerate is not configured, many audios may be unplayable. +# +#ALSAStutterDefeat = no + +# Save software mixer state? +# If enabled, a file 'softmixer' will be created in '~/.moc/' storing the +# mixersetting set when the server is shut down. +# Note that there is a "hidden" 'Amplification' setting in that file. +# Amplification (0-200) is used to scale the mixer setting (0-100). This +# results in a higher signal amplitude but may also produce clipping. +#Softmixer_SaveState = yes + +# Save equalizer state? +# If enabled, a file 'equalizer' will be created in '~/.moc/' storing the +# equalizer settings when the server is shut down. +# Note that there is a "hidden" 'Mixin' setting in that file. +# Mixin (0.0-1.0) is used to determine how much of the original signal is +# used after equalizing. 0 means to only use the equalized sound, while 1 +# effectively disabled the mixer. The default is 0.25. +#Equalizer_SaveState = yes + +# Show files with dot at the beginning? +#ShowHiddenFiles = no + +# Hide file name extensions? +#HideFileExtension = no + +# Show file format in menu? +#ShowFormat = yes + +# Show file time in menu? Possible values: 'yes', 'no' and 'IfAvailable' +# (meaning show the time only when it is already known, which often works +# faster). +#ShowTime = IfAvailable + +# Show time played as a percentage in the time progress bar. +#ShowTimePercent = no + +# Values of the TERM environment variable which are deemed to be managed by +# screen(1). If you are setting a specific terminal using screen(1)'s +# '-T ' option, then you will need to add 'screen.' to this list. +# Note that this is only a partial test; the value of the WINDOW environment +# variable must also be a number (which screen(1) sets). +#ScreenTerms = screen:screen-w:vt100 + +# Values of the TERM environment variable which are deemed to be xterms. If +# you are using MOC within screen(1) under an xterm, then add screen(1)'s +# TERM setting here as well to cause MOC to update the xterm's title. +#XTerms = xterm +#XTerms += xterm-colour:xterm-color +#XTerms += xterm-256colour:xterm-256color +#XTerms += rxvt:rxvt-unicode +#XTerms += rxvt-unicode-256colour:rxvt-unicode-256color +#XTerms += eterm + +# Theme file to use. This can be absolute path or relative to +# /usr/share/moc/themes/ (depends on installation prefix) or +# ~/.moc/themes/ . +# +# Example: Theme = laras_theme +# +Theme = solarized + +# The theme used when running on an xterm. +# +# Example: XTermTheme = transparent-background +# +#XTermTheme = + +# Should MOC try to autoload the default lyrics file for an audio? (The +# default lyrics file is a text file with the same file name as the audio +# file name with any trailing "extension" removed.) +#AutoLoadLyrics = yes + +# MOC directory (where pid file, socket and state files are stored). +# You can use ~ at the beginning. +#MOCDir = ~/.moc + +# Use mmap() to read files. mmap() is much slower on NFS. +#UseMMap = no + +# Use MIME to identify audio files. This can make for slower loading +# of playlists but is more accurate than using "extensions". +#UseMimeMagic = no + +# Assume this encoding for ID3 version 1/1.1 tags (MP3 files). Unlike +# ID3v2, UTF-8 is not used here and MOC can't guess how tags are encoded. +# Another solution is using librcc (see the next option). This option is +# ignored if UseRCC is set to 'yes'. +#ID3v1TagsEncoding = WINDOWS-1250 + +# Use librcc to fix ID3 version 1/1.1 tags encoding. +#UseRCC = yes + +# Use librcc to filenames and directory names encoding. +#UseRCCForFilesystem = yes + +# When this option is set the player assumes that if the encoding of +# ID3v2 is set to ISO-8859-1 then the ID3v1TagsEncoding is actually +# that and applies appropriate conversion. +#EnforceTagsEncoding = no + +# Enable the conversion of filenames from the local encoding to UTF-8. +#FileNamesIconv = no + +# Enable the conversion of the xterm title from UTF-8 to the local encoding. +#NonUTFXterm = no + +# Should MOC precache files to assist gapless playback? +#Precache = yes + +# Remember the playlist after exit? +#SavePlaylist = yes + +# When using more than one client (interface) at a time, do they share +# the playlist? +#SyncPlaylist = yes + +# Choose a keymap file (relative to '~/.moc/' or using an absolute path). +# An annotated example keymap file is included ('keymap.example'). +# +# Example: Keymap = my_keymap +# +Keymap = keymap + +# Use ASCII rather than graphic characters for drawing lines. This +# helps on some terminals. +#ASCIILines = no + +# FastDirs, these allow you to jump directly to a directory, the key +# bindings are in the keymap file. +# +# Examples: Fastdir1 = /mp3/rock +# Fastdir2 = /mp3/electronic +# Fastdir3 = /mp3/rap +# Fastdir4 = /mp3/etc +# +#Fastdir1 = +#Fastdir2 = +#Fastdir3 = +#Fastdir4 = +#Fastdir5 = +#Fastdir6 = +#Fastdir7 = +#Fastdir8 = +#Fastdir9 = +#Fastdir10 = + +# How fast to seek (in number of seconds per keystroke). The first +# option is for normal seek and the second for silent seek. +#SeekTime = 1 +#SilentSeekTime = 5 + +# PreferredDecoders allows you to specify which decoder should be used +# for any given audio format. It is a colon-separated list in which +# each entry is of the general form 'code(decoders)', where 'code' +# identifies the audio format and 'decoders' is a comma-separated list +# of decoders in order of preference. +# +# The audio format identifier may be either a filename extension or a +# MIME media type. If the latter, the format is 'type/subtype' (e.g., +# 'audio/flac'). Because different systems may give different MIME +# media types, any 'x-' prefix of the subtype is ignored both here and +# in the actual file MIME type (so all combinations of 'audio/flac' and +# 'audio/x-flac' match each other). +# +# For Internet streams the matching is done on MIME media type and on +# actual content. For files the matches are made on MIME media type +# (if the 'UseMimeMagic' option is set) and on filename extension. The +# MIME media type of a file is not determined until the first entry for +# MIME is encountered in the list. +# +# The matching is done in the order of appearance in the list with any +# entries added from the command line being matched before those listed +# here. Therefore, if you place all filename extension entries before +# all MIME entries you will speed up MOC's processing of directories +# (which could be significant for remote file systems). +# +# The decoder list may be empty, in which case no decoders will be used +# for files (and files with that audio format ignored) while Internet +# streams will be assessed on the actual content. Any decoder position +# may contain an asterisk, in which case any decoder not otherwise listed +# which can handle the audio format will be used. It is not an error to +# list the same decoder twice, but neither does it make sense to do so. +# +# If you have a mix of audio and non-audio files in your directories, you +# may wish to include entries at top of the list which ignore non-audio +# files by extension. +# +# In summary, the PreferredDecoders option provides fine control over the +# type of matching which is performed (filename extension, MIME media +# type and streamed media content) and which decoder(s) (if any) are used +# based on the option's list entries and their ordering. +# +# Examples: aac(aac,ffmpeg) first try FAAD2 for AACs then FFmpeg +# mp3() ignore MP3 files +# wav(*,sndfile) use sndfile for WAV as a last resort +# ogg(vorbis,*):flac(flac,*) try Xiph decoders first +# ogg():audio/ogg() ignore OGG files, and +# force Internet selection by content +# gz():html() ignore some non-audio files +# +# Any unspecified audio formats default to trying all decoders. +# Any unknown (or misspelt) drivers are ignored. +# All names are case insensitive. +# The default setting reflects the historical situation modified by +# the experience of users. +# +#PreferredDecoders = aac(aac,ffmpeg):m4a(ffmpeg) +#PreferredDecoders += mpc(musepack,*,ffmpeg):mpc8(musepack,*,ffmpeg) +#PreferredDecoders += sid(sidplay2):mus(sidplay2) +#PreferredDecoders += wav(sndfile,*,ffmpeg) +#PreferredDecoders += wv(wavpack,*,ffmpeg) +#PreferredDecoders += audio/aac(aac):audio/aacp(aac):audio/m4a(ffmpeg) +#PreferredDecoders += audio/wav(sndfile,*) + +# The following PreferredDecoders attempt to handle the ambiguity surrounding +# container types such as OGG for files. The first two entries will force +# a local file to the correct decoder (assuming the .ogg file contains Vorbis +# audio), while the MIME media types will cause Internet audio streams to +# be assessed on content (which may be either Vorbis or Speex). +# +#PreferredDecoders += ogg(vorbis,ffmpeg):oga(vorbis,ffmpeg):ogv(ffmpeg) +#PreferredDecoders += opus(ffmpeg) +#PreferredDecoders += spx(speex) +#PreferredDecoders += application/ogg(vorbis):audio/ogg(vorbis) + +# Which resampling method to use. There are a few methods of resampling +# sound supported by libresamplerate. The default is 'Linear') which is +# also the fastest. A better description can be found at: +# +# http://www.mega-nerd.com/libsamplerate/api_misc.html#Converters +# +# but briefly, the following methods are based on bandlimited interpolation +# and are higher quality, but also slower: +# +# SincBestQuality - really slow (I know you probably have an xx GHz +# processor, but it's still not enough to not see +# this in the top output :) The worst case +# Signal-to-Noise Ratio is 97dB. +# SincMediumQuality - much faster. +# SincFastest - the fastest bandlimited interpolation. +# +# And these are lower quality, but much faster methods: +# +# ZeroOrderHold - really poor quality, but it's really fast. +# Linear - a bit better and a bit slower. +# +#ResampleMethod = Linear + +# Always use this sample rate (in Hz) when opening the audio device (and +# resample the sound if necessary). When set to 0 the device is opened +# with the file's rate. +#ForceSampleRate = 0 + +# By default, even if the sound card reports that it can output 24bit samples +# MOC converts 24bit PCM to 16bit. Setting this option to 'yes' allows MOC +# to use 24bit output. (The MP3 decoder, for example, uses this format.) +# This is disabled by default because there were reports that it prevents +# MP3 files from playing on some soundcards. +#Allow24bitOutput = no + +# Use realtime priority for output buffer thread. This will prevent gaps +# while playing even with heavy load. The user who runs MOC must have +# permissions to set such a priority. This could be dangerous, because it +# is possible that a bug in MOC will freeze your computer. +#UseRealtimePriority = no + +# The number of audio files for which MOC will cache tags. When this limit +# is reached, file tags are discarded on a least recently used basis (with +# one second resolution). You can disable the cache by giving it a size of +# zero. Note that if you decrease the cache size below the number of items +# currently in the cache, the number will not decrease immediately (if at +# all). +#TagsCacheSize = 256 + +# Number items in the playlist. +#PlaylistNumbering = yes + +# Main window layouts can be configured. You can change the position and +# size of the menus (directory and playlist). You have three layouts and +# can switch between then using the 'l' key (standard mapping). By default, +# only two layouts are configured. +# +# The format is as follows: +# +# - Each layout is described as a list of menu entries. +# - Each menu entry is of the form: +# +# menu(position_x, position_y, width, height) +# +# where 'menu' is either 'directory' or 'playlist'. +# - The parameters define position and size of the menu. They can +# be absolute numbers (like 10) or a percentage of the screen size +# (like 45%). +# - 'width' and 'height' can have also value of 'FILL' which means +# fill the screen from the menu's position to the border. +# - Menus may overlap. +# +# You must describe at least one menu (default is to fill the whole window). +# There must be at least one layout (Layout1) defined; others can be empty. +# +# Example: Layout1 = playlist(50%,50%,50%,50%) +# Layout2 = "" +# Layout3 = "" +# +# Just one layout, the directory will occupy the whole +# screen, the playlist will have 1/4 of the screen size +# and be positioned at lower right corner. (Note that +# because the playlist will be hidden by the directory +# you will have to use the TAB key to make the playlist +# visible.) +# +# Example: Layout1 = playlist(0,0,100%,10):directory(0,10,100%,FILL) +# +# The screen is split into two parts: playlist at the top +# and the directory menu at the bottom. Playlist will +# occupy 10 lines and the directory menu the rest. +# +#Layout1 = directory(0,0,50%,100%):playlist(50%,0,FILL,100%) +#Layout2 = directory(0,0,100%,100%):playlist(0,0,100%,100%) +#Layout3 = "" + +# When the song changes, should the menu be scrolled so that the currently +# played file is visible? +#FollowPlayedFile = yes + +# What to do if the interface was started and the server is already playing +# something from the playlist? If CanStartInPlaylist is set to 'yes', the +# interface will switch to the playlist. When set to 'no' it will start +# from the last directory. +#CanStartInPlaylist = yes + +# Executing external commands (1 - 10) invoked with key commands (F1 - F10 +# by default). +# +# Some arguments are substituted before executing: +# +# %f - file path +# %i - title made from tags +# %S - start block mark (in seconds) +# %E - end block mark (in seconds) +# +# Data from tags can also be substituted: +# +# %t - title +# %a - album +# %r - artist +# %n - track +# %m - time of the file (in seconds) +# +# The parameters above apply to the currently selected file. If you change +# them to capital letters, they are taken from the file currently playing. +# +# Programs are run using execv(), not a shell, so you can't do things like +# redirecting the output to a file. The command string is split using blank +# characters as separators; the first element is the command to be executed +# and the rest are its parameters, so if you use "echo Playing: %I" we run +# program 'echo' (from $PATH) with 2 parameters: the string 'Playing:' and +# the title of the file currently playing. Even if the title contains +# spaces, it's still one parameter and it's safe if it contains `rm -rf /`. +# +# Examples: ExecCommand1 = "cp %f /mnt/usb_drive" +# ExecCommand2 = "/home/joe/now_playing %I" +# +#ExecCommand1 = +#ExecCommand2 = +#ExecCommand3 = +#ExecCommand4 = +#ExecCommand5 = +#ExecCommand6 = +#ExecCommand7 = +#ExecCommand8 = +#ExecCommand9 = +#ExecCommand10 = + +# Display the cursor in the line with the selected file. Some braille +# readers (the Handy Tech modular series ZMU 737, for example) use the +# cursor to focus and can make use of it to present the file line even +# when other fields are changing. +#UseCursorSelection = no + +# Set the terminal title when running under xterm. +#SetXtermTitle = yes + +# Set the terminal title when running under screen(1). If MOC can detect +# that it is running under screen(1), then it will set an appropriate +# title (see description of ScreenTerms above). However, if multiple +# levels of screen management are involved, detection might fail and this +# could cause a screen upset. In that situation you can use this option +# to force screen titles off. +#SetScreenTitle = yes + +# Display full paths instead of just file names in the playlist. +#PlaylistFullPaths = yes + +# The following setting describes how block markers are displayed in +# the play time progress bar. Its value is a string of exactly three +# characters. The first character is displayed in a position which +# corresponds to the time marked as the start of a block and the last +# character to the time marked as the end of the block. The middle +# character is displayed instead if both the start and the end of the block +# would fall in the same position (within the resolution of the interface). +# You can turn off the displaying of these block marker positions by using +# three space characters. +#BlockDecorators = "`\"'" + +# How long (in seconds) to leave a message displayed on the screen. +# Setting this to a high value allows you to scroll through the messages +# using the 'hide_message' key. Setting it to zero means you'll have to +# be quick to see any message at all. Any new messages will be queued up +# and displayed after the current message's linger time expires. +#MessageLingerTime = 3 + +# Does MOC display a prefix on delayed messages indicating +# the number of queued messages still to be displayed? +#PrefixQueuedMessages = yes + +# String to append to the queued message count if any +# error messages are still waiting to be displayed. +#ErrorMessagesQueued = "!" + +# Self-describing ModPlug options (with 'yes' or 'no' values). +#ModPlug_Oversampling = yes +#ModPlug_NoiseReduction = yes +#ModPlug_Reverb = no +#ModPlug_MegaBass = no +#ModPlug_Surround = no + +# ModPlug resampling mode. +# Valid values are: +# +# FIR - 8 tap fir filter (extremely high quality) +# SPLINE - Cubic spline interpolation (high quality) +# LINEAR - Linear interpolation (fast, good quality) +# NEAREST - No interpolation (very fast, extremely bad sound quality) +# +#ModPlug_ResamplingMode = FIR + +# Other self-describing ModPlug audio characteristic options. +# (Note that the 32 bit sample size seems to be buggy.) +#ModPlug_Channels = 2 # 1 or 2 channels +#ModPlug_Bits = 16 # 8, 16 or 32 bits +#ModPlug_Frequency = 44100 # 11025, 22050, 44100 or 48000 Hz +#ModPlug_ReverbDepth = 0 # 0 (quiet) to 100 (loud) +#ModPlug_ReverbDelay = 0 # Delay in ms (usually 40-200ms) +#ModPlug_BassAmount = 0 # 0 (quiet) to 100 (loud). +#ModPlug_BassRange = 10 # Cutoff in Hz (10-100). +#ModPlug_SurroundDepth = 0 # Surround level 0(quiet)-100(heavy). +#ModPlug_SurroundDelay = 0 # Surround delay in ms, usually 5-40ms. +#ModPlug_LoopCount = 0 # 0 (never), n (times) or -1 (forever) + +# Self-describing TiMidity audio characteristic options. +#TiMidity_Rate = 44100 # Between 8000 and 48000 +#TiMidity_Bits = 16 # 8 or 16 +#TiMidity_Channels = 2 # 1 or 2 +#TiMidity_Volume = 100 # 0 to 800 + +# You can setup a TiMidity-Config-File here. +# Leave it unset to use library defaults (/etc/timidity.cfg mostly). +# Setting it to 'yes' also uses the library defaults. +# Set it to 'no' if you don't have any configuration file. +# Otherwise set it to the name of a specific file. +#TiMidity_Config = + +# Self-describing SidPlay2 audio characteristic options. +#SidPlay2_DefaultSongLength = 180 # If not in database (in seconds) +#SidPlay2_MinimumSongLength = 0 # Play at least n (in seconds) +#SidPlay2_Frequency = 44100 # 4000 to 48000 +#SidPlay2_Bits = 16 # 8 or 16 +#SidPlay2_Optimisation = 0 # 0 (worst quality) to 2 (best quality) + +# Set path to a HVSC-compatible database (if not set, database is disabled). +#SidPlay2_Database = + +# SidPlay2 playback Mode: +# +# "M": Mono (best for many SIDs) +# "S": Stereo +# "L"/"R": Left / Right +# +#SidPlay2_PlayMode = "M" + +# Use start-song information from SID ('yes') or start at first song +# ('no'). Songs before the start-song won't be played. (Note that this +# option previously took the values 1 and 0; these are now deprecated +# in favour of 'yes' and 'no'.) +#SidPlay2_StartAtStart = yes + +# Play sub-tunes. (Note that this option previously took the values 1 +# and 0; these are now deprecated in favour of 'yes' and 'no'.) +#SidPlay2_PlaySubTunes = yes + +# Run the OnSongChange command when a new song starts playing. +# Specify the full path (i.e. no leading '~') of an executable to run. +# Arguments will be passed, and you can use the following escapes: +# +# %a artist +# %r album +# %f filename +# %t title +# %n track +# %d file duration in XX:YY form +# %D file duration, number of seconds +# +# No pipes/redirects can be used directly, but writing a shell script +# can do the job. +# +# Example: OnSongChange = "/home/jack/.moc/myscript %a %r" +# +#OnSongChange = + +# If RepeatSongChange is 'yes' then MOC will execute the command every time +# a song starts playing regardless of whether or not it is just repeating. +# Otherwise the command will only be executed when a different song is +# started. +#RepeatSongChange = no + +# Run the OnStop command (full path, no arguments) when MOC changes state +# to stopped (i.e., when user stopped playing or changes a song). +#OnStop = "/home/jack/.moc/myscript_on_stop" + +# This option determines which song to play after finishing all the songs +# in the queue. Setting this to 'yes' causes MOC to play the song which +# follows the song being played before queue playing started. If set to +# 'no', MOC will play the song following the last song in the queue if it +# is in the playlist. The default is 'yes' because this is the way other +# players usually behave. (Note that this option previously took the +# values 1 and 0; these are now deprecated in favour of 'yes' and 'no'.) +#QueueNextSongReturn = yes diff --git a/moc/.moc/keymap b/moc/.moc/keymap new file mode 100755 index 0000000..0ce0fcd --- /dev/null +++ b/moc/.moc/keymap @@ -0,0 +1,188 @@ +# This is the example keymap file for MOC. You can define your own key +# bindings for MOC commands by creating your own keymap file and setting +# the 'Keymap' option in ~/.moc/config. +# +# The format of this file is: +# +# - Lines beginning with # are comments. +# - Blank lines are ignored. +# - Every other line is expected to be in one of the formats: +# +# COMMAND = [KEY ...] +# COMMAND += KEY ... +# +# The KEY can be: +# +# - Just a char, like i, L, ", * +# - CTRL-KEY sequence: ^k (CTRL-k), ^4 +# - ALT-KEY (meta) sequence: M-j (ALT-j), M-/ +# - Special keys: DOWN, UP +# LEFT, RIGHT +# HOME, END +# BACKSPACE +# INS, DEL +# ENTER +# PAGE_UP, PAGE_DOWN +# SPACE, TAB +# KEYPAD_CENTER +# ESCAPE +# F1 - F12 +# +# Note that the use of a digit as a KEY is deprecated. +# +# Maximum number of KEYs for one COMMAND is 5. +# +# Omitting the KEY for a COMMAND will unbind all its default keys. They +# will also be automatically unbound when you bind new KEYs to it. Individual +# default KEYs will be automatically unbound when they are explicitly bound +# to some other COMMAND. +# +# Using the '+=' form will cause the KEYs to be appended to any existing +# (default or explicit) bindings for the COMMAND. Appending an existing +# default binding for the same COMMAND will cause MOC to think of that KEY +# as then being explicitly bound. +# +# Only one binding for any given COMMAND can appear in the keymap file. One +# exception to this is that if the default keys for a COMMAND are explicitly +# unbound then a subsequent binding may appear for it. A second exception +# is that multiple appending bindings may appear. +# +# Meta-key detection is sensitive to the ESCDELAY environment variable (see +# the manpage for ncurses(3)). In its absence, MOC resets the default +# delay to 25ms. If you need to emulate meta-key sequences using the ESC +# key, then you may need to set the value of ESCDELAY back to its ncurses +# default of 1000ms (but doing so will make the response to the ESC key +# sluggish). +# +# If MOC's keypresses are being filtered through some other program (in a +# GUI environment, for example) which also does meta-key detection, then +# MOC is at the mercy of the timings with which that program presents them. +# +# Default key configuration for MOC (and a list of all available commands): + +# MOC control keys: +quit_client = q +quit = Q + +# Menu and interface control keys: +go = ENTER l +menu_down = DOWN j +menu_up = UP k +menu_page_down = PAGE_DOWN ^d d +menu_page_up = PAGE_UP ^p ^u u +menu_first_item = HOME g +menu_last_item = END G +search_menu = / +toggle_read_tags = f +toggle_show_time = ^t +toggle_show_format = ^f +toggle_menu = TAB +#toggle_layout = L +#toggle_hidden_files = H +next_search = ^g ^n +#show_lyrics = L +theme_menu = T +help = ? +refresh = ^r +reload = r + +# Audio playing and positioning keys: +seek_forward = RIGHT +seek_backward = LEFT +seek_forward_fast = ] +seek_backward_fast = [ +pause = p SPACE +stop = s +next = n L ^l +previous = b H ^h +toggle_shuffle = S +toggle_repeat = R +toggle_auto_next = X +#toggle_mixer = x +go_url = o + +# Volume control keys: +volume_down_1 = < +volume_up_1 = > +volume_down_5 = , +volume_up_5 = . +volume_10 = M-1 +volume_20 = M-2 +volume_30 = M-3 +volume_40 = M-4 +volume_50 = M-5 +volume_60 = M-6 +volume_70 = M-7 +volume_80 = M-8 +volume_90 = M-9 + +# Directory navigation keys: defaults are Shift-number +# (i.e., 'shift 1' -> '!' -> 'Fastdir1'). +go_to_a_directory = i +go_to_music_directory = M-m +go_to_fast_dir1 = M-a +go_to_fast_dir2 = M-l +go_to_fast_dir3 = M-p +go_to_fast_dir4 = M-d +go_to_fast_dir5 = M-c +go_to_fast_dir6 = ^ +go_to_fast_dir7 = & +go_to_fast_dir8 = * +go_to_fast_dir9 = ( +go_to_fast_dir10 = ) +#go_to_playing_file = G +go_up = h + +# Playlist specific keys: +add_file = a +add_directory = A +#plist_add_stream = u +delete_from_playlist = x +playlist_full_paths = P +plist_move_up = K +plist_move_down = J +save_playlist = V +remove_dead_entries = Y +clear_playlist = C + +# Queue manipulation keys: +enqueue_file = z +clear_queue = Z + +# User interaction control: +history_up = UP +history_down = DOWN +delete_to_start = ^u +delete_to_end = ^k +cancel = ^x ESCAPE +hide_message = M + +# Softmixer specific keys: +toggle_softmixer = w +#toggle_make_mono = J + +# Equalizer specific keys: +toggle_equalizer = E +equalizer_refresh = e +#equalizer_prev = K +#equalizer_next = k + +# External commands: +mark_start = ' +mark_end = " +exec_command1 = F1 +exec_command2 = F2 +exec_command3 = F3 +exec_command4 = F4 +exec_command5 = F5 +exec_command6 = F6 +exec_command7 = F7 +exec_command8 = F8 +exec_command9 = F9 +exec_command10 = F10 + +# The following commands are available but not assigned to any keys by +# default: +# +# toggle_percent Switch on/off play progress bar time percentage +# diff --git a/moc/.moc/last_directory b/moc/.moc/last_directory new file mode 100644 index 0000000..7e6991d --- /dev/null +++ b/moc/.moc/last_directory @@ -0,0 +1 @@ +/home/alrayyes/dotfiles \ No newline at end of file diff --git a/moc/.moc/pid b/moc/.moc/pid new file mode 100644 index 0000000..8d7a41c --- /dev/null +++ b/moc/.moc/pid @@ -0,0 +1 @@ +8360 diff --git a/moc/.moc/themes/solarized b/moc/.moc/themes/solarized new file mode 100644 index 0000000..f74b4fb --- /dev/null +++ b/moc/.moc/themes/solarized @@ -0,0 +1,36 @@ +# mocp-theme-solarized by Vitaŭt Bajaryn +# MOC theme for use with a solarized-dark terminal color scheme +# based on green theme by Jacek Lehmann + +background = default default +frame = black default +window_title = green default +directory = default default +selected_directory = yellow default +playlist = blue default +selected_playlist = default default bold +file = default default +selected_file = cyan default +marked_file = default default bold +marked_selected_file = cyan default bold +info = cyan default +status = cyan default +title = green default +state = magenta default +current_time = blue default +time_left = cyan default +total_time = cyan default +time_total_frames = cyan default bold +sound_parameters = cyan default +legend = default default +disabled = default default +enabled = default default bold +empty_mixer_bar = green default +filled_mixer_bar = black green +empty_time_bar = green default +filled_time_bar = black green +entry = yellow default +entry_title = red default +error = red default +message = yellow default +plist_time = magenta default bold diff --git a/newsbeuter/.newsbeuter/config b/newsbeuter/.newsbeuter/config new file mode 100644 index 0000000..90c0d42 --- /dev/null +++ b/newsbeuter/.newsbeuter/config @@ -0,0 +1,41 @@ +# -- feeds --------------------------------------------------------------------- + +auto-reload yes +reload-time 15 +reload-threads 2 +max-downloads 4 +player mplayer +refresh-on-startup yes +show-read-feeds no + +# Solarized color scheme +color background default default +color listnormal default default +color listfocus black yellow +color info default black +color article default default + +# -- navigation ---------------------------------------------------------------- + +goto-next-feed no +browser qutebrowser + +bind-key j down feedlist +bind-key k up feedlist +bind-key j next articlelist +bind-key k prev articlelist +bind-key J next-feed articlelist +bind-key K prev-feed articlelist +bind-key j down article +bind-key k up article + +# highlights +highlight article "^(Title):.*$" blue default +highlight article "https?://[^ ]+" red default +highlight article "\\[image\\ [0-9]+\\]" green default + +# -- misc ---------------------------------------------------------------------- + +unbind-key C feedlist +confirm-exit no +cleanup-on-quit yes diff --git a/newsbeuter/.newsbeuter/urls b/newsbeuter/.newsbeuter/urls new file mode 100644 index 0000000..7c0c86c --- /dev/null +++ b/newsbeuter/.newsbeuter/urls @@ -0,0 +1 @@ +https://news.ycombinator.com/rss diff --git a/polybar/.config/polybar/bin/isactive-bluetooth/README.md b/polybar/.config/polybar/bin/isactive-bluetooth/README.md new file mode 100644 index 0000000..a97abb0 --- /dev/null +++ b/polybar/.config/polybar/bin/isactive-bluetooth/README.md @@ -0,0 +1,13 @@ +# Script: isactive-bluetooth + +A script that shows if bluetooth is on or off. + + +## Module + +```ini +[module/isactive-bluetooth] +type = custom/script +exec = ~/polybar-scripts/isactive-bluetooth.sh +interval = 10 +``` diff --git a/polybar/.config/polybar/bin/isactive-bluetooth/isactive-bluetooth.sh b/polybar/.config/polybar/bin/isactive-bluetooth/isactive-bluetooth.sh new file mode 100644 index 0000000..f16935f --- /dev/null +++ b/polybar/.config/polybar/bin/isactive-bluetooth/isactive-bluetooth.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +if [ "$(systemctl is-active bluetooth.service)" = "active" ]; then + echo "" +else + echo "" +fi diff --git a/polybar/.config/polybar/bin/player-mpris-tail/README.md b/polybar/.config/polybar/bin/player-mpris-tail/README.md new file mode 100644 index 0000000..0558c10 --- /dev/null +++ b/polybar/.config/polybar/bin/player-mpris-tail/README.md @@ -0,0 +1,25 @@ +# Script: player-mpris-tail + +This script displays the current track and the play-pause status without polling. Information is obtained by listening to MPRIS events, so it is updated instantaneously on change. + +![player-mpris-tail](screenshots/1.png) + +![player-mpris-tail](screenshots/2.png) + + +## Dependencies + +* [playerctl](https://github.com/acrisci/playerctl) + + +## Module + +```ini +[module/player-mpris-tail] +type = custom/script +exec = ~/polybar-scripts/player-mpris-tail.py +tail = true +click-left = ~/polybar-scripts/player-ctrl.sh previous +click-right = ~/polybar-scripts/player-ctrl.sh next +click-middle = ~/polybar-scripts/player-ctrl.sh play-pause +``` diff --git a/polybar/.config/polybar/bin/player-mpris-tail/player-ctrl.sh b/polybar/.config/polybar/bin/player-mpris-tail/player-ctrl.sh new file mode 100755 index 0000000..ce83fa2 --- /dev/null +++ b/polybar/.config/polybar/bin/player-mpris-tail/player-ctrl.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash + +function listPlayers { + echo "$(dbus-send --session --dest=org.freedesktop.DBus \ + --type=method_call --print-reply /org/freedesktop/DBus \ + org.freedesktop.DBus.ListNames | grep org.mpris.MediaPlayer2 | + awk -F\" '{print $2}' | cut -d '.' -f4- )" +} + +function getPlayerStatus { + playerctl --player="$1" status +} + +function getActivePlayer { + players=($(listPlayers)) + for player in ${players[@]}; do + if [ "$(getPlayerStatus "${player}")" == "Playing" ]; then + playing=$player + fi + done + for player in ${players[@]}; do + if [ "$(getPlayerStatus "${player}")" == "Paused" ]; then + paused=$player + fi + done + if [ -n "$playing" ]; then + echo "$playing" + elif [ -n "$paused" ]; then + echo "$paused" + else + # Return last (newest?) player + echo ${players[@]: -1} + fi +} + +if [ "$1" == "--get-active" ]; then + getActivePlayer +else + exec playerctl --player="$(getActivePlayer)" "$@" +fi diff --git a/polybar/.config/polybar/bin/player-mpris-tail/player-mpris-tail.py b/polybar/.config/polybar/bin/player-mpris-tail/player-mpris-tail.py new file mode 100755 index 0000000..3dd9051 --- /dev/null +++ b/polybar/.config/polybar/bin/player-mpris-tail/player-mpris-tail.py @@ -0,0 +1,115 @@ +#!/usr/bin/env python3 + +import time +import sys +import subprocess + +import gi +gi.require_version('Playerctl', '1.0') +from gi.repository import Playerctl, GLib + +MUSIC_ICON = '' +PAUSE_ICON = '' +PLAYER_CLOSED_ICON = '' + +def listPlayers(): + return [ + playername.split('"')[1].split('.')[-1] + for playername + in subprocess.getoutput( + 'dbus-send --session --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames | grep org.mpris.MediaPlayer2' + ).split("\n") + ] + +def getPlayerStatus(playername): + return subprocess.getoutput( + 'playerctl --player="%s" status' % playername + ) + +def getActivePlayer(): + players = [ { 'name': player, 'status': getPlayerStatus(player) } for player in listPlayers() ] + playing = [ player['name'] for player in players if player['status'] == 'Playing' ] + paused = [ player['name'] for player in players if player['status'] == 'Paused' ] + if len(playing): + return playing[-1] + if len(paused): + return paused[-1] + if len(players): + return players[-1]['name'] + +class PlayerStatus: + def __init__(self): + self._player = None + self._player_class = None + self._player_name = None + self._icon = PAUSE_ICON + + self._last_artist = None + self._last_title = None + + self._last_status = '' + + def show(self): + self._init_player() + + # Wait for events + main = GLib.MainLoop() + main.run() + + def _init_player(self): + while True: + try: + self._player_name = getActivePlayer() + self._player_class = Playerctl.Player() + if self._player_name: + self._player = self._player_class.new(self._player_name) + else: + self._player = self._player_class.new() + self._player.on('metadata', self._on_metadata) + self._player.on('play', self._on_play) + self._player.on('pause', self._on_pause) + self._player.on('exit', self._on_exit) + status = self._player.get_property('status') + if status == 'Playing': + self._icon = MUSIC_ICON + elif status == 'Paused': + self._icon = PAUSE_ICON + self._on_metadata(self._player, self._player.get_property('metadata')) + break + + except: + self._print_flush(PLAYER_CLOSED_ICON) + time.sleep(2) + + def _on_metadata(self, player, e): + if 'xesam:artist' in e.keys() and 'xesam:title' in e.keys(): + self._artist = e['xesam:artist'][0] + self._title = e['xesam:title'] + self._print_song() + + def _on_play(self, player): + self._icon = MUSIC_ICON + self._print_song() + + def _on_pause(self, player): + self._icon = PAUSE_ICON + self._print_song() + + def _on_exit(self, player): + self._init_player() + + def _print_song(self): + self._print_flush( + '{} {} - {}'.format(self._icon, self._artist, self._title)) + + """ + Seems to assure print() actually prints when no terminal is connected + """ + + def _print_flush(self, status, **kwargs): + if status != self._last_status: + print(status, **kwargs) + sys.stdout.flush() + self._last_status = status + +PlayerStatus().show() diff --git a/polybar/.config/polybar/bin/player-mpris-tail/screenshots/1.png b/polybar/.config/polybar/bin/player-mpris-tail/screenshots/1.png new file mode 100644 index 0000000..686c7d6 Binary files /dev/null and b/polybar/.config/polybar/bin/player-mpris-tail/screenshots/1.png differ diff --git a/polybar/.config/polybar/bin/player-mpris-tail/screenshots/2.png b/polybar/.config/polybar/bin/player-mpris-tail/screenshots/2.png new file mode 100644 index 0000000..7aeabf3 Binary files /dev/null and b/polybar/.config/polybar/bin/player-mpris-tail/screenshots/2.png differ diff --git a/polybar/.config/polybar/bin/updates-arch-combined/README.md b/polybar/.config/polybar/bin/updates-arch-combined/README.md new file mode 100644 index 0000000..499bee7 --- /dev/null +++ b/polybar/.config/polybar/bin/updates-arch-combined/README.md @@ -0,0 +1,24 @@ +# Script: updates-arch-combined + +A script that shows if there are updates for Arch Linux and AUR updates. + +See also [updates-arch](../updates-arch) and [updates-arch-aur](../updates-arch-aur). + +![updates-arch-combined](screenshots/1.png) + + +## Dependencies + +The possibilities depend on your AUR helper. Not all helpers can report the pending updates. + +At the moment `trizen` and `cower` are documented. Take a look at the script to see how it works. + + +## Module + +```ini +[module/updates-arch-combined] +type = custom/script +exec = ~/polybar-scripts/updates-arch-combined.sh +interval = 600 +``` diff --git a/polybar/.config/polybar/bin/updates-arch-combined/screenshots/1.png b/polybar/.config/polybar/bin/updates-arch-combined/screenshots/1.png new file mode 100644 index 0000000..b69bbc3 Binary files /dev/null and b/polybar/.config/polybar/bin/updates-arch-combined/screenshots/1.png differ diff --git a/polybar/.config/polybar/bin/updates-arch-combined/updates-arch-combined.sh b/polybar/.config/polybar/bin/updates-arch-combined/updates-arch-combined.sh new file mode 100644 index 0000000..00b6c79 --- /dev/null +++ b/polybar/.config/polybar/bin/updates-arch-combined/updates-arch-combined.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +updates_arch=$(checkupdates | wc -l) + +# if ! updates_aur=$(cower -u 2> /dev/null | wc -l); then +if ! updates_aur=$(trizen -Su --aur --quiet | wc -l); then + updates_aur=0 +fi + +updates=$(("$updates_arch" + "$updates_aur")) + +if [ "$updates" -gt 0 ]; then + echo " $updates" +else + echo "" +fi diff --git a/polybar/.config/polybar/config b/polybar/.config/polybar/config new file mode 100644 index 0000000..d00a778 --- /dev/null +++ b/polybar/.config/polybar/config @@ -0,0 +1,564 @@ +;===================================================== +; +; To learn more about how to configure Polybar +; go to https://github.com/jaagr/polybar +; +; The README contains alot of information +; +;===================================================== + +[colors] +;background = ${xrdb:color0:#222} +background = #222 +background-alt = #444 +;foreground = ${xrdb:color7:#222} +foreground = #dfdfdf +foreground-alt = #555 +primary = #ffb52a +secondary = #e60053 +alert = #bd2c40 + +[bar/laptop-bottom] +bottom = true +monitor = ${env:MONITOR:e-DP1} +width = 100% + +height = 27 +radius = 6.0 +fixed-center = false + +background = ${colors.background} +foreground = ${colors.foreground} + +line-size = 3 +line-color = #f00 + +border-size = 0 +border-color = #00000000 + +padding-left = 0 +padding-right = 2 + +module-margin-left = 1 +module-margin-right = 2 + +font-0 = DejaVuSansMono Nerd Font Mono:pixelsize=14 +font-1 = "Wuncon Siji:pixelsize=14;1" + +modules-center = mpd player-mpris-tail + +[bar/laptop-top] +monitor = ${env:MONITOR:e-DP1} +width = 100% +height = 27 +;offset-x = 1% +;offset-y = 1% +radius = 6.0 +fixed-center = false + +background = ${colors.background} +foreground = ${colors.foreground} + +line-size = 3 +line-color = #f00 + +border-size = 0 +border-color = #00000000 + +padding-left = 0 +padding-right = 2 + +module-margin-left = 1 +module-margin-right = 2 + +font-0 = DejaVuSansMono Nerd Font Mono:pixelsize=14 +font-1 = "Wuncon Siji:pixelsize=14;1" + +modules-left = i3 +modules-center = tun0 tun1 wlan bluetooth +modules-right = github updates-arch-combined battery xbacklight filesystem volume-laptop memory cpu temperature date + +tray-position = right +tray-padding = 0 +;tray-transparent = true +;tray-background = #0063ff + +;wm-restack = bspwm +;wm-restack = i3 + +;override-redirect = true + +;scroll-up = bspwm-desknext +;scroll-down = bspwm-deskprev + +;scroll-up = i3wm-wsnext +;scroll-down = i3wm-wsprev + +scroll-up = i3wm-wsnext +scroll-down = i3wm-wsprev + +[bar/monitor1] +monitor = ${env:MONITOR:DP-1} +width = 100% +height = 27 +;offset-x = 1% +;offset-y = 1% +radius = 6.0 +fixed-center = false + +background = ${colors.background} +foreground = ${colors.foreground} + +line-size = 3 +line-color = #f00 + +border-size = 0 +border-color = #00000000 + +padding-left = 0 +padding-right = 2 + +module-margin-left = 1 +module-margin-right = 2 + +font-0 = DejaVuSansMono Nerd Font Mono:pixelsize=10 +font-1 = "Wuncon Siji:pixelsize=10;1" + +modules-left = i3 +modules-center = mpd player-mpris-tail +modules-right = github updates-arch-combined bluetooth eth filesystem volume memory cpu temperature date + +tray-position = right +tray-padding = 0 +;tray-transparent = true +;tray-background = #0063ff + +;wm-restack = bspwm +;wm-restack = i3 + +;override-redirect = true + +;scroll-up = bspwm-desknext +;scroll-down = bspwm-deskprev + +;scroll-up = i3wm-wsnext +;scroll-down = i3wm-wsprev + +scroll-up = i3wm-wsnext +scroll-down = i3wm-wsprev + +[module/xwindow] +type = internal/xwindow +label = %title:0:30:...% + +[module/xkeyboard] +type = internal/xkeyboard +blacklist-0 = num lock + +format-prefix = " " +format-prefix-foreground = ${colors.foreground-alt} +format-prefix-underline = ${colors.secondary} + +label-layout = %layout% +label-layout-underline = ${colors.secondary} + +label-indicator-padding = 2 +label-indicator-margin = 1 +label-indicator-background = ${colors.secondary} +label-indicator-underline = ${colors.secondary} + +[module/filesystem] +type = internal/fs +interval = 25 + +mount-0 = / +mount-1 = /home + +label-mounted = %{F#0a81f5}%mountpoint%%{F-}: %percentage_used%% +label-unmounted = %mountpoint% not mounted +label-unmounted-foreground = ${colors.foreground-alt} + +[module/bspwm] +type = internal/bspwm + +label-focused = %index% +label-focused-background = ${colors.background-alt} +label-focused-underline= ${colors.primary} +label-focused-padding = 2 + +label-occupied = %index% +label-occupied-padding = 2 + +label-urgent = %index%! +label-urgent-background = ${colors.alert} +label-urgent-padding = 2 + +label-empty = %index% +label-empty-foreground = ${colors.foreground-alt} +label-empty-padding = 2 + +[module/i3] +type = internal/i3 +format = +index-sort = true +wrapping-scroll = false + +; Only show workspaces on the same output as the bar +;pin-workspaces = true + +label-mode-padding = 2 +label-mode-foreground = #000 +label-mode-background = ${colors.primary} + +; focused = Active workspace on focused monitor +label-focused = %index% +label-focused-background = ${module/bspwm.label-focused-background} +label-focused-underline = ${module/bspwm.label-focused-underline} +label-focused-padding = ${module/bspwm.label-focused-padding} + +; unfocused = Inactive workspace on any monitor +label-unfocused = %index% +label-unfocused-padding = ${module/bspwm.label-occupied-padding} + +; visible = Active workspace on unfocused monitor +label-visible = %index% +label-visible-background = ${self.label-focused-background} +label-visible-underline = ${self.label-focused-underline} +label-visible-padding = ${self.label-focused-padding} + +; urgent = Workspace with urgency hint set +label-urgent = %index% +label-urgent-background = ${module/bspwm.label-urgent-background} +label-urgent-padding = ${module/bspwm.label-urgent-padding} + +[module/mpd] +type = internal/mpd +format-online = + +icon-prev =  +icon-stop =  +icon-play =  +icon-pause =  +icon-next =  + +label-song-maxlen = 25 +label-song-ellipsis = true + +[module/xbacklight] +type = internal/xbacklight + +format =