This commit is contained in:
pika 2025-04-01 18:57:43 +02:00
commit 7cc272c595
46 changed files with 2888 additions and 0 deletions

3
README.md Normal file
View file

@ -0,0 +1,3 @@
# i3 dotfiles
The most simple desktop env i've ever used i think. Needs picom but this will be addet later

78
dots/.Xresources Executable file
View file

@ -0,0 +1,78 @@
!! Colorscheme
! special
*.foreground: #93a1a1
*.background: #141c21
*.cursorColor: #afbfbf
! black
*.color0: #263640
*.color8: #4a697d
! red
*.color1: #d12f2c
*.color9: #fa3935
! green
*.color2: #819400
*.color10: #a4bd00
! yellow
*.color3: #b08500
*.color11: #d9a400
! blue
*.color4: #2587cc
*.color12: #2ca2f5
! magenta
*.color5: #696ebf
*.color13: #8086e8
! cyan
*.color6: #289c93
*.color14: #33c5ba
! white
*.color7: #bfbaac
*.color15: #fdf6e3
!! URxvt Appearance
URxvt.font: xft:SpaceMono:style=Regular:size=9
URxvt.boldFont: xft:SpaceMono:style=Bold:size=9
URxvt.italicFont: xft:SpaceMono:style=Italic:size=9
URxvt.boldItalicfont: xft:SpaceMono:style=Bold Italic:size=9
URxvt.letterSpace: -1
URxvt.lineSpace: 0
URxvt.geometry: 92x24
URxvt.internalBorder: 24
URxvt.cursorBlink: true
URxvt.cursorUnderline: false
URxvt.saveline: 2048
URxvt.scrollBar: false
URxvt.scrollBar_right: false
URxvt.urgentOnBell: true
URxvt.depth: 24
URxvt.iso14755: false
!! Common Keybinds for Navigations
URxvt.keysym.Shift-Up: command:\033]720;1\007
URxvt.keysym.Shift-Down: command:\033]721;1\007
URxvt.keysym.Control-Up: \033[1;5A
URxvt.keysym.Control-Down: \033[1;5B
URxvt.keysym.Control-Right: \033[1;5C
URxvt.keysym.Control-Left: \033[1;5D
!! Copy Paste & Other Extensions
URxvt.perl-ext-common: default,clipboard,url-select,keyboard-select
URxvt.copyCommand: xclip -i -selection clipboard
URxvt.pasteCommand: xclip -o -selection clipboard
URxvt.keysym.M-c: perl:clipboard:copy
URxvt.keysym.M-v: perl:clipboard:paste
URxvt.keysym.M-C-v: perl:clipboard:paste_escaped
URxvt.keysym.M-Escape: perl:keyboard-select:activate
URxvt.keysym.M-s: perl:keyboard-select:search
URxvt.keysym.M-u: perl:url-select:select_next
URxvt.urlLauncher: firefox
URxvt.underlineURLs: true
URxvt.urlButton: 1

54
dots/.config/dunst/dunstrc Executable file
View file

@ -0,0 +1,54 @@
[global]
monitor = 0
follow = mouse
geometry = "320x120-28-28"
indicate_hidden = yes
shrink = no
separator_height = 0
padding = 32
horizontal_padding = 48
frame_width = 4
sort = no
idle_threshold = 120
font = Poppins 9
line_height = 4
markup = full
format = <b>%s</b>\n%b
alignment = left
show_age_threshold = 60
word_wrap = yes
ignore_newline = no
stack_duplicates = false
hide_duplicate_count = yes
show_indicators = no
icon_position = off
sticky_history = yes
history_length = 20
browser = x-www-browser -new-tab
always_run_script = true
title = Dunst
class = Dunst
[shortcuts]
close = ctrl+shift+space
close_all = ctrl+shift+space
history = ctrl+grave
context = ctrl+shift+period
[urgency_low]
timeout = 4
background = "#141c21"
foreground = "#93a1a1"
frame_color = "#819400"
[urgency_normal]
timeout = 8
background = "#141c21"
foreground = "#93a1a1"
frame_color = "#2587cc"
[urgency_critical]
timeout = 0
background = "#141c21"
foreground = "#93a1a1"
frame_color = "#d12f2c"

153
dots/.config/i3/config Executable file
View file

@ -0,0 +1,153 @@
# set modifier
set $win Mod4
set $super Mod1
# which should be ALT
# set font
font pango:"JetBrainsMono Nerd Font" 9, Rubik Regular 9
# use mouse+$super to drag floating windows to their wanted position
floating_modifier $super
# autostart
exec --no-startup-id hsetroot -center ~/.wallpaper.png
# start a terminal
bindsym $super+Return exec i3-sensible-terminal
bindsym $super+t exec ghostty
bindsym $win+r exec rofi -show drun -modi drun,filebrowser,run,window,ssh
# start dmenu (a program launcher)
bindsym $super+d exec i3-dmenu-desktop --dmenu="dmenu -i -b \
-fn 'Poppins:size=9' -nb '#141c21' -nf '#93a1a1' \
-sb '#289c93' -sf '#141c21'"
# common apps keybinds
bindsym Print exec scrot 'Cheese_%a-%d%b%y_%H.%M.png' -e 'xdg-open ~/$f'
bindsym $win+l exec i3lock -i ~/.lock.png
bindsym $super+c exec zen-browser
bindsym $super+e exec caja
# change volume and brightness
bindsym XF86AudioRaiseVolume exec amixer -q set Master 5%+
bindsym XF86AudioLowerVolume exec amixer -q set Master 5%-
bindsym XF86AudioMute exec amixer set Master toggle
bindsym XF86MonBrightnessUp exec brightnessctl set 5%+
bindsym XF86MonBrightnessDown exec brightnessctl set 5%-
# kill focused window
bindsym $super+q kill
bindsym $win+F4 kill
# change focus
# bindsym $super+Left focus left
# bindsym $super+Down focus down
# bindsym $super+Up focus up
# bindsym $super+Right focus right
# move focused window
# bindsym $super+Shift+Left move left
# bindsym $super+Shift+Down move down
# bindsym $super+Shift+Up move up
# bindsym $super+Shift+Right move right
# change focus -- VIM
bindsym $super+h focus left
bindsym $super+j focus down
bindsym $super+k focus up
bindsym $super+l focus right
# move focused window -- VIM
bindsym $super+Control+h move left
bindsym $super+Control+j move down
bindsym $super+Control+k move up
bindsym $super+Control+l move right
# split in horizontal or vertical orientation
bindsym $win+h split h
bindsym $win+v split v
# change split direction for already opened windows
bindsym $super+s layout toggle split
# enter fullscreen mode for the focused container
bindsym $super+f fullscreen toggle
# toggle tiling / floating
bindsym $super+Shift+f floating toggle
# change focus between tiling / floating windows
bindsym $super+Shift+space focus mode_toggle
# switch to workspace
bindsym $super+Shift+l workspace next
bindsym $super+Shift+h workspace prev
bindsym $super+1 workspace 1:I
bindsym $super+2 workspace 2:II
bindsym $super+3 workspace 3:III
bindsym $super+4 workspace 4:IV
bindsym $super+5 workspace 5:V
bindsym $super+6 workspace 6:VI
# move focused container to workspace
bindsym $super+Shift+1 move container to workspace 1:I
bindsym $super+Shift+2 move container to workspace 2:II
bindsym $super+Shift+3 move container to workspace 3:III
bindsym $super+Shift+4 move container to workspace 4:IV
bindsym $super+Shift+5 move container to workspace 5:V
bindsym $super+Shift+6 move container to workspace 6:VI
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $super+Shift+r exec "i3-msg restart"
# exit i3
bindsym $super+Shift+m exec "i3-nagbar -t warning -m 'Really, exit?' \
-b 'Yes' 'i3-msg exit'"
# resize window (you can also use the mouse for that)
mode "resize" {
bindsym h resize shrink width 5 px or 5 ppt
bindsym j resize grow height 5 px or 5 ppt
bindsym k resize shrink height 5 px or 5 ppt
bindsym l resize grow width 5 px or 5 ppt
bindsym Return mode "default"
}
bindsym $super+r mode "resize"
# panel
bar {
status_command i3status
position top
workspace_min_width 24
padding 2px 8px 2px 8px
strip_workspace_numbers yes
colors {
background #141c21
statusline #141c21
separator #141c21
# colour of border, background, and text
focused_workspace #141c21 #d12f2c #93a1a1
active_workspace #141c21 #141c21 #93a1a1
inactive_workspace #141c21 #141c21 #93a1a1
urgent_workspace #141c21 #b08500 #93a1a1
}
}
# colour of border, background, text, indicator, and child_border
client.focused #d12f2c #263640 #93a1a1 #696ebf #2587cc1
client.focused_inactive #263640 #b08500 #93a1a1 #263640 #263640
client.unfocused #263640 #b08500 #93a1a1 #263640 #263640
client.urgent #263640 #b08500 #93a1a1 #263640 #263640
client.placeholder #263640 #b08500 #93a1a1 #263640 #263640
client.background #263640
# window rules, you can find the window class using xprop
for_window [class=Eog|Sxiv|feh|mpv|Vlc|File-roller|Xarchiver] floating enable
for_window [class=Eog|Sxiv|feh|mpv|Vlc|File-roller|Xarchiver] focus
for_window [class=".*"] border pixel 8
hide_edge_borders smart
gaps inner 12
smart_gaps on

53
dots/.config/i3status/config Executable file
View file

@ -0,0 +1,53 @@
general {
output_format = "i3bar"
colors = true
markup = pango
interval = 5
}
order += "load"
order += "cpu_temperature 0"
# order += "wireless wlp2s0"
order += "volume master"
# order += "battery 0"
order += "time"
load {
format = "<span background='#b08500'>  </span><span background='#bfbaac'> %5min Load </span>"
}
cpu_temperature 0 {
format = "<span background='#d12f2c'>  </span><span background='#bfbaac'> %degrees °C </span>"
path = "/sys/devices/platform/asus-ec-sensors/hwmon/hwmon4/temp2_input"
}
wireless enp7s0 {
format_up = "<span background='#289c93'>  </span><span background='#bfbaac'> %essid </span>"
format_down = "<span background='#289c93'>  </span><span background='#bfbaac'> Disconnected </span>"
}
volume master {
format = "<span background='#696ebf'>  </span><span background='#bfbaac'> %volume </span>"
format_muted = "<span background='#696ebf'>  </span><span background='#bfbaac'> Muted </span>"
device = "default"
mixer = "Master"
mixer_idx = 0
}
battery 0 {
last_full_capacity = true
format = "<span background='#819400'> %status </span><span background='#bfbaac'> %percentage </span>"
format_down = "No Battery"
status_chr = ""
status_bat = ""
status_unk = ""
status_full = ""
path = "/sys/class/power_supply/BAT%d/uevent"
low_threshold = 10
integer_battery_capacity = true
}
time {
format = "<span background='#2587cc'>  </span><span background='#bfbaac'> %b %d at %H:%M </span>"
}

8
dots/.config/ranger/bookmarks Executable file
View file

@ -0,0 +1,8 @@
c:/home/addy/.config
o:/home/addy/.config/openbox
a:/media/addy/Media/anime
m:/media/addy/Media/movie
t:/media/addy/Media/tv-series
s:/media/addy/Media/musik
i:/home/addy/.fonts
':/home/liveuser/.config/i3status

View file

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,44 @@
from ranger.gui.color import *
from ranger.colorschemes.default import Default
class Scheme(Default):
progress_bar_color = green
def use(self, context):
fg, bg, attr = Default.use(self, context)
if context.directory and not context.marked and not context.link:
fg = blue
if context.in_titlebar:
if context.hostname:
if context.good:
fg = cyan
elif context.bad:
fg = red
else:
fg = default
if context.reset:
return default_colors
if context.border:
fg = black
if context.in_taskview:
fg = green
if context.in_statusbar:
if context.permissions:
if context.good:
fg = magenta
elif context.bad:
fg = red
if context.message:
if context.good:
attr |= bold
fg = yellow
elif context.bad:
attr |= bold
fg = red
return fg, bg, attr

Binary file not shown.

62
dots/.config/ranger/commands.py Executable file
View file

@ -0,0 +1,62 @@
# This is a sample commands.py. You can add your own commands here.
#
# Please refer to commands_full.py for all the default commands and a complete
# documentation. Do NOT add them all here, or you may end up with defunct
# commands when upgrading ranger.
# A simple command for demonstration purposes follows.
# -----------------------------------------------------------------------------
from __future__ import (absolute_import, division, print_function)
# You can import any python module as needed.
import os
# You always need to import ranger.api.commands here to get the Command class:
from ranger.api.commands import Command
# Any class that is a subclass of "Command" will be integrated into ranger as a
# command. Try typing ":my_edit<ENTER>" in ranger!
class my_edit(Command):
# The so-called doc-string of the class will be visible in the built-in
# help that is accessible by typing "?c" inside ranger.
""":my_edit <filename>
A sample command for demonstration purposes that opens a file in an editor.
"""
# The execute method is called when you run this command in ranger.
def execute(self):
# self.arg(1) is the first (space-separated) argument to the function.
# This way you can write ":my_edit somefilename<ENTER>".
if self.arg(1):
# self.rest(1) contains self.arg(1) and everything that follows
target_filename = self.rest(1)
else:
# self.fm is a ranger.core.filemanager.FileManager object and gives
# you access to internals of ranger.
# self.fm.thisfile is a ranger.container.file.File object and is a
# reference to the currently selected file.
target_filename = self.fm.thisfile.path
# This is a generic function to print text in ranger.
self.fm.notify("Let's edit the file " + target_filename + "!")
# Using bad=True in fm.notify allows you to print error messages:
if not os.path.exists(target_filename):
self.fm.notify("The given file does not exist!", bad=True)
return
# This executes a function from ranger.core.acitons, a module with a
# variety of subroutines that can help you construct commands.
# Check out the source, or run "pydoc ranger.core.actions" for a list.
self.fm.edit_file(target_filename)
# The tab method is called when you press tab, and should return a list of
# suggestions that the user will tab through.
# tabnum is 1 for <TAB> and -1 for <S-TAB> by default
def tab(self, tabnum):
# This is a generic tab-completion function that iterates through the
# content of the current directory.
return self._tab_directory_content()

File diff suppressed because it is too large Load diff

50
dots/.config/ranger/history Executable file
View file

@ -0,0 +1,50 @@
find .co
mkdir rofi
find ro
touch config
shell
find .sc
open_with
find syst
delete
cd /media/
cd /media
find i3
find ope
mkdir
cd /
open_with 11f
open_with 14
cd .scripts/
scout -ftsea pac
scout -ftsea dot
rename packages
shell gitpush
scout -ftsea com
cd /home/addy/.dotfiles/
open_with 2
scout -ftsea i3
scout -ftsea bl
scout -ftsea doc
open_with vim
shell git pull
mkdir fonts
mkdir conf.d
touch README.md
gitpush
open_with geany f
rename keylimepie-12.bdf
scout -ftsea sc
scout -ftsea mis
rename cinnamonroll-12.bdf
shell gitpush
open_with 1 f
rename preview-openbox.jpg
rename preview-fluxbox.jpg
rename fluxbox.jpg
rename openbox.jpg
scout -ftsea hu
scout -ftsea 78
delete
open_with 0

387
dots/.config/ranger/rc.conf Executable file
View file

@ -0,0 +1,387 @@
## Options
set column_ratios 2,2,4
set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$
set show_hidden false
set confirm_on_delete multiple
set use_preview_script true
set open_all_images true
set vcs_aware false
set vcs_backend_git disabled
set vcs_backend_hg disabled
set vcs_backend_bzr disabled
set preview_images false
set preview_images_method urxvt
set unicode_ellipsis false
set show_hidden_bookmarks true
set show_hidden true
set colorscheme tofu
set preview_files true
set preview_directories true
set collapse_preview true
set save_console_history true
set status_bar_on_top false
set draw_progress_bar_in_status_bar false
set draw_borders true
set dirname_in_tabs true
set mouse_enabled false
set display_size_in_main_column false
set display_size_in_status_bar true
set display_tags_in_all_columns false
set update_title true
set update_tmux_title false
set shorten_title 3
set tilde_in_titlebar true
set max_history_size 20
set max_console_history_size 50
set scroll_offset 8
set flushinput false
set padding_right false
set autosave_bookmarks true
set autoupdate_cumulative_size false
set show_cursor false
set sort natural
set sort_reverse false
set sort_case_insensitive true
set sort_directories_first true
set xterm_alt_key false
alias e edit
alias q quit
alias q! quit!
alias qa quitall
alias qa! quitall!
alias qall quitall
alias qall! quitall!
alias setl setlocal
alias filter scout -prts
alias find scout -aets
alias mark scout -mr
alias unmark scout -Mr
alias search scout -rs
alias search_inc scout -rts
alias travel scout -aefklst
map Q quitall
map q quit
copymap q ZZ ZQ
map R reload_cwd
map F set freeze_files!
map <C-r> reset
map <C-l> redraw_window
map <C-c> abort
map <esc> change_mode normal
map ~ set viewmode!
map i display_file
map ? help
map W display_log
map w taskview_open
map S shell $SHELL
map : console
map ; console
map ! console shell%space
map @ console -p6 shell %%s
map # console shell -p%space
map s console shell%space
map r chain draw_possible_programs; console open_with%%space
map f console find%space
map cd console cd%space
map <C-p> chain console; eval fm.ui.console.history_move(-1)
map Mf linemode filename
map Mi linemode fileinfo
map Mm linemode mtime
map Mp linemode permissions
map Ms linemode sizemtime
map Mt linemode metatitle
map t tag_toggle
map ut tag_remove
map "<any> tag_toggle tag=%any
map <Space> mark_files toggle=True
map v mark_files all=True toggle=True
map uv mark_files all=True val=False
map V toggle_visual_mode
map uV toggle_visual_mode reverse=True
map <F1> help
map <F2> rename_append
map <F3> display_file
map <F4> edit
map <F5> copy
map <F6> cut
map <F7> console mkdir%space
map <F8> console delete
map <F10> exit
map <UP> move up=1
map <DOWN> move down=1
map <LEFT> move left=1
map <RIGHT> move right=1
map <HOME> move to=0
map <END> move to=-1
map <PAGEDOWN> move down=1 pages=True
map <PAGEUP> move up=1 pages=True
map <CR> move right=1
map <INSERT> console touch%space
copymap <UP> k
copymap <DOWN> j
copymap <LEFT> h
copymap <RIGHT> l
copymap <HOME> gg
copymap <END> G
copymap <PAGEDOWN> <C-F>
copymap <PAGEUP> <C-B>
map J move down=0.5 pages=True
map K move up=0.5 pages=True
copymap J <C-D>
copymap K <C-U>
map H history_go -1
map L history_go 1
map ] move_parent 1
map [ move_parent -1
map } traverse
map { traverse_backwards
map ) jump_non
map gh cd ~
map ge cd /etc
map gu cd /usr
map gd cd /dev
map gl cd -r .
map gL cd -r %f
map go cd /opt
map gv cd /var
map gm cd /media
map gi eval fm.cd('/run/media/' + os.getenv('USER'))
map gM cd /mnt
map gs cd /srv
map gp cd /tmp
map gr cd /
map gR eval fm.cd(ranger.RANGERDIR)
map g/ cd /
map g? cd /usr/share/doc/ranger
map E edit
map du shell -p du --max-depth=1 -h --apparent-size
map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh
map yp yank path
map yd yank dir
map yn yank name
map y. yank name_without_extension
map = chmod
map cw console rename%space
map a rename_append
map A eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"))
map I eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"), position=7)
map pp paste
map po paste overwrite=True
map pP paste append=True
map pO paste overwrite=True append=True
map pl paste_symlink relative=False
map pL paste_symlink relative=True
map phl paste_hardlink
map pht paste_hardlinked_subtree
map dD console delete
map dd cut
map ud uncut
map da cut mode=add
map dr cut mode=remove
map dt cut mode=toggle
map yy copy
map uy uncut
map ya copy mode=add
map yr copy mode=remove
map yt copy mode=toggle
map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier)
map dG eval fm.cut(dirarg=dict(to=-1), narg=quantifier)
map dj eval fm.cut(dirarg=dict(down=1), narg=quantifier)
map dk eval fm.cut(dirarg=dict(up=1), narg=quantifier)
map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier)
map yG eval fm.copy(dirarg=dict(to=-1), narg=quantifier)
map yj eval fm.copy(dirarg=dict(down=1), narg=quantifier)
map yk eval fm.copy(dirarg=dict(up=1), narg=quantifier)
map / console search%space
map n search_next
map N search_next forward=False
map ct search_next order=tag
map cs search_next order=size
map ci search_next order=mimetype
map cc search_next order=ctime
map cm search_next order=mtime
map ca search_next order=atime
map <C-n> tab_new
map <C-w> tab_close
map <TAB> tab_move 1
map <S-TAB> tab_move -1
map <A-Right> tab_move 1
map <A-Left> tab_move -1
map gt tab_move 1
map gT tab_move -1
map gn tab_new
map gc tab_close
map uq tab_restore
map <a-1> tab_open 1
map <a-2> tab_open 2
map <a-3> tab_open 3
map <a-4> tab_open 4
map <a-5> tab_open 5
map <a-6> tab_open 6
map <a-7> tab_open 7
map <a-8> tab_open 8
map <a-9> tab_open 9
map <a-r> tab_shift 1
map <a-l> tab_shift -1
map or set sort_reverse!
map oz set sort=random
map os chain set sort=size; set sort_reverse=False
map ob chain set sort=basename; set sort_reverse=False
map on chain set sort=natural; set sort_reverse=False
map om chain set sort=mtime; set sort_reverse=False
map oc chain set sort=ctime; set sort_reverse=False
map oa chain set sort=atime; set sort_reverse=False
map ot chain set sort=type; set sort_reverse=False
map oe chain set sort=extension; set sort_reverse=False
map oS chain set sort=size; set sort_reverse=True
map oB chain set sort=basename; set sort_reverse=True
map oN chain set sort=natural; set sort_reverse=True
map oM chain set sort=mtime; set sort_reverse=True
map oC chain set sort=ctime; set sort_reverse=True
map oA chain set sort=atime; set sort_reverse=True
map oT chain set sort=type; set sort_reverse=True
map oE chain set sort=extension; set sort_reverse=True
map dc get_cumulative_size
map zc set collapse_preview!
map zd set sort_directories_first!
map zh set show_hidden!
map <C-h> set show_hidden!
copymap <C-h> <backspace>
copymap <backspace> <backspace2>
map zI set flushinput!
map zi set preview_images!
map zm set mouse_enabled!
map zp set preview_files!
map zP set preview_directories!
map zs set sort_case_insensitive!
map zu set autoupdate_cumulative_size!
map zv set use_preview_script!
map zf console filter%space
copymap zf zz
map .n console filter_stack add name%space
map .m console filter_stack add mime%space
map .d filter_stack add type d
map .f filter_stack add type f
map .l filter_stack add type l
map .| filter_stack add or
map .& filter_stack add and
map .! filter_stack add not
map .r console filter_stack rotate
map .c filter_stack clear
map .* filter_stack decompose
map .p filter_stack pop
map .. filter_stack show
map `<any> enter_bookmark %any
map '<any> enter_bookmark %any
map m<any> set_bookmark %any
map um<any> unset_bookmark %any
map m<bg> draw_bookmarks
copymap m<bg> um<bg> `<bg> '<bg>
eval for arg in "rwxXst": cmd("map +u{0} shell -f chmod u+{0} %s".format(arg))
eval for arg in "rwxXst": cmd("map +g{0} shell -f chmod g+{0} %s".format(arg))
eval for arg in "rwxXst": cmd("map +o{0} shell -f chmod o+{0} %s".format(arg))
eval for arg in "rwxXst": cmd("map +a{0} shell -f chmod a+{0} %s".format(arg))
eval for arg in "rwxXst": cmd("map +{0} shell -f chmod u+{0} %s".format(arg))
eval for arg in "rwxXst": cmd("map -u{0} shell -f chmod u-{0} %s".format(arg))
eval for arg in "rwxXst": cmd("map -g{0} shell -f chmod g-{0} %s".format(arg))
eval for arg in "rwxXst": cmd("map -o{0} shell -f chmod o-{0} %s".format(arg))
eval for arg in "rwxXst": cmd("map -a{0} shell -f chmod a-{0} %s".format(arg))
eval for arg in "rwxXst": cmd("map -{0} shell -f chmod u-{0} %s".format(arg))
cmap <tab> eval fm.ui.console.tab()
cmap <s-tab> eval fm.ui.console.tab(-1)
cmap <ESC> eval fm.ui.console.close()
cmap <CR> eval fm.ui.console.execute()
cmap <C-l> redraw_window
copycmap <ESC> <C-c>
copycmap <CR> <C-j>
cmap <up> eval fm.ui.console.history_move(-1)
cmap <down> eval fm.ui.console.history_move(1)
cmap <left> eval fm.ui.console.move(left=1)
cmap <right> eval fm.ui.console.move(right=1)
cmap <home> eval fm.ui.console.move(right=0, absolute=True)
cmap <end> eval fm.ui.console.move(right=-1, absolute=True)
cmap <a-b> eval fm.ui.console.move_word(left=1)
cmap <a-f> eval fm.ui.console.move_word(right=1)
copycmap <a-b> <a-left>
copycmap <a-f> <a-right>
cmap <backspace> eval fm.ui.console.delete(-1)
cmap <delete> eval fm.ui.console.delete(0)
cmap <C-w> eval fm.ui.console.delete_word()
cmap <A-d> eval fm.ui.console.delete_word(backward=False)
cmap <C-k> eval fm.ui.console.delete_rest(1)
cmap <C-u> eval fm.ui.console.delete_rest(-1)
cmap <C-y> eval fm.ui.console.paste()
copycmap <ESC> <C-g>
copycmap <up> <C-p>
copycmap <down> <C-n>
copycmap <left> <C-b>
copycmap <right> <C-f>
copycmap <home> <C-a>
copycmap <end> <C-e>
copycmap <delete> <C-d>
copycmap <backspace> <C-h>
copycmap <backspace> <backspace2>
cmap <allow_quantifiers> false
pmap <down> pager_move down=1
pmap <up> pager_move up=1
pmap <left> pager_move left=4
pmap <right> pager_move right=4
pmap <home> pager_move to=0
pmap <end> pager_move to=-1
pmap <pagedown> pager_move down=1.0 pages=True
pmap <pageup> pager_move up=1.0 pages=True
pmap <C-d> pager_move down=0.5 pages=True
pmap <C-u> pager_move up=0.5 pages=True
copypmap <UP> k <C-p>
copypmap <DOWN> j <C-n> <CR>
copypmap <LEFT> h
copypmap <RIGHT> l
copypmap <HOME> g
copypmap <END> G
copypmap <C-d> d
copypmap <C-u> u
copypmap <PAGEDOWN> n f <C-F> <Space>
copypmap <PAGEUP> p b <C-B>
pmap <C-l> redraw_window
pmap <ESC> pager_close
copypmap <ESC> q Q i <F3>
pmap E edit_file
tmap <up> taskview_move up=1
tmap <down> taskview_move down=1
tmap <home> taskview_move to=0
tmap <end> taskview_move to=-1
tmap <pagedown> taskview_move down=1.0 pages=True
tmap <pageup> taskview_move up=1.0 pages=True
tmap <C-d> taskview_move down=0.5 pages=True
tmap <C-u> taskview_move up=0.5 pages=True
copytmap <UP> k <C-p>
copytmap <DOWN> j <C-n> <CR>
copytmap <HOME> g
copytmap <END> G
copytmap <C-u> u
copytmap <PAGEDOWN> n f <C-F> <Space>
copytmap <PAGEUP> p b <C-B>
tmap J eval -q fm.ui.taskview.task_move(-1)
tmap K eval -q fm.ui.taskview.task_move(0)
tmap dd eval -q fm.ui.taskview.task_remove()
tmap <pagedown> eval -q fm.ui.taskview.task_move(-1)
tmap <pageup> eval -q fm.ui.taskview.task_move(0)
tmap <delete> eval -q fm.ui.taskview.task_remove()
tmap <C-l> redraw_window
tmap <ESC> taskview_close
copytmap <ESC> q Q w <C-c>
# Custom
map f console scout -ftsea%space
map r chain draw_possible_programs; console -p10 open_with f
map <F1> help
map <F2> eval fm.open_console('rename ' + fm.thisfile.basename)
map <F3> eval fm.execute_console("bulkrename")
map <F4> quit
map <F5> console mkdir
map <A-Up> move up=10
map <A-Down> move down=10
map <A-Home> cd ~
map <C-O> console mkdir
map . toggle_option show_hidden
map <DELETE> console delete

76
dots/.config/ranger/rifle.conf Executable file
View file

@ -0,0 +1,76 @@
### HTML
ext x?html?, has vim, terminal = $EDITOR "$1"
ext x?html?, has firefox, X, flag f = firefox -- "$@"
ext x?html?, has lynx, terminal = lynx -- "$@"
ext x?html?, has xdg-open, X, flag f = xdg-open "$@"
### Text
mime ^text, label editor = "$EDITOR" -- "$@"
mime ^text, label pager = "$PAGER" -- "$@"
!mime ^text, label editor, ext xml|csv|tex|py|pl|rb|sh|php = "$EDITOR" -- "$@"
!mime ^text, label pager, ext xml|csv|tex|py|pl|rb|sh|php = "$PAGER" -- "$@"
mime ^text, has xdg-open, X, flag f = xdg-open "$@"
ext 1 = man "$1"
ext s[wmf]c, has zsnes, X = zsnes "$1"
ext nes, has fceux, X = fceux "$1"
ext exe = wine "$1"
name ^[mM]akefile$ = make
### Code
ext py = python -- "$1"
ext pl = perl -- "$1"
ext rb = ruby -- "$1"
ext sh = sh -- "$1"
ext php = php -- "$1"
### Audio without X
mime ^audio|ogg$, terminal, has mplayer = mplayer -- "$@"
mime ^audio|ogg$, terminal, has mplayer2 = mplayer2 -- "$@"
ext midi?, terminal, has wildmidi = wildmidi -- "$@"
## Video/Audio with a GUI
mime ^video, has mpv, X, flag f = mpv -- "$@"
mime ^video, has vlc, X, flag f = vlc -- "$@"
mime ^video, has xdg-open, X, flag f = xdg-open "$@"
mime ^audio, has audacious, X, flag f = audacious "$@"
mime ^audio, has xdg-open, X, flag f = xdg-open "$@"
## Image Viewing:
mime ^image, has viewnior, X, flag f = viewnior -- "$@"
mime ^image, has gimp, X, flag f = gimp -- "$@"
mime ^image, has inkscape, X, flag f = gimp -- "$@"
mime ^image, has xdg-open, X, flag f = xdg-open "$@"
ext xcf, X, flag f = gimp -- "$@"
## Documents
ext pdf, has evince, X, flag f = evince -- "$@"
ext docx?, has catdoc, terminal = catdoc -- "$@" | "$PAGER"
ext od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has libreoffice, X, flag f = libreoffice "$@"
ext od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has soffice, X, flag f = soffice "$@"
ext od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has ooffice, X, flag f = ooffice "$@"
ext djvu, has evince, X, flag f = evince -- "$@"
ext pdf|djvu, has xdg-open, X, flag f = xdg-open "$@"
ext od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has xdg-open, X, flag f = xdg-open "$@"
## Archives, this requires atool
ext 7z|ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has als = als -- "$@" | "$PAGER"
ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has als = als -- "$@" | "$PAGER"
ext 7z|ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has aunpack = aunpack -- "$@"
ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has aunpack = aunpack -- "$@"
## Fallback:
ext tar|gz, has tar = tar vvtf "$@" | "$PAGER"
ext tar|gz, has tar = tar vvxf "$@"
ext zip|rar|deb|7z|tar|gz|bz2*|tgz|xz|cab|jar, has xdg-open, X, flag f = xdg-open "$@"
## Misc
label wallpaper, number 11, mime ^image, X = hsetroot -cover "$1"
label wallpaper, number 12, mime ^image, X = hsetroot -tile "$1"
label wallpaper, number 13, mime ^image, X = hsetroot -center "$1"
label wallpaper, number 14, mime ^image, X = hsetroot -fill "$1"
## Define the editor for non-text files & pager as last action
!mime ^text, !ext xml|csv|tex|py|pl|rb|sh|php = ask
label editor, !mime ^text, !ext xml|csv|tex|py|pl|rb|sh|php = "$EDITOR" -- "$@"
label pager, !mime ^text, !ext xml|csv|tex|py|pl|rb|sh|php = "$PAGER" -- "$@"

84
dots/.config/ranger/scope.sh Executable file
View file

@ -0,0 +1,84 @@
#!/usr/bin/env sh
# ranger supports enhanced previews. If the option "use_preview_script"
# is set to True and this file exists, this script will be called and its
# output is displayed in ranger. ANSI color codes are supported.
# NOTES: This script is considered a configuration file. If you upgrade
# ranger, it will be left untouched. (You must update it yourself.)
# Also, ranger disables STDIN here, so interactive scripts won't work properly
# Meanings of exit codes:
# code | meaning | action of ranger
# -----+------------+-------------------------------------------
# 0 | success | success. display stdout as preview
# 1 | no preview | failure. display no preview at all
# 2 | plain text | display the plain content of the file
# 3 | fix width | success. Don't reload when width changes
# 4 | fix height | success. Don't reload when height changes
# 5 | fix both | success. Don't ever reload
# Meaningful aliases for arguments:
path="$1" # Full path of the selected file
width="$2" # Width of the preview pane (number of fitting characters)
height="$3" # Height of the preview pane (number of fitting characters)
maxln=200 # Stop after $maxln lines. Can be used like ls | head -n $maxln
# Find out something about the file:
mimetype=$(file --mime-type -Lb "$path")
extension=${path##*.}
# Functions:
# runs a command and saves its output into $output. Useful if you need
# the return value AND want to use the output in a pipe
try() { output=$(eval '"$@"'); }
# writes the output of the previouosly used "try" command
dump() { echo "$output"; }
# a common post-processing function used after most commands
trim() { head -n "$maxln"; }
# wraps highlight to treat exit code 141 (killed by SIGPIPE) as success
highlight() { command highlight "$@"; test $? = 0 -o $? = 141; }
case "$extension" in
# Archive extensions:
7z|a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\
rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)
try als "$path" && { dump | trim; exit 0; }
try acat "$path" && { dump | trim; exit 3; }
try bsdtar -lf "$path" && { dump | trim; exit 0; }
exit 1;;
rar)
try unrar -p- lt "$path" && { dump | trim; exit 0; } || exit 1;;
# PDF documents:
pdf)
try pdftotext -l 10 -nopgbrk -q "$path" - && \
{ dump | trim | fmt -s -w $width; exit 0; } || exit 1;;
# BitTorrent Files
torrent)
try transmission-show "$path" && { dump | trim; exit 5; } || exit 1;;
# HTML Pages:
htm|html|xhtml)
try w3m -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; }
try lynx -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; }
try elinks -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; }
;; # fall back to highlight/cat if the text browsers fail
esac
case "$mimetype" in
# Syntax highlight for text files:
text/* | */xml)
try highlight --out-format=ansi "$path" && { dump | trim; exit 5; } || exit 2;;
# Ascii-previews of images:
image/*)
img2txt --gamma=0.6 --width="$width" "$path" && exit 4 || exit 1;;
# Display information about media files:
video/* | audio/*)
exiftool "$path" && exit 5
# Use sed to remove spaces so the output fits into the narrow window
try mediainfo "$path" && { dump | trim | sed 's/ \+:/: /;'; exit 5; } || exit 1;;
esac
exit 1

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
dots/.lock.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 510 KiB

BIN
dots/.wallpaper.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 KiB