├── .aliases
├── .config
├── cava
│ └── config
├── dunst
│ └── dunstrc
├── macchina
│ ├── macchina.toml
│ └── themes
│ │ ├── Beryllium.toml
│ │ ├── Custom.toml
│ │ ├── Helium.toml
│ │ ├── Hydrogen.toml
│ │ └── Lithium.toml
├── mpd
│ ├── mpd.conf
│ ├── mpd.db
│ ├── mpd.log
│ └── mpdstate
├── mpv
│ ├── input.conf
│ ├── mplayer-input.conf
│ ├── mpv.conf
│ ├── restore-old-bindings.conf
│ ├── script-opts
│ │ └── mdmenu.conf
│ └── scripts
│ │ └── mdmenu.lua
├── ncmpcpp
│ ├── config
│ ├── error.log
│ └── notif
├── picom
│ └── picom.conf
├── ranger
│ ├── commands.py
│ ├── plugins
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ └── __init__.cpython-311.pyc
│ │ └── ranger_devicons
│ │ │ ├── .github
│ │ │ ├── ISSUE_TEMPLATE
│ │ │ │ ├── bug_report.md
│ │ │ │ ├── config.yml
│ │ │ │ └── feature_request.md
│ │ │ └── workflows
│ │ │ │ ├── greetings.yml
│ │ │ │ ├── main.yml
│ │ │ │ └── stale.yml
│ │ │ ├── .gitignore
│ │ │ ├── CONTRIBUTING.MD
│ │ │ ├── LICENSE
│ │ │ ├── LICENSE_NERDFONT
│ │ │ ├── README.md
│ │ │ ├── __init__.py
│ │ │ ├── devicons.py
│ │ │ └── screenshot.png
│ ├── rc.conf
│ ├── rifle.conf
│ └── scope.sh
├── starship.toml
└── zsh
│ ├── .zimrc
│ └── .zshrc
├── .xinitrc
├── .zshenv
├── LICENSE
├── README.md
├── X11
└── xorg.conf.d
│ └── 30-touchpad.conf
└── bin
├── menu
├── scrot
├── update_info
└── volcon
/.aliases:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # XBPS
4 | alias xbu='sudo xbps-install -Su'
5 | alias xbi='sudo xbps-install -S'
6 | alias xbr='sudo xbps-remove'
7 | alias xbq='xbps-query'
8 | alias xbs='xbps-query -Rs'
9 |
10 | # Exa
11 | alias l='exa --icons'
12 | alias ll='exa -l --icons'
13 | alias la='exa -la --icons'
14 |
15 | # Internet
16 | alias aria2d='aria2c -d ~/Downloads/'
17 | alias curlo='curl -LO'
18 | alias ping='ping -c 5'
19 |
20 |
--------------------------------------------------------------------------------
/.config/cava/config:
--------------------------------------------------------------------------------
1 | ## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting.
2 | [general]
3 | autosens = 1
4 | overshoot = 20
5 |
6 | bars = 0
7 | bar_width = 3
8 | bar_height = 3
9 | bar_spacing = 1
10 |
11 | [output]
12 |
13 | method = ncurses
14 | orientation = bottom
15 | channels = stereo
16 |
17 | [color]
18 |
19 | gradient = 1
20 | gradient_count = 3
21 | gradient_color_1 = '#ebbcba'
22 | gradient_color_2 = '#ffb999'
23 | gradient_color_3 = '#ffc16a'
24 |
25 | [smoothing]
26 | waves = 0
27 | gravity = 0.5
28 |
--------------------------------------------------------------------------------
/.config/dunst/dunstrc:
--------------------------------------------------------------------------------
1 | # See dunst(5) for all configuration options
2 |
3 | [global]
4 | monitor = 0
5 | follow = none
6 |
7 | # Geometry
8 | width = 300
9 | height = 300
10 |
11 | origin = top-right
12 | offset = 10x50
13 |
14 | scale = 0
15 | notification_limit = 0
16 |
17 | # Progress bar
18 | progress_bar = true
19 | progress_bar_height = 12
20 | progress_bar_frame_width = 2
21 | progress_bar_min_width = 150
22 | progress_bar_max_width = 300
23 |
24 | # Appearance
25 | indicate_hidden = yes
26 | transparency = 0
27 | separator_height = 2
28 |
29 | padding = 8
30 | horizontal_padding = 8
31 | text_icon_padding = 0
32 |
33 | frame_width = 3
34 | gap_size = 4
35 | separator_color = background
36 |
37 | sort = yes
38 | font = Symbols Nerd Font, Iosevka Mayukai Sonata Semibold 12
39 | line_height = 0
40 |
41 | markup = full
42 | format = "%s\n%b"
43 | alignment = left
44 | vertical_alignment = center
45 | show_age_threshold = 60
46 |
47 | ellipsize = middle
48 | ignore_newline = no
49 | stack_duplicates = true
50 | hide_duplicate_count = false
51 | show_indicators = yes
52 |
53 | ### Icons ###
54 |
55 | enable_recursive_icon_lookup = true
56 | icon_theme = Papirus-Dark
57 | icon_position = left
58 |
59 | min_icon_size = 32
60 | max_icon_size = 128
61 |
62 |
63 | icon_path = /usr/share/icons/Papirus-Dark/16x16/status/:/usr/share/icons/Papirus-Dark/16x16/devices/
64 |
65 | ### History ###
66 |
67 | sticky_history = yes
68 | history_length = 20
69 |
70 | ### Misc/Advanced ###
71 |
72 | dmenu = /usr/local/bin/dmenu -p dunst:
73 |
74 | # Browser for opening urls in context menu.
75 | browser = /usr/bin/firefox
76 |
77 | # Always run rule-defined scripts, even if the notification is suppressed
78 | always_run_script = true
79 |
80 | # Define the title of the windows spawned by dunst
81 | title = Dunst
82 |
83 | # Define the class of the windows spawned by dunst
84 | class = Dunst
85 |
86 | corner_radius = 0
87 | ignore_dbusclose = false
88 |
89 | ### mouse
90 |
91 | mouse_left_click = close_current
92 | mouse_middle_click = do_action, close_current
93 | mouse_right_click = close_all
94 |
95 | [urgency_low]
96 | # IMPORTANT: colors have to be defined in quotation marks.
97 | # Otherwise the "#" and following would be interpreted as a comment.
98 | background = "#191724"
99 | foreground = "#e0def4"
100 | frame_color = "#191724"
101 | timeout = 12
102 | # Icon for notifications with low urgency, uncomment to enable
103 | default_icon = /usr/share/icons/Papirus-Dark/16x16/status/
104 |
105 | [urgency_normal]
106 | background = "#191724"
107 | foreground = "#e0def4"
108 | frame_color = "#191724"
109 | timeout = 12
110 | # Icon for notifications with normal urgency, uncomment to enable
111 | default_icon = /usr/share/icons/Papirus-Dark/16x16/status/
112 |
113 | [urgency_critical]
114 | background = "#eb6f92"
115 | foreground = "#191724"
116 | frame_color = "#eb6f92"
117 | timeout = 3
118 | # Icon for notifications with critical urgency, uncomment to enable
119 | default_icon = /usr/share/icons/Papirus-Dark/16x16/status/
120 |
--------------------------------------------------------------------------------
/.config/macchina/macchina.toml:
--------------------------------------------------------------------------------
1 | # Specifies the network interface to use for the LocalIP readout
2 | interface = "wlan0"
3 |
4 | # Lengthen uptime output
5 | long_uptime = true
6 |
7 | # Lengthen shell output
8 | long_shell = false
9 |
10 | # Lengthen kernel output
11 | long_kernel = false
12 |
13 | # Toggle between displaying the current shell or your user's default one.
14 | current_shell = true
15 |
16 | # Toggle between displaying the number of physical or logical cores of your
17 | # processor.
18 | physical_cores = true
19 |
20 | # Themes need to be placed in "$XDG_CONFIG_DIR/macchina/themes" beforehand.
21 | # e.g.:
22 | # if theme path is /home/foo/.config/macchina/themes/Sodium.toml
23 | # theme should be uncommented and set to "Sodium"
24 | #
25 | # theme = ""
26 |
27 | # Displays only the specified readouts.
28 | # Accepted values (case-sensitive):
29 | # - Host
30 | # - Machine
31 | # - Kernel
32 | # - Distribution
33 | # - OperatingSystem
34 | # - DesktopEnvironment
35 | # - WindowManager
36 | # - Resolution
37 | # - Backlight
38 | # - Packages
39 | # - LocalIP
40 | # - Terminal
41 | # - Shell
42 | # - Uptime
43 | # - Processor
44 | # - ProcessorLoad
45 | # - Memory
46 | # - Battery
47 | # Example:
48 | show = ["Distribution", "WindowManager", "Shell", "Packages", "Terminal", "Uptime"]
49 |
--------------------------------------------------------------------------------
/.config/macchina/themes/Beryllium.toml:
--------------------------------------------------------------------------------
1 | # Beryllium
2 |
3 | spacing = 3
4 | hide_ascii = true
5 | key_color = "#7067CF"
6 | separator = ""
7 |
8 | [box]
9 | border = "plain"
10 | visible = true
11 |
12 | [palette]
13 | glyph = "○ "
14 | visible = true
15 |
16 | [bar]
17 | glyph = "○"
18 | hide_delimiters = true
19 | visible = true
20 |
21 | [box.inner_margin]
22 | x = 2
23 | y = 1
24 |
25 | [custom_ascii]
26 | color = "#FF7001"
27 |
--------------------------------------------------------------------------------
/.config/macchina/themes/Custom.toml:
--------------------------------------------------------------------------------
1 | # Custom
2 | spacing = 1
3 | padding = 2
4 |
5 | hide_ascii = true
6 | prefer_small_ascii = true
7 |
8 | separator = " "
9 | key_color = "#c4a7e7"
10 | separator_color = "#eb6f92"
11 |
12 | [palette]
13 |
14 | type = "Dark"
15 | glyph = " "
16 | visible = true
17 |
18 | [box]
19 |
20 | title = " System Info "
21 | border = "rounded"
22 | visible = true
23 |
24 | [box.inner_margin]
25 | x = 0
26 | y = 0
27 |
28 | [keys]
29 |
30 | distro = " "
31 | wm = " "
32 | shell = " "
33 | packages = " "
34 | terminal = " "
35 | uptime = " "
36 |
--------------------------------------------------------------------------------
/.config/macchina/themes/Helium.toml:
--------------------------------------------------------------------------------
1 | # Helium
2 |
3 | hide_ascii = false
4 | spacing = 2
5 | padding = 0
6 | separator = "->"
7 | key_color = "Blue"
8 | separator_color = "Yellow"
9 |
10 | [bar]
11 | glyph = "o"
12 | symbol_open = "("
13 | symbol_close = ")"
14 | hide_delimiters = false
15 | visible = false
16 |
17 | [box]
18 | title = " Helium "
19 | border = "rounded"
20 | visible = false
21 |
22 | [box.inner_margin]
23 | x = 2
24 | y = 1
25 |
26 | [custom_ascii]
27 | color = "Yellow"
28 |
29 | [randomize]
30 | key_color = false
31 | separator_color = false
32 |
33 | [keys]
34 | host = "Host"
35 | kernel = "Kernel"
36 | battery = "Battery"
37 | os = "OS"
38 | de = "DE"
39 | wm = "WM"
40 | distro = "Distro"
41 | terminal = "Terminal"
42 | shell = "Shell"
43 | packages = "Packages"
44 | uptime = "Uptime"
45 | memory = "Memory"
46 | machine = "Machine"
47 | local_ip = "IP"
48 | backlight = "Brightness"
49 | resolution = "Resolution"
50 | cpu_load = "CPU Load"
51 | cpu = "CPU"
52 |
--------------------------------------------------------------------------------
/.config/macchina/themes/Hydrogen.toml:
--------------------------------------------------------------------------------
1 | # Hydrogen
2 |
3 | spacing = 2
4 | padding = 0
5 | hide_ascii = true
6 | separator = ">"
7 | key_color = "Cyan"
8 | separator_color = "White"
9 |
10 | [palette]
11 | type = "Full"
12 | visible = false
13 |
14 | [bar]
15 | glyph = "ߋ"
16 | symbol_open = '['
17 | symbol_close = ']'
18 | hide_delimiters = true
19 | visible = true
20 |
21 | [box]
22 | border = "plain"
23 | visible = true
24 |
25 | [box.inner_margin]
26 | x = 1
27 | y = 0
28 |
29 | [randomize]
30 | key_color = false
31 | separator_color = false
32 |
33 | [keys]
34 | host = "Host"
35 | kernel = "Kernel"
36 | battery = "Battery"
37 | os = "OS"
38 | de = "DE"
39 | wm = "WM"
40 | distro = "Distro"
41 | terminal = "Terminal"
42 | shell = "Shell"
43 | packages = "Packages"
44 | uptime = "Uptime"
45 | memory = "Memory"
46 | machine = "Machine"
47 | local_ip = "Local IP"
48 | backlight = "Brightness"
49 | resolution = "Resolution"
50 | cpu_load = "CPU Load"
51 | cpu = "CPU"
52 |
--------------------------------------------------------------------------------
/.config/macchina/themes/Lithium.toml:
--------------------------------------------------------------------------------
1 | # Lithium
2 |
3 | spacing = 1
4 | padding = 0
5 | hide_ascii = true
6 | separator = " "
7 | key_color = "Yellow"
8 | separator_color = "Yellow"
9 |
10 | [palette]
11 | type = "Light"
12 | glyph = " ● "
13 | visible = true
14 |
15 | [bar]
16 | glyph = "●"
17 | symbol_open = '('
18 | symbol_close = ')'
19 | visible = false
20 | hide_delimiters = true
21 |
22 | [box]
23 | title = " "
24 | border = "plain"
25 | visible = false
26 |
27 | [box.inner_margin]
28 | x = 2
29 | y = 1
30 |
31 | [custom_ascii]
32 | color = "Yellow"
33 |
34 | [randomize]
35 | key_color = false
36 | separator_color = false
37 | pool = "base"
38 |
39 | [keys]
40 | host = "Host"
41 | kernel = "Kernel"
42 | battery = "Battery"
43 | os = "OS"
44 | de = "DE"
45 | wm = "WM"
46 | distro = "Distro"
47 | terminal = "Terminal"
48 | shell = "Shell"
49 | packages = "Packages"
50 | uptime = "Uptime"
51 | memory = "Memory"
52 | machine = "Machine"
53 | local_ip = "IP"
54 | backlight = "Brightness"
55 | resolution = "Resolution"
56 | cpu_load = "CPU Load"
57 | cpu = "CPU"
58 |
--------------------------------------------------------------------------------
/.config/mpd/mpd.conf:
--------------------------------------------------------------------------------
1 | # $$\
2 | # $$ |
3 | # $$$$$$\$$$$\ $$$$$$\ $$$$$$$ |
4 | # $$ _$$ _$$\ $$ __$$\ $$ __$$ |
5 | # $$ / $$ / $$ |$$ / $$ |$$ / $$ |
6 | # $$ | $$ | $$ |$$ | $$ |$$ | $$ |
7 | # $$ | $$ | $$ |$$$$$$$ |\$$$$$$$ |
8 | # \__| \__| \__|$$ ____/ \_______|
9 | # $$ |
10 | # $$ |
11 | # \__|
12 |
13 | # Servers -----------------------------------------------
14 | bind_to_address "0.0.0.0"
15 | auto_update "yes"
16 | db_file "~/.config/mpd/mpd.db"
17 | log_file "~/.config/mpd/mpd.log"
18 | pid_file "~/.config/mpd/mpd.pid"
19 | port "6600"
20 | state_file "~/.config/mpd/mpdstate"
21 |
22 | # Directory ---------------------------------------------
23 | music_directory "/media/void/Music"
24 | playlist_directory "/media/void/Music/.playlists"
25 |
26 | # Audio Output ------------------------------------------
27 | audio_output {
28 | type "pipewire"
29 | name "PipeWire Sound Server"
30 | device "pipewire"
31 | }
32 |
33 | audio_output {
34 | type "fifo"
35 | name "fifo"
36 | path "/tmp/mpd.fifo"
37 | }
38 |
39 | # Misc --------------------------------------------------
40 | filesystem_charset "UTF-8"
41 | auto_update "yes"
42 | auto_update_depth "3"
43 |
--------------------------------------------------------------------------------
/.config/mpd/mpd.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/motolla/dotfiles/80fc245a15c532505178d20acbfc2b89fc6dc0e4/.config/mpd/mpd.db
--------------------------------------------------------------------------------
/.config/mpd/mpd.log:
--------------------------------------------------------------------------------
1 | Dec 24 10:19 : config: option 'device' on line 19 was not recognized
2 | Dec 24 10:28 : update: added /Blind - Korn.flac
3 | Dec 24 10:28 : update: added /02. Cold.flac
4 | Dec 24 10:29 : update: updating /02. Cold.flac
5 | Dec 24 10:33 : player: played "Blind - Korn.flac"
6 | Dec 24 10:37 : player: played "02. Cold.flac"
7 | Dec 24 13:22 : config: option 'device' on line 19 was not recognized
8 | Dec 24 13:24 : player: played "02. Cold.flac"
9 | Dec 24 18:19 : config: option 'device' on line 19 was not recognized
10 | Dec 24 18:20 : player: played "Blind - Korn.flac"
11 | Dec 24 18:27 : player: played "Blind - Korn.flac"
12 | Dec 25 05:30 : config: option 'device' on line 19 was not recognized
13 | Dec 25 05:34 : config: option 'device' on line 19 was not recognized
14 | Dec 25 05:34 : update: added /Blind - Korn.flac
15 | Dec 25 05:34 : update: added /C.R.E.A.M..flac
16 | Dec 25 05:34 : update: added /02. Cold.flac
17 | Dec 25 05:34 : update: added /Triumph.flac
18 | Dec 25 05:34 : update: added /WTH - Freddie Dredd.flac
19 | Dec 25 05:34 : update: added /Rules.flac
20 | Dec 25 05:36 : update: updating /Blind - Korn.flac
21 | Dec 25 05:36 : update: updating /C.R.E.A.M..flac
22 | Dec 25 05:36 : update: updating /02. Cold.flac
23 | Dec 25 05:36 : update: updating /Triumph.flac
24 | Dec 25 05:36 : update: updating /WTH - Freddie Dredd.flac
25 | Dec 25 05:36 : update: updating /Rules.flac
26 | Dec 25 05:44 : update: added /I Got a Story to Tell .flac
27 | Dec 25 05:45 : update: added /Put It On.flac
28 | Dec 25 05:47 : update: added /Bring Da Ruckus.flac
29 | Dec 25 05:49 : player: played "Triumph.flac"
30 | Dec 25 05:50 : player: played "Rules.flac"
31 | Dec 25 05:50 : update: updating /Put It On.flac
32 | Dec 25 05:50 : update: updating /Blind - Korn.flac
33 | Dec 25 05:50 : update: updating /C.R.E.A.M..flac
34 | Dec 25 05:50 : update: updating /02. Cold.flac
35 | Dec 25 05:50 : update: updating /Bring Da Ruckus.flac
36 | Dec 25 05:50 : update: updating /Triumph.flac
37 | Dec 25 05:50 : update: updating /I Got a Story to Tell .flac
38 | Dec 25 05:50 : update: updating /WTH - Freddie Dredd.flac
39 | Dec 25 05:50 : update: updating /Rules.flac
40 | Dec 25 05:53 : player: played "Bring Da Ruckus.flac"
41 | Dec 25 05:58 : player: played "Rules.flac"
42 | Dec 25 06:03 : player: played "Bring Da Ruckus.flac"
43 | Dec 25 06:06 : player: played "Rules.flac"
44 | Dec 25 06:12 : player: played "Triumph.flac"
45 | Dec 25 06:20 : player: played "Triumph.flac"
46 | Dec 25 06:24 : player: played "C.R.E.A.M..flac"
47 | Dec 25 06:29 : player: played "Bring Da Ruckus.flac"
48 | Dec 25 06:32 : player: played "Rules.flac"
49 | Dec 25 07:31 : player: played "Triumph.flac"
50 | Dec 25 07:39 : player: played "Rules.flac"
51 | Dec 25 07:43 : player: played "Bring Da Ruckus.flac"
52 | Dec 25 07:47 : player: played "Rules.flac"
53 | Dec 25 09:07 : player: played "Bring Da Ruckus.flac"
54 | Dec 25 09:16 : player: played "Triumph.flac"
55 | Dec 25 09:21 : player: played "C.R.E.A.M..flac"
56 | Dec 25 09:25 : player: played "Bring Da Ruckus.flac"
57 | Dec 25 09:29 : player: played "Rules.flac"
58 | Dec 25 09:36 : player: played "Triumph.flac"
59 | Dec 25 09:40 : player: played "C.R.E.A.M..flac"
60 | Dec 25 09:44 : player: played "Bring Da Ruckus.flac"
61 | Dec 25 09:48 : player: played "Rules.flac"
62 | Dec 25 09:50 : player: played "Triumph.flac"
63 | Dec 25 14:54 : config: option 'device' on line 19 was not recognized
64 | Dec 25 15:04 : player: played "Rules.flac"
65 | Dec 25 15:06 : player: played "Triumph.flac"
66 | Dec 27 03:52 : config: option 'device' on line 19 was not recognized
67 | Dec 27 03:55 : player: played "Triumph.flac"
68 | Jan 14 05:54 : config: option 'device' on line 19 was not recognized
69 | Jan 14 05:55 : config: option 'device' on line 19 was not recognized
70 | Jan 14 05:55 : update: added /WTH - Freddie Dredd.flac
71 | Jan 14 05:55 : update: added Deftones/Change (In the House of Flies) - Deftones.flac
72 | Jan 14 05:55 : update: added Deftones/Entombed - Deftones.flac
73 | Jan 14 05:55 : update: added Deftones/Romantic Dreams - Deftones.flac
74 | Jan 14 05:55 : update: added Deftones/Rosemary - Deftones.flac
75 | Jan 14 05:55 : update: added /N.Y. State of Mind.flac
76 | Jan 14 05:55 : update: added /Feiticeira.flac
77 | Jan 14 05:57 : update: added /There Is No God.flac
78 | Jan 14 05:57 : update: added /Xerces - Deftones.flac
79 | Jan 14 05:58 : update: added /Teenager.flac
80 | Jan 14 05:58 : player: played "Feiticeira.flac"
81 | Jan 14 05:59 : update: added /Korea .flac
82 | Jan 14 06:14 : player: played "Deftones/Change (In the House of Flies) - Deftones.flac"
83 | Jan 14 06:17 : player: played "Feiticeira.flac"
84 | Jan 14 06:23 : player: played "There Is No God.flac"
85 | Jan 14 06:26 : player: played "Teenager.flac"
86 | Jan 14 06:31 : player: played "Korea .flac"
87 | Jan 14 06:35 : player: played "Xerces - Deftones.flac"
88 | Jan 14 06:40 : player: played "Deftones/Change (In the House of Flies) - Deftones.flac"
89 | Jan 14 06:43 : player: played "Feiticeira.flac"
90 | Jan 14 06:49 : player: played "There Is No God.flac"
91 | Jan 14 06:52 : player: played "Teenager.flac"
92 | Jan 14 06:57 : player: played "Korea .flac"
93 | Jan 14 07:01 : player: played "Xerces - Deftones.flac"
94 | Jan 14 07:06 : player: played "Deftones/Change (In the House of Flies) - Deftones.flac"
95 | Jan 14 07:09 : player: played "Feiticeira.flac"
96 | Jan 14 07:15 : player: played "There Is No God.flac"
97 | Jan 14 07:18 : player: played "Teenager.flac"
98 | Jan 14 07:23 : player: played "Korea .flac"
99 | Jan 14 07:26 : player: played "Xerces - Deftones.flac"
100 | Jan 14 07:31 : player: played "Deftones/Change (In the House of Flies) - Deftones.flac"
101 | Jan 14 07:35 : player: played "Feiticeira.flac"
102 | Jan 14 07:41 : player: played "There Is No God.flac"
103 | Jan 14 07:44 : player: played "Teenager.flac"
104 | Jan 14 07:49 : player: played "Korea .flac"
105 | Jan 14 07:52 : player: played "Xerces - Deftones.flac"
106 | Jan 14 07:57 : player: played "Deftones/Change (In the House of Flies) - Deftones.flac"
107 | Jan 14 08:00 : player: played "Feiticeira.flac"
108 | Jan 14 08:07 : player: played "There Is No God.flac"
109 | Jan 14 08:10 : player: played "Teenager.flac"
110 | Jan 14 08:14 : player: played "Korea .flac"
111 | Jan 14 08:18 : player: played "Xerces - Deftones.flac"
112 | Jan 14 08:23 : player: played "Deftones/Change (In the House of Flies) - Deftones.flac"
113 | Jan 14 08:26 : player: played "Feiticeira.flac"
114 | Jan 14 08:33 : player: played "There Is No God.flac"
115 | Jan 14 08:36 : player: played "Teenager.flac"
116 | Jan 14 08:40 : player: played "Korea .flac"
117 | Jan 14 08:44 : player: played "Xerces - Deftones.flac"
118 | Jan 14 08:49 : player: played "Deftones/Change (In the House of Flies) - Deftones.flac"
119 | Jan 14 08:52 : player: played "Feiticeira.flac"
120 | Jan 14 08:58 : player: played "There Is No God.flac"
121 | Jan 14 09:02 : player: played "Teenager.flac"
122 | Jan 14 09:06 : player: played "Korea .flac"
123 | Jan 14 09:10 : player: played "Xerces - Deftones.flac"
124 | Jan 14 09:15 : player: played "Deftones/Change (In the House of Flies) - Deftones.flac"
125 | Jan 14 09:18 : player: played "Feiticeira.flac"
126 | Jan 14 09:39 : player: played "There Is No God.flac"
127 | Jan 14 12:11 : config: option 'device' on line 19 was not recognized
128 | Jan 14 12:11 : player: played "There Is No God.flac"
129 | Jan 15 00:31 : config: option 'device' on line 19 was not recognized
130 | Jan 15 10:27 : config: option 'device' on line 19 was not recognized
131 | Jan 16 01:33 : config: option 'device' on line 19 was not recognized
132 | Jan 30 03:41 : config: option 'device' on line 19 was not recognized
133 | Jan 30 03:41 : update: added /There Is No God.flac
134 | Jan 30 03:41 : update: added /The Summoning.flac
135 | Jan 30 03:41 : update: added /Xerces - Deftones.flac
136 | Jan 30 03:41 : update: added /WTH - Freddie Dredd.flac
137 | Jan 30 03:41 : update: added Deftones/Change (In the House of Flies) - Deftones.flac
138 | Jan 30 03:41 : update: added Deftones/Entombed - Deftones.flac
139 | Jan 30 03:41 : update: added Deftones/Romantic Dreams - Deftones.flac
140 | Jan 30 03:41 : update: added Deftones/Rosemary - Deftones.flac
141 | Jan 30 03:41 : update: added /N.Y. State of Mind.flac
142 | Jan 30 03:41 : update: added /Feiticeira.flac
143 | Jan 30 03:41 : update: added /Korea .flac
144 | Jan 30 03:41 : update: added /Teenager.flac
145 | Jan 30 03:46 : player: played "Deftones/Entombed - Deftones.flac"
146 | Jan 30 03:51 : player: played "Deftones/Entombed - Deftones.flac"
147 | Jan 30 03:59 : player: played "Deftones/Rosemary - Deftones.flac"
148 | Jan 30 04:04 : player: played "Deftones/Entombed - Deftones.flac"
149 | Jan 30 04:09 : player: played "N.Y. State of Mind.flac"
150 | Jan 30 04:16 : player: played "Deftones/Rosemary - Deftones.flac"
151 | Jan 30 04:21 : player: played "Deftones/Entombed - Deftones.flac"
152 | Jan 30 04:26 : player: played "N.Y. State of Mind.flac"
153 | Jan 30 04:32 : player: played "Deftones/Rosemary - Deftones.flac"
154 | Jan 30 04:32 : pipewire_output: Decoder is too slow; playing silence to avoid xrun
155 | Jan 30 04:37 : player: played "Deftones/Entombed - Deftones.flac"
156 | Jan 30 04:42 : player: played "N.Y. State of Mind.flac"
157 | Jan 30 04:49 : player: played "Deftones/Rosemary - Deftones.flac"
158 | Jan 30 04:54 : player: played "Deftones/Entombed - Deftones.flac"
159 | Jan 30 04:59 : player: played "N.Y. State of Mind.flac"
160 | Jan 30 05:06 : player: played "Deftones/Rosemary - Deftones.flac"
161 | Jan 30 05:11 : player: played "Deftones/Entombed - Deftones.flac"
162 | Jan 30 05:16 : player: played "N.Y. State of Mind.flac"
163 | Jan 30 05:23 : player: played "Deftones/Rosemary - Deftones.flac"
164 | Jan 30 05:28 : player: played "Deftones/Entombed - Deftones.flac"
165 | Jan 30 05:33 : player: played "N.Y. State of Mind.flac"
166 | Jan 30 05:40 : player: played "Deftones/Rosemary - Deftones.flac"
167 | Jan 30 05:45 : player: played "Deftones/Entombed - Deftones.flac"
168 | Jan 30 05:49 : player: played "N.Y. State of Mind.flac"
169 | Jan 30 05:56 : player: played "Deftones/Rosemary - Deftones.flac"
170 | Jan 30 06:01 : player: played "Deftones/Entombed - Deftones.flac"
171 | Jan 30 06:06 : player: played "N.Y. State of Mind.flac"
172 | Jan 30 06:13 : player: played "Deftones/Rosemary - Deftones.flac"
173 | Jan 30 06:18 : player: played "Deftones/Entombed - Deftones.flac"
174 | Jan 30 06:19 : player: played "N.Y. State of Mind.flac"
175 | Jan 30 07:00 : config: option 'device' on line 30 was not recognized
176 | Jan 30 07:00 : player: played "N.Y. State of Mind.flac"
177 | Jan 30 07:03 : player: played "Deftones/Entombed - Deftones.flac"
178 | Jan 30 07:11 : player: played "N.Y. State of Mind.flac"
179 | Jan 30 07:18 : player: played "Deftones/Rosemary - Deftones.flac"
180 | Jan 30 07:23 : player: played "Deftones/Entombed - Deftones.flac"
181 | Jan 30 07:28 : player: played "N.Y. State of Mind.flac"
182 | Jan 30 07:35 : player: played "Deftones/Rosemary - Deftones.flac"
183 | Jan 30 07:39 : player: played "Deftones/Entombed - Deftones.flac"
184 | Jan 30 07:44 : player: played "N.Y. State of Mind.flac"
185 | Jan 30 07:50 : player: played "Deftones/Rosemary - Deftones.flac"
186 | Jan 31 01:53 : config: option 'device' on line 30 was not recognized
187 | Jan 31 01:57 : player: played "N.Y. State of Mind.flac"
188 |
--------------------------------------------------------------------------------
/.config/mpd/mpdstate:
--------------------------------------------------------------------------------
1 | sw_volume: 84
2 | audio_device_state:1:PipeWire Sound Server
3 | audio_device_state:1:fifo
4 | state: stop
5 | current: 1
6 | random: 0
7 | repeat: 1
8 | single: 0
9 | consume: 0
10 | crossfade: 0
11 | mixrampdb: 0.000000
12 | mixrampdelay: -1.000000
13 | playlist_begin
14 | 0:Deftones/Entombed - Deftones.flac
15 | 1:N.Y. State of Mind.flac
16 | 2:Deftones/Rosemary - Deftones.flac
17 | playlist_end
18 |
--------------------------------------------------------------------------------
/.config/mpv/input.conf:
--------------------------------------------------------------------------------
1 | # Mouse/Touchpad bindings(?) -----------------------------------
2 | WHEEL_UP add volume 10 # seek 10 seconds forward
3 | WHEEL_DOWN add volume -10 # seek 10 seconds backward
4 | WHEEL_LEFT seek -2
5 | WHEEL_RIGHT seek 2
6 |
7 | # Keyboard bindings -------------------------------------------
8 | # [Script/mdmenu]
9 | CTRL+p script-binding mdmenu/tracklist
10 | CTRL+o script-binding mdmenu/chapters
11 | CTRL+l script-binding mdmenu/playlist
12 |
13 | # [Volume control]
14 | UP add volume +5
15 | DOWN add volume -5
16 |
17 | # [Seeking]
18 | RIGHT seek 1
19 | LEFT seek -1
20 |
21 | # [Playback control]
22 | SPACE osd-msg cycle pause
23 | ESC set fullscreen no
24 | q quit
25 | Q quit-watch-later
26 | p cycle pause
27 | . frame-step
28 | , frame-back-step
29 | > playlist-next
30 | < playlist-prev
31 | O no-osd cycle-values osd-level 3 1
32 | o show-progress
33 | P show-progress
34 | ] multiply speed 1.1
35 | [ multiply speed 1/1.1
36 | } multiply speed 2.0
37 | { multiply speed 0.5
38 |
39 | # [Subtitles]
40 | z add sub-delay -0.1
41 | Z add sub-delay +0.1
42 | k no-osd add seek-sub -1
43 | j no-osd add seek-sub +1
44 |
45 | # [Visual]
46 | = add video-zoom 0.1
47 | - add video-zoom -0.1
48 | 0 set video-zoom 0
49 |
--------------------------------------------------------------------------------
/.config/mpv/mplayer-input.conf:
--------------------------------------------------------------------------------
1 | ##
2 | ## MPlayer-style key bindings
3 | ##
4 | ## Save it as ~/.config/mpv/input.conf to use it.
5 | ##
6 | ## Generally, it's recommended to use this as reference-only.
7 | ##
8 |
9 | RIGHT seek +10
10 | LEFT seek -10
11 | DOWN seek -60
12 | UP seek +60
13 | PGUP seek 600
14 | PGDWN seek -600
15 | m cycle mute
16 | SHARP cycle audio # switch audio streams
17 | + add audio-delay 0.100
18 | = add audio-delay 0.100
19 | - add audio-delay -0.100
20 | [ multiply speed 0.9091 # scale playback speed
21 | ] multiply speed 1.1
22 | { multiply speed 0.5
23 | } multiply speed 2.0
24 | BS set speed 1.0 # reset speed to normal
25 | q quit
26 | ESC quit
27 | ENTER playlist-next force # skip to next file
28 | p cycle pause
29 | . frame-step # advance one frame and pause
30 | SPACE cycle pause
31 | HOME set playlist-pos 0 # not the same as MPlayer
32 | #END pt_up_step -1
33 | > playlist-next # skip to next file
34 | < playlist-prev # previous
35 | #INS alt_src_step 1
36 | #DEL alt_src_step -1
37 | o osd
38 | I show-text "${filename}" # display filename in osd
39 | P show-progress
40 | z add sub-delay -0.1 # subtract 100 ms delay from subs
41 | x add sub-delay +0.1 # add
42 | 9 add volume -1
43 | / add volume -1
44 | 0 add volume 1
45 | * add volume 1
46 | 1 add contrast -1
47 | 2 add contrast 1
48 | 3 add brightness -1
49 | 4 add brightness 1
50 | 5 add hue -1
51 | 6 add hue 1
52 | 7 add saturation -1
53 | 8 add saturation 1
54 | ( add balance -0.1 # adjust audio balance in favor of left
55 | ) add balance +0.1 # right
56 | d cycle framedrop
57 | D cycle deinterlace # toggle deinterlacer (auto-inserted filter)
58 | r add sub-pos -1 # move subtitles up
59 | t add sub-pos +1 # down
60 | #? sub-step +1 # immediately display next subtitle
61 | #? sub-step -1 # previous
62 | #? add sub-scale +0.1 # increase subtitle font size
63 | #? add sub-scale -0.1 # decrease subtitle font size
64 | f cycle fullscreen
65 | T cycle ontop # toggle video window ontop of other windows
66 | w add panscan -0.1 # zoom out with -panscan 0 -fs
67 | e add panscan +0.1 # in
68 | c cycle stream-capture # save (and append) file/stream to stream.dump with -capture
69 | s screenshot # take a screenshot (if you want PNG, use "--screenshot-format=png")
70 | S screenshot - each-frame # S will take a png screenshot of every frame
71 |
72 | h cycle tv-channel 1
73 | l cycle tv-channel -1
74 | n cycle tv-norm
75 | #b tv_step_chanlist
76 |
77 | #? add chapter -1 # skip to previous dvd chapter
78 | #? add chapter +1 # next
79 |
80 | ##
81 | ## Advanced seek
82 | ## Uncomment the following lines to be able to seek to n% of the media with
83 | ## the Fx keys.
84 | ##
85 | #F1 seek 10 absolute-percent
86 | #F2 seek 20 absolute-percent
87 | #F3 seek 30 absolute-percent
88 | #F4 seek 40 absolute-percent
89 | #F5 seek 50 absolute-percent
90 | #F6 seek 60 absolute-percent
91 | #F7 seek 70 absolute-percent
92 | #F8 seek 80 absolute-percent
93 | #F9 seek 90 absolute-percent
94 |
--------------------------------------------------------------------------------
/.config/mpv/mpv.conf:
--------------------------------------------------------------------------------
1 | #
2 | # Example mpv configuration file
3 | #
4 | # Warning:
5 | #
6 | # The commented example options usually do _not_ set the default values. Call
7 | # mpv with --list-options to see the default values for most options. There is
8 | # no builtin or example mpv.conf with all the defaults.
9 | #
10 | #
11 | # Configuration files are read system-wide from /usr/local/etc/mpv.conf
12 | # and per-user from ~/.config/mpv/mpv.conf, where per-user settings override
13 | # system-wide settings, all of which are overridden by the command line.
14 | #
15 | # Configuration file settings and the command line options use the same
16 | # underlying mechanisms. Most options can be put into the configuration file
17 | # by dropping the preceding '--'. See the man page for a complete list of
18 | # options.
19 | #
20 | # Lines starting with '#' are comments and are ignored.
21 | #
22 | # See the CONFIGURATION FILES section in the man page
23 | # for a detailed description of the syntax.
24 | #
25 | # Profiles should be placed at the bottom of the configuration file to ensure
26 | # that settings wanted as defaults are not restricted to specific profiles.
27 |
28 | ##################
29 | # video settings #
30 | ##################
31 |
32 | # Start in fullscreen mode by default.
33 | #fs=yes
34 |
35 | # force starting with centered window
36 | #geometry=50%:50%
37 |
38 | # don't allow a new window to have a size larger than 90% of the screen size
39 | #autofit-larger=90%x90%
40 |
41 | # Do not close the window on exit.
42 | #keep-open=yes
43 |
44 | # Do not wait with showing the video window until it has loaded. (This will
45 | # resize the window once video is loaded. Also always shows a window with
46 | # audio.)
47 | #force-window=immediate
48 |
49 | # Disable the On Screen Controller (OSC).
50 | #osc=no
51 |
52 | # Keep the player window on top of all other windows.
53 | #ontop=yes
54 |
55 | # Specify high quality video rendering preset (for --vo=gpu only)
56 | # Can cause performance problems with some drivers and GPUs.
57 | #profile=gpu-hq
58 |
59 | # Force video to lock on the display's refresh rate, and change video and audio
60 | # speed to some degree to ensure synchronous playback - can cause problems
61 | # with some drivers and desktop environments.
62 | #video-sync=display-resample
63 |
64 | # Enable hardware decoding if available. Often, this does not work with all
65 | # video outputs, but should work well with default settings on most systems.
66 | # If performance or energy usage is an issue, forcing the vdpau or vaapi VOs
67 | # may or may not help.
68 | #hwdec=auto
69 |
70 | ##################
71 | # audio settings #
72 | ##################
73 |
74 | # Specify default audio device. You can list devices with: --audio-device=help
75 | # The option takes the device string (the stuff between the '...').
76 | #audio-device=alsa/default
77 |
78 | # Do not filter audio to keep pitch when changing playback speed.
79 | #audio-pitch-correction=no
80 |
81 | # Output 5.1 audio natively, and upmix/downmix audio with a different format.
82 | #audio-channels=5.1
83 | # Disable any automatic remix, _if_ the audio output accepts the audio format.
84 | # of the currently played file. See caveats mentioned in the manpage.
85 | # (The default is "auto-safe", see manpage.)
86 | #audio-channels=auto
87 |
88 | ##################
89 | # other settings #
90 | ##################
91 |
92 | # Pretend to be a web browser. Might fix playback with some streaming sites,
93 | # but also will break with shoutcast streams.
94 | #user-agent="Mozilla/5.0"
95 |
96 | # cache settings
97 | #
98 | # Use a large seekable RAM cache even for local input.
99 | #cache=yes
100 | #
101 | # Use extra large RAM cache (needs cache=yes to make it useful).
102 | #demuxer-max-bytes=500M
103 | #demuxer-max-back-bytes=100M
104 | #
105 | # Disable the behavior that the player will pause if the cache goes below a
106 | # certain fill size.
107 | #cache-pause=no
108 | #
109 | # Store cache payload on the hard disk instead of in RAM. (This may negatively
110 | # impact performance unless used for slow input such as network.)
111 | #cache-dir=~/.cache/
112 | #cache-on-disk=yes
113 |
114 | # Display English subtitles if available.
115 | #slang=en
116 |
117 | # Play Finnish audio if available, fall back to English otherwise.
118 | #alang=fi,en
119 |
120 | # Change subtitle encoding. For Arabic subtitles use 'cp1256'.
121 | # If the file seems to be valid UTF-8, prefer UTF-8.
122 | # (You can add '+' in front of the codepage to force it.)
123 | #sub-codepage=cp1256
124 |
125 | # You can also include other configuration files.
126 | #include=/path/to/the/file/you/want/to/include
127 |
128 | ############
129 | # Profiles #
130 | ############
131 |
132 | # The options declared as part of profiles override global default settings,
133 | # but only take effect when the profile is active.
134 |
135 | # The following profile can be enabled on the command line with: --profile=eye-cancer
136 |
137 | #[eye-cancer]
138 | #sharpen=5
139 |
--------------------------------------------------------------------------------
/.config/mpv/restore-old-bindings.conf:
--------------------------------------------------------------------------------
1 |
2 | # This file contains all bindings that were removed after a certain release.
3 | # If you want MPlayer bindings, use mplayer-input.conf
4 |
5 | # Pick the bindings you want back and add them to your own input.conf. Append
6 | # this file to your input.conf if you want them all back:
7 | #
8 | # cat restore-old-bindings.conf >> ~/.config/mpv/input.conf
9 | #
10 | # Older installations use ~/.mpv/input.conf instead.
11 |
12 | # changed in mpv 0.27.0 (macOS and Wayland only)
13 |
14 | # WHEEL_UP seek 10
15 | # WHEEL_DOWN seek -10
16 | # WHEEL_LEFT seek 5
17 | # WHEEL_RIGHT seek -5
18 |
19 | # changed in mpv 0.26.0
20 |
21 | h cycle tv-channel -1 # previous channel
22 | k cycle tv-channel +1 # next channel
23 | H cycle dvb-channel-name -1 # previous channel
24 | K cycle dvb-channel-name +1 # next channel
25 |
26 | I show-text "${filename}" # display filename in osd
27 |
28 | # changed in mpv 0.24.0
29 |
30 | L cycle-values loop "inf" "no"
31 |
32 | # changed in mpv 0.10.0
33 |
34 | O osd
35 | D cycle deinterlace
36 | d cycle framedrop
37 |
38 | # changed in mpv 0.7.0
39 |
40 | ENTER playlist-next force
41 |
42 | # changed in mpv 0.6.0
43 |
44 | ESC quit
45 |
46 | # changed in mpv 0.5.0
47 |
48 | PGUP seek 600
49 | PGDWN seek -600
50 | RIGHT seek 10
51 | LEFT seek -10
52 | + add audio-delay 0.100
53 | - add audio-delay -0.100
54 | ( add balance -0.1
55 | ) add balance 0.1
56 | F cycle sub-forced-only
57 | TAB cycle program
58 | A cycle angle
59 | U stop
60 | o osd
61 | I show-text "${filename}"
62 |
--------------------------------------------------------------------------------
/.config/mpv/script-opts/mdmenu.conf:
--------------------------------------------------------------------------------
1 | # if enabled, dmenu will be embedded inside the mpv instance.
2 | # on older mpv versions (v0.35.0 and below) depends on
3 | # [xdo](https://github.com/baskerville/xdo) to get mpv's xwindow id.
4 | embed=yes
5 |
6 | # if enabled, the "current item" (e.g current chapter) will be preselected in dmenu.
7 | # requires [preselect](https://tools.suckless.org/dmenu/patches/preselect/)
8 | preselect=no
9 |
10 | # command that gets invoked.
11 | # can be replaced with anything else that's "dmenu compliant" (such as rofi's dmenu mode).
12 | # arguments are comma separated.
13 | cmd=dmenu,-i,-c,-l,16,
14 |
--------------------------------------------------------------------------------
/.config/mpv/scripts/mdmenu.lua:
--------------------------------------------------------------------------------
1 | --[[
2 | This file is part of mdmenu.
3 |
4 | mdmenu is free software: you can redistribute it and/or modify it
5 | under the terms of the GNU Affero General Public License as published by the
6 | Free Software Foundation, either version 3 of the License, or (at your
7 | option) any later version.
8 |
9 | mdmenu is distributed in the hope that it will be useful, but WITHOUT
10 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License
12 | for more details.
13 |
14 | You should have received a copy of the GNU Affero General Public License
15 | along with mdmenu. If not, see .
16 | ]]
17 |
18 | local msg = require('mp.msg')
19 | local mpopt = require('mp.options')
20 | local utils = require('mp.utils')
21 |
22 | local state = {
23 | playlist = nil,
24 | playlist_current = nil,
25 | tracklist = nil,
26 | chapters = nil,
27 | chapters_raw = nil,
28 | }
29 |
30 | local opt = {
31 | embed = true,
32 | preselect = false,
33 | cmd = { "dmenu", "-i", "-l", "16" },
34 | }
35 |
36 | local ob = { [false] = ' ', [true] = '[' }
37 | local cb = { [false] = ' ', [true] = ']' }
38 |
39 | function format_time(t)
40 | local h = math.floor(t / (60 * 60))
41 | t = t - (h * 60 * 60)
42 | local m = math.floor(t / 60)
43 | local s = t - (m * 60)
44 | return string.format("%.2d:%.2d:%.2d", h, m, s)
45 | end
46 |
47 | function humantime_to_sec(str)
48 | assert(string.len(str) >= 8)
49 | local h = tonumber(string.sub(str, 1, 2))
50 | local m = tonumber(string.sub(str, 4, 5))
51 | local s = tonumber(string.sub(str, 7, 8))
52 | if h and m and s and
53 | string.sub(str, 3, 3) == ':' and
54 | string.sub(str, 6, 6) == ':'
55 | then
56 | return (h * 60 * 60) + (m * 60) + s
57 | end
58 | return nil
59 | end
60 |
61 | function grab_xid(kind, ws)
62 | assert(kind == "current-window-scale")
63 | if (ws) then
64 | local wid = mp.get_property('window-id')
65 | if (wid == nil) then
66 | local pid = mp.get_property('pid')
67 | local r = mp.command_native({
68 | name = "subprocess",
69 | playback_only = false,
70 | capture_stdout = true,
71 | args = {"xdo", "id", "-p", pid},
72 | })
73 | if (r.status == 0 and string.len(r.stdout) > 0) then
74 | wid = string.match(r.stdout, "0x%x+")
75 | end
76 | end
77 | if (wid) then
78 | table.insert(opt.cmd, "-w")
79 | table.insert(opt.cmd, wid)
80 | else
81 | msg.warn("couldn't get mpv's xwindow id. make sure `xdo` is installed.")
82 | end
83 | mp.unobserve_property(grab_xid)
84 | end
85 | end
86 |
87 | function set_playlist(kind, plist)
88 | assert(kind == "playlist")
89 | local s = ''
90 | local f = "%"..(string.len(#plist) + string.len(ob[true]) + string.len(cb[true])).."s"
91 | state.playlist_current = nil
92 | for k,pl in ipairs(plist) do
93 | state.playlist_current = pl.current and k or state.playlist_current
94 | s = s .. string.format(f, ob[pl.current or false] .. k .. cb[pl.current or false]) .. ' '
95 | s = s .. (pl.title or select(2, utils.split_path(pl.filename))) .. '\n'
96 | end
97 | state.playlist = s
98 | end
99 |
100 | function set_tracklist(kind, tlist)
101 | assert(kind == "track-list")
102 | local s = ''
103 | for _,t in ipairs(tlist) do
104 | s = s .. ob[t.selected] .. string.sub(t.type, 1, 1)
105 | s = s .. t.id .. cb[t.selected] .. ' '
106 |
107 | if (t.title) then
108 | s = s .. t.title .. ' '
109 | end
110 | if (t.lang) then
111 | s = s .. t.lang .. ' '
112 | end
113 | s = s .. '\n'
114 | end
115 | state.tracklist = s
116 | end
117 |
118 | function set_chapter_list(kind, c)
119 | assert(kind == "chapter-list")
120 | if (c and #c > 0) then
121 | local s = ''
122 | for _,ch in ipairs(c) do
123 | s = s .. format_time(ch.time) .. ' '
124 | s = s .. ch.title .. '\n'
125 | end
126 | state.chapters = s
127 | state.chapters_raw = c
128 | else
129 | state.chapters = nil
130 | state.chapters_raw = nil
131 | end
132 | end
133 |
134 | function call_dmenu(stdin, extra_arg)
135 | local cmd = opt.cmd
136 | if (extra_arg) then
137 | for _,v in ipairs(extra_arg) do
138 | table.insert(cmd, v)
139 | end
140 | end
141 | return mp.command_native({
142 | name = "subprocess",
143 | playback_only = false,
144 | stdin_data = stdin,
145 | capture_stdout = true,
146 | args = cmd
147 | })
148 | end
149 |
150 | function menu_playlist()
151 | if (state.playlist == nil) then
152 | return
153 | end
154 | local narg = nil
155 | if (opt.preselect and state.playlist_current ~= nil) then
156 | narg = { "-n", tostring(state.playlist_current - 1) }
157 | end
158 | local r = call_dmenu(state.playlist, narg)
159 | if (r.status == 0 and string.len(r.stdout) > 2) then
160 | s = string.match(r.stdout, "[%s%[]*(%d+)")
161 | if (tonumber(s)) then
162 | mp.set_property("playlist-pos-1", s)
163 | else
164 | msg.warn("bad playlist position: " .. r.stdout)
165 | end
166 | end
167 | end
168 |
169 | function menu_tracklist()
170 | if (state.tracklist == nil) then
171 | return
172 | end
173 |
174 | local r = call_dmenu(state.tracklist)
175 | if (r.status == 0 and string.len(r.stdout) > 4) then
176 | local active = string.sub(r.stdout, 1, 1) == '['
177 | local type = string.sub(r.stdout, 2, 2)
178 | local cmd = { ['v'] = 'vid', ['a'] = 'audio', ['s'] = 'sub' }
179 | local arg = { [false] = string.sub(r.stdout, 3, 3), [true] = 'no' }
180 |
181 | if (cmd[type]) then
182 | mp.commandv('set', cmd[type], arg[active])
183 | else
184 | msg.warn("messed up input: " .. r.stdout)
185 | end
186 | end
187 | end
188 |
189 | function menu_chapters()
190 | if (state.chapters == nil) then
191 | return
192 | end
193 | local narg = nil
194 | if (opt.preselect) then
195 | local t = mp.get_property_native('time-pos') or 0
196 | local n = 0
197 | for i,c in ipairs(state.chapters_raw) do
198 | if (t > c.time) then
199 | n = i - 1
200 | end
201 | end
202 | narg = { "-n", tostring(n) }
203 | end
204 |
205 | local r = call_dmenu(state.chapters, narg)
206 | if (r.status == 0 and string.len(r.stdout) > 8) then
207 | local t = humantime_to_sec(r.stdout)
208 | if (t) then
209 | mp.set_property("time-pos", t)
210 | else
211 | msg.warn("bad chapter position: " .. r.stdout)
212 | end
213 | end
214 | end
215 |
216 | function init()
217 | mpopt.read_options(opt, "mdmenu")
218 | if (type(opt.cmd) == "string") then -- what a pain
219 | local s = opt.cmd
220 | opt.cmd = {}
221 | for arg in string.gmatch(s, '[^,]+') do
222 | table.insert(opt.cmd, arg)
223 | end
224 | end
225 |
226 | -- grab mpv's xwindow id
227 | if (opt.embed) then
228 | -- HACK: mpv doesn't open the window instantly by default.
229 | -- so wait for 'current-window-scale' to be available before
230 | -- trying to grab the xid.
231 | mp.observe_property('current-window-scale', 'native', grab_xid)
232 | end
233 |
234 | mp.observe_property('playlist', 'native', set_playlist)
235 | mp.add_key_binding(nil, 'playlist', menu_playlist)
236 |
237 | mp.observe_property('track-list', 'native', set_tracklist)
238 | mp.add_key_binding(nil, 'tracklist', menu_tracklist)
239 |
240 | mp.observe_property('chapter-list', 'native', set_chapter_list)
241 | mp.add_forced_key_binding(nil, 'chapters', menu_chapters)
242 | end
243 |
244 | init()
245 |
--------------------------------------------------------------------------------
/.config/ncmpcpp/config:
--------------------------------------------------------------------------------
1 | # Directory -----------------------------------------------------------
2 | ncmpcpp_directory = ~/.config/ncmpcpp
3 | lyrics_directory = /media/void/Music/.lyrics
4 | mpd_music_dir = /media/void/Music
5 | # ---------------------------------------------------------------------
6 |
7 | # Connection ----------------------------------------------------------
8 | mpd_host = localhost
9 | mpd_port = 6600
10 | mpd_connection_timeout = 3
11 | # ---------------------------------------------------------------------
12 |
13 | # Visualizer ----------------------------------------------------------
14 | audio_output {
15 | type "fifo"
16 | name "Visualizer feed"
17 | path "/tmp/mpd.fifo"
18 | format "44100:16:2"
19 | }
20 |
21 | visualizer_data_source = /tmp/mpd.fifo
22 | visualizer_output_name = Visualizer feed
23 | visualizer_in_stereo = yes
24 | visualizer_type = spectrum
25 | visualizer_look = +█
26 | visualizer_color = magenta
27 | # ------------------------------------------------------------------------
28 |
29 | # Library Stuff ----------------------------------------------------------
30 | song_library_format = "{{%a - %t}|{%f}}{$R%l}"
31 | empty_tag_color = black
32 | current_item_prefix = "$(magenta)$r"
33 | current_item_suffix = "$/r$(end)"
34 | song_list_format = "{{%a - %t}|{%f}}{$R%l}"
35 | # --------------------------------------------------------------------------
36 |
37 | # Playlist Stuff -----------------------------------------------------------
38 | now_playing_prefix = ""
39 | now_playing_suffix = "$/b"
40 | playlist_display_mode = columns
41 | song_columns_list_format = "(50)[magenta]{ar} (50)[white]{t}"
42 | # ---------------------------------------------------------------------------
43 | #
44 | # Headers Stuff -------------------------------------------------------------
45 | header_visibility = no
46 | header_window_color = default
47 | playlist_shorten_total_times = yes
48 | state_line_color = black
49 | volume_color = default
50 | # ----------------------------------------------------------------------------
51 | #
52 | # Status Bar -----------------------------------------------------------------
53 | progressbar_color = "white"
54 | progressbar_elapsed_color = "black"
55 | progressbar_look = "▂▂▂"
56 | song_status_format = "{$b$3%t$/b $8by $b$4%a$8$/b}|{%f}"
57 | statusbar_color = default
58 | statusbar_visibility = yes
59 | display_bitrate = no
60 | display_remaining_time = no
61 | # ------------------------------------------------------------------------------
62 | #
63 | # Misc -------------------------------------------------------------------------
64 | allow_for_physical_item_deletion = yes
65 | execute_on_song_change = "~/.config/ncmpcpp/notif"
66 | autocenter_mode = yes
67 | centered_cursor = yes
68 | color1 = white
69 | color2 = red
70 | colors_enabled = yes
71 | enable_window_title = yes
72 | ignore_leading_the = yes
73 | main_window_color = white
74 | message_delay_time = 1
75 | song_window_title_format = "阮 Now Playing {%a - }{%t}|{%f}"
76 | titles_visibility = no
77 | # ---------------------------------------------------------------------------------
78 |
--------------------------------------------------------------------------------
/.config/ncmpcpp/error.log:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/motolla/dotfiles/80fc245a15c532505178d20acbfc2b89fc6dc0e4/.config/ncmpcpp/error.log
--------------------------------------------------------------------------------
/.config/ncmpcpp/notif:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 |
4 | file_path="/media/void/Music"
5 | filename=$(mpc current -f %file%)
6 | album_width=80
7 |
8 |
9 | # Get the album art
10 | ffmpeg -i "$file_path/""$filename" "/tmp/raw_album.png" -y 2> /dev/null &&\
11 | convert -resize 80x80 "/tmp/raw_album.png" "/tmp/album.png"
12 |
13 | notify-send -i "/tmp/album.png" " Now Playing"$'\n'" $(mpc current -f %artist%) - $(mpc current -f %title%)"$'\n'" $(mpc current -f %album%)"
14 |
--------------------------------------------------------------------------------
/.config/picom/picom.conf:
--------------------------------------------------------------------------------
1 | #################################
2 | # Shadows #
3 | #################################
4 |
5 | shadow = true;
6 | shadow-radius = 16;
7 | shadow-opacity = 1.0
8 |
9 | shadow-offset-x = -14;
10 | shadow-offset-y = -14;
11 |
12 | shadow-color = "#191724"
13 |
14 | shadow-exclude = [
15 | "name = 'Notification'",
16 | # "class_g = 'dwm'",
17 | "_GTK_FRAME_EXTENTS@:c"
18 | ];
19 |
20 | # examples: shadow-exclude = "n:e:Notification";
21 |
22 | #################################
23 | # General Settings #
24 | #################################
25 |
26 | experimental-backends = true;
27 | backend = "glx";
28 | vsync = true;
29 |
30 | mark-wmwin-focused = true;
31 | mark-ovredir-focused = true;
32 | detect-rounded-corners = true;
33 | detect-client-opacity = true;
34 |
35 | refresh-rate = 60;
36 | detect-transient = true;
37 | detect-client-leader = true;
38 |
39 | use-damage = false;
40 |
41 | # xrender-sync-fence = false
42 | wintypes:
43 | {
44 | normal = { fade = false; shadow = true; focus = true; full-shadow = false; }
45 | tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
46 | dock = { shadow = false; }
47 | dnd = { shadow = false; }
48 | popup_menu = { opacity = 0.8; }
49 | dropdown_menu = { opacity = 0.8; }
50 | };
51 |
--------------------------------------------------------------------------------
/.config/ranger/commands.py:
--------------------------------------------------------------------------------
1 | # This is a sample commands.py. You can add your own commands here.
2 | #
3 | # Please refer to commands_full.py for all the default commands and a complete
4 | # documentation. Do NOT add them all here, or you may end up with defunct
5 | # commands when upgrading ranger.
6 |
7 | # A simple command for demonstration purposes follows.
8 | # -----------------------------------------------------------------------------
9 |
10 | from __future__ import (absolute_import, division, print_function)
11 |
12 | # You can import any python module as needed.
13 | import os
14 |
15 | # You always need to import ranger.api.commands here to get the Command class:
16 | from ranger.api.commands import Command
17 |
18 |
19 | # Any class that is a subclass of "Command" will be integrated into ranger as a
20 | # command. Try typing ":my_edit" in ranger!
21 | class my_edit(Command):
22 | # The so-called doc-string of the class will be visible in the built-in
23 | # help that is accessible by typing "?c" inside ranger.
24 | """:my_edit
25 |
26 | A sample command for demonstration purposes that opens a file in an editor.
27 | """
28 |
29 | # The execute method is called when you run this command in ranger.
30 | def execute(self):
31 | # self.arg(1) is the first (space-separated) argument to the function.
32 | # This way you can write ":my_edit somefilename".
33 | if self.arg(1):
34 | # self.rest(1) contains self.arg(1) and everything that follows
35 | target_filename = self.rest(1)
36 | else:
37 | # self.fm is a ranger.core.filemanager.FileManager object and gives
38 | # you access to internals of ranger.
39 | # self.fm.thisfile is a ranger.container.file.File object and is a
40 | # reference to the currently selected file.
41 | target_filename = self.fm.thisfile.path
42 |
43 | # This is a generic function to print text in ranger.
44 | self.fm.notify("Let's edit the file " + target_filename + "!")
45 |
46 | # Using bad=True in fm.notify allows you to print error messages:
47 | if not os.path.exists(target_filename):
48 | self.fm.notify("The given file does not exist!", bad=True)
49 | return
50 |
51 | # This executes a function from ranger.core.acitons, a module with a
52 | # variety of subroutines that can help you construct commands.
53 | # Check out the source, or run "pydoc ranger.core.actions" for a list.
54 | self.fm.edit_file(target_filename)
55 |
56 | # The tab method is called when you press tab, and should return a list of
57 | # suggestions that the user will tab through.
58 | # tabnum is 1 for and -1 for by default
59 | def tab(self, tabnum):
60 | # This is a generic tab-completion function that iterates through the
61 | # content of the current directory.
62 | return self._tab_directory_content()
63 |
--------------------------------------------------------------------------------
/.config/ranger/plugins/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/motolla/dotfiles/80fc245a15c532505178d20acbfc2b89fc6dc0e4/.config/ranger/plugins/__init__.py
--------------------------------------------------------------------------------
/.config/ranger/plugins/__pycache__/__init__.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/motolla/dotfiles/80fc245a15c532505178d20acbfc2b89fc6dc0e4/.config/ranger/plugins/__pycache__/__init__.cpython-311.pyc
--------------------------------------------------------------------------------
/.config/ranger/plugins/ranger_devicons/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: Bug
6 | assignees: ''
7 |
8 | ---
9 |
10 | - [ ] I've read the [guidelines for Contributing](https://github.com/alexanderjeurissen/ranger_devicons/blob/main/CONTRIBUTING.MD)
11 |
12 | **Describe the bug**
13 | A clear and concise description of what the bug is.
14 |
15 | **To Reproduce**
16 | Steps to reproduce the behavior:
17 | 1. Go to '...'
18 | 2. Click on '....'
19 | 3. Scroll down to '....'
20 | 4. See error
21 |
22 | **Expected behavior**
23 | A clear and concise description of what you expected to happen.
24 |
25 | **Screenshots**
26 | If applicable, add screenshots to help explain your problem.
27 |
28 | **Environment (please complete the following information):**
29 | - OS + version: [e.g. Mac OS Catalina 10.15.6]
30 | - shell [e.g. fish, zsh]
31 | - shell version [e.g. 3.1.2]
32 |
33 | **Ranger devicons (please complete the following information):**
34 | - version / commit [e.g. HEAD]
35 | - output of `tree ~/.config/ranger` [can be installed on most OS using default package manager e.g. `apt-get install tree`]
36 |
37 |
38 | **Additional context**
39 | Add any other context about the problem here.
40 |
--------------------------------------------------------------------------------
/.config/ranger/plugins/ranger_devicons/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 | contact_links:
3 | - name: Personal Support / Discussion
4 | url: https://github.com/alexanderjeurissen/ranger_devicons/discussions
5 | about: Personal support and general discussion should be conducted in our community forum.
6 |
--------------------------------------------------------------------------------
/.config/ranger/plugins/ranger_devicons/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | - [ ] I've read the [guidelines for Contributing](https://github.com/alexanderjeurissen/ranger_devicons/blob/main/CONTRIBUTING.MD)
11 |
12 | **Is your feature request related to a problem? Please describe.**
13 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
14 |
15 | **Describe the solution you'd like**
16 | A clear and concise description of what you want to happen.
17 |
18 | **Describe alternatives you've considered**
19 | A clear and concise description of any alternative solutions or features you've considered.
20 |
21 | **Additional context**
22 | Add any other context or screenshots about the feature request here.
23 |
--------------------------------------------------------------------------------
/.config/ranger/plugins/ranger_devicons/.github/workflows/greetings.yml:
--------------------------------------------------------------------------------
1 | name: Greetings
2 |
3 | on: [pull_request, issues]
4 |
5 | jobs:
6 | greeting:
7 | runs-on: ubuntu-latest
8 | steps:
9 | - uses: actions/first-interaction@v1
10 | with:
11 | repo-token: ${{ secrets.GITHUB_TOKEN }}
12 | issue-message: 'Hello 👋 Thanks for submitting your first issue. We appreciate that you care about this project and want to help make it the best it can be.'
13 | pr-message: 'Hello 👋 Thank you so much for your first contribution to this project 🎉'
14 |
--------------------------------------------------------------------------------
/.config/ranger/plugins/ranger_devicons/.github/workflows/main.yml:
--------------------------------------------------------------------------------
1 | name: Autocloser
2 | on: [issues]
3 | jobs:
4 | autoclose:
5 | runs-on: ubuntu-latest
6 | steps:
7 | - name: Autoclose issues that did not follow issue template
8 | uses: roots/issue-closer@v1.1
9 | with:
10 | repo-token: ${{ secrets.GITHUB_TOKEN }}
11 | issue-close-message: "@${issue.user.login} this issue was automatically closed because it did not follow the issue template. Please refer to the [guidelines for Contributing](https://github.com/alexanderjeurissen/ranger_devicons/blob/main/CONTRIBUTING.MD)"
12 | issue-pattern: ".*guidelines for Contributing.*"
13 |
--------------------------------------------------------------------------------
/.config/ranger/plugins/ranger_devicons/.github/workflows/stale.yml:
--------------------------------------------------------------------------------
1 | name: Mark stale issues and pull requests
2 |
3 | on:
4 | schedule:
5 | - cron: "30 1 * * *"
6 |
7 | jobs:
8 | stale:
9 |
10 | runs-on: ubuntu-latest
11 |
12 | steps:
13 | - uses: actions/stale@v3.0.17
14 | with:
15 | repo-token: ${{ secrets.GITHUB_TOKEN }}
16 | stale-issue-message: 'This issue has not seen any recent activity and therefore has been marked as `stale`. If the issue is no longer relevant, please attend the author so that the issue can be closed.'
17 | stale-pr-message: 'This pull-request has not seen any recent activity. If the proposed change is no longer desired, please attend the author so that the PR can be closed.'
18 | stale-issue-label: 'stale-issue'
19 | stale-pr-label: 'stale-pr'
20 |
--------------------------------------------------------------------------------
/.config/ranger/plugins/ranger_devicons/.gitignore:
--------------------------------------------------------------------------------
1 | *.pyc
2 | *.pyo
3 | .mypy_cache/
4 |
--------------------------------------------------------------------------------
/.config/ranger/plugins/ranger_devicons/CONTRIBUTING.MD:
--------------------------------------------------------------------------------
1 | # Contributing to Ranger Devicons
2 |
3 | Please take a moment to review this document in order to make the contribution
4 | process easy and effective for everyone involved.
5 |
6 | Following these guidelines helps to communicate that you respect the time of
7 | the developers managing and developing this open source project. In return,
8 | they should reciprocate that respect in addressing your issue or assessing
9 | patches and features.
10 |
11 | ## Using the issue tracker
12 |
13 | The issue tracker is the preferred channel for [bug reports](#bugs),
14 | [features requests](#features) and [submitting pull
15 | requests](#pull-requests), but please respect the following restrictions:
16 |
17 | * Please **do not** use the issue tracker for personal support requests (use the
18 | [Community Forum](https://github.com/alexanderjeurissen/ranger_devicons/discussions/categories/personal-support) to ask the Ranger Devicons Community for help).
19 |
20 | * Please **do not** derail or troll issues. Keep the discussion on topic and
21 | respect the opinions of others.
22 |
23 | * Please **adhere** to the issue template provided for bugs / feature requests and provide an answer to all posed questions.
24 |
25 |
26 | ## Bug reports
27 |
28 | A bug is a _demonstrable problem_ that is caused by the code in the repository.
29 | Good bug reports are extremely helpful - thank you!
30 |
31 | Guidelines for bug reports:
32 |
33 | 1. **Use the GitHub issue search** — check if the issue has already been
34 | reported.
35 |
36 | 2. **Check if the issue has been fixed** — try to reproduce it using the
37 | latest `main` branch in the repository.
38 |
39 | 3. **Isolate the problem** — make sure that the code in the repository is
40 | _definitely_ responsible for the issue.
41 |
42 | 4. **Adhere to the issue template** — Ensure your issue meets the [issue template](https://github.com/alexanderjeurissen/ranger_devicons/blob/main/.github/ISSUE_TEMPLATE/bug_report.md). Issues that do not match the template will be closed automatically.
43 |
44 | A good bug report shouldn't leave others needing to chase you up for more
45 | information. Please try to be as detailed as possible in your report.
46 |
47 |
48 | ## Feature requests
49 |
50 | Feature requests are welcome. But take a moment to find out whether your idea
51 | fits with the scope and aims of the project. It's up to *you* to make a strong
52 | case to convince the Ranger Devicons developers of the merits of this feature. Please
53 | provide as much detail and context as possible.
54 |
55 | Guidelines for feature requests:
56 |
57 | 1. **Adhere to the issue template** — Ensure your issue meets the [issue template](https://github.com/alexanderjeurissen/ranger_devicons/blob/main/.github/ISSUE_TEMPLATE/feature_request.md). Issues that do not match the template will be closed automatically.
58 |
59 |
60 | ## Pull requests
61 |
62 | Good pull requests - patches, improvements, new features - are a fantastic
63 | help. They should remain focused in scope and avoid containing unrelated
64 | commits.
65 |
66 | **Please ask first** before embarking on any significant pull request (e.g.
67 | implementing features, refactoring code), otherwise you risk spending a lot of
68 | time working on something that the developers might not want to merge into the
69 | project.
70 |
71 | Please adhere to the coding conventions used throughout the project (indentation,
72 | comments, etc.).
73 |
74 | Adhering to the following this process is the best way to get your work
75 | merged:
76 |
77 | 1. [Fork](http://help.github.com/fork-a-repo/) the repo, clone your fork,
78 | and configure the remotes:
79 |
80 | ```bash
81 | # Clone your fork of the repo into the current directory
82 | git clone https://github.com//
83 | # Navigate to the newly cloned directory
84 | cd
85 | # Assign the original repo to a remote called "upstream"
86 | git remote add upstream https://github.com//
87 | ```
88 |
89 | 2. If you cloned a while ago, get the latest changes from upstream:
90 |
91 | ```bash
92 | git checkout
93 | git pull upstream
94 | ```
95 |
96 | 3. Create a new topic branch (off the main project branch) to
97 | contain your feature, change, or fix:
98 |
99 | ```bash
100 | git checkout -b
101 | ```
102 |
103 | 4. Commit your changes in logical chunks. Please adhere to these [git commit
104 | message guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
105 | or your code is unlikely be merged into the main project. Use Git's
106 | [interactive rebase](https://help.github.com/articles/interactive-rebase)
107 | feature to tidy up your commits before making them public.
108 |
109 | 5. Locally merge (or rebase) the upstream main branch into your topic branch:
110 |
111 | ```bash
112 | git pull [--rebase] upstream
113 | ```
114 |
115 | 6. Push your topic branch up to your fork:
116 |
117 | ```bash
118 | git push origin
119 | ```
120 |
121 | 10. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/)
122 | with a clear title and description.
123 |
--------------------------------------------------------------------------------
/.config/ranger/plugins/ranger_devicons/LICENSE:
--------------------------------------------------------------------------------
1 | GNU GENERAL PUBLIC LICENSE
2 | Version 3, 29 June 2007
3 |
4 | Copyright (C) 2007 Free Software Foundation, Inc.
5 | Everyone is permitted to copy and distribute verbatim copies
6 | of this license document, but changing it is not allowed.
7 |
8 | Preamble
9 |
10 | The GNU General Public License is a free, copyleft license for
11 | software and other kinds of works.
12 |
13 | The licenses for most software and other practical works are designed
14 | to take away your freedom to share and change the works. By contrast,
15 | the GNU General Public License is intended to guarantee your freedom to
16 | share and change all versions of a program--to make sure it remains free
17 | software for all its users. We, the Free Software Foundation, use the
18 | GNU General Public License for most of our software; it applies also to
19 | any other work released this way by its authors. You can apply it to
20 | your programs, too.
21 |
22 | When we speak of free software, we are referring to freedom, not
23 | price. Our General Public Licenses are designed to make sure that you
24 | have the freedom to distribute copies of free software (and charge for
25 | them if you wish), that you receive source code or can get it if you
26 | want it, that you can change the software or use pieces of it in new
27 | free programs, and that you know you can do these things.
28 |
29 | To protect your rights, we need to prevent others from denying you
30 | these rights or asking you to surrender the rights. Therefore, you have
31 | certain responsibilities if you distribute copies of the software, or if
32 | you modify it: responsibilities to respect the freedom of others.
33 |
34 | For example, if you distribute copies of such a program, whether
35 | gratis or for a fee, you must pass on to the recipients the same
36 | freedoms that you received. You must make sure that they, too, receive
37 | or can get the source code. And you must show them these terms so they
38 | know their rights.
39 |
40 | Developers that use the GNU GPL protect your rights with two steps:
41 | (1) assert copyright on the software, and (2) offer you this License
42 | giving you legal permission to copy, distribute and/or modify it.
43 |
44 | For the developers' and authors' protection, the GPL clearly explains
45 | that there is no warranty for this free software. For both users' and
46 | authors' sake, the GPL requires that modified versions be marked as
47 | changed, so that their problems will not be attributed erroneously to
48 | authors of previous versions.
49 |
50 | Some devices are designed to deny users access to install or run
51 | modified versions of the software inside them, although the manufacturer
52 | can do so. This is fundamentally incompatible with the aim of
53 | protecting users' freedom to change the software. The systematic
54 | pattern of such abuse occurs in the area of products for individuals to
55 | use, which is precisely where it is most unacceptable. Therefore, we
56 | have designed this version of the GPL to prohibit the practice for those
57 | products. If such problems arise substantially in other domains, we
58 | stand ready to extend this provision to those domains in future versions
59 | of the GPL, as needed to protect the freedom of users.
60 |
61 | Finally, every program is threatened constantly by software patents.
62 | States should not allow patents to restrict development and use of
63 | software on general-purpose computers, but in those that do, we wish to
64 | avoid the special danger that patents applied to a free program could
65 | make it effectively proprietary. To prevent this, the GPL assures that
66 | patents cannot be used to render the program non-free.
67 |
68 | The precise terms and conditions for copying, distribution and
69 | modification follow.
70 |
71 | TERMS AND CONDITIONS
72 |
73 | 0. Definitions.
74 |
75 | "This License" refers to version 3 of the GNU General Public License.
76 |
77 | "Copyright" also means copyright-like laws that apply to other kinds of
78 | works, such as semiconductor masks.
79 |
80 | "The Program" refers to any copyrightable work licensed under this
81 | License. Each licensee is addressed as "you". "Licensees" and
82 | "recipients" may be individuals or organizations.
83 |
84 | To "modify" a work means to copy from or adapt all or part of the work
85 | in a fashion requiring copyright permission, other than the making of an
86 | exact copy. The resulting work is called a "modified version" of the
87 | earlier work or a work "based on" the earlier work.
88 |
89 | A "covered work" means either the unmodified Program or a work based
90 | on the Program.
91 |
92 | To "propagate" a work means to do anything with it that, without
93 | permission, would make you directly or secondarily liable for
94 | infringement under applicable copyright law, except executing it on a
95 | computer or modifying a private copy. Propagation includes copying,
96 | distribution (with or without modification), making available to the
97 | public, and in some countries other activities as well.
98 |
99 | To "convey" a work means any kind of propagation that enables other
100 | parties to make or receive copies. Mere interaction with a user through
101 | a computer network, with no transfer of a copy, is not conveying.
102 |
103 | An interactive user interface displays "Appropriate Legal Notices"
104 | to the extent that it includes a convenient and prominently visible
105 | feature that (1) displays an appropriate copyright notice, and (2)
106 | tells the user that there is no warranty for the work (except to the
107 | extent that warranties are provided), that licensees may convey the
108 | work under this License, and how to view a copy of this License. If
109 | the interface presents a list of user commands or options, such as a
110 | menu, a prominent item in the list meets this criterion.
111 |
112 | 1. Source Code.
113 |
114 | The "source code" for a work means the preferred form of the work
115 | for making modifications to it. "Object code" means any non-source
116 | form of a work.
117 |
118 | A "Standard Interface" means an interface that either is an official
119 | standard defined by a recognized standards body, or, in the case of
120 | interfaces specified for a particular programming language, one that
121 | is widely used among developers working in that language.
122 |
123 | The "System Libraries" of an executable work include anything, other
124 | than the work as a whole, that (a) is included in the normal form of
125 | packaging a Major Component, but which is not part of that Major
126 | Component, and (b) serves only to enable use of the work with that
127 | Major Component, or to implement a Standard Interface for which an
128 | implementation is available to the public in source code form. A
129 | "Major Component", in this context, means a major essential component
130 | (kernel, window system, and so on) of the specific operating system
131 | (if any) on which the executable work runs, or a compiler used to
132 | produce the work, or an object code interpreter used to run it.
133 |
134 | The "Corresponding Source" for a work in object code form means all
135 | the source code needed to generate, install, and (for an executable
136 | work) run the object code and to modify the work, including scripts to
137 | control those activities. However, it does not include the work's
138 | System Libraries, or general-purpose tools or generally available free
139 | programs which are used unmodified in performing those activities but
140 | which are not part of the work. For example, Corresponding Source
141 | includes interface definition files associated with source files for
142 | the work, and the source code for shared libraries and dynamically
143 | linked subprograms that the work is specifically designed to require,
144 | such as by intimate data communication or control flow between those
145 | subprograms and other parts of the work.
146 |
147 | The Corresponding Source need not include anything that users
148 | can regenerate automatically from other parts of the Corresponding
149 | Source.
150 |
151 | The Corresponding Source for a work in source code form is that
152 | same work.
153 |
154 | 2. Basic Permissions.
155 |
156 | All rights granted under this License are granted for the term of
157 | copyright on the Program, and are irrevocable provided the stated
158 | conditions are met. This License explicitly affirms your unlimited
159 | permission to run the unmodified Program. The output from running a
160 | covered work is covered by this License only if the output, given its
161 | content, constitutes a covered work. This License acknowledges your
162 | rights of fair use or other equivalent, as provided by copyright law.
163 |
164 | You may make, run and propagate covered works that you do not
165 | convey, without conditions so long as your license otherwise remains
166 | in force. You may convey covered works to others for the sole purpose
167 | of having them make modifications exclusively for you, or provide you
168 | with facilities for running those works, provided that you comply with
169 | the terms of this License in conveying all material for which you do
170 | not control copyright. Those thus making or running the covered works
171 | for you must do so exclusively on your behalf, under your direction
172 | and control, on terms that prohibit them from making any copies of
173 | your copyrighted material outside their relationship with you.
174 |
175 | Conveying under any other circumstances is permitted solely under
176 | the conditions stated below. Sublicensing is not allowed; section 10
177 | makes it unnecessary.
178 |
179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
180 |
181 | No covered work shall be deemed part of an effective technological
182 | measure under any applicable law fulfilling obligations under article
183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or
184 | similar laws prohibiting or restricting circumvention of such
185 | measures.
186 |
187 | When you convey a covered work, you waive any legal power to forbid
188 | circumvention of technological measures to the extent such circumvention
189 | is effected by exercising rights under this License with respect to
190 | the covered work, and you disclaim any intention to limit operation or
191 | modification of the work as a means of enforcing, against the work's
192 | users, your or third parties' legal rights to forbid circumvention of
193 | technological measures.
194 |
195 | 4. Conveying Verbatim Copies.
196 |
197 | You may convey verbatim copies of the Program's source code as you
198 | receive it, in any medium, provided that you conspicuously and
199 | appropriately publish on each copy an appropriate copyright notice;
200 | keep intact all notices stating that this License and any
201 | non-permissive terms added in accord with section 7 apply to the code;
202 | keep intact all notices of the absence of any warranty; and give all
203 | recipients a copy of this License along with the Program.
204 |
205 | You may charge any price or no price for each copy that you convey,
206 | and you may offer support or warranty protection for a fee.
207 |
208 | 5. Conveying Modified Source Versions.
209 |
210 | You may convey a work based on the Program, or the modifications to
211 | produce it from the Program, in the form of source code under the
212 | terms of section 4, provided that you also meet all of these conditions:
213 |
214 | a) The work must carry prominent notices stating that you modified
215 | it, and giving a relevant date.
216 |
217 | b) The work must carry prominent notices stating that it is
218 | released under this License and any conditions added under section
219 | 7. This requirement modifies the requirement in section 4 to
220 | "keep intact all notices".
221 |
222 | c) You must license the entire work, as a whole, under this
223 | License to anyone who comes into possession of a copy. This
224 | License will therefore apply, along with any applicable section 7
225 | additional terms, to the whole of the work, and all its parts,
226 | regardless of how they are packaged. This License gives no
227 | permission to license the work in any other way, but it does not
228 | invalidate such permission if you have separately received it.
229 |
230 | d) If the work has interactive user interfaces, each must display
231 | Appropriate Legal Notices; however, if the Program has interactive
232 | interfaces that do not display Appropriate Legal Notices, your
233 | work need not make them do so.
234 |
235 | A compilation of a covered work with other separate and independent
236 | works, which are not by their nature extensions of the covered work,
237 | and which are not combined with it such as to form a larger program,
238 | in or on a volume of a storage or distribution medium, is called an
239 | "aggregate" if the compilation and its resulting copyright are not
240 | used to limit the access or legal rights of the compilation's users
241 | beyond what the individual works permit. Inclusion of a covered work
242 | in an aggregate does not cause this License to apply to the other
243 | parts of the aggregate.
244 |
245 | 6. Conveying Non-Source Forms.
246 |
247 | You may convey a covered work in object code form under the terms
248 | of sections 4 and 5, provided that you also convey the
249 | machine-readable Corresponding Source under the terms of this License,
250 | in one of these ways:
251 |
252 | a) Convey the object code in, or embodied in, a physical product
253 | (including a physical distribution medium), accompanied by the
254 | Corresponding Source fixed on a durable physical medium
255 | customarily used for software interchange.
256 |
257 | b) Convey the object code in, or embodied in, a physical product
258 | (including a physical distribution medium), accompanied by a
259 | written offer, valid for at least three years and valid for as
260 | long as you offer spare parts or customer support for that product
261 | model, to give anyone who possesses the object code either (1) a
262 | copy of the Corresponding Source for all the software in the
263 | product that is covered by this License, on a durable physical
264 | medium customarily used for software interchange, for a price no
265 | more than your reasonable cost of physically performing this
266 | conveying of source, or (2) access to copy the
267 | Corresponding Source from a network server at no charge.
268 |
269 | c) Convey individual copies of the object code with a copy of the
270 | written offer to provide the Corresponding Source. This
271 | alternative is allowed only occasionally and noncommercially, and
272 | only if you received the object code with such an offer, in accord
273 | with subsection 6b.
274 |
275 | d) Convey the object code by offering access from a designated
276 | place (gratis or for a charge), and offer equivalent access to the
277 | Corresponding Source in the same way through the same place at no
278 | further charge. You need not require recipients to copy the
279 | Corresponding Source along with the object code. If the place to
280 | copy the object code is a network server, the Corresponding Source
281 | may be on a different server (operated by you or a third party)
282 | that supports equivalent copying facilities, provided you maintain
283 | clear directions next to the object code saying where to find the
284 | Corresponding Source. Regardless of what server hosts the
285 | Corresponding Source, you remain obligated to ensure that it is
286 | available for as long as needed to satisfy these requirements.
287 |
288 | e) Convey the object code using peer-to-peer transmission, provided
289 | you inform other peers where the object code and Corresponding
290 | Source of the work are being offered to the general public at no
291 | charge under subsection 6d.
292 |
293 | A separable portion of the object code, whose source code is excluded
294 | from the Corresponding Source as a System Library, need not be
295 | included in conveying the object code work.
296 |
297 | A "User Product" is either (1) a "consumer product", which means any
298 | tangible personal property which is normally used for personal, family,
299 | or household purposes, or (2) anything designed or sold for incorporation
300 | into a dwelling. In determining whether a product is a consumer product,
301 | doubtful cases shall be resolved in favor of coverage. For a particular
302 | product received by a particular user, "normally used" refers to a
303 | typical or common use of that class of product, regardless of the status
304 | of the particular user or of the way in which the particular user
305 | actually uses, or expects or is expected to use, the product. A product
306 | is a consumer product regardless of whether the product has substantial
307 | commercial, industrial or non-consumer uses, unless such uses represent
308 | the only significant mode of use of the product.
309 |
310 | "Installation Information" for a User Product means any methods,
311 | procedures, authorization keys, or other information required to install
312 | and execute modified versions of a covered work in that User Product from
313 | a modified version of its Corresponding Source. The information must
314 | suffice to ensure that the continued functioning of the modified object
315 | code is in no case prevented or interfered with solely because
316 | modification has been made.
317 |
318 | If you convey an object code work under this section in, or with, or
319 | specifically for use in, a User Product, and the conveying occurs as
320 | part of a transaction in which the right of possession and use of the
321 | User Product is transferred to the recipient in perpetuity or for a
322 | fixed term (regardless of how the transaction is characterized), the
323 | Corresponding Source conveyed under this section must be accompanied
324 | by the Installation Information. But this requirement does not apply
325 | if neither you nor any third party retains the ability to install
326 | modified object code on the User Product (for example, the work has
327 | been installed in ROM).
328 |
329 | The requirement to provide Installation Information does not include a
330 | requirement to continue to provide support service, warranty, or updates
331 | for a work that has been modified or installed by the recipient, or for
332 | the User Product in which it has been modified or installed. Access to a
333 | network may be denied when the modification itself materially and
334 | adversely affects the operation of the network or violates the rules and
335 | protocols for communication across the network.
336 |
337 | Corresponding Source conveyed, and Installation Information provided,
338 | in accord with this section must be in a format that is publicly
339 | documented (and with an implementation available to the public in
340 | source code form), and must require no special password or key for
341 | unpacking, reading or copying.
342 |
343 | 7. Additional Terms.
344 |
345 | "Additional permissions" are terms that supplement the terms of this
346 | License by making exceptions from one or more of its conditions.
347 | Additional permissions that are applicable to the entire Program shall
348 | be treated as though they were included in this License, to the extent
349 | that they are valid under applicable law. If additional permissions
350 | apply only to part of the Program, that part may be used separately
351 | under those permissions, but the entire Program remains governed by
352 | this License without regard to the additional permissions.
353 |
354 | When you convey a copy of a covered work, you may at your option
355 | remove any additional permissions from that copy, or from any part of
356 | it. (Additional permissions may be written to require their own
357 | removal in certain cases when you modify the work.) You may place
358 | additional permissions on material, added by you to a covered work,
359 | for which you have or can give appropriate copyright permission.
360 |
361 | Notwithstanding any other provision of this License, for material you
362 | add to a covered work, you may (if authorized by the copyright holders of
363 | that material) supplement the terms of this License with terms:
364 |
365 | a) Disclaiming warranty or limiting liability differently from the
366 | terms of sections 15 and 16 of this License; or
367 |
368 | b) Requiring preservation of specified reasonable legal notices or
369 | author attributions in that material or in the Appropriate Legal
370 | Notices displayed by works containing it; or
371 |
372 | c) Prohibiting misrepresentation of the origin of that material, or
373 | requiring that modified versions of such material be marked in
374 | reasonable ways as different from the original version; or
375 |
376 | d) Limiting the use for publicity purposes of names of licensors or
377 | authors of the material; or
378 |
379 | e) Declining to grant rights under trademark law for use of some
380 | trade names, trademarks, or service marks; or
381 |
382 | f) Requiring indemnification of licensors and authors of that
383 | material by anyone who conveys the material (or modified versions of
384 | it) with contractual assumptions of liability to the recipient, for
385 | any liability that these contractual assumptions directly impose on
386 | those licensors and authors.
387 |
388 | All other non-permissive additional terms are considered "further
389 | restrictions" within the meaning of section 10. If the Program as you
390 | received it, or any part of it, contains a notice stating that it is
391 | governed by this License along with a term that is a further
392 | restriction, you may remove that term. If a license document contains
393 | a further restriction but permits relicensing or conveying under this
394 | License, you may add to a covered work material governed by the terms
395 | of that license document, provided that the further restriction does
396 | not survive such relicensing or conveying.
397 |
398 | If you add terms to a covered work in accord with this section, you
399 | must place, in the relevant source files, a statement of the
400 | additional terms that apply to those files, or a notice indicating
401 | where to find the applicable terms.
402 |
403 | Additional terms, permissive or non-permissive, may be stated in the
404 | form of a separately written license, or stated as exceptions;
405 | the above requirements apply either way.
406 |
407 | 8. Termination.
408 |
409 | You may not propagate or modify a covered work except as expressly
410 | provided under this License. Any attempt otherwise to propagate or
411 | modify it is void, and will automatically terminate your rights under
412 | this License (including any patent licenses granted under the third
413 | paragraph of section 11).
414 |
415 | However, if you cease all violation of this License, then your
416 | license from a particular copyright holder is reinstated (a)
417 | provisionally, unless and until the copyright holder explicitly and
418 | finally terminates your license, and (b) permanently, if the copyright
419 | holder fails to notify you of the violation by some reasonable means
420 | prior to 60 days after the cessation.
421 |
422 | Moreover, your license from a particular copyright holder is
423 | reinstated permanently if the copyright holder notifies you of the
424 | violation by some reasonable means, this is the first time you have
425 | received notice of violation of this License (for any work) from that
426 | copyright holder, and you cure the violation prior to 30 days after
427 | your receipt of the notice.
428 |
429 | Termination of your rights under this section does not terminate the
430 | licenses of parties who have received copies or rights from you under
431 | this License. If your rights have been terminated and not permanently
432 | reinstated, you do not qualify to receive new licenses for the same
433 | material under section 10.
434 |
435 | 9. Acceptance Not Required for Having Copies.
436 |
437 | You are not required to accept this License in order to receive or
438 | run a copy of the Program. Ancillary propagation of a covered work
439 | occurring solely as a consequence of using peer-to-peer transmission
440 | to receive a copy likewise does not require acceptance. However,
441 | nothing other than this License grants you permission to propagate or
442 | modify any covered work. These actions infringe copyright if you do
443 | not accept this License. Therefore, by modifying or propagating a
444 | covered work, you indicate your acceptance of this License to do so.
445 |
446 | 10. Automatic Licensing of Downstream Recipients.
447 |
448 | Each time you convey a covered work, the recipient automatically
449 | receives a license from the original licensors, to run, modify and
450 | propagate that work, subject to this License. You are not responsible
451 | for enforcing compliance by third parties with this License.
452 |
453 | An "entity transaction" is a transaction transferring control of an
454 | organization, or substantially all assets of one, or subdividing an
455 | organization, or merging organizations. If propagation of a covered
456 | work results from an entity transaction, each party to that
457 | transaction who receives a copy of the work also receives whatever
458 | licenses to the work the party's predecessor in interest had or could
459 | give under the previous paragraph, plus a right to possession of the
460 | Corresponding Source of the work from the predecessor in interest, if
461 | the predecessor has it or can get it with reasonable efforts.
462 |
463 | You may not impose any further restrictions on the exercise of the
464 | rights granted or affirmed under this License. For example, you may
465 | not impose a license fee, royalty, or other charge for exercise of
466 | rights granted under this License, and you may not initiate litigation
467 | (including a cross-claim or counterclaim in a lawsuit) alleging that
468 | any patent claim is infringed by making, using, selling, offering for
469 | sale, or importing the Program or any portion of it.
470 |
471 | 11. Patents.
472 |
473 | A "contributor" is a copyright holder who authorizes use under this
474 | License of the Program or a work on which the Program is based. The
475 | work thus licensed is called the contributor's "contributor version".
476 |
477 | A contributor's "essential patent claims" are all patent claims
478 | owned or controlled by the contributor, whether already acquired or
479 | hereafter acquired, that would be infringed by some manner, permitted
480 | by this License, of making, using, or selling its contributor version,
481 | but do not include claims that would be infringed only as a
482 | consequence of further modification of the contributor version. For
483 | purposes of this definition, "control" includes the right to grant
484 | patent sublicenses in a manner consistent with the requirements of
485 | this License.
486 |
487 | Each contributor grants you a non-exclusive, worldwide, royalty-free
488 | patent license under the contributor's essential patent claims, to
489 | make, use, sell, offer for sale, import and otherwise run, modify and
490 | propagate the contents of its contributor version.
491 |
492 | In the following three paragraphs, a "patent license" is any express
493 | agreement or commitment, however denominated, not to enforce a patent
494 | (such as an express permission to practice a patent or covenant not to
495 | sue for patent infringement). To "grant" such a patent license to a
496 | party means to make such an agreement or commitment not to enforce a
497 | patent against the party.
498 |
499 | If you convey a covered work, knowingly relying on a patent license,
500 | and the Corresponding Source of the work is not available for anyone
501 | to copy, free of charge and under the terms of this License, through a
502 | publicly available network server or other readily accessible means,
503 | then you must either (1) cause the Corresponding Source to be so
504 | available, or (2) arrange to deprive yourself of the benefit of the
505 | patent license for this particular work, or (3) arrange, in a manner
506 | consistent with the requirements of this License, to extend the patent
507 | license to downstream recipients. "Knowingly relying" means you have
508 | actual knowledge that, but for the patent license, your conveying the
509 | covered work in a country, or your recipient's use of the covered work
510 | in a country, would infringe one or more identifiable patents in that
511 | country that you have reason to believe are valid.
512 |
513 | If, pursuant to or in connection with a single transaction or
514 | arrangement, you convey, or propagate by procuring conveyance of, a
515 | covered work, and grant a patent license to some of the parties
516 | receiving the covered work authorizing them to use, propagate, modify
517 | or convey a specific copy of the covered work, then the patent license
518 | you grant is automatically extended to all recipients of the covered
519 | work and works based on it.
520 |
521 | A patent license is "discriminatory" if it does not include within
522 | the scope of its coverage, prohibits the exercise of, or is
523 | conditioned on the non-exercise of one or more of the rights that are
524 | specifically granted under this License. You may not convey a covered
525 | work if you are a party to an arrangement with a third party that is
526 | in the business of distributing software, under which you make payment
527 | to the third party based on the extent of your activity of conveying
528 | the work, and under which the third party grants, to any of the
529 | parties who would receive the covered work from you, a discriminatory
530 | patent license (a) in connection with copies of the covered work
531 | conveyed by you (or copies made from those copies), or (b) primarily
532 | for and in connection with specific products or compilations that
533 | contain the covered work, unless you entered into that arrangement,
534 | or that patent license was granted, prior to 28 March 2007.
535 |
536 | Nothing in this License shall be construed as excluding or limiting
537 | any implied license or other defenses to infringement that may
538 | otherwise be available to you under applicable patent law.
539 |
540 | 12. No Surrender of Others' Freedom.
541 |
542 | If conditions are imposed on you (whether by court order, agreement or
543 | otherwise) that contradict the conditions of this License, they do not
544 | excuse you from the conditions of this License. If you cannot convey a
545 | covered work so as to satisfy simultaneously your obligations under this
546 | License and any other pertinent obligations, then as a consequence you may
547 | not convey it at all. For example, if you agree to terms that obligate you
548 | to collect a royalty for further conveying from those to whom you convey
549 | the Program, the only way you could satisfy both those terms and this
550 | License would be to refrain entirely from conveying the Program.
551 |
552 | 13. Use with the GNU Affero General Public License.
553 |
554 | Notwithstanding any other provision of this License, you have
555 | permission to link or combine any covered work with a work licensed
556 | under version 3 of the GNU Affero General Public License into a single
557 | combined work, and to convey the resulting work. The terms of this
558 | License will continue to apply to the part which is the covered work,
559 | but the special requirements of the GNU Affero General Public License,
560 | section 13, concerning interaction through a network will apply to the
561 | combination as such.
562 |
563 | 14. Revised Versions of this License.
564 |
565 | The Free Software Foundation may publish revised and/or new versions of
566 | the GNU General Public License from time to time. Such new versions will
567 | be similar in spirit to the present version, but may differ in detail to
568 | address new problems or concerns.
569 |
570 | Each version is given a distinguishing version number. If the
571 | Program specifies that a certain numbered version of the GNU General
572 | Public License "or any later version" applies to it, you have the
573 | option of following the terms and conditions either of that numbered
574 | version or of any later version published by the Free Software
575 | Foundation. If the Program does not specify a version number of the
576 | GNU General Public License, you may choose any version ever published
577 | by the Free Software Foundation.
578 |
579 | If the Program specifies that a proxy can decide which future
580 | versions of the GNU General Public License can be used, that proxy's
581 | public statement of acceptance of a version permanently authorizes you
582 | to choose that version for the Program.
583 |
584 | Later license versions may give you additional or different
585 | permissions. However, no additional obligations are imposed on any
586 | author or copyright holder as a result of your choosing to follow a
587 | later version.
588 |
589 | 15. Disclaimer of Warranty.
590 |
591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
599 |
600 | 16. Limitation of Liability.
601 |
602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
610 | SUCH DAMAGES.
611 |
612 | 17. Interpretation of Sections 15 and 16.
613 |
614 | If the disclaimer of warranty and limitation of liability provided
615 | above cannot be given local legal effect according to their terms,
616 | reviewing courts shall apply local law that most closely approximates
617 | an absolute waiver of all civil liability in connection with the
618 | Program, unless a warranty or assumption of liability accompanies a
619 | copy of the Program in return for a fee.
620 |
621 | END OF TERMS AND CONDITIONS
622 |
623 | How to Apply These Terms to Your New Programs
624 |
625 | If you develop a new program, and you want it to be of the greatest
626 | possible use to the public, the best way to achieve this is to make it
627 | free software which everyone can redistribute and change under these terms.
628 |
629 | To do so, attach the following notices to the program. It is safest
630 | to attach them to the start of each source file to most effectively
631 | state the exclusion of warranty; and each file should have at least
632 | the "copyright" line and a pointer to where the full notice is found.
633 |
634 |
635 | Copyright (C)
636 |
637 | This program is free software: you can redistribute it and/or modify
638 | it under the terms of the GNU General Public License as published by
639 | the Free Software Foundation, either version 3 of the License, or
640 | (at your option) any later version.
641 |
642 | This program is distributed in the hope that it will be useful,
643 | but WITHOUT ANY WARRANTY; without even the implied warranty of
644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
645 | GNU General Public License for more details.
646 |
647 | You should have received a copy of the GNU General Public License
648 | along with this program. If not, see .
649 |
650 | Also add information on how to contact you by electronic and paper mail.
651 |
652 | If the program does terminal interaction, make it output a short
653 | notice like this when it starts in an interactive mode:
654 |
655 | Copyright (C)
656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
657 | This is free software, and you are welcome to redistribute it
658 | under certain conditions; type `show c' for details.
659 |
660 | The hypothetical commands `show w' and `show c' should show the appropriate
661 | parts of the General Public License. Of course, your program's commands
662 | might be different; for a GUI interface, you would use an "about box".
663 |
664 | You should also get your employer (if you work as a programmer) or school,
665 | if any, to sign a "copyright disclaimer" for the program, if necessary.
666 | For more information on this, and how to apply and follow the GNU GPL, see
667 | .
668 |
669 | The GNU General Public License does not permit incorporating your program
670 | into proprietary programs. If your program is a subroutine library, you
671 | may consider it more useful to permit linking proprietary applications with
672 | the library. If this is what you want to do, use the GNU Lesser General
673 | Public License instead of this License. But first, please read
674 | .
675 |
--------------------------------------------------------------------------------
/.config/ranger/plugins/ranger_devicons/LICENSE_NERDFONT:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Ryan L McIntyre
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/.config/ranger/plugins/ranger_devicons/README.md:
--------------------------------------------------------------------------------
1 | # File icons for the Ranger file manager
2 |
3 | This plugin introduces a new linemode that prefixes file names with a file icon
4 |
5 | 
6 |
7 | ## Prerequisites
8 | This plugin uses glyphs from a patched NERDfont. So in order for this plugin to work you need to
9 | install a NERDfont and set it as the default font for your terminal.
10 |
11 | I personally use the Source Code Pro patched NERDfont(this is also the font displayed in the
12 | screenshot), this and other NERDfonts and the install instructions for these fonts can be found in
13 | the following repository: https://github.com/ryanoasis/nerd-fonts
14 |
15 | ## Install instructions
16 | Ranger has added support for loading directories in the plugins folder which makes it easier to install and keep plugins updated.
17 | To install, just clone the repo into the plugins folder:
18 | ```bash
19 | git clone https://github.com/alexanderjeurissen/ranger_devicons ~/.config/ranger/plugins/ranger_devicons
20 | ```
21 |
22 | Then execute the following `echo "default_linemode devicons" >> $HOME/.config/ranger/rc.conf` (or wherever your `rc.conf` is located).
23 |
24 | ## Configuration
25 | This plugin can be configured by setting environment variables (e.g. in your
26 | `~/.profile`). Currently, only one option is available:
27 |
28 | - `RANGER_DEVICONS_SEPARATOR` (default `" "`, i.e. a single space): The
29 | separator between icon and filename. Some terminals use the adjacent space to
30 | display a bigger icon, in which case this can be set to two spaces instead.
31 |
--------------------------------------------------------------------------------
/.config/ranger/plugins/ranger_devicons/__init__.py:
--------------------------------------------------------------------------------
1 | import os
2 | import ranger.api
3 | from ranger.core.linemode import LinemodeBase
4 | from .devicons import *
5 |
6 | SEPARATOR = os.getenv('RANGER_DEVICONS_SEPARATOR', ' ')
7 |
8 | @ranger.api.register_linemode
9 | class DevIconsLinemode(LinemodeBase):
10 | name = "devicons"
11 |
12 | uses_metadata = False
13 |
14 | def filetitle(self, file, metadata):
15 | return devicon(file) + SEPARATOR + file.relative_path
16 |
--------------------------------------------------------------------------------
/.config/ranger/plugins/ranger_devicons/devicons.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python
2 | # coding=UTF-8
3 | # These glyphs, and the mapping of file extensions to glyphs
4 | # has been copied from the vimscript code that is present in
5 | # https://github.com/ryanoasis/vim-devicons
6 |
7 | import re
8 | import os
9 |
10 |
11 | # Get the XDG_USER_DIRS directory names from environment variables
12 | xdgs_dirs = {
13 | os.path.basename(os.getenv(key).rstrip('/')): icon
14 | for key, icon in (
15 | ('XDG_DOCUMENTS_DIR', ''),
16 | ('XDG_DOWNLOAD_DIR', ''),
17 | ('XDG_CONFIG_DIR', ''),
18 | ('XDG_MUSIC_DIR', ''),
19 | ('XDG_PICTURES_DIR', ''),
20 | ('XDG_PUBLICSHARE_DIR', ''),
21 | ('XDG_TEMPLATES_DIR', ''),
22 | ('XDG_VIDEOS_DIR', ''),
23 | )
24 | if os.getenv(key)
25 | }
26 |
27 |
28 | # all those glyphs will show as weird squares if you don't have the correct patched font
29 | # My advice is to use NerdFonts which can be found here:
30 | # https://github.com/ryanoasis/nerd-fonts
31 | file_node_extensions = {
32 | '7z' : '',
33 | 'a' : '',
34 | 'ai' : '',
35 | 'apk' : '',
36 | 'asm' : '',
37 | 'asp' : '',
38 | 'aup' : '',
39 | 'avi' : '',
40 | 'awk' : '',
41 | 'bash' : '',
42 | 'bat' : '',
43 | 'bmp' : '',
44 | 'bz2' : '',
45 | 'c' : '',
46 | 'c++' : '',
47 | 'cab' : '',
48 | 'cbr' : '',
49 | 'cbz' : '',
50 | 'cc' : '',
51 | 'class' : '',
52 | 'clj' : '',
53 | 'cljc' : '',
54 | 'cljs' : '',
55 | 'cmake' : '',
56 | 'coffee' : '',
57 | 'conf' : '',
58 | 'cp' : '',
59 | 'cpio' : '',
60 | 'cpp' : '',
61 | 'cs' : '',
62 | 'csh' : '',
63 | 'css' : '',
64 | 'cue' : '',
65 | 'cvs' : '',
66 | 'cxx' : '',
67 | 'd' : '',
68 | 'dart' : '',
69 | 'db' : '',
70 | 'deb' : '',
71 | 'diff' : '',
72 | 'dll' : '',
73 | 'wps' : '',
74 | 'wpt' : '',
75 | 'doc' : '',
76 | 'docx' : '',
77 | 'docm' : '',
78 | 'dotx' : '',
79 | 'dotm' : '',
80 | 'dump' : '',
81 | 'edn' : '',
82 | 'eex' : '',
83 | 'efi' : '',
84 | 'ejs' : '',
85 | 'elf' : '',
86 | 'elm' : '',
87 | 'epub' : '',
88 | 'erl' : '',
89 | 'ex' : '',
90 | 'exe' : '',
91 | 'exs' : '',
92 | 'f#' : '',
93 | 'fifo' : 'ﳣ',
94 | 'fish' : '',
95 | 'flac' : '',
96 | 'flv' : '',
97 | 'fs' : '',
98 | 'fsi' : '',
99 | 'fsscript' : '',
100 | 'fsx' : '',
101 | 'gem' : '',
102 | 'gemspec' : '',
103 | 'gif' : '',
104 | 'go' : '',
105 | 'gz' : '',
106 | 'gzip' : '',
107 | 'h' : '',
108 | 'haml' : '',
109 | 'hbs' : '',
110 | 'hh' : '',
111 | 'hpp' : '',
112 | 'hrl' : '',
113 | 'hs' : '',
114 | 'htaccess' : '',
115 | 'htm' : '',
116 | 'html' : '',
117 | 'htpasswd' : '',
118 | 'hxx' : '',
119 | 'ico' : '',
120 | 'img' : '',
121 | 'ini' : '',
122 | 'iso' : '',
123 | 'jar' : '',
124 | 'java' : '',
125 | 'jl' : '',
126 | 'jpeg' : '',
127 | 'jpg' : '',
128 | 'js' : '',
129 | 'json' : '',
130 | 'jsx' : '',
131 | 'key' : '',
132 | 'ksh' : '',
133 | 'leex' : '',
134 | 'less' : '',
135 | 'lha' : '',
136 | 'lhs' : '',
137 | 'log' : '',
138 | 'lua' : '',
139 | 'lzh' : '',
140 | 'lzma' : '',
141 | 'm4a' : '',
142 | 'm4v' : '',
143 | 'markdown' : '',
144 | 'md' : '',
145 | 'mdx' : '',
146 | 'mjs' : '',
147 | 'mkv' : '',
148 | 'ml' : 'λ',
149 | 'mli' : 'λ',
150 | 'mov' : '',
151 | 'mp3' : '',
152 | 'mp4' : '',
153 | 'mpeg' : '',
154 | 'mpg' : '',
155 | 'msi' : '',
156 | 'mustache' : '',
157 | 'nix' : '',
158 | 'o' : '',
159 | 'ogg' : '',
160 | 'part' : '',
161 | 'pdf' : '',
162 | 'php' : '',
163 | 'pl' : '',
164 | 'pm' : '',
165 | 'png' : '',
166 | 'pp' : '',
167 | 'dps' : '',
168 | 'dpt' : '',
169 | 'ppt' : '',
170 | 'pptx' : '',
171 | 'pptm' : '',
172 | 'pot' : '',
173 | 'potx' : '',
174 | 'potm' : '',
175 | 'pps' : '',
176 | 'ppsx' : '',
177 | 'ppsm' : '',
178 | 'ps1' : '',
179 | 'psb' : '',
180 | 'psd' : '',
181 | 'pub' : '',
182 | 'py' : '',
183 | 'pyc' : '',
184 | 'pyd' : '',
185 | 'pyo' : '',
186 | 'r' : 'ﳒ',
187 | 'rake' : '',
188 | 'rar' : '',
189 | 'rb' : '',
190 | 'rc' : '',
191 | 'rlib' : '',
192 | 'rmd' : '',
193 | 'rom' : '',
194 | 'rpm' : '',
195 | 'rproj' : '鉶',
196 | 'rs' : '',
197 | 'rss' : '',
198 | 'rtf' : '',
199 | 's' : '',
200 | 'sass' : '',
201 | 'scala' : '',
202 | 'scss' : '',
203 | 'sh' : '',
204 | 'slim' : '',
205 | 'sln' : '',
206 | 'so' : '',
207 | 'sql' : '',
208 | 'styl' : '',
209 | 'suo' : '',
210 | 'swift' : '',
211 | 't' : '',
212 | 'tar' : '',
213 | 'tex' : 'ﭨ',
214 | 'tgz' : '',
215 | 'toml' : '',
216 | 'torrent' : '',
217 | 'ts' : '',
218 | 'tsx' : '',
219 | 'twig' : '',
220 | 'vim' : '',
221 | 'vimrc' : '',
222 | 'vue' : '﵂',
223 | 'wav' : '',
224 | 'webm' : '',
225 | 'webmanifest' : '',
226 | 'webp' : '',
227 | 'xbps' : '',
228 | 'xcplayground' : '',
229 | 'xhtml' : '',
230 | 'et' : '',
231 | 'ett' : '',
232 | 'xls' : '',
233 | 'xlt' : '',
234 | 'xlsx' : '',
235 | 'xlsm' : '',
236 | 'xlsb' : '',
237 | 'xltx' : '',
238 | 'xltm' : '',
239 | 'xla' : '',
240 | 'xlam' : '',
241 | 'xml' : '',
242 | 'xul' : '',
243 | 'xz' : '',
244 | 'yaml' : '',
245 | 'yml' : '',
246 | 'zip' : '',
247 | 'zsh' : '',
248 | }
249 |
250 |
251 | dir_node_exact_matches = {
252 | # English
253 | '.git' : '',
254 | 'Desktop' : '',
255 | 'Documents' : '',
256 | 'Downloads' : '',
257 | 'Dotfiles' : '',
258 | 'Dropbox' : '',
259 | 'Music' : '',
260 | 'Pictures' : '',
261 | 'Public' : '',
262 | 'Templates' : '',
263 | 'Videos' : '',
264 | 'anaconda3' : '',
265 | 'go' : '',
266 | 'workspace' : '',
267 | 'OneDrive' : '',
268 | # Spanish
269 | 'Escritorio' : '',
270 | 'Documentos' : '',
271 | 'Descargas' : '',
272 | 'Música' : '',
273 | 'Imágenes' : '',
274 | 'Público' : '',
275 | 'Plantillas' : '',
276 | 'Vídeos' : '',
277 | # French
278 | 'Bureau' : '',
279 | 'Documents' : '',
280 | 'Images' : '',
281 | 'Musique' : '',
282 | 'Publique' : '',
283 | 'Téléchargements' : '',
284 | 'Vidéos' : '',
285 | # Portuguese
286 | 'Documentos' : '',
287 | 'Imagens' : '',
288 | 'Modelos' : '',
289 | 'Música' : '',
290 | 'Público' : '',
291 | 'Vídeos' : '',
292 | 'Área de trabalho' : '',
293 | # Italian
294 | 'Documenti' : '',
295 | 'Immagini' : '',
296 | 'Modelli' : '',
297 | 'Musica' : '',
298 | 'Pubblici' : '',
299 | 'Scaricati' : '',
300 | 'Scrivania' : '',
301 | 'Video' : '',
302 | # German
303 | 'Bilder' : '',
304 | 'Dokumente' : '',
305 | 'Musik' : '',
306 | 'Schreibtisch' : '',
307 | 'Vorlagen' : '',
308 | 'Öffentlich' : '',
309 | # Hungarian
310 | 'Dokumentumok' : '',
311 | 'Képek' : '',
312 | 'Modelli' : '',
313 | 'Zene' : '',
314 | 'Letöltések' : '',
315 | 'Számítógép' : '',
316 | 'Videók' : '',
317 | # Chinese(Simple)
318 | '桌面' : '',
319 | '文档' : '',
320 | '下载' : '',
321 | '音乐' : '',
322 | '图片' : '',
323 | '公共的' : '',
324 | '公共' : '',
325 | '模板' : '',
326 | '视频' : '',
327 | # Chinese(Traditional)
328 | '桌面' : '',
329 | '文檔' : '',
330 | '下載' : '',
331 | '音樂' : '',
332 | '圖片' : '',
333 | '公共的' : '',
334 | '公共' : '',
335 | '模板' : '',
336 | '視頻' : '',
337 | }
338 |
339 | # Python 2.x-3.4 don't support unpacking syntex `{**dict}`
340 | # XDG_USER_DIRS
341 | dir_node_exact_matches.update(xdgs_dirs)
342 |
343 |
344 | file_node_exact_matches = {
345 | '.bash_aliases' : '',
346 | '.bash_history' : '',
347 | '.bash_logout' : '',
348 | '.bash_profile' : '',
349 | '.bashprofile' : '',
350 | '.bashrc' : '',
351 | '.dmrc' : '',
352 | '.DS_Store' : '',
353 | '.fasd' : '',
354 | '.fehbg' : '',
355 | '.gitattributes' : '',
356 | '.gitconfig' : '',
357 | '.gitignore' : '',
358 | '.gitlab-ci.yml' : '',
359 | '.gvimrc' : '',
360 | '.inputrc' : '',
361 | '.jack-settings' : '',
362 | '.mime.types' : '',
363 | '.ncmpcpp' : '',
364 | '.nvidia-settings-rc' : '',
365 | '.pam_environment' : '',
366 | '.profile' : '',
367 | '.recently-used' : '',
368 | '.selected_editor' : '',
369 | '.vim' : '',
370 | '.viminfo' : '',
371 | '.vimrc' : '',
372 | '.Xauthority' : '',
373 | '.Xdefaults' : '',
374 | '.xinitrc' : '',
375 | '.xinputrc' : '',
376 | '.Xresources' : '',
377 | '.zshrc' : '',
378 | '_gvimrc' : '',
379 | '_vimrc' : '',
380 | 'a.out' : '',
381 | 'authorized_keys' : '',
382 | 'bspwmrc' : '',
383 | 'cmakelists.txt' : '',
384 | 'config' : '',
385 | 'config.ac' : '',
386 | 'config.m4' : '',
387 | 'config.mk' : '',
388 | 'config.ru' : '',
389 | 'configure' : '',
390 | 'docker-compose.yml' : '',
391 | 'dockerfile' : '',
392 | 'Dockerfile' : '',
393 | 'dropbox' : '',
394 | 'exact-match-case-sensitive-1.txt' : 'X1',
395 | 'exact-match-case-sensitive-2' : 'X2',
396 | 'favicon.ico' : '',
397 | 'gemfile' : '',
398 | 'gruntfile.coffee' : '',
399 | 'gruntfile.js' : '',
400 | 'gruntfile.ls' : '',
401 | 'gulpfile.coffee' : '',
402 | 'gulpfile.js' : '',
403 | 'gulpfile.ls' : '',
404 | 'ini' : '',
405 | 'known_hosts' : '',
406 | 'ledger' : '',
407 | 'license' : '',
408 | 'LICENSE' : '',
409 | 'LICENSE.md' : '',
410 | 'LICENSE.txt' : '',
411 | 'Makefile' : '',
412 | 'makefile' : '',
413 | 'Makefile.ac' : '',
414 | 'Makefile.in' : '',
415 | 'mimeapps.list' : '',
416 | 'mix.lock' : '',
417 | 'node_modules' : '',
418 | 'package-lock.json' : '',
419 | 'package.json' : '',
420 | 'playlists' : '',
421 | 'procfile' : '',
422 | 'Rakefile' : '',
423 | 'rakefile' : '',
424 | 'react.jsx' : '',
425 | 'README' : '',
426 | 'README.markdown' : '',
427 | 'README.md' : '',
428 | 'README.rst' : '',
429 | 'README.txt' : '',
430 | 'sxhkdrc' : '',
431 | 'user-dirs.dirs' : '',
432 | 'webpack.config.js' : '',
433 | }
434 |
435 |
436 | def devicon(file):
437 | if file.is_directory:
438 | return dir_node_exact_matches.get(file.relative_path, '')
439 | return file_node_exact_matches.get(os.path.basename(file.relative_path),
440 | file_node_extensions.get(file.extension, ''))
441 |
--------------------------------------------------------------------------------
/.config/ranger/plugins/ranger_devicons/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/motolla/dotfiles/80fc245a15c532505178d20acbfc2b89fc6dc0e4/.config/ranger/plugins/ranger_devicons/screenshot.png
--------------------------------------------------------------------------------
/.config/ranger/rc.conf:
--------------------------------------------------------------------------------
1 | # ===================================================================
2 | # This file contains the default startup commands for ranger.
3 | # To change them, it is recommended to create either /etc/ranger/rc.conf
4 | # (system-wide) or ~/.config/ranger/rc.conf (per user) and add your custom
5 | # commands there.
6 | #
7 | # If you copy this whole file there, you may want to set the environment
8 | # variable RANGER_LOAD_DEFAULT_RC to FALSE to avoid loading it twice.
9 | #
10 | # The purpose of this file is mainly to define keybindings and settings.
11 | # For running more complex python code, please create a plugin in "plugins/" or
12 | # a command in "commands.py".
13 | #
14 | # Each line is a command that will be run before the user interface
15 | # is initialized. As a result, you can not use commands which rely
16 | # on the UI such as :delete or :mark.
17 | # ===================================================================
18 |
19 | # ===================================================================
20 | # == Options
21 | # ===================================================================
22 |
23 | # Which viewmode should be used? Possible values are:
24 | # miller: Use miller columns which show multiple levels of the hierarchy
25 | # multipane: Midnight-commander like multipane view showing all tabs next
26 | # to each other
27 | set viewmode miller
28 | #set viewmode multipane
29 |
30 | # How many columns are there, and what are their relative widths?
31 | set column_ratios 1,3,4
32 |
33 | # Which files should be hidden? (regular expression)
34 | set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$
35 |
36 | # Show hidden files? You can toggle this by typing 'zh'
37 | set show_hidden true
38 |
39 | # Ask for a confirmation when running the "delete" command?
40 | # Valid values are "always", "never", "multiple" (default)
41 | # With "multiple", ranger will ask only if you delete multiple files at once.
42 | set confirm_on_delete multiple
43 |
44 | # Use non-default path for file preview script?
45 | # ranger ships with scope.sh, a script that calls external programs (see
46 | # README.md for dependencies) to preview images, archives, etc.
47 | #set preview_script ~/.config/ranger/scope.sh
48 |
49 | # Use the external preview script or display simple plain text or image previews?
50 | set use_preview_script true
51 |
52 | # Automatically count files in the directory, even before entering them?
53 | set automatically_count_files true
54 |
55 | # Open all images in this directory when running certain image viewers
56 | # like feh or sxiv? You can still open selected files by marking them.
57 | set open_all_images true
58 |
59 | # Be aware of version control systems and display information.
60 | set vcs_aware false
61 |
62 | # State of the four backends git, hg, bzr, svn. The possible states are
63 | # disabled, local (only show local info), enabled (show local and remote
64 | # information).
65 | set vcs_backend_git enabled
66 | set vcs_backend_hg disabled
67 | set vcs_backend_bzr disabled
68 | set vcs_backend_svn disabled
69 |
70 | # Truncate the long commit messages to this length when shown in the statusbar.
71 | set vcs_msg_length 50
72 |
73 | # Use one of the supported image preview protocols
74 | set preview_images true
75 | default_linemode devicons
76 | # Set the preview image method. Supported methods:
77 | #
78 | # * w3m (default):
79 | # Preview images in full color with the external command "w3mimgpreview"?
80 | # This requires the console web browser "w3m" and a supported terminal.
81 | # It has been successfully tested with "xterm" and "urxvt" without tmux.
82 | #
83 | # * iterm2:
84 | # Preview images in full color using iTerm2 image previews
85 | # (http://iterm2.com/images.html). This requires using iTerm2 compiled
86 | # with image preview support.
87 | #
88 | # This feature relies on the dimensions of the terminal's font. By default, a
89 | # width of 8 and height of 11 are used. To use other values, set the options
90 | # iterm2_font_width and iterm2_font_height to the desired values.
91 | #
92 | # * terminology:
93 | # Previews images in full color in the terminology terminal emulator.
94 | # Supports a wide variety of formats, even vector graphics like svg.
95 | #
96 | # * urxvt:
97 | # Preview images in full color using urxvt image backgrounds. This
98 | # requires using urxvt compiled with pixbuf support.
99 | #
100 | # * urxvt-full:
101 | # The same as urxvt but utilizing not only the preview pane but the
102 | # whole terminal window.
103 | #
104 | # * kitty:
105 | # Preview images in full color using kitty image protocol.
106 | # Requires python PIL or pillow library.
107 | # If ranger does not share the local filesystem with kitty
108 | # the transfer method is changed to encode the whole image;
109 | # while slower, this allows remote previews,
110 | # for example during an ssh session.
111 | # Tmux is unsupported.
112 | #
113 | # * ueberzug:
114 | # Preview images in full color with the external command "ueberzug".
115 | # Images are shown by using a child window.
116 | # Only for users who run X11 in GNU/Linux.
117 | set preview_images_method ueberzug
118 |
119 | # Delay in seconds before displaying an image with the w3m method.
120 | # Increase it in case of experiencing display corruption.
121 | set w3m_delay 0.02
122 |
123 | # Manually adjust the w3mimg offset when using a terminal which needs this
124 | set w3m_offset 0
125 |
126 | # Default iTerm2 font size (see: preview_images_method: iterm2)
127 | set iterm2_font_width 8
128 | set iterm2_font_height 11
129 |
130 | # Use a unicode "..." character to mark cut-off filenames?
131 | set unicode_ellipsis false
132 |
133 | # BIDI support - try to properly display file names in RTL languages (Hebrew, Arabic).
134 | # Requires the python-bidi pip package
135 | set bidi_support false
136 |
137 | # Show dotfiles in the bookmark preview box?
138 | set show_hidden_bookmarks true
139 |
140 | # Which colorscheme to use? These colorschemes are available by default:
141 | # default, jungle, snow, solarized
142 | set colorscheme default
143 |
144 | # Preview files on the rightmost column?
145 | # And collapse (shrink) the last column if there is nothing to preview?
146 | set preview_files true
147 | set preview_directories true
148 | set collapse_preview true
149 |
150 | # Wrap long lines in plain text previews?
151 | set wrap_plaintext_previews false
152 |
153 | # Save the console history on exit?
154 | set save_console_history true
155 |
156 | # Draw the status bar on top of the browser window (default: bottom)
157 | set status_bar_on_top false
158 |
159 | # Draw a progress bar in the status bar which displays the average state of all
160 | # currently running tasks which support progress bars?
161 | set draw_progress_bar_in_status_bar true
162 |
163 | # Draw borders around columns? (separators, outline, both, or none)
164 | # Separators are vertical lines between columns.
165 | # Outline draws a box around all the columns.
166 | # Both combines the two.
167 | set draw_borders both
168 |
169 | # Display the directory name in tabs?
170 | set dirname_in_tabs true
171 |
172 | # Enable the mouse support?
173 | set mouse_enabled true
174 |
175 | # Display the file size in the main column or status bar?
176 | set display_size_in_main_column true
177 | set display_size_in_status_bar true
178 |
179 | # Display the free disk space in the status bar?
180 | set display_free_space_in_status_bar true
181 |
182 | # Display files tags in all columns or only in main column?
183 | set display_tags_in_all_columns true
184 |
185 | # Set a title for the window? Updates both `WM_NAME` and `WM_ICON_NAME`
186 | set update_title false
187 |
188 | # Set the tmux/screen window-name to "ranger"?
189 | set update_tmux_title true
190 |
191 | # Shorten the title if it gets long? The number defines how many
192 | # directories are displayed at once, 0 turns off this feature.
193 | set shorten_title 3
194 |
195 | # Show hostname in titlebar?
196 | set hostname_in_titlebar true
197 |
198 | # Abbreviate $HOME with ~ in the titlebar (first line) of ranger?
199 | set tilde_in_titlebar true
200 |
201 | # How many directory-changes or console-commands should be kept in history?
202 | set max_history_size 20
203 | set max_console_history_size 50
204 |
205 | # Try to keep so much space between the top/bottom border when scrolling:
206 | set scroll_offset 8
207 |
208 | # Flush the input after each key hit? (Noticeable when ranger lags)
209 | set flushinput true
210 |
211 | # Padding on the right when there's no preview?
212 | # This allows you to click into the space to run the file.
213 | set padding_right true
214 |
215 | # Save bookmarks (used with mX and `X) instantly?
216 | # This helps to synchronize bookmarks between multiple ranger
217 | # instances but leads to *slight* performance loss.
218 | # When false, bookmarks are saved when ranger is exited.
219 | set autosave_bookmarks true
220 |
221 | # Save the "`" bookmark to disk. This can be used to switch to the last
222 | # directory by typing "``".
223 | set save_backtick_bookmark true
224 |
225 | # You can display the "real" cumulative size of directories by using the
226 | # command :get_cumulative_size or typing "dc". The size is expensive to
227 | # calculate and will not be updated automatically. You can choose
228 | # to update it automatically though by turning on this option:
229 | set autoupdate_cumulative_size false
230 |
231 | # Turning this on makes sense for screen readers:
232 | set show_cursor false
233 |
234 | # One of: size, natural, basename, atime, ctime, mtime, type, random
235 | set sort natural
236 |
237 | # Additional sorting options
238 | set sort_reverse false
239 | set sort_case_insensitive true
240 | set sort_directories_first true
241 | set sort_unicode false
242 |
243 | # Enable this if key combinations with the Alt Key don't work for you.
244 | # (Especially on xterm)
245 | set xterm_alt_key false
246 |
247 | # Whether to include bookmarks in cd command
248 | set cd_bookmarks true
249 |
250 | # Changes case sensitivity for the cd command tab completion
251 | set cd_tab_case sensitive
252 |
253 | # Use fuzzy tab completion with the "cd" command. For example,
254 | # ":cd /u/lo/b" expands to ":cd /usr/local/bin".
255 | set cd_tab_fuzzy false
256 |
257 | # Avoid previewing files larger than this size, in bytes. Use a value of 0 to
258 | # disable this feature.
259 | set preview_max_size 0
260 |
261 | # The key hint lists up to this size have their sublists expanded.
262 | # Otherwise the submaps are replaced with "...".
263 | set hint_collapse_threshold 10
264 |
265 | # Add the highlighted file to the path in the titlebar
266 | set show_selection_in_titlebar true
267 |
268 | # The delay that ranger idly waits for user input, in milliseconds, with a
269 | # resolution of 100ms. Lower delay reduces lag between directory updates but
270 | # increases CPU load.
271 | set idle_delay 2000
272 |
273 | # When the metadata manager module looks for metadata, should it only look for
274 | # a ".metadata.json" file in the current directory, or do a deep search and
275 | # check all directories above the current one as well?
276 | set metadata_deep_search false
277 |
278 | # Clear all existing filters when leaving a directory
279 | set clear_filters_on_dir_change false
280 |
281 | # Disable displaying line numbers in main column.
282 | # Possible values: false, absolute, relative.
283 | set line_numbers false
284 |
285 | # When line_numbers=relative show the absolute line number in the
286 | # current line.
287 | set relative_current_zero false
288 |
289 | # Start line numbers from 1 instead of 0
290 | set one_indexed false
291 |
292 | # Save tabs on exit
293 | set save_tabs_on_exit false
294 |
295 | # Enable scroll wrapping - moving down while on the last item will wrap around to
296 | # the top and vice versa.
297 | set wrap_scroll false
298 |
299 | # Set the global_inode_type_filter to nothing. Possible options: d, f and l for
300 | # directories, files and symlinks respectively.
301 | set global_inode_type_filter
302 |
303 | # This setting allows to freeze the list of files to save I/O bandwidth. It
304 | # should be 'false' during start-up, but you can toggle it by pressing F.
305 | set freeze_files false
306 |
307 | # Print file sizes in bytes instead of the default human-readable format.
308 | set size_in_bytes false
309 |
310 | # Warn at startup if RANGER_LEVEL env var is greater than 0, in other words
311 | # give a warning when you nest ranger in a subshell started by ranger.
312 | # Special value "error" makes the warning more visible.
313 | set nested_ranger_warning true
314 |
315 | # ===================================================================
316 | # == Local Options
317 | # ===================================================================
318 | # You can set local options that only affect a single directory.
319 |
320 | # Examples:
321 | # setlocal path=~/downloads sort mtime
322 |
323 | # ===================================================================
324 | # == Command Aliases in the Console
325 | # ===================================================================
326 |
327 | alias e edit
328 | alias q quit
329 | alias q! quit!
330 | alias qa quitall
331 | alias qa! quitall!
332 | alias qall quitall
333 | alias qall! quitall!
334 | alias setl setlocal
335 |
336 | alias filter scout -prts
337 | alias find scout -aets
338 | alias mark scout -mr
339 | alias unmark scout -Mr
340 | alias search scout -rs
341 | alias search_inc scout -rts
342 | alias travel scout -aefklst
343 |
344 | # ===================================================================
345 | # == Define keys for the browser
346 | # ===================================================================
347 |
348 | # Basic
349 | map Q quitall
350 | map q quit
351 | copymap q ZZ ZQ
352 |
353 | map R reload_cwd
354 | map F set freeze_files!
355 | map reset
356 | map redraw_window
357 | map abort
358 | map change_mode normal
359 | map ~ set viewmode!
360 |
361 | map i display_file
362 | map scroll_preview 1
363 | map scroll_preview -1
364 | map ? help
365 | map W display_log
366 | map w taskview_open
367 | map S shell $SHELL
368 |
369 | map : console
370 | map ; console
371 | map ! console shell%space
372 | map @ console -p6 shell %%s
373 | map # console shell -p%space
374 | map s console shell%space
375 | map r chain draw_possible_programs; console open_with%space
376 | map f console find%space
377 | map cd console cd%space
378 |
379 | map chain console; eval fm.ui.console.history_move(-1)
380 |
381 | # Change the line mode
382 | map Mf linemode filename
383 | map Mi linemode fileinfo
384 | map Mm linemode mtime
385 | map Mh linemode humanreadablemtime
386 | map Mp linemode permissions
387 | map Ms linemode sizemtime
388 | map MH linemode sizehumanreadablemtime
389 | map Mt linemode metatitle
390 |
391 | # Tagging / Marking
392 | map t tag_toggle
393 | map ut tag_remove
394 | map " tag_toggle tag=%any
395 | map mark_files toggle=True
396 | map v mark_files all=True toggle=True
397 | map uv mark_files all=True val=False
398 | map V toggle_visual_mode
399 | map uV toggle_visual_mode reverse=True
400 |
401 | # For the nostalgics: Midnight Commander bindings
402 | map help
403 | map rename_append
404 | map display_file
405 | map edit
406 | map copy
407 | map cut
408 | map console mkdir%space
409 | map console delete
410 | #map console trash
411 | map exit
412 |
413 | # In case you work on a keyboard with dvorak layout
414 | map move up=1
415 | map move down=1
416 | map move left=1
417 | map move right=1
418 | map move to=0
419 | map move to=-1
420 | map move down=1 pages=True
421 | map move up=1 pages=True
422 | map move right=1
423 | #map console delete
424 | map console touch%space
425 |
426 | # VIM-like
427 | copymap k
428 | copymap j
429 | copymap h
430 | copymap l
431 | copymap gg
432 | copymap G
433 | copymap
434 | copymap
435 |
436 | map J move down=0.5 pages=True
437 | map K move up=0.5 pages=True
438 | copymap J
439 | copymap K
440 |
441 | # Jumping around
442 | map H history_go -1
443 | map L history_go 1
444 | map ] move_parent 1
445 | map [ move_parent -1
446 | map } traverse
447 | map { traverse_backwards
448 | map ) jump_non
449 |
450 | map gh cd ~
451 | map ge cd /etc
452 | map gu cd /usr
453 | map gd cd /dev
454 | map gl cd -r .
455 | map gL cd -r %f
456 | map go cd /opt
457 | map gv cd /var
458 | map gm cd /media
459 | map gi eval fm.cd('/run/media/' + os.getenv('USER'))
460 | map gM cd /mnt
461 | map gs cd /srv
462 | map gp cd /tmp
463 | map gr cd /
464 | map gR eval fm.cd(ranger.RANGERDIR)
465 | map g/ cd /
466 | map g? cd /usr/share/doc/ranger
467 |
468 | # External Programs
469 | map E edit
470 | map du shell -p du --max-depth=1 -h --apparent-size
471 | map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh
472 | map yp yank path
473 | map yd yank dir
474 | map yn yank name
475 | map y. yank name_without_extension
476 |
477 | # Filesystem Operations
478 | map = chmod
479 |
480 | map cw console rename%space
481 | map a rename_append
482 | map A eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"))
483 | map I eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"), position=7)
484 |
485 | map pp paste
486 | map po paste overwrite=True
487 | map pP paste append=True
488 | map pO paste overwrite=True append=True
489 | map pl paste_symlink relative=False
490 | map pL paste_symlink relative=True
491 | map phl paste_hardlink
492 | map pht paste_hardlinked_subtree
493 | map pd console paste dest=
494 | map p` paste dest=%any_path
495 | map p' paste dest=%any_path
496 |
497 | map dD console delete
498 | map dT console trash
499 |
500 | map dd cut
501 | map ud uncut
502 | map da cut mode=add
503 | map dr cut mode=remove
504 | map dt cut mode=toggle
505 |
506 | map yy copy
507 | map uy uncut
508 | map ya copy mode=add
509 | map yr copy mode=remove
510 | map yt copy mode=toggle
511 |
512 | # Temporary workarounds
513 | map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier)
514 | map dG eval fm.cut(dirarg=dict(to=-1), narg=quantifier)
515 | map dj eval fm.cut(dirarg=dict(down=1), narg=quantifier)
516 | map dk eval fm.cut(dirarg=dict(up=1), narg=quantifier)
517 | map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier)
518 | map yG eval fm.copy(dirarg=dict(to=-1), narg=quantifier)
519 | map yj eval fm.copy(dirarg=dict(down=1), narg=quantifier)
520 | map yk eval fm.copy(dirarg=dict(up=1), narg=quantifier)
521 |
522 | # Searching
523 | map / console search%space
524 | map n search_next
525 | map N search_next forward=False
526 | map ct search_next order=tag
527 | map cs search_next order=size
528 | map ci search_next order=mimetype
529 | map cc search_next order=ctime
530 | map cm search_next order=mtime
531 | map ca search_next order=atime
532 |
533 | # Tabs
534 | map tab_new
535 | map tab_close
536 | map tab_move 1
537 | map tab_move -1
538 | map tab_move 1
539 | map tab_move -1
540 | map gt tab_move 1
541 | map gT tab_move -1
542 | map gn tab_new
543 | map gc tab_close
544 | map uq tab_restore
545 | map tab_open 1
546 | map tab_open 2
547 | map tab_open 3
548 | map tab_open 4
549 | map tab_open 5
550 | map tab_open 6
551 | map tab_open 7
552 | map tab_open 8
553 | map tab_open 9
554 | map tab_shift 1
555 | map tab_shift -1
556 |
557 | # Sorting
558 | map or set sort_reverse!
559 | map oz set sort=random
560 | map os chain set sort=size; set sort_reverse=False
561 | map ob chain set sort=basename; set sort_reverse=False
562 | map on chain set sort=natural; set sort_reverse=False
563 | map om chain set sort=mtime; set sort_reverse=False
564 | map oc chain set sort=ctime; set sort_reverse=False
565 | map oa chain set sort=atime; set sort_reverse=False
566 | map ot chain set sort=type; set sort_reverse=False
567 | map oe chain set sort=extension; set sort_reverse=False
568 |
569 | map oS chain set sort=size; set sort_reverse=True
570 | map oB chain set sort=basename; set sort_reverse=True
571 | map oN chain set sort=natural; set sort_reverse=True
572 | map oM chain set sort=mtime; set sort_reverse=True
573 | map oC chain set sort=ctime; set sort_reverse=True
574 | map oA chain set sort=atime; set sort_reverse=True
575 | map oT chain set sort=type; set sort_reverse=True
576 | map oE chain set sort=extension; set sort_reverse=True
577 |
578 | map dc get_cumulative_size
579 |
580 | # Settings
581 | map zc set collapse_preview!
582 | map zd set sort_directories_first!
583 | map zh set show_hidden!
584 | map set show_hidden!
585 | copymap
586 | copymap
587 | map zI set flushinput!
588 | map zi set preview_images!
589 | map zm set mouse_enabled!
590 | map zp set preview_files!
591 | map zP set preview_directories!
592 | map zs set sort_case_insensitive!
593 | map zu set autoupdate_cumulative_size!
594 | map zv set use_preview_script!
595 | map zf console filter%space
596 | copymap zf zz
597 |
598 | # Filter stack
599 | map .d filter_stack add type d
600 | map .f filter_stack add type f
601 | map .l filter_stack add type l
602 | map .m console filter_stack add mime%space
603 | map .n console filter_stack add name%space
604 | map .# console filter_stack add hash%space
605 | map ." filter_stack add duplicate
606 | map .' filter_stack add unique
607 | map .| filter_stack add or
608 | map .& filter_stack add and
609 | map .! filter_stack add not
610 | map .r filter_stack rotate
611 | map .c filter_stack clear
612 | map .* filter_stack decompose
613 | map .p filter_stack pop
614 | map .. filter_stack show
615 |
616 | # Bookmarks
617 | map ` enter_bookmark %any
618 | map ' enter_bookmark %any
619 | map m set_bookmark %any
620 | map um unset_bookmark %any
621 |
622 | map m draw_bookmarks
623 | copymap m um ` '
624 |
625 | # Generate all the chmod bindings with some python help:
626 | eval for arg in "rwxXst": cmd("map +u{0} shell -f chmod u+{0} %s".format(arg))
627 | eval for arg in "rwxXst": cmd("map +g{0} shell -f chmod g+{0} %s".format(arg))
628 | eval for arg in "rwxXst": cmd("map +o{0} shell -f chmod o+{0} %s".format(arg))
629 | eval for arg in "rwxXst": cmd("map +a{0} shell -f chmod a+{0} %s".format(arg))
630 | eval for arg in "rwxXst": cmd("map +{0} shell -f chmod u+{0} %s".format(arg))
631 |
632 | eval for arg in "rwxXst": cmd("map -u{0} shell -f chmod u-{0} %s".format(arg))
633 | eval for arg in "rwxXst": cmd("map -g{0} shell -f chmod g-{0} %s".format(arg))
634 | eval for arg in "rwxXst": cmd("map -o{0} shell -f chmod o-{0} %s".format(arg))
635 | eval for arg in "rwxXst": cmd("map -a{0} shell -f chmod a-{0} %s".format(arg))
636 | eval for arg in "rwxXst": cmd("map -{0} shell -f chmod u-{0} %s".format(arg))
637 |
638 | # ===================================================================
639 | # == Define keys for the console
640 | # ===================================================================
641 | # Note: Unmapped keys are passed directly to the console.
642 |
643 | # Basic
644 | cmap eval fm.ui.console.tab()
645 | cmap eval fm.ui.console.tab(-1)
646 | cmap eval fm.ui.console.close()
647 | cmap eval fm.ui.console.execute()
648 | cmap redraw_window
649 |
650 | copycmap
651 | copycmap
652 |
653 | # Move around
654 | cmap eval fm.ui.console.history_move(-1)
655 | cmap eval fm.ui.console.history_move(1)
656 | cmap eval fm.ui.console.move(left=1)
657 | cmap eval fm.ui.console.move(right=1)
658 | cmap eval fm.ui.console.move(right=0, absolute=True)
659 | cmap eval fm.ui.console.move(right=-1, absolute=True)
660 | cmap eval fm.ui.console.move_word(left=1)
661 | cmap eval fm.ui.console.move_word(right=1)
662 |
663 | copycmap
664 | copycmap
665 |
666 | # Line Editing
667 | cmap eval fm.ui.console.delete(-1)
668 | cmap eval fm.ui.console.delete(0)
669 | cmap eval fm.ui.console.delete_word()
670 | cmap eval fm.ui.console.delete_word(backward=False)
671 | cmap eval fm.ui.console.delete_rest(1)
672 | cmap eval fm.ui.console.delete_rest(-1)
673 | cmap eval fm.ui.console.paste()
674 |
675 | # And of course the emacs way
676 | copycmap
677 | copycmap
678 | copycmap
679 | copycmap
680 | copycmap
681 | copycmap
682 | copycmap
683 | copycmap
684 | copycmap
685 |
686 | # Note: There are multiple ways to express backspaces. (code 263)
687 | # and (code 127). To be sure, use both.
688 | copycmap
689 |
690 | # This special expression allows typing in numerals:
691 | cmap false
692 |
693 | # ===================================================================
694 | # == Pager Keybindings
695 | # ===================================================================
696 |
697 | # Movement
698 | pmap pager_move down=1
699 | pmap pager_move up=1
700 | pmap pager_move left=4
701 | pmap pager_move right=4
702 | pmap pager_move to=0
703 | pmap pager_move to=-1
704 | pmap pager_move down=1.0 pages=True
705 | pmap pager_move up=1.0 pages=True
706 | pmap pager_move down=0.5 pages=True
707 | pmap pager_move up=0.5 pages=True
708 |
709 | copypmap k
710 | copypmap j
711 | copypmap h
712 | copypmap l
713 | copypmap g
714 | copypmap G
715 | copypmap d
716 | copypmap u
717 | copypmap n f
718 | copypmap p b
719 |
720 | # Basic
721 | pmap redraw_window
722 | pmap pager_close
723 | copypmap q Q i
724 | pmap E edit_file
725 |
726 | # ===================================================================
727 | # == Taskview Keybindings
728 | # ===================================================================
729 |
730 | # Movement
731 | tmap taskview_move up=1
732 | tmap taskview_move down=1
733 | tmap taskview_move to=0
734 | tmap taskview_move to=-1
735 | tmap taskview_move down=1.0 pages=True
736 | tmap taskview_move up=1.0 pages=True
737 | tmap taskview_move down=0.5 pages=True
738 | tmap taskview_move up=0.5 pages=True
739 |
740 | copytmap k
741 | copytmap j
742 | copytmap g
743 | copytmap G
744 | copytmap u
745 | copytmap n f
746 | copytmap p b
747 |
748 | # Changing priority and deleting tasks
749 | tmap J eval -q fm.ui.taskview.task_move(-1)
750 | tmap K eval -q fm.ui.taskview.task_move(0)
751 | tmap dd eval -q fm.ui.taskview.task_remove()
752 | tmap eval -q fm.ui.taskview.task_move(-1)
753 | tmap eval -q fm.ui.taskview.task_move(0)
754 | tmap eval -q fm.ui.taskview.task_remove()
755 |
756 | # Basic
757 | tmap redraw_window
758 | tmap taskview_close
759 | copytmap q Q w
760 |
--------------------------------------------------------------------------------
/.config/ranger/rifle.conf:
--------------------------------------------------------------------------------
1 | # vim: ft=cfg
2 | #
3 | # This is the configuration file of "rifle", ranger's file executor/opener.
4 | # Each line consists of conditions and a command. For each line the conditions
5 | # are checked and if they are met, the respective command is run.
6 | #
7 | # Syntax:
8 | # , , ... = command
9 | #
10 | # The command can contain these environment variables:
11 | # $1-$9 | The n-th selected file
12 | # $@ | All selected files
13 | #
14 | # If you use the special command "ask", rifle will ask you what program to run.
15 | #
16 | # Prefixing a condition with "!" will negate its result.
17 | # These conditions are currently supported:
18 | # match | The regexp matches $1
19 | # ext | The regexp matches the extension of $1
20 | # mime | The regexp matches the mime type of $1
21 | # name | The regexp matches the basename of $1
22 | # path | The regexp matches the absolute path of $1
23 | # has | The program is installed (i.e. located in $PATH)
24 | # env | The environment variable "variable" is non-empty
25 | # file | $1 is a file
26 | # directory | $1 is a directory
27 | # number | change the number of this command to n
28 | # terminal | stdin, stderr and stdout are connected to a terminal
29 | # X | A graphical environment is available (darwin, Xorg, or Wayland)
30 | #
31 | # There are also pseudo-conditions which have a "side effect":
32 | # flag | Change how the program is run. See below.
33 | # label