From 7133d371bc00899f2e1765bb654171b1b45d4128 Mon Sep 17 00:00:00 2001 From: Wallesntein Date: Wed, 26 Jun 2024 22:05:27 +0300 Subject: [PATCH] initial --- .../hyprland/hypr/configs/autostart.conf | 4 +- hypr-configs/hyprland/hypr/configs/input.conf | 6 +- .../hypr/configs/monitor/variants/laptop.conf | 4 +- hypr-configs/hyprland/hypr/hyprland.conf | 6 +- .../hyprland/hypr/scripts/ranger_launch.sh | 9 + .../micro/colorschemes/everforest.micro | 26 + .../plugins/ranger_devicons/__init__.py | 15 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 984 bytes .../__pycache__/devicons.cpython-312.pyc | Bin 0 -> 13358 bytes .../plugins/ranger_devicons/devicons.py | 441 +++++++++++ hypr-configs/hyprland/ranger/rc.conf | 729 ++++++++++++++++++ hypr-configs/hyprland/ranger/rifle.conf | 218 ++++++ hypr-configs/hyprland/ranger/scope.sh | 159 ++++ 13 files changed, 1608 insertions(+), 9 deletions(-) create mode 100644 hypr-configs/hyprland/hypr/scripts/ranger_launch.sh create mode 100644 hypr-configs/hyprland/micro/colorschemes/everforest.micro create mode 100644 hypr-configs/hyprland/ranger/plugins/ranger_devicons/__init__.py create mode 100644 hypr-configs/hyprland/ranger/plugins/ranger_devicons/__pycache__/__init__.cpython-312.pyc create mode 100644 hypr-configs/hyprland/ranger/plugins/ranger_devicons/__pycache__/devicons.cpython-312.pyc create mode 100644 hypr-configs/hyprland/ranger/plugins/ranger_devicons/devicons.py create mode 100644 hypr-configs/hyprland/ranger/rc.conf create mode 100755 hypr-configs/hyprland/ranger/rifle.conf create mode 100755 hypr-configs/hyprland/ranger/scope.sh diff --git a/hypr-configs/hyprland/hypr/configs/autostart.conf b/hypr-configs/hyprland/hypr/configs/autostart.conf index b2fa206..aa9d9fd 100644 --- a/hypr-configs/hyprland/hypr/configs/autostart.conf +++ b/hypr-configs/hyprland/hypr/configs/autostart.conf @@ -7,6 +7,8 @@ exec-once = ~/.config/hypr/scripts/startup/pipewire.sh & exec-once = ~/.config/hypr/scripts/startup/keyring.sh & exec-once = wl-paste --watch cliphist store & +exec-once = iio-sensor-proxy & iio-hyprland + exec-once = ~/.config/hypr/scripts/startup/dunst.sh & exec-once = ~/.config/hypr/scripts/wallpaper/wallpaper-daemon.sh & exec-once = ~/.config/hypr/scripts/startup/swayosd.sh & @@ -15,4 +17,4 @@ exec-once = ~/.config/hypr/scripts/waybar/start.sh & # exec-once = avizo-service & # exec-once = eww daemon && eww open bar # exec-once = swayidle -w timeout 300 'gtklock' before-sleep 'gtklock' & -# exec-once = swayidle -w timeout 450 'pidof java || systemctl suspend' & # dont sleep if playing minecraft, else nvidia will fuck up \ No newline at end of file +# exec-once = swayidle -w timeout 450 'pidof java || systemctl suspend' & # dont sleep if playing minecraft, else nvidia will fuck up diff --git a/hypr-configs/hyprland/hypr/configs/input.conf b/hypr-configs/hyprland/hypr/configs/input.conf index d049305..2cbe358 100644 --- a/hypr-configs/hyprland/hypr/configs/input.conf +++ b/hypr-configs/hyprland/hypr/configs/input.conf @@ -4,15 +4,15 @@ # ----------------------------------------------------- input { - kb_layout = us, ir - kb_options = grp:win_space_toggle + kb_layout = us, ru + kb_options = grp:caps_toggle kb_variant = kb_model = kb_rules = follow_mouse = 1 touchpad { - natural_scroll = false + natural_scroll = true disable_while_typing = 1 } } diff --git a/hypr-configs/hyprland/hypr/configs/monitor/variants/laptop.conf b/hypr-configs/hyprland/hypr/configs/monitor/variants/laptop.conf index 6dd82a4..30b6a4e 100644 --- a/hypr-configs/hyprland/hypr/configs/monitor/variants/laptop.conf +++ b/hypr-configs/hyprland/hypr/configs/monitor/variants/laptop.conf @@ -3,8 +3,8 @@ # name: "1920x1080" # ----------------------------------------------------- -monitor=,1920x1080@60,auto,1.2 +monitor=eDP-1,2880x1800@60,auto,1.5 xwayland { force_zero_scaling = true -} \ No newline at end of file +} diff --git a/hypr-configs/hyprland/hypr/hyprland.conf b/hypr-configs/hyprland/hypr/hyprland.conf index 636cfbc..37e2e87 100644 --- a/hypr-configs/hyprland/hypr/hyprland.conf +++ b/hypr-configs/hyprland/hypr/hyprland.conf @@ -21,9 +21,9 @@ env = QT_QPA_PLATFORM,wayland $SCRIPT_PATH = ~/.config/hypr/scripts $mainMod = SUPER -$terminal = alacritty -o "window.opacity=0" +$terminal = alacritty -o "window.opacity=0.4" $zterminal = alacritty -o "window.opacity=0.6" -e zellij -$fileManager = nemo +$fileManager = $SCRIPT_PATH/ranger-launch.sh $bluetooth-manager = blueman-manager $pkg_manager = octoxbps $locker = hyprlock @@ -69,4 +69,4 @@ source = ~/.config/hypr/configs/devices.conf source = ~/.config/hypr/configs/decoration/export.conf source = ~/.config/hypr/configs/layout.conf source = ~/.config/hypr/configs/keybinds.conf -source = ~/.config/hypr/configs/rules.conf \ No newline at end of file +source = ~/.config/hypr/configs/rules.conf diff --git a/hypr-configs/hyprland/hypr/scripts/ranger_launch.sh b/hypr-configs/hyprland/hypr/scripts/ranger_launch.sh new file mode 100644 index 0000000..d284635 --- /dev/null +++ b/hypr-configs/hyprland/hypr/scripts/ranger_launch.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +window_class="floating" + +if [[ $(pidof ranger) ]]; then + pkill ranger +fi + +exec alacritty --class $window_class -e ranger diff --git a/hypr-configs/hyprland/micro/colorschemes/everforest.micro b/hypr-configs/hyprland/micro/colorschemes/everforest.micro new file mode 100644 index 0000000..bed1314 --- /dev/null +++ b/hypr-configs/hyprland/micro/colorschemes/everforest.micro @@ -0,0 +1,26 @@ +color-link default "#9aa79d,#2d353be5" +color-link comment "#5e6a61,#2d353be5" +color-link symbol "#bf616a,#2d353be5" +color-link constant "#d08770,#2d353be5" +color-link constant.string "#ebcb8b,#2d353be5" +color-link constant.string.char "#ebcb8b,#2d353be5" +color-link identifier "#a3be8c,#2d353be5" +color-link statement "#bf616a,#2d353be5" +color-link preproc "#bf616a,#2d353be5" +color-link type "#dc7a7e,#2d353be5" +color-link special "#E57E00,#2d353be5" +color-link underlined "#bf616a" +color-link error "#bf616a,#2d353be5" +color-link hlsearch "#2d353be5,#fe8019" +color-link diff-added "#a3be8c" +color-link diff-modified "#ebcb8b" +color-link diff-deleted "#bf616a" +color-link gutter-error "#bf616a,#2d353be5" +color-link gutter-warning "##dc7a7e,#2d353be5" +color-link line-number "#d8dee9,#3c444c" +color-link current-line-number "#81a1c1,#2d353be5" +color-link cursor-line "#3a4248" +color-link color-column "#4c566a" +color-link statusline "#a3be8c,#4c566a" +color-link tabbar "#d8dee9,#4c566a" +color-link todo "#E57E00,#2d353be5" diff --git a/hypr-configs/hyprland/ranger/plugins/ranger_devicons/__init__.py b/hypr-configs/hyprland/ranger/plugins/ranger_devicons/__init__.py new file mode 100644 index 0000000..664b276 --- /dev/null +++ b/hypr-configs/hyprland/ranger/plugins/ranger_devicons/__init__.py @@ -0,0 +1,15 @@ +import os +import ranger.api +from ranger.core.linemode import LinemodeBase +from .devicons import * + +SEPARATOR = os.getenv('RANGER_DEVICONS_SEPARATOR', ' ') + +@ranger.api.register_linemode +class DevIconsLinemode(LinemodeBase): + name = "devicons" + + uses_metadata = False + + def filetitle(self, file, metadata): + return devicon(file) + SEPARATOR + file.relative_path diff --git a/hypr-configs/hyprland/ranger/plugins/ranger_devicons/__pycache__/__init__.cpython-312.pyc b/hypr-configs/hyprland/ranger/plugins/ranger_devicons/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e88370e745491d500455099d89a50df7b1efd39f GIT binary patch literal 984 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 literal 0 HcmV?d00001 diff --git a/hypr-configs/hyprland/ranger/plugins/ranger_devicons/devicons.py b/hypr-configs/hyprland/ranger/plugins/ranger_devicons/devicons.py new file mode 100644 index 0000000..41202ff --- /dev/null +++ b/hypr-configs/hyprland/ranger/plugins/ranger_devicons/devicons.py @@ -0,0 +1,441 @@ +#!/usr/bin/python +# coding=UTF-8 +# These glyphs, and the mapping of file extensions to glyphs +# has been copied from the vimscript code that is present in +# https://github.com/ryanoasis/vim-devicons + +import re +import os + + +# Get the XDG_USER_DIRS directory names from environment variables +xdgs_dirs = { + os.path.basename(os.getenv(key).rstrip('/')): icon + for key, icon in ( + ('XDG_DOCUMENTS_DIR', ''), + ('XDG_DOWNLOAD_DIR', ''), + ('XDG_CONFIG_DIR', ''), + ('XDG_MUSIC_DIR', ''), + ('XDG_PICTURES_DIR', ''), + ('XDG_PUBLICSHARE_DIR', ''), + ('XDG_TEMPLATES_DIR', ''), + ('XDG_VIDEOS_DIR', ''), + ) + if os.getenv(key) +} + + +# all those glyphs will show as weird squares if you don't have the correct patched font +# My advice is to use NerdFonts which can be found here: +# https://github.com/ryanoasis/nerd-fonts +file_node_extensions = { + '7z' : '', + 'a' : '', + 'ai' : '', + 'apk' : '', + 'asm' : '', + 'asp' : '', + 'aup' : '', + 'avi' : '', + 'awk' : '', + 'bash' : '', + 'bat' : '', + 'bmp' : '', + 'bz2' : '', + 'c' : '', + 'c++' : '', + 'cab' : '', + 'cbr' : '', + 'cbz' : '', + 'cc' : '', + 'class' : '', + 'clj' : '', + 'cljc' : '', + 'cljs' : '', + 'cmake' : '', + 'coffee' : '', + 'conf' : '', + 'cp' : '', + 'cpio' : '', + 'cpp' : '', + 'cs' : '󰌛', + 'csh' : '', + 'css' : '', + 'cue' : '', + 'cvs' : '', + 'cxx' : '', + 'd' : '', + 'dart' : '', + 'db' : '', + 'deb' : '', + 'diff' : '', + 'dll' : '', + 'wps' : '', + 'wpt' : '', + 'doc' : '', + 'docx' : '', + 'docm' : '', + 'dotx' : '', + 'dotm' : '', + 'dump' : '', + 'edn' : '', + 'eex' : '', + 'efi' : '', + 'ejs' : '', + 'elf' : '', + 'elm' : '', + 'epub' : '', + 'erl' : '', + 'ex' : '', + 'exe' : '', + 'exs' : '', + 'f#' : '', + 'fifo' : '󰟥', + 'fish' : '', + 'flac' : '', + 'flv' : '', + 'fs' : '', + 'fsi' : '', + 'fsscript' : '', + 'fsx' : '', + 'gem' : '', + 'gemspec' : '', + 'gif' : '', + 'go' : '', + 'gz' : '', + 'gzip' : '', + 'h' : '', + 'haml' : '', + 'hbs' : '', + 'hh' : '', + 'hpp' : '', + 'hrl' : '', + 'hs' : '', + 'htaccess' : '', + 'htm' : '', + 'html' : '', + 'htpasswd' : '', + 'hxx' : '', + 'ico' : '', + 'img' : '', + 'ini' : '', + 'iso' : '', + 'jar' : '', + 'java' : '', + 'jl' : '', + 'jpeg' : '', + 'jpg' : '', + 'js' : '', + 'json' : '', + 'jsx' : '', + 'key' : '', + 'ksh' : '', + 'leex' : '', + 'less' : '', + 'lha' : '', + 'lhs' : '', + 'log' : '', + 'lua' : '', + 'lzh' : '', + 'lzma' : '', + 'm4a' : '', + 'm4v' : '', + 'markdown' : '', + 'md' : '', + 'mdx' : '', + 'mjs' : '', + 'mkv' : '', + 'ml' : 'λ', + 'mli' : 'λ', + 'mov' : '', + 'mp3' : '', + 'mp4' : '', + 'mpeg' : '', + 'mpg' : '', + 'msi' : '', + 'mustache' : '', + 'nix' : '', + 'o' : '', + 'ogg' : '', + 'part' : '', + 'pdf' : '', + 'php' : '', + 'pl' : '', + 'pm' : '', + 'png' : '', + 'pp' : '', + 'dps' : '', + 'dpt' : '', + 'ppt' : '', + 'pptx' : '', + 'pptm' : '', + 'pot' : '', + 'potx' : '', + 'potm' : '', + 'pps' : '', + 'ppsx' : '', + 'ppsm' : '', + 'ps1' : '', + 'psb' : '', + 'psd' : '', + 'pub' : '', + 'py' : '', + 'pyc' : '', + 'pyd' : '', + 'pyo' : '', + 'r' : '󰟔', + 'rake' : '', + 'rar' : '', + 'rb' : '', + 'rc' : '', + 'rlib' : '', + 'rmd' : '', + 'rom' : '', + 'rpm' : '', + 'rproj' : '󰗆', + 'rs' : '', + 'rss' : '', + 'rtf' : '', + 's' : '', + 'sass' : '', + 'scala' : '', + 'scss' : '', + 'sh' : '', + 'slim' : '', + 'sln' : '', + 'so' : '', + 'sql' : '', + 'styl' : '', + 'suo' : '', + 'svelte' : '', + 'swift' : '', + 't' : '', + 'tar' : '', + 'tex' : '󰙩', + 'tgz' : '', + 'toml' : '', + 'torrent' : '', + 'ts' : '', + 'tsx' : '', + 'twig' : '', + 'vim' : '', + 'vimrc' : '', + 'vue' : '󰡄', + 'wav' : '', + 'webm' : '', + 'webmanifest' : '', + 'webp' : '', + 'xbps' : '', + 'xcplayground' : '', + 'xhtml' : '', + 'et' : '󰈛', + 'ett' : '󰈛', + 'xls' : '󰈛', + 'xlt' : '󰈛', + 'xlsx' : '󰈛', + 'xlsm' : '󰈛', + 'xlsb' : '󰈛', + 'xltx' : '󰈛', + 'xltm' : '󰈛', + 'xla' : '󰈛', + 'xlam' : '󰈛', + 'xml' : '', + 'xul' : '', + 'xz' : '', + 'yaml' : '', + 'yml' : '', + 'zip' : '', + 'zsh' : '', +} + + +dir_node_exact_matches = { +# English + '.git' : '', + 'Desktop' : '', + 'Documents' : '', + 'Downloads' : '', + 'Dotfiles' : '', + 'Dropbox' : '', + 'Music' : '', + 'Pictures' : '', + 'Public' : '', + 'Templates' : '', + 'Videos' : '', + 'anaconda3' : '', + 'go' : '', + 'workspace' : '', + 'OneDrive' : '', +# Spanish + 'Escritorio' : '', + 'Documentos' : '', + 'Descargas' : '', + 'Música' : '', + 'Imágenes' : '', + 'Público' : '', + 'Plantillas' : '', + 'Vídeos' : '', +# French + 'Bureau' : '', + 'Documents' : '', + 'Images' : '', + 'Musique' : '', + 'Publique' : '', + 'Téléchargements' : '', + 'Vidéos' : '', +# Portuguese + 'Documentos' : '', + 'Imagens' : '', + 'Modelos' : '', + 'Música' : '', + 'Público' : '', + 'Vídeos' : '', + 'Área de trabalho' : '', +# Italian + 'Documenti' : '', + 'Immagini' : '', + 'Modelli' : '', + 'Musica' : '', + 'Pubblici' : '', + 'Scaricati' : '', + 'Scrivania' : '', + 'Video' : '', +# German + 'Bilder' : '', + 'Dokumente' : '', + 'Musik' : '', + 'Schreibtisch' : '', + 'Vorlagen' : '', + 'Öffentlich' : '', +# Hungarian + 'Dokumentumok' : '', + 'Képek' : '', + 'Modelli' : '', + 'Zene' : '', + 'Letöltések' : '', + 'Számítógép' : '', + 'Videók' : '', +# Chinese(Simple) + '桌面' : '', + '文档' : '', + '下载' : '', + '音乐' : '', + '图片' : '', + '公共的' : '', + '公共' : '', + '模板' : '', + '视频' : '', +# Chinese(Traditional) + '桌面' : '', + '文檔' : '', + '下載' : '', + '音樂' : '', + '圖片' : '', + '公共的' : '', + '公共' : '', + '模板' : '', + '視頻' : '', +} + +# Python 2.x-3.4 don't support unpacking syntex `{**dict}` +# XDG_USER_DIRS +dir_node_exact_matches.update(xdgs_dirs) + + +file_node_exact_matches = { + '.bash_aliases' : '', + '.bash_history' : '', + '.bash_logout' : '', + '.bash_profile' : '', + '.bashprofile' : '', + '.bashrc' : '', + '.dmrc' : '', + '.DS_Store' : '', + '.fasd' : '', + '.fehbg' : '', + '.gitattributes' : '', + '.gitconfig' : '', + '.gitignore' : '', + '.gitlab-ci.yml' : '', + '.gvimrc' : '', + '.inputrc' : '', + '.jack-settings' : '', + '.mime.types' : '', + '.ncmpcpp' : '', + '.nvidia-settings-rc' : '', + '.pam_environment' : '', + '.profile' : '', + '.recently-used' : '', + '.selected_editor' : '', + '.vim' : '', + '.viminfo' : '', + '.vimrc' : '', + '.Xauthority' : '', + '.Xdefaults' : '', + '.xinitrc' : '', + '.xinputrc' : '', + '.Xresources' : '', + '.zshrc' : '', + '_gvimrc' : '', + '_vimrc' : '', + 'a.out' : '', + 'authorized_keys' : '', + 'bspwmrc' : '', + 'cmakelists.txt' : '', + 'config' : '', + 'config.ac' : '', + 'config.m4' : '', + 'config.mk' : '', + 'config.ru' : '', + 'configure' : '', + 'docker-compose.yml' : '', + 'dockerfile' : '', + 'Dockerfile' : '', + 'dropbox' : '', + 'exact-match-case-sensitive-1.txt' : 'X1', + 'exact-match-case-sensitive-2' : 'X2', + 'favicon.ico' : '', + 'gemfile' : '', + 'gruntfile.coffee' : '', + 'gruntfile.js' : '', + 'gruntfile.ls' : '', + 'gulpfile.coffee' : '', + 'gulpfile.js' : '', + 'gulpfile.ls' : '', + 'ini' : '', + 'known_hosts' : '', + 'ledger' : '', + 'license' : '', + 'LICENSE' : '', + 'LICENSE.md' : '', + 'LICENSE.txt' : '', + 'Makefile' : '', + 'makefile' : '', + 'Makefile.ac' : '', + 'Makefile.in' : '', + 'mimeapps.list' : '', + 'mix.lock' : '', + 'node_modules' : '', + 'package-lock.json' : '', + 'package.json' : '', + 'playlists' : '', + 'procfile' : '', + 'Rakefile' : '', + 'rakefile' : '', + 'react.jsx' : '', + 'README' : '', + 'README.markdown' : '', + 'README.md' : '', + 'README.rst' : '', + 'README.txt' : '', + 'sxhkdrc' : '', + 'user-dirs.dirs' : '', + 'webpack.config.js' : '', +} + + +def devicon(file): + if file.is_directory: + return dir_node_exact_matches.get(file.relative_path, '') + return file_node_exact_matches.get(os.path.basename(file.relative_path), + file_node_extensions.get(file.extension, '')) diff --git a/hypr-configs/hyprland/ranger/rc.conf b/hypr-configs/hyprland/ranger/rc.conf new file mode 100644 index 0000000..b67cf6c --- /dev/null +++ b/hypr-configs/hyprland/ranger/rc.conf @@ -0,0 +1,729 @@ +# =================================================================== +# This file contains the default startup commands for ranger. +# To change them, it is recommended to create either /etc/ranger/rc.conf +# (system-wide) or ~/.config/ranger/rc.conf (per user) and add your custom +# commands there. +# +# If you copy this whole file there, you may want to set the environment +# variable RANGER_LOAD_DEFAULT_RC to FALSE to avoid loading it twice. +# +# The purpose of this file is mainly to define keybindings and settings. +# For running more complex python code, please create a plugin in "plugins/" or +# a command in "commands.py". +# +# Each line is a command that will be run before the user interface +# is initialized. As a result, you can not use commands which rely +# on the UI such as :delete or :mark. +# =================================================================== + +# =================================================================== +# == Options +# =================================================================== +# Which viewmode should be used? Possible values are: +# miller: Use miller columns which show multiple levels of the hierarchy +# multipane: Midnight-commander like multipane view showing all tabs next +# to each other +set viewmode miller +#set viewmode multipane + +# How many columns are there, and what are their relative widths? +set column_ratios 2,2 + +# Which files should be hidden? (regular expression) +set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$ + +# Show hidden files? You can toggle this by typing 'zh' +set show_hidden false + +# Ask for a confirmation when running the "delete" command? +# Valid values are "always", "never", "multiple" (default) +# With "multiple", ranger will ask only if you delete multiple files at once. +set confirm_on_delete multiple + +# Use non-default path for file preview script? +# ranger ships with scope.sh, a script that calls external programs (see +# README.md for dependencies) to preview images, archives, etc. +set preview_script ~/.config/ranger/scope.sh + +# Use the external preview script or display simple plain text or image previews? +set use_preview_script true + +# Automatically count files in the directory, even before entering them? +set automatically_count_files true + +# Open all images in this directory when running certain image viewers +# like feh or sxiv? You can still open selected files by marking them. +set open_all_images true + +# Be aware of version control systems and display information. +set vcs_aware false + +# State of the four backends git, hg, bzr, svn. The possible states are +# disabled, local (only show local info), enabled (show local and remote +# information). +set vcs_backend_git enabled +set vcs_backend_hg disabled +set vcs_backend_bzr disabled +set vcs_backend_svn disabled + +# Truncate the long commit messages to this length when shown in the statusbar. +set vcs_msg_length 50 + +# Use one of the supported image preview protocols +set preview_images true +set preview_images_method ueberzug +#set preview_images_method w3m +set draw_borders true +# Delay in seconds before displaying an image with the w3m method. +# Increase it in case of experiencing display corruption. +#set w3m_delay 0.22 + +# Manually adjust the w3mimg offset when using a terminal which needs this +set w3m_offset 30 +#set ueberzug_offset 40 + +# Default iTerm2 font size (see: preview_images_method: iterm2) +set iterm2_font_width 8 +set iterm2_font_height 11 + +# Use a unicode "..." character to mark cut-off filenames? +set unicode_ellipsis false + +# BIDI support - try to properly display file names in RTL languages (Hebrew, Arabic). +# Requires the python-bidi pip package +set bidi_support false + +# Show dotfiles in the bookmark preview box? +set show_hidden_bookmarks true + +# Which colorscheme to use? These colorschemes are available by default: +# default, jungle, snow, solarized + +# Preview files on the rightmost column? +# And collapse (shrink) the last column if there is nothing to preview? +set preview_files true +set preview_directories true +set collapse_preview false + +# Wrap long lines in plain text previews? +set wrap_plaintext_previews false + +# Save the console history on exit? +set save_console_history true + +# Draw the status bar on top of the browser window (default: bottom) +set status_bar_on_top false + +# Draw a progress bar in the status bar which displays the average state of all +# currently running tasks which support progress bars? +set draw_progress_bar_in_status_bar true + +# Draw borders around columns? (separators, outline, both, or none) +# Separators are vertical lines between columns. +# Outline draws a box around all the columns. +# Both combines the two. +set draw_borders both + +# Display the directory name in tabs? +set dirname_in_tabs true + +# Enable the mouse support? +set mouse_enabled true + +# Display the file size in the main column or status bar? +set display_size_in_main_column true +set display_size_in_status_bar true + +# Display the free disk space in the status bar? +set display_free_space_in_status_bar true + +# Display files tags in all columns or only in main column? +set display_tags_in_all_columns true + +# Set a title for the window? Updates both `WM_NAME` and `WM_ICON_NAME` +set update_title false + +# Set the tmux/screen window-name to "ranger"? +set update_tmux_title true + +# Shorten the title if it gets long? The number defines how many +# directories are displayed at once, 0 turns off this feature. +set shorten_title 3 + +# Show hostname in titlebar? +set hostname_in_titlebar true + +# Abbreviate $HOME with ~ in the titlebar (first line) of ranger? +set tilde_in_titlebar false + +# How many directory-changes or console-commands should be kept in history? +set max_history_size 20 +set max_console_history_size 50 + +# Try to keep so much space between the top/bottom border when scrolling: +set scroll_offset 8 + +# Flush the input after each key hit? (Noticeable when ranger lags) +set flushinput true + +# Padding on the right when there's no preview? +# This allows you to click into the space to run the file. +set padding_right true + +# Save bookmarks (used with mX and `X) instantly? +# This helps to synchronize bookmarks between multiple ranger +# instances but leads to *slight* performance loss. +# When false, bookmarks are saved when ranger is exited. +set autosave_bookmarks true + +# Save the "`" bookmark to disk. This can be used to switch to the last +# directory by typing "``". +set save_backtick_bookmark true + +# You can display the "real" cumulative size of directories by using the +# command :get_cumulative_size or typing "dc". The size is expensive to +# calculate and will not be updated automatically. You can choose +# to update it automatically though by turning on this option: +set autoupdate_cumulative_size false + +# Turning this on makes sense for screen readers: +set show_cursor false + +# One of: size, natural, basename, atime, ctime, mtime, type, random +set sort natural + +# Additional sorting options +set sort_reverse false +set sort_case_insensitive true +set sort_directories_first true +set sort_unicode false + +# Enable this if key combinations with the Alt Key don't work for you. +# (Especially on xterm) +set xterm_alt_key false + +# Whether to include bookmarks in cd command +set cd_bookmarks true + +# Changes case sensitivity for the cd command tab completion +set cd_tab_case sensitive + +# Use fuzzy tab completion with the "cd" command. For example, +# ":cd /u/lo/b" expands to ":cd /usr/local/bin". +set cd_tab_fuzzy false + +# Avoid previewing files larger than this size, in bytes. Use a value of 0 to +# disable this feature. +set preview_max_size 0 + +# The key hint lists up to this size have their sublists expanded. +# Otherwise the submaps are replaced with "...". +set hint_collapse_threshold 10 + +# Add the highlighted file to the path in the titlebar +set show_selection_in_titlebar true + +# The delay that ranger idly waits for user input, in milliseconds, with a +# resolution of 100ms. Lower delay reduces lag between directory updates but +# increases CPU load. +set idle_delay 2000 + +# When the metadata manager module looks for metadata, should it only look for +# a ".metadata.json" file in the current directory, or do a deep search and +# check all directories above the current one as well? +set metadata_deep_search false + +# Clear all existing filters when leaving a directory +set clear_filters_on_dir_change false + +# Disable displaying line numbers in main column. +# Possible values: false, absolute, relative. +set line_numbers false + +# When line_numbers=relative show the absolute line number in the +# current line. +set relative_current_zero false + +# Start line numbers from 1 instead of 0 +set one_indexed false + +# Save tabs on exit +set save_tabs_on_exit true + +# Enable scroll wrapping - moving down while on the last item will wrap around to +# the top and vice versa. +set wrap_scroll false + +# Set the global_inode_type_filter to nothing. Possible options: d, f and l for +# directories, files and symlinks respectively. +set global_inode_type_filter + +# This setting allows to freeze the list of files to save I/O bandwidth. It +# should be 'false' during start-up, but you can toggle it by pressing F. +set freeze_files false + +# Print file sizes in bytes instead of the default human-readable format. +set size_in_bytes false + +# Warn at startup if RANGER_LEVEL env var is greater than 0, in other words +# give a warning when you nest ranger in a subshell started by ranger. +# Special value "error" makes the warning more visible. +set nested_ranger_warning true + +default_linemode devicons +# =================================================================== +# == Local Options +# =================================================================== +# You can set local options that only affect a single directory. + +# Examples: +# setlocal path=~/downloads sort mtime + +# =================================================================== +# == Command Aliases in the Console +# =================================================================== +# custom +map zz fzf_select +map ze shell vscodium -a %s + +map DD shell gio trash %s +map dD delete +map dT console trash + +map shell gio trash %s +# map console delete +map Tr shell gio trash --restore --force trash:///%s +map Te shell gio trash --empty + +map cC console touch%space +map cD console shell mkdir -p%space + +alias e edit +alias q quit +alias q! quit! +alias qa quitall +alias qa! quitall! +alias qall quitall +alias qall! quitall! +alias setl setlocal + +alias filter scout -prts +alias find scout -aets +alias mark scout -mr +alias unmark scout -Mr +alias search scout -rs +alias search_inc scout -rts +alias travel scout -aefklst + +# =================================================================== +# == Define keys for the browser +# =================================================================== + +# Basic +map Q quitall +map q quit +copymap q ZZ ZQ + +map R reload_cwd +map F set freeze_files! +map reset +map redraw_window +map abort +map change_mode normal +map ~ set viewmode! + +map i display_file +map scroll_preview 1 +map scroll_preview -1 +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 chain console; eval fm.ui.console.history_move(-1) + +# Change the line mode +map Mf linemode filename +map Mi linemode fileinfo +map Mm linemode mtime +map Mh linemode humanreadablemtime +map Mp linemode permissions +map Ms linemode sizemtime +map MH linemode sizehumanreadablemtime +map Mt linemode metatitle + +# Tagging / Marking +map t tag_toggle +map ut tag_remove +map " tag_toggle tag=%any +map mark_files toggle=True +map v mark_files all=True toggle=True +map uv mark_files all=True val=False +map V toggle_visual_mode +map uV toggle_visual_mode reverse=True + +# For the nostalgics: Midnight Commander bindings +map help +map rename_append +map display_file +map edit +map copy +map cut +map console mkdir%space +map console delete +#map console trash +map exit + +# In case you work on a keyboard with dvorak layout +map move up=1 +map move down=1 +map move left=1 +map move right=1 +map move to=0 +map move to=-1 +map move down=1 pages=True +map move up=1 pages=True +map move right=1 +map console touch%space + +# VIM-like +copymap k +copymap j +copymap h +copymap l +copymap gg +copymap G +copymap +copymap + +map J move down=0.5 pages=True +map K move up=0.5 pages=True +copymap J +copymap K + +# Jumping around +map H history_go -1 +map L history_go 1 +map ] move_parent 1 +map [ move_parent -1 +map } traverse +map { traverse_backwards +map ) jump_non + +map gh cd ~ +map ge cd /etc +map gu cd /usr +map gd cd /dev +map gl cd -r . +map gL cd -r %f +map go cd /opt +map gv cd /var +map gm cd /media +map gi eval fm.cd('/run/media/' + os.getenv('USER')) +map gM cd /mnt +map gs cd /srv +map gp cd /tmp +map gr cd / +map gR eval fm.cd(ranger.RANGERDIR) +map g/ cd / +map g? cd /usr/share/doc/ranger + +# External Programs +map E edit +map du shell -p du --max-depth=1 -h --apparent-size +map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh +map yp yank path +map yd yank dir +map yn yank name +map y. yank name_without_extension + +# Filesystem Operations +map = chmod + +map cw console rename%space +map a rename_append +map A eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%")) +map I eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"), position=7) + +map pp paste +map po paste overwrite=True +map pP paste append=True +map pO paste overwrite=True append=True +map pl paste_symlink relative=False +map pL paste_symlink relative=True +map phl paste_hardlink +map pht paste_hardlinked_subtree +map pd console paste dest= +map p` paste dest=%any_path +map p' paste dest=%any_path + +map dd cut +map ud uncut +map da cut mode=add +map dr cut mode=remove +map dt cut mode=toggle + +map yy copy +map uy uncut +map ya copy mode=add +map yr copy mode=remove +map yt copy mode=toggle + +# Temporary workarounds +map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier) +map dG eval fm.cut(dirarg=dict(to=-1), narg=quantifier) +map dj eval fm.cut(dirarg=dict(down=1), narg=quantifier) +map dk eval fm.cut(dirarg=dict(up=1), narg=quantifier) +map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier) +map yG eval fm.copy(dirarg=dict(to=-1), narg=quantifier) +map yj eval fm.copy(dirarg=dict(down=1), narg=quantifier) +map yk eval fm.copy(dirarg=dict(up=1), narg=quantifier) + +# Searching +map / console search%space +map n search_next +map N search_next forward=False +map ct search_next order=tag +map cs search_next order=size +map ci search_next order=mimetype +map cc search_next order=ctime +map cm search_next order=mtime +map ca search_next order=atime + +# Tabs +map tab_new +map tab_close +map tab_move 1 +map tab_move -1 +map tab_move 1 +map 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 tab_open 1 +map tab_open 2 +map tab_open 3 +map tab_open 4 +map tab_open 5 +map tab_open 6 +map tab_open 7 +map tab_open 8 +map tab_open 9 +map tab_shift 1 +map tab_shift -1 + +# Sorting +map or set sort_reverse! +map oz set sort=random +map os chain set sort=size; set sort_reverse=False +map ob chain set sort=basename; set sort_reverse=False +map on chain set sort=natural; set sort_reverse=False +map om chain set sort=mtime; set sort_reverse=False +map oc chain set sort=ctime; set sort_reverse=False +map oa chain set sort=atime; set sort_reverse=False +map ot chain set sort=type; set sort_reverse=False +map oe chain set sort=extension; set sort_reverse=False + +map oS chain set sort=size; set sort_reverse=True +map oB chain set sort=basename; set sort_reverse=True +map oN chain set sort=natural; set sort_reverse=True +map oM chain set sort=mtime; set sort_reverse=True +map oC chain set sort=ctime; set sort_reverse=True +map oA chain set sort=atime; set sort_reverse=True +map oT chain set sort=type; set sort_reverse=True +map oE chain set sort=extension; set sort_reverse=True + +map dc get_cumulative_size + +# Settings +map zc set collapse_preview! +map zd set sort_directories_first! +map zh set show_hidden! +map set show_hidden! +copymap +copymap +map zI set flushinput! +map zi set preview_images! +map zm set mouse_enabled! +map zp set preview_files! +map zP set preview_directories! +map zs set sort_case_insensitive! +map zu set autoupdate_cumulative_size! +map zv set use_preview_script! +map zf console filter%space +# copymap zf zz + +# Filter stack +map .d filter_stack add type d +map .f filter_stack add type f +map .l filter_stack add type l +map .m console filter_stack add mime%space +map .n console filter_stack add name%space +map .# console filter_stack add hash%space +map ." filter_stack add duplicate +map .' filter_stack add unique +map .| filter_stack add or +map .& filter_stack add and +map .! filter_stack add not +map .r filter_stack rotate +map .c filter_stack clear +map .* filter_stack decompose +map .p filter_stack pop +map .. filter_stack show + +# Bookmarks +map ` enter_bookmark %any +map ' enter_bookmark %any +map m set_bookmark %any +map um unset_bookmark %any + +map m draw_bookmarks +copymap m um ` ' + +# Generate all the chmod bindings with some python help: +eval for arg in "rwxXst": cmd("map +u{0} shell -f chmod u+{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map +g{0} shell -f chmod g+{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map +o{0} shell -f chmod o+{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map +a{0} shell -f chmod a+{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map +{0} shell -f chmod u+{0} %s".format(arg)) + +eval for arg in "rwxXst": cmd("map -u{0} shell -f chmod u-{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map -g{0} shell -f chmod g-{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map -o{0} shell -f chmod o-{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map -a{0} shell -f chmod a-{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map -{0} shell -f chmod u-{0} %s".format(arg)) + +# =================================================================== +# == Define keys for the console +# =================================================================== +# Note: Unmapped keys are passed directly to the console. + +# Basic +cmap eval fm.ui.console.tab() +cmap eval fm.ui.console.tab(-1) +cmap eval fm.ui.console.close() +cmap eval fm.ui.console.execute() +cmap redraw_window + +copycmap +copycmap + +# Move around +cmap eval fm.ui.console.history_move(-1) +cmap eval fm.ui.console.history_move(1) +cmap eval fm.ui.console.move(left=1) +cmap eval fm.ui.console.move(right=1) +cmap eval fm.ui.console.move(right=0, absolute=True) +cmap eval fm.ui.console.move(right=-1, absolute=True) +cmap eval fm.ui.console.move_word(left=1) +cmap eval fm.ui.console.move_word(right=1) + +copycmap +copycmap + +# Line Editing +cmap eval fm.ui.console.delete(-1) +cmap eval fm.ui.console.delete(0) +cmap eval fm.ui.console.delete_word() +cmap eval fm.ui.console.delete_word(backward=False) +cmap eval fm.ui.console.delete_rest(1) +cmap eval fm.ui.console.delete_rest(-1) +cmap eval fm.ui.console.paste() + +# And of course the emacs way +copycmap +copycmap +copycmap +copycmap +copycmap +copycmap +copycmap +copycmap +copycmap + +# Note: There are multiple ways to express backspaces. (code 263) +# and (code 127). To be sure, use both. +copycmap + +# This special expression allows typing in numerals: +cmap false + +# =================================================================== +# == Pager Keybindings +# =================================================================== + +# Movement +pmap pager_move down=1 +pmap pager_move up=1 +pmap pager_move left=4 +pmap pager_move right=4 +pmap pager_move to=0 +pmap pager_move to=-1 +pmap pager_move down=1.0 pages=True +pmap pager_move up=1.0 pages=True +pmap pager_move down=0.5 pages=True +pmap pager_move up=0.5 pages=True + +copypmap k +copypmap j +copypmap h +copypmap l +copypmap g +copypmap G +copypmap d +copypmap u +copypmap n f +copypmap p b + +# Basic +pmap redraw_window +pmap pager_close +copypmap q Q i +pmap E edit_file + +# =================================================================== +# == Taskview Keybindings +# =================================================================== + +# Movement +tmap taskview_move up=1 +tmap taskview_move down=1 +tmap taskview_move to=0 +tmap taskview_move to=-1 +tmap taskview_move down=1.0 pages=True +tmap taskview_move up=1.0 pages=True +tmap taskview_move down=0.5 pages=True +tmap taskview_move up=0.5 pages=True + +copytmap k +copytmap j +copytmap g +copytmap G +copytmap u +copytmap n f +copytmap p b + +# Changing priority and deleting tasks +tmap J eval -q fm.ui.taskview.task_move(-1) +tmap K eval -q fm.ui.taskview.task_move(0) +tmap dd eval -q fm.ui.taskview.task_remove() +tmap eval -q fm.ui.taskview.task_move(-1) +tmap eval -q fm.ui.taskview.task_move(0) +tmap eval -q fm.ui.taskview.task_remove() + +# Basic +tmap redraw_window +tmap taskview_close +copytmap q Q w diff --git a/hypr-configs/hyprland/ranger/rifle.conf b/hypr-configs/hyprland/ranger/rifle.conf new file mode 100755 index 0000000..47bb87c --- /dev/null +++ b/hypr-configs/hyprland/ranger/rifle.conf @@ -0,0 +1,218 @@ +# vim: ft=cfg +# +# This is the configuration file of "rifle", ranger's file executor/opener. +# Each line consists of conditions and a command. For each line the conditions +# are checked and if they are met, the respective command is run. +# +# Syntax: +# , , ... = command +# +# The command can contain these environment variables: +# $1-$9 | The n-th selected file +# $@ | All selected files +# +# If you use the special command "ask", rifle will ask you what program to run. +# +# Prefixing a condition with "!" will negate its result. +# These conditions are currently supported: +# match | The regexp matches $1 +# ext | The regexp matches the extension of $1 +# mime | The regexp matches the mime type of $1 +# name | The regexp matches the basename of $1 +# path | The regexp matches the absolute path of $1 +# has | The program is installed (i.e. located in $PATH) +# env | The environment variable "variable" is non-empty +# file | $1 is a file +# directory | $1 is a directory +# number | change the number of this command to n +# terminal | stdin, stderr and stdout are connected to a terminal +# X | $DISPLAY is not empty (i.e. Xorg runs) +# +# There are also pseudo-conditions which have a "side effect": +# flag | Change how the program is run. See below. +# label