From 272ef703a90442f2e60c572d159cf5cfd7a97e77 Mon Sep 17 00:00:00 2001 From: Wallesntein Date: Wed, 26 Jun 2024 18:47:13 +0300 Subject: [PATCH] initial --- .config/cava/config | 262 ++++++ .config/cmus/autosave | 207 +++++ .config/hypr/hyprland.conf | 1 + .../alacritty/.alacritty.toml.kate-swp | Bin 0 -> 125 bytes .../themes/hypr_void/alacritty/alacritty.toml | 48 + .../hypr/themes/hypr_void/hypr/hyprland.conf | 234 +++++ .../hypr/themes/hypr_void/scripts/scope.sh | 159 ++++ .../hypr/themes/hypr_void/scripts/weather.sh | 75 ++ .config/hypr/themes/hypr_void/waybar/config | 121 +++ .../hypr/themes/hypr_void/waybar/style.css | 105 +++ .config/hypr/themes/hypr_void/wofi/config | 92 ++ .config/hypr/themes/hypr_void/wofi/style.css | 80 ++ .config/micro/colorschemes/everforest.micro | 26 + .config/neofetch/config.conf | 817 ++++++++++++++++++ .config/neofetch/void.ascii | 16 + .../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 ++++++++++ .config/ranger/rc.conf | 729 ++++++++++++++++ .config/ranger/rifle.conf | 218 +++++ .config/ranger/scope.sh | 159 ++++ .img/1.jpg | Bin 0 -> 169307 bytes .img/2.jpg | Bin 0 -> 179135 bytes .img/3.jpg | Bin 0 -> 176180 bytes .img/4.jpg | Bin 0 -> 118430 bytes .img/5.jpg | Bin 0 -> 147276 bytes .img/6.jpg | Bin 0 -> 152160 bytes 28 files changed, 3805 insertions(+) create mode 100644 .config/cava/config create mode 100644 .config/cmus/autosave create mode 100644 .config/hypr/hyprland.conf create mode 100644 .config/hypr/themes/hypr_void/alacritty/.alacritty.toml.kate-swp create mode 100644 .config/hypr/themes/hypr_void/alacritty/alacritty.toml create mode 100644 .config/hypr/themes/hypr_void/hypr/hyprland.conf create mode 100755 .config/hypr/themes/hypr_void/scripts/scope.sh create mode 100755 .config/hypr/themes/hypr_void/scripts/weather.sh create mode 100644 .config/hypr/themes/hypr_void/waybar/config create mode 100644 .config/hypr/themes/hypr_void/waybar/style.css create mode 100755 .config/hypr/themes/hypr_void/wofi/config create mode 100755 .config/hypr/themes/hypr_void/wofi/style.css create mode 100644 .config/micro/colorschemes/everforest.micro create mode 100644 .config/neofetch/config.conf create mode 100644 .config/neofetch/void.ascii create mode 100644 .config/ranger/plugins/ranger_devicons/__init__.py create mode 100644 .config/ranger/plugins/ranger_devicons/__pycache__/__init__.cpython-312.pyc create mode 100644 .config/ranger/plugins/ranger_devicons/__pycache__/devicons.cpython-312.pyc create mode 100644 .config/ranger/plugins/ranger_devicons/devicons.py create mode 100644 .config/ranger/rc.conf create mode 100755 .config/ranger/rifle.conf create mode 100755 .config/ranger/scope.sh create mode 100644 .img/1.jpg create mode 100644 .img/2.jpg create mode 100644 .img/3.jpg create mode 100644 .img/4.jpg create mode 100644 .img/5.jpg create mode 100644 .img/6.jpg diff --git a/.config/cava/config b/.config/cava/config new file mode 100644 index 0000000..93973c4 --- /dev/null +++ b/.config/cava/config @@ -0,0 +1,262 @@ +## Configuration file for CAVA. +# Remove the ; to change parameters. + + +[general] + +# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0 +; mode = normal + +# Accepts only non-negative values. +; framerate = 60 + +# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off +# new as of 0.6.0 autosens of low values (dynamic range) +# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0 +; autosens = 1 +; overshoot = 20 + +# Manual sensitivity in %. If autosens is enabled, this will only be the initial value. +# 200 means double height. Accepts only non-negative values. +; sensitivity = 100 + +# The number of bars (0-512). 0 sets it to auto (fill up console). +# Bars' width and space between bars in number of characters. +; bars = 0 +; bar_width = 2 +; bar_spacing = 1 +# bar_height is only used for output in "noritake" format +; bar_height = 32 + +# For SDL width and space between bars is in pixels, defaults are: +; bar_width = 20 +; bar_spacing = 5 + +# sdl_glsl have these default values, they are only used to calulate max number of bars. +; bar_width = 1 +; bar_spacing = 0 + + +# Lower and higher cutoff frequencies for lowest and highest bars +# the bandwidth of the visualizer. +# Note: there is a minimum total bandwidth of 43Mhz x number of bars. +# Cava will automatically increase the higher cutoff if a too low band is specified. +; lower_cutoff_freq = 50 +; higher_cutoff_freq = 10000 + + +# Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and +# only check for input once per second. Cava will wake up once input is detected. 0 = disable. +; sleep_timer = 0 + + +[input] + +# Audio capturing method. Possible methods are: 'fifo', 'portaudio', 'pipewire', 'alsa', 'pulse', 'sndio', 'oss' or 'shmem' +# Defaults to 'oss', 'sndio', 'pipewire', 'pulse', 'alsa', 'portaudio' or 'fifo', in that order, dependent on what support cava was built with. +# On Mac it defaults to 'portaudio' or 'fifo' +# On windows this is automatic and no input settings are needed. +# +# All input methods uses the same config variable 'source' +# to define where it should get the audio. +# +# For pulseaudio and pipewire 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink +# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them). +# +# For pipewire 'source' will be the object name or object.serial of the device to capture from. +# Both input and output devices are supported. +# +# For alsa 'source' will be the capture device. +# For fifo 'source' will be the path to fifo-file. +# For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address +# +# For sndio 'source' will be a monitor sub-device, e.g. 'snd/0.monitor'. Default: 'default', in which case a device +# should be specified with the environment variable AUDIODEVICE, e.g. on the commandline: AUDIODEVICE=snd/0.monitor cava. +# +# For oss 'source' will be the path to a audio device, e.g. '/dev/dsp2'. Default: '/dev/dsp', i.e. the default audio device. +# README.md contains further information on how to setup CAVA for OSS on FreeBSD. +# + method = pulse + source = auto + +; method = pipewire +; source = auto + +; method = alsa +; source = hw:Loopback,1 + +; method = fifo +; source = /tmp/mpd.fifo + +; method = shmem +; source = /squeezelite-AA:BB:CC:DD:EE:FF + +; method = portaudio +; source = auto + +; method = sndio +; source = default + +; method = oss +; source = /dev/dsp + +# The sample rate and format can be configured for some input methods. Currently +# the following methods support such a configuration: 'fifo', 'pipewire' and 'oss'. +# Other methods ignore these settings. +# +# For 'oss' they are only preferred values, i.e. if the values are not supported +# by the chosen audio device, the device will use other supported values instead. +# Example: 48000 and 32, but the device only supports 44100 and 16, then it will +# use 44100 and 16. +# +; sample_rate = 44100 +; sample_bits = 16 + + +[output] + +# Output method. Can be 'ncurses', 'noncurses', 'raw', 'noritake', 'sdl' +# or 'sdl_glsl'. +# 'noncurses' (default) uses a buffer and cursor movements to only print +# changes from frame to frame in the terminal. Uses less resources and is less +# prone to tearing (vsync issues) than 'ncurses'. +# +# 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data +# stream of the bar heights that can be used to send to other applications. +# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above. +# +# 'noritake' outputs a bitmap in the format expected by a Noritake VFD display +# in graphic mode. It only support the 3000 series graphical VFDs for now. +# +# 'sdl' uses the Simple DirectMedia Layer to render in a graphical context. +# 'sdl_glsl' uses SDL to create an OpenGL context. Write your own shaders or +# use one of the predefined ones. +; method = noncurses + +# Orientation of the visualization. Can be 'bottom', 'top', 'left' or 'right'. +# Default is 'bottom'. Other orientations are only supported on sdl and ncruses +# output. Note: many fonts have weird glyphs for 'top' and 'right' characters, +# which can make ncurses not look right. +; orientation = bottom + +# Visual channels. Can be 'stereo' or 'mono'. +# 'stereo' mirrors both channels with low frequencies in center. +# 'mono' outputs left to right lowest to highest frequencies. +# 'mono_option' set mono to either take input from 'left', 'right' or 'average'. +# set 'reverse' to 1 to display frequencies the other way around. +; channels = stereo +; mono_option = average +; reverse = 0 + +# Raw output target. A fifo will be created if target does not exist. +; raw_target = /dev/stdout + +# Raw data format. Can be 'binary' or 'ascii'. +; data_format = binary + +# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530). +; bit_format = 16bit + +# Ascii max value. In 'ascii' mode range will run from 0 to value specified here +; ascii_max_range = 1000 + +# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters. +# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)). +; bar_delimiter = 59 +; frame_delimiter = 10 + +# sdl window size and position. -1,-1 is centered. +; sdl_width = 1000 +; sdl_height = 500 +; sdl_x = -1 +; sdl_y= -1 +; sdl_full_screen = 0 + +# set label on bars on the x-axis. Can be 'frequency' or 'none'. Default: 'none' +# 'frequency' displays the lower cut off frequency of the bar above. +# Only supported on ncurses and noncurses output. +; xaxis = none + +# enable alacritty synchronized updates. 1 = on, 0 = off +# removes flickering in alacritty terminal emulator. +# defaults to off since the behaviour in other terminal emulators is unknown +; alacritty_sync = 0 + +# Shaders for sdl_glsl, located in $HOME/.config/cava/shaders +; vertex_shader = pass_through.vert +; fragment_shader = bar_spectrum.frag + +; for glsl output mode, keep rendering even if no audio +; continuous_rendering = 0 + +# disable console blank (screen saver) in tty +# (Not supported on FreeBSD) +; disable_blanking = 0 + +[color] + +# Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow. +# Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires +# a terminal that can change color definitions such as Gnome-terminal or rxvt. +# default is to keep current terminal color +; background = default +; foreground = default + +# SDL and sdl_glsl only support hex code colors, these are the default: +; background = '#111111' +; foreground = '#a7c080' + + +# Gradient mode, only hex defined colors are supported, +# background must also be defined in hex or remain commented out. 1 = on, 0 = off. +# You can define as many as 8 different colors. They range from bottom to top of screen + gradient = 1 + gradient_count = 8 + gradient_color_1 = '#d7bc7f' + gradient_color_2 = '#d2bd80' + gradient_color_3 = '#cbbd80' + gradient_color_4 = '#c4bd7f' + gradient_color_5 = '#bdbe80' + gradient_color_6 = '#b6bf80' + gradient_color_7 = '#b1bf80' + gradient_color_8 = '#b1bf80' + + + +[smoothing] + +# Percentage value for integral smoothing. Takes values from 0 - 100. +# Higher values means smoother, but less precise. 0 to disable. +# DEPRECATED as of 0.8.0, use noise_reduction instead +; integral = 77 + +# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable. +; monstercat = 0 +; waves = 0 + +# Set gravity percentage for "drop off". Higher values means bars will drop faster. +# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off". +# DEPRECATED as of 0.8.0, use noise_reduction instead +; gravity = 100 + + +# In bar height, bars that would have been lower that this will not be drawn. +# DEPRECATED as of 0.8.0 +; ignore = 0 + +# Noise reduction, int 0 - 100. default 77 +# the raw visualization is very noisy, this factor adjusts the integral and gravity filters to keep the signal smooth +# 100 will be very slow and smooth, 0 will be fast but noisy. +; noise_reduction = 77 + + +[eq] + +# This one is tricky. You can have as much keys as you want. +# Remember to uncomment more than one key! More keys = more precision. +# Look at readme.md on github for further explanations and examples. +; 1 = 1 # bass +; 2 = 1 +; 3 = 1 # midtone +; 4 = 1 +; 5 = 1 # treble diff --git a/.config/cmus/autosave b/.config/cmus/autosave new file mode 100644 index 0000000..c479dbf --- /dev/null +++ b/.config/cmus/autosave @@ -0,0 +1,207 @@ +set aaa_mode=all +set altformat_current= %F +set altformat_playlist= %F +set altformat_title= %F +set altformat_trackwin= %f%= %d +set auto_expand_albums_follow=true +set auto_expand_albums_search=true +set auto_expand_albums_selcur=true +set auto_reshuffle=true +set buffer_seconds=10 +set color_cmdline_attr=default +set color_cmdline_bg=default +set color_cmdline_fg=default +set color_cur_sel_attr=default +set color_error=lightred +set color_info=green +set color_separator=default +set color_statusline_attr=default +set color_statusline_bg=black +set color_statusline_fg=green +set color_titleline_attr=default +set color_titleline_bg=default +set color_titleline_fg=green +set color_trackwin_album_attr=bold +set color_trackwin_album_bg=green +set color_trackwin_album_fg=default +set color_win_attr=default +set color_win_bg=default +set color_win_cur=green +set color_win_cur_attr=default +set color_win_cur_sel_attr=default +set color_win_cur_sel_bg=green +set color_win_cur_sel_fg=black +set color_win_dir=green +set color_win_fg=white +set color_win_inactive_cur_sel_attr=default +set color_win_inactive_cur_sel_bg=gray +set color_win_inactive_cur_sel_fg=black +set color_win_inactive_sel_attr=default +set color_win_inactive_sel_bg=gray +set color_win_inactive_sel_fg=black +set color_win_sel_attr=default +set color_win_sel_bg=green +set color_win_sel_fg=black +set color_win_title_attr=default +set color_win_title_bg=green +set color_win_title_fg=black +set confirm_run=true +set continue=true +set continue_album=true +set device=/dev/cdrom +set display_artist_sort_name=false +set dsp.alsa.device=default +set follow=false +set format_clipped_text=… +set format_current= %a - %l%! - %n. %t%= %y +set format_playlist= %F +set format_playlist_va= %-21%A %3n. %t (%a)%= %y %d %{?X!=0?%3X ? } +set format_statusline= %{status} %{?show_playback_position?%{position} %{?duration?/ %{duration} }?%{?duration?%{duration} }}- %{total} %{?bpm>0?at %{bpm} BPM }%{?volume>=0?vol: %{?lvolume!=rvolume?%{lvolume},%{rvolume} ?%{volume} }}%{?stream?buf: %{buffer} }%{?show_current_bitrate & bitrate>=0? %{bitrate} kbps }%=%{?repeat_current?repeat current?%{?play_library?%{playlist_mode} from %{?play_sorted?sorted }library?playlist}} | %1{continue}%1{follow}%1{repeat}%1{shuffle} +set format_title=%a - %l - %t (%y) +set format_trackwin=%3n. %t%= %y %d +set format_trackwin_album= %l %= %{albumduration} +set format_trackwin_va=%3n. %t (%a)%= %y %d +set format_treewin= %l +set format_treewin_artist=%a +set icecast_default_charset=ISO-8859-1 +set id3_default_charset=ISO-8859-1 +set input.cue.priority=50 +set input.mad.priority=55 +set input.vorbis.priority=50 +set input.wav.priority=50 +set lib_add_filter= +set lib_sort=albumartist date album discnumber tracknumber title filename play_count +set mixer.alsa.channel=PCM +set mixer.alsa.device=default +set mixer.pulse.restore_volume=1 +set mouse=true +set mpris=false +set output_plugin=pulse +set passwd= +set pause_on_output_change=false +set pl_sort= +set play_library=false +set play_sorted=false +set repeat=false +set repeat_current=false +set replaygain=disabled +set replaygain_limit=true +set replaygain_preamp=0.000000 +set resume=false +set rewind_offset=5 +set scroll_offset=2 +set set_term_title=true +set show_all_tracks=true +set show_current_bitrate=false +set show_hidden=false +set show_playback_position=true +set show_remaining_time=false +set shuffle=off +set skip_track_info=false +set smart_artist_sort=true +set softvol=false +set softvol_state=0 0 +set start_view=tree +set status_display_program= +set stop_after_queue=false +set time_show_leading_zero=true +set tree_width_max=0 +set tree_width_percent=33 +set wrap_search=true +bind browser backspace browser-up +bind browser i toggle show_hidden +bind browser space win-activate +bind browser u win-update +bind common ! push shell +bind common + vol +10% +bind common , seek -1m +bind common - vol -10% +bind common . seek +1m +bind common / search-start +bind common 1 view tree +bind common 2 view sorted +bind common 3 view playlist +bind common 4 view queue +bind common 5 view browser +bind common 6 view filters +bind common 7 view settings +bind common = vol +10% +bind common ? search-b-start +bind common B player-next-album +bind common C toggle continue +bind common D win-remove +bind common E win-add-Q +bind common F push filter +bind common G win-bottom +bind common I echo {} +bind common L push live-filter +bind common M toggle play_library +bind common N search-prev +bind common P win-mv-before +bind common U win-update-cache +bind common Z player-prev-album +bind common [ vol +1% +0 +bind common ] vol +0 +1% +bind common ^B win-page-up +bind common ^C echo Type :quit to exit cmus. +bind common ^D win-half-page-down +bind common ^E win-scroll-down +bind common ^F win-page-down +bind common ^L refresh +bind common ^R toggle repeat_current +bind common ^U win-half-page-up +bind common ^Y win-scroll-up +bind common a win-add-l +bind common b player-next +bind common c player-pause +bind common delete win-remove +bind common down win-down +bind common e win-add-q +bind common end win-bottom +bind common enter win-activate +bind common f toggle follow +bind common g win-top +bind common h seek -5 +bind common home win-top +bind common i win-sel-cur +bind common j win-down +bind common k win-up +bind common l seek +5 +bind common left seek -5 +bind common m toggle aaa_mode +bind common mlb_click_bar player-pause +bind common mlb_click_selected win-activate +bind common mouse_scroll_down win-down +bind common mouse_scroll_down_bar seek -5 +bind common mouse_scroll_down_title right-view +bind common mouse_scroll_up win-up +bind common mouse_scroll_up_bar seek +5 +bind common mouse_scroll_up_title left-view +bind common n search-next +bind common o toggle play_sorted +bind common p win-mv-after +bind common page_down win-page-down +bind common page_up win-page-up +bind common q quit -i +bind common r toggle repeat +bind common right seek +5 +bind common s toggle shuffle +bind common space win-toggle +bind common t toggle show_remaining_time +bind common tab win-next +bind common u update-cache +bind common up win-up +bind common v player-stop +bind common x player-play +bind common y win-add-p +bind common z player-prev +bind common { vol -1% -0 +bind common } vol -0 -1% +fset 90s=date>=1990&date<2000 +fset classical=genre="Classical" +fset missing-tag=!stream&(artist=""|album=""|title=""|tracknumber=-1|date=-1) +fset mp3=filename="*.mp3" +fset ogg=filename="*.ogg" +fset ogg-or-mp3=ogg|mp3 +fset unheard=play_count=0 +factivate diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf new file mode 100644 index 0000000..ca2b307 --- /dev/null +++ b/.config/hypr/hyprland.conf @@ -0,0 +1 @@ +source = ~/.config/hypr/themes/hypr_void/hypr/hyprland.conf diff --git a/.config/hypr/themes/hypr_void/alacritty/.alacritty.toml.kate-swp b/.config/hypr/themes/hypr_void/alacritty/.alacritty.toml.kate-swp new file mode 100644 index 0000000000000000000000000000000000000000..ae884c49eae4238c3b03c2013ea23720f299eafb GIT binary patch literal 125 zcmZQzU=Z?7EJ;-eE>A2_aLdd|RWQ;sU|?Vn+3Zr~&Tgh`X5F_%WKYU$FQ%`opM!&d jGO|F-0mPiH!JbH5MiU5M11QD|#Eb?AJ|7yNAHoL!HV_lF literal 0 HcmV?d00001 diff --git a/.config/hypr/themes/hypr_void/alacritty/alacritty.toml b/.config/hypr/themes/hypr_void/alacritty/alacritty.toml new file mode 100644 index 0000000..b3447a4 --- /dev/null +++ b/.config/hypr/themes/hypr_void/alacritty/alacritty.toml @@ -0,0 +1,48 @@ +[colors.bright] +black = "#d3c6aa" +blue = "#7fbbb3" +cyan = "#83c092" +green = "#a7c080" +magenta = "#d699b6" +red = "#e67e80" +white = "#859289" +yellow = "#dbbc7f" + +[colors.cursor] +cursor = "CellForeground" +text = "CellBackground" + +[colors.normal] +black = "#343f44" +blue = "#7fbbb3" +cyan = "#83c092" +green = "#a7c080" +magenta = "#d699b6" +red = "#e67e80" +white = "#d3c6aa" +yellow = "#dbbc7f" + +[colors.primary] +background = "#1e2327" +foreground = "#d3c6aa" + +[font] +size = 10.0 + +[font.bold] +family = "JetBrainsMono" +style = "Bold" + +[font.normal] +family = "JetBrainsMono" +style = "Medium" + +[scrolling] +history = 100 + +[window] +opacity = 0.97 + +[window.padding] +x = 15 +y = 15 diff --git a/.config/hypr/themes/hypr_void/hypr/hyprland.conf b/.config/hypr/themes/hypr_void/hypr/hyprland.conf new file mode 100644 index 0000000..2205672 --- /dev/null +++ b/.config/hypr/themes/hypr_void/hypr/hyprland.conf @@ -0,0 +1,234 @@ +#--- ВЛЮЧЕНИЕ ЖЕЛТОЙ СТРОКИ КОТОРАЯ ПОСЛЕ УСТАНОВКИ СВЕРХУ ВИСИТ -------------- +#autogenerated = 1 # remove this line to remove the warning + +env = QT_QPA_PLATFORM,wayland + +#--- НАСТРОЙКА МОНИТОРОВ ------------------------------------------------------ +monitor=eDP-1,2880x1800@60,auto,1.5 + + +#--- АВТОСТАРТ ---------------------------------------------------------------- +exec-once = pipewire +#exec-once = pipewire-pulse +exec-once = wireplumber +exec-once = iio-sensor-proxy & iio-hyprland + + +exec-once = waybar -c .config/hypr/themes/hypr_void/waybar/config -s .config/hypr/themes/hypr_void/waybar/style.css +exec-once = swaybg -i .wallpapers/pixelart_2222.jpg & sleep 2 +#exec-once = telegram-desktop +#exec-once = telegram-desktop -startintray +#exec-once = firefox + + +#--- ПОДКЛЮЧЕНИЕ ДОПОЛНИТЕЛЬНЫХ ФАЙЛОВ С КОНФИГОМ ---------------------------- +# Source a file (multi-file configs) +# source = ~/.config/hypr/myColors.conf + +#--- ПЕРЕМЕННЫЕ --------------------------------------------------------------- +$terminal = alacritty --config-file ~/.config/hypr/themes/hypr_void/alacritty/alacritty.toml +$fileManager = nemo + + +#--- КУРСОР ------------------------------------------------------------------- +env = XCURSOR_SIZE,24 +env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that + +#--- РАСКЛАДКА КЛАВИАТУРЫ ----------------------------------------------------- +input { + kb_layout = us,ru + kb_variant = + kb_model = + kb_options = grp:caps_toggle + kb_rules = + +#--- ЭТО ЧТО БЫ ФОКУС ЗА МЫШЬЮ СЛЕДОВАЛ --------------------------------------- + follow_mouse = 1 + +#--- ТАЧПАД ------------------------------------------------------------------- + touchpad { + natural_scroll = yes + } + +#--- ЧУВСТВИТЕЛЬНОСТЬ МЫШИ ---------------------------------------------------- + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. +} + + +general { +#--- ГАПСЫ, БОРДЕРЫ, ЦВЕТА... ------------------------------------------------- + gaps_in = 5 + gaps_out = 10 + border_size = 1 + col.active_border = rgba(d3c6aaff) +# col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.inactive_border = rgba(1e2327fa) + +#--- МАКЕТ РАСРОЛОЖЕНИЕ ОКОН (master что бы как в dwm) ------------------------ + layout = dwindle + +#--- ОТКЛЮЧИТЬ БОРДЕР У ПЛАВАЮЩИХ ОКОН ---------------------------------------- +no_border_on_floating = false + +#--- ЧТО ТО С ТИРИНГОМ, ЯХЗ --------------------------------------------------- + allow_tearing = false +} + + +#--- ДЕКОРАЦИИ ОКОН ----------------------------------------------------------- +decoration { + rounding = 3 + + blur { + enabled = true + size = 3 + passes = 1 + } + + drop_shadow = yes + shadow_range = 3 + shadow_render_power = 3 + col.shadow = rgba(1e2327ff) +} + + +#--- АНИМАЦИИ ----------------------------------------------------------------- +animations { + enabled = yes + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 7, myBezier + animation = windowsOut, 1, 7, default, popin 80% + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 7, default + animation = workspaces, 1, 6, default +} + + +#--- НАСТРОЙКА ЛАЙОУТОВ ------------------------------------------------------- +dwindle { + pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = yes # you probably want this +} + +master { + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + new_is_master = true +} + + +#--- ЖЕСТЫ -------------------------------------------------------------------- +gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = off +} + +#--- ВКЛЮЧИТЬ ДЕФОЛТНЫЕ ОБОИ -------------------------------------------------- +misc { + force_default_wallpaper = -1 # Set to 0 to disable the anime mascot wallpapers +} + +#--- НАСТРОЙКА УСТРОЙСТВ ------------------------------------------------------ +device:epic-mouse-v1 { + sensitivity = -0.5 +} + + +#--- ПРАВИЛА ОКОН ------------------------------------------------------------- +#windowrule = float,^(org.telegram.desktop)$ +windowrule = float,^(imv)$ +windowrule = float,^(mpv)$ + +#windowrule = size 1600 900,^(Firefox)$ +#windowrule = float,^(Firefox)$ +#windowrule = center,^(Firefox)$ + +#windowrule = size 1200 700,^(lutris)$ +#windowrule = float,^(lutris)$ +#windowrule = center,^(lutris)$ + + +#--- КЛАВИША МОДИФИКАТОР ------------------------------------------------------ +$mainMod = SUPER + +#--- ЗАПУСК ПРИЛОЖЕНИЙ -------------------------------------------------------- +bind = $mainMod, Q, exec, $terminal +bind = $mainMod, N, exec, $fileManager +bind = $mainMod, D, exec, wofi --show drun -c .config/hypr/themes/hypr_void/wofi/config -s .config/hypr/themes/hypr_void/wofi/style.css +#bind = $mainMod, i, exec, inkscape +#bind = $mainMod, o, exec, obs +#bind = $mainMod, l, exec, lutris +#bind = $mainMod, b, exec, blender + +bind = , Print, exec, grim ~/screen-"$(date +%s)".png +bind = $mainMod, Print, exec, grim -g "$(slurp)" ~/screen-"$(date +%s)".png + +bind = $mainMod SHIFT, M, exec, killall waybar && waybar -c .config/hypr/themes/hypr_void/waybar/config -s .config/hypr/themes/hypr_void/waybar/style.css + +#--- ХОТКЕИ ------------------------------------------------------------------- +bind = $mainMod, C, killactive, +bind = $mainMod, M, exit, +bind = $mainMod, S, togglefloating, +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, J, togglesplit, # dwindle + +#--- ПЕРЕМЕЩЕНИЕ ПЛАВАЮЩИИХ ОКОН ---------------------------------------------- +bind = $mainMod ALT, right, moveactive, 50 0 +bind = $mainMod ALT, left, moveactive, -50 0 +bind = $mainMod ALT, up, moveactive, 0 -50 +bind = $mainMod ALT, down, moveactive, 0 50 + +#--- ПЕРЕКЛЮЧЕНИЕ ФОКУСА ------------------------------------------------------ +bind = $mainMod, left, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, up, movefocus, u +bind = $mainMod, down, movefocus, d + +#--- ПЕРЕКЛЮЧЕНИЕ ВОРКСПЕЙСОВ ------------------------------------------------- +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 + +bind = CTRL, ALT, right, workspace, +1 +bind = CTRL, ALT, left, workspace, -1 + +#--- ПЕРЕМЕЩЕНИЕ ОКОН НА ДРУГОЙ ВОРКСПЕЙС ------------------------------------- +bind = $mainMod SHIFT, 1, movetoworkspace, 1 +bind = $mainMod SHIFT, 2, movetoworkspace, 2 +bind = $mainMod SHIFT, 3, movetoworkspace, 3 +bind = $mainMod SHIFT, 4, movetoworkspace, 4 +bind = $mainMod SHIFT, 5, movetoworkspace, 5 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 +bind = $mainMod SHIFT, 7, movetoworkspace, 7 +bind = $mainMod SHIFT, 8, movetoworkspace, 8 +bind = $mainMod SHIFT, 9, movetoworkspace, 9 +bind = $mainMod SHIFT, 0, movetoworkspace, 10 + +#--- СКРАЧПАД ----------------------------------------------------------------- +#bind = $mainMod, S, togglespecialworkspace, magic +#bind = $mainMod SHIFT, S, movetoworkspace, special:magic + +#--- ПЕРЕХОД ПО ВОРКСПЕЙСАМ КОЛЕСОМ МЫШИ -------------------------------------- +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +#--- ПЕРЕМЕЩЕНИЕ И РЕСАЙЗ ОКОН МЫШЬЮ ------------------------------------------ +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +#--- РЕСАЙЗ ------------------------------------------------------------------- +bind = $mainMod CTRL, left, resizeactive,-50 0 +bind = $mainMod CTRL, right, resizeactive,50 0 +bind = $mainMod CTRL, up, resizeactive,0 -50 +bind = $mainMod CTRL, down, resizeactive,0 50 + +bind = $mainMod, F, fullscreen, 1 +bind =, F11, fullscreen, diff --git a/.config/hypr/themes/hypr_void/scripts/scope.sh b/.config/hypr/themes/hypr_void/scripts/scope.sh new file mode 100755 index 0000000..78ef7b6 --- /dev/null +++ b/.config/hypr/themes/hypr_void/scripts/scope.sh @@ -0,0 +1,159 @@ +#!/usr/bin/env bash + +set -o noclobber -o noglob -o nounset -o pipefail +IFS=$'\n' + +# If the option `use_preview_script` is set to `true`, +# then this script will be called and its output will be displayed in ranger. +# ANSI color codes are supported. +# STDIN is disabled, so interactive scripts won't work properly + +# This script is considered a configuration file and must be updated manually. +# It will be left untouched if you upgrade ranger. + +# Meanings of exit codes: +# code | meaning | action of ranger +# -----+------------+------------------------------------------- +# 0 | success | Display stdout as preview +# 1 | no preview | Display no preview at all +# 2 | plain text | Display the plain content of the file +# 3 | fix width | Don't reload when width changes +# 4 | fix height | Don't reload when height changes +# 5 | fix both | Don't ever reload +# 6 | image | Display the image `$IMAGE_CACHE_PATH` points to as an image preview +# 7 | image | Display the file directly as an image + +# Script arguments +FILE_PATH="${1}" # Full path of the highlighted file +PV_WIDTH="${2}" # Width of the preview pane (number of fitting characters) +PV_HEIGHT="${3}" # Height of the preview pane (number of fitting characters) +IMAGE_CACHE_PATH="${4}" # Full path that should be used to cache image preview +PV_IMAGE_ENABLED="${5}" # 'True' if image previews are enabled, 'False' otherwise. + +FILE_EXTENSION="${FILE_PATH##*.}" +FILE_EXTENSION_LOWER="${FILE_EXTENSION,,}" + +# Settings +HIGHLIGHT_SIZE_MAX=262143 # 256KiB +HIGHLIGHT_STYLE='pablo' +PYGMENTIZE_STYLE='autumn' + + +handle_extension() { + case "${FILE_EXTENSION_LOWER}" in + # Archive + a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\ + rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip) + atool --list -- "${FILE_PATH}" && exit 5 + bsdtar --list --file "${FILE_PATH}" && exit 5 + exit 1;; + rar) + # Avoid password prompt by providing empty password + unrar lt -p- -- "${FILE_PATH}" && exit 5 + exit 1;; + 7z) + # Avoid password prompt by providing empty password + 7z l -p -- "${FILE_PATH}" && exit 5 + exit 1;; + + # PDF + pdf) + # Preview as text conversion + pdftotext -l 10 -nopgbrk -q -- "${FILE_PATH}" - && exit 5 + exiftool "${FILE_PATH}" && exit 5 + exit 1;; + + # BitTorrent + torrent) + transmission-show -- "${FILE_PATH}" && exit 5 + exit 1;; + + # OpenDocument + odt|ods|odp|sxw) + # Preview as text conversion + odt2txt "${FILE_PATH}" && exit 5 + exit 1;; + + # HTML + htm|html|xhtml) + # Preview as text conversion + w3m -dump "${FILE_PATH}" && exit 5 + lynx -dump -- "${FILE_PATH}" && exit 5 + elinks -dump "${FILE_PATH}" && exit 5 + ;; # Continue with next handler on failure + esac +} + +handle_image() { + local mimetype="${1}" + case "${mimetype}" in + # SVG + image/svg+xml) + convert "${FILE_PATH}" "${IMAGE_CACHE_PATH}" && exit 6 + exit 1;; + + # Image + image/*) + # `w3mimgdisplay` will be called for all images (unless overriden as above), + # but might fail for unsupported types. + exit 7;; + + # Video + video/*) + # Thumbnail + ffmpegthumbnailer -i "${FILE_PATH}" -o "${IMAGE_CACHE_PATH}" -s 0 && exit 6 + exit 1;; + esac +} + +handle_mime() { + local mimetype="${1}" + case "${mimetype}" in + # Text + text/* | */xml) + # Syntax highlight + if [[ "$( stat --printf='%s' -- "${FILE_PATH}" )" -gt "${HIGHLIGHT_SIZE_MAX}" ]]; then + exit 2 + fi + if [[ "$( tput colors )" -ge 256 ]]; then + local pygmentize_format='terminal256' + local highlight_format='xterm256' + else + local pygmentize_format='terminal' + local highlight_format='ansi' + fi + highlight --out-format="${highlight_format}" --style="${HIGHLIGHT_STYLE}" -- "${FILE_PATH}" && exit 5 + # pygmentize -f "${pygmentize_format}" -O "style=${PYGMENTIZE_STYLE}" -- "${FILE_PATH}" && exit 5 + exit 2;; + + # Image + image/*) + # Preview as text conversion + # img2txt --gamma=0.6 --width="${PV_WIDTH}" -- "${FILE_PATH}" && exit 4 + exiftool "${FILE_PATH}" && exit 5 + exit 1;; + + # Video and audio + video/* | audio/*) + mediainfo "${FILE_PATH}" && exit 5 + exiftool "${FILE_PATH}" && exit 5 + exit 1;; + esac +} + +handle_fallback() { + echo '----- File Type Classification -----' && file --dereference --brief -- "${FILE_PATH}" && exit 5 + exit 1 +} + + +handle_extension +MIMETYPE="$( file --dereference --brief --mime-type -- "${FILE_PATH}" )" +if [[ "${PV_IMAGE_ENABLED}" == 'True' ]]; then + handle_image "${MIMETYPE}" +fi +handle_mime "${MIMETYPE}" +handle_fallback + +exit 1 + diff --git a/.config/hypr/themes/hypr_void/scripts/weather.sh b/.config/hypr/themes/hypr_void/scripts/weather.sh new file mode 100755 index 0000000..e09cb0a --- /dev/null +++ b/.config/hypr/themes/hypr_void/scripts/weather.sh @@ -0,0 +1,75 @@ +#!/bin/sh + +get_icon() { + case $1 in + # Icons for weather-icons + 01d) icon="";; + 01n) icon="";; + 02d) icon="";; + 02n) icon="";; + 03*) icon="";; + 04*) icon="";; + 09d) icon="";; + 09n) icon="";; + 10d) icon="";; + 10n) icon="";; + 11d) icon="";; + 11n) icon="";; + 13d) icon="";; + 13n) icon="";; + 50d) icon="";; + 50n) icon="";; + *) icon=""; + + # Icons for Font Awesome 5 Pro + #01d) icon="";; + #01n) icon="";; + #02d) icon="";; + #02n) icon="";; + #03d) icon="";; + #03n) icon="";; + #04*) icon="";; + #09*) icon="";; + #10d) icon="";; + #10n) icon="";; + #11*) icon="";; + #13*) icon="";; + #50*) icon="";; + #*) icon=""; + esac + + echo $icon +} + +KEY="e434b5435a979de6e155570590bee89b" +CITY="Moscow" +UNITS="metric" +SYMBOL="°" + +API="https://api.openweathermap.org/data/2.5" + +if [ -n "$CITY" ]; then + if [ "$CITY" -eq "$CITY" ] 2>/dev/null; then + CITY_PARAM="id=$CITY" + else + CITY_PARAM="q=$CITY" + fi + + weather=$(curl -sf "$API/weather?appid=$KEY&$CITY_PARAM&units=$UNITS") +else + location=$(curl -sf https://location.services.mozilla.com/v1/geolocate?key=geoclue) + + if [ -n "$location" ]; then + location_lat="$(echo "$location" | jq '.location.lat')" + location_lon="$(echo "$location" | jq '.location.lng')" + + weather=$(curl -sf "$API/weather?appid=$KEY&lat=$location_lat&lon=$location_lon&units=$UNITS") + fi +fi + +if [ -n "$weather" ]; then + weather_temp=$(echo "$weather" | jq ".main.temp" | cut -d "." -f 1) + weather_icon=$(echo "$weather" | jq -r ".weather[0].icon") + + echo "$(get_icon "$weather_icon")" "$weather_temp$SYMBOL" +fi diff --git a/.config/hypr/themes/hypr_void/waybar/config b/.config/hypr/themes/hypr_void/waybar/config new file mode 100644 index 0000000..7646b4b --- /dev/null +++ b/.config/hypr/themes/hypr_void/waybar/config @@ -0,0 +1,121 @@ +{ + "height": 28, + "width": 1600, + "spacing": 10, + "margin-top": 5, + + "modules-left": ["custom/menu", "hyprland/workspaces", "hyprland/window"], + "modules-center": ["custom/cmus", "pulseaudio"], + "modules-right": ["tray", "custom/games", "custom/weather", "cpu", "memory", "hyprland/language", "custom/clock"], + + "custom/menu": { + "format": "{icon}", + "format-icons": "", + "on-click": "wofi --show drun -c ~/.config/hypr/themes/hypr_void/wofi/config -s /home/owl/.config/hypr/themes/hypr_void/wofi/style.css", + "escape": true, + "tooltip": false + }, + + "hyprland/workspaces": { + "format": "{icon}", + "on-click": "activate", + "format-icons": { + "1": "󰝤", + "2": "󰝤", + "3": "󰝤", + "4": "󰝤", + "5": "󰝤", + "6": "󰝤", + "7": "󰝤", + }, + "tooltip": false, + "persistent_workspaces": { + "*": 6 + } + }, + + "hyprland/window": { + "format": "{class}", + "separate-outputs": false, + }, + + + "custom/cava": { + "format": "{}", + "interval": 1, + "exec": "~/.config/hypr/themes/hypr_void/scripts/cava.sh", + "tooltip": false + }, + "custom/cmus": { + "format": "{icon} {}", + "format-icons": { + "default": [""] + }, + "max-length": 45, + "interval": 1, + "exec": "cmus-remote -C \"format_print '%F'\"", + "exec-if": "pgrep cmus", + "on-click": "cmus-remote -u", + "on-scroll-up": "cmus-remote --next", + "on-scroll-down": "cmus-remote --prev", + "escape": true, + "tooltip": false + }, + + "custom/games": { + "format": "󰊗", + "on-click": "--", + }, + + + + "tray": { + "icon-size": 10, + "spacing": 10 + }, + +# "custom/weather": { +# "format": "{}", +# "interval": 10, +# "exec": "~/.config/hypr/themes/hypr_void/scripts/weather.sh", +# "tooltip": false +# }, + + "pulseaudio": { + "scroll-step": 5, + "format": "{icon} {volume}%", + "format-icons": { + "default": ["", "", ""] + }, + "on-click": "pavucontrol", + "tooltip": false + }, + + "hyprland/language": { + "format": "{}", + "format-en": "EN", + "format-ru": "RU", + }, + + + "cpu": { + "format": " {usage}%", + "tooltip": false + }, + + "memory": { + "format": " {}%" + }, + + "custom/clock": { + "exec": "date +'%H:%M'", + "interval": 1, + "tooltip": false, + //"on-click": "alacritty -e 'calcurse'" + }, + + "escape": true, + "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder + } +} + diff --git a/.config/hypr/themes/hypr_void/waybar/style.css b/.config/hypr/themes/hypr_void/waybar/style.css new file mode 100644 index 0000000..aa3f409 --- /dev/null +++ b/.config/hypr/themes/hypr_void/waybar/style.css @@ -0,0 +1,105 @@ +* { + font-family: JetBrainsMono, Symbols Nerd Font; + font-weight: bold; + font-size: 13px; +} + +@define-color bg #1e2327; +@define-color fg #d3c6aa; +@define-color tr rgba(30, 35, 39, 0.0); + +@define-color blue #7fbbb3; +@define-color cyan #83c092; +@define-color green #a7c080; +@define-color red #e67e80; +@define-color white #9da9a0; +@define-color yellow #dbbc7f; + +window#waybar { + background-color: @tr; + transition-property: background-color; + transition-duration: .5s; +} + + +#custom-menu, +#window, +#custom-cava, +#custom-cmus, +#custom-games, +#tray, +#custom-weather, +#pulseaudio, +#language, +#cpu, +#memory, +#custom-clock { + background-color: @bg; + padding: 0 10px; + margin: 0px; + border: 1px solid @fg; + border-radius: 6; +} + +#custom-menu { + color: @green; +} +#window { + color: @yellow; +} +#custom-cava { + color: @yellow; +} +#custom-cmus { + color: @green; +} +#custom-games { + color: @red; +} +#tray { + color: @fg; +} +#custom-weather { + color: @cyan; +} +#pulseaudio { + color: @yellow; +} +#language { + color: @green; +} +#cpu { + color: @blue; +} +#memory { + color: @green; +} +#custom-clock { + color: @yellow; +} + +#workspaces { + padding: 0px 3px; + background-color: @bg; + margin-left: 1px; + margin-right: 1px; + border: 1px solid @fg; + border-radius: 6; +} +#workspaces button { + padding: 0 5px; + color: @fg; + border-radius: 0; +} +#workspaces button:hover { + color: @green; +} +#workspaces button.active { + color: @green; +} +#workspaces button.empty { + color: @white; +} +#workspaces button.urgent { + color: @red; +} diff --git a/.config/hypr/themes/hypr_void/wofi/config b/.config/hypr/themes/hypr_void/wofi/config new file mode 100755 index 0000000..415df46 --- /dev/null +++ b/.config/hypr/themes/hypr_void/wofi/config @@ -0,0 +1,92 @@ +#МОЙ КОНФИГ +# ширина +width=600 +# высота +height=400 + +# скрыть подменю +no_actions=true +# скрыть полосу прокрутки +hide_scroll=true + +# количество колонок +columns=2 +# размер иконок +image_size=20 +# надпись в строке поиска +prompt=search +# терминал по умалчанию +term=alacritty + +______________________________________________________________________________ + + +#ОСНОВНОЕ + +insensitive=true включает поиск без учета регистра +#filter_rate=RATE скорость обновления результатов в милисекундах +#sort_order=ORDER порядок сортировки, default and alphabetical (по алфавиту) +#matching=contains или fuzzy режим сопоставления +#dynamic_lines=true вроде должен сокращаться под результаты, у меня не работает +#exec_search=true поиск по двум энтерам, у меня не работает + + +#ВНЕШНИЙ ВИД + +#xoffset=OFFSET смещение по х +x=660 +#yoffset=OFFSET смещение по y +y=280 +#lines=LINES Задает высоту в количестве строк вместо пикселей +#hide_search=false скрывать панель поиска +gtk_dark=false включает темный вариант темы если такая есть +#password=* заменяет все на указанный символ, аля пароль +#orientation=horizontal или vertical +#allow_markup=false какая то хрень с разметкой +#allow_images=false какая то хрень с обработкой изображений + + +#ПОЛОЖЕНИЕ + +#layer=LAYER слой на котором будет запущен wofi: background, bottom, top, overlay +#location=LOCATION положение wofi center 0, top_left 1, top 2, top_right 3, right 4, bottom_right 5, bottom 6, bottom_left 7, left 8 +#normal_window=false если поставить true то запустит wofi в обычном окне + + +#КЛАВИШИ УПРАВЛЕНИЯ + +#key_up=KEY кнопка перехода на верх +#key_down=KEY кнопка перехода вниз +#key_left=KEY кнопка перехода влево +#key_right=KEY кнопка перехода вправо +#key_forward=KEY кнопка перехода вперед +#key_backward=KEY кнопка перехода назад +#key_submit=KEY кнопка ввода +#key_exit=KEY кнопка выхода +#key_pgup=KEY кнопка перехода на одну страницу вверх +#key_pgdn=KEY кнопка перехода на одну страницу вниз +#key_expand=KEY яхз +#key_hide_search=KEY кнопка скрытия панели поиска + + + + + +#cache_file=PATH указать кэш файл, яхз что это +#parse_search=BOOL какая то херь с последовательностями изображений + +#search=STRING указывает, что нужно искать сразу при открытии, яхз как это рабтает +#monitor=STRING вроде монитор на котором нужно запускать wofi + +#halign=center выравнивание start, end или center +#content_halign=center тоже выравнивание start, end или center +#valign=center тоже выравнивание start, end или center + +#line_wrap=word режим переноса строки, яхз что такое +#global_coords=false что то с глобальными вычеслениями координат расположения + +#color=PATH путь к файлу с цветами +#colors=PATH какая то хрень с цветами, типо несколько файлов + +#show=run drun dmenu способ поиска исполняемых файлов +#mode=MODE тоже самое что и show diff --git a/.config/hypr/themes/hypr_void/wofi/style.css b/.config/hypr/themes/hypr_void/wofi/style.css new file mode 100755 index 0000000..af3e0eb --- /dev/null +++ b/.config/hypr/themes/hypr_void/wofi/style.css @@ -0,0 +1,80 @@ +/* параметры вообще для всего */ +*{ + font-family: JetBrainsMono; + font-size: 13px; +} + +/* COLOR */ +@define-color bg #1e2327; +@define-color fg #d3c6aa; +@define-color green #a7c080; + +/* параметры для окна */ +window { + background-color: @bg; + border: 1px solid @fg; + border-radius: 6px; + color: @bg; +} + +/* параметры для окна ввода */ +#input { + margin: 10 0 10 0x; + padding: 5; + border-radius: 5px; + border: none; + border-bottom: 0px solid @fg; + background-color: @fg; + color: @bg; +} + +/* параметры для окна с приложениями */ +#inner-box { + background-color: @bg; + padding: 15 0 0 0; +} + +#prompt{ + color: @bg; +} + +/* параметры пространства вокруг окна wofi */ +#outer-box { + margin: 20px; + padding:0px; + background-color: @bg; +} + +/* параметры для полосы прокрутки */ +#scroll { + background-color: @bg; +} + +/* параметры для текста */ +#text { +padding: 5px; +color: @fg; +} + +/* параметры для 2й колонки если таковая имеется */ +#entry:nth-child(even){ + background-color: @bg; +} + +/* параметры для выделенного пункта */ +#entry:selected { + border-radius: 5px; + background-color: @fg; + font-color: @bg; +} + +/* параметры выделенного текста */ +#text:selected { +color: @bg; +} + +/* параметры для иконок */ +#img + +/* параметры для не выделенного */ +#unselected diff --git a/.config/micro/colorschemes/everforest.micro b/.config/micro/colorschemes/everforest.micro new file mode 100644 index 0000000..bed1314 --- /dev/null +++ b/.config/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/.config/neofetch/config.conf b/.config/neofetch/config.conf new file mode 100644 index 0000000..5eeabbd --- /dev/null +++ b/.config/neofetch/config.conf @@ -0,0 +1,817 @@ +# See this wiki page for more info: +# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info +print_info() { + # info title + # info underline + + # prin "\n \n " "$(curl wttr.in/?0?q?T | awk '/°(C|F)/ {printf $(NF-1) $(NF) " ("a")"} /,/ {a=$0}')" + + prin "\n" + prin "${cl9}┌───────────────────────────────────────────┐" + # info underline + info "\n \n ${cl1}DISTRO :" distro + info "\n \n ${cl2}KERNEL :" kernel + info "\n \n ${cl4}PCKG \n \n :" packages + prin "\n" + info "\n \n ${cl5}SHELL \n :" shell + info "\n \n ${cl2}SCREEN :" resolution + info "\n \n ${cl3}WM \n \n \n \n :" wm + prin "\n" + info "\n \n 嗀:" wm_theme + info "\n \n ${cl2}GTK \n \n \n :" theme + info "\n \n ${cl2}ICONS \n \n:" icons + prin "\n" + info "\n \n ${cl1}TERM \n \n :" term + info "\n \n ${cl2}FONT:" term_font + #info "\n \n 󰻠 :" cpu + #info "\n \n 󰕧 :" gpu + #info "\n \n  :" memory + #info "\n \n  :" disk + [[ "$player" ]] && prin "\n \n " "$player" + prin "${cl9}└────────────────────────── ${cl0} ${cl1} ${cl2} ${cl3} ${cl4} ${cl5} ${cl6} $(color 15) ${cl9}┘" + # info "Users" users + # info "Locale" locale # This only works on glibc systems. + # info cols + + # prin "\n \n ${cl0}──${cl1}────${cl2}────${cl3}────${cl4}────${cl5}────${cl6}────${cl7}──" + # + # prin "\n \n \n \n \n \n ${cl0}⬤ \n \n ${cl1}⬤ \n \n ${cl2}⬤ \n \n ${cl3}⬤ \n \n ${cl4}⬤ \n \n ${cl5}⬤ \n \n ${cl6}⬤ \n \n ${cl7}⬤" +} + +reset="\033[0m" +gray="\033[1;90m" +red="\033[1;31m" +green="\033[1;32m" +yellow="\033[1;33m" +blue="\033[1;34m" +magenta="\033[1;35m" +cyan="\033[1;36m" +white="\033[1;37m" + +cl0="${gray}" +cl1="${red}" +cl2="${green}" +cl3="${yellow}" +cl4="${blue}" +cl5="${magenta}" +cl6="${cyan}" +cl7="${white}" +cl9="${reset}" + +# Title + + +# Hide/Show Fully qualified domain name. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --title_fqdn +title_fqdn="off" + + +# Kernel + + +# Shorten the output of the kernel function. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --kernel_shorthand +# Supports: Everything except *BSDs (except PacBSD and PC-BSD) +# +# Example: +# on: '4.8.9-1-ARCH' +# off: 'Linux 4.8.9-1-ARCH' +kernel_shorthand="on" + + +# Distro + + +# Shorten the output of the distro function +# +# Default: 'off' +# Values: 'on', 'tiny', 'off' +# Flag: --distro_shorthand +# Supports: Everything except Windows and Haiku +distro_shorthand="off" + +# Show/Hide OS Architecture. +# Show 'x86_64', 'x86' and etc in 'Distro:' output. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --os_arch +# +# Example: +# on: 'Arch Linux x86_64' +# off: 'Arch Linux' +os_arch="off" + + +# Uptime + + +# Shorten the output of the uptime function +# +# Default: 'on' +# Values: 'on', 'tiny', 'off' +# Flag: --uptime_shorthand +# +# Example: +# on: '2 days, 10 hours, 3 mins' +# tiny: '2d 10h 3m' +# off: '2 days, 10 hours, 3 minutes' +uptime_shorthand="tiny" + + +# Memory + + +# Show memory pecentage in output. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --memory_percent +# +# Example: +# on: '1801MiB / 7881MiB (22%)' +# off: '1801MiB / 7881MiB' +memory_percent="on" + +# Change memory output unit. +# +# Default: 'mib' +# Values: 'kib', 'mib', 'gib' +# Flag: --memory_unit +# +# Example: +# kib '1020928KiB / 7117824KiB' +# mib '1042MiB / 6951MiB' +# gib: ' 0.98GiB / 6.79GiB' +memory_unit="mib" + + +# Packages + + +# Show/Hide Package Manager names. +# +# Default: 'tiny' +# Values: 'on', 'tiny' 'off' +# Flag: --package_managers +# +# Example: +# on: '998 (pacman), 8 (flatpak), 4 (snap)' +# tiny: '908 (pacman, flatpak, snap)' +# off: '908' +package_managers="on" + + +# Shell + + +# Show the path to $SHELL +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --shell_path +# +# Example: +# on: '/bin/bash' +# off: 'bash' +shell_path="off" + +# Show $SHELL version +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --shell_version +# +# Example: +# on: 'bash 4.4.5' +# off: 'bash' +shell_version="on" + + +# CPU + + +# CPU speed type +# +# Default: 'bios_limit' +# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'. +# Flag: --speed_type +# Supports: Linux with 'cpufreq' +# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value. +speed_type="bios_limit" + +# CPU speed shorthand +# +# Default: 'off' +# Values: 'on', 'off'. +# Flag: --speed_shorthand +# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz +# +# Example: +# on: 'i7-6500U (4) @ 3.1GHz' +# off: 'i7-6500U (4) @ 3.100GHz' +speed_shorthand="off" + +# Enable/Disable CPU brand in output. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --cpu_brand +# +# Example: +# on: 'Intel i7-6500U' +# off: 'i7-6500U (4)' +cpu_brand="on" + +# CPU Speed +# Hide/Show CPU speed. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --cpu_speed +# +# Example: +# on: 'Intel i7-6500U (4) @ 3.1GHz' +# off: 'Intel i7-6500U (4)' +cpu_speed="on" + +# CPU Cores +# Display CPU cores in output +# +# Default: 'logical' +# Values: 'logical', 'physical', 'off' +# Flag: --cpu_cores +# Support: 'physical' doesn't work on BSD. +# +# Example: +# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores) +# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores) +# off: 'Intel i7-6500U @ 3.1GHz' +cpu_cores="logical" + +# CPU Temperature +# Hide/Show CPU temperature. +# Note the temperature is added to the regular CPU function. +# +# Default: 'off' +# Values: 'C', 'F', 'off' +# Flag: --cpu_temp +# Supports: Linux, BSD +# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable +# coretemp kernel module. This only supports newer Intel processors. +# +# Example: +# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]' +# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]' +# off: 'Intel i7-6500U (4) @ 3.1GHz' +cpu_temp="off" + + +# GPU + + +# Enable/Disable GPU Brand +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gpu_brand +# +# Example: +# on: 'AMD HD 7950' +# off: 'HD 7950' +gpu_brand="on" + +# Which GPU to display +# +# Default: 'all' +# Values: 'all', 'dedicated', 'integrated' +# Flag: --gpu_type +# Supports: Linux +# +# Example: +# all: +# GPU1: AMD HD 7950 +# GPU2: Intel Integrated Graphics +# +# dedicated: +# GPU1: AMD HD 7950 +# +# integrated: +# GPU1: Intel Integrated Graphics +gpu_type="all" + + +# Resolution + + +# Display refresh rate next to each monitor +# Default: 'off' +# Values: 'on', 'off' +# Flag: --refresh_rate +# Supports: Doesn't work on Windows. +# +# Example: +# on: '1920x1080 @ 60Hz' +# off: '1920x1080' +refresh_rate="off" + + +# Gtk Theme / Icons / Font + + +# Shorten output of GTK Theme / Icons / Font +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --gtk_shorthand +# +# Example: +# on: 'Numix, Adwaita' +# off: 'Numix [GTK2], Adwaita [GTK3]' +gtk_shorthand="on" + + +# Enable/Disable gtk2 Theme / Icons / Font +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gtk2 +# +# Example: +# on: 'Numix [GTK2], Adwaita [GTK3]' +# off: 'Adwaita [GTK3]' +gtk2="on" + +# Enable/Disable gtk3 Theme / Icons / Font +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gtk3 +# +# Example: +# on: 'Numix [GTK2], Adwaita [GTK3]' +# off: 'Numix [GTK2]' +gtk3="on" + + +# IP Address + + +# Website to ping for the public IP +# +# Default: 'http://ident.me' +# Values: 'url' +# Flag: --ip_host +public_ip_host="http://ident.me" + +# Public IP timeout. +# +# Default: '2' +# Values: 'int' +# Flag: --ip_timeout +public_ip_timeout=2 + + +# Desktop Environment + + +# Show Desktop Environment version +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --de_version +de_version="on" + + +# Disk + + +# Which disks to display. +# The values can be any /dev/sdXX, mount point or directory. +# NOTE: By default we only show the disk info for '/'. +# +# Default: '/' +# Values: '/', '/dev/sdXX', '/path/to/drive'. +# Flag: --disk_show +# +# Example: +# disk_show=('/' '/dev/sdb1'): +# 'Disk (/): 74G / 118G (66%)' +# 'Disk (/mnt/Videos): 823G / 893G (93%)' +# +# disk_show=('/'): +# 'Disk (/): 74G / 118G (66%)' +# +disk_show=('/storage/emulated' '/' '/server') + +# Disk subtitle. +# What to append to the Disk subtitle. +# +# Default: 'mount' +# Values: 'mount', 'name', 'dir', 'none' +# Flag: --disk_subtitle +# +# Example: +# name: 'Disk (/dev/sda1): 74G / 118G (66%)' +# 'Disk (/dev/sdb2): 74G / 118G (66%)' +# +# mount: 'Disk (/): 74G / 118G (66%)' +# 'Disk (/mnt/Local Disk): 74G / 118G (66%)' +# 'Disk (/mnt/Videos): 74G / 118G (66%)' +# +# dir: 'Disk (/): 74G / 118G (66%)' +# 'Disk (Local Disk): 74G / 118G (66%)' +# 'Disk (Videos): 74G / 118G (66%)' +# +# none: 'Disk: 74G / 118G (66%)' +# 'Disk: 74G / 118G (66%)' +# 'Disk: 74G / 118G (66%)' +disk_subtitle="none" + +# Disk percent. +# Show/Hide disk percent. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --disk_percent +# +# Example: +# on: 'Disk (/): 74G / 118G (66%)' +# off: 'Disk (/): 74G / 118G' +disk_percent="on" + + +# Song + + +# Manually specify a music player. +# +# Default: 'auto' +# Values: 'auto', 'player-name' +# Flag: --music_player +# +# Available values for 'player-name': +# +# amarok +# audacious +# banshee +# bluemindo +# clementine +# cmus +# deadbeef +# deepin-music +# dragon +# elisa +# exaile +# gnome-music +# gmusicbrowser +# gogglesmm +# guayadeque +# io.elementary.music +# iTunes +# juk +# lollypop +# mocp +# mopidy +# mpd +# muine +# netease-cloud-music +# olivia +# playerctl +# pogo +# pragha +# qmmp +# quodlibet +# rhythmbox +# sayonara +# smplayer +# spotify +# strawberry +# tauonmb +# tomahawk +# vlc +# xmms2d +# xnoise +# yarock +music_player="auto" + +# Format to display song information. +# +# Default: '%artist% - %album% - %title%' +# Values: '%artist%', '%album%', '%title%' +# Flag: --song_format +# +# Example: +# default: 'Song: Jet - Get Born - Sgt Major' +song_format="%artist% - %album% - %title%" + +# Print the Artist, Album and Title on separate lines +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --song_shorthand +# +# Example: +# on: 'Artist: The Fratellis' +# 'Album: Costello Music' +# 'Song: Chelsea Dagger' +# +# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger' +song_shorthand="off" + +# 'mpc' arguments (specify a host, password etc). +# +# Default: '' +# Example: mpc_args=(-h HOST -P PASSWORD) +mpc_args=() + + +# Text Colors + + +# Text Colors +# +# Default: 'distro' +# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' +# Flag: --colors +# +# Each number represents a different part of the text in +# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info' +# +# Example: +# colors=(distro) - Text is colored based on Distro colors. +# colors=(4 6 1 8 8 6) - Text is colored in the order above. +# colors=(7 7 7 7 8 250) +colors=(7 7 7 7 7 7) + + + +# Text Options + + +# Toggle bold text +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --bold +bold="on" + +# Enable/Disable Underline +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --underline +underline_enabled="on" + +# Underline character +# +# Default: '-' +# Values: 'string' +# Flag: --underline_char +underline_char="-" + + +# Info Separator +# Replace the default separator with the specified string. +# +# Default: ':' +# Flag: --separator +# +# Example: +# separator="->": 'Shell-> bash' +# separator=" =": 'WM = dwm' +#separator=" " +separator=" " + + +# Color Blocks + + +# Color block range +# The range of colors to print. +# +# Default: '0', '15' +# Values: 'num' +# Flag: --block_range +# +# Example: +# +# Display colors 0-7 in the blocks. (8 colors) +# neofetch --block_range 0 7 +# +# Display colors 0-15 in the blocks. (16 colors) +# neofetch --block_range 0 15 +block_range=(0 15) + +# Toggle color blocks +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --color_blocks +color_blocks="on" + +# Color block width in spaces +# +# Default: '3' +# Values: 'num' +# Flag: --block_width +block_width=3 + +# Color block height in lines +# +# Default: '1' +# Values: 'num' +# Flag: --block_height +block_height=1 + +# Color Alignment +# +# Default: 'auto' +# Values: 'auto', 'num' +# Flag: --col_offset +# +# Number specifies how far from the left side of the terminal (in spaces) to +# begin printing the columns, in case you want to e.g. center them under your +# text. +# Example: +# col_offset="auto" - Default behavior of neofetch +# col_offset=7 - Leave 7 spaces then print the colors +col_offset="auto" + +# Progress Bars + + +# Bar characters +# +# Default: '-', '=' +# Values: 'string', 'string' +# Flag: --bar_char +# +# Example: +# neofetch --bar_char 'elapsed' 'total' +# neofetch --bar_char '-' '=' +bar_char_elapsed="-" +bar_char_total="=" + +# Toggle Bar border +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --bar_border +bar_border="on" + +# Progress bar length in spaces +# Number of chars long to make the progress bars. +# +# Default: '15' +# Values: 'num' +# Flag: --bar_length +bar_length=15 + +# Progress bar colors +# When set to distro, uses your distro's logo colors. +# +# Default: 'distro', 'distro' +# Values: 'distro', 'num' +# Flag: --bar_colors +# +# Example: +# neofetch --bar_colors 3 4 +# neofetch --bar_colors distro 5 +bar_color_elapsed="distro" +bar_color_total="distro" + + +# Info display +# Display a bar with the info. +# +# Default: 'off' +# Values: 'bar', 'infobar', 'barinfo', 'off' +# Flags: --cpu_display +# --memory_display +# --battery_display +# --disk_display +# +# Example: +# bar: '[---=======]' +# infobar: 'info [---=======]' +# barinfo: '[---=======] info' +# off: 'info' +cpu_display="off" +memory_display="off" +battery_display="off" +disk_display="off" + + +# Backend Settings + + +# Image backend. +# +# Default: 'ascii' +# Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off', +# 'pot', 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty' +# Flag: --backend +image_backend="ascii" + +# Image Source +# +# Which image or ascii file to display. +# +# Default: 'auto' +# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/' +# 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")' +# Flag: --source +# +# NOTE: 'auto' will pick the best image source for whatever image backend is used. +# In ascii mode, distro ascii art will be used and in an image mode, your +# wallpaper will be used. +image_source="/home/owl/.config/neofetch/void.ascii" + + +# Image Options + + +# Image loop +# Setting this to on will make neofetch redraw the image constantly until +# Ctrl+C is pressed. This fixes display issues in some terminal emulators. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --loop +image_loop="off" + +# Thumbnail directory +# +# Default: '~/.cache/thumbnails/neofetch' +# Values: 'dir' +thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch" + +# Crop mode +# +# Default: 'normal' +# Values: 'normal', 'fit', 'fill' +# Flag: --crop_mode +# +# See this wiki page to learn about the fit and fill options. +# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F +crop_mode="normal" + +# Crop offset +# Note: Only affects 'normal' crop mode. +# +# Default: 'center' +# Values: 'northwest', 'north', 'northeast', 'west', 'center' +# 'east', 'southwest', 'south', 'southeast' +# Flag: --crop_offset +crop_offset="center" + +# Image size +# The image is half the terminal width by default. +# +# Default: 'auto' +# Values: 'auto', '00px', '00%', 'none' +# Flags: --image_size +# --size +image_size="auto" + +# Gap between image and text +# +# Default: '3' +# Values: 'num', '-num' +# Flag: --gap +gap=2 + +# Image offsets +# Only works with the w3m backend. +# +# Default: '0' +# Values: 'px' +# Flags: --xoffset +# --yoffset +yoffset=0 +xoffset=0 + +# Image background color +# Only works with the w3m backend. +# +# Default: '' +# Values: 'color', 'blue' +# Flag: --bg_color +background_color= + + +# Misc Options + +# Stdout mode +# Turn off all colors and disables image backend (ASCII/Image). +# Useful for piping into another command. +# Default: 'off' +# Values: 'on', 'off' +stdout="off" diff --git a/.config/neofetch/void.ascii b/.config/neofetch/void.ascii new file mode 100644 index 0000000..9c1bfbd --- /dev/null +++ b/.config/neofetch/void.ascii @@ -0,0 +1,16 @@ +${c1} + .:~7?JYYJ?7~:. + .?PGBBBBBBBBBBGPJ~. + .7PPY?7!!7?YPGBBBP7. + ^Y!. .. .^?GBGBP^ + ^GBBP^ .::. :YBGBG^ + .5BGB5. ~YPGGPY~ YBGB5. + ^GGGG~ !BBGGGGBB! ~GGGG^ + ^GGGG~ !BBGGGGBB! ~GGGG^ + .5BGBY ~YPGGPY~ .5BGB5. + ^GBGBY: .::. ^PBBG^ + ^PBGBG?^. .. .!Y^ + .7PBBBGPY?7!!7?YPP7. + .~JPGBBBBBBBBBBGP?. + .:~7?JYYJ?7~:. + diff --git a/.config/ranger/plugins/ranger_devicons/__init__.py b/.config/ranger/plugins/ranger_devicons/__init__.py new file mode 100644 index 0000000..664b276 --- /dev/null +++ b/.config/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/.config/ranger/plugins/ranger_devicons/__pycache__/__init__.cpython-312.pyc b/.config/ranger/plugins/ranger_devicons/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e88370e745491d500455099d89a50df7b1efd39f GIT binary patch literal 984 zcmZ8g&1(}u6o0e3`Ph6&zqA;v1Sv>_CWwNhRI#XYJnUsyGShU!W;gC`A}u{c zD5!X_w|em4Rf6E(p_dj9g=vL=r{0wH)RQyW-3B`BzV~|{``-J_%>Kw`Q^42s)9=(q z0KbJ1t#}Chj~wg+0fJ1>0*y3@+mb1_6iq=uWTKd{uMz?YC^R!siIFBT67NfattF_` z92>b~l@}lx+t-6laSDr1_7N4)x&QQJ{)*34DjaYt;i+#>SLj*Weq{&3m6e90} z7TZz^F*deLyOp|axlvD+B(!S?&*OSH=CG8&;`JYLu@7F<0(MY8#9p{90NXrg2Q?M0 zE-VpQ=X|OKnI*zbOg$&UvJN$M&*)Oz*1b)hq`1`FV9JJJQkHB{Pba#kyJC`jK7Y1Q z+O%7=WWO>?MLzR}(I`2()u2wPZFU-l<%TAXNR==)EW^XN*xq8QsOlM>Nw;$s_n~+m zyTp6B*SP4xNqS=M?)&?n%7^LM&)(6^@*#iHf(r!Gsz2l0cVOUN8BGrjYN_Icbtn|7^suI*}=qgZ_ZbcJRf9> z#6p@$w#!lh`=Z`9SUkXND)iNDhZfE7YB^#D9r4ewc!PS>>N;6r$l}X!hc*n?qYge# z9}XjK(`dl6-no&VR92RG@H46T$L5?HJf2?>6n?6;a`u)Ak7vI}d6YNq>6Fsj=~cc4&jX$Z zykWoP3H#Qq@OWFo&=h8Zn4d5(L9>^W#rJZdRuJ*5S0wEX`^>nR^? zUC@-jFjt}6_HXuX_H-6o9u-hU4|!FwDuE2DQphr{DOVNHD^(R_wHgCi zqsBsx&ar-(RX(sEl)K##~=J~H?AFpBWuBG-zX{PJA-Sz4Qw7XHw zfxJoG40#KWa;usPyEM+g7)iOO(3wzP3mSdC^ zthcF^(A&AsDzzGV2enpfc)m{7*Q(o4vrest?BZUx^9l^!-)^>sSt^peCX+eBD~PHX zdRn~eJ*pRaoa+-TlY9ax_9?A4z-lW8GQ+!)WuN*~KWYYehX=W3jwH{tk!v?`pUphS z7GC>SuHVM`c0Rv5Sl-EJwu4*lWOQTu3Tz`P&W4u3)^Zq=c4#IkfiFo-guhzQ*mpu3kdT%jz4Duc&WAzN)?j`E8c3@mjy5UPsLv z>brWTH%U|9WBC@#@3Z^?%OA2FX89*9|CHsQvHTJ5&!4Nmzz9EP`4ir^zf^yPnxC@# zYm&UCx0z3^}Mzop{ZS06PPPC)cr~1o2YB_4ht0FZK z{}u7L6Ao4$^>&t6w1$cJOyYSaLpz7HbD<$dLY|Kg;w0o(@VSt+DI?lN&@Se>OQ0cM zLSBXsVkYENe6C=v7TPq{rt^*9h=95)@tMK(A!v21&4eai%z_3l*vqS+iyyP0$(&b1 zlR2+}CUag3P3F7~n#_4Uv@fpf2GmL48==W~bD+s6H$juxZiXhKXm7x`;3Iu+g(kCU zujtmJZq%PqFXp0Nyr_pJyE_k>j5HsbjMM;4{Aq+H{w#nd{w#zhqb!0Zo;5*}Q5Hj! zk(WS|QICpjAMp*+*=IDeb>svdb-3Cp3TnFusM&=uS9%?VZ=VE*=#piPUxdP=heAXWf;${cU zV9&ThhA~>2#f2Qh>)~_iq9+`^Zr7!u%WhqUb*Xe|>N29ss4im|L)K*JnjT&D>N1WN z37#tnEyY?|+cr?i{@A+4(J>>VIjhS)UH0peza25&AU+a-awFQt5p9!hy;+xAbjjbA zXthoAc3s|qI(VpW$DKluJ1DxM+({81VZTS0_v&&FMSaxYr^mS; z`U70E7ur779vrEA2%5y3hoL>f)<>c3AMxw}=rOK;T#x(&YVgeqd1ypCJfb}b?J2e% z8PT2=O%?Xy8NIe=QGb-%epS~zr^{oy9Ma|Udez6N)O+@Vu6t3JU(@B+DX+lDFX8ht zYu^~rUK!E8sZak^)Zn`u^4ofSuj%qTsKa+Um(k<< z2mN?L%AoyVho`fA&>Qx7b*|m-x#EXN{6C>5W?5~p*5}rAG%W0DXqn&M+_-FITUSHV ziqHHop4z(|#xY`Cy=-YqeZ#2j!2_^Wk!^m%U7>D@bE8%Ld5+vhE9n%}mlensPG*S*JKW;a(hHn%RVU-`Mdr|#Sd zBfGMysiCoDbktM(cKyLy=lZV8WqCb!?Q*>atDhct*7X^d=!d`Q`i*oigp<(LhY8Z! z{0JZ`aBACjK%aCxwQV<`zt;_P8&1sicN-bq9X+}ey8D6q0J*DNZ&(`-=ltR6(={A& z{b8dUqTA-0Q`=u9$hp37*ewdj4abp|2VX;dyhq^BF*g7Rv(ya^J&*PYqt|qc!>LHb zH1!NmpiwFr!GLLKX)A?s(rKWRrI*69FYS2(HRONTaUilLL?3Ab1Fl!eD2Ko929#mz z^&LLo`c${}>n_)?%x;*iNJLj1LsdMk;Q`m*pB5iaZF`X*19J+#LkzG?kj${2Aw8Q& zyM9w8AepE-bv0j$a#aB{xL zB{JaQ=iETVilp==Jb9E5yAX)Pjj-#F#QR)d1iKJ%EH@Z&oUm8Hu>-k98Nkf57#{V%+xBoo~W`Bk{-VIBE+m zo^*q;j1dl-bSyF27>GDkrg1C!6)JH;ek+U!}ayVp`}fj zd(u&0Ve~zyc2Y_0?Y%HNdaDn=?)rPpL2bDQK-&_>QII5O;xU5+X{o5JVb}A3Y~kU0 z3Xr2txdd7!u4d8a1`~$et5W@iS?_jz2`nR_u#7|xhD-Ef*Aww9{&L~@=^NlUR+LEf zL8NDsxY`XQcrghq#-E_GNn{=DQVi#tv}6UR_B`Zzu?wka)D5IZZteX$Tz^{WJ9_*$ zAXa!pce}o{zA=Y}peJBVVz<)zsekY>T-m}U-i2`#-Gwwn00R30NqtgO!8aL_D$)+w zaA!zTg)@tUes&JOMt~ilOY2J)wj57XdJuOoJxHd(le2o8--Qm?XS)zp4q#z+CgOVGr!x|34&3P$IbkEN zkMrQSVWi;Tql@6gEe!3%^&uYIgKBKHvjG>)$qedkJg^N_*_2!C^qKLDjzy2}$GH7g zM2C?>kGNiJV+Kp{XYim)IC^XdM2}7;h1*_|N!hlU)IILQ8Kk+p+_B@K2e-JKe6i<+~J6}IV5jc%~j3TLu5+TgE> z9=EtP+Z~6kilB6*nZPz=U>w87RhBYSjy;x*M$*9diZW)qrTr?a6IL}X%kn?jv7w31miXjzYgDwEdAxNDKUH`Y9>u5 zOa8YGzfP{9cWc~8W~?~A8@bD>;TOp*w|E}bVPxInri2kS9k+y*xdC5iL0%NJYz@X) zIXn~}9ty`Wr^%ZqgIH>K2!oVx=Opz`DKnmOxX2 z3ck_@F{_w&*x;GTY0E8b!y>V;46E1~Tsy-p;vI$OR$Q4j4cf~GYRVb)x)p8Vm~C3! z8OsUB+~BH|9mm>|S^5*}@T2&aPi8QD%&jQ&%qB1do&J*Hp|pwAq!SyMrL$dXW`@5N z&kPSaW^b0xw=Fk(Br*JAX84sT+7@=f9DYRx_~^)ZZCtvyXclNUS;S=Bc&E2~`qeJ^}=L;Y1eEBzz@A!z)zxwDWPrZ?=3{n2o zWyCGRF`WX&EC;u3FjpZ~d{d>enSv29k)8}~EKmtIwZplhkV4?dm4+JHy4o;`iJFMv zs9bRg38p2`gcSGJ|Q%6AUH8i8S)J+_+G(&r+5# z(r^a)jtQlWM3)JRol4T>Mu)=UszSCIru#BDBkPz7Z5=aihBKz>G8H|T2siKvJs_=Q zB!$JYkMN+w$Yx@AbTflkU57FwMmC-yZw7Gf$>~zk#DBC#I7ww~BrX^NaSS22q)XQ8 z7I(>*MMen6;a2N`bMOK=2Ohg_C*4nbU&Xm>9Ea$HG6NY(YI%1{r3@LERI7=rN7ddD z)y}%Q0m4FVERxM$)1DDdCDJL!96gLZyWKLe(S?xnIQ$ZaD72?Kw?s+c%uO)|jBsW~ z!pMYUGs3uR*!-kpWf13P%wjKn9kX)h{~xWca(x|F<;o*?g@E%R2z>*d;e?X!*E4{ZS&nFIO>Y>2W?!aVJ+D&BoKz|BpNE&6STB&}S6z%~jr;#1}?aEQLLGi{qw> zn))SV=Ob9zOrOn4j#zW;CrPPF>eO72~owcXDG{dLL_oElv2Qb90}cBOc_S#8u_8`J9;lYI|jA; zJ)1l|Bc@Tso|2(#n16bT3fgFiUKD7*@T0uPb+0y0hQ2-d=gazM`2RSPxre?bzVOpi z_`i;ytN-#D3x9LVP^!Q`Up5>1QugqLALT1}TPWK+wf<#tiu>Qvr}wPe!QS%+)CR-?t(|ND{W+A?j$<w?5ty&?Jbj5i@Bd zOn3a}8)xVlPa!2JH3zg_>!r6vTvIyEDSx=BE|yA|b*cV%oj&S1+eqSRs>53aG6P3r zmooXecj^jCC_RYqBDMC780}Sj9228%^SoP9ezIip&q^l0Uwzrh>e>_4wZ|?!Iqjws z({6gre5bnM?O?a8cH-unH(kE(u9^>%CfJ5yJk^?NHiym^nesKa}f4x+XKF9oJO8#BAb*g1TC*jEGW zYq$pY9k0G_>41vz-aGcSWUOOjHm#5!+E-BxxnJwEvl!A1P0?;6}b zxOd!+E%`~FqLN(;w=X;y7=I!#e(##SEB3G1x8{KJ(E5`Trk$8D?bz&hCe*zXnEBGB zCj!@=^<$uIrTNP{{gZv~27-GhGQA!VvTnl>tf_$^^<8Dg-JS zssyST#t76fj1?HiFy2#Cj?pGCOccu`hRFiwFq|uJ9>e*bB69NrhOda_LWU^<7cpGS zaQYI4OT}^-!{xG`sSHA4M z*9orI*d=(oMnkY$V^~lD>FSw+5y3N2!I-vMf;}301>+hMf=P`j!8DMZ+#qOct0R~J z(q3f+`?R%Ra6sdrU`{vQD7Xn&j>Fw7xP@^-eyiYIpUhkDlk)}A0_O`h0BPPv!3Em7 zP;e2jdhdiYO@fQHb&23ojm?6~fK?c(MX*&{mkX`{(nM{7D>b$Yt^(5LtQPD5(!E+E z*r}~+1@X^mcnRwS*8^$fF2UQi)e!8~7#38zu_+hP)X-TsKY# zCUxVKU|Qn_L0h9Eh}407&I=zu+I4GC{(r#=N+ytZrZWi34ty=}>`eo#L4ypNh zKx#Z+umMOzH3}}!jTZ_o(%2-pSmP4GrPB9Iv*0qpe2ZYKZoFJ@g~m3)l^WXxS7}@= z*r9QaU?-5ATq}5+wyqOgudz$;b|4*@A=nM1^@atNZfpuhG)4tu8ZE&d?mIr;D;Q_% z_e+BbWiw60(AQ+S)HTpm9(z2c#uz6x^h(n+3N3>GE$CoEy;R z8<6K0NE6K$Y|z$5!37!@3N8ZD<}?W|*0@A)sczgXxJ+AH1Y5;=X1U-B-MCE<|6Yvm zbGzUwAbGV~utVb-!A{+Ht>A6ix=wJt#xB9zbz?)YTU*0|N~0+l(T$^mF^!fW{;eH5 z*((^=m=H_?X>(G7X>Hvgh(F{}-!qP2Mq9IjeZU|>Zol9Fkd{9vnA43n3T^_@M4JV- zXxu6|w@CWdOCB^2$njaQL1Uxf0*wm=7Xd5aMw8%TAWgJHaH($GEVxW#i(o5|uGweR*XC`+!*BnSQ|m z-FJ}jbdLJ&!}BY+iLAiQf?I$Uz^#IFk=d5*o0zXJrswzcJVHz~U$6m4ZZrxm0FK?; zm|rNkNL!l(7i(N1xD+^UZ+pI3a2b#`r$w+8Sc-X<3$6f?8*PFsHMR?`(zsf%16aOq z;^{SloyDH9li#bE^!eX+YbL%|GZFIhzh@op@U~}sK3BZTd#>+;K-my7d{R$i%ql<$ z12X(EfKmoz_ypw)$ndKHl?=%6sZTWnGW-fa4FfWKYBr7m8Ga>T0s}I98f_8-GJLX} z!+;Eb%&`gi^9b_D@Jj&~umu@D^|_D%89oht5yPdPq8h+u43{&Up2~ovp8C`>AgQk! zx-37P0ZIKBzzhZ?_0@nn1|;<~+AIbn_0(rJ1M+xs^g0IQ@ig=e49MfjGKT?qJZ;F$ z49Mfj(OVfPkDokrO}^gCNO?SsK3|X$cba*jASLcJPLm)d?u1JODRD>NGtGjOxYH6^ z1SxT+k(Ucn;yxMJCPjWuNr^a1^l&RBDh9G6? zgkeF-)ag2yf|Q!mP?jL2=G3@XkWzDMoDihcd>k+(NU1r^yFrjr^RZaIBS^V8HSQOr zT)YzN9TcQooL00^kaKb1WS{?~^kE@)-$I@?D9>3k50pCTtR< zDK_1+|fDl3J znZtk(LG#?qfDl1jbt?mf2M37juTuliU!UiH~Z5rgi`LP3fcw9id~6fq_O zmk4si05%I!#GvK12vWqLiIxje#2}~I1nE_uuw9S?2ynF^1rV~X5u^Y@xK@w?$T@Iw zogf7eigI0o6hH_KK?)#rxM4vGAXA6NBY^OF=~e%dq49XtXQX&C7L6@IiYIg%dj%<; zOoBBbI2up5FU1pz7#qY&@nj;<5u{gr8aXRS;f1iDG0(61m}pR}6kh1aHVRUBp+ng$ zNa2ON+A2ulg|OboZp;JHwU{qRulh7pqaZ~ax+e<-`BncIz3OvciZ;}Ei6BKA!e&8= zHuTiC2vW46p_U6$w4vp<2~xC~3~U#qXhYW3g7m7-=PO9Thi?2@L3-7vk=F^*t3F|u zAie7I7la_a>eDp~3(~7TT~SkzUiE3Bs35)S)8<%$^r{a$-OHHAtNygQcM<4nLuWT| h)!Uv)za8)eydB=(pKYte-!mQhWB>j2lRC~R{$K8$@mc@? literal 0 HcmV?d00001 diff --git a/.config/ranger/plugins/ranger_devicons/devicons.py b/.config/ranger/plugins/ranger_devicons/devicons.py new file mode 100644 index 0000000..41202ff --- /dev/null +++ b/.config/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/.config/ranger/rc.conf b/.config/ranger/rc.conf new file mode 100644 index 0000000..b67cf6c --- /dev/null +++ b/.config/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/.config/ranger/rifle.conf b/.config/ranger/rifle.conf new file mode 100755 index 0000000..47bb87c --- /dev/null +++ b/.config/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