Compare commits
4 Commits
356daffed6
...
d6909b97e4
Author | SHA1 | Date | |
---|---|---|---|
d6909b97e4 | |||
ffa1bb6a71 | |||
98af57adc1 | |||
4cf32368a5 |
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
zsh/.config/zsh/.zcompdump
|
||||||
|
zsh/.config/zsh/.zhistory
|
||||||
|
|
15
.gitmodules
vendored
15
.gitmodules
vendored
@ -1,3 +1,18 @@
|
|||||||
[submodule "tmux/.tmux/plugins/tpm"]
|
[submodule "tmux/.tmux/plugins/tpm"]
|
||||||
path = tmux/.tmux/plugins/tpm
|
path = tmux/.tmux/plugins/tpm
|
||||||
url = https://github.com/tmux-plugins/tpm.git
|
url = https://github.com/tmux-plugins/tpm.git
|
||||||
|
[submodule "zsh/.config/zsh/zsh-syntax-highlighting"]
|
||||||
|
path = zsh/.config/zsh/zsh-syntax-highlighting
|
||||||
|
url = https://github.com/zsh-users/zsh-syntax-highlighting.git
|
||||||
|
[submodule "zsh/.config/zsh/zsh-autosuggestions"]
|
||||||
|
path = zsh/.config/zsh/zsh-autosuggestions
|
||||||
|
url = https://github.com/zsh-users/zsh-autosuggestions.git
|
||||||
|
[submodule "zsh/.config/zsh/zsh-history-substring-search"]
|
||||||
|
path = zsh/.config/zsh/zsh-history-substring-search
|
||||||
|
url = https://github.com/zsh-users/zsh-history-substring-search
|
||||||
|
[submodule "zsh/.config/zsh/auto-ls"]
|
||||||
|
path = zsh/.config/zsh/auto-ls
|
||||||
|
url = https://github.com/desyncr/auto-ls
|
||||||
|
[submodule "zsh/.config/zsh/pure"]
|
||||||
|
path = zsh/.config/zsh/pure
|
||||||
|
url = https://github.com/sindresorhus/pure.git
|
||||||
|
654
moc/.moc/config
Normal file
654
moc/.moc/config
Normal file
@ -0,0 +1,654 @@
|
|||||||
|
# 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 it's 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 = "/media/documents/musique/"
|
||||||
|
|
||||||
|
# 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 = no
|
||||||
|
|
||||||
|
# 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 ouput 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.
|
||||||
|
#ALSADevice = default
|
||||||
|
#ALSAMixer1 = PCM
|
||||||
|
#ALSAMixer2 = Master
|
||||||
|
|
||||||
|
# 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 xterms.
|
||||||
|
#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 = "moca_theme"
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# 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,*,modplug,ffmpeg)
|
||||||
|
#PreferredDecoders += wv(wavpack,*,ffmpeg)
|
||||||
|
#PreferredDecoders += audio/aac(aac):audio/aacp(aac):audio/m4a(ffmpeg)
|
||||||
|
#PreferredDecoders += audio/wav(sndfile,*,modplug)
|
||||||
|
|
||||||
|
# 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.
|
||||||
|
#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
|
2
moc/.moc/equalizer
Normal file
2
moc/.moc/equalizer
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Active: 1
|
||||||
|
Mixin: 0.250000
|
183
moc/.moc/keymap
Normal file
183
moc/.moc/keymap
Normal file
@ -0,0 +1,183 @@
|
|||||||
|
# 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
|
||||||
|
menu_page_up = PAGE_UP
|
||||||
|
menu_first_item = HOME
|
||||||
|
menu_last_item = END
|
||||||
|
search_menu = /
|
||||||
|
toggle_read_tags = f
|
||||||
|
toggle_show_time = ^t
|
||||||
|
toggle_show_format = ^f
|
||||||
|
toggle_menu = TAB
|
||||||
|
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
|
||||||
|
previous = b
|
||||||
|
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
|
||||||
|
go_to_fast_dir1 = !
|
||||||
|
go_to_fast_dir2 = @
|
||||||
|
go_to_fast_dir3 = #
|
||||||
|
go_to_fast_dir4 = $
|
||||||
|
go_to_fast_dir5 = %
|
||||||
|
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 = d
|
||||||
|
playlist_full_paths = P
|
||||||
|
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
|
||||||
|
|
||||||
|
# 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
|
||||||
|
#
|
4
moc/.moc/softmixer
Normal file
4
moc/.moc/softmixer
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
Active: 0
|
||||||
|
Amplification: 100
|
||||||
|
Value: 100
|
||||||
|
Mono: 0
|
28
newsboat/.newsboat/config
Normal file
28
newsboat/.newsboat/config
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
auto-reload yes
|
||||||
|
reload-time 30
|
||||||
|
browser chromium
|
||||||
|
macro y set browser "tmux new-window mpv %u"; open-in-browser ; set browser chromium
|
||||||
|
macro Y set browser "mpv %u"; open-in-browser ; set browser chromium
|
||||||
|
|
||||||
|
unbind-key h
|
||||||
|
unbind-key j
|
||||||
|
unbind-key k
|
||||||
|
unbind-key l
|
||||||
|
|
||||||
|
bind-key h quit
|
||||||
|
bind-key j down
|
||||||
|
bind-key k up
|
||||||
|
bind-key l open
|
||||||
|
|
||||||
|
color background default default
|
||||||
|
color listnormal default default
|
||||||
|
color listnormal_unread default default
|
||||||
|
color listfocus black yellow
|
||||||
|
color listfocus_unread black yellow
|
||||||
|
color info default black
|
||||||
|
color article default default
|
||||||
|
|
||||||
|
# highlights
|
||||||
|
highlight article "^(Title):.*$" blue default
|
||||||
|
highlight article "https?://[^ ]+" red default
|
||||||
|
highlight article "\\[image\\ [0-9]+\\]" green default
|
51
newsboat/.newsboat/urls
Normal file
51
newsboat/.newsboat/urls
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UC2eYFnH61tmytImy1mTYvhA "Tech"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCXuqSBlHAE6Xw-yeJA0Tunw "Tech"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCeeFfhMcJa1kjtfZAGskOCA "Tech"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCsRIv1fsbnQRIPKmUQbRzZg "Tech"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCUQo7nzH1sXVpzL92VesANw "Tech"
|
||||||
|
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UC9C07cryUrKzLuAzwITPA3A "SC2" "SC2HL"
|
||||||
|
|
||||||
|
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCg7HRuQ93hl9v8dTSt_XDHA "Ferme" "~Banabé"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCsM4_jihNFYe4CtSkXvDR-Q "Ferme" "~permaculture agroécologie etc..."
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UC2avy3Pwc3yVtt-tPKJn33A "Ferme" "~Ma ferme autonome"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCleSLCKdAEovKJxX-Kgbccw "Ferme" "~Ma ferme autonome2"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCNqADXg6dTqov4klT703jYg "Ferme" "Les Jérômes"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UC9Q8WeyCb3yxySC3P3mGpBw "Ferme" "Le jardin d'Emerveille"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UC3-gwlrYQi5Q3t00Tyr2tmQ "Ferme" "Le jardin d'Olivier"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCSKdJoK73RLL-zOs4Sq_tTQ "Ferme" "Loic le jardineur"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCJfcABj0bAqFrK3tjhGsSpw "Ferme" "Theud Bald"
|
||||||
|
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCL_r1ELEvAuN0peKUxI0Umw "Permaculture" "Geoff Lawton"
|
||||||
|
|
||||||
|
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCzVy7DiPyVvfiOvXF_XMs4Q "Apnée" "~Adam Freediver"
|
||||||
|
|
||||||
|
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCJNItGjNhUx3Zz6W4OCVfHA "Bois" "~Passion renovation"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCvDpfkniGG6WkX5L7DwyGaA "Bois" "Olivier Verdier"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UC7TiJ6Tnxc_dSE42byTPMug "Bois" "Copain des copeaux"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UC9fGq2-6FaftcegcIadLf6A "Bois" "Samuel Mamias"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCOuow_HIYmeaIqi42zVs3qg "Bois" "Kirby Meets Audio"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UC7FkqjV8SU5I8FCHXQSQe9Q "Bois" "Ishitani furniture"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCjaudhGC0gBfEtMyQYzT3pA "Bois" "Atelier Floky"
|
||||||
|
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCRix1GJvSBNDpEFY561eSzw "DIY" "Laura Kampf"
|
||||||
|
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UC6mIxFTvXkWQVEHPsEdflzQ "Electronique" "GreatScott!"
|
||||||
|
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCP6qAy9q_Lkhzu2reZfun9g "Ski" "~WINTERACTIVITY"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCjHh3N6jUJKdrtTqNorpRhg "Ski" "Bon appetit"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCdtrhMQTlTWNLGcmx1Qy80Q "Ski" "Fabien Maierhofer"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UChkpEJqHjX-tGmYoGf8jdGA "Escalade" "EpicTV Relais Vertical"
|
||||||
|
|
||||||
|
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCgkhWgBGRp0sdFy2MHDWfSg "Math" "El Ji"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCYO_jab_esuFRV4b17AJtAw "Math" "3Blue1Brown"
|
||||||
|
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UC8ENHE5xdFSwx71u3fDH5Xw "Vim" "ThePrimeagen"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCXPHFM88IlFn68OmLwtPmZA "Vim" "Greg Hurrel"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCs_AZuYXi6NA9tkdbhjItHQ "AdminSys" "Xavki"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCvjgXvBlbQiydffZU7m1_aw "Programmation" "~Coding Train"
|
||||||
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCj_iGliGCkLcHSZ8eqVNPDQ "Programmation" "~Grafikart.fr"
|
81
zsh/.config/zsh/.zshrc
Normal file
81
zsh/.config/zsh/.zshrc
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
fpath+=$ZDOTDIR/pure
|
||||||
|
|
||||||
|
autoload -U compinit
|
||||||
|
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}' # menu select=2
|
||||||
|
zmodload zsh/complist
|
||||||
|
compinit
|
||||||
|
_comp_options+=(globdots) # Include hidden files.
|
||||||
|
|
||||||
|
# Prompt theme
|
||||||
|
# git clone https://github.com/sindresorhus/pure ~/.config/zsh/
|
||||||
|
autoload -U promptinit; promptinit
|
||||||
|
prompt pure
|
||||||
|
|
||||||
|
# Cursor for vimode
|
||||||
|
# ZLE hooks for prompt's vi mode status
|
||||||
|
function zle-line-init zle-keymap-select {
|
||||||
|
# Change the cursor style depending on keymap mode.
|
||||||
|
case $KEYMAP {
|
||||||
|
vicmd)
|
||||||
|
printf '\e[0 q' # Box.
|
||||||
|
;;
|
||||||
|
|
||||||
|
viins|main)
|
||||||
|
printf '\e[6 q' # Vertical bar.
|
||||||
|
;;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
zle -N zle-line-init
|
||||||
|
zle -N zle-keymap-select
|
||||||
|
|
||||||
|
# Switch between vimode quickly
|
||||||
|
export KEYTIMEOUT=1
|
||||||
|
|
||||||
|
# Alias
|
||||||
|
## Colors
|
||||||
|
alias ls='ls --color'
|
||||||
|
alias grep='grep --color=auto'
|
||||||
|
alias fgrep='fgrep --color=auto'
|
||||||
|
alias egrep='egrep --color=auto'
|
||||||
|
## Prompt when over right
|
||||||
|
alias cp='cp -iv'
|
||||||
|
alias mv='mv -iv'
|
||||||
|
alias rm='rm -i'
|
||||||
|
|
||||||
|
alias newsboat='tmux new -As newsboat newsboat'
|
||||||
|
|
||||||
|
|
||||||
|
# Autosuggestions
|
||||||
|
# git clone https://github.com/zsh-users/zsh-autosuggestions ~/.config/zsh/
|
||||||
|
source ~/.config/zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
|
||||||
|
ZSH_AUTOSUGGEST_STRATEGY=(history completion)
|
||||||
|
|
||||||
|
# Syntax Highlight
|
||||||
|
# git clone https://github.com/zsh-users/zsh-syntax-highlighting ~/.config/zsh/
|
||||||
|
source ~/.config/zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
||||||
|
|
||||||
|
# Substring search
|
||||||
|
# git clone https://github.com/zsh-users/zsh-history-substring-search ~/.config/zsh
|
||||||
|
source ~/.config/zsh/zsh-history-substring-search/zsh-history-substring-search.zsh
|
||||||
|
|
||||||
|
# Ignore duplicate commands in history
|
||||||
|
setopt HIST_IGNORE_DUPS
|
||||||
|
bindkey '^[[A' history-substring-search-up
|
||||||
|
bindkey '^[[B' history-substring-search-down
|
||||||
|
bindkey -M vicmd 'k' history-substring-search-up
|
||||||
|
bindkey -M vicmd 'j' history-substring-search-down
|
||||||
|
|
||||||
|
# Auto-ls
|
||||||
|
source ~/.config/zsh/auto-ls/auto-ls.zsh
|
||||||
|
|
||||||
|
|
||||||
|
source ~/.config/zsh/completion.zsh
|
||||||
|
source ~/.config/zsh/key-bindings.zsh
|
||||||
|
|
||||||
|
_fzf_complete_pass() {
|
||||||
|
ARGS="$@"
|
||||||
|
_fzf_complete '' "$@" < <(
|
||||||
|
command find ~/.password-store/ -name "*.gpg" | sed -r 's,(.*)\.password-store/(.*)\.gpg,\2,'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
1
zsh/.config/zsh/auto-ls
Submodule
1
zsh/.config/zsh/auto-ls
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 88704f2717fb176b91cdd4b7dbab05242bd02ddf
|
329
zsh/.config/zsh/completion.zsh
Normal file
329
zsh/.config/zsh/completion.zsh
Normal file
@ -0,0 +1,329 @@
|
|||||||
|
# ____ ____
|
||||||
|
# / __/___ / __/
|
||||||
|
# / /_/_ / / /_
|
||||||
|
# / __/ / /_/ __/
|
||||||
|
# /_/ /___/_/ completion.zsh
|
||||||
|
#
|
||||||
|
# - $FZF_TMUX (default: 0)
|
||||||
|
# - $FZF_TMUX_OPTS (default: '-d 40%')
|
||||||
|
# - $FZF_COMPLETION_TRIGGER (default: '**')
|
||||||
|
# - $FZF_COMPLETION_OPTS (default: empty)
|
||||||
|
|
||||||
|
# Both branches of the following `if` do the same thing -- define
|
||||||
|
# __fzf_completion_options such that `eval $__fzf_completion_options` sets
|
||||||
|
# all options to the same values they currently have. We'll do just that at
|
||||||
|
# the bottom of the file after changing options to what we prefer.
|
||||||
|
#
|
||||||
|
# IMPORTANT: Until we get to the `emulate` line, all words that *can* be quoted
|
||||||
|
# *must* be quoted in order to prevent alias expansion. In addition, code must
|
||||||
|
# be written in a way works with any set of zsh options. This is very tricky, so
|
||||||
|
# careful when you change it.
|
||||||
|
#
|
||||||
|
# Start by loading the builtin zsh/parameter module. It provides `options`
|
||||||
|
# associative array that stores current shell options.
|
||||||
|
if 'zmodload' 'zsh/parameter' 2>'/dev/null' && (( ${+options} )); then
|
||||||
|
# This is the fast branch and it gets taken on virtually all Zsh installations.
|
||||||
|
#
|
||||||
|
# ${(kv)options[@]} expands to array of keys (option names) and values ("on"
|
||||||
|
# or "off"). The subsequent expansion# with (j: :) flag joins all elements
|
||||||
|
# together separated by spaces. __fzf_completion_options ends up with a value
|
||||||
|
# like this: "options=(shwordsplit off aliases on ...)".
|
||||||
|
__fzf_completion_options="options=(${(j: :)${(kv)options[@]}})"
|
||||||
|
else
|
||||||
|
# This branch is much slower because it forks to get the names of all
|
||||||
|
# zsh options. It's possible to eliminate this fork but it's not worth the
|
||||||
|
# trouble because this branch gets taken only on very ancient or broken
|
||||||
|
# zsh installations.
|
||||||
|
() {
|
||||||
|
# That `()` above defines an anonymous function. This is essentially a scope
|
||||||
|
# for local parameters. We use it to avoid polluting global scope.
|
||||||
|
'local' '__fzf_opt'
|
||||||
|
__fzf_completion_options="setopt"
|
||||||
|
# `set -o` prints one line for every zsh option. Each line contains option
|
||||||
|
# name, some spaces, and then either "on" or "off". We just want option names.
|
||||||
|
# Expansion with (@f) flag splits a string into lines. The outer expansion
|
||||||
|
# removes spaces and everything that follow them on every line. __fzf_opt
|
||||||
|
# ends up iterating over option names: shwordsplit, aliases, etc.
|
||||||
|
for __fzf_opt in "${(@)${(@f)$(set -o)}%% *}"; do
|
||||||
|
if [[ -o "$__fzf_opt" ]]; then
|
||||||
|
# Option $__fzf_opt is currently on, so remember to set it back on.
|
||||||
|
__fzf_completion_options+=" -o $__fzf_opt"
|
||||||
|
else
|
||||||
|
# Option $__fzf_opt is currently off, so remember to set it back off.
|
||||||
|
__fzf_completion_options+=" +o $__fzf_opt"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
# The value of __fzf_completion_options here looks like this:
|
||||||
|
# "setopt +o shwordsplit -o aliases ..."
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Enable the default zsh options (those marked with <Z> in `man zshoptions`)
|
||||||
|
# but without `aliases`. Aliases in functions are expanded when functions are
|
||||||
|
# defined, so if we disable aliases here, we'll be sure to have no pesky
|
||||||
|
# aliases in any of our functions. This way we won't need prefix every
|
||||||
|
# command with `command` or to quote every word to defend against global
|
||||||
|
# aliases. Note that `aliases` is not the only option that's important to
|
||||||
|
# control. There are several others that could wreck havoc if they are set
|
||||||
|
# to values we don't expect. With the following `emulate` command we
|
||||||
|
# sidestep this issue entirely.
|
||||||
|
'emulate' 'zsh' '-o' 'no_aliases'
|
||||||
|
|
||||||
|
# This brace is the start of try-always block. The `always` part is like
|
||||||
|
# `finally` in lesser languages. We use it to *always* restore user options.
|
||||||
|
{
|
||||||
|
|
||||||
|
# Bail out if not interactive shell.
|
||||||
|
[[ -o interactive ]] || return 0
|
||||||
|
|
||||||
|
# To use custom commands instead of find, override _fzf_compgen_{path,dir}
|
||||||
|
if ! declare -f _fzf_compgen_path > /dev/null; then
|
||||||
|
_fzf_compgen_path() {
|
||||||
|
echo "$1"
|
||||||
|
command find -L "$1" \
|
||||||
|
-name .git -prune -o -name .hg -prune -o -name .svn -prune -o \( -type d -o -type f -o -type l \) \
|
||||||
|
-a -not -path "$1" -print 2> /dev/null | sed 's@^\./@@'
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! declare -f _fzf_compgen_dir > /dev/null; then
|
||||||
|
_fzf_compgen_dir() {
|
||||||
|
command find -L "$1" \
|
||||||
|
-name .git -prune -o -name .hg -prune -o -name .svn -prune -o -type d \
|
||||||
|
-a -not -path "$1" -print 2> /dev/null | sed 's@^\./@@'
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
###########################################################
|
||||||
|
|
||||||
|
__fzf_comprun() {
|
||||||
|
if [[ "$(type _fzf_comprun 2>&1)" =~ function ]]; then
|
||||||
|
_fzf_comprun "$@"
|
||||||
|
elif [ -n "$TMUX_PANE" ] && { [ "${FZF_TMUX:-0}" != 0 ] || [ -n "$FZF_TMUX_OPTS" ]; }; then
|
||||||
|
shift
|
||||||
|
if [ -n "$FZF_TMUX_OPTS" ]; then
|
||||||
|
fzf-tmux ${(Q)${(Z+n+)FZF_TMUX_OPTS}} -- "$@"
|
||||||
|
else
|
||||||
|
fzf-tmux -d ${FZF_TMUX_HEIGHT:-40%} -- "$@"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
shift
|
||||||
|
fzf "$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Extract the name of the command. e.g. foo=1 bar baz**<tab>
|
||||||
|
__fzf_extract_command() {
|
||||||
|
local token tokens
|
||||||
|
tokens=(${(z)1})
|
||||||
|
for token in $tokens; do
|
||||||
|
token=${(Q)token}
|
||||||
|
if [[ "$token" =~ [[:alnum:]] && ! "$token" =~ "=" ]]; then
|
||||||
|
echo "$token"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo "${tokens[1]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
__fzf_generic_path_completion() {
|
||||||
|
local base lbuf cmd compgen fzf_opts suffix tail dir leftover matches
|
||||||
|
base=$1
|
||||||
|
lbuf=$2
|
||||||
|
cmd=$(__fzf_extract_command "$lbuf")
|
||||||
|
compgen=$3
|
||||||
|
fzf_opts=$4
|
||||||
|
suffix=$5
|
||||||
|
tail=$6
|
||||||
|
|
||||||
|
setopt localoptions nonomatch
|
||||||
|
eval "base=$base"
|
||||||
|
[[ $base = *"/"* ]] && dir="$base"
|
||||||
|
while [ 1 ]; do
|
||||||
|
if [[ -z "$dir" || -d ${dir} ]]; then
|
||||||
|
leftover=${base/#"$dir"}
|
||||||
|
leftover=${leftover/#\/}
|
||||||
|
[ -z "$dir" ] && dir='.'
|
||||||
|
[ "$dir" != "/" ] && dir="${dir/%\//}"
|
||||||
|
matches=$(eval "$compgen $(printf %q "$dir")" | FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse --bind=ctrl-z:ignore $FZF_DEFAULT_OPTS $FZF_COMPLETION_OPTS" __fzf_comprun "$cmd" ${(Q)${(Z+n+)fzf_opts}} -q "$leftover" | while read item; do
|
||||||
|
echo -n "${(q)item}$suffix "
|
||||||
|
done)
|
||||||
|
matches=${matches% }
|
||||||
|
if [ -n "$matches" ]; then
|
||||||
|
LBUFFER="$lbuf$matches$tail"
|
||||||
|
fi
|
||||||
|
zle reset-prompt
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
dir=$(dirname "$dir")
|
||||||
|
dir=${dir%/}/
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
_fzf_path_completion() {
|
||||||
|
__fzf_generic_path_completion "$1" "$2" _fzf_compgen_path \
|
||||||
|
"-m" "" " "
|
||||||
|
}
|
||||||
|
|
||||||
|
_fzf_dir_completion() {
|
||||||
|
__fzf_generic_path_completion "$1" "$2" _fzf_compgen_dir \
|
||||||
|
"" "/" ""
|
||||||
|
}
|
||||||
|
|
||||||
|
_fzf_feed_fifo() (
|
||||||
|
command rm -f "$1"
|
||||||
|
mkfifo "$1"
|
||||||
|
cat <&0 > "$1" &
|
||||||
|
)
|
||||||
|
|
||||||
|
_fzf_complete() {
|
||||||
|
setopt localoptions ksh_arrays
|
||||||
|
# Split arguments around --
|
||||||
|
local args rest str_arg i sep
|
||||||
|
args=("$@")
|
||||||
|
sep=
|
||||||
|
for i in {0..${#args[@]}}; do
|
||||||
|
if [[ "${args[$i]}" = -- ]]; then
|
||||||
|
sep=$i
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [[ -n "$sep" ]]; then
|
||||||
|
str_arg=
|
||||||
|
rest=("${args[@]:$((sep + 1)):${#args[@]}}")
|
||||||
|
args=("${args[@]:0:$sep}")
|
||||||
|
else
|
||||||
|
str_arg=$1
|
||||||
|
args=()
|
||||||
|
shift
|
||||||
|
rest=("$@")
|
||||||
|
fi
|
||||||
|
|
||||||
|
local fifo lbuf cmd matches post
|
||||||
|
fifo="${TMPDIR:-/tmp}/fzf-complete-fifo-$$"
|
||||||
|
lbuf=${rest[0]}
|
||||||
|
cmd=$(__fzf_extract_command "$lbuf")
|
||||||
|
post="${funcstack[1]}_post"
|
||||||
|
type $post > /dev/null 2>&1 || post=cat
|
||||||
|
|
||||||
|
_fzf_feed_fifo "$fifo"
|
||||||
|
matches=$(FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse --bind=ctrl-z:ignore $FZF_DEFAULT_OPTS $FZF_COMPLETION_OPTS $str_arg" __fzf_comprun "$cmd" "${args[@]}" -q "${(Q)prefix}" < "$fifo" | $post | tr '\n' ' ')
|
||||||
|
if [ -n "$matches" ]; then
|
||||||
|
LBUFFER="$lbuf$matches"
|
||||||
|
fi
|
||||||
|
command rm -f "$fifo"
|
||||||
|
}
|
||||||
|
|
||||||
|
_fzf_complete_telnet() {
|
||||||
|
_fzf_complete +m -- "$@" < <(
|
||||||
|
command grep -v '^\s*\(#\|$\)' /etc/hosts | command grep -Fv '0.0.0.0' |
|
||||||
|
awk '{if (length($2) > 0) {print $2}}' | sort -u
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
_fzf_complete_ssh() {
|
||||||
|
_fzf_complete +m -- "$@" < <(
|
||||||
|
setopt localoptions nonomatch
|
||||||
|
command cat <(command tail -n +1 ~/.ssh/config ~/.ssh/config.d/* /etc/ssh/ssh_config 2> /dev/null | command grep -i '^\s*host\(name\)\? ' | awk '{for (i = 2; i <= NF; i++) print $1 " " $i}' | command grep -v '[*?]') \
|
||||||
|
<(command grep -oE '^[[a-z0-9.,:-]+' ~/.ssh/known_hosts | tr ',' '\n' | tr -d '[' | awk '{ print $1 " " $1 }') \
|
||||||
|
<(command grep -v '^\s*\(#\|$\)' /etc/hosts | command grep -Fv '0.0.0.0') |
|
||||||
|
awk '{if (length($2) > 0) {print $2}}' | sort -u
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
_fzf_complete_export() {
|
||||||
|
_fzf_complete -m -- "$@" < <(
|
||||||
|
declare -xp | sed 's/=.*//' | sed 's/.* //'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
_fzf_complete_unset() {
|
||||||
|
_fzf_complete -m -- "$@" < <(
|
||||||
|
declare -xp | sed 's/=.*//' | sed 's/.* //'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
_fzf_complete_unalias() {
|
||||||
|
_fzf_complete +m -- "$@" < <(
|
||||||
|
alias | sed 's/=.*//'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
_fzf_complete_kill() {
|
||||||
|
_fzf_complete -m --preview 'echo {}' --preview-window down:3:wrap --min-height 15 -- "$@" < <(
|
||||||
|
command ps -ef | sed 1d
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
_fzf_complete_kill_post() {
|
||||||
|
awk '{print $2}'
|
||||||
|
}
|
||||||
|
|
||||||
|
fzf-completion() {
|
||||||
|
local tokens cmd prefix trigger tail matches lbuf d_cmds
|
||||||
|
setopt localoptions noshwordsplit noksh_arrays noposixbuiltins
|
||||||
|
|
||||||
|
# http://zsh.sourceforge.net/FAQ/zshfaq03.html
|
||||||
|
# http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion-Flags
|
||||||
|
tokens=(${(z)LBUFFER})
|
||||||
|
if [ ${#tokens} -lt 1 ]; then
|
||||||
|
zle ${fzf_default_completion:-expand-or-complete}
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
cmd=$(__fzf_extract_command "$LBUFFER")
|
||||||
|
|
||||||
|
# Explicitly allow for empty trigger.
|
||||||
|
trigger=${FZF_COMPLETION_TRIGGER-'**'}
|
||||||
|
[ -z "$trigger" -a ${LBUFFER[-1]} = ' ' ] && tokens+=("")
|
||||||
|
|
||||||
|
# When the trigger starts with ';', it becomes a separate token
|
||||||
|
if [[ ${LBUFFER} = *"${tokens[-2]}${tokens[-1]}" ]]; then
|
||||||
|
tokens[-2]="${tokens[-2]}${tokens[-1]}"
|
||||||
|
tokens=(${tokens[0,-2]})
|
||||||
|
fi
|
||||||
|
|
||||||
|
lbuf=$LBUFFER
|
||||||
|
tail=${LBUFFER:$(( ${#LBUFFER} - ${#trigger} ))}
|
||||||
|
# Kill completion (do not require trigger sequence)
|
||||||
|
if [ "$cmd" = kill -a ${LBUFFER[-1]} = ' ' ]; then
|
||||||
|
tail=$trigger
|
||||||
|
tokens+=$trigger
|
||||||
|
lbuf="$lbuf$trigger"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Trigger sequence given
|
||||||
|
if [ ${#tokens} -gt 1 -a "$tail" = "$trigger" ]; then
|
||||||
|
d_cmds=(${=FZF_COMPLETION_DIR_COMMANDS:-cd pushd rmdir})
|
||||||
|
|
||||||
|
[ -z "$trigger" ] && prefix=${tokens[-1]} || prefix=${tokens[-1]:0:-${#trigger}}
|
||||||
|
[ -n "${tokens[-1]}" ] && lbuf=${lbuf:0:-${#tokens[-1]}}
|
||||||
|
|
||||||
|
if eval "type _fzf_complete_${cmd} > /dev/null"; then
|
||||||
|
prefix="$prefix" eval _fzf_complete_${cmd} ${(q)lbuf}
|
||||||
|
zle reset-prompt
|
||||||
|
elif [ ${d_cmds[(i)$cmd]} -le ${#d_cmds} ]; then
|
||||||
|
_fzf_dir_completion "$prefix" "$lbuf"
|
||||||
|
else
|
||||||
|
_fzf_path_completion "$prefix" "$lbuf"
|
||||||
|
fi
|
||||||
|
# Fall back to default completion
|
||||||
|
else
|
||||||
|
zle ${fzf_default_completion:-expand-or-complete}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
[ -z "$fzf_default_completion" ] && {
|
||||||
|
binding=$(bindkey '^I')
|
||||||
|
[[ $binding =~ 'undefined-key' ]] || fzf_default_completion=$binding[(s: :w)2]
|
||||||
|
unset binding
|
||||||
|
}
|
||||||
|
|
||||||
|
zle -N fzf-completion
|
||||||
|
bindkey '^I' fzf-completion
|
||||||
|
|
||||||
|
} always {
|
||||||
|
# Restore the original options.
|
||||||
|
eval $__fzf_completion_options
|
||||||
|
'unset' '__fzf_completion_options'
|
||||||
|
}
|
114
zsh/.config/zsh/key-bindings.zsh
Normal file
114
zsh/.config/zsh/key-bindings.zsh
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
# ____ ____
|
||||||
|
# / __/___ / __/
|
||||||
|
# / /_/_ / / /_
|
||||||
|
# / __/ / /_/ __/
|
||||||
|
# /_/ /___/_/ key-bindings.zsh
|
||||||
|
#
|
||||||
|
# - $FZF_TMUX_OPTS
|
||||||
|
# - $FZF_CTRL_T_COMMAND
|
||||||
|
# - $FZF_CTRL_T_OPTS
|
||||||
|
# - $FZF_CTRL_R_OPTS
|
||||||
|
# - $FZF_ALT_C_COMMAND
|
||||||
|
# - $FZF_ALT_C_OPTS
|
||||||
|
|
||||||
|
# Key bindings
|
||||||
|
# ------------
|
||||||
|
|
||||||
|
# The code at the top and the bottom of this file is the same as in completion.zsh.
|
||||||
|
# Refer to that file for explanation.
|
||||||
|
if 'zmodload' 'zsh/parameter' 2>'/dev/null' && (( ${+options} )); then
|
||||||
|
__fzf_key_bindings_options="options=(${(j: :)${(kv)options[@]}})"
|
||||||
|
else
|
||||||
|
() {
|
||||||
|
__fzf_key_bindings_options="setopt"
|
||||||
|
'local' '__fzf_opt'
|
||||||
|
for __fzf_opt in "${(@)${(@f)$(set -o)}%% *}"; do
|
||||||
|
if [[ -o "$__fzf_opt" ]]; then
|
||||||
|
__fzf_key_bindings_options+=" -o $__fzf_opt"
|
||||||
|
else
|
||||||
|
__fzf_key_bindings_options+=" +o $__fzf_opt"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
'emulate' 'zsh' '-o' 'no_aliases'
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
[[ -o interactive ]] || return 0
|
||||||
|
|
||||||
|
# CTRL-T - Paste the selected file path(s) into the command line
|
||||||
|
__fsel() {
|
||||||
|
local cmd="${FZF_CTRL_T_COMMAND:-"command find -L . -mindepth 1 \\( -path '*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' -o -fstype 'proc' \\) -prune \
|
||||||
|
-o -type f -print \
|
||||||
|
-o -type d -print \
|
||||||
|
-o -type l -print 2> /dev/null | cut -b3-"}"
|
||||||
|
setopt localoptions pipefail no_aliases 2> /dev/null
|
||||||
|
local item
|
||||||
|
eval "$cmd" | FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse --bind=ctrl-z:ignore $FZF_DEFAULT_OPTS $FZF_CTRL_T_OPTS" $(__fzfcmd) -m "$@" | while read item; do
|
||||||
|
echo -n "${(q)item} "
|
||||||
|
done
|
||||||
|
local ret=$?
|
||||||
|
echo
|
||||||
|
return $ret
|
||||||
|
}
|
||||||
|
|
||||||
|
__fzfcmd() {
|
||||||
|
[ -n "$TMUX_PANE" ] && { [ "${FZF_TMUX:-0}" != 0 ] || [ -n "$FZF_TMUX_OPTS" ]; } &&
|
||||||
|
echo "fzf-tmux ${FZF_TMUX_OPTS:--d${FZF_TMUX_HEIGHT:-40%}} -- " || echo "fzf"
|
||||||
|
}
|
||||||
|
|
||||||
|
fzf-file-widget() {
|
||||||
|
LBUFFER="${LBUFFER}$(__fsel)"
|
||||||
|
local ret=$?
|
||||||
|
zle reset-prompt
|
||||||
|
return $ret
|
||||||
|
}
|
||||||
|
zle -N fzf-file-widget
|
||||||
|
bindkey '^T' fzf-file-widget
|
||||||
|
|
||||||
|
# ALT-C - cd into the selected directory
|
||||||
|
fzf-cd-widget() {
|
||||||
|
local cmd="${FZF_ALT_C_COMMAND:-"command find -L . -mindepth 1 \\( -path '*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' -o -fstype 'proc' \\) -prune \
|
||||||
|
-o -type d -print 2> /dev/null | cut -b3-"}"
|
||||||
|
setopt localoptions pipefail no_aliases 2> /dev/null
|
||||||
|
local dir="$(eval "$cmd" | FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse --bind=ctrl-z:ignore $FZF_DEFAULT_OPTS $FZF_ALT_C_OPTS" $(__fzfcmd) +m)"
|
||||||
|
if [[ -z "$dir" ]]; then
|
||||||
|
zle redisplay
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
zle push-line # Clear buffer. Auto-restored on next prompt.
|
||||||
|
BUFFER="cd ${(q)dir}"
|
||||||
|
zle accept-line
|
||||||
|
local ret=$?
|
||||||
|
unset dir # ensure this doesn't end up appearing in prompt expansion
|
||||||
|
zle reset-prompt
|
||||||
|
return $ret
|
||||||
|
}
|
||||||
|
zle -N fzf-cd-widget
|
||||||
|
bindkey '\ec' fzf-cd-widget
|
||||||
|
|
||||||
|
# CTRL-R - Paste the selected command from history into the command line
|
||||||
|
fzf-history-widget() {
|
||||||
|
local selected num
|
||||||
|
setopt localoptions noglobsubst noposixbuiltins pipefail no_aliases 2> /dev/null
|
||||||
|
selected=( $(fc -rl 1 | perl -ne 'print if !$seen{(/^\s*[0-9]+\**\s+(.*)/, $1)}++' |
|
||||||
|
FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} $FZF_DEFAULT_OPTS -n2..,.. --tiebreak=index --bind=ctrl-r:toggle-sort,ctrl-z:ignore $FZF_CTRL_R_OPTS --query=${(qqq)LBUFFER} +m" $(__fzfcmd)) )
|
||||||
|
local ret=$?
|
||||||
|
if [ -n "$selected" ]; then
|
||||||
|
num=$selected[1]
|
||||||
|
if [ -n "$num" ]; then
|
||||||
|
zle vi-fetch-history -n $num
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
zle reset-prompt
|
||||||
|
return $ret
|
||||||
|
}
|
||||||
|
zle -N fzf-history-widget
|
||||||
|
bindkey '^R' fzf-history-widget
|
||||||
|
|
||||||
|
} always {
|
||||||
|
eval $__fzf_key_bindings_options
|
||||||
|
'unset' '__fzf_key_bindings_options'
|
||||||
|
}
|
1
zsh/.config/zsh/pure
Submodule
1
zsh/.config/zsh/pure
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit f4c6d79ba2417d63c8008b6acce628631fd462ec
|
1
zsh/.config/zsh/zsh-autosuggestions
Submodule
1
zsh/.config/zsh/zsh-autosuggestions
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit a411ef3e0992d4839f0732ebeb9823024afaaaa8
|
1
zsh/.config/zsh/zsh-history-substring-search
Submodule
1
zsh/.config/zsh/zsh-history-substring-search
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 0f80b8eb3368b46e5e573c1d91ae69eb095db3fb
|
1
zsh/.config/zsh/zsh-syntax-highlighting
Submodule
1
zsh/.config/zsh/zsh-syntax-highlighting
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit dffe304567c86f06bf1be0fce200077504e79783
|
17
zsh/.zshenv
Normal file
17
zsh/.zshenv
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
export TERM='rxvt-256color'
|
||||||
|
|
||||||
|
# XDG
|
||||||
|
export XDG_CONFIG_HOME=$HOME/.config
|
||||||
|
|
||||||
|
# editor
|
||||||
|
export EDITOR="nvim"
|
||||||
|
export VISUAL="nvim"
|
||||||
|
|
||||||
|
|
||||||
|
# zsh
|
||||||
|
export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
|
||||||
|
export HISTFILE="$ZDOTDIR/.zhistory" # History filepath
|
||||||
|
export HISTSIZE=10000 # Maximum events for internal history
|
||||||
|
export SAVEHIST=10000 # Maximum events in history file
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user