commit cef0e04e829d4bf80e38435e8beee97c2158f90c
parent a8a3506397c71d3faed8df397a80b9eb253444a7
Author: jacob@thinkpad <jacobouno@protonmail.com>
Date: Fri, 3 Jul 2020 18:39:35 -0700
Remove '.unused' containing my unused config files
Diffstat:
34 files changed, 0 insertions(+), 5177 deletions(-)
diff --git a/.unused/bash/.bash_logout b/.unused/bash/.bash_logout
@@ -1,3 +0,0 @@
-#
-# ~/.bash_logout
-#
diff --git a/.unused/bash/.bash_profile b/.unused/bash/.bash_profile
@@ -1,5 +0,0 @@
-#
-# ~/.bash_profile
-#
-
-[[ -f ~/.bashrc ]] && . ~/.bashrc
diff --git a/.unused/bash/.bashrc b/.unused/bash/.bashrc
@@ -1,15 +0,0 @@
-#!/bin/bash
-# Jacob Edwards, Feb 2020
-source ~/.aliases
-source ~/.profile
-
-set -o vi
-export HISTCONTROL=ignoreboth:erasedups
-export HISTTIMEFORMAT='%d/%m/%Y %T '
-export HISTSIZE=1000000
-
-# shopt
-shopt -s histappend
-
-# (~) []
-PS1='\e[0;34m(\e[0m\w\e[0;34m)\e[0m '
diff --git a/.unused/bspwm/.config/bspwm/bspwmrc b/.unused/bspwm/.config/bspwm/bspwmrc
@@ -1,46 +0,0 @@
-#!/bin/dash
-# Jacob Edwards, 2020
-# bspwmrc
-
-# init workspaces
-bspc monitor -d general browsing coding coding^ lbry video editing music undef undef2
-#bspc monitor ^2 Alt -d 'general 1' browsing writing recording 'general 2' video editing music
-
-# padding and gaps
-value=0
-bspc config left_padding "$value"
-bspc config right_padding "$value"
-bspc config top_padding "$value"
-bspc config bottom_padding "$value"
-bspc config window_gap 8
-
- # monocle padding
- value=0
- bspc config left_monocle_padding "$value"
- bspc config right_monocle_padding "$value"
- bspc config top_monocle_padding "$value"
- bspc config bottom_monocle_padding "$value"
-
-# borders
-bspc config border_width 1
-[ "$( hostname )" = 'nzxt' ] && bspc config border_width 3 # if on my desktop increase border size
-bspc config normal_border_color '#000000'
-bspc config focused_border_color '#fff0f0'
-
-# random values
-bspc config split_ratio 0.5
-
-# monocle settings
-bspc config single_monocle false
-bspc config borderless_monocle false
-bspc config gapless_monocle true
-
-# rules
-bspc rule --add mpv state=fullscreen
-bspc rule --add Sxiv state=fullscreen
-bspc rule --add Zathura state=tiled
-bspc rule --add ncmpcpp state=floating rectangle="$( p-res 68x76+9+16 )"
-bspc rule --add qutebrowser desktop='browsing' follow=on state=fullscreen
-bspc rule --add Surf:surf desktop='browsing' follow=on state=fullscreen
-bspc rule --add LBRY:lbry state=fullscreen desktop='lbry' follow=on
-bspc rule --add virt-viewer state=pseudo_tiled
diff --git a/.unused/conky/.config/conky/.themepacks b/.unused/conky/.config/conky/.themepacks
@@ -1,4 +0,0 @@
-default-themes-1.1.cmtp.7z
-default-themes-1.2.cmtp.7z
-default-themes-2.1.cmtp.7z
-default-themes-2.1.cmtp.7z
diff --git a/.unused/conky/.config/conky/conky-bspwm.conf b/.unused/conky/.config/conky/conky-bspwm.conf
@@ -1,44 +0,0 @@
-conky.config = {
- alignment = 'top_left',
- background = false,
- border_width = 0,
- cpu_avg_samples = 2,
- default_color = 'cyan',
- default_outline_color = 'white',
- default_shade_color = 'white',
- double_buffer = true,
- draw_borders = false,
- draw_graph_borders = true,
- draw_outline = false,
- draw_shades = false,
- extra_newline = false,
- font = 'DejaVu Sans Mono:size=12',
- gap_x = 60,
- gap_y = 60,
- minimum_height = 5,
- minimum_width = 5,
- net_avg_samples = 2,
- no_buffers = true,
- out_to_console = false,
- out_to_ncurses = false,
- out_to_stderr = false,
- out_to_x = true,
- own_window = true,
- own_window_class = 'Conky',
- own_window_type = 'desktop',
- show_graph_range = false,
- show_graph_scale = false,
- stippled_borders = 0,
- update_interval = 0.35,
- uppercase = false,
- use_spacer = 'none',
- use_xft = true,
- maximum_width = 400;
- minimum_width= 340;
-}
-
-conky.text = [[
-bswpm
-${hr 2}
-${cat /tmp/bspwm.info}
-]]
diff --git a/.unused/conky/.config/conky/conky.conf b/.unused/conky/.config/conky/conky.conf
@@ -1,79 +0,0 @@
---[[
-Conky, a system monitor, based on torsmo
-
-Any original torsmo code is licensed under the BSD license
-
-All code written since the fork of torsmo is licensed under the GPL
-
-Please see COPYING for details
-
-Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen
-Copyright (c) 2005-2019 Brenden Matthews, Philip Kovacs, et. al. (see AUTHORS)
-All rights reserved.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-]]
-
-conky.config = {
- alignment = 'top_right',
- background = false,
- border_width = 0,
- cpu_avg_samples = 2,
- default_color = 'cyan',
- default_outline_color = 'white',
- default_shade_color = 'white',
- double_buffer = true,
- draw_borders = false,
- draw_graph_borders = true,
- draw_outline = false,
- draw_shades = false,
- extra_newline = false,
- font = 'DejaVu Sans Mono:size=12',
- gap_x = 60,
- gap_y = 60,
- net_avg_samples = 2,
- no_buffers = true,
- out_to_console = false,
- out_to_ncurses = false,
- out_to_stderr = false,
- out_to_x = true,
- own_window = true,
- own_window_class = 'Conky',
- own_window_type = 'desktop',
- show_graph_range = false,
- show_graph_scale = false,
- stippled_borders = 0,
- update_interval = 1.0,
- uppercase = false,
- use_spacer = 'none',
- use_xft = true,
- maximum_width = 500;
- minimum_height = 5,
- minimum_width= 340;
-}
-
-conky.text = [[
-info $nodename ${color #228899}up $color$uptime
-time ${time %R, %A %F}
-$hr
-battery ${color #22c799}$battery_percent% $battery_bar
-$hr
-${color #228899}memory $color$memperc% ${membar 4}
-${color #228899}proccessor $color$cpu% ${cpubar 4}
-${color #228899}filesystem $color${fs_used /}/${fs_size /} ${fs_bar 6 /}
-$if_mpd_playing
-${color #228899}$hr
-${color #998822}${mpd_title 20} ${color gray}by${color #998822} $mpd_artist
-$mpd_bar 6 60
-$endif
-]]
diff --git a/.unused/conky/.config/conky/done b/.unused/conky/.config/conky/done
diff --git a/.unused/lemonbar/.local/bin/lemon b/.unused/lemonbar/.local/bin/lemon
@@ -1,186 +0,0 @@
-#!/usr/bin/env dash
-# Jacob Edwards, January to Febuary, 2020
-# completly ugly (sourcecode), functianal, lemonbar config.
-
-set -e
-
-# kill lemonbar if it's running
-if [ -n "$( pidof -s lemonbar )" ]; then
- bspc config bottom_padding 0
- killall lemonbar
- killall lemon
- exit 0
-else
- bspc config bottom_padding 0
-fi
-
-
-
-# get profile
-if [ -z "$1" ]; then
- printf 'specify profile\n'
- exit 1
-else
- profile=$1
-fi
-
-
-
-# lower lemonbar after start
-lower(){
- sleep 2.8
- xdo lower -n lemonbar
-}
-
-
-
-# colors
-defaultbg='00000a'
-primaryfg='dd5555'
-
-c_workspace='%%{F#fff}'
-
-c_time="%%{F#$primaryfg}"
-c_date="%%{F#$primaryfg}"
-
-c_mpd_status="%%{F#aaa}"
-c_mpd_title="%%{F#f55}"
-c_mpd_sep="%%{F#aaa}"
-c_mpd_auther="%%{F#f55}"
-
-c_battery_discharging="%%{F#f55}"
-c_battery_charging="%%{F#55a55f}"
-c_battery_full="%%{F#fff}"
-c_battery_perc_sign="%%{F#fff}"
-c_battery_prefix="%%{F#555}"
-
-c_memory="%%{F#$primaryfg}"
-c_memory_sep="%%{F#777}"
-
-c_cpu="%%{F#$primaryfg}"
-c_cpuperc="%%{F#777}"
-
-# static variables
-memmax="$( calc "$( free --mega | head -n 2 | tail -n 1 | awk '{print $2}' )" / 1024 | head -c 5)"
-
-cpumax="$( calc "$( cat /sys/bus/cpu/devices/cpu0/cpufreq/cpuinfo_max_freq )" / 1000 | awk '{printf $1}' )"
-# functions
-bspwm_workspace(){
- printf "$c_workspace"
- bspc query --desktops --desktop --names
-}
-
-gettime(){
- printf "$c_time"
- date "+%R"
-}
-
-getdate(){
- printf "$c_date"
- date '+%A %d'
-}
-
-cpu(){
- # I was overcomplecating things, thankyou.
- # https://stackoverflow.com/questions/9229333/how-to-get-overall-cpu-usage-e-g-57-on-linux
- local cpu="$( ps -A -o pcpu | tail -n +2 | paste -sd+ | bc )"
- cpu="$( calc "$cpu" / 4 )" # maybe dividing it by treads will make it accurate?
-
- printf "$c_cpu$cpu$c_cpuperc%%"
-}
-
-mpd_playing(){
- local current="$( mpc status | head -n 2 | tail -n 1 | awk '{print $1}' )"
-
- if [ "$current" = '[playing]' ] || [ "$current" = '[paused]' ]; then
- printf "$c_mpd_status$( mpc status | head -n 2 | tail -n 1 | awk '{print $1}' ) "
- printf "$c_mpd_title$(mpc current | awk -F ' - ' '{print $2}')"
- printf "$c_mpd_sep by "
- printf "$c_mpd_auther$( mpc current | awk -F ' - ' '{print $1}' )"
- fi
-}
-
-battery(){
- local powerd='/sys/class/power_supply/'
- local perc="$( cat "$powerd/BAT0/capacity" )"
- local status="$( cat "$powerd/AC/online" )"
-
- if [ "$status" -eq '0' ]; then
- printf "${c_battery_prefix}*${c_battery_discharging}"
- elif [ "$status" -eq 1 -a "$perc" -ge 100 ]; then
- printf "${c_battery_charging}"
- printf "${c_battery_prefix}~${c_battery_full}"
- elif [ "$status" -eq '1' ]; then
- printf "${c_battery_prefix}^${c_battery_charging}"
- fi
-
- printf "$perc"
- printf "$c_battery_perc_sign%%"
-}
-
-memory_gig(){
- local mem="$( free --mega | head -n 2 | tail -n 1 | awk '{print $3}' )"
- mem="$( calc "$mem" / 1024 | head -c 5)"
- printf "$c_memory$memmax$c_memory_sep/$c_memory${mem}g"
-}
-
-memory_meg(){
- local mem="$( free --mega | head -n 2 | tail -n 1 | awk '{print $3}' )"
- printf "$c_memory${mem}m"
-}
-
-
-# start bar
-lower &
-
-if [ "$profile" = 'laptop' ]; then
- while true; do
- getdate="$( getdate )"
- gettime="$( gettime )"
- ws="$( bspwm_workspace )"
- memory="$( memory_meg )"
- #timesince="$( rdate "$LOG" | tail -n1)"
- bat="$( battery )"
- mpd="$( mpd_playing )"
- #cpu="$( cpu )"
-
- #echo "%{l} $gettime $ws%{c}$mpd %{r} $getdate $memory $bat "
- #printf "%%{B#$defaultbg}%%{F#$defaultfg}"
- echo "%{l} $gettime ($getdate) $ws %{c} $mpd %{r} $memory %{F#$defaultfg}[ $bat ] "
- sleep 0.28
- done | lemonbar\
- -n lemonbar\
- -f gohufont\
- -F '#ffffff'\
- -B "#$defaultbg"\
- -g 'x20+0+0'\
- -b\
- -a 0\
- -o 1\
- -u 5\
- -U '#722'
-
-elif [ "$profile" = 'desktop' ]; then
- while true; do
- getdate="$( getdate )"
- gettime="$( gettime )"
- ws="$( bspwm_workspace )"
- memory="$( memory_meg )"
- mpd="$( mpd_playing )"
-
- echo "%{l} $gettime ($getdate) $ws %{c} $mpd %{r} $memory "
- sleep 0.28
- done | lemonbar\
- -n lemonbar\
- -f gohufont\
- -F '#ffffff'\
- -B "#$defaultbg"\
- -g 'x20+0+0'\
- -b\
- -a 0\
- -o 1\
- -u 5\
- -U '#722'
-fi
-
-# vim:filetype=sh
diff --git a/.unused/ncmpcpp/.config/ncmpcpp/bindings b/.unused/ncmpcpp/.config/ncmpcpp/bindings
@@ -1,544 +0,0 @@
-##############################################################
-## This is the example bindings file. Copy it to ##
-## ~/.ncmpcpp/bindings or $XDG_CONFIG_HOME/ncmpcpp/bindings ##
-## and set up your preferences ##
-##############################################################
-##
-##### General rules #####
-##
-## 1) Because each action has runtime checks whether it's
-## ok to run it, a few actions can be bound to one key.
-## Actions will be bound in order given in configuration
-## file. When a key is pressed, first action in order
-## will test itself whether it's possible to run it. If
-## test succeeds, action is executed and other actions
-## bound to this key are ignored. If it doesn't, next
-## action in order tests itself etc.
-##
-## 2) It's possible to bind more that one action at once
-## to a key. It can be done using the following syntax:
-##
-## def_key "key"
-## action1
-## action2
-## ...
-##
-## This creates a chain of actions. When such chain is
-## executed, each action in chain is run until the end of
-## chain is reached or one of its actions fails to execute
-## due to its requirements not being met. If multiple actions
-## and/or chains are bound to the same key, they will be
-## consecutively run until one of them gets fully executed.
-##
-## 3) When ncmpcpp starts, bindings configuration file is
-## parsed and then ncmpcpp provides "missing pieces"
-## of default keybindings. If you want to disable some
-## bindings, there is a special action called 'dummy'
-## for that purpose. Eg. if you want to disable ability
-## to crop playlists, you need to put the following
-## into configuration file:
-##
-## def_key "C"
-## dummy
-##
-## After that ncmpcpp will not bind any default action
-## to this key.
-##
-## 4) To let you write simple macros, the following special
-## actions are provided:
-##
-## - push_character "character" - pushes given special
-## character into input queue, so it will be immediately
-## picked by ncmpcpp upon next call to readKey function.
-## Accepted values: mouse, up, down, page_up, page_down,
-## home, end, space, enter, insert, delete, left, right,
-## tab, ctrl-a, ctrl-b, ..., ctrl-z, ctrl-[, ctrl-\\,
-## ctrl-], ctrl-^, ctrl-_, f1, f2, ..., f12, backspace.
-## In addition, most of these names can be prefixed with
-## alt-/ctrl-/shift- to be recognized with the appropriate
-## modifier key(s).
-##
-## - push_characters "string" - pushes given string into
-## input queue.
-##
-## - require_runnable "action" - checks whether given action
-## is runnable and fails if it isn't. This is especially
-## useful when mixed with previous two functions. Consider
-## the following macro definition:
-##
-## def_key "key"
-## push_characters "custom_filter"
-## apply_filter
-##
-## If apply_filter can't be currently run, we end up with
-## sequence of characters in input queue which will be
-## treated just as we typed them. This may lead to unexpected
-## results (in this case 'c' will most likely clear current
-## playlist, 'u' will trigger database update, 's' will stop
-## playback etc.). To prevent such thing from happening, we
-## need to change above definition to this one:
-##
-## def_key "key"
-## require_runnable "apply_filter"
-## push_characters "custom_filter"
-## apply_filter
-##
-## Here, first we test whether apply_filter can be actually run
-## before we stuff characters into input queue, so if condition
-## is not met, whole chain is aborted and we're fine.
-##
-## - require_screen "screen" - checks whether given screen is
-## currently active. accepted values: browser, clock, help,
-## media_library, outputs, playlist, playlist_editor,
-## search_engine, tag_editor, visualizer, last_fm, lyrics,
-## selected_items_adder, server_info, song_info,
-## sort_playlist_dialog, tiny_tag_editor.
-##
-## - run_external_command "command" - runs given command using
-## system() function.
-##
-## 5) In addition to binding to a key, you can also bind actions
-## or chains of actions to a command. If it comes to commands,
-## syntax is very similar to defining keys. Here goes example
-## definition of a command:
-##
-## def_command "quit" [deferred]
-## stop
-## quit
-##
-## If you execute the above command (which can be done by
-## invoking action execute_command, typing 'quit' and pressing
-## enter), ncmpcpp will stop the player and then quit. Note the
-## presence of word 'deferred' enclosed in square brackets. It
-## tells ncmpcpp to wait for confirmation (ie. pressing enter)
-## after you typed quit. Instead of 'deferred', 'immediate'
-## could be used. Then ncmpcpp will not wait for confirmation
-## (enter) and will execute the command the moment it sees it.
-##
-## Note: while command chains are executed, internal environment
-## update (which includes current window refresh and mpd status
-## update) is not performed for performance reasons. However, it
-## may be desirable to do so in some situration. Therefore it's
-## possible to invoke by hand by performing 'update enviroment'
-## action.
-##
-## Note: There is a difference between:
-##
-## def_key "key"
-## action1
-##
-## def_key "key"
-## action2
-##
-## and
-##
-## def_key "key"
-## action1
-## action2
-##
-## First one binds two single actions to the same key whilst
-## second one defines a chain of actions. The behavior of
-## these two is different and is described in (1) and (2).
-##
-## Note: Function def_key accepts non-ascii characters.
-##
-##### List of unbound actions #####
-##
-## The following actions are not bound to any key/command:
-##
-## - set_volume
-##
-#
-def_key "S"
- set_volume
-def_key "mouse"
- mouse_event
-
-def_key "k"
- scroll_up
-
-def_key "shift-k"
- select_item
- scroll_up
-
-def_key "j"
- scroll_down
-
-def_key "shift-j"
- select_item
- scroll_down
-
-def_key "["
- scroll_up_album
-
-def_key "]"
- scroll_down_album
-
-def_key "{"
- scroll_up_artist
-
-def_key "}"
- scroll_down_artist
-
-def_key "ctrl-u"
- page_up
-
-def_key "ctrl-d"
- page_down
-
-def_key "g"
- move_home
-
-def_key "G"
- move_end
-
-def_key "insert"
- select_item
-
-def_key "enter"
- enter_directory
-
-def_key "enter"
- toggle_output
-
-def_key "enter"
- run_action
-
-def_key "enter"
- play_item
-
-def_key "space"
- add_item_to_playlist
-
-def_key "space"
- toggle_lyrics_update_on_song_change
-
-def_key "space"
- toggle_visualization_type
-
-def_key "d"
- delete_playlist_items
-
-def_key "delete"
- delete_browser_items
-
-def_key "delete"
- delete_stored_playlist
-
-def_key "l"
- next_column
-
-#def_key "l"
-# slave_screen
-
-#def_key "l"
-# volume_up
-
-def_key "+"
- volume_up
-
-def_key "h"
- previous_column
-
-#def_key "h"
-# master_screen
-
-#def_key "left"
-# volume_down
-
-def_key "-"
- volume_down
-
-def_key ":"
- execute_command
-
-def_key "tab"
- next_screen
-
-def_key "shift-tab"
- previous_screen
-
-def_key "f1"
- show_help
-
-def_key "1"
- show_playlist
-
-def_key "2"
- show_browser
-
-def_key "2"
- change_browse_mode
-
-def_key "3"
- show_search_engine
-
-def_key "3"
- reset_search_engine
-
-def_key "4"
- show_media_library
-
-def_key "4"
- toggle_media_library_columns_mode
-
-def_key "5"
- show_playlist_editor
-
-def_key "6"
- show_tag_editor
-
-def_key "7"
- show_outputs
-
-def_key "8"
- show_visualizer
-
-def_key "="
- show_clock
-
-def_key "@"
- show_server_info
-
-def_key "s"
- stop
-
-def_key "p"
- pause
-
-def_key "J"
- next
-
-def_key "K"
- previous
-
-def_key "ctrl-h"
- jump_to_parent_directory
-
-def_key "ctrl-h"
- replay_song
-
-def_key "backspace"
- jump_to_parent_directory
-
-def_key "backspace"
- replay_song
-
-def_key "f"
- seek_forward
-
-def_key "b"
- seek_backward
-
-def_key "r"
- toggle_repeat
-
-def_key "z"
- toggle_random
-
-def_key "y"
- save_tag_changes
-
-def_key "y"
- start_searching
-
-def_key "y"
- toggle_single
-
-def_key "R"
- toggle_consume
-
-def_key "Y"
- toggle_replay_gain_mode
-
-def_key "T"
- toggle_add_mode
-
-def_key "|"
- toggle_mouse
-
-def_key "#"
- toggle_bitrate_visibility
-
-def_key "Z"
- shuffle
-
-def_key "x"
- toggle_crossfade
-
-def_key "X"
- set_crossfade
-
-def_key "u"
- update_database
-
-def_key "ctrl-s"
- sort_playlist
-
-def_key "ctrl-s"
- toggle_browser_sort_mode
-
-def_key "ctrl-s"
- toggle_media_library_sort_mode
-
-def_key "ctrl-r"
- reverse_playlist
-
-def_key "ctrl-f"
- apply_filter
-
-def_key "ctrl-_"
- select_found_items
-
-#def_key "/"
-# find
-
-def_key "/"
- find_item_forward
-
-#def_key "?"
-# find
-
-def_key "?"
- find_item_backward
-
-def_key "."
- next_found_item
-
-def_key ","
- previous_found_item
-
-def_key "w"
- toggle_find_mode
-
-def_key "e"
- edit_song
-
-def_key "e"
- edit_library_tag
-
-def_key "e"
- edit_library_album
-
-def_key "e"
- edit_directory_name
-
-def_key "e"
- edit_playlist_name
-
-def_key "e"
- edit_lyrics
-
-def_key "i"
- show_song_info
-
-def_key "I"
- show_artist_info
-
-def_key "g"
- jump_to_position_in_song
-
-def_key "l"
- show_lyrics
-
-def_key "ctrl-v"
- select_range
-
-def_key "v"
- reverse_selection
-
-def_key "V"
- remove_selection
-
-def_key "B"
- select_album
-
-def_key "a"
- add_selected_items
-
-def_key "c"
- clear_playlist
-
-def_key "c"
- clear_main_playlist
-
-def_key "C"
- crop_playlist
-
-def_key "C"
- crop_main_playlist
-
-def_key "m"
- move_sort_order_up
-
-def_key "m"
- move_selected_items_up
-
-def_key "n"
- move_sort_order_down
-
-def_key "n"
- move_selected_items_down
-
-def_key "M"
- move_selected_items_to
-
-def_key "A"
- add
-
-def_key "S"
- save_playlist
-
-def_key "o"
- jump_to_playing_song
-
-def_key "G"
- jump_to_browser
-
-def_key "G"
- jump_to_playlist_editor
-
-def_key "~"
- jump_to_media_library
-
-def_key "E"
- jump_to_tag_editor
-
-def_key "U"
- toggle_playing_song_centering
-
-def_key "P"
- toggle_display_mode
-
-def_key "\\"
- toggle_interface
-
-def_key "!"
- toggle_separators_between_albums
-
-def_key "L"
- toggle_lyrics_fetcher
-
-def_key "F"
- fetch_lyrics_in_background
-
-def_key "alt-l"
- toggle_fetching_lyrics_in_background
-
-def_key "ctrl-l"
- toggle_screen_lock
-
-def_key "`"
- toggle_library_tag_type
-
-def_key "`"
- refetch_lyrics
-
-def_key "`"
- add_random_items
-
-def_key "ctrl-p"
- set_selected_items_priority
-
-def_key "q"
- quit
diff --git a/.unused/ncmpcpp/.config/ncmpcpp/config b/.unused/ncmpcpp/.config/ncmpcpp/config
@@ -1,490 +0,0 @@
-# vim:foldmethod=marker
-##############################################################################
-## This is the example configuration file. Copy it to $HOME/.ncmpcpp/config ##
-## or $XDG_CONFIG_HOME/ncmpcpp/config and set up your preferences. ##
-##############################################################################
-# directories {{{
-ncmpcpp_directory = ~/.config/ncmpcpp
-lyrics_directory = ~/.config/.lyrics
-#}}}
-
-# connection settings {{{
-mpd_host = 127.0.0.1
-mpd_port = 6600
-mpd_connection_timeout = 5
-
-mpd_music_dir = ~/audio/
-mpd_crossfade_time = 0
-#}}}
-
-# music visualizer {{{
-##
-## Note: In order to make music visualizer work you'll need to use mpd fifo
-## output, whose format parameter has to be set to 44100:16:1 for mono
-## visualization or 44100:16:2 for stereo visualization. Example configuration
-## (it has to be put into mpd.conf):
-##
-## audio_output {
-## type "fifo"
-## name "Visualizer feed"
-## path "/tmp/mpd.fifo"
-## format "44100:16:2"
-## }
-##
-#
-#visualizer_fifo_path = /tmp/mpd.fifo
-#
-##
-## Note: Below parameter is needed for ncmpcpp to determine which output
-## provides data for visualizer and thus allow syncing between visualization and
-## sound as currently there are some problems with it.
-##
-#
-#visualizer_output_name = Visualizer feed
-#
-##
-## If you set format to 44100:16:2, make it 'yes'.
-##
-visualizer_in_stereo = yes
-#
-##
-## Note: Below parameter defines how often ncmpcpp has to "synchronize"
-## visualizer and audio outputs. 30 seconds is optimal value, but if you
-## experience synchronization problems, set it to lower value. Keep in mind
-## that sane values start with >=10.
-##
-#
-visualizer_sync_interval = 30
-#
-##
-## Note: To enable spectrum frequency visualization you need to compile ncmpcpp
-## with fftw3 support.
-##
-#
-## Available values: spectrum, wave, wave_filled, ellipse.
-##
-#visualizer_type = wave
-#
-#visualizer_look = ●▮
-visualizer_look = ▮▮
-#
-#visualizer_color = blue, cyan, green, yellow, magenta, red
-#
-## Alternative subset of 256 colors for terminals that support it.
-##
-visualizer_color = 41, 83, 119, 155, 185, 215, 209, 203, 197, 161
-#}}}
-
-# system encoding {{{
-##
-## ncmpcpp should detect your charset encoding but if it failed to do so, you
-## can specify charset encoding you are using here.
-##
-## Note: You can see whether your ncmpcpp build supports charset detection by
-## checking output of `ncmpcpp --version`.
-##
-## Note: Since MPD uses UTF-8 by default, setting this option makes sense only
-## if your encoding is different.
-##
-#
-#system_encoding = ""
-#}}}
-
-# delays {{{
-#
-## Time of inactivity (in seconds) after playlist highlighting will be disabled
-## (0 = always on).
-##
-#playlist_disable_highlight_delay = 5
-#
-## Defines how long messages are supposed to be visible.
-##
-#message_delay_time = 5
-#}}}
-
-# song format {{{
-## For a song format you can use:
-##
-## %l - length
-## %f - filename
-## %D - directory
-## %a - artist
-## %A - album artist
-## %t - title
-## %b - album
-## %y - date
-## %n - track number (01/12 -> 01)
-## %N - full track info (01/12 -> 01/12)
-## %g - genre
-## %c - composer
-## %p - performer
-## %d - disc
-## %C - comment
-## %P - priority
-## $R - begin right alignment
-##
-## If you want to make sure that a part of the format is displayed only when
-## certain tags are present, you can archieve it by grouping them with brackets,
-## e.g. '{%a - %t}' will be evaluated to 'ARTIST - TITLE' if both tags are
-## present or '' otherwise. It is also possible to define a list of
-## alternatives by providing several groups and separating them with '|',
-## e.g. '{%t}|{%f}' will be evaluated to 'TITLE' or 'FILENAME' if the former is
-## not present.
-##
-## Note: If you want to set limit on maximal length of a tag, just put the
-## appropriate number between % and character that defines tag type, e.g. to
-## make album take max. 20 terminal cells, use '%20b'.
-##
-## In addition, formats support markers used for text attributes. They are
-## followed by character '$'. After that you can put:
-##
-## - 0 - default window color (discards all other colors)
-## - 1 - black
-## - 2 - red
-## - 3 - green
-## - 4 - yellow
-## - 5 - blue
-## - 6 - magenta
-## - 7 - cyan
-## - 8 - white
-## - 9 - end of current color
-## - b - bold text
-## - u - underline text
-## - r - reverse colors
-## - a - use alternative character set
-##
-## If you don't want to use a non-color attribute anymore, just put it again,
-## but this time insert character '/' between '$' and attribute character,
-## e.g. {$b%t$/b}|{$r%f$/r} will display bolded title tag or filename with
-## reversed colors.
-##
-## If you want to use 256 colors and/or background colors in formats (the naming
-## scheme is described below in section about color definitions), it can be done
-## with the syntax $(COLOR), e.g. to set the artist tag to one of the
-## non-standard colors and make it have yellow background, you need to write
-## $(197_yellow)%a$(end). Note that for standard colors this is interchangable
-## with attributes listed above.
-##
-## Note: colors can be nested.
-##
-#
-#song_list_format = {%a - }{%t}|{$8%f$9}$R{$3(%l)$9}
-#song_status_format = {{%a{ "%b"{ (%y)}} - }{%t}}|{%f}
-song_library_format = {%n - }{%t}|{%f}
-#
-alternative_header_first_line_format = $b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b
-alternative_header_second_line_format = {{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D}
-#
-current_item_prefix = $(cyan)$r
-current_item_suffix = $/r$(end)
-current_item_inactive_column_prefix = $(blue)$r
-now_playing_prefix = $b
-now_playing_suffix = $/b
-#browser_playlist_prefix = "$2playlist$9 "
-#
-#selected_item_prefix = $6
-#selected_item_suffix = $9
-#
-#modified_item_prefix = $3> $9
-#
-##
-## Note: attributes are not supported for the following variables.
-##
-#song_window_title_format = {%a - }{%t}|{%f}
-##
-## Note: Below variables are used for sorting songs in browser. The sort mode
-## determines how songs are sorted, and can be used in combination with a sort
-## format to specify a custom sorting format. Available values for
-## browser_sort_mode are "name", "mtime", "format" and "noop".
-##
-#
-#browser_sort_mode = name
-#
-#browser_sort_format = {%a - }{%t}|{%f} {(%l)}
-#}}}
-
-# column settings {{{
-## syntax of song columns list format is "column column etc."
-##
-## - syntax for each column is:
-##
-## (width of the column)[color of the column]{displayed tag}
-##
-## Note: Width is by default in %, if you want a column to have fixed size, add
-## 'f' after the value, e.g. (10)[white]{a} will be the column that take 10% of
-## screen (so the real width will depend on actual screen size), whereas
-## (10f)[white]{a} will take 10 terminal cells, no matter how wide the screen
-## is.
-##
-## - color is optional (if you want the default one, leave the field empty).
-##
-## Note: You can give a column additional attributes by putting appropriate
-## character after displayed tag character. Available attributes are:
-##
-## - r - column will be right aligned
-## - E - if tag is empty, empty tag marker won't be displayed
-##
-## You can also:
-##
-## - give a column custom name by putting it after attributes, separated with
-## character ':', e.g. {lr:Length} gives you right aligned column of lengths
-## named "Length".
-##
-## - define sequence of tags, that have to be displayed in case predecessor is
-## empty in a way similar to the one in classic song format, i.e. using '|'
-## character, e.g. {a|c|p:Owner} creates column named "Owner" that tries to
-## display artist tag and then composer and performer if previous ones are not
-## available.
-##
-#
-#
-#song_columns_list_format = (20)[]{a} (6f)[green]{NE} (50)[white]{t|f:Title} (20)[cyan]{b} (7f)[white]{l}
-# 132 210
-#}}}
-
-# various settings {{{
-#
-##
-## Note: Custom command that will be executed each time song changes. Useful for
-## notifications etc.
-##
-# execute_on_song_change = "notifysend-stack -t 2500 "$(mpc current)""
-#
-##
-## Note: Custom command that will be executed each time player state
-## changes. The environment variable MPD_PLAYER_STATE is set to the current
-## state (either unknown, play, pause, or stop) for its duration.
-##
-#
-#execute_on_player_state_change = ""
-#
-playlist_show_mpd_host = no
-#
-playlist_show_remaining_time = no
-#playlist_shorten_total_times = no
-#playlist_separate_albums = no
-#
-##
-## Note: Possible display modes: classic, columns.
-##
-playlist_display_mode = columns
-browser_display_mode = classic
-search_engine_display_mode = classic
-playlist_editor_display_mode = classic
-discard_colors_if_item_is_selected = yes
-#
-#show_duplicate_tags = yes
-#
-#incremental_seeking = yes
-#
-seek_time = 5
-#
-#volume_change_step = 5
-#autocenter_mode = no
-#centered_cursor = no
-#
-##
-## Note: You can specify third character which will be used to build 'empty'
-## part of progressbar.
-##
-#progressbar_look = ─╼
-#progressbar_look = -|
-#progressbar_look = ─_
-progressbar_look = ──
-#
-## Available values: database, playlist.
-##
-default_place_to_search_in = database
-#
-## Available values: classic, alternative.
-##
-user_interface = alternative
-#
-#data_fetching_delay = yes
-#
-## Available values: artist, album_artist, date, genre, composer, performer.
-##
-media_library_primary_tag = artist
-#
-#media_library_albums_split_by_date = yes
-#
-## Available values: wrapped, normal.
-##
-#default_find_mode = wrapped
-#
-default_tag_editor_pattern = %n - %t
-header_visibility = no
-statusbar_visibility = no
-titles_visibility = no
-header_text_scrolling = yes
-cyclic_scrolling = no
-lines_scrolled = 2
-lyrics_fetchers = lyricwiki, azlyrics, genius, sing365, lyricsmania, metrolyrics, justsomelyrics, jahlyrics, plyrics, tekstowo, internet
-follow_now_playing_lyrics = no
-fetch_lyrics_for_current_song_in_background = no
-store_lyrics_in_song_dir = no
-generate_win32_compatible_filenames = yes
-allow_for_physical_item_deletion = no
-#
-##
-## Note: If you set this variable, ncmpcpp will try to get info from last.fm in
-## language you set and if it fails, it will fall back to english. Otherwise it
-## will use english the first time.
-##
-## Note: Language has to be expressed as an ISO 639 alpha-2 code.
-##
-#lastfm_preferred_language = en
-#
-#space_add_mode = add_remove
-#
-show_hidden_files_in_local_browser = yes
-#
-##
-## How shall screen switcher work?
-##
-## - "previous" - switch between the current and previous screen.
-## - "screen1,...,screenN" - switch between given sequence of screens.
-##
-## Screens available for use: help, playlist, browser, search_engine,
-## media_library, playlist_editor, tag_editor, outputs, visualizer, clock
-## lyrics, last_fm.
-##
-#screen_switcher_mode = playlist, browser
-#
-##
-## Note: You can define startup screen by choosing screen from the list above.
-##
-#startup_screen = playlist
-#
-##
-## Note: You can define startup slave screen by choosing screen from the list
-## above or an empty value for no slave screen.
-##
-#startup_slave_screen = ""
-#
-#startup_slave_screen_focus = no
-#
-##
-## Default width of locked screen (in %). Acceptable values are from 20 to 80.
-##
-#
-#locked_screen_width_part = 50
-#
-#ask_for_locked_screen_width_part = yes
-#
-jump_to_now_playing_song_at_start = yes
-#
-ask_before_clearing_playlists = yes
-#
-clock_display_seconds = yes
-display_volume_level = no
-display_bitrate = no
-display_remaining_time = no
-#
-## Available values: none, basic, extended, perl.
-##
-#regular_expressions = perl
-#
-##
-## Note: if below is enabled, ncmpcpp will ignore leading "The" word while
-## sorting items in browser, tags in media library, etc.
-##
-ignore_leading_the = yes
-#
-##
-## Note: if below is enabled, ncmpcpp will ignore diacritics while searching and
-## filtering lists. This takes an effect only if boost was compiled with ICU
-## support.
-##
-#ignore_diacritics = no
-#
-#block_search_constraints_change_if_items_found = yes
-#
-mouse_support = no
-mouse_list_scroll_whole_page = no
-#
-empty_tag_marker = none
-#
-tags_separator = " | "
-#
-#tag_editor_extended_numeration = no
-#
-media_library_sort_by_mtime = no
-#
-#enable_window_title = yes
-#
-##
-## Note: You can choose default search mode for search engine. Available modes
-## are:
-##
-## - 1 - use mpd built-in searching (no regexes, pattern matching)
-##
-## - 2 - use ncmpcpp searching (pattern matching with support for regexes, but
-## if your mpd is on a remote machine, downloading big database to process
-## it can take a while
-##
-## - 3 - match only exact values (this mode uses mpd function for searching in
-## database and local one for searching in current playlist)
-##
-#
-#search_engine_default_search_mode = 1
-#
-external_editor = vim
-#
-## Note: set to yes if external editor is a console application.
-##
-use_console_editor = yes
-#
-# {{{ colors definitions
-##
-## It is possible to set a background color by setting a color value
-## "<foreground>_<background>", e.g. red_black will set foregound color to red
-## and background color to black.
-##
-## In addition, for terminals that support 256 colors it is possible to set one
-## of them by using a number in range [1, 256] instead of color name,
-## e.g. numerical value corresponding to red_black is 2_1. To find out if the
-## terminal supports 256 colors, run ncmpcpp and check out the bottom of the
-## help screen for list of available colors and their numerical values.
-##
-## What is more, there are two special values for the background color:
-## "transparent" and "current". The first one explicitly sets the background to
-## be transparent, while the second one allows you to preserve current
-## background color and change only the foreground one. It's used implicitly
-## when background color is not specified.
-##
-## Moreover, it is possible to attach format information to selected color
-## variables by appending to their end a colon followed by one or more format
-## flags, e.g. black:b or red:ur. The following variables support this syntax:
-## visualizer_color, color1, color2, empty_tag_color, volume_color,
-## state_line_color, state_flags_color, progressbar_color,
-## progressbar_elapsed_color, player_state_color, statusbar_time_color,
-## alternative_ui_separator_color.
-##
-## Note: due to technical limitations of older ncurses version, if 256 colors
-## are used there is a possibility that you'll be able to use only colors with
-## transparent background.
-colors_enabled = yes
-alternative_ui_separator_color = 235
-active_window_border = red
-window_border_color = green
-header_window_color = 216
-main_window_color = 247
-
-state_flags_color = 30
-state_line_color = default
-player_state_color = white
-volume_color = default
-
-empty_tag_color = cyan
-
-color1 = white
-color2 = green
-
-progressbar_color = 237
-progressbar_elapsed_color = green
-
-statusbar_color = default
-statusbar_time_color = white
-song_columns_list_format = (50)[30]{t|f:Title} (20)[7]{a} (7f)[white]{l}
-# }}}
diff --git a/.unused/ncmpcpp/.config/ncmpcpp/error.log b/.unused/ncmpcpp/.config/ncmpcpp/error.log
diff --git a/.unused/ranger/.config/ranger/commands.py b/.unused/ranger/.config/ranger/commands.py
@@ -1,62 +0,0 @@
-# This is a sample commands.py. You can add your own commands here.
-#
-# Please refer to commands_full.py for all the default commands and a complete
-# documentation. Do NOT add them all here, or you may end up with defunct
-# commands when upgrading ranger.
-
-# A simple command for demonstration purposes follows.
-# -----------------------------------------------------------------------------
-
-from __future__ import (absolute_import, division, print_function)
-
-# You can import any python module as needed.
-import os
-
-# You always need to import ranger.api.commands here to get the Command class:
-from ranger.api.commands import Command
-
-
-# Any class that is a subclass of "Command" will be integrated into ranger as a
-# command. Try typing ":my_edit<ENTER>" in ranger!
-class my_edit(Command):
- # The so-called doc-string of the class will be visible in the built-in
- # help that is accessible by typing "?c" inside ranger.
- """:my_edit <filename>
-
- A sample command for demonstration purposes that opens a file in an editor.
- """
-
- # The execute method is called when you run this command in ranger.
- def execute(self):
- # self.arg(1) is the first (space-separated) argument to the function.
- # This way you can write ":my_edit somefilename<ENTER>".
- if self.arg(1):
- # self.rest(1) contains self.arg(1) and everything that follows
- target_filename = self.rest(1)
- else:
- # self.fm is a ranger.core.filemanager.FileManager object and gives
- # you access to internals of ranger.
- # self.fm.thisfile is a ranger.container.file.File object and is a
- # reference to the currently selected file.
- target_filename = self.fm.thisfile.path
-
- # This is a generic function to print text in ranger.
- self.fm.notify("Let's edit the file " + target_filename + "!")
-
- # Using bad=True in fm.notify allows you to print error messages:
- if not os.path.exists(target_filename):
- self.fm.notify("The given file does not exist!", bad=True)
- return
-
- # This executes a function from ranger.core.acitons, a module with a
- # variety of subroutines that can help you construct commands.
- # Check out the source, or run "pydoc ranger.core.actions" for a list.
- self.fm.edit_file(target_filename)
-
- # The tab method is called when you press tab, and should return a list of
- # suggestions that the user will tab through.
- # tabnum is 1 for <TAB> and -1 for <S-TAB> by default
- def tab(self, tabnum):
- # This is a generic tab-completion function that iterates through the
- # content of the current directory.
- return self._tab_directory_content()
diff --git a/.unused/ranger/.config/ranger/commands_full.py b/.unused/ranger/.config/ranger/commands_full.py
@@ -1,1836 +0,0 @@
-# -*- coding: utf-8 -*-
-# This file is part of ranger, the console file manager.
-# This configuration file is licensed under the same terms as ranger.
-# ===================================================================
-#
-# NOTE: If you copied this file to /etc/ranger/commands_full.py or
-# ~/.config/ranger/commands_full.py, then it will NOT be loaded by ranger,
-# and only serve as a reference.
-#
-# ===================================================================
-# This file contains ranger's commands.
-# It's all in python; lines beginning with # are comments.
-#
-# Note that additional commands are automatically generated from the methods
-# of the class ranger.core.actions.Actions.
-#
-# You can customize commands in the files /etc/ranger/commands.py (system-wide)
-# and ~/.config/ranger/commands.py (per user).
-# They have the same syntax as this file. In fact, you can just copy this
-# file to ~/.config/ranger/commands_full.py with
-# `ranger --copy-config=commands_full' and make your modifications, don't
-# forget to rename it to commands.py. You can also use
-# `ranger --copy-config=commands' to copy a short sample commands.py that
-# has everything you need to get started.
-# But make sure you update your configs when you update ranger.
-#
-# ===================================================================
-# Every class defined here which is a subclass of `Command' will be used as a
-# command in ranger. Several methods are defined to interface with ranger:
-# execute(): called when the command is executed.
-# cancel(): called when closing the console.
-# tab(tabnum): called when <TAB> is pressed.
-# quick(): called after each keypress.
-#
-# tab() argument tabnum is 1 for <TAB> and -1 for <S-TAB> by default
-#
-# The return values for tab() can be either:
-# None: There is no tab completion
-# A string: Change the console to this string
-# A list/tuple/generator: cycle through every item in it
-#
-# The return value for quick() can be:
-# False: Nothing happens
-# True: Execute the command afterwards
-#
-# The return value for execute() and cancel() doesn't matter.
-#
-# ===================================================================
-# Commands have certain attributes and methods that facilitate parsing of
-# the arguments:
-#
-# self.line: The whole line that was written in the console.
-# self.args: A list of all (space-separated) arguments to the command.
-# self.quantifier: If this command was mapped to the key "X" and
-# the user pressed 6X, self.quantifier will be 6.
-# self.arg(n): The n-th argument, or an empty string if it doesn't exist.
-# self.rest(n): The n-th argument plus everything that followed. For example,
-# if the command was "search foo bar a b c", rest(2) will be "bar a b c"
-# self.start(n): Anything before the n-th argument. For example, if the
-# command was "search foo bar a b c", start(2) will be "search foo"
-#
-# ===================================================================
-# And this is a little reference for common ranger functions and objects:
-#
-# self.fm: A reference to the "fm" object which contains most information
-# about ranger.
-# self.fm.notify(string): Print the given string on the screen.
-# self.fm.notify(string, bad=True): Print the given string in RED.
-# self.fm.reload_cwd(): Reload the current working directory.
-# self.fm.thisdir: The current working directory. (A File object.)
-# self.fm.thisfile: The current file. (A File object too.)
-# self.fm.thistab.get_selection(): A list of all selected files.
-# self.fm.execute_console(string): Execute the string as a ranger command.
-# self.fm.open_console(string): Open the console with the given string
-# already typed in for you.
-# self.fm.move(direction): Moves the cursor in the given direction, which
-# can be something like down=3, up=5, right=1, left=1, to=6, ...
-#
-# File objects (for example self.fm.thisfile) have these useful attributes and
-# methods:
-#
-# tfile.path: The path to the file.
-# tfile.basename: The base name only.
-# tfile.load_content(): Force a loading of the directories content (which
-# obviously works with directories only)
-# tfile.is_directory: True/False depending on whether it's a directory.
-#
-# For advanced commands it is unavoidable to dive a bit into the source code
-# of ranger.
-# ===================================================================
-
-from __future__ import (absolute_import, division, print_function)
-
-from collections import deque
-import os
-import re
-
-from ranger.api.commands import Command
-
-
-class alias(Command):
- """:alias <newcommand> <oldcommand>
-
- Copies the oldcommand as newcommand.
- """
-
- context = 'browser'
- resolve_macros = False
-
- def execute(self):
- if not self.arg(1) or not self.arg(2):
- self.fm.notify('Syntax: alias <newcommand> <oldcommand>', bad=True)
- return
-
- self.fm.commands.alias(self.arg(1), self.rest(2))
-
-
-class echo(Command):
- """:echo <text>
-
- Display the text in the statusbar.
- """
-
- def execute(self):
- self.fm.notify(self.rest(1))
-
-
-class cd(Command):
- """:cd [-r] <path>
-
- The cd command changes the directory.
- If the path is a file, selects that file.
- The command 'cd -' is equivalent to typing ``.
- Using the option "-r" will get you to the real path.
- """
-
- def execute(self):
- if self.arg(1) == '-r':
- self.shift()
- destination = os.path.realpath(self.rest(1))
- if os.path.isfile(destination):
- self.fm.select_file(destination)
- return
- else:
- destination = self.rest(1)
-
- if not destination:
- destination = '~'
-
- if destination == '-':
- self.fm.enter_bookmark('`')
- else:
- self.fm.cd(destination)
-
- def _tab_args(self):
- # dest must be rest because path could contain spaces
- if self.arg(1) == '-r':
- start = self.start(2)
- dest = self.rest(2)
- else:
- start = self.start(1)
- dest = self.rest(1)
-
- if dest:
- head, tail = os.path.split(os.path.expanduser(dest))
- if head:
- dest_exp = os.path.join(os.path.normpath(head), tail)
- else:
- dest_exp = tail
- else:
- dest_exp = ''
- return (start, dest_exp, os.path.join(self.fm.thisdir.path, dest_exp),
- dest.endswith(os.path.sep))
-
- @staticmethod
- def _tab_paths(dest, dest_abs, ends_with_sep):
- if not dest:
- try:
- return next(os.walk(dest_abs))[1], dest_abs
- except (OSError, StopIteration):
- return [], ''
-
- if ends_with_sep:
- try:
- return [os.path.join(dest, path) for path in next(os.walk(dest_abs))[1]], ''
- except (OSError, StopIteration):
- return [], ''
-
- return None, None
-
- def _tab_match(self, path_user, path_file):
- if self.fm.settings.cd_tab_case == 'insensitive':
- path_user = path_user.lower()
- path_file = path_file.lower()
- elif self.fm.settings.cd_tab_case == 'smart' and path_user.islower():
- path_file = path_file.lower()
- return path_file.startswith(path_user)
-
- def _tab_normal(self, dest, dest_abs):
- dest_dir = os.path.dirname(dest)
- dest_base = os.path.basename(dest)
-
- try:
- dirnames = next(os.walk(os.path.dirname(dest_abs)))[1]
- except (OSError, StopIteration):
- return [], ''
-
- return [os.path.join(dest_dir, d) for d in dirnames if self._tab_match(dest_base, d)], ''
-
- def _tab_fuzzy_match(self, basepath, tokens):
- """ Find directories matching tokens recursively """
- if not tokens:
- tokens = ['']
- paths = [basepath]
- while True:
- token = tokens.pop()
- matches = []
- for path in paths:
- try:
- directories = next(os.walk(path))[1]
- except (OSError, StopIteration):
- continue
- matches += [os.path.join(path, d) for d in directories
- if self._tab_match(token, d)]
- if not tokens or not matches:
- return matches
- paths = matches
-
- return None
-
- def _tab_fuzzy(self, dest, dest_abs):
- tokens = []
- basepath = dest_abs
- while True:
- basepath_old = basepath
- basepath, token = os.path.split(basepath)
- if basepath == basepath_old:
- break
- if os.path.isdir(basepath_old) and not token.startswith('.'):
- basepath = basepath_old
- break
- tokens.append(token)
-
- paths = self._tab_fuzzy_match(basepath, tokens)
- if not os.path.isabs(dest):
- paths_rel = basepath
- paths = [os.path.relpath(path, paths_rel) for path in paths]
- else:
- paths_rel = ''
- return paths, paths_rel
-
- def tab(self, tabnum):
- from os.path import sep
-
- start, dest, dest_abs, ends_with_sep = self._tab_args()
-
- paths, paths_rel = self._tab_paths(dest, dest_abs, ends_with_sep)
- if paths is None:
- if self.fm.settings.cd_tab_fuzzy:
- paths, paths_rel = self._tab_fuzzy(dest, dest_abs)
- else:
- paths, paths_rel = self._tab_normal(dest, dest_abs)
-
- paths.sort()
-
- if self.fm.settings.cd_bookmarks:
- paths[0:0] = [
- os.path.relpath(v.path, paths_rel) if paths_rel else v.path
- for v in self.fm.bookmarks.dct.values() for path in paths
- if v.path.startswith(os.path.join(paths_rel, path) + sep)
- ]
-
- if not paths:
- return None
- if len(paths) == 1:
- return start + paths[0] + sep
- return [start + dirname for dirname in paths]
-
-
-class chain(Command):
- """:chain <command1>; <command2>; ...
-
- Calls multiple commands at once, separated by semicolons.
- """
-
- def execute(self):
- if not self.rest(1).strip():
- self.fm.notify('Syntax: chain <command1>; <command2>; ...', bad=True)
- return
- for command in [s.strip() for s in self.rest(1).split(";")]:
- self.fm.execute_console(command)
-
-
-class shell(Command):
- escape_macros_for_shell = True
-
- def execute(self):
- if self.arg(1) and self.arg(1)[0] == '-':
- flags = self.arg(1)[1:]
- command = self.rest(2)
- else:
- flags = ''
- command = self.rest(1)
-
- if command:
- self.fm.execute_command(command, flags=flags)
-
- def tab(self, tabnum):
- from ranger.ext.get_executables import get_executables
- if self.arg(1) and self.arg(1)[0] == '-':
- command = self.rest(2)
- else:
- command = self.rest(1)
- start = self.line[0:len(self.line) - len(command)]
-
- try:
- position_of_last_space = command.rindex(" ")
- except ValueError:
- return (start + program + ' ' for program
- in get_executables() if program.startswith(command))
- if position_of_last_space == len(command) - 1:
- selection = self.fm.thistab.get_selection()
- if len(selection) == 1:
- return self.line + selection[0].shell_escaped_basename + ' '
- return self.line + '%s '
-
- before_word, start_of_word = self.line.rsplit(' ', 1)
- return (before_word + ' ' + file.shell_escaped_basename
- for file in self.fm.thisdir.files or []
- if file.shell_escaped_basename.startswith(start_of_word))
-
-
-class open_with(Command):
-
- def execute(self):
- app, flags, mode = self._get_app_flags_mode(self.rest(1))
- self.fm.execute_file(
- files=[f for f in self.fm.thistab.get_selection()],
- app=app,
- flags=flags,
- mode=mode)
-
- def tab(self, tabnum):
- return self._tab_through_executables()
-
- def _get_app_flags_mode(self, string): # pylint: disable=too-many-branches,too-many-statements
- """Extracts the application, flags and mode from a string.
-
- examples:
- "mplayer f 1" => ("mplayer", "f", 1)
- "atool 4" => ("atool", "", 4)
- "p" => ("", "p", 0)
- "" => None
- """
-
- app = ''
- flags = ''
- mode = 0
- split = string.split()
-
- if len(split) == 1:
- part = split[0]
- if self._is_app(part):
- app = part
- elif self._is_flags(part):
- flags = part
- elif self._is_mode(part):
- mode = part
-
- elif len(split) == 2:
- part0 = split[0]
- part1 = split[1]
-
- if self._is_app(part0):
- app = part0
- if self._is_flags(part1):
- flags = part1
- elif self._is_mode(part1):
- mode = part1
- elif self._is_flags(part0):
- flags = part0
- if self._is_mode(part1):
- mode = part1
- elif self._is_mode(part0):
- mode = part0
- if self._is_flags(part1):
- flags = part1
-
- elif len(split) >= 3:
- part0 = split[0]
- part1 = split[1]
- part2 = split[2]
-
- if self._is_app(part0):
- app = part0
- if self._is_flags(part1):
- flags = part1
- if self._is_mode(part2):
- mode = part2
- elif self._is_mode(part1):
- mode = part1
- if self._is_flags(part2):
- flags = part2
- elif self._is_flags(part0):
- flags = part0
- if self._is_mode(part1):
- mode = part1
- elif self._is_mode(part0):
- mode = part0
- if self._is_flags(part1):
- flags = part1
-
- return app, flags, int(mode)
-
- def _is_app(self, arg):
- return not self._is_flags(arg) and not arg.isdigit()
-
- @staticmethod
- def _is_flags(arg):
- from ranger.core.runner import ALLOWED_FLAGS
- return all(x in ALLOWED_FLAGS for x in arg)
-
- @staticmethod
- def _is_mode(arg):
- return all(x in '0123456789' for x in arg)
-
-
-class set_(Command):
- """:set <option name>=<python expression>
-
- Gives an option a new value.
-
- Use `:set <option>!` to toggle or cycle it, e.g. `:set flush_input!`
- """
- name = 'set' # don't override the builtin set class
-
- def execute(self):
- name = self.arg(1)
- name, value, _, toggle = self.parse_setting_line_v2()
- if toggle:
- self.fm.toggle_option(name)
- else:
- self.fm.set_option_from_string(name, value)
-
- def tab(self, tabnum): # pylint: disable=too-many-return-statements
- from ranger.gui.colorscheme import get_all_colorschemes
- name, value, name_done = self.parse_setting_line()
- settings = self.fm.settings
- if not name:
- return sorted(self.firstpart + setting for setting in settings)
- if not value and not name_done:
- return sorted(self.firstpart + setting for setting in settings
- if setting.startswith(name))
- if not value:
- value_completers = {
- "colorscheme":
- # Cycle through colorschemes when name, but no value is specified
- lambda: sorted(self.firstpart + colorscheme for colorscheme
- in get_all_colorschemes(self.fm)),
-
- "column_ratios":
- lambda: self.firstpart + ",".join(map(str, settings[name])),
- }
-
- def default_value_completer():
- return self.firstpart + str(settings[name])
-
- return value_completers.get(name, default_value_completer)()
- if bool in settings.types_of(name):
- if 'true'.startswith(value.lower()):
- return self.firstpart + 'True'
- if 'false'.startswith(value.lower()):
- return self.firstpart + 'False'
- # Tab complete colorscheme values if incomplete value is present
- if name == "colorscheme":
- return sorted(self.firstpart + colorscheme for colorscheme
- in get_all_colorschemes(self.fm) if colorscheme.startswith(value))
- return None
-
-
-class setlocal(set_):
- """:setlocal path=<regular expression> <option name>=<python expression>
-
- Gives an option a new value.
- """
- PATH_RE_DQUOTED = re.compile(r'^setlocal\s+path="(.*?)"')
- PATH_RE_SQUOTED = re.compile(r"^setlocal\s+path='(.*?)'")
- PATH_RE_UNQUOTED = re.compile(r'^path=(.*?)$')
-
- def _re_shift(self, match):
- if not match:
- return None
- path = os.path.expanduser(match.group(1))
- for _ in range(len(path.split())):
- self.shift()
- return path
-
- def execute(self):
- path = self._re_shift(self.PATH_RE_DQUOTED.match(self.line))
- if path is None:
- path = self._re_shift(self.PATH_RE_SQUOTED.match(self.line))
- if path is None:
- path = self._re_shift(self.PATH_RE_UNQUOTED.match(self.arg(1)))
- if path is None and self.fm.thisdir:
- path = self.fm.thisdir.path
- if not path:
- return
-
- name, value, _ = self.parse_setting_line()
- self.fm.set_option_from_string(name, value, localpath=path)
-
-
-class setintag(set_):
- """:setintag <tag or tags> <option name>=<option value>
-
- Sets an option for directories that are tagged with a specific tag.
- """
-
- def execute(self):
- tags = self.arg(1)
- self.shift()
- name, value, _ = self.parse_setting_line()
- self.fm.set_option_from_string(name, value, tags=tags)
-
-
-class default_linemode(Command):
-
- def execute(self):
- from ranger.container.fsobject import FileSystemObject
-
- if len(self.args) < 2:
- self.fm.notify(
- "Usage: default_linemode [path=<regexp> | tag=<tag(s)>] <linemode>", bad=True)
-
- # Extract options like "path=..." or "tag=..." from the command line
- arg1 = self.arg(1)
- method = "always"
- argument = None
- if arg1.startswith("path="):
- method = "path"
- argument = re.compile(arg1[5:])
- self.shift()
- elif arg1.startswith("tag="):
- method = "tag"
- argument = arg1[4:]
- self.shift()
-
- # Extract and validate the line mode from the command line
- lmode = self.rest(1)
- if lmode not in FileSystemObject.linemode_dict:
- self.fm.notify(
- "Invalid linemode: %s; should be %s" % (
- lmode, "/".join(FileSystemObject.linemode_dict)),
- bad=True,
- )
-
- # Add the prepared entry to the fm.default_linemodes
- entry = [method, argument, lmode]
- self.fm.default_linemodes.appendleft(entry)
-
- # Redraw the columns
- if self.fm.ui.browser:
- for col in self.fm.ui.browser.columns:
- col.need_redraw = True
-
- def tab(self, tabnum):
- return (self.arg(0) + " " + lmode
- for lmode in self.fm.thisfile.linemode_dict.keys()
- if lmode.startswith(self.arg(1)))
-
-
-class quit(Command): # pylint: disable=redefined-builtin
- """:quit
-
- Closes the current tab, if there's only one tab.
- Otherwise quits if there are no tasks in progress.
- """
- def _exit_no_work(self):
- if self.fm.loader.has_work():
- self.fm.notify('Not quitting: Tasks in progress: Use `quit!` to force quit')
- else:
- self.fm.exit()
-
- def execute(self):
- if len(self.fm.tabs) >= 2:
- self.fm.tab_close()
- else:
- self._exit_no_work()
-
-
-class quit_bang(Command):
- """:quit!
-
- Closes the current tab, if there's only one tab.
- Otherwise force quits immediately.
- """
- name = 'quit!'
- allow_abbrev = False
-
- def execute(self):
- if len(self.fm.tabs) >= 2:
- self.fm.tab_close()
- else:
- self.fm.exit()
-
-
-class quitall(Command):
- """:quitall
-
- Quits if there are no tasks in progress.
- """
- def _exit_no_work(self):
- if self.fm.loader.has_work():
- self.fm.notify('Not quitting: Tasks in progress: Use `quitall!` to force quit')
- else:
- self.fm.exit()
-
- def execute(self):
- self._exit_no_work()
-
-
-class quitall_bang(Command):
- """:quitall!
-
- Force quits immediately.
- """
- name = 'quitall!'
- allow_abbrev = False
-
- def execute(self):
- self.fm.exit()
-
-
-class terminal(Command):
- """:terminal
-
- Spawns an "x-terminal-emulator" starting in the current directory.
- """
-
- def execute(self):
- from ranger.ext.get_executables import get_term
- self.fm.run(get_term(), flags='f')
-
-
-class delete(Command):
- """:delete
-
- Tries to delete the selection or the files passed in arguments (if any).
- The arguments use a shell-like escaping.
-
- "Selection" is defined as all the "marked files" (by default, you
- can mark files with space or v). If there are no marked files,
- use the "current file" (where the cursor is)
-
- When attempting to delete non-empty directories or multiple
- marked files, it will require a confirmation.
- """
-
- allow_abbrev = False
- escape_macros_for_shell = True
-
- def execute(self):
- import shlex
- from functools import partial
-
- def is_directory_with_files(path):
- return os.path.isdir(path) and not os.path.islink(path) and len(os.listdir(path)) > 0
-
- if self.rest(1):
- files = shlex.split(self.rest(1))
- many_files = (len(files) > 1 or is_directory_with_files(files[0]))
- else:
- cwd = self.fm.thisdir
- tfile = self.fm.thisfile
- if not cwd or not tfile:
- self.fm.notify("Error: no file selected for deletion!", bad=True)
- return
-
- # relative_path used for a user-friendly output in the confirmation.
- files = [f.relative_path for f in self.fm.thistab.get_selection()]
- many_files = (cwd.marked_items or is_directory_with_files(tfile.path))
-
- confirm = self.fm.settings.confirm_on_delete
- if confirm != 'never' and (confirm != 'multiple' or many_files):
- self.fm.ui.console.ask(
- "Confirm deletion of: %s (y/N)" % ', '.join(files),
- partial(self._question_callback, files),
- ('n', 'N', 'y', 'Y'),
- )
- else:
- # no need for a confirmation, just delete
- self.fm.delete(files)
-
- def tab(self, tabnum):
- return self._tab_directory_content()
-
- def _question_callback(self, files, answer):
- if answer == 'y' or answer == 'Y':
- self.fm.delete(files)
-
-
-class jump_non(Command):
- """:jump_non [-FLAGS...]
-
- Jumps to first non-directory if highlighted file is a directory and vice versa.
-
- Flags:
- -r Jump in reverse order
- -w Wrap around if reaching end of filelist
- """
- def __init__(self, *args, **kwargs):
- super(jump_non, self).__init__(*args, **kwargs)
-
- flags, _ = self.parse_flags()
- self._flag_reverse = 'r' in flags
- self._flag_wrap = 'w' in flags
-
- @staticmethod
- def _non(fobj, is_directory):
- return fobj.is_directory if not is_directory else not fobj.is_directory
-
- def execute(self):
- tfile = self.fm.thisfile
- passed = False
- found_before = None
- found_after = None
- for fobj in self.fm.thisdir.files[::-1] if self._flag_reverse else self.fm.thisdir.files:
- if fobj.path == tfile.path:
- passed = True
- continue
-
- if passed:
- if self._non(fobj, tfile.is_directory):
- found_after = fobj.path
- break
- elif not found_before and self._non(fobj, tfile.is_directory):
- found_before = fobj.path
-
- if found_after:
- self.fm.select_file(found_after)
- elif self._flag_wrap and found_before:
- self.fm.select_file(found_before)
-
-
-class mark_tag(Command):
- """:mark_tag [<tags>]
-
- Mark all tags that are tagged with either of the given tags.
- When leaving out the tag argument, all tagged files are marked.
- """
- do_mark = True
-
- def execute(self):
- cwd = self.fm.thisdir
- tags = self.rest(1).replace(" ", "")
- if not self.fm.tags or not cwd.files:
- return
- for fileobj in cwd.files:
- try:
- tag = self.fm.tags.tags[fileobj.realpath]
- except KeyError:
- continue
- if not tags or tag in tags:
- cwd.mark_item(fileobj, val=self.do_mark)
- self.fm.ui.status.need_redraw = True
- self.fm.ui.need_redraw = True
-
-
-class console(Command):
- """:console <command>
-
- Open the console with the given command.
- """
-
- def execute(self):
- position = None
- if self.arg(1)[0:2] == '-p':
- try:
- position = int(self.arg(1)[2:])
- except ValueError:
- pass
- else:
- self.shift()
- self.fm.open_console(self.rest(1), position=position)
-
-
-class load_copy_buffer(Command):
- """:load_copy_buffer
-
- Load the copy buffer from datadir/copy_buffer
- """
- copy_buffer_filename = 'copy_buffer'
-
- def execute(self):
- import sys
- from ranger.container.file import File
- from os.path import exists
- fname = self.fm.datapath(self.copy_buffer_filename)
- unreadable = IOError if sys.version_info[0] < 3 else OSError
- try:
- fobj = open(fname, 'r')
- except unreadable:
- return self.fm.notify(
- "Cannot open %s" % (fname or self.copy_buffer_filename), bad=True)
-
- self.fm.copy_buffer = set(File(g)
- for g in fobj.read().split("\n") if exists(g))
- fobj.close()
- self.fm.ui.redraw_main_column()
- return None
-
-
-class save_copy_buffer(Command):
- """:save_copy_buffer
-
- Save the copy buffer to datadir/copy_buffer
- """
- copy_buffer_filename = 'copy_buffer'
-
- def execute(self):
- import sys
- fname = None
- fname = self.fm.datapath(self.copy_buffer_filename)
- unwritable = IOError if sys.version_info[0] < 3 else OSError
- try:
- fobj = open(fname, 'w')
- except unwritable:
- return self.fm.notify("Cannot open %s" %
- (fname or self.copy_buffer_filename), bad=True)
- fobj.write("\n".join(fobj.path for fobj in self.fm.copy_buffer))
- fobj.close()
- return None
-
-
-class unmark_tag(mark_tag):
- """:unmark_tag [<tags>]
-
- Unmark all tags that are tagged with either of the given tags.
- When leaving out the tag argument, all tagged files are unmarked.
- """
- do_mark = False
-
-
-class mkdir(Command):
- """:mkdir <dirname>
-
- Creates a directory with the name <dirname>.
- """
-
- def execute(self):
- from os.path import join, expanduser, lexists
- from os import makedirs
-
- dirname = join(self.fm.thisdir.path, expanduser(self.rest(1)))
- if not lexists(dirname):
- makedirs(dirname)
- else:
- self.fm.notify("file/directory exists!", bad=True)
-
- def tab(self, tabnum):
- return self._tab_directory_content()
-
-
-class touch(Command):
- """:touch <fname>
-
- Creates a file with the name <fname>.
- """
-
- def execute(self):
- from os.path import join, expanduser, lexists
-
- fname = join(self.fm.thisdir.path, expanduser(self.rest(1)))
- if not lexists(fname):
- open(fname, 'a').close()
- else:
- self.fm.notify("file/directory exists!", bad=True)
-
- def tab(self, tabnum):
- return self._tab_directory_content()
-
-
-class edit(Command):
- """:edit <filename>
-
- Opens the specified file in vim
- """
-
- def execute(self):
- if not self.arg(1):
- self.fm.edit_file(self.fm.thisfile.path)
- else:
- self.fm.edit_file(self.rest(1))
-
- def tab(self, tabnum):
- return self._tab_directory_content()
-
-
-class eval_(Command):
- """:eval [-q] <python code>
-
- Evaluates the python code.
- `fm' is a reference to the FM instance.
- To display text, use the function `p'.
-
- Examples:
- :eval fm
- :eval len(fm.directories)
- :eval p("Hello World!")
- """
- name = 'eval'
- resolve_macros = False
-
- def execute(self):
- # The import is needed so eval() can access the ranger module
- import ranger # NOQA pylint: disable=unused-import,unused-variable
- if self.arg(1) == '-q':
- code = self.rest(2)
- quiet = True
- else:
- code = self.rest(1)
- quiet = False
- global cmd, fm, p, quantifier # pylint: disable=invalid-name,global-variable-undefined
- fm = self.fm
- cmd = self.fm.execute_console
- p = fm.notify
- quantifier = self.quantifier
- try:
- try:
- result = eval(code) # pylint: disable=eval-used
- except SyntaxError:
- exec(code) # pylint: disable=exec-used
- else:
- if result and not quiet:
- p(result)
- except Exception as err: # pylint: disable=broad-except
- fm.notify("The error `%s` was caused by evaluating the "
- "following code: `%s`" % (err, code), bad=True)
-
-
-class rename(Command):
- """:rename <newname>
-
- Changes the name of the currently highlighted file to <newname>
- """
-
- def execute(self):
- from ranger.container.file import File
- from os import access
-
- new_name = self.rest(1)
-
- if not new_name:
- return self.fm.notify('Syntax: rename <newname>', bad=True)
-
- if new_name == self.fm.thisfile.relative_path:
- return None
-
- if access(new_name, os.F_OK):
- return self.fm.notify("Can't rename: file already exists!", bad=True)
-
- if self.fm.rename(self.fm.thisfile, new_name):
- file_new = File(new_name)
- self.fm.bookmarks.update_path(self.fm.thisfile.path, file_new)
- self.fm.tags.update_path(self.fm.thisfile.path, file_new.path)
- self.fm.thisdir.pointed_obj = file_new
- self.fm.thisfile = file_new
-
- return None
-
- def tab(self, tabnum):
- return self._tab_directory_content()
-
-
-class rename_append(Command):
- """:rename_append [-FLAGS...]
-
- Opens the console with ":rename <current file>" with the cursor positioned
- before the file extension.
-
- Flags:
- -a Position before all extensions
- -r Remove everything before extensions
- """
- def __init__(self, *args, **kwargs):
- super(rename_append, self).__init__(*args, **kwargs)
-
- flags, _ = self.parse_flags()
- self._flag_ext_all = 'a' in flags
- self._flag_remove = 'r' in flags
-
- def execute(self):
- from ranger import MACRO_DELIMITER, MACRO_DELIMITER_ESC
-
- tfile = self.fm.thisfile
- relpath = tfile.relative_path.replace(MACRO_DELIMITER, MACRO_DELIMITER_ESC)
- basename = tfile.basename.replace(MACRO_DELIMITER, MACRO_DELIMITER_ESC)
-
- if basename.find('.') <= 0:
- self.fm.open_console('rename ' + relpath)
- return
-
- if self._flag_ext_all:
- pos_ext = re.search(r'[^.]+', basename).end(0)
- else:
- pos_ext = basename.rindex('.')
- pos = len(relpath) - len(basename) + pos_ext
-
- if self._flag_remove:
- relpath = relpath[:-len(basename)] + basename[pos_ext:]
- pos -= pos_ext
-
- self.fm.open_console('rename ' + relpath, position=(7 + pos))
-
-
-class chmod(Command):
- """:chmod <octal number>
-
- Sets the permissions of the selection to the octal number.
-
- The octal number is between 0 and 777. The digits specify the
- permissions for the user, the group and others.
-
- A 1 permits execution, a 2 permits writing, a 4 permits reading.
- Add those numbers to combine them. So a 7 permits everything.
- """
-
- def execute(self):
- mode_str = self.rest(1)
- if not mode_str:
- if not self.quantifier:
- self.fm.notify("Syntax: chmod <octal number>", bad=True)
- return
- mode_str = str(self.quantifier)
-
- try:
- mode = int(mode_str, 8)
- if mode < 0 or mode > 0o777:
- raise ValueError
- except ValueError:
- self.fm.notify("Need an octal number between 0 and 777!", bad=True)
- return
-
- for fobj in self.fm.thistab.get_selection():
- try:
- os.chmod(fobj.path, mode)
- except OSError as ex:
- self.fm.notify(ex)
-
- # reloading directory. maybe its better to reload the selected
- # files only.
- self.fm.thisdir.content_outdated = True
-
-
-class bulkrename(Command):
- """:bulkrename
-
- This command opens a list of selected files in an external editor.
- After you edit and save the file, it will generate a shell script
- which does bulk renaming according to the changes you did in the file.
-
- This shell script is opened in an editor for you to review.
- After you close it, it will be executed.
- """
-
- def execute(self): # pylint: disable=too-many-locals,too-many-statements
- import sys
- import tempfile
- from ranger.container.file import File
- from ranger.ext.shell_escape import shell_escape as esc
- py3 = sys.version_info[0] >= 3
-
- # Create and edit the file list
- filenames = [f.relative_path for f in self.fm.thistab.get_selection()]
- listfile = tempfile.NamedTemporaryFile(delete=False)
- listpath = listfile.name
-
- if py3:
- listfile.write("\n".join(filenames).encode("utf-8"))
- else:
- listfile.write("\n".join(filenames))
- listfile.close()
- self.fm.execute_file([File(listpath)], app='editor')
- listfile = open(listpath, 'r')
- new_filenames = listfile.read().split("\n")
- listfile.close()
- os.unlink(listpath)
- if all(a == b for a, b in zip(filenames, new_filenames)):
- self.fm.notify("No renaming to be done!")
- return
-
- # Generate script
- cmdfile = tempfile.NamedTemporaryFile()
- script_lines = []
- script_lines.append("# This file will be executed when you close the editor.\n")
- script_lines.append("# Please double-check everything, clear the file to abort.\n")
- script_lines.extend("mv -vi -- %s %s\n" % (esc(old), esc(new))
- for old, new in zip(filenames, new_filenames) if old != new)
- script_content = "".join(script_lines)
- if py3:
- cmdfile.write(script_content.encode("utf-8"))
- else:
- cmdfile.write(script_content)
- cmdfile.flush()
-
- # Open the script and let the user review it, then check if the script
- # was modified by the user
- self.fm.execute_file([File(cmdfile.name)], app='editor')
- cmdfile.seek(0)
- script_was_edited = (script_content != cmdfile.read())
-
- # Do the renaming
- self.fm.run(['/bin/sh', cmdfile.name], flags='w')
- cmdfile.close()
-
- # Retag the files, but only if the script wasn't changed during review,
- # because only then we know which are the source and destination files.
- if not script_was_edited:
- tags_changed = False
- for old, new in zip(filenames, new_filenames):
- if old != new:
- oldpath = self.fm.thisdir.path + '/' + old
- newpath = self.fm.thisdir.path + '/' + new
- if oldpath in self.fm.tags:
- old_tag = self.fm.tags.tags[oldpath]
- self.fm.tags.remove(oldpath)
- self.fm.tags.tags[newpath] = old_tag
- tags_changed = True
- if tags_changed:
- self.fm.tags.dump()
- else:
- fm.notify("files have not been retagged")
-
-
-class relink(Command):
- """:relink <newpath>
-
- Changes the linked path of the currently highlighted symlink to <newpath>
- """
-
- def execute(self):
- new_path = self.rest(1)
- tfile = self.fm.thisfile
-
- if not new_path:
- return self.fm.notify('Syntax: relink <newpath>', bad=True)
-
- if not tfile.is_link:
- return self.fm.notify('%s is not a symlink!' % tfile.relative_path, bad=True)
-
- if new_path == os.readlink(tfile.path):
- return None
-
- try:
- os.remove(tfile.path)
- os.symlink(new_path, tfile.path)
- except OSError as err:
- self.fm.notify(err)
-
- self.fm.reset()
- self.fm.thisdir.pointed_obj = tfile
- self.fm.thisfile = tfile
-
- return None
-
- def tab(self, tabnum):
- if not self.rest(1):
- return self.line + os.readlink(self.fm.thisfile.path)
- return self._tab_directory_content()
-
-
-class help_(Command):
- """:help
-
- Display ranger's manual page.
- """
- name = 'help'
-
- def execute(self):
- def callback(answer):
- if answer == "q":
- return
- elif answer == "m":
- self.fm.display_help()
- elif answer == "c":
- self.fm.dump_commands()
- elif answer == "k":
- self.fm.dump_keybindings()
- elif answer == "s":
- self.fm.dump_settings()
-
- self.fm.ui.console.ask(
- "View [m]an page, [k]ey bindings, [c]ommands or [s]ettings? (press q to abort)",
- callback,
- list("mqkcs")
- )
-
-
-class copymap(Command):
- """:copymap <keys> <newkeys1> [<newkeys2>...]
-
- Copies a "browser" keybinding from <keys> to <newkeys>
- """
- context = 'browser'
-
- def execute(self):
- if not self.arg(1) or not self.arg(2):
- return self.fm.notify("Not enough arguments", bad=True)
-
- for arg in self.args[2:]:
- self.fm.ui.keymaps.copy(self.context, self.arg(1), arg)
-
- return None
-
-
-class copypmap(copymap):
- """:copypmap <keys> <newkeys1> [<newkeys2>...]
-
- Copies a "pager" keybinding from <keys> to <newkeys>
- """
- context = 'pager'
-
-
-class copycmap(copymap):
- """:copycmap <keys> <newkeys1> [<newkeys2>...]
-
- Copies a "console" keybinding from <keys> to <newkeys>
- """
- context = 'console'
-
-
-class copytmap(copymap):
- """:copycmap <keys> <newkeys1> [<newkeys2>...]
-
- Copies a "taskview" keybinding from <keys> to <newkeys>
- """
- context = 'taskview'
-
-
-class unmap(Command):
- """:unmap <keys> [<keys2>, ...]
-
- Remove the given "browser" mappings
- """
- context = 'browser'
-
- def execute(self):
- for arg in self.args[1:]:
- self.fm.ui.keymaps.unbind(self.context, arg)
-
-
-class cunmap(unmap):
- """:cunmap <keys> [<keys2>, ...]
-
- Remove the given "console" mappings
- """
- context = 'browser'
-
-
-class punmap(unmap):
- """:punmap <keys> [<keys2>, ...]
-
- Remove the given "pager" mappings
- """
- context = 'pager'
-
-
-class tunmap(unmap):
- """:tunmap <keys> [<keys2>, ...]
-
- Remove the given "taskview" mappings
- """
- context = 'taskview'
-
-
-class map_(Command):
- """:map <keysequence> <command>
-
- Maps a command to a keysequence in the "browser" context.
-
- Example:
- map j move down
- map J move down 10
- """
- name = 'map'
- context = 'browser'
- resolve_macros = False
-
- def execute(self):
- if not self.arg(1) or not self.arg(2):
- self.fm.notify("Syntax: {0} <keysequence> <command>".format(self.get_name()), bad=True)
- return
-
- self.fm.ui.keymaps.bind(self.context, self.arg(1), self.rest(2))
-
-
-class cmap(map_):
- """:cmap <keysequence> <command>
-
- Maps a command to a keysequence in the "console" context.
-
- Example:
- cmap <ESC> console_close
- cmap <C-x> console_type test
- """
- context = 'console'
-
-
-class tmap(map_):
- """:tmap <keysequence> <command>
-
- Maps a command to a keysequence in the "taskview" context.
- """
- context = 'taskview'
-
-
-class pmap(map_):
- """:pmap <keysequence> <command>
-
- Maps a command to a keysequence in the "pager" context.
- """
- context = 'pager'
-
-
-class scout(Command):
- """:scout [-FLAGS...] <pattern>
-
- Swiss army knife command for searching, traveling and filtering files.
-
- Flags:
- -a Automatically open a file on unambiguous match
- -e Open the selected file when pressing enter
- -f Filter files that match the current search pattern
- -g Interpret pattern as a glob pattern
- -i Ignore the letter case of the files
- -k Keep the console open when changing a directory with the command
- -l Letter skipping; e.g. allow "rdme" to match the file "readme"
- -m Mark the matching files after pressing enter
- -M Unmark the matching files after pressing enter
- -p Permanent filter: hide non-matching files after pressing enter
- -r Interpret pattern as a regular expression pattern
- -s Smart case; like -i unless pattern contains upper case letters
- -t Apply filter and search pattern as you type
- -v Inverts the match
-
- Multiple flags can be combined. For example, ":scout -gpt" would create
- a :filter-like command using globbing.
- """
- # pylint: disable=bad-whitespace
- AUTO_OPEN = 'a'
- OPEN_ON_ENTER = 'e'
- FILTER = 'f'
- SM_GLOB = 'g'
- IGNORE_CASE = 'i'
- KEEP_OPEN = 'k'
- SM_LETTERSKIP = 'l'
- MARK = 'm'
- UNMARK = 'M'
- PERM_FILTER = 'p'
- SM_REGEX = 'r'
- SMART_CASE = 's'
- AS_YOU_TYPE = 't'
- INVERT = 'v'
- # pylint: enable=bad-whitespace
-
- def __init__(self, *args, **kwargs):
- super(scout, self).__init__(*args, **kwargs)
- self._regex = None
- self.flags, self.pattern = self.parse_flags()
-
- def execute(self): # pylint: disable=too-many-branches
- thisdir = self.fm.thisdir
- flags = self.flags
- pattern = self.pattern
- regex = self._build_regex()
- count = self._count(move=True)
-
- self.fm.thistab.last_search = regex
- self.fm.set_search_method(order="search")
-
- if (self.MARK in flags or self.UNMARK in flags) and thisdir.files:
- value = flags.find(self.MARK) > flags.find(self.UNMARK)
- if self.FILTER in flags:
- for fobj in thisdir.files:
- thisdir.mark_item(fobj, value)
- else:
- for fobj in thisdir.files:
- if regex.search(fobj.relative_path):
- thisdir.mark_item(fobj, value)
-
- if self.PERM_FILTER in flags:
- thisdir.filter = regex if pattern else None
-
- # clean up:
- self.cancel()
-
- if self.OPEN_ON_ENTER in flags or \
- (self.AUTO_OPEN in flags and count == 1):
- if pattern == '..':
- self.fm.cd(pattern)
- else:
- self.fm.move(right=1)
- if self.quickly_executed:
- self.fm.block_input(0.5)
-
- if self.KEEP_OPEN in flags and thisdir != self.fm.thisdir:
- # reopen the console:
- if not pattern:
- self.fm.open_console(self.line)
- else:
- self.fm.open_console(self.line[0:-len(pattern)])
-
- if self.quickly_executed and thisdir != self.fm.thisdir and pattern != "..":
- self.fm.block_input(0.5)
-
- def cancel(self):
- self.fm.thisdir.temporary_filter = None
- self.fm.thisdir.refilter()
-
- def quick(self):
- asyoutype = self.AS_YOU_TYPE in self.flags
- if self.FILTER in self.flags:
- self.fm.thisdir.temporary_filter = self._build_regex()
- if self.PERM_FILTER in self.flags and asyoutype:
- self.fm.thisdir.filter = self._build_regex()
- if self.FILTER in self.flags or self.PERM_FILTER in self.flags:
- self.fm.thisdir.refilter()
- if self._count(move=asyoutype) == 1 and self.AUTO_OPEN in self.flags:
- return True
- return False
-
- def tab(self, tabnum):
- self._count(move=True, offset=tabnum)
-
- def _build_regex(self):
- if self._regex is not None:
- return self._regex
-
- frmat = "%s"
- flags = self.flags
- pattern = self.pattern
-
- if pattern == ".":
- return re.compile("")
-
- # Handle carets at start and dollar signs at end separately
- if pattern.startswith('^'):
- pattern = pattern[1:]
- frmat = "^" + frmat
- if pattern.endswith('$'):
- pattern = pattern[:-1]
- frmat += "$"
-
- # Apply one of the search methods
- if self.SM_REGEX in flags:
- regex = pattern
- elif self.SM_GLOB in flags:
- regex = re.escape(pattern).replace("\\*", ".*").replace("\\?", ".")
- elif self.SM_LETTERSKIP in flags:
- regex = ".*".join(re.escape(c) for c in pattern)
- else:
- regex = re.escape(pattern)
-
- regex = frmat % regex
-
- # Invert regular expression if necessary
- if self.INVERT in flags:
- regex = "^(?:(?!%s).)*$" % regex
-
- # Compile Regular Expression
- # pylint: disable=no-member
- options = re.UNICODE
- if self.IGNORE_CASE in flags or self.SMART_CASE in flags and \
- pattern.islower():
- options |= re.IGNORECASE
- # pylint: enable=no-member
- try:
- self._regex = re.compile(regex, options)
- except re.error:
- self._regex = re.compile("")
- return self._regex
-
- def _count(self, move=False, offset=0):
- count = 0
- cwd = self.fm.thisdir
- pattern = self.pattern
-
- if not pattern or not cwd.files:
- return 0
- if pattern == '.':
- return 0
- if pattern == '..':
- return 1
-
- deq = deque(cwd.files)
- deq.rotate(-cwd.pointer - offset)
- i = offset
- regex = self._build_regex()
- for fsobj in deq:
- if regex.search(fsobj.relative_path):
- count += 1
- if move and count == 1:
- cwd.move(to=(cwd.pointer + i) % len(cwd.files))
- self.fm.thisfile = cwd.pointed_obj
- if count > 1:
- return count
- i += 1
-
- return count == 1
-
-
-class narrow(Command):
- """
- :narrow
-
- Show only the files selected right now. If no files are selected,
- disable narrowing.
- """
- def execute(self):
- if self.fm.thisdir.marked_items:
- selection = [f.basename for f in self.fm.thistab.get_selection()]
- self.fm.thisdir.narrow_filter = selection
- else:
- self.fm.thisdir.narrow_filter = None
- self.fm.thisdir.refilter()
-
-
-class filter_inode_type(Command):
- """
- :filter_inode_type [dfl]
-
- Displays only the files of specified inode type. Parameters
- can be combined.
-
- d display directories
- f display files
- l display links
- """
-
- def execute(self):
- if not self.arg(1):
- self.fm.thisdir.inode_type_filter = ""
- else:
- self.fm.thisdir.inode_type_filter = self.arg(1)
- self.fm.thisdir.refilter()
-
-
-class filter_stack(Command):
- """
- :filter_stack ...
-
- Manages the filter stack.
-
- filter_stack add FILTER_TYPE ARGS...
- filter_stack pop
- filter_stack decompose
- filter_stack rotate [N=1]
- filter_stack clear
- filter_stack show
- """
- def execute(self):
- from ranger.core.filter_stack import SIMPLE_FILTERS, FILTER_COMBINATORS
-
- subcommand = self.arg(1)
-
- if subcommand == "add":
- try:
- self.fm.thisdir.filter_stack.append(
- SIMPLE_FILTERS[self.arg(2)](self.rest(3))
- )
- except KeyError:
- FILTER_COMBINATORS[self.arg(2)](self.fm.thisdir.filter_stack)
- elif subcommand == "pop":
- self.fm.thisdir.filter_stack.pop()
- elif subcommand == "decompose":
- inner_filters = self.fm.thisdir.filter_stack.pop().decompose()
- if inner_filters:
- self.fm.thisdir.filter_stack.extend(inner_filters)
- elif subcommand == "clear":
- self.fm.thisdir.filter_stack = []
- elif subcommand == "rotate":
- rotate_by = int(self.arg(2) or 1)
- self.fm.thisdir.filter_stack = (
- self.fm.thisdir.filter_stack[-rotate_by:]
- + self.fm.thisdir.filter_stack[:-rotate_by]
- )
- elif subcommand == "show":
- stack = list(map(str, self.fm.thisdir.filter_stack))
- pager = self.fm.ui.open_pager()
- pager.set_source(["Filter stack: "] + stack)
- pager.move(to=100, percentage=True)
- return
- else:
- self.fm.notify(
- "Unknown subcommand: {}".format(subcommand),
- bad=True
- )
- return
-
- self.fm.thisdir.refilter()
-
-
-class grep(Command):
- """:grep <string>
-
- Looks for a string in all marked files or directories
- """
-
- def execute(self):
- if self.rest(1):
- action = ['grep', '--line-number']
- action.extend(['-e', self.rest(1), '-r'])
- action.extend(f.path for f in self.fm.thistab.get_selection())
- self.fm.execute_command(action, flags='p')
-
-
-class flat(Command):
- """
- :flat <level>
-
- Flattens the directory view up to the specified level.
-
- -1 fully flattened
- 0 remove flattened view
- """
-
- def execute(self):
- try:
- level_str = self.rest(1)
- level = int(level_str)
- except ValueError:
- level = self.quantifier
- if level is None:
- self.fm.notify("Syntax: flat <level>", bad=True)
- return
- if level < -1:
- self.fm.notify("Need an integer number (-1, 0, 1, ...)", bad=True)
- self.fm.thisdir.unload()
- self.fm.thisdir.flat = level
- self.fm.thisdir.load_content()
-
-# Version control commands
-# --------------------------------
-
-
-class stage(Command):
- """
- :stage
-
- Stage selected files for the corresponding version control system
- """
-
- def execute(self):
- from ranger.ext.vcs import VcsError
-
- if self.fm.thisdir.vcs and self.fm.thisdir.vcs.track:
- filelist = [f.path for f in self.fm.thistab.get_selection()]
- try:
- self.fm.thisdir.vcs.action_add(filelist)
- except VcsError as ex:
- self.fm.notify('Unable to stage files: {0}'.format(ex))
- self.fm.ui.vcsthread.process(self.fm.thisdir)
- else:
- self.fm.notify('Unable to stage files: Not in repository')
-
-
-class unstage(Command):
- """
- :unstage
-
- Unstage selected files for the corresponding version control system
- """
-
- def execute(self):
- from ranger.ext.vcs import VcsError
-
- if self.fm.thisdir.vcs and self.fm.thisdir.vcs.track:
- filelist = [f.path for f in self.fm.thistab.get_selection()]
- try:
- self.fm.thisdir.vcs.action_reset(filelist)
- except VcsError as ex:
- self.fm.notify('Unable to unstage files: {0}'.format(ex))
- self.fm.ui.vcsthread.process(self.fm.thisdir)
- else:
- self.fm.notify('Unable to unstage files: Not in repository')
-
-# Metadata commands
-# --------------------------------
-
-
-class prompt_metadata(Command):
- """
- :prompt_metadata <key1> [<key2> [<key3> ...]]
-
- Prompt the user to input metadata for multiple keys in a row.
- """
-
- _command_name = "meta"
- _console_chain = None
-
- def execute(self):
- prompt_metadata._console_chain = self.args[1:]
- self._process_command_stack()
-
- def _process_command_stack(self):
- if prompt_metadata._console_chain:
- key = prompt_metadata._console_chain.pop()
- self._fill_console(key)
- else:
- for col in self.fm.ui.browser.columns:
- col.need_redraw = True
-
- def _fill_console(self, key):
- metadata = self.fm.metadata.get_metadata(self.fm.thisfile.path)
- if key in metadata and metadata[key]:
- existing_value = metadata[key]
- else:
- existing_value = ""
- text = "%s %s %s" % (self._command_name, key, existing_value)
- self.fm.open_console(text, position=len(text))
-
-
-class meta(prompt_metadata):
- """
- :meta <key> [<value>]
-
- Change metadata of a file. Deletes the key if value is empty.
- """
-
- def execute(self):
- key = self.arg(1)
- update_dict = dict()
- update_dict[key] = self.rest(2)
- selection = self.fm.thistab.get_selection()
- for fobj in selection:
- self.fm.metadata.set_metadata(fobj.path, update_dict)
- self._process_command_stack()
-
- def tab(self, tabnum):
- key = self.arg(1)
- metadata = self.fm.metadata.get_metadata(self.fm.thisfile.path)
- if key in metadata and metadata[key]:
- return [" ".join([self.arg(0), self.arg(1), metadata[key]])]
- return [self.arg(0) + " " + k for k in sorted(metadata)
- if k.startswith(self.arg(1))]
-
-
-class linemode(default_linemode):
- """
- :linemode <mode>
-
- Change what is displayed as a filename.
-
- - "mode" may be any of the defined linemodes (see: ranger.core.linemode).
- "normal" is mapped to "filename".
- """
-
- def execute(self):
- mode = self.arg(1)
-
- if mode == "normal":
- from ranger.core.linemode import DEFAULT_LINEMODE
- mode = DEFAULT_LINEMODE
-
- if mode not in self.fm.thisfile.linemode_dict:
- self.fm.notify("Unhandled linemode: `%s'" % mode, bad=True)
- return
-
- self.fm.thisdir.set_linemode_of_children(mode)
-
- # Ask the browsercolumns to redraw
- for col in self.fm.ui.browser.columns:
- col.need_redraw = True
-
-
-class yank(Command):
- """:yank [name|dir|path]
-
- Copies the file's name (default), directory or path into both the primary X
- selection and the clipboard.
- """
-
- modes = {
- '': 'basename',
- 'name_without_extension': 'basename_without_extension',
- 'name': 'basename',
- 'dir': 'dirname',
- 'path': 'path',
- }
-
- def execute(self):
- import subprocess
-
- def clipboards():
- from ranger.ext.get_executables import get_executables
- clipboard_managers = {
- 'xclip': [
- ['xclip'],
- ['xclip', '-selection', 'clipboard'],
- ],
- 'xsel': [
- ['xsel'],
- ['xsel', '-b'],
- ],
- 'pbcopy': [
- ['pbcopy'],
- ],
- }
- ordered_managers = ['pbcopy', 'xclip', 'xsel']
- executables = get_executables()
- for manager in ordered_managers:
- if manager in executables:
- return clipboard_managers[manager]
- return []
-
- clipboard_commands = clipboards()
-
- mode = self.modes[self.arg(1)]
- selection = self.get_selection_attr(mode)
-
- new_clipboard_contents = "\n".join(selection)
- for command in clipboard_commands:
- process = subprocess.Popen(command, universal_newlines=True,
- stdin=subprocess.PIPE)
- process.communicate(input=new_clipboard_contents)
-
- def get_selection_attr(self, attr):
- return [getattr(item, attr) for item in
- self.fm.thistab.get_selection()]
-
- def tab(self, tabnum):
- return (
- self.start(1) + mode for mode
- in sorted(self.modes.keys())
- if mode
- )
diff --git a/.unused/ranger/.config/ranger/rc.conf b/.unused/ranger/.config/ranger/rc.conf
@@ -1,725 +0,0 @@
-# ===================================================================
-# This file contains the default startup commands for ranger.
-# To change them, it is recommended to create either /etc/ranger/rc.conf
-# (system-wide) or ~/.config/ranger/rc.conf (per user) and add your custom
-# commands there.
-#
-# If you copy this whole file there, you may want to set the environment
-# variable RANGER_LOAD_DEFAULT_RC to FALSE to avoid loading it twice.
-#
-# The purpose of this file is mainly to define keybindings and settings.
-# For running more complex python code, please create a plugin in "plugins/" or
-# a command in "commands.py".
-#
-# Each line is a command that will be run before the user interface
-# is initialized. As a result, you can not use commands which rely
-# on the UI such as :delete or :mark.
-# ===================================================================
-
-# ===================================================================
-# == Options
-# ===================================================================
-
-# Which viewmode should be used? Possible values are:
-# miller: Use miller columns which show multiple levels of the hierarchy
-# multipane: Midnight-commander like multipane view showing all tabs next
-# to each other
-set viewmode miller
-#set viewmode multipane
-
-# How many columns are there, and what are their relative widths?
-set column_ratios 1,2,4
-
-# Which files should be hidden? (regular expression)
-set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$
-
-# Show hidden files? You can toggle this by typing 'zh'
-set show_hidden false
-
-# Ask for a confirmation when running the "delete" command?
-# Valid values are "always", "never", "multiple" (default)
-# With "multiple", ranger will ask only if you delete multiple files at once.
-set confirm_on_delete always
-
-# Use non-default path for file preview script?
-# ranger ships with scope.sh, a script that calls external programs (see
-# README.md for dependencies) to preview images, archives, etc.
-#set preview_script ~/.config/ranger/scope.sh
-
-# Use the external preview script or display simple plain text or image previews?
-set use_preview_script true
-
-# Automatically count files in the directory, even before entering them?
-set automatically_count_files true
-
-# Open all images in this directory when running certain image viewers
-# like feh or sxiv? You can still open selected files by marking them.
-set open_all_images true
-
-# Be aware of version control systems and display information.
-set vcs_aware false
-
-# State of the four backends git, hg, bzr, svn. The possible states are
-# disabled, local (only show local info), enabled (show local and remote
-# information).
-set vcs_backend_git enabled
-set vcs_backend_hg disabled
-set vcs_backend_bzr disabled
-set vcs_backend_svn disabled
-
-# Use one of the supported image preview protocols
-set preview_images true
-
-# Set the preview image method. Supported methods:
-#
-# * w3m (default):
-# Preview images in full color with the external command "w3mimgpreview"?
-# This requires the console web browser "w3m" and a supported terminal.
-# It has been successfully tested with "xterm" and "urxvt" without tmux.
-#
-# * iterm2:
-# Preview images in full color using iTerm2 image previews
-# (http://iterm2.com/images.html). This requires using iTerm2 compiled
-# with image preview support.
-#
-# This feature relies on the dimensions of the terminal's font. By default, a
-# width of 8 and height of 11 are used. To use other values, set the options
-# iterm2_font_width and iterm2_font_height to the desired values.
-#
-# * terminology:
-# Previews images in full color in the terminology terminal emulator.
-# Supports a wide variety of formats, even vector graphics like svg.
-#
-# * urxvt:
-# Preview images in full color using urxvt image backgrounds. This
-# requires using urxvt compiled with pixbuf support.
-#
-# * urxvt-full:
-# The same as urxvt but utilizing not only the preview pane but the
-# whole terminal window.
-#
-# * kitty:
-# Preview images in full color using kitty image protocol.
-# Requires python PIL or pillow library.
-# If ranger does not share the local filesystem with kitty
-# the transfer method is changed to encode the whole image;
-# while slower, this allows remote previews,
-# for example during an ssh session.
-# Tmux is unsupported.
-set preview_images_method w3m
-
-# Delay in seconds before displaying an image with the w3m method.
-# Increase it in case of experiencing display corruption.
-set w3m_delay 0.02
-
-# Default iTerm2 font size (see: preview_images_method: iterm2)
-set iterm2_font_width 8
-set iterm2_font_height 11
-
-# Use a unicode "..." character to mark cut-off filenames?
-set unicode_ellipsis false
-
-# BIDI support - try to properly display file names in RTL languages (Hebrew, Arabic).
-# Requires the python-bidi pip package
-set bidi_support false
-
-# Show dotfiles in the bookmark preview box?
-set show_hidden_bookmarks true
-
-# Which colorscheme to use? These colorschemes are available by default:
-# default, jungle, snow, solarized
-set colorscheme default
-
-# Preview files on the rightmost column?
-# And collapse (shrink) the last column if there is nothing to preview?
-set preview_files true
-set preview_directories true
-set collapse_preview true
-
-# Save the console history on exit?
-set save_console_history true
-
-# Draw the status bar on top of the browser window (default: bottom)
-set status_bar_on_top false
-
-# Draw a progress bar in the status bar which displays the average state of all
-# currently running tasks which support progress bars?
-set draw_progress_bar_in_status_bar true
-
-# Draw borders around columns? (separators, outline, both, or none)
-# Separators are vertical lines between columns.
-# Outline draws a box around all the columns.
-# Both combines the two.
-set draw_borders both
-#set draw_borders separators
-
-# Display the directory name in tabs?
-set dirname_in_tabs false
-
-# Enable the mouse support?
-set mouse_enabled false
-
-# Display the file size in the main column or status bar?
-set display_size_in_main_column true
-set display_size_in_status_bar false
-
-# Display the free disk space in the status bar?
-set display_free_space_in_status_bar false
-
-# Display files tags in all columns or only in main column?
-set display_tags_in_all_columns true
-
-# Set a title for the window?
-set update_title false
-
-# Set the title to "ranger" in the tmux program?
-set update_tmux_title true
-
-# Shorten the title if it gets long? The number defines how many
-# directories are displayed at once, 0 turns off this feature.
-set shorten_title 3
-
-# Show hostname in titlebar?
-set hostname_in_titlebar true
-
-# Abbreviate $HOME with ~ in the titlebar (first line) of ranger?
-set tilde_in_titlebar true
-
-# How many directory-changes or console-commands should be kept in history?
-set max_history_size 20
-set max_console_history_size 50
-
-# Try to keep so much space between the top/bottom border when scrolling:
-set scroll_offset 8
-
-# Flush the input after each key hit? (Noticeable when ranger lags)
-set flushinput true
-
-# Padding on the right when there's no preview?
-# This allows you to click into the space to run the file.
-set padding_right true
-
-# Save bookmarks (used with mX and `X) instantly?
-# This helps to synchronize bookmarks between multiple ranger
-# instances but leads to *slight* performance loss.
-# When false, bookmarks are saved when ranger is exited.
-set autosave_bookmarks true
-
-# Save the "`" bookmark to disk. This can be used to switch to the last
-# directory by typing "``".
-set save_backtick_bookmark true
-
-# You can display the "real" cumulative size of directories by using the
-# command :get_cumulative_size or typing "dc". The size is expensive to
-# calculate and will not be updated automatically. You can choose
-# to update it automatically though by turning on this option:
-set autoupdate_cumulative_size false
-
-# Turning this on makes sense for screen readers:
-set show_cursor false
-
-# One of: size, natural, basename, atime, ctime, mtime, type, random
-set sort mtime
-
-# Additional sorting options
-set sort_reverse false
-set sort_case_insensitive true
-set sort_directories_first true
-set sort_unicode false
-
-# Enable this if key combinations with the Alt Key don't work for you.
-# (Especially on xterm)
-set xterm_alt_key false
-
-# Whether to include bookmarks in cd command
-set cd_bookmarks true
-
-# Changes case sensitivity for the cd command tab completion
-set cd_tab_case sensitive
-
-# Use fuzzy tab completion with the "cd" command. For example,
-# ":cd /u/lo/b<tab>" expands to ":cd /usr/local/bin".
-set cd_tab_fuzzy false
-
-# Avoid previewing files larger than this size, in bytes. Use a value of 0 to
-# disable this feature.
-set preview_max_size 0
-
-# The key hint lists up to this size have their sublists expanded.
-# Otherwise the submaps are replaced with "...".
-set hint_collapse_threshold 10
-
-# Add the highlighted file to the path in the titlebar
-set show_selection_in_titlebar true
-
-# The delay that ranger idly waits for user input, in milliseconds, with a
-# resolution of 100ms. Lower delay reduces lag between directory updates but
-# increases CPU load.
-set idle_delay 2000
-
-# When the metadata manager module looks for metadata, should it only look for
-# a ".metadata.json" file in the current directory, or do a deep search and
-# check all directories above the current one as well?
-set metadata_deep_search false
-
-# Clear all existing filters when leaving a directory
-set clear_filters_on_dir_change false
-
-# Disable displaying line numbers in main column.
-# Possible values: false, absolute, relative.
-set line_numbers false
-
-# When line_numbers=relative show the absolute line number in the
-# current line.
-set relative_current_zero false
-
-# Start line numbers from 1 instead of 0
-set one_indexed false
-
-# Save tabs on exit
-set save_tabs_on_exit false
-
-# Enable scroll wrapping - moving down while on the last item will wrap around to
-# the top and vice versa.
-set wrap_scroll false
-
-# Set the global_inode_type_filter to nothing. Possible options: d, f and l for
-# directories, files and symlinks respectively.
-set global_inode_type_filter
-
-# This setting allows to freeze the list of files to save I/O bandwidth. It
-# should be 'false' during start-up, but you can toggle it by pressing F.
-set freeze_files false
-
-# ===================================================================
-# == Local Options
-# ===================================================================
-# You can set local options that only affect a single directory.
-
-# Examples:
-# setlocal path=~/downloads sort mtime
-
-# ===================================================================
-# == Command Aliases in the Console
-# ===================================================================
-
-alias e edit
-alias q quit
-alias q! quit!
-alias qa quitall
-alias qa! quitall!
-alias qall quitall
-alias qall! quitall!
-alias setl setlocal
-
-alias filter scout -prts
-alias find scout -aets
-alias mark scout -mr
-alias unmark scout -Mr
-alias search scout -rs
-alias search_inc scout -rts
-alias travel scout -aefklst
-
-# ===================================================================
-# == Define keys for the browser
-# ===================================================================
-
-# Basic
-map Q quitall
-map q quit
-copymap q ZZ ZQ
-
-map R reload_cwd
-map F set freeze_files!
-map <C-r> reset
-map <C-l> redraw_window
-map <C-c> abort
-map <esc> change_mode normal
-map ~ set viewmode!
-
-map i display_file
-map ? help
-map W display_log
-map w taskview_open
-map S shell $SHELL
-
-map : console
-map ; console
-map ! console shell%space
-map @ console -p6 shell %%s
-map # console shell -p%space
-map s console shell%space
-map r chain draw_possible_programs; console open_with%%space
-map f console find%space
-map cd console cd%space
-
-map <C-p> chain console; eval fm.ui.console.history_move(-1)
-
-# Change the line mode
-map Mf linemode filename
-map Mi linemode fileinfo
-map Mm linemode mtime
-map Mp linemode permissions
-map Ms linemode sizemtime
-map Mt linemode metatitle
-
-# Tagging / Marking
-map t tag_toggle
-map ut tag_remove
-map "<any> tag_toggle tag=%any
-map <Space> mark_files toggle=True
-map v mark_files all=True toggle=True
-map uv mark_files all=True val=False
-map V toggle_visual_mode
-map uV toggle_visual_mode reverse=True
-
-# For the nostalgics: Midnight Commander bindings
-map <F1> help
-map <F2> rename_append
-map <F3> display_file
-map <F4> edit
-map <F5> copy
-map <F6> cut
-map <F7> console mkdir%space
-map <F8> console delete
-map <F10> exit
-
-# In case you work on a keyboard with dvorak layout
-map <UP> move up=1
-map <DOWN> move down=1
-map <LEFT> move left=1
-map <RIGHT> move right=1
-map <HOME> move to=0
-map <END> move to=-1
-map <PAGEDOWN> move down=1 pages=True
-map <PAGEUP> move up=1 pages=True
-map <CR> move right=1
-#map <DELETE> console delete
-map <INSERT> console touch%space
-
-# VIM-like
-copymap <UP> k
-copymap <DOWN> j
-copymap <LEFT> h
-copymap <RIGHT> l
-copymap <HOME> gg
-copymap <END> G
-copymap <PAGEDOWN> <C-F>
-copymap <PAGEUP> <C-B>
-
-map J move down=0.5 pages=True
-map K move up=0.5 pages=True
-copymap J <C-D>
-copymap K <C-U>
-
-# Jumping around
-map H history_go -1
-map L history_go 1
-map ] move_parent 1
-map [ move_parent -1
-map } traverse
-map { traverse_backwards
-map ) jump_non
-
-map gh cd ~
-map ge cd /etc
-map gu cd /usr
-map gd cd /dev
-map gl cd -r .
-map gL cd -r %f
-map go cd /opt
-map gv cd /var
-map gm cd /media
-map gi eval fm.cd('/run/media/' + os.getenv('USER'))
-map gM cd /mnt
-map gs cd /srv
-map gp cd /tmp
-map gr cd /
-map gR eval fm.cd(ranger.RANGERDIR)
-map g/ cd /
-map g? cd /usr/share/doc/ranger
-
-# External Programs
-map E edit
-map du shell -p du --max-depth=1 -h --apparent-size
-map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh
-map yp yank path
-map yd yank dir
-map yn yank name
-map y. yank name_without_extension
-
-# Filesystem Operations
-map = chmod
-
-map cw console rename%space
-map a rename_append
-map A eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"))
-map I eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"), position=7)
-
-map pp paste
-map po paste overwrite=True
-map pP paste append=True
-map pO paste overwrite=True append=True
-map pl paste_symlink relative=False
-map pL paste_symlink relative=True
-map phl paste_hardlink
-map pht paste_hardlinked_subtree
-
-map dD console delete
-
-map dd cut
-map ud uncut
-map da cut mode=add
-map dr cut mode=remove
-map dt cut mode=toggle
-
-map yy copy
-map uy uncut
-map ya copy mode=add
-map yr copy mode=remove
-map yt copy mode=toggle
-
-# Temporary workarounds
-map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier)
-map dG eval fm.cut(dirarg=dict(to=-1), narg=quantifier)
-map dj eval fm.cut(dirarg=dict(down=1), narg=quantifier)
-map dk eval fm.cut(dirarg=dict(up=1), narg=quantifier)
-map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier)
-map yG eval fm.copy(dirarg=dict(to=-1), narg=quantifier)
-map yj eval fm.copy(dirarg=dict(down=1), narg=quantifier)
-map yk eval fm.copy(dirarg=dict(up=1), narg=quantifier)
-
-# Searching
-map / console search%space
-map n search_next
-map N search_next forward=False
-map ct search_next order=tag
-map cs search_next order=size
-map ci search_next order=mimetype
-map cc search_next order=ctime
-map cm search_next order=mtime
-map ca search_next order=atime
-
-# Tabs
-map <C-n> tab_new
-map <C-w> tab_close
-map <TAB> tab_move 1
-map <S-TAB> tab_move -1
-map <A-Right> tab_move 1
-map <A-Left> tab_move -1
-map gt tab_move 1
-map gT tab_move -1
-map gn tab_new
-map gc tab_close
-map uq tab_restore
-map <a-1> tab_open 1
-map <a-2> tab_open 2
-map <a-3> tab_open 3
-map <a-4> tab_open 4
-map <a-5> tab_open 5
-map <a-6> tab_open 6
-map <a-7> tab_open 7
-map <a-8> tab_open 8
-map <a-9> tab_open 9
-map <a-r> tab_shift 1
-map <a-l> tab_shift -1
-
-# Sorting
-map or set sort_reverse!
-map oz set sort=random
-map os chain set sort=size; set sort_reverse=False
-map ob chain set sort=basename; set sort_reverse=False
-map on chain set sort=natural; set sort_reverse=False
-map om chain set sort=mtime; set sort_reverse=False
-map oc chain set sort=ctime; set sort_reverse=False
-map oa chain set sort=atime; set sort_reverse=False
-map ot chain set sort=type; set sort_reverse=False
-map oe chain set sort=extension; set sort_reverse=False
-
-map oS chain set sort=size; set sort_reverse=True
-map oB chain set sort=basename; set sort_reverse=True
-map oN chain set sort=natural; set sort_reverse=True
-map oM chain set sort=mtime; set sort_reverse=True
-map oC chain set sort=ctime; set sort_reverse=True
-map oA chain set sort=atime; set sort_reverse=True
-map oT chain set sort=type; set sort_reverse=True
-map oE chain set sort=extension; set sort_reverse=True
-
-map dc get_cumulative_size
-
-# Settings
-map zc set collapse_preview!
-map zd set sort_directories_first!
-map zh set show_hidden!
-map <C-h> set show_hidden!
-copymap <C-h> <backspace>
-copymap <backspace> <backspace2>
-map zI set flushinput!
-map zi set preview_images!
-map zm set mouse_enabled!
-map zp set preview_files!
-map zP set preview_directories!
-map zs set sort_case_insensitive!
-map zu set autoupdate_cumulative_size!
-map zv set use_preview_script!
-map zf console filter%space
-copymap zf zz
-
-# Filter stack
-map .n console filter_stack add name%space
-map .m console filter_stack add mime%space
-map .d filter_stack add type d
-map .f filter_stack add type f
-map .l filter_stack add type l
-map .| filter_stack add or
-map .& filter_stack add and
-map .! filter_stack add not
-map .r console filter_stack rotate
-map .c filter_stack clear
-map .* filter_stack decompose
-map .p filter_stack pop
-map .. filter_stack show
-
-# Bookmarks
-map `<any> enter_bookmark %any
-map '<any> enter_bookmark %any
-map m<any> set_bookmark %any
-map um<any> unset_bookmark %any
-
-map m<bg> draw_bookmarks
-copymap m<bg> um<bg> `<bg> '<bg>
-
-# Generate all the chmod bindings with some python help:
-eval for arg in "rwxXst": cmd("map +u{0} shell -f chmod u+{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map +g{0} shell -f chmod g+{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map +o{0} shell -f chmod o+{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map +a{0} shell -f chmod a+{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map +{0} shell -f chmod u+{0} %s".format(arg))
-
-eval for arg in "rwxXst": cmd("map -u{0} shell -f chmod u-{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map -g{0} shell -f chmod g-{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map -o{0} shell -f chmod o-{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map -a{0} shell -f chmod a-{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map -{0} shell -f chmod u-{0} %s".format(arg))
-
-# ===================================================================
-# == Define keys for the console
-# ===================================================================
-# Note: Unmapped keys are passed directly to the console.
-
-# Basic
-cmap <tab> eval fm.ui.console.tab()
-cmap <s-tab> eval fm.ui.console.tab(-1)
-cmap <ESC> eval fm.ui.console.close()
-cmap <CR> eval fm.ui.console.execute()
-cmap <C-l> redraw_window
-
-copycmap <ESC> <C-c>
-copycmap <CR> <C-j>
-
-# Move around
-cmap <up> eval fm.ui.console.history_move(-1)
-cmap <down> eval fm.ui.console.history_move(1)
-cmap <left> eval fm.ui.console.move(left=1)
-cmap <right> eval fm.ui.console.move(right=1)
-cmap <home> eval fm.ui.console.move(right=0, absolute=True)
-cmap <end> eval fm.ui.console.move(right=-1, absolute=True)
-cmap <a-b> eval fm.ui.console.move_word(left=1)
-cmap <a-f> eval fm.ui.console.move_word(right=1)
-
-copycmap <a-b> <a-left>
-copycmap <a-f> <a-right>
-
-# Line Editing
-cmap <backspace> eval fm.ui.console.delete(-1)
-cmap <delete> eval fm.ui.console.delete(0)
-cmap <C-w> eval fm.ui.console.delete_word()
-cmap <A-d> eval fm.ui.console.delete_word(backward=False)
-cmap <C-k> eval fm.ui.console.delete_rest(1)
-cmap <C-u> eval fm.ui.console.delete_rest(-1)
-cmap <C-y> eval fm.ui.console.paste()
-
-# And of course the emacs way
-copycmap <ESC> <C-g>
-copycmap <up> <C-p>
-copycmap <down> <C-n>
-copycmap <left> <C-b>
-copycmap <right> <C-f>
-copycmap <home> <C-a>
-copycmap <end> <C-e>
-copycmap <delete> <C-d>
-copycmap <backspace> <C-h>
-
-# Note: There are multiple ways to express backspaces. <backspace> (code 263)
-# and <backspace2> (code 127). To be sure, use both.
-copycmap <backspace> <backspace2>
-
-# This special expression allows typing in numerals:
-cmap <allow_quantifiers> false
-
-# ===================================================================
-# == Pager Keybindings
-# ===================================================================
-
-# Movement
-pmap <down> pager_move down=1
-pmap <up> pager_move up=1
-pmap <left> pager_move left=4
-pmap <right> pager_move right=4
-pmap <home> pager_move to=0
-pmap <end> pager_move to=-1
-pmap <pagedown> pager_move down=1.0 pages=True
-pmap <pageup> pager_move up=1.0 pages=True
-pmap <C-d> pager_move down=0.5 pages=True
-pmap <C-u> pager_move up=0.5 pages=True
-
-copypmap <UP> k <C-p>
-copypmap <DOWN> j <C-n> <CR>
-copypmap <LEFT> h
-copypmap <RIGHT> l
-copypmap <HOME> g
-copypmap <END> G
-copypmap <C-d> d
-copypmap <C-u> u
-copypmap <PAGEDOWN> n f <C-F> <Space>
-copypmap <PAGEUP> p b <C-B>
-
-# Basic
-pmap <C-l> redraw_window
-pmap <ESC> pager_close
-copypmap <ESC> q Q i <F3>
-pmap E edit_file
-
-# ===================================================================
-# == Taskview Keybindings
-# ===================================================================
-
-# Movement
-tmap <up> taskview_move up=1
-tmap <down> taskview_move down=1
-tmap <home> taskview_move to=0
-tmap <end> taskview_move to=-1
-tmap <pagedown> taskview_move down=1.0 pages=True
-tmap <pageup> taskview_move up=1.0 pages=True
-tmap <C-d> taskview_move down=0.5 pages=True
-tmap <C-u> taskview_move up=0.5 pages=True
-
-copytmap <UP> k <C-p>
-copytmap <DOWN> j <C-n> <CR>
-copytmap <HOME> g
-copytmap <END> G
-copytmap <C-u> u
-copytmap <PAGEDOWN> n f <C-F> <Space>
-copytmap <PAGEUP> p b <C-B>
-
-# Changing priority and deleting tasks
-tmap J eval -q fm.ui.taskview.task_move(-1)
-tmap K eval -q fm.ui.taskview.task_move(0)
-tmap dd eval -q fm.ui.taskview.task_remove()
-tmap <pagedown> eval -q fm.ui.taskview.task_move(-1)
-tmap <pageup> eval -q fm.ui.taskview.task_move(0)
-tmap <delete> eval -q fm.ui.taskview.task_remove()
-
-# Basic
-tmap <C-l> redraw_window
-tmap <ESC> taskview_close
diff --git a/.unused/ranger/.config/ranger/rifle.conf b/.unused/ranger/.config/ranger/rifle.conf
@@ -1,256 +0,0 @@
-# vim: ft=cfg
-#
-# This is the configuration file of "rifle", ranger's file executor/opener.
-# Each line consists of conditions and a command. For each line the conditions
-# are checked and if they are met, the respective command is run.
-#
-# Syntax:
-# <condition1> , <condition2> , ... = command
-#
-# The command can contain these environment variables:
-# $1-$9 | The n-th selected file
-# $@ | All selected files
-#
-# If you use the special command "ask", rifle will ask you what program to run.
-#
-# Prefixing a condition with "!" will negate its result.
-# These conditions are currently supported:
-# match <regexp> | The regexp matches $1
-# ext <regexp> | The regexp matches the extension of $1
-# mime <regexp> | The regexp matches the mime type of $1
-# name <regexp> | The regexp matches the basename of $1
-# path <regexp> | The regexp matches the absolute path of $1
-# has <program> | The program is installed (i.e. located in $PATH)
-# env <variable> | The environment variable "variable" is non-empty
-# file | $1 is a file
-# directory | $1 is a directory
-# number <n> | change the number of this command to n
-# terminal | stdin, stderr and stdout are connected to a terminal
-# X | $DISPLAY is not empty (i.e. Xorg runs)
-#
-# There are also pseudo-conditions which have a "side effect":
-# flag <flags> | Change how the program is run. See below.
-# label <label> | Assign a label or name to the command so it can
-# | be started with :open_with <label> in ranger
-# | or `rifle -p <label>` in the standalone executable.
-# else | Always true.
-#
-# Flags are single characters which slightly transform the command:
-# f | Fork the program, make it run in the background.
-# | New command = setsid $command >& /dev/null &
-# r | Execute the command with root permissions
-# | New command = sudo $command
-# t | Run the program in a new terminal. If $TERMCMD is not defined,
-# | rifle will attempt to extract it from $TERM.
-# | New command = $TERMCMD -e $command
-# Note: The "New command" serves only as an illustration, the exact
-# implementation may differ.
-# Note: When using rifle in ranger, there is an additional flag "c" for
-# only running the current file even if you have marked multiple files.
-
-#-------------------------------------------
-# Websites
-#-------------------------------------------
-# Rarely installed browsers get higher priority; It is assumed that if you
-# install a rare browser, you probably use it. Firefox/konqueror/w3m on the
-# other hand are often only installed as fallback browsers.
-ext x?html?, has surf, X, flag f = surf -- file://"$1"
-ext x?html?, has vimprobable, X, flag f = vimprobable -- "$@"
-ext x?html?, has vimprobable2, X, flag f = vimprobable2 -- "$@"
-ext x?html?, has qutebrowser, X, flag f = qutebrowser -- "$@"
-ext x?html?, has dwb, X, flag f = dwb -- "$@"
-ext x?html?, has jumanji, X, flag f = jumanji -- "$@"
-ext x?html?, has luakit, X, flag f = luakit -- "$@"
-ext x?html?, has uzbl, X, flag f = uzbl -- "$@"
-ext x?html?, has uzbl-tabbed, X, flag f = uzbl-tabbed -- "$@"
-ext x?html?, has uzbl-browser, X, flag f = uzbl-browser -- "$@"
-ext x?html?, has uzbl-core, X, flag f = uzbl-core -- "$@"
-ext x?html?, has midori, X, flag f = midori -- "$@"
-ext x?html?, has chromium-browser, X, flag f = chromium-browser -- "$@"
-ext x?html?, has chromium, X, flag f = chromium -- "$@"
-ext x?html?, has google-chrome, X, flag f = google-chrome -- "$@"
-ext x?html?, has opera, X, flag f = opera -- "$@"
-ext x?html?, has firefox, X, flag f = firefox -- "$@"
-ext x?html?, has seamonkey, X, flag f = seamonkey -- "$@"
-ext x?html?, has iceweasel, X, flag f = iceweasel -- "$@"
-ext x?html?, has epiphany, X, flag f = epiphany -- "$@"
-ext x?html?, has konqueror, X, flag f = konqueror -- "$@"
-ext x?html?, has elinks, terminal = elinks "$@"
-ext x?html?, has links2, terminal = links2 "$@"
-ext x?html?, has links, terminal = links "$@"
-ext x?html?, has lynx, terminal = lynx -- "$@"
-ext x?html?, has w3m, terminal = w3m "$@"
-
-#-------------------------------------------
-# Misc
-#-------------------------------------------
-# Define the "editor" for text files as first action
-mime ^text, label editor = ${VISUAL:-$EDITOR} -- "$@"
-mime ^text, label pager = "$PAGER" -- "$@"
-!mime ^text, label editor, ext xml|json|csv|tex|py|pl|rb|js|sh|php = ${VISUAL:-$EDITOR} -- "$@"
-!mime ^text, label pager, ext xml|json|csv|tex|py|pl|rb|js|sh|php = "$PAGER" -- "$@"
-
-ext 1 = man "$1"
-ext s[wmf]c, has zsnes, X = zsnes "$1"
-ext s[wmf]c, has snes9x-gtk,X = snes9x-gtk "$1"
-ext nes, has fceux, X = fceux "$1"
-ext exe = wine "$1"
-name ^[mM]akefile$ = make
-
-#--------------------------------------------
-# Code
-#-------------------------------------------
-ext py = python -- "$1"
-ext pl = perl -- "$1"
-ext rb = ruby -- "$1"
-ext js = node -- "$1"
-ext sh = sh -- "$1"
-ext php = php -- "$1"
-
-#--------------------------------------------
-# Audio without X
-#-------------------------------------------
-mime ^audio|ogg$, terminal, has mpv = mpv -- "$@"
-mime ^audio|ogg$, terminal, has mplayer2 = mplayer2 -- "$@"
-mime ^audio|ogg$, terminal, has mplayer = mplayer -- "$@"
-ext midi?, terminal, has wildmidi = wildmidi -- "$@"
-
-#--------------------------------------------
-# Video/Audio with a GUI
-#-------------------------------------------
-mime ^video|audio, has gmplayer, X, flag f = gmplayer -- "$@"
-mime ^video|audio, has smplayer, X, flag f = smplayer "$@"
-mime ^video, has mpv, X, flag f = mpv -- "$@"
-mime ^video, has mpv, X, flag f = mpv --fs -- "$@"
-mime ^video, has mplayer2, X, flag f = mplayer2 -- "$@"
-mime ^video, has mplayer2, X, flag f = mplayer2 -fs -- "$@"
-mime ^video, has mplayer, X, flag f = mplayer -- "$@"
-mime ^video, has mplayer, X, flag f = mplayer -fs -- "$@"
-mime ^video|audio, has vlc, X, flag f = vlc -- "$@"
-mime ^video|audio, has totem, X, flag f = totem -- "$@"
-mime ^video|audio, has totem, X, flag f = totem --fullscreen -- "$@"
-
-#--------------------------------------------
-# Video without X:
-#-------------------------------------------
-mime ^video, terminal, !X, has mpv = mpv -- "$@"
-mime ^video, terminal, !X, has mplayer2 = mplayer2 -- "$@"
-mime ^video, terminal, !X, has mplayer = mplayer -- "$@"
-
-#-------------------------------------------
-# Documents
-#-------------------------------------------
-ext pdf, has llpp, X, flag f = llpp "$@"
-ext pdf, has zathura, X, flag f = zathura -- "$@"
-ext pdf, has mupdf, X, flag f = mupdf "$@"
-ext pdf, has mupdf-x11,X, flag f = mupdf-x11 "$@"
-ext pdf, has apvlv, X, flag f = apvlv -- "$@"
-ext pdf, has xpdf, X, flag f = xpdf -- "$@"
-ext pdf, has evince, X, flag f = evince -- "$@"
-ext pdf, has atril, X, flag f = atril -- "$@"
-ext pdf, has okular, X, flag f = okular -- "$@"
-ext pdf, has epdfview, X, flag f = epdfview -- "$@"
-ext pdf, has qpdfview, X, flag f = qpdfview "$@"
-ext pdf, has open, X, flag f = open "$@"
-
-ext docx?, has catdoc, terminal = catdoc -- "$@" | "$PAGER"
-
-ext sxc|xlsx?|xlt|xlw|gnm|gnumeric, has gnumeric, X, flag f = gnumeric -- "$@"
-ext sxc|xlsx?|xlt|xlw|gnm|gnumeric, has kspread, X, flag f = kspread -- "$@"
-ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has libreoffice, X, flag f = libreoffice "$@"
-ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has soffice, X, flag f = soffice "$@"
-ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has ooffice, X, flag f = ooffice "$@"
-
-ext djvu, has zathura,X, flag f = zathura -- "$@"
-ext djvu, has evince, X, flag f = evince -- "$@"
-ext djvu, has atril, X, flag f = atril -- "$@"
-ext djvu, has djview, X, flag f = djview -- "$@"
-
-ext epub, has ebook-viewer, X, flag f = ebook-viewer -- "$@"
-ext mobi, has ebook-viewer, X, flag f = ebook-viewer -- "$@"
-
-#-------------------------------------------
-# Image Viewing:
-#-------------------------------------------
-mime ^image/svg, has inkscape, X, flag f = inkscape -- "$@"
-mime ^image/svg, has display, X, flag f = display -- "$@"
-
-mime ^image, has pqiv, X, flag f = pqiv -- "$@"
-mime ^image, has sxiv, X, flag f = sxiv -- "$@"
-mime ^image, has feh, X, flag f = feh -- "$@"
-mime ^image, has mirage, X, flag f = mirage -- "$@"
-mime ^image, has ristretto, X, flag f = ristretto "$@"
-mime ^image, has eog, X, flag f = eog -- "$@"
-mime ^image, has eom, X, flag f = eom -- "$@"
-mime ^image, has nomacs, X, flag f = nomacs -- "$@"
-mime ^image, has geeqie, X, flag f = geeqie -- "$@"
-mime ^image, has gwenview, X, flag f = gwenview -- "$@"
-mime ^image, has gimp, X, flag f = gimp -- "$@"
-ext xcf, X, flag f = gimp -- "$@"
-
-#-------------------------------------------
-# Archives
-#-------------------------------------------
-
-# avoid password prompt by providing empty password
-ext 7z, has 7z = 7z -p l "$@" | "$PAGER"
-# This requires atool
-ext ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has atool = atool --list --each -- "$@" | "$PAGER"
-ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has atool = atool --list --each -- "$@" | "$PAGER"
-ext 7z|ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has atool = atool --extract --each -- "$@"
-ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has atool = atool --extract --each -- "$@"
-
-# Listing and extracting archives without atool:
-ext tar|gz|bz2|xz, has tar = tar vvtf "$1" | "$PAGER"
-ext tar|gz|bz2|xz, has tar = for file in "$@"; do tar vvxf "$file"; done
-ext bz2, has bzip2 = for file in "$@"; do bzip2 -dk "$file"; done
-ext zip, has unzip = unzip -l "$1" | less
-ext zip, has unzip = for file in "$@"; do unzip -d "${file%.*}" "$file"; done
-ext ace, has unace = unace l "$1" | less
-ext ace, has unace = for file in "$@"; do unace e "$file"; done
-ext rar, has unrar = unrar l "$1" | less
-ext rar, has unrar = for file in "$@"; do unrar x "$file"; done
-
-#-------------------------------------------
-# Flag t fallback terminals
-#-------------------------------------------
-# Rarely installed terminal emulators get higher priority; It is assumed that
-# if you install a rare terminal emulator, you probably use it.
-# gnome-terminal/konsole/xterm on the other hand are often installed as part of
-# a desktop environment or as fallback terminal emulators.
-mime ^ranger/x-terminal-emulator, has terminology = terminology -e "$@"
-mime ^ranger/x-terminal-emulator, has kitty = kitty -- "$@"
-mime ^ranger/x-terminal-emulator, has alacritty = alacritty -e "$@"
-mime ^ranger/x-terminal-emulator, has sakura = sakura -e "$@"
-mime ^ranger/x-terminal-emulator, has lilyterm = lilyterm -e "$@"
-#mime ^ranger/x-terminal-emulator, has cool-retro-term = cool-retro-term -e "$@"
-mime ^ranger/x-terminal-emulator, has termite = termite -x '"$@"'
-#mime ^ranger/x-terminal-emulator, has yakuake = yakuake -e "$@"
-mime ^ranger/x-terminal-emulator, has guake = guake -ne "$@"
-mime ^ranger/x-terminal-emulator, has tilda = tilda -c "$@"
-mime ^ranger/x-terminal-emulator, has st = st -e "$@"
-mime ^ranger/x-terminal-emulator, has terminator = terminator -x "$@"
-mime ^ranger/x-terminal-emulator, has urxvt = urxvt -e "$@"
-mime ^ranger/x-terminal-emulator, has pantheon-terminal = pantheon-terminal -e "$@"
-mime ^ranger/x-terminal-emulator, has lxterminal = lxterminal -e "$@"
-mime ^ranger/x-terminal-emulator, has mate-terminal = mate-terminal -x "$@"
-mime ^ranger/x-terminal-emulator, has xfce4-terminal = xfce4-terminal -x "$@"
-mime ^ranger/x-terminal-emulator, has konsole = konsole -e "$@"
-mime ^ranger/x-terminal-emulator, has gnome-terminal = gnome-terminal -- "$@"
-mime ^ranger/x-terminal-emulator, has xterm = xterm -e "$@"
-
-#-------------------------------------------
-# Misc
-#-------------------------------------------
-label wallpaper, number 11, mime ^image, has feh, X = feh --bg-scale "$1"
-label wallpaper, number 12, mime ^image, has feh, X = feh --bg-tile "$1"
-label wallpaper, number 13, mime ^image, has feh, X = feh --bg-center "$1"
-label wallpaper, number 14, mime ^image, has feh, X = feh --bg-fill "$1"
-
-# Define the editor for non-text files + pager as last action
- !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = ask
-label editor, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = ${VISUAL:-$EDITOR} -- "$@"
-label pager, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = "$PAGER" -- "$@"
-
-# The very last action, so that it's never triggered accidentally, is to execute a program:
-mime application/x-executable = "$1"
diff --git a/.unused/ranger/.config/ranger/scope.sh b/.unused/ranger/.config/ranger/scope.sh
@@ -1,216 +0,0 @@
-#!/usr/bin/env bash
-
-set -o noclobber -o noglob -o nounset -o pipefail
-IFS=$'\n'
-
-# If the option `use_preview_script` is set to `true`,
-# then this script will be called and its output will be displayed in ranger.
-# ANSI color codes are supported.
-# STDIN is disabled, so interactive scripts won't work properly
-
-# This script is considered a configuration file and must be updated manually.
-# It will be left untouched if you upgrade ranger.
-
-# Meanings of exit codes:
-# code | meaning | action of ranger
-# -----+------------+-------------------------------------------
-# 0 | success | Display stdout as preview
-# 1 | no preview | Display no preview at all
-# 2 | plain text | Display the plain content of the file
-# 3 | fix width | Don't reload when width changes
-# 4 | fix height | Don't reload when height changes
-# 5 | fix both | Don't ever reload
-# 6 | image | Display the image `$IMAGE_CACHE_PATH` points to as an image preview
-# 7 | image | Display the file directly as an image
-
-# Script arguments
-FILE_PATH="${1}" # Full path of the highlighted file
-PV_WIDTH="${2}" # Width of the preview pane (number of fitting characters)
-PV_HEIGHT="${3}" # Height of the preview pane (number of fitting characters)
-IMAGE_CACHE_PATH="${4}" # Full path that should be used to cache image preview
-PV_IMAGE_ENABLED="${5}" # 'True' if image previews are enabled, 'False' otherwise.
-
-FILE_EXTENSION="${FILE_PATH##*.}"
-FILE_EXTENSION_LOWER=$(echo ${FILE_EXTENSION} | tr '[:upper:]' '[:lower:]')
-
-# Settings
-HIGHLIGHT_SIZE_MAX=262143 # 256KiB
-HIGHLIGHT_TABWIDTH=8
-HIGHLIGHT_STYLE='pablo'
-PYGMENTIZE_STYLE='autumn'
-
-
-handle_extension() {
- case "${FILE_EXTENSION_LOWER}" in
- # Archive
- a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\
- rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)
- atool --list -- "${FILE_PATH}" && exit 5
- bsdtar --list --file "${FILE_PATH}" && exit 5
- exit 1;;
- rar)
- # Avoid password prompt by providing empty password
- unrar lt -p- -- "${FILE_PATH}" && exit 5
- exit 1;;
- 7z)
- # Avoid password prompt by providing empty password
- 7z l -p -- "${FILE_PATH}" && exit 5
- exit 1;;
-
- # PDF
- pdf)
- # Preview as text conversion
- pdftotext -l 10 -nopgbrk -q -- "${FILE_PATH}" - | fmt -w ${PV_WIDTH} && exit 5
- mutool draw -F txt -i -- "${FILE_PATH}" 1-10 | fmt -w ${PV_WIDTH} && exit 5
- exiftool "${FILE_PATH}" && exit 5
- exit 1;;
-
- # BitTorrent
- torrent)
- transmission-show -- "${FILE_PATH}" && exit 5
- exit 1;;
-
- # OpenDocument
- odt|ods|odp|sxw)
- # Preview as text conversion
- odt2txt "${FILE_PATH}" && exit 5
- exit 1;;
-
- # HTML
- htm|html|xhtml)
- # Preview as text conversion
- w3m -dump "${FILE_PATH}" && exit 5
- lynx -dump -- "${FILE_PATH}" && exit 5
- elinks -dump "${FILE_PATH}" && exit 5
- ;; # Continue with next handler on failure
- esac
-}
-
-handle_image() {
- local mimetype="${1}"
- case "${mimetype}" in
- # SVG
- # image/svg+xml)
- # convert "${FILE_PATH}" "${IMAGE_CACHE_PATH}" && exit 6
- # exit 1;;
-
- # Image
- image/*)
- local orientation
- orientation="$( identify -format '%[EXIF:Orientation]\n' -- "${FILE_PATH}" )"
- # If orientation data is present and the image actually
- # needs rotating ("1" means no rotation)...
- if [[ -n "$orientation" && "$orientation" != 1 ]]; then
- # ...auto-rotate the image according to the EXIF data.
- convert -- "${FILE_PATH}" -auto-orient "${IMAGE_CACHE_PATH}" && exit 6
- fi
-
- # `w3mimgdisplay` will be called for all images (unless overriden as above),
- # but might fail for unsupported types.
- exit 7;;
-
- # Video
- # video/*)
- # # Thumbnail
- # ffmpegthumbnailer -i "${FILE_PATH}" -o "${IMAGE_CACHE_PATH}" -s 0 && exit 6
- # exit 1;;
- # PDF
- # application/pdf)
- # pdftoppm -f 1 -l 1 \
- # -scale-to-x 1920 \
- # -scale-to-y -1 \
- # -singlefile \
- # -jpeg -tiffcompression jpeg \
- # -- "${FILE_PATH}" "${IMAGE_CACHE_PATH%.*}" \
- # && exit 6 || exit 1;;
-
- # Preview archives using the first image inside.
- # (Very useful for comic book collections for example.)
- # application/zip|application/x-rar|application/x-7z-compressed|\
- # application/x-xz|application/x-bzip2|application/x-gzip|application/x-tar)
- # local fn=""; local fe=""
- # local zip=""; local rar=""; local tar=""; local bsd=""
- # case "${mimetype}" in
- # application/zip) zip=1 ;;
- # application/x-rar) rar=1 ;;
- # application/x-7z-compressed) ;;
- # *) tar=1 ;;
- # esac
- # { [ "$tar" ] && fn=$(tar --list --file "${FILE_PATH}"); } || \
- # { fn=$(bsdtar --list --file "${FILE_PATH}") && bsd=1 && tar=""; } || \
- # { [ "$rar" ] && fn=$(unrar lb -p- -- "${FILE_PATH}"); } || \
- # { [ "$zip" ] && fn=$(zipinfo -1 -- "${FILE_PATH}"); } || return
- #
- # fn=$(echo "$fn" | python -c "import sys; import mimetypes as m; \
- # [ print(l, end='') for l in sys.stdin if \
- # (m.guess_type(l[:-1])[0] or '').startswith('image/') ]" |\
- # sort -V | head -n 1)
- # [ "$fn" = "" ] && return
- # [ "$bsd" ] && fn=$(printf '%b' "$fn")
- #
- # [ "$tar" ] && tar --extract --to-stdout \
- # --file "${FILE_PATH}" -- "$fn" > "${IMAGE_CACHE_PATH}" && exit 6
- # fe=$(echo -n "$fn" | sed 's/[][*?\]/\\\0/g')
- # [ "$bsd" ] && bsdtar --extract --to-stdout \
- # --file "${FILE_PATH}" -- "$fe" > "${IMAGE_CACHE_PATH}" && exit 6
- # [ "$bsd" ] || [ "$tar" ] && rm -- "${IMAGE_CACHE_PATH}"
- # [ "$rar" ] && unrar p -p- -inul -- "${FILE_PATH}" "$fn" > \
- # "${IMAGE_CACHE_PATH}" && exit 6
- # [ "$zip" ] && unzip -pP "" -- "${FILE_PATH}" "$fe" > \
- # "${IMAGE_CACHE_PATH}" && exit 6
- # [ "$rar" ] || [ "$zip" ] && rm -- "${IMAGE_CACHE_PATH}"
- # ;;
- esac
-}
-
-handle_mime() {
- local mimetype="${1}"
- case "${mimetype}" in
- # Text
- text/* | */xml)
- # Syntax highlight
- if [[ "$( stat --printf='%s' -- "${FILE_PATH}" )" -gt "${HIGHLIGHT_SIZE_MAX}" ]]; then
- exit 2
- fi
- if [[ "$( tput colors )" -ge 256 ]]; then
- local pygmentize_format='terminal256'
- local highlight_format='xterm256'
- else
- local pygmentize_format='terminal'
- local highlight_format='ansi'
- fi
- highlight --replace-tabs="${HIGHLIGHT_TABWIDTH}" --out-format="${highlight_format}" \
- --style="${HIGHLIGHT_STYLE}" --force -- "${FILE_PATH}" && exit 5
- # pygmentize -f "${pygmentize_format}" -O "style=${PYGMENTIZE_STYLE}" -- "${FILE_PATH}" && exit 5
- exit 2;;
-
- # Image
- image/*)
- # Preview as text conversion
- # img2txt --gamma=0.6 --width="${PV_WIDTH}" -- "${FILE_PATH}" && exit 4
- exiftool "${FILE_PATH}" && exit 5
- exit 1;;
-
- # Video and audio
- video/* | audio/*)
- mediainfo "${FILE_PATH}" && exit 5
- exiftool "${FILE_PATH}" && exit 5
- exit 1;;
- esac
-}
-
-handle_fallback() {
- echo '----- File Type Classification -----' && file --dereference --brief -- "${FILE_PATH}" && exit 5
- exit 1
-}
-
-
-MIMETYPE="$( file --dereference --brief --mime-type -- "${FILE_PATH}" )"
-if [[ "${PV_IMAGE_ENABLED}" == 'True' ]]; then
- handle_image "${MIMETYPE}"
-fi
-handle_extension
-handle_mime "${MIMETYPE}"
-handle_fallback
-
-exit 1
diff --git a/.unused/xmobar/.xmobar/icons/samba.xbm b/.unused/xmobar/.xmobar/icons/samba.xbm
@@ -1,23 +0,0 @@
-#define _width 48
-#define _height 48
-static char _bits[] = {
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x49,0x92,0xfc,0xff,0xff,0xff,0x93,0x24,0xfd,0xff,0xff,0xff,0x25,0x49,0xf2,
- 0xff,0xff,0xff,0x49,0x92,0xe4,0xff,0xff,0xff,0x93,0x24,0xe9,0xff,0xff,0xff,
- 0x25,0x49,0x12,0x49,0x92,0xa4,0x49,0x92,0xa4,0x24,0x49,0x92,0x93,0x24,0x49,
- 0x92,0x24,0xc9,0x25,0x49,0xf2,0xff,0xff,0xff,0x49,0x95,0xb4,0xef,0xfb,0xde,
- 0x93,0x50,0xe9,0x7d,0xdf,0xf7,0x25,0x25,0xfa,0xf7,0x7d,0xbf,0x49,0x4a,0xb9,
- 0xbd,0xf7,0xed,0x93,0x90,0xec,0xff,0xdd,0xbf,0x25,0x25,0x7d,0xd7,0xff,0xf6,
- 0xdb,0xde,0xf6,0x7d,0xb7,0xbf,0xfd,0xfb,0xbf,0xff,0xfd,0xfb,0xbf,0xdf,0xf6,
- 0xdb,0x7f,0xdf,0xfb,0xfd,0xbf,0x7f,0xd7,0xb7,0x6f,0xb7,0xed,0xf6,0xfd,0xfd,
- 0xfd,0xff,0xfb,0xaf,0x7f,0xbf,0xef,0x6e,0x04,0x50,0xf7,0xf7,0xbd,0x7b,0x52,
- 0x85,0xdf,0xde,0xef,0xbf,0xff,0xfb,0xfd,0xf7,0xfd,0xee,0x09,0xea,0xb7,0xbd,
- 0xdf,0xff,0xa5,0xd4,0xfe,0xff,0xfd,0x6d,0xab,0xf5,0xb7,0xdb,0xb7,0xff,0xff,
- 0xde,0xfe,0xbe,0xfd,0xed,0x06,0xf9,0xb7,0xef,0xdf,0xbf,0xaf,0xdc,0xfe,0xfb,
- 0x7b,0xfb,0x7d,0xf7,0xf7,0xbe,0xdf,0xef,0x57,0x7f,0xdf,0xef,0xfd,0xbd,0xbd,
- 0xf6,0xfd,0xbe,0x77,0xff,0xbf,0xde,0xb7,0xf7,0xdd,0xb7,0xfb,0x77,0xff,0xbf,
- 0xff,0xfd,0x6e,0xff,0xed,0xfa,0xab,0x56,0xdb,0xaa,0xb6,0xcd,0xff,0xff,0xff,
- 0xff,0xff,0xff };
diff --git a/.unused/xmobar/.xmobar/icons/xbm.xbm b/.unused/xmobar/.xmobar/icons/xbm.xbm
@@ -1,140 +0,0 @@
-#define _width 128
-#define _height 128
-static char _bits[] = {
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x80,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x40,0xa9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc8,0x52,0x01,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0xa5,0x02,0x00,0x00,0x00,0x00,
- 0x40,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0x4a,0x0a,0x00,0x00,0x00,
- 0x00,0x40,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x54,0xa9,0x04,0x00,0x00,
- 0x00,0x00,0xa0,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x4a,0x12,0x09,0x00,
- 0x00,0x00,0x00,0x40,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0xa4,0xaa,0x02,
- 0x00,0x00,0x00,0x00,0x90,0x14,0x01,0x00,0x00,0x00,0x00,0x00,0x90,0x4a,0x52,
- 0x0a,0x00,0x00,0x00,0x00,0xa0,0xaa,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x91,
- 0xa4,0x04,0x00,0x00,0x00,0x00,0x20,0x91,0x00,0x00,0x00,0x00,0x00,0x00,0x48,
- 0xaa,0x8a,0x0a,0x00,0x00,0x00,0x00,0x40,0x26,0x05,0x00,0x00,0x00,0x00,0x00,
- 0x50,0x55,0x32,0x09,0x00,0x00,0x00,0x00,0x50,0xa9,0x0a,0x00,0x00,0x00,0x00,
- 0x00,0xa8,0x84,0x44,0x02,0x00,0x00,0x00,0x00,0x20,0x25,0x11,0x00,0x00,0x00,
- 0x00,0x00,0x08,0xa9,0x5a,0x15,0x00,0x00,0x00,0x00,0x40,0x4a,0x0a,0x00,0x00,
- 0x00,0x00,0x00,0x50,0x55,0xa1,0x04,0x00,0x00,0x00,0x00,0x50,0xa9,0x6a,0x00,
- 0x00,0x00,0x00,0x00,0x54,0x49,0x2a,0x09,0x00,0x00,0x00,0x00,0x40,0x92,0x84,
- 0x00,0x00,0x00,0x00,0x00,0x24,0x95,0x4a,0x0a,0x00,0x00,0x00,0x00,0xa0,0x2a,
- 0x59,0x00,0x00,0x00,0x00,0x00,0x4a,0x52,0x52,0x05,0x00,0x00,0x00,0x00,0x80,
- 0xa4,0xa2,0x00,0x00,0x00,0x00,0x00,0x54,0xa5,0x94,0x14,0x00,0x00,0x00,0x00,
- 0x50,0x49,0x2a,0x05,0x00,0x00,0x00,0x00,0x49,0x4a,0x25,0x09,0x00,0x00,0x00,
- 0x00,0x20,0x95,0x4a,0x09,0x00,0x00,0x00,0x00,0x92,0x94,0x54,0x15,0x00,0x00,
- 0x00,0x00,0x40,0x52,0x51,0x02,0x00,0x00,0x00,0x00,0xaa,0x22,0x49,0x02,0x00,
- 0x00,0x00,0x00,0xa0,0x94,0xaa,0x2c,0x00,0x00,0x00,0x00,0x25,0x55,0x95,0x14,
- 0x00,0x00,0x00,0x00,0x40,0x25,0x89,0x12,0x00,0x00,0x00,0x00,0x49,0x4a,0x52,
- 0x05,0x00,0x00,0x00,0x00,0x90,0x54,0x52,0x4a,0x00,0x00,0x00,0x80,0x52,0x51,
- 0x25,0x09,0x00,0x00,0x00,0x00,0x20,0x49,0x55,0x91,0x00,0x00,0x00,0x00,0x94,
- 0x2a,0x49,0x15,0x00,0x00,0x00,0x00,0xa0,0x52,0x4a,0x56,0x00,0x00,0x00,0x80,
- 0xa5,0x44,0xaa,0x04,0x00,0x00,0x00,0x00,0x20,0x95,0x94,0x48,0x01,0x00,0x00,
- 0x00,0x29,0x59,0x49,0x09,0x00,0x00,0x00,0x00,0xa0,0xa4,0xa2,0x92,0x00,0x00,
- 0x00,0x40,0x4a,0x25,0x15,0x15,0x00,0x00,0x00,0x00,0x40,0x29,0x55,0x2a,0x05,
- 0x00,0x00,0x80,0x52,0x4a,0x52,0x09,0x00,0x00,0x00,0x00,0x90,0x4a,0x92,0x52,
- 0x01,0x00,0x00,0x40,0x95,0x94,0xaa,0x12,0x00,0x00,0x00,0x00,0x20,0xa9,0xa4,
- 0x94,0x0a,0x00,0x00,0x00,0xa2,0xa2,0x44,0x04,0x00,0x00,0x00,0x00,0x40,0x92,
- 0x2a,0x25,0x05,0x00,0x00,0x80,0x54,0x2a,0xa9,0x0a,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x40,0x55,0x09,0x00,0x00,0x80,0x8a,0x54,0x15,0x09,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xa0,0xaa,0x2a,0x00,0x00,0x00,0xb0,0x4a,0x4a,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x40,0x55,0x15,0x00,0x00,0x00,0xa0,0xaa,0x2a,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xa0,0xaa,0x2a,0x00,0x00,0x00,0x50,0x55,0x15,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x40,0x55,0x55,0x00,0x00,0x80,0xaa,0xaa,0x0a,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x2a,0x55,0x00,0x00,0x00,0x55,0x55,0x15,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xa5,0xaa,0x00,0x00,0x80,0xaa,0xaa,
- 0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xa9,0x52,0x00,0x00,0x80,0x4a,
- 0x55,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xaa,0xaa,0x00,0x00,0x80,
- 0xaa,0x92,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xaa,0xaa,0x02,0x00,
- 0x00,0x55,0x55,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xaa,0xaa,0x02,
- 0x00,0x80,0xaa,0xaa,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,
- 0x01,0x00,0x80,0xaa,0x54,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,
- 0x55,0x01,0x00,0x00,0x55,0x55,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x55,0xa9,0x02,0x00,0x80,0xaa,0xaa,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xaa,0x2a,0x01,0x00,0x80,0x52,0x55,0x15,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x4a,0x55,0x01,0x00,0x00,0x95,0xaa,0x0a,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xaa,0xaa,0x02,0x00,0x80,0xaa,0x2a,0x15,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xaa,0xaa,0x02,0x00,0x40,0x55,0x55,0x09,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x54,0x55,0x01,0x00,0x80,0xaa,0xaa,0x0a,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x50,0xa9,0x02,0x00,0x00,0x55,0xa5,0x0a,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa8,0x2a,0x01,0x00,0x80,0xaa,0xaa,0x1a,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0xaa,0x02,0x00,0x80,0x4a,0x55,
- 0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x55,0x01,0x00,0x80,0xb2,
- 0xaa,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0xaa,0x02,0x00,0x80,
- 0x4a,0x29,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x55,0x01,0x00,
- 0x80,0xaa,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x52,0x01,
- 0x00,0x00,0x55,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xaa,
- 0x02,0x00,0x80,0xaa,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
- 0x2a,0x01,0x00,0x80,0xaa,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x80,0xaa,0x02,0x00,0x00,0x55,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xaa,0x02,0x00,0x80,0xaa,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xa8,0x02,0x00,0x80,0x4a,0x05,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x55,0x01,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x40,0x03,0x00,0x40,0x55,0x01,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xda,0x6a,0xad,0xaa,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x2a,0x55,0x55,0x55,0x05,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x01,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xaa,0xaa,0xaa,0xaa,0x02,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x95,
- 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa8,0xaa,0x52,
- 0xa9,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x54,0x55,
- 0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa8,
- 0xaa,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x54,0x55,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x28,0xa9,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x54,0x55,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xa8,0xaa,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x54,0x55,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xa8,0xaa,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x54,0x95,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa8,0xaa,0x0a,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x54,0x52,0x55,0x09,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x92,0x4a,0x92,0x32,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa5,0x94,0x24,0x05,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2a,0xa9,0xaa,0x34,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x25,0x49,
- 0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0x4a,
- 0x2a,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x95,
- 0x52,0xa5,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x52,0x95,0x54,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x25,0x52,0x89,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x54,0x25,0x55,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xa5,0x54,0x92,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x49,0x49,0x55,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x2a,0x95,0x24,0x05,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x52,0x49,0x09,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xaa,0x2a,0x55,0x2a,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x49,0xa9,0x12,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4a,0x95,0x4a,0x0a,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0xa2,0x94,0x12,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xaa,0x2c,0xa9,0x04,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x95,0x52,0x45,
- 0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0x25,
- 0x29,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x54,
- 0x49,0xaa,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x48,0xaa,0x92,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x90,0x92,0x24,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xa0,0x54,0x55,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x40,0x25,0xa9,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x49,0x4a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x80,0xaa,0x92,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x10,0x02,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
diff --git a/.unused/xmobar/.xmobar/xmb-backup-timer b/.unused/xmobar/.xmobar/xmb-backup-timer
@@ -1,24 +0,0 @@
-#!/bin/sh
-MB=$(calc $(date +'%s') - $(cat ~/.dates/ssh-backup) / 60 | cut -d '.' -f 1)
-
-
-if [[ "$MB" -ge "60" ]]; then
- HB=$(expr "$MB" / 60)
- MB=$(expr "$MB" % 60)
-
-if [[ "$MB" -lt "10" ]]; then
- MB=0$MB
- fi
-
- printf "$HB":"$MB"
-
-else
-if [[ "$MB" -lt "10" ]]; then
- MB=0$MB
- fi
-
-printf 0:$MB
-fi
-
-
-
diff --git a/.unused/xmobar/.xmobar/xmb-battery b/.unused/xmobar/.xmobar/xmb-battery
@@ -1,53 +0,0 @@
-#!/bin/sh
-
-
-suspendThreshold='10'
-suspendDelay='130'
-
-prefixF='<fc=#1a1a1a>'
-suffixF='%%</fc>'
-prefixC='<fc=#123478>'
-suffixC='</fc><fc=#666666>%%</fc>'
-prefixD='<fc=#aa0000>'
-suffixD='</fc><fc=#666666>%%</fc>'
-
-
-
-status="$(acpi -a | awk '{print $3}')"
-charge="$(acpi -b | cut -d '%' -f 1 | rev | awk '{print $1}' | rev )"
-
-
-
-if [[ "$status" = 'on-line' ]] && [[ "$percentage" -ge '100' ]]; then
- prefix="$prefixF"
- suffix="$suffixF"
-elif [[ "$status" = 'on-line' ]]; then
- prefix="$prefixC"
- suffix="$suffixC"
-elif [[ "$status" = 'off-line' ]]; then
- prefix="$prefixD"
- suffix="$suffixD"
-fi
-
-
-if [[ "$charge" -le "$suspendThreshold" ]] && [[ "$status" = 'off-line' ]]; then
- brightness="$(xbacklight -get)"
-
- xbacklight -set 0 -time 0
- notify-send " suspending in $suspendDelay seconds due to low battery " -i null
- xbacklight -set "$brightness" -time 120
-
- sleep "$suspendDelay"
- status="$(acpi -a | awk '{print $3}')"
-
- if [[ "$charge" -le "$suspendThreshold" ]] && [[ "$status" = 'off-line' ]]; then
- suspend-warning 0 10 -n
- status="$(acpi -a | awk '{print $3}')"
-
- if [[ "$charge" -le "$suspendThreshold" ]] && [[ "$status" = 'off-line' ]]; then
- systemctl suspend
- fi
- fi
-fi
-
-printf "$prefix$charge$suffix"
diff --git a/.unused/xmobar/.xmobar/xmb-date b/.unused/xmobar/.xmobar/xmb-date
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-config
diff --git a/.unused/xmobar/.xmobar/xmb-music b/.unused/xmobar/.xmobar/xmb-music
@@ -1,12 +0,0 @@
-#!/bin/sh
-string="$(playerctl metadata | grep title | tail -c +35)"
-
-if [[ "$string" == "" ]]; then
- string="$(mpc current | cut -d '-' -f 2 | cut -d '(' -f 1)"
- fi
-
-if [[ "$string" == "" ]]; then
- string=OFF
-fi
-
-printf "$string"
diff --git a/.unused/xmobar/.xmobar/xmb-packages b/.unused/xmobar/.xmobar/xmb-packages
@@ -1,2 +0,0 @@
-#!/bin/sh
-printf "$(pacman -Q | wc -l)"
diff --git a/.unused/xmobar/.xmobar/xmb-reminders b/.unused/xmobar/.xmobar/xmb-reminders
@@ -1,76 +0,0 @@
-#!/bin/sh
-# 01/01/2020 - Jacob Edwards
-
-# created for new years resolutions, prints to stdout, sends a notification, and sends message via wall
-# it is very messy due but i THINK it works
-
-# also it counts the start of a new day at 5:00 AM. so if you get up before then
-# change line 42* from 500 to another time
-
-# as far as what to put in reminder-daemon `config` the syntax is as follows (TIME is in `date +%R' format)
-# [TIME] [TIME] >> this is the message that will be sent
-
-
-
-
-if [[ ! -e "$HOME/.cache/reminders" ]]; then
- mkdir "$HOME/.cache/reminders"
- touch "$HOME/.cache/reminders/reminded"
-fi
-
-config="$XDG_CONFIG_HOME/reminders"
-done="$HOME/.cache/reminders/reminded"
-date="$(date '+%_j' | awk '{print $1}')"
-
-
-
-sed -i -n "/^$date/p" "$done"
-time="$(date '+%R' | sed 's/://g')"
-
-
-
-
-let i=0
-while [[ "$(wc -l "$config" | awk '{print $1}')" -gt "$i" ]]; do
- let i++
-
- configline="$(head -n "$i" "$config" | tail -n 1)"
- timestart="$(printf "$configline" | awk '{print $1}' | sed 's/://g' )"
- timeend="$( printf "$configline" | awk '{print $2}' | sed 's/://g' )"
- message="$( printf "$configline" | awk -F '>>' '{print $2}')"
-
- if [[ "$timeend" -lt 500 ]]; then
- let timeend=timeend+timestart
- let date2="$(expr "$date" + 1)"
- # i stay up late and get up late. i'll come up with a better solution later
- fi
-
- if [[ "$time" -gt "$timestart" ]] && [[ "$time" -lt "$timeend" ]]; then
- let a=0
-
- while [[ "$(wc -l "$done" | awk '{print $1}')" -gt "$a" ]]; do
- let a++
-
- if [[ "$(head -n "$a" "$done" | tail -n 1)" == "$date $configline" ]]; then
- send=false
- fi
- done
-
- if [[ "$send" != 'false' ]]; then
- notify-send -t 30000 "$message"
- wall "$message" -t 30
- printf "$message\n"
- printf "$date $configline\n" >> "$done"
- if [[ -n "$date2" ]]; then
- printf "$date2 $configline\n" >> "$done"
- fi
-
- notified=true
- fi
- fi
-done
-
-
-if [[ "$notified" != 'true' ]]; then
- printf ''
-fi
diff --git a/.unused/xmobar/.xmobar/xmb-update-timer b/.unused/xmobar/.xmobar/xmb-update-timer
@@ -1,23 +0,0 @@
-#!/bin/sh
-MB=$(calc $(date +'%s') - $(cat ~/.dates/system-update) / 60 | cut -d '.' -f 1)
-
-if [[ "$MB" -gt "59" ]]; then
- HB=$(expr "$MB" / 60)
- MB=$(expr "$MB" % 60)
-
-if [[ "$MB" -lt "10" ]]; then
- MB=0$MB
- fi
-
- printf "$HB":"$MB"
-
-else
-if [[ "$MB" -lt "10" ]]; then
- MB=0$MB
- fi
-
-printf 0:$MB
-fi
-
-
-
diff --git a/.unused/xmobar/.xmobar/xmobar.errors b/.unused/xmobar/.xmobar/xmobar.errors
@@ -1,9 +0,0 @@
-
-xmobar.hs:1:1: error:
- Could not find module `Prelude'
- There are files missing in the `base-4.12.0.0' package,
- try running 'ghc-pkg check'.
- Use -v to see a list of the files searched for.
- |
-1 | -- xmobar config used by Vic Fryzel
- | ^
diff --git a/.unused/xmobar/.xmobarrc b/.unused/xmobar/.xmobarrc
@@ -1,41 +0,0 @@
--- vim: syntax=haskell
-Config {
- --apearence
- font = "xft:Hack:size=9:normal:antialias=true"
- , bgColor = "#000000"
- , fgColor = "#ffffff"
- , alpha = 230
-
- --border
- , border = NoBorder
- , borderWidth = 2
- , borderColor = "#000000"
-
-
- --positioning
- , position = Top
- , persistent = False
- , lowerOnStart = True
- , hideOnStart = False
-
- --options
- , textOffset = -1
- , wmClass = "statusbar"
- , wmName = "xmobar"
- , pickBroadest = False
- , iconRoot = "."
- , allDesktops = True
- , overrideRedirect = True
-
- --launch
- , commands = [
- Run StdinReader
- , Run Date "<fc=#444>%R</fc>" "time" 100
- , Run Date "<fc=#444>%d/%m/%y %a</fc>" "date" 600
- , Run ComX "xmb-battery" [""] "N/A" "battery" 50
- , Run ComX "xmb-reminders" [""] "N/A" "reminder" 300
- ]
- , sepChar = "%"
- , alignSep = "||"
- , template = " %StdinReader% | %time% | <fc=#ffffff>%reminder%</fc> %date% %battery% "
- }
diff --git a/.unused/xmonad/.xmonad/xmonad-x86_64-linux b/.unused/xmonad/.xmonad/xmonad-x86_64-linux
Binary files differ.
diff --git a/.unused/xmonad/.xmonad/xmonad.errors b/.unused/xmonad/.xmonad/xmonad.errors
@@ -1,39 +0,0 @@
-
-xmonad.hs:15:12: warning: [-Wdeprecations]
- In the use of `defaultConfig'
- (imported from XMonad, but defined in XMonad.Config):
- Deprecated: "Use def (from Data.Default, and re-exported by XMonad and XMonad.Config) instead."
- |
-15 | myConfig = defaultConfig
- | ^^^^^^^^^^^^^
-
-xmonad.hs:39:40: warning: [-Wdeprecations]
- In the use of `spacing' (imported from XMonad.Layout.Spacing):
- Deprecated: "Use spacingRaw instead."
- |
-39 | gaps [(L,0), (R,0), (U,0), (D,0)] $ spacing 10 $ Tall 1 (3/100) (1/2)
- | ^^^^^^^
-
-xmonad.hs:81:85: warning: [-Wdeprecations]
- In the use of `defaultConfig'
- (imported from XMonad, but defined in XMonad.Config):
- Deprecated: "Use def (from Data.Default, and re-exported by XMonad and XMonad.Config) instead."
- |
-81 | [ ((mod1Mask, k), (windows $ S.greedyView i)) | (i, k) <- zip (XMonad.workspaces defaultConfig) [xK_q, xK_w, xK_e, xK_a, xK_s, xK_d, xK_i, xK_o, xK_p ]]++
- | ^^^^^^^^^^^^^
-
-xmonad.hs:82:116: warning: [-Wdeprecations]
- In the use of `defaultConfig'
- (imported from XMonad, but defined in XMonad.Config):
- Deprecated: "Use def (from Data.Default, and re-exported by XMonad and XMonad.Config) instead."
- |
-82 | [ ((mod4Mask, k), (windows $ S.shift i ) >> (windows $ S.greedyView i)) | (i, k) <- zip (XMonad.workspaces defaultConfig) [xK_q, xK_w, xK_e, xK_a, xK_s, xK_d, xK_i, xK_o, xK_p]]
- | ^^^^^^^^^^^^^
-
-xmonad.hs:98:78: warning: [-Wdeprecations]
- In the use of `defaultConfig'
- (imported from XMonad, but defined in XMonad.Config):
- Deprecated: "Use def (from Data.Default, and re-exported by XMonad and XMonad.Config) instead."
- |
-98 | myManageHook = manageDocks <+> (isFullscreen --> doFullFloat) <+> manageHook defaultConfig
- | ^^^^^^^^^^^^^
diff --git a/.unused/xmonad/.xmonad/xmonad.hi b/.unused/xmonad/.xmonad/xmonad.hi
Binary files differ.
diff --git a/.unused/xmonad/.xmonad/xmonad.hs b/.unused/xmonad/.xmonad/xmonad.hs
@@ -1,99 +0,0 @@
-import XMonad
-import XMonad.Hooks.DynamicLog
-import XMonad.Hooks.ManageDocks
-import XMonad.Hooks.EwmhDesktops
-import XMonad.Hooks.ManageHelpers
-import XMonad.Layout.NoBorders
-import XMonad.Layout.Fullscreen
-import XMonad.Layout.Spacing
-import XMonad.Layout.Gaps
-
-import qualified Data.Map as M
-import qualified XMonad.StackSet as S
-------------------------------------------
-------------------------------------------
-myConfig = defaultConfig
-
-
-myBorderWidth = 3
-myNormalBorderColor = "#200"
-myFocusedBorderColor = "#111195"
-
-
-myWorkspaces :: [WorkspaceId]
-myWorkspaces = ["1:chat", "2:web", "3:code", "4:pdf", "5:doc", "6:vbox" ,"7:games", "8:vid", "9:gimp" ]
-
-
-myPP = xmobarPP {
- ppSep = "<fc=#22339a> | </fc>"
- , ppCurrent = xmobarColor "#2245f9" ""
- , ppHidden = xmobarColor "#944" ""
- , ppWsSep = "<fc=#999>,</fc>"
- , ppLayout = xmobarColor "#445" ""
- , ppTitle = xmobarColor "#445" "" . shorten 60
- }
-
-
-
-myLayoutHook = avoidStruts (
- gaps [(L,0), (R,0), (U,0), (D,0)] $ spacing 10 $ Tall 1 (3/100) (1/2)
- |||
- noBorders (fullscreenFull Full)
- )
-
-
-
-myKeys conf = M.fromList $ [
- ((mod1Mask .|. shiftMask, xK_space), setLayout $ XMonad.layoutHook conf)
- , ((mod1Mask, xK_space ), sendMessage NextLayout)
- , ((mod1Mask, xK_n ), sendMessage Shrink)
- , ((mod1Mask, xK_m ), sendMessage Expand)
- , ((mod4Mask .|. shiftMask, xK_r), restart "xmonad" True)
- , ((mod4Mask, xK_r), refresh)
- , ((mod4Mask .|. shiftMask, xK_q), kill)
-
- , ((mod4Mask, xK_comma ), sendMessage (IncMasterN 1))
- , ((mod4Mask, xK_period ), sendMessage (IncMasterN (-1)))
-
- , ((mod1Mask, xK_l), windows S.swapMaster)
- , ((mod1Mask, xK_h), windows S.focusMaster)
- , ((mod1Mask, xK_j ), windows S.focusDown)
- , ((mod1Mask, xK_k ), windows S.focusUp)
- , ((mod1Mask .|. shiftMask, xK_j), windows S.swapDown)
- , ((mod1Mask .|. shiftMask, xK_k), windows S.swapUp)
- , ((mod4Mask .|. shiftMask, xK_s), withFocused $ windows . S.sink)
- -- gaps --
- , ((controlMask, xK_minus), (incWindowSpacing 10))
- , ((controlMask, xK_equal), (decWindowSpacing 10))
- , ((mod1Mask, xK_equal), (sendMessage $ DecGap 10 R) >> (sendMessage $ DecGap 10 L) >> (sendMessage $ DecGap 6 U) >> (sendMessage $ DecGap 6 D))
- , ((mod1Mask, xK_minus), (sendMessage $ IncGap 10 R) >> (sendMessage $ IncGap 10 L) >> (sendMessage $ IncGap 6 U) >> (sendMessage $ IncGap 6 D))
- , ((mod4Mask, xK_equal), (decWindowSpacing 5) >> (sendMessage $ DecGap 5 R) >> (sendMessage $ DecGap 5 L) >> (sendMessage $ DecGap 3 U) >> (sendMessage $ DecGap 3 D))
- , ((mod4Mask, xK_minus), (incWindowSpacing 5) >> (sendMessage $ IncGap 5 R) >> (sendMessage $ IncGap 5 L) >> (sendMessage $ IncGap 3 U) >> (sendMessage $ IncGap 3 D))
-
- , ((mod4Mask .|. shiftMask, xK_equal), (sendMessage $ ToggleGaps) >> (toggleWindowSpacingEnabled))
- , ((mod1Mask .|. shiftMask, xK_equal), (sendMessage $ ToggleGaps))
- , ((controlMask .|. shiftMask, xK_equal), (toggleWindowSpacingEnabled))
-
- , ((mod1Mask, xK_backslash), (setScreenWindowSpacing 0) >> (sendMessage $ setGaps [(L,0), (R,0), (U,0), (D,0)]))
- , ((mod4Mask, xK_backslash), (setScreenWindowSpacing 0) >> (sendMessage $ setGaps [(L,0), (R,0), (U,0), (D,0)]))
- , ((controlMask, xK_backslash), (setScreenWindowSpacing 0) >> (sendMessage $ setGaps [(L,0), (R,0), (U,0), (D,0)]))
- ]++
- [ ((mod1Mask, k), (windows $ S.greedyView i)) | (i, k) <- zip (XMonad.workspaces defaultConfig) [xK_q, xK_w, xK_e, xK_a, xK_s, xK_d, xK_i, xK_o, xK_p ]]++
- [ ((mod4Mask, k), (windows $ S.shift i ) >> (windows $ S.greedyView i)) | (i, k) <- zip (XMonad.workspaces defaultConfig) [xK_q, xK_w, xK_e, xK_a, xK_s, xK_d, xK_i, xK_o, xK_p]]
-
-
-
-main = xmonad . ewmh =<< statusBar "xmobar" myPP toggleStrutsKey myConfig {
- keys = myKeys
- , borderWidth = myBorderWidth
- , normalBorderColor = myNormalBorderColor
- , focusedBorderColor = myFocusedBorderColor
- , layoutHook = myLayoutHook
- , manageHook = myManageHook
- , handleEventHook = docksEventHook
- }
-
-
-
-myManageHook = manageDocks <+> (isFullscreen --> doFullFloat) <+> manageHook defaultConfig
-toggleStrutsKey XConfig {XMonad.modMask = modMask} = (mod4Mask, xK_b)
diff --git a/.unused/xmonad/.xmonad/xmonad.o b/.unused/xmonad/.xmonad/xmonad.o
Binary files differ.
diff --git a/.unused/zsh/.zshrc b/.unused/zsh/.zshrc
@@ -1,122 +0,0 @@
-# external files
-source ~/.profile
-source ~/.aliases
-
-
-# completion
-fpath=(~/.zsh-completion $fpath)
-autoload -Uz compinit
-zmodload zsh/complist
-zstyle ':completion:*' menu select
-bindkey -M menuselect '^[[Z' reverse-menu-complete
-
-zstyle ':completion:*:options' list-colors '=^(-- *)=32'
-zstyle ':completion:*:*:cd:*' list-colors '36'
-zstyle ':completion:*:*:ls:*' list-colors '36'
-zstyle ':completion:*:*:rm:*' list-colors '36'
-zstyle ':completion:*:*:cp:*' list-colors '36'
-zstyle ':completion:*:*:mv:*' list-colors '36'
-zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
-
-compinit
-compdef "_files -W "$NOTES"" note
-
-
-# options
-setopt noglobdots
-setopt COMPLETE_ALIASES
-
-
-# keybinds
-bindkey -v
-bindkey "^[[1;5C" forward-word
-bindkey "^[[1;5D" backward-word
-bindkey "^W" backward-delete-word
-bindkey "^E" delete-word
-
-# characters delete word wont care about
-WORDCHARS='\*?.[]~&;!#$%^(){}<>'
-
-typeset -g -A key
-key[Home]="${terminfo[khome]}"
-key[End]="${terminfo[kend]}"
-key[Insert]="${terminfo[kich1]}"
-key[Backspace]="${terminfo[kbs]}"
-key[Delete]="${terminfo[kdch1]}"
-key[Up]="${terminfo[kcuu1]}"
-key[Down]="${terminfo[kcud1]}"
-key[Left]="${terminfo[kcub1]}"
-key[Right]="${terminfo[kcuf1]}"
-key[PageUp]="${terminfo[kpp]}"
-key[PageDown]="${terminfo[knp]}"
-key[ShiftTab]="${terminfo[kcbt]}"
-
-# setup key accordingly
-[[ -n "${key[Home]}" ]] && bindkey -- "${key[Home]}" beginning-of-line
-[[ -n "${key[End]}" ]] && bindkey -- "${key[End]}" end-of-line
-[[ -n "${key[Insert]}" ]] && bindkey -- "${key[Insert]}" overwrite-mode
-[[ -n "${key[Backspace]}" ]] && bindkey -- "${key[Backspace]}" backward-delete-char
-[[ -n "${key[Delete]}" ]] && bindkey -- "${key[Delete]}" delete-char
-[[ -n "${key[Up]}" ]] && bindkey -- "${key[Up]}" up-line-or-history
-[[ -n "${key[Down]}" ]] && bindkey -- "${key[Down]}" down-line-or-history
-[[ -n "${key[Left]}" ]] && bindkey -- "${key[Left]}" backward-char
-[[ -n "${key[Right]}" ]] && bindkey -- "${key[Right]}" forward-char
-[[ -n "${key[PageUp]}" ]] && bindkey -- "${key[PageUp]}" beginning-of-buffer-or-history
-[[ -n "${key[PageDown]}" ]] && bindkey -- "${key[PageDown]}" end-of-buffer-or-history
-[[ -n "${key[ShiftTab]}" ]] && bindkey -- "${key[ShiftTab]}" reverse-menu-complete
-
-if (( ${+terminfo[smkx]} && ${+terminfo[rmkx]} )); then
- autoload -Uz add-zle-hook-widget
- function zle_application_mode_start {
- echoti smkx
- }
- function zle_application_mode_stop {
- echoti rmkx
- }
- add-zle-hook-widget -Uz zle-line-init zle_application_mode_start
- add-zle-hook-widget -Uz zle-line-finish zle_application_mode_stop
-fi
-
-
-# history
-HISTCONTROL='erasedups'
-#HISTFILE="$HOME/.history-zsh"
-HISTSIZE=1500000
-SAVEHIST=1500000
-
-
-# prompt
-# [] is cursor
-# 0 is exit status
-
-# (~/path/to/your/directory) []
-PROMPT='%F{4}(%f%~%F{4})%f '
-RPROMPT=''
-
-# 0────[~/path/to/your/directory]
-# └──[] time user@hostname
-#RPROMPT='%F{236}%T %F{237}%n@%M%f'
-#PROMPT='%?%F{4}────[%f%F{109}%~%F{4}]%f
-#%F{4}└──%f'
-
-# 0 ->[] [~/path/to/your/directory]
-#PROMPT='%?%F{4} ->%f'
-#RPROMPT='%F{4}[%f%F{109}%~%F{4}]%f'
-
-
-# syntax hightlighting
-if [ $(uname | tail -c 4 ) != 'BSD' ]; then # I don't know where bsd stores it's highlighting
- source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
-
- ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern) # include these
- ZSH_HIGHLIGHT_STYLES[precommand]=fg=white,bold # exec, sudo, etc
- ZSH_HIGHLIGHT_STYLES[arg0]=fg=blue,bold # command
- ZSH_HIGHLIGHT_STYLES[unknown-token]=fg=red # unknown comand
- ZSH_HIGHLIGHT_STYLES[redirection]=fg=cyan,bold # <|>
- ZSH_HIGHLIGHT_STYLES[commandseparator]=fg=white,bold # &&;
-
- # colors for specific commands
- ZSH_HIGHLIGHT_PATTERNS=('rm -rf *' 'fg=white,bold,bg=red')
- ZSH_HIGHLIGHT_PATTERNS=('sudo' 'fg=white,bold')
- ZSH_HIGHLIGHT_PATTERNS=('pacman' 'fg=yellow,bold')
-fi