diff --git a/env.sh b/env.sh index ab013a2..7024408 100755 --- a/env.sh +++ b/env.sh @@ -34,7 +34,7 @@ lnsf () { SYMLNK=$2 [ -z "$TARGET" ] && echo "$1 not exists" && return 1 SYMDIR=$(dirname "$SYMLNK") - if [ -n "$SYMDIR" && -L "$SYMDIR" ]; then + if [ -n "$SYMDIR" ] && [ -L "$SYMDIR" ]; then rm -rf "$SYMDIR" fi mkdir -p "$SYMDIR" diff --git a/ranger/config/colorschemes/solarizedmod.py b/ranger/config/colorschemes/solarizedmod.py new file mode 100644 index 0000000..e5f6148 --- /dev/null +++ b/ranger/config/colorschemes/solarizedmod.py @@ -0,0 +1,143 @@ +# This file is part of ranger, the console file manager. +# License: GNU GPL version 3, see the file "AUTHORS" for details. +# Author: Joseph Tannhuber , 2013 +# Solarized like colorscheme, similar to solarized-dircolors +# from https://github.com/seebi/dircolors-solarized. +# This is a modification of Roman Zimbelmann's default colorscheme. + +from __future__ import (absolute_import, division, print_function) + +from ranger.gui.colorscheme import ColorScheme +from ranger.gui.color import ( + cyan, magenta, red, white, default, + normal, bold, reverse, + default_colors, +) + + +class Solarized(ColorScheme): + progress_bar_color = 33 + + def use(self, context): # pylint: disable=too-many-branches,too-many-statements + fg, bg, attr = default_colors + + if context.reset: + return default_colors + + elif context.in_browser: + fg = 244 + if context.selected: + attr = reverse + else: + attr = normal + if context.empty or context.error: + fg = 235 + bg = 160 + if context.border: + fg = default + if context.media: + if context.image: + fg = 136 + else: + fg = 166 + if context.container: + fg = 61 + if context.directory: + fg = 33 + elif context.executable and not \ + any((context.media, context.container, + context.fifo, context.socket)): + fg = 64 + attr |= bold + if context.socket: + fg = 136 + bg = 230 + attr |= bold + if context.fifo: + fg = 136 + bg = 230 + attr |= bold + if context.device: + fg = 244 + bg = 230 + attr |= bold + if context.link: + fg = 37 if context.good else 160 + attr |= bold + if context.bad: + bg = 235 + if context.tag_marker and not context.selected: + attr |= bold + if fg in (red, magenta): + fg = white + else: + fg = red + if not context.selected and (context.cut or context.copied): + fg = 3 + attr |= bold + if context.main_column: + if context.selected: + attr |= bold + if context.marked: + attr |= bold + bg = 237 + if context.badinfo: + if attr & reverse: + bg = magenta + else: + fg = magenta + + if context.inactive_pane: + fg = 241 + + elif context.in_titlebar: + attr |= bold + if context.hostname: + fg = 16 if context.bad else 255 + if context.bad: + bg = 166 + elif context.directory: + fg = 33 + elif context.tab: + fg = 47 if context.good else 33 + bg = 239 + elif context.link: + fg = cyan + + elif context.in_statusbar: + if context.permissions: + if context.good: + fg = 93 + elif context.bad: + fg = 160 + bg = 235 + if context.marked: + attr |= bold | reverse + fg = 237 + bg = 47 + if context.message: + if context.bad: + attr |= bold + fg = 160 + bg = 235 + if context.loaded: + bg = self.progress_bar_color + + if context.text: + if context.highlight: + attr |= reverse + + if context.in_taskview: + if context.title: + fg = 93 + + if context.selected: + attr |= reverse + + if context.loaded: + if context.selected: + fg = self.progress_bar_color + else: + bg = self.progress_bar_color + + return fg, bg, attr diff --git a/ranger/config/rc.conf b/ranger/config/rc.conf index 273d7e5..ca828ec 100644 --- a/ranger/config/rc.conf +++ b/ranger/config/rc.conf @@ -1,7 +1,7 @@ set preview_images true set preview_images_method ueberzug set preview_files true -set colorscheme solarized +set colorscheme solarizedmod default_linemode devicons set draw_borders both set vcs_aware true diff --git a/ranger/install.sh b/ranger/install.sh index 3a1ae93..9fafd8a 100755 --- a/ranger/install.sh +++ b/ranger/install.sh @@ -1,9 +1,10 @@ #!/bin/sh + DIR=$(readlink -f "$(dirname "$0")") . "$DIR/../env.sh" -# install ranger + install ranger case "$PM" in apt) # atool/p7zip-full for archive previewing/extracting etc @@ -12,7 +13,7 @@ case "$PM" in sudo pip3 install ranger-fm ueberzug ;; pacman) - sudo pacman -S --needed atool + sudo pacman -S --needed atool sudo pip install ranger-fm ueberzug p7zip unrar highlight ;; esac @@ -21,6 +22,7 @@ esac lnsf "$DIR/config/commands.py" "$XDG_CONFIG_HOME/ranger/commands.py" lnsf "$DIR/config/rc.conf" "$XDG_CONFIG_HOME/ranger/rc.conf" lnsf "$DIR/config/scope.sh" "$XDG_CONFIG_HOME/ranger/scope.sh" +lnsf "$DIR/config/colorschemes/solarizedmod.py" "$XDG_CONFIG_HOME/ranger/colorschemes/solarizedmod.py" # install devicons git clone --depth 1 https://github.com/alexanderjeurissen/ranger_devicons ~/.config/ranger/plugins/ranger_devicons