config

OpenBSD system configuration
git clone git://jacobedwards.org/config
Log | Files | Refs | README

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:
D.unused/bash/.bash_logout | 3---
D.unused/bash/.bash_profile | 5-----
D.unused/bash/.bashrc | 15---------------
D.unused/bspwm/.config/bspwm/bspwmrc | 46----------------------------------------------
D.unused/conky/.config/conky/.themepacks | 4----
D.unused/conky/.config/conky/conky-bspwm.conf | 44--------------------------------------------
D.unused/conky/.config/conky/conky.conf | 79-------------------------------------------------------------------------------
D.unused/conky/.config/conky/done | 0
D.unused/lemonbar/.local/bin/lemon | 186-------------------------------------------------------------------------------
D.unused/ncmpcpp/.config/ncmpcpp/bindings | 544-------------------------------------------------------------------------------
D.unused/ncmpcpp/.config/ncmpcpp/config | 490-------------------------------------------------------------------------------
D.unused/ncmpcpp/.config/ncmpcpp/error.log | 0
D.unused/ranger/.config/ranger/commands.py | 62--------------------------------------------------------------
D.unused/ranger/.config/ranger/commands_full.py | 1836-------------------------------------------------------------------------------
D.unused/ranger/.config/ranger/rc.conf | 725-------------------------------------------------------------------------------
D.unused/ranger/.config/ranger/rifle.conf | 256-------------------------------------------------------------------------------
D.unused/ranger/.config/ranger/scope.sh | 216-------------------------------------------------------------------------------
D.unused/xmobar/.xmobar/icons/samba.xbm | 23-----------------------
D.unused/xmobar/.xmobar/icons/xbm.xbm | 140-------------------------------------------------------------------------------
D.unused/xmobar/.xmobar/xmb-backup-timer | 24------------------------
D.unused/xmobar/.xmobar/xmb-battery | 53-----------------------------------------------------
D.unused/xmobar/.xmobar/xmb-date | 3---
D.unused/xmobar/.xmobar/xmb-music | 12------------
D.unused/xmobar/.xmobar/xmb-packages | 2--
D.unused/xmobar/.xmobar/xmb-reminders | 76----------------------------------------------------------------------------
D.unused/xmobar/.xmobar/xmb-update-timer | 23-----------------------
D.unused/xmobar/.xmobar/xmobar.errors | 9---------
D.unused/xmobar/.xmobarrc | 41-----------------------------------------
D.unused/xmonad/.xmonad/xmonad-x86_64-linux | 0
D.unused/xmonad/.xmonad/xmonad.errors | 39---------------------------------------
D.unused/xmonad/.xmonad/xmonad.hi | 0
D.unused/xmonad/.xmonad/xmonad.hs | 99-------------------------------------------------------------------------------
D.unused/xmonad/.xmonad/xmonad.o | 0
D.unused/zsh/.zshrc | 122-------------------------------------------------------------------------------
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