.
This commit is contained in:
parent
7cc272c595
commit
392a018c86
21 changed files with 446 additions and 2547 deletions
39
.gitignore
vendored
Normal file
39
.gitignore
vendored
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
# ---> Linux
|
||||||
|
*~
|
||||||
|
|
||||||
|
# temporary files which can be created if a process still has a handle open of a deleted file
|
||||||
|
.fuse_hidden*
|
||||||
|
|
||||||
|
# KDE directory preferences
|
||||||
|
.directory
|
||||||
|
|
||||||
|
# Linux trash folder which might appear on any partition or disk
|
||||||
|
.Trash-*
|
||||||
|
|
||||||
|
# .nfs files are created when an open file is removed but is still being accessed
|
||||||
|
.nfs*
|
||||||
|
|
||||||
|
dotfiles/.icons/defaults/index.theme
|
||||||
|
dotfiles/.icons/default/index.theme
|
||||||
|
dotfiles/.local/share/fastfetch/
|
||||||
|
dotfiles/.local/share/fish/
|
||||||
|
dotfiles/.local/state/
|
||||||
|
dotfiles/.local/share/nvim/
|
||||||
|
dotfiles/.local/share/composer/
|
||||||
|
dotfiles/.local/share/zoxide/
|
||||||
|
dotfiles/.config/hypr/card
|
||||||
|
dotfiles/.icons/index.theme
|
||||||
|
neovide_backtraces.log
|
||||||
|
|
||||||
|
dotfiles/.config/alacritty
|
||||||
|
dotfiles/.config/ghostty
|
||||||
|
|
||||||
|
dotfiles/.config/gBar
|
||||||
|
dotfiles/.config/hyprpanel
|
||||||
|
dotfiles/.config/waybar
|
||||||
|
|
||||||
|
dotfiles/.config/ranger
|
||||||
|
dotfiles/.config/lf
|
||||||
|
dotfiles/.config/yazi
|
||||||
|
dotfiles/.config/nvim
|
||||||
|
dotfiles/.config/kitty
|
6
.stow-local-ignore
Normal file
6
.stow-local-ignore
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
\.git
|
||||||
|
\.gitignore
|
||||||
|
\.gitmodules
|
||||||
|
^/README.*
|
||||||
|
^/LICENCE.*
|
||||||
|
^/COPYING
|
|
@ -1,8 +0,0 @@
|
||||||
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
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,44 +0,0 @@
|
||||||
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.
|
@ -1,62 +0,0 @@
|
||||||
# This is a sample commands.py. You can add your own commands here.
|
|
||||||
#
|
|
||||||
# Please refer to commands_full.py for all the default commands and a complete
|
|
||||||
# documentation. Do NOT add them all here, or you may end up with defunct
|
|
||||||
# commands when upgrading ranger.
|
|
||||||
|
|
||||||
# A simple command for demonstration purposes follows.
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
from __future__ import (absolute_import, division, print_function)
|
|
||||||
|
|
||||||
# You can import any python module as needed.
|
|
||||||
import os
|
|
||||||
|
|
||||||
# You always need to import ranger.api.commands here to get the Command class:
|
|
||||||
from ranger.api.commands import Command
|
|
||||||
|
|
||||||
|
|
||||||
# Any class that is a subclass of "Command" will be integrated into ranger as a
|
|
||||||
# command. Try typing ":my_edit<ENTER>" in ranger!
|
|
||||||
class my_edit(Command):
|
|
||||||
# The so-called doc-string of the class will be visible in the built-in
|
|
||||||
# help that is accessible by typing "?c" inside ranger.
|
|
||||||
""":my_edit <filename>
|
|
||||||
|
|
||||||
A sample command for demonstration purposes that opens a file in an editor.
|
|
||||||
"""
|
|
||||||
|
|
||||||
# The execute method is called when you run this command in ranger.
|
|
||||||
def execute(self):
|
|
||||||
# self.arg(1) is the first (space-separated) argument to the function.
|
|
||||||
# This way you can write ":my_edit somefilename<ENTER>".
|
|
||||||
if self.arg(1):
|
|
||||||
# self.rest(1) contains self.arg(1) and everything that follows
|
|
||||||
target_filename = self.rest(1)
|
|
||||||
else:
|
|
||||||
# self.fm is a ranger.core.filemanager.FileManager object and gives
|
|
||||||
# you access to internals of ranger.
|
|
||||||
# self.fm.thisfile is a ranger.container.file.File object and is a
|
|
||||||
# reference to the currently selected file.
|
|
||||||
target_filename = self.fm.thisfile.path
|
|
||||||
|
|
||||||
# This is a generic function to print text in ranger.
|
|
||||||
self.fm.notify("Let's edit the file " + target_filename + "!")
|
|
||||||
|
|
||||||
# Using bad=True in fm.notify allows you to print error messages:
|
|
||||||
if not os.path.exists(target_filename):
|
|
||||||
self.fm.notify("The given file does not exist!", bad=True)
|
|
||||||
return
|
|
||||||
|
|
||||||
# This executes a function from ranger.core.acitons, a module with a
|
|
||||||
# variety of subroutines that can help you construct commands.
|
|
||||||
# Check out the source, or run "pydoc ranger.core.actions" for a list.
|
|
||||||
self.fm.edit_file(target_filename)
|
|
||||||
|
|
||||||
# The tab method is called when you press tab, and should return a list of
|
|
||||||
# suggestions that the user will tab through.
|
|
||||||
# tabnum is 1 for <TAB> and -1 for <S-TAB> by default
|
|
||||||
def tab(self, tabnum):
|
|
||||||
# This is a generic tab-completion function that iterates through the
|
|
||||||
# content of the current directory.
|
|
||||||
return self._tab_directory_content()
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,50 +0,0 @@
|
||||||
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
|
|
|
@ -1,387 +0,0 @@
|
||||||
## 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
|
|
|
@ -1,76 +0,0 @@
|
||||||
### 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" -- "$@"
|
|
|
@ -1,84 +0,0 @@
|
||||||
#!/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
|
|
292
install.sh
Executable file
292
install.sh
Executable file
|
@ -0,0 +1,292 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# ANSI color codes
|
||||||
|
RED='\033[0;31m'
|
||||||
|
CYAN='\033[0;36m'
|
||||||
|
YELLOW='\033[0;33m'
|
||||||
|
LIGHT_GREEN='\033[0;92m'
|
||||||
|
BOLD='\033[1m'
|
||||||
|
NC='\033[0m' # No Color
|
||||||
|
|
||||||
|
echo_error() {
|
||||||
|
printf "${BOLD}${RED}ERROR: ${NC}${RED}%s${NC}\n" "$1" >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
echo_info() {
|
||||||
|
printf "${BOLD}${CYAN}INFO: ${NC}${CYAN}%s${NC}\n" "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
echo_warning() {
|
||||||
|
printf "${BOLD}${YELLOW}WARNING: ${NC}${YELLOW}%s${NC}\n" "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
echo_note() {
|
||||||
|
printf "${BOLD}${LIGHT_GREEN}NOTE: ${NC}${LIGHT_GREEN}%s${NC}\n" "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# ─< Check if the given command exists silently >─────────────────────────────────────────
|
||||||
|
command_exists() {
|
||||||
|
command -v "$@" >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
# ─< Check if the user is root and set sudo variable if necessary >───────────────────────
|
||||||
|
check_root() {
|
||||||
|
if [ "$(id -u)" -ne 0 ]; then
|
||||||
|
if command_exists sudo; then
|
||||||
|
echo_info "User is not root. Using sudo for privileged operations."
|
||||||
|
_sudo="sudo"
|
||||||
|
else
|
||||||
|
echo_error "No sudo found and you're not root! Can't install packages."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo_info "Root access confirmed."
|
||||||
|
_sudo=""
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# ─< Distribution detection and installation >────────────────────────────────────────
|
||||||
|
get_packager() {
|
||||||
|
if [ -e /etc/os-release ]; then
|
||||||
|
echo_info "Detecting distribution..."
|
||||||
|
. /etc/os-release
|
||||||
|
|
||||||
|
ID=$(printf "%s" "$ID" | tr '[:upper:]' '[:lower:]')
|
||||||
|
ID_LIKE=$(printf "%s" "$ID_LIKE" | tr '[:upper:]' '[:lower:]')
|
||||||
|
case "$ID" in
|
||||||
|
ubuntu | pop) _install() { $_sudo apt-get install --assume-yes "$@"; } ;;
|
||||||
|
debian) _install() { $_sudo apt-get install --assume-yes "$@"; } ;;
|
||||||
|
fedora) _install() { $_sudo dnf install -y "$@"; } ;;
|
||||||
|
alpine) _install() { $_sudo apk add "$@"; } ;;
|
||||||
|
arch | archcraft | manjaro | garuda | endeavour) _install() { $_sudo pacman -S --noconfirm "$@"; } ;;
|
||||||
|
opensuse*) _install() { $_sudo zypper in -y "$@"; } ;;
|
||||||
|
*)
|
||||||
|
if echo "$ID_LIKE" | grep -q "debian"; then
|
||||||
|
_install() { $_sudo apt-get install --assume-yes "$@"; }
|
||||||
|
elif echo "$ID_LIKE" | grep -q "ubuntu"; then
|
||||||
|
_install() { $_sudo apt-get install --assume-yes "$@"; }
|
||||||
|
elif echo "$ID_LIKE" | grep -q "arch"; then
|
||||||
|
_install() { $_sudo pacman -S --noconfirm "$@"; }
|
||||||
|
elif echo "$ID_LIKE" | grep -q "fedora"; then
|
||||||
|
_install() { $_sudo dnf install -y "$@"; }
|
||||||
|
elif echo "$ID_LIKE" | grep -q "suse"; then
|
||||||
|
_install() { $_sudo zypper in -y "$@"; }
|
||||||
|
else
|
||||||
|
echo_error "Unsupported distribution: $ID"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
echo_error "Unable to detect distribution. /etc/os-release not found."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
silentexec() {
|
||||||
|
"$@" >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
__pre_stow__() {
|
||||||
|
echo_note "__pre_stow__"
|
||||||
|
conf="$HOME/.config"
|
||||||
|
bak_dir="$HOME/.bak"
|
||||||
|
dirs=(
|
||||||
|
"btop"
|
||||||
|
"zsh"
|
||||||
|
"yazi"
|
||||||
|
"tmux"
|
||||||
|
"nvim"
|
||||||
|
"ranger"
|
||||||
|
"lf"
|
||||||
|
)
|
||||||
|
|
||||||
|
if [ ! -d "$bak_dir" ]; then
|
||||||
|
echo_info "backup dir created at $bak_dir" &&
|
||||||
|
silentexec mkdir "$bak_dir"
|
||||||
|
else
|
||||||
|
echo_info "Backup dir already present, clearing now" &&
|
||||||
|
rm -rf "${bak_dir:?}/*"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for _dirs in "${dirs[@]}"; do
|
||||||
|
if [ -d "$conf/$_dirs" ]; then
|
||||||
|
mv -f "$conf/$_dirs" "$bak_dir"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
h_files=(
|
||||||
|
".zshrc"
|
||||||
|
".zshenv"
|
||||||
|
)
|
||||||
|
|
||||||
|
h_dirs=(
|
||||||
|
".tmux"
|
||||||
|
".zsh"
|
||||||
|
)
|
||||||
|
|
||||||
|
for _f in "${h_files[@]}"; do
|
||||||
|
if [ -f "$HOME/$_f" ]; then
|
||||||
|
mv -f "$HOME/$_f" "$bak_dir" && echo_info "Moved $_f to $bak_dir"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
for _d in "${h_dirs[@]}"; do
|
||||||
|
if [ -d "$HOME/$_d" ]; then
|
||||||
|
mv -f "$HOME/$_d" "$bak_dir" && echo_info "Moved $_d to $bak_dir"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -d "$HOME/.local/share/fastfetch/" ]; then
|
||||||
|
mv -f "$HOME/.local/share/fastfetch" "$bak_dir"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
askThings() {
|
||||||
|
# echo_info "Choose a menu - [r]ofi || [t]ofi"
|
||||||
|
# read -r askMenu </dev/tty
|
||||||
|
|
||||||
|
[ ! -d "./dotfiles/.config/yazi" ] && [ ! -d "./dotfiles/.config/lf" ] && [ ! -d "./dotfiles/.config/ranger" ] && {
|
||||||
|
echo_info "Choose a cli filemanager - [y]azi || [r]anger || [l]f"
|
||||||
|
read -r askFilemgr </dev/tty
|
||||||
|
}
|
||||||
|
|
||||||
|
# echo_info "Choose a bar provider - [w]aybar || [g]Bar || [h]yprpanel"
|
||||||
|
# read -r askBar </dev/tty
|
||||||
|
#
|
||||||
|
# echo_info "Choose a Terminal config (.)[G]hostty, [K]itty, [A]lacritty(.)"
|
||||||
|
# read -r askTerminal </dev/tty
|
||||||
|
|
||||||
|
echo_info "Do you also want to install optional packages? (y/n)"
|
||||||
|
read -r askOptional </dev/tty
|
||||||
|
|
||||||
|
case "$askOptional" in
|
||||||
|
[yY]) __optional__="true" ;;
|
||||||
|
[nN]) __optional__="false" ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
cloneDots() {
|
||||||
|
choise="$1"
|
||||||
|
|
||||||
|
if command_exists git; then
|
||||||
|
[ -d ./dotfiles ] &&
|
||||||
|
[ ! -d "./dotfiles/${choise}" ] &&
|
||||||
|
git clone --depth=1 "https://git.k4li.de/dotfiles/${choise}.git" "./dotfiles/.config/${choise}"
|
||||||
|
|
||||||
|
else
|
||||||
|
echo_error "Git was not found"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
__validate__() {
|
||||||
|
if askThings; then
|
||||||
|
case "$askFilemgr" in
|
||||||
|
[yY] | yazi) cloneDots "yazi" ;;
|
||||||
|
[rR] | ranger) cloneDots "ranger" ;;
|
||||||
|
[lL] | lf) cloneDots "lf" ;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
echo_error "Something went terribly wrong"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# if [ ! -d "$HOME/.config/nvim" ]; then
|
||||||
|
# echo_note "There was no nvim config found, do you want to clone the pika nvim? (y/n)"
|
||||||
|
# read -r _neovim </dev/tty
|
||||||
|
# case "$_neovim" in
|
||||||
|
# [yY])
|
||||||
|
# git clone --recursive --depth=1 https://git.k4li.de/dotfiles/nvim.git "$HOME/.config/nvim"
|
||||||
|
# ;;
|
||||||
|
# esac
|
||||||
|
# fi
|
||||||
|
}
|
||||||
|
|
||||||
|
__dep__() {
|
||||||
|
_depss=(
|
||||||
|
"stow"
|
||||||
|
"btop"
|
||||||
|
"entr"
|
||||||
|
"unzip"
|
||||||
|
"zip"
|
||||||
|
"fzf"
|
||||||
|
"tmux"
|
||||||
|
"rsync"
|
||||||
|
"zoxide"
|
||||||
|
)
|
||||||
|
|
||||||
|
for hyprdots_dependency in "${_depss[@]}"; do
|
||||||
|
if ! command_exists "$hyprdots_dependency"; then
|
||||||
|
echo_note "--- installing $hyprdots_dependency ---"
|
||||||
|
_install "$hyprdots_dependency"
|
||||||
|
else
|
||||||
|
echo_info "$hyprdots_dependency is already installed"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_optional() {
|
||||||
|
_ops=(
|
||||||
|
"cowsay"
|
||||||
|
"cmatrix"
|
||||||
|
"trash-cli"
|
||||||
|
)
|
||||||
|
case "$_ops" in
|
||||||
|
Y | y)
|
||||||
|
for _o_ in "${_ops[@]}"; do
|
||||||
|
if command_exists "$_o_"; then
|
||||||
|
echo_note "$_o_ - is already installed"
|
||||||
|
else
|
||||||
|
echo_info "Installing $_o_"
|
||||||
|
_install "$_o_"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo default
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
__stow__() {
|
||||||
|
stow --verbose --target="$HOME" --defer=.gitmodules --restow */
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
check_root
|
||||||
|
get_packager
|
||||||
|
|
||||||
|
__validate__
|
||||||
|
__dep__
|
||||||
|
|
||||||
|
if ! command_exists stow; then
|
||||||
|
echo_error "we couldn't find stow on the machine, do you want us to install it? (y/n): "
|
||||||
|
read -r ask_stow
|
||||||
|
case "$ask_stow" in
|
||||||
|
Y | y)
|
||||||
|
_install stow
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo_error "You cannot proceed without installing stow! Please install manually"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
echo_info "stow was found, going on to prepare to stow your config"
|
||||||
|
sleep 0.3
|
||||||
|
fi
|
||||||
|
|
||||||
|
__pre_stow__
|
||||||
|
__stow__
|
||||||
|
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
[ "$__optional__" == 'true' ] &&
|
||||||
|
pkg_optional
|
||||||
|
|
||||||
|
# __monitors__
|
||||||
|
# echo_note "found resolution ${res}"
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
94
makedir.sh
Executable file
94
makedir.sh
Executable file
|
@ -0,0 +1,94 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# ─< Helper functions >─────────────────────────────────────────────────────────────────
|
||||||
|
function echo_error() { echo -e "\033[0;1;31mError: \033[0;31m\t${*}\033[0m"; }
|
||||||
|
function echo_binfo() { echo -e "\033[0;1;34mINFO: \033[0;34m\t${*}\033[0m"; }
|
||||||
|
function echo_info() { echo -e "\033[0;1;35mInfo: \033[0;35m${*}\033[0m"; }
|
||||||
|
|
||||||
|
# ─< Check if the given command exists silently >─────────────────────────────────────────
|
||||||
|
command_exists() {
|
||||||
|
command -v "$@" >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
# ─< to get the alias to install everything either with your shell or inside your script! >─
|
||||||
|
if command_exists curl; then
|
||||||
|
install_pkg() {
|
||||||
|
bash --norc -c "$(curl -sSL https://git.k4li.de/scripts/bash/raw/branch/main/snippets/install_pkg.sh)" "$@"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
echo_error "curl is not installed, universal install disabled!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ─< Silent execution >─────────────────────────────────────────────────────────────────
|
||||||
|
silentexec() {
|
||||||
|
"$@" >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
c_fonts() {
|
||||||
|
local dirFonts="$HOME/.local/share/fonts/"
|
||||||
|
if [[ ! -d "$dirFonts" ]]; then
|
||||||
|
echo_info "Seems like you may miss some fonts.. Do you want to clone them now to <$HOME/.local/share/fonts/> ? [y|n]" && read -r ask_fonts
|
||||||
|
|
||||||
|
case "$ask_fonts" in
|
||||||
|
[Yy])
|
||||||
|
if ! command_exists git; then
|
||||||
|
install_pkg git &&
|
||||||
|
git clone --depth=1 https://git.k4li.de/pika/fonts.git "$dirFonts"
|
||||||
|
else
|
||||||
|
git clone --depth=1 https://git.k4li.de/pika/fonts.git "$dirFonts"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
[Nn])
|
||||||
|
echo_binfo "You might have some font issues, but that's your business now!"
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
c_fonts
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
c_wallpapers() {
|
||||||
|
local dirWallpaper="$HOME/.wallpapers"
|
||||||
|
if [[ ! -d "$dirWallpaper" ]]; then
|
||||||
|
echo_info "Seems like you may miss some wallpapers.. Do you want to clone them now to <$HOME/.wallpapers/> ? [y|n]" && read -r ask_wall
|
||||||
|
|
||||||
|
case "$ask_wall" in
|
||||||
|
[Yy])
|
||||||
|
if ! command_exists git; then
|
||||||
|
install_pkg git &&
|
||||||
|
git clone --depth=1 https://git.k4li.de/pika/wallpaper.git "$dirWallpaper"
|
||||||
|
else
|
||||||
|
git clone --depth=1 https://git.k4li.de/pika/wallpaper.git "$dirWallpaper"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
[Nn])
|
||||||
|
echo_binfo "All right, be sure to checkout the $HOME/.config/hypr/.scripts/random_swww.sh to change the wallpaper dir"
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
c_wallpapers
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
mkdirs() {
|
||||||
|
# ─< .config dir >────────────────────────────────────────────────────────────────────────
|
||||||
|
if [[ ! -f $HOME/.config/ ]]; then
|
||||||
|
echo_binfo "mkdir $HOME/.config"
|
||||||
|
silentexec mkdir $HOME/.config
|
||||||
|
fi
|
||||||
|
# if [[ ! -f $HOME/.local/share/icons/ ]]; then
|
||||||
|
# echo_binfo "mkdir -p $HOME/.local/share/icons/"
|
||||||
|
# silentexec mkdir -p $HOME/.local/share/icons/
|
||||||
|
# fi
|
||||||
|
# if [[ ! -f $HOME/.local/share/fonts/ ]]; then
|
||||||
|
# c_fonts || echo_binfo "mkdir -p $HOME/.local/share/fonts/" && silentexec mkdir -p $HOME/.local/share/fonts/
|
||||||
|
# fi
|
||||||
|
|
||||||
|
c_wallpapers
|
||||||
|
}
|
||||||
|
|
||||||
|
mkdirs
|
15
makefile
Normal file
15
makefile
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
all:
|
||||||
|
./makedir.sh
|
||||||
|
./install.sh
|
||||||
|
# stow --verbose --target=$$HOME --defer=^.*git.* --restow */
|
||||||
|
|
||||||
|
install:
|
||||||
|
./makedir.sh
|
||||||
|
./install.sh
|
||||||
|
# stow --verbose --target=$$HOME --defer=^.*git.* --restow */
|
||||||
|
|
||||||
|
delete:
|
||||||
|
stow --verbose --target=$$HOME --delete */
|
||||||
|
|
||||||
|
remove:
|
||||||
|
stow --verbose --target=$$HOME --delete */
|
Loading…
Add table
Add a link
Reference in a new issue