initial re-commit
This commit is contained in:
commit
fc9f891570
|
@ -0,0 +1,8 @@
|
||||||
|
mpd/.config/mpd/database
|
||||||
|
mpd/.config/mpd/pid
|
||||||
|
mpd/.config/mpd/sticker.sql
|
||||||
|
mpd/.config/mpd/playlists
|
||||||
|
ncmpcpp/.ncmpcpp/error.log
|
||||||
|
nvim/.config/nvim/.netrwhist
|
||||||
|
nvim/.config/nvim/plugged
|
||||||
|
qutebrowser/.local/share/qutebrowser/greasemonkey/requires
|
|
@ -0,0 +1,32 @@
|
||||||
|
appearance.calendarview=monthly
|
||||||
|
appearance.compactpanels=no
|
||||||
|
appearance.defaultpanel=calendar
|
||||||
|
appearance.layout=1
|
||||||
|
appearance.headerline=yes
|
||||||
|
appearance.eventseparator=yes
|
||||||
|
appearance.dayseparator=yes
|
||||||
|
appearance.emptyline=yes
|
||||||
|
appearance.emptyday=--
|
||||||
|
appearance.notifybar=yes
|
||||||
|
appearance.sidebarwidth=0
|
||||||
|
appearance.theme=magenta on default
|
||||||
|
appearance.todoview=hide-completed
|
||||||
|
appearance.headingpos=right-justified
|
||||||
|
daemon.enable=no
|
||||||
|
daemon.log=no
|
||||||
|
format.inputdate=1
|
||||||
|
format.notifydate=%a %F
|
||||||
|
format.notifytime=%T
|
||||||
|
format.outputdate=%D
|
||||||
|
format.dayheading=%B %e, %Y
|
||||||
|
general.autogc=no
|
||||||
|
general.autosave=yes
|
||||||
|
general.confirmdelete=yes
|
||||||
|
general.confirmquit=yes
|
||||||
|
general.firstdayofweek=monday
|
||||||
|
general.multipledays=yes
|
||||||
|
general.periodicsave=0
|
||||||
|
general.systemevents=yes
|
||||||
|
notification.command=printf '\a'
|
||||||
|
notification.notifyall=flagged-only
|
||||||
|
notification.warning=300
|
|
@ -0,0 +1,55 @@
|
||||||
|
#
|
||||||
|
# Calcurse keys configuration file
|
||||||
|
#
|
||||||
|
# In this file the keybindings used by Calcurse are defined.
|
||||||
|
# It is generated automatically by Calcurse and is maintained
|
||||||
|
# via the key configuration menu of the interactive user
|
||||||
|
# interface. It should not be edited directly.
|
||||||
|
|
||||||
|
generic-cancel ESC
|
||||||
|
generic-select SPC
|
||||||
|
generic-credits @
|
||||||
|
generic-help ?
|
||||||
|
generic-quit q Q
|
||||||
|
generic-save s S ^S
|
||||||
|
generic-reload R
|
||||||
|
generic-copy c
|
||||||
|
generic-paste p ^V
|
||||||
|
generic-change-view TAB
|
||||||
|
generic-import i I
|
||||||
|
generic-export x X
|
||||||
|
generic-goto g G
|
||||||
|
generic-other-cmd o O
|
||||||
|
generic-config-menu C
|
||||||
|
generic-redraw ^R
|
||||||
|
generic-add-appt ^A
|
||||||
|
generic-add-todo ^T
|
||||||
|
generic-prev-day T ^H
|
||||||
|
generic-next-day t ^L
|
||||||
|
generic-prev-week W ^K
|
||||||
|
generic-next-week w
|
||||||
|
generic-prev-month M
|
||||||
|
generic-next-month m
|
||||||
|
generic-prev-year Y
|
||||||
|
generic-next-year y
|
||||||
|
generic-scroll-down ^N
|
||||||
|
generic-scroll-up ^P
|
||||||
|
generic-goto-today ^G
|
||||||
|
generic-command :
|
||||||
|
move-right l L RGT
|
||||||
|
move-left h H LFT
|
||||||
|
move-down j J DWN
|
||||||
|
move-up k K UP
|
||||||
|
start-of-week 0
|
||||||
|
end-of-week $
|
||||||
|
add-item a A
|
||||||
|
del-item d D
|
||||||
|
edit-item e E
|
||||||
|
view-item v V RET
|
||||||
|
pipe-item |
|
||||||
|
flag-item !
|
||||||
|
repeat r
|
||||||
|
edit-note n N
|
||||||
|
view-note >
|
||||||
|
raise-priority +
|
||||||
|
lower-priority -
|
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/bash
|
||||||
|
notify-send Battery "$(acpi)"
|
|
@ -0,0 +1,346 @@
|
||||||
|
[global]
|
||||||
|
### Display ###
|
||||||
|
|
||||||
|
# Which monitor should the notifications be displayed on.
|
||||||
|
monitor = 0
|
||||||
|
|
||||||
|
# Display notification on focused monitor. Possible modes are:
|
||||||
|
# mouse: follow mouse pointer
|
||||||
|
# keyboard: follow window with keyboard focus
|
||||||
|
# none: don't follow anything
|
||||||
|
#
|
||||||
|
# "keyboard" needs a window manager that exports the
|
||||||
|
# _NET_ACTIVE_WINDOW property.
|
||||||
|
# This should be the case for almost all modern window managers.
|
||||||
|
#
|
||||||
|
# If this option is set to mouse or keyboard, the monitor option
|
||||||
|
# will be ignored.
|
||||||
|
follow = keyboard
|
||||||
|
|
||||||
|
# The geometry of the window:
|
||||||
|
# [{width}]x{height}[+/-{x}+/-{y}]
|
||||||
|
# The geometry of the message window.
|
||||||
|
# The height is measured in number of notifications everything else
|
||||||
|
# in pixels. If the width is omitted but the height is given
|
||||||
|
# ("-geometry x2"), the message window expands over the whole screen
|
||||||
|
# (dmenu-like). If width is 0, the window expands to the longest
|
||||||
|
# message displayed. A positive x is measured from the left, a
|
||||||
|
# negative from the right side of the screen. Y is measured from
|
||||||
|
# the top and down respectively.
|
||||||
|
# The width can be negative. In this case the actual width is the
|
||||||
|
# screen width minus the width defined in within the geometry option.
|
||||||
|
geometry = "300x5-30+20"
|
||||||
|
|
||||||
|
# Show how many messages are currently hidden (because of geometry).
|
||||||
|
indicate_hidden = yes
|
||||||
|
|
||||||
|
# Shrink window if it's smaller than the width. Will be ignored if
|
||||||
|
# width is 0.
|
||||||
|
shrink = no
|
||||||
|
|
||||||
|
# The transparency of the window. Range: [0; 100].
|
||||||
|
# This option will only work if a compositing window manager is
|
||||||
|
# present (e.g. xcompmgr, compiz, etc.).
|
||||||
|
transparency = 10
|
||||||
|
|
||||||
|
# The height of the entire notification. If the height is smaller
|
||||||
|
# than the font height and padding combined, it will be raised
|
||||||
|
# to the font height and padding.
|
||||||
|
notification_height = 0
|
||||||
|
|
||||||
|
# Draw a line of "separator_height" pixel height between two
|
||||||
|
# notifications.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
separator_height = 2
|
||||||
|
|
||||||
|
# Padding between text and separator.
|
||||||
|
padding = 8
|
||||||
|
|
||||||
|
# Horizontal padding.
|
||||||
|
horizontal_padding = 8
|
||||||
|
|
||||||
|
# Defines width in pixels of frame around the notification window.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
frame_width = 0
|
||||||
|
|
||||||
|
# Defines color of the frame around the notification window.
|
||||||
|
frame_color = "#aaaaaa"
|
||||||
|
|
||||||
|
# Define a color for the separator.
|
||||||
|
# possible values are:
|
||||||
|
# * auto: dunst tries to find a color fitting to the background;
|
||||||
|
# * foreground: use the same color as the foreground;
|
||||||
|
# * frame: use the same color as the frame;
|
||||||
|
# * anything else will be interpreted as a X color.
|
||||||
|
separator_color = frame
|
||||||
|
|
||||||
|
# Sort messages by urgency.
|
||||||
|
sort = yes
|
||||||
|
|
||||||
|
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||||
|
# for longer than idle_threshold seconds.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
# Transient notifications ignore this setting.
|
||||||
|
idle_threshold = 120
|
||||||
|
|
||||||
|
### Text ###
|
||||||
|
|
||||||
|
font = FantasqueSansMono 10
|
||||||
|
# The spacing between lines. If the height is smaller than the
|
||||||
|
# font height, it will get raised to the font height.
|
||||||
|
line_height = 0
|
||||||
|
|
||||||
|
# Possible values are:
|
||||||
|
# full: Allow a small subset of html markup in notifications:
|
||||||
|
# <b>bold</b>
|
||||||
|
# <i>italic</i>
|
||||||
|
# <s>strikethrough</s>
|
||||||
|
# <u>underline</u>
|
||||||
|
#
|
||||||
|
# For a complete reference see
|
||||||
|
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
|
||||||
|
#
|
||||||
|
# strip: This setting is provided for compatibility with some broken
|
||||||
|
# clients that send markup even though it's not enabled on the
|
||||||
|
# server. Dunst will try to strip the markup but the parsing is
|
||||||
|
# simplistic so using this option outside of matching rules for
|
||||||
|
# specific applications *IS GREATLY DISCOURAGED*.
|
||||||
|
#
|
||||||
|
# no: Disable markup parsing, incoming notifications will be treated as
|
||||||
|
# plain text. Dunst will not advertise that it has the body-markup
|
||||||
|
# capability if this is set as a global setting.
|
||||||
|
#
|
||||||
|
# It's important to note that markup inside the format option will be parsed
|
||||||
|
# regardless of what this is set to.
|
||||||
|
markup = full
|
||||||
|
|
||||||
|
# The format of the message. Possible variables are:
|
||||||
|
# %a appname
|
||||||
|
# %s summary
|
||||||
|
# %b body
|
||||||
|
# %i iconname (including its path)
|
||||||
|
# %I iconname (without its path)
|
||||||
|
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||||
|
# %n progress value if set without any extra characters
|
||||||
|
# %% Literal %
|
||||||
|
# Markup is allowed
|
||||||
|
format = "<b>%s</b>\n%b"
|
||||||
|
|
||||||
|
# Alignment of message text.
|
||||||
|
# Possible values are "left", "center" and "right".
|
||||||
|
alignment = center
|
||||||
|
|
||||||
|
# Show age of message if message is older than show_age_threshold
|
||||||
|
# seconds.
|
||||||
|
# Set to -1 to disable.
|
||||||
|
show_age_threshold = 60
|
||||||
|
|
||||||
|
# Split notifications into multiple lines if they don't fit into
|
||||||
|
# geometry.
|
||||||
|
word_wrap = yes
|
||||||
|
|
||||||
|
# When word_wrap is set to no, specify where to ellipsize long lines.
|
||||||
|
# Possible values are "start", "middle" and "end".
|
||||||
|
ellipsize = middle
|
||||||
|
|
||||||
|
# Ignore newlines '\n' in notifications.
|
||||||
|
ignore_newline = no
|
||||||
|
|
||||||
|
# Merge multiple notifications with the same content
|
||||||
|
stack_duplicates = true
|
||||||
|
|
||||||
|
# Hide the count of merged notifications with the same content
|
||||||
|
hide_duplicate_count = false
|
||||||
|
|
||||||
|
# Display indicators for URLs (U) and actions (A).
|
||||||
|
show_indicators = yes
|
||||||
|
|
||||||
|
### Icons ###
|
||||||
|
|
||||||
|
# Align icons left/right/off
|
||||||
|
icon_position = off
|
||||||
|
|
||||||
|
# Scale larger icons down to this size, set to 0 to disable
|
||||||
|
max_icon_size = 32
|
||||||
|
|
||||||
|
# Paths to default icons.
|
||||||
|
icon_path = /usr/share/icons/Numix/16x16/status/:/usr/share/icons/Numix/16x16/devices/
|
||||||
|
|
||||||
|
### History ###
|
||||||
|
|
||||||
|
# Should a notification popped up from history be sticky or timeout
|
||||||
|
# as if it would normally do.
|
||||||
|
sticky_history = yes
|
||||||
|
|
||||||
|
# Maximum amount of notifications kept in history
|
||||||
|
history_length = 20
|
||||||
|
|
||||||
|
### Misc/Advanced ###
|
||||||
|
|
||||||
|
# dmenu path.
|
||||||
|
#dmenu = /usr/bin/dmenu -p dunst:
|
||||||
|
|
||||||
|
# Browser for opening urls in context menu.
|
||||||
|
browser = /usr/bin/qutebrowser
|
||||||
|
|
||||||
|
# Always run rule-defined scripts, even if the notification is suppressed
|
||||||
|
always_run_script = true
|
||||||
|
|
||||||
|
# Define the title of the windows spawned by dunst
|
||||||
|
title = Dunst
|
||||||
|
|
||||||
|
# Define the class of the windows spawned by dunst
|
||||||
|
class = Dunst
|
||||||
|
|
||||||
|
# Print a notification on startupNumix-circle
|
||||||
|
# This is mainly for error detection, since dbus (re-)starts dunst
|
||||||
|
# automatically after a crash.
|
||||||
|
startup_notification = false
|
||||||
|
|
||||||
|
### Legacy
|
||||||
|
|
||||||
|
# Use the Xinerama extension instead of RandR for multi-monitor support.
|
||||||
|
# This setting is provided for compatibility with older nVidia drivers that
|
||||||
|
# do not support RandR and using it on systems that support RandR is highly
|
||||||
|
# discouraged.
|
||||||
|
#
|
||||||
|
# By enabling this setting dunst will not be able to detect when a monitor
|
||||||
|
# is connected or disconnected which might break follow mode if the screen
|
||||||
|
# layout changes.
|
||||||
|
force_xinerama = false
|
||||||
|
|
||||||
|
# Experimental features that may or may not work correctly. Do not expect them
|
||||||
|
# to have a consistent behaviour across releases.
|
||||||
|
[experimental]
|
||||||
|
# Calculate the dpi to use on a per-monitor basis.
|
||||||
|
# If this setting is enabled the Xft.dpi value will be ignored and instead
|
||||||
|
# dunst will attempt to calculate an appropriate dpi value for each monitor
|
||||||
|
# using the resolution and physical size. This might be useful in setups
|
||||||
|
# where there are multiple screens with very different dpi values.
|
||||||
|
per_monitor_dpi = false
|
||||||
|
|
||||||
|
[shortcuts]
|
||||||
|
|
||||||
|
# Shortcuts are specified as [modifier+][modifier+]...key
|
||||||
|
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
|
||||||
|
# "mod3" and "mod4" (windows-key).
|
||||||
|
# Xev might be helpful to find names for keys.
|
||||||
|
|
||||||
|
# Close notification.
|
||||||
|
close = mod4+n
|
||||||
|
|
||||||
|
# Close all notifications.
|
||||||
|
close_all = mod4+shift+n
|
||||||
|
|
||||||
|
# Redisplay last message(s).
|
||||||
|
# On the US keyboard layout "grave" is normally above TAB and left
|
||||||
|
# of "1". Make sure this key actually exists on your keyboard layout,
|
||||||
|
# e.g. check output of 'xmodmap -pke'
|
||||||
|
history = ctrl+grave
|
||||||
|
|
||||||
|
# Context menu.
|
||||||
|
context = ctrl+shift+period
|
||||||
|
|
||||||
|
[urgency_low]
|
||||||
|
# IMPORTANT: colors have to be defined in quotation marks.
|
||||||
|
# Otherwise the "#" and following would be interpreted as a comment.
|
||||||
|
background = "#222222"
|
||||||
|
foreground = "#888888"
|
||||||
|
timeout = 10
|
||||||
|
# Icon for notifications with low urgency, uncomment to enable
|
||||||
|
#icon = /path/to/icon
|
||||||
|
|
||||||
|
[urgency_normal]
|
||||||
|
background = "#285577"
|
||||||
|
foreground = "#ffffff"
|
||||||
|
timeout = 10
|
||||||
|
# Icon for notifications with normal urgency, uncomment to enable
|
||||||
|
#icon = /path/to/icon
|
||||||
|
|
||||||
|
[urgency_critical]
|
||||||
|
background = "#900000"
|
||||||
|
foreground = "#ffffff"
|
||||||
|
frame_color = "#ff0000"
|
||||||
|
timeout = 0
|
||||||
|
# Icon for notifications with critical urgency, uncomment to enable
|
||||||
|
#icon = /path/to/icon
|
||||||
|
|
||||||
|
# Every section that isn't one of the above is interpreted as a rules to
|
||||||
|
# override settings for certain messages.
|
||||||
|
# Messages can be matched by "appname", "summary", "body", "icon", "category",
|
||||||
|
# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
|
||||||
|
# "background", "new_icon" and "format".
|
||||||
|
# Shell-like globbing will get expanded.
|
||||||
|
#
|
||||||
|
# SCRIPTING
|
||||||
|
# You can specify a script that gets run when the rule matches by
|
||||||
|
# setting the "script" option.
|
||||||
|
# The script will be called as follows:
|
||||||
|
# script appname summary body icon urgency
|
||||||
|
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||||
|
#
|
||||||
|
# NOTE: if you don't want a notification to be displayed, set the format
|
||||||
|
# to "".
|
||||||
|
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||||
|
# to find fitting options for rules.
|
||||||
|
|
||||||
|
#[alarms]
|
||||||
|
# summary = "Alarm"
|
||||||
|
# script = ~/.config/dunst/sound.sh
|
||||||
|
|
||||||
|
#[espeak]
|
||||||
|
# summary = "*"
|
||||||
|
# script = dunst_espeak.sh
|
||||||
|
|
||||||
|
#[script-test]
|
||||||
|
# summary = "*script*"
|
||||||
|
# script = dunst_test.sh
|
||||||
|
|
||||||
|
#[ignore]
|
||||||
|
# # This notification will not be displayed
|
||||||
|
# summary = "foobar"
|
||||||
|
# format = ""
|
||||||
|
|
||||||
|
#[history-ignore]
|
||||||
|
# # This notification will not be saved in history
|
||||||
|
# summary = "foobar"
|
||||||
|
# history_ignore = yes
|
||||||
|
|
||||||
|
#[signed_on]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = "*signed on*"
|
||||||
|
# urgency = low
|
||||||
|
#
|
||||||
|
#[signed_off]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *signed off*
|
||||||
|
# urgency = low
|
||||||
|
#
|
||||||
|
#[says]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *says*
|
||||||
|
# urgency = critical
|
||||||
|
#
|
||||||
|
#[twitter]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *twitter.com*
|
||||||
|
# urgency = normal
|
||||||
|
#
|
||||||
|
# vim: ft=cfg
|
||||||
|
frame_color = "#c5c8c6"
|
||||||
|
separator_color = "#c5c8c6"
|
||||||
|
|
||||||
|
[base16_low]
|
||||||
|
msg_urgency = low
|
||||||
|
background = "#282a2e"
|
||||||
|
foreground = "#969896"
|
||||||
|
|
||||||
|
[base16_normal]
|
||||||
|
msg_urgency = normal
|
||||||
|
background = "#373b41"
|
||||||
|
foreground = "#c5c8c6"
|
||||||
|
|
||||||
|
[base16_critical]
|
||||||
|
msg_urgency = critical
|
||||||
|
background = "#cc6666"
|
||||||
|
foreground = "#e0e0e0"
|
|
@ -0,0 +1,29 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Script to display notifcation when song changes
|
||||||
|
# Requires:
|
||||||
|
# libnotify or dunstify
|
||||||
|
# mpd
|
||||||
|
# mpc
|
||||||
|
|
||||||
|
app_name="MPD Status"
|
||||||
|
summary="Now Playing"
|
||||||
|
|
||||||
|
if [[ "$MUSIC_NOTIFY" != "true" ]]; then
|
||||||
|
echo "Not sending notifications, MUSIC_NOTIFY isn't true"
|
||||||
|
elif command -v dunstify; then
|
||||||
|
while :; do
|
||||||
|
dunstify -a "${app_name}" \
|
||||||
|
-t 4000 \
|
||||||
|
-r 13596705 \
|
||||||
|
"${summary}" \
|
||||||
|
"$(mpc current --wait)"
|
||||||
|
done
|
||||||
|
else
|
||||||
|
while :; do
|
||||||
|
notify-send -t 4000 \
|
||||||
|
-a "${app_name}" \
|
||||||
|
"${summary}" \
|
||||||
|
"$(mpc current --wait)"
|
||||||
|
done
|
||||||
|
fi
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,211 @@
|
||||||
|
# This file has been auto-generated by i3-config-wizard(1).
|
||||||
|
# It will not be overwritten, so edit it as you like.
|
||||||
|
#
|
||||||
|
# Should you change your keyboard layout some time, delete
|
||||||
|
# this file and re-run i3-config-wizard(1).
|
||||||
|
#
|
||||||
|
|
||||||
|
# i3 config file (v4)
|
||||||
|
#
|
||||||
|
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
|
||||||
|
|
||||||
|
set $mod Mod4
|
||||||
|
font pango:monospace 8
|
||||||
|
floating_modifier $mod
|
||||||
|
|
||||||
|
# start a terminal
|
||||||
|
bindsym $mod+Return exec termite
|
||||||
|
bindsym $mod+o exec i3lock -f -c 000000
|
||||||
|
|
||||||
|
# kill focused window
|
||||||
|
bindsym $mod+Shift+q kill
|
||||||
|
|
||||||
|
#gaps and borders, window headers:
|
||||||
|
gaps inner 5
|
||||||
|
gaps outer 5
|
||||||
|
smart_borders on
|
||||||
|
new_window 1pixel
|
||||||
|
|
||||||
|
focus_follows_mouse off
|
||||||
|
# startup programs
|
||||||
|
exec --no-startup-id dunst
|
||||||
|
exec --no-startup-id nm-applet
|
||||||
|
exec --no-startup-id redshift-gtk
|
||||||
|
exec --no-startup-id unclutter
|
||||||
|
exec --no-startup-id ~/.fehbg
|
||||||
|
exec --no-startup-id picom
|
||||||
|
exec --no-startup-id mpd
|
||||||
|
exec --no-startup-id ~/.config/dunst/music-change.sh
|
||||||
|
|
||||||
|
#Screenshotting
|
||||||
|
bindsym Print exec --no-startup-id maim -s /tmp/$(date -Iseconds).png
|
||||||
|
|
||||||
|
# Application menu
|
||||||
|
bindsym $mod+d exec --no-startup-id rofi -show run
|
||||||
|
bindsym XF86Search exec --no-startup-id rofi -show run
|
||||||
|
# And easy access to password management
|
||||||
|
bindsym $mod+p exec --no-startup-id gopass ls --flat | rofi -dmenu | xargs --no-run-if-empty gopass show -c
|
||||||
|
# ...And mounting menus
|
||||||
|
bindsym $mod+m exec --no-startup-id mountmenu
|
||||||
|
bindsym $mod+shift+m exec --no-startup-id unmountmenu
|
||||||
|
# notifcations
|
||||||
|
bindsym $mod+b exec --no-startup-id notify-send Battery "$(acpi)"
|
||||||
|
# Media Keys
|
||||||
|
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5%
|
||||||
|
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5%
|
||||||
|
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||||
|
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
||||||
|
# focus shortcuts
|
||||||
|
bindsym $mod+h focus left
|
||||||
|
bindsym $mod+j focus down
|
||||||
|
bindsym $mod+k focus up
|
||||||
|
bindsym $mod+l focus right
|
||||||
|
|
||||||
|
# alternatively, you can use the cursor keys:
|
||||||
|
bindsym $mod+Left focus left
|
||||||
|
bindsym $mod+Down focus down
|
||||||
|
bindsym $mod+Up focus up
|
||||||
|
bindsym $mod+Right focus right
|
||||||
|
|
||||||
|
# move focused window
|
||||||
|
bindsym $mod+Shift+h move left
|
||||||
|
bindsym $mod+Shift+j move down
|
||||||
|
bindsym $mod+Shift+k move up
|
||||||
|
bindsym $mod+Shift+l move right
|
||||||
|
|
||||||
|
# alternatively, you can use the cursor keys:
|
||||||
|
bindsym $mod+Shift+Left move left
|
||||||
|
bindsym $mod+Shift+Down move down
|
||||||
|
bindsym $mod+Shift+Up move up
|
||||||
|
bindsym $mod+Shift+Right move right
|
||||||
|
|
||||||
|
# split in horizontal orientation
|
||||||
|
bindsym $mod+bar split h
|
||||||
|
|
||||||
|
# split in vertical orientation
|
||||||
|
bindsym $mod+minus split v
|
||||||
|
|
||||||
|
# enter fullscreen mode for the focused container
|
||||||
|
bindsym $mod+f fullscreen toggle
|
||||||
|
|
||||||
|
# change container layout (stacked, tabbed, toggle split)
|
||||||
|
bindsym $mod+s layout stacking
|
||||||
|
bindsym $mod+w layout tabbed
|
||||||
|
bindsym $mod+e layout toggle split
|
||||||
|
|
||||||
|
# toggle tiling / floating
|
||||||
|
bindsym $mod+Shift+space floating toggle
|
||||||
|
|
||||||
|
# change focus between tiling / floating windows
|
||||||
|
bindsym $mod+space focus mode_toggle
|
||||||
|
|
||||||
|
# focus the parent container
|
||||||
|
bindsym $mod+a focus parent
|
||||||
|
|
||||||
|
# focus the child container
|
||||||
|
#bindsym $mod+d focus child
|
||||||
|
|
||||||
|
# Make PD GEM windows not glitch out and be stupid
|
||||||
|
for_window [title="GEM"] floating enable
|
||||||
|
|
||||||
|
# Same with SDVX
|
||||||
|
for_window [title="SOUND VOLTEX IV HEAVENLY HAVEN 1"] fullscreen enable
|
||||||
|
# Make the currently focused window a scratchpad
|
||||||
|
bindsym $mod+Shift+grave move scratchpad
|
||||||
|
|
||||||
|
# Show the first scratchpad window
|
||||||
|
bindsym $mod+grave scratchpad show
|
||||||
|
|
||||||
|
# start scratchpad applications
|
||||||
|
for_window [instance="music"] floating enable
|
||||||
|
for_window [instance="music"] move scratchpad
|
||||||
|
for_window [instance="music"] border none
|
||||||
|
exec termite --name=music -e ncmpcpp
|
||||||
|
|
||||||
|
for_window [instance="wiki"] floating enable
|
||||||
|
for_window [instance="wiki"] move scratchpad
|
||||||
|
for_window [instance="wiki"] border none
|
||||||
|
exec termite --name=wiki -e "pim"
|
||||||
|
|
||||||
|
|
||||||
|
for_window [instance="files"] floating enable
|
||||||
|
for_window [instance="files"] move scratchpad
|
||||||
|
for_window [instance="files"] border none
|
||||||
|
exec termite --name=files -e ranger
|
||||||
|
|
||||||
|
for_window [instance="feeds"] floating enable
|
||||||
|
for_window [instance="feeds"] move scratchpad
|
||||||
|
for_window [instance="feeds"] border none
|
||||||
|
exec termite --name=feeds -e newsboat
|
||||||
|
|
||||||
|
|
||||||
|
# application specific scratchpad shortcuts
|
||||||
|
bindsym $mod+c [instance="music"] scratchpad show
|
||||||
|
bindsym $mod+x [instance="wiki"] scratchpad show
|
||||||
|
bindsym $mod+z [instance="files"] scratchpad show
|
||||||
|
bindsym $mod+v [instance="feeds"] scratchpad show
|
||||||
|
# switch to workspace
|
||||||
|
bindsym $mod+1 workspace 1
|
||||||
|
bindsym $mod+2 workspace 2
|
||||||
|
bindsym $mod+3 workspace 3
|
||||||
|
bindsym $mod+4 workspace 4
|
||||||
|
bindsym $mod+5 workspace 5
|
||||||
|
bindsym $mod+6 workspace 6
|
||||||
|
bindsym $mod+7 workspace 7
|
||||||
|
bindsym $mod+8 workspace 8
|
||||||
|
bindsym $mod+9 workspace 9
|
||||||
|
bindsym $mod+0 workspace 10
|
||||||
|
|
||||||
|
# move focused container to workspace
|
||||||
|
bindsym $mod+Shift+1 move container to workspace 1
|
||||||
|
bindsym $mod+Shift+2 move container to workspace 2
|
||||||
|
bindsym $mod+Shift+3 move container to workspace 3
|
||||||
|
bindsym $mod+Shift+4 move container to workspace 4
|
||||||
|
bindsym $mod+Shift+5 move container to workspace 5
|
||||||
|
bindsym $mod+Shift+6 move container to workspace 6
|
||||||
|
bindsym $mod+Shift+7 move container to workspace 7
|
||||||
|
bindsym $mod+Shift+8 move container to workspace 8
|
||||||
|
bindsym $mod+Shift+9 move container to workspace 9
|
||||||
|
bindsym $mod+Shift+0 move container to workspace 10
|
||||||
|
|
||||||
|
# reload the configuration file
|
||||||
|
bindsym $mod+Shift+c reload
|
||||||
|
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||||
|
bindsym $mod+Shift+r restart
|
||||||
|
# exit i3 (logs you out of your X session)
|
||||||
|
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
|
||||||
|
|
||||||
|
# resize window (you can also use the mouse for that)
|
||||||
|
mode "resize" {
|
||||||
|
# These bindings trigger as soon as you enter the resize mode
|
||||||
|
|
||||||
|
# Pressing left will shrink the window’s width.
|
||||||
|
# Pressing right will grow the window’s width.
|
||||||
|
# Pressing up will shrink the window’s height.
|
||||||
|
# Pressing down will grow the window’s height.
|
||||||
|
bindsym h resize shrink width 10 px or 10 ppt
|
||||||
|
bindsym j resize grow height 10 px or 10 ppt
|
||||||
|
bindsym k resize shrink height 10 px or 10 ppt
|
||||||
|
bindsym l resize grow width 10 px or 10 ppt
|
||||||
|
|
||||||
|
# same bindings, but for the arrow keys
|
||||||
|
bindsym Left resize shrink width 10 px or 10 ppt
|
||||||
|
bindsym Down resize grow height 10 px or 10 ppt
|
||||||
|
bindsym Up resize shrink height 10 px or 10 ppt
|
||||||
|
bindsym Right resize grow width 10 px or 10 ppt
|
||||||
|
|
||||||
|
# back to normal: Enter or Escape
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
}
|
||||||
|
|
||||||
|
bindsym $mod+r mode "resize"
|
||||||
|
|
||||||
|
bar {
|
||||||
|
i3bar_command i3bar -t
|
||||||
|
mode hide
|
||||||
|
colors {
|
||||||
|
background #00000000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
font=Fantasque Sans Mono 14
|
||||||
|
background-color=#1d1f21
|
||||||
|
border-size=0
|
|
@ -0,0 +1,31 @@
|
||||||
|
# Recommended location for database
|
||||||
|
db_file "~/.config/mpd/database"
|
||||||
|
|
||||||
|
# Logs to systemd journal
|
||||||
|
log_file "syslog"
|
||||||
|
|
||||||
|
# The music directory is by default the XDG directory, uncomment to amend and choose a different directory
|
||||||
|
music_directory "~/Music/library"
|
||||||
|
|
||||||
|
# Uncomment to refresh the database whenever files in the music_directory are changed
|
||||||
|
auto_update "yes"
|
||||||
|
|
||||||
|
replaygain "auto"
|
||||||
|
restore_paused "yes"
|
||||||
|
# Uncomment to enable the functionalities
|
||||||
|
playlist_directory "~/.config/mpd/playlists"
|
||||||
|
pid_file "~/.config/mpd/pid"
|
||||||
|
state_file "~/.config/mpd/state"
|
||||||
|
sticker_file "~/.config/mpd/sticker.sql"
|
||||||
|
|
||||||
|
audio_output {
|
||||||
|
type "fifo"
|
||||||
|
name "toggle_visualizer"
|
||||||
|
path "/tmp/mpd.fifo"
|
||||||
|
format "44100:16:2"
|
||||||
|
}
|
||||||
|
|
||||||
|
audio_output {
|
||||||
|
type "pulse"
|
||||||
|
name "pulse audio"
|
||||||
|
}
|
|
@ -0,0 +1,560 @@
|
||||||
|
##############################################################
|
||||||
|
## This is the example bindings file. Copy it to ##
|
||||||
|
## ~/.ncmpcpp/bindings or $XDG_CONFIG_HOME/ncmpcpp/bindings ##
|
||||||
|
## and set up your preferences ##
|
||||||
|
##############################################################
|
||||||
|
##
|
||||||
|
##### General rules #####
|
||||||
|
##
|
||||||
|
## 1) Because each action has runtime checks whether it's
|
||||||
|
## ok to run it, a few actions can be bound to one key.
|
||||||
|
## Actions will be bound in order given in configuration
|
||||||
|
## file. When a key is pressed, first action in order
|
||||||
|
## will test itself whether it's possible to run it. If
|
||||||
|
## test succeeds, action is executed and other actions
|
||||||
|
## bound to this key are ignored. If it doesn't, next
|
||||||
|
## action in order tests itself etc.
|
||||||
|
##
|
||||||
|
## 2) It's possible to bind more that one action at once
|
||||||
|
## to a key. It can be done using the following syntax:
|
||||||
|
##
|
||||||
|
## def_key "key"
|
||||||
|
## action1
|
||||||
|
## action2
|
||||||
|
## ...
|
||||||
|
##
|
||||||
|
## This creates a chain of actions. When such chain is
|
||||||
|
## executed, each action in chain is run until the end of
|
||||||
|
## chain is reached or one of its actions fails to execute
|
||||||
|
## due to its requirements not being met. If multiple actions
|
||||||
|
## and/or chains are bound to the same key, they will be
|
||||||
|
## consecutively run until one of them gets fully executed.
|
||||||
|
##
|
||||||
|
## 3) When ncmpcpp starts, bindings configuration file is
|
||||||
|
## parsed and then ncmpcpp provides "missing pieces"
|
||||||
|
## of default keybindings. If you want to disable some
|
||||||
|
## bindings, there is a special action called 'dummy'
|
||||||
|
## for that purpose. Eg. if you want to disable ability
|
||||||
|
## to crop playlists, you need to put the following
|
||||||
|
## into configuration file:
|
||||||
|
##
|
||||||
|
## def_key "C"
|
||||||
|
## dummy
|
||||||
|
##
|
||||||
|
## After that ncmpcpp will not bind any default action
|
||||||
|
## to this key.
|
||||||
|
##
|
||||||
|
## 4) To let you write simple macros, the following special
|
||||||
|
## actions are provided:
|
||||||
|
##
|
||||||
|
## - push_character "character" - pushes given special
|
||||||
|
## character into input queue, so it will be immediately
|
||||||
|
## picked by ncmpcpp upon next call to readKey function.
|
||||||
|
## Accepted values: mouse, up, down, page_up, page_down,
|
||||||
|
## home, end, space, enter, insert, delete, left, right,
|
||||||
|
## tab, ctrl-a, ctrl-b, ..., ctrl-z, ctrl-[, ctrl-\\,
|
||||||
|
## ctrl-], ctrl-^, ctrl-_, f1, f2, ..., f12, backspace.
|
||||||
|
## In addition, most of these names can be prefixed with
|
||||||
|
## alt-/ctrl-/shift- to be recognized with the appropriate
|
||||||
|
## modifier key(s).
|
||||||
|
##
|
||||||
|
## - push_characters "string" - pushes given string into
|
||||||
|
## input queue.
|
||||||
|
##
|
||||||
|
## - require_runnable "action" - checks whether given action
|
||||||
|
## is runnable and fails if it isn't. This is especially
|
||||||
|
## useful when mixed with previous two functions. Consider
|
||||||
|
## the following macro definition:
|
||||||
|
##
|
||||||
|
## def_key "key"
|
||||||
|
## push_characters "custom_filter"
|
||||||
|
## apply_filter
|
||||||
|
##
|
||||||
|
## If apply_filter can't be currently run, we end up with
|
||||||
|
## sequence of characters in input queue which will be
|
||||||
|
## treated just as we typed them. This may lead to unexpected
|
||||||
|
## results (in this case 'c' will most likely clear current
|
||||||
|
## playlist, 'u' will trigger database update, 's' will stop
|
||||||
|
## playback etc.). To prevent such thing from happening, we
|
||||||
|
## need to change above definition to this one:
|
||||||
|
##
|
||||||
|
## def_key "key"
|
||||||
|
## require_runnable "apply_filter"
|
||||||
|
## push_characters "custom_filter"
|
||||||
|
## apply_filter
|
||||||
|
##
|
||||||
|
## Here, first we test whether apply_filter can be actually run
|
||||||
|
## before we stuff characters into input queue, so if condition
|
||||||
|
## is not met, whole chain is aborted and we're fine.
|
||||||
|
##
|
||||||
|
## - require_screen "screen" - checks whether given screen is
|
||||||
|
## currently active. accepted values: browser, clock, help,
|
||||||
|
## media_library, outputs, playlist, playlist_editor,
|
||||||
|
## search_engine, tag_editor, visualizer, last_fm, lyrics,
|
||||||
|
## selected_items_adder, server_info, song_info,
|
||||||
|
## sort_playlist_dialog, tiny_tag_editor.
|
||||||
|
##
|
||||||
|
## - run_external_command "command" - runs given command using
|
||||||
|
## system() function.
|
||||||
|
##
|
||||||
|
## 5) In addition to binding to a key, you can also bind actions
|
||||||
|
## or chains of actions to a command. If it comes to commands,
|
||||||
|
## syntax is very similar to defining keys. Here goes example
|
||||||
|
## definition of a command:
|
||||||
|
##
|
||||||
|
## def_command "quit" [deferred]
|
||||||
|
## stop
|
||||||
|
## quit
|
||||||
|
##
|
||||||
|
## If you execute the above command (which can be done by
|
||||||
|
## invoking action execute_command, typing 'quit' and pressing
|
||||||
|
## enter), ncmpcpp will stop the player and then quit. Note the
|
||||||
|
## presence of word 'deferred' enclosed in square brackets. It
|
||||||
|
## tells ncmpcpp to wait for confirmation (ie. pressing enter)
|
||||||
|
## after you typed quit. Instead of 'deferred', 'immediate'
|
||||||
|
## could be used. Then ncmpcpp will not wait for confirmation
|
||||||
|
## (enter) and will execute the command the moment it sees it.
|
||||||
|
##
|
||||||
|
## Note: while command chains are executed, internal environment
|
||||||
|
## update (which includes current window refresh and mpd status
|
||||||
|
## update) is not performed for performance reasons. However, it
|
||||||
|
## may be desirable to do so in some situration. Therefore it's
|
||||||
|
## possible to invoke by hand by performing 'update enviroment'
|
||||||
|
## action.
|
||||||
|
##
|
||||||
|
## Note: There is a difference between:
|
||||||
|
##
|
||||||
|
## def_key "key"
|
||||||
|
## action1
|
||||||
|
##
|
||||||
|
## def_key "key"
|
||||||
|
## action2
|
||||||
|
##
|
||||||
|
## and
|
||||||
|
##
|
||||||
|
## def_key "key"
|
||||||
|
## action1
|
||||||
|
## action2
|
||||||
|
##
|
||||||
|
## First one binds two single actions to the same key whilst
|
||||||
|
## second one defines a chain of actions. The behavior of
|
||||||
|
## these two is different and is described in (1) and (2).
|
||||||
|
##
|
||||||
|
## Note: Function def_key accepts non-ascii characters.
|
||||||
|
##
|
||||||
|
##### List of unbound actions #####
|
||||||
|
##
|
||||||
|
## The following actions are not bound to any key/command:
|
||||||
|
##
|
||||||
|
## - set_volume
|
||||||
|
##
|
||||||
|
#
|
||||||
|
#def_key "mouse"
|
||||||
|
# mouse_event
|
||||||
|
#
|
||||||
|
#def_key "up"
|
||||||
|
# scroll_up
|
||||||
|
#
|
||||||
|
#def_key "shift-up"
|
||||||
|
# select_item
|
||||||
|
# scroll_up
|
||||||
|
#
|
||||||
|
#def_key "down"
|
||||||
|
# scroll_down
|
||||||
|
#
|
||||||
|
#def_key "shift-down"
|
||||||
|
# select_item
|
||||||
|
# scroll_down
|
||||||
|
#
|
||||||
|
#def_key "["
|
||||||
|
# scroll_up_album
|
||||||
|
#
|
||||||
|
#def_key "]"
|
||||||
|
# scroll_down_album
|
||||||
|
#
|
||||||
|
#def_key "{"
|
||||||
|
# scroll_up_artist
|
||||||
|
#
|
||||||
|
#def_key "}"
|
||||||
|
# scroll_down_artist
|
||||||
|
#
|
||||||
|
#def_key "page_up"
|
||||||
|
# page_up
|
||||||
|
#
|
||||||
|
#def_key "page_down"
|
||||||
|
# page_down
|
||||||
|
#
|
||||||
|
#def_key "home"
|
||||||
|
# move_home
|
||||||
|
#
|
||||||
|
#def_key "end"
|
||||||
|
# move_end
|
||||||
|
#
|
||||||
|
#def_key "insert"
|
||||||
|
# select_item
|
||||||
|
#
|
||||||
|
#def_key "enter"
|
||||||
|
# enter_directory
|
||||||
|
#
|
||||||
|
#def_key "enter"
|
||||||
|
# toggle_output
|
||||||
|
#
|
||||||
|
#def_key "enter"
|
||||||
|
# run_action
|
||||||
|
#
|
||||||
|
#def_key "enter"
|
||||||
|
# play_item
|
||||||
|
#
|
||||||
|
#def_key "space"
|
||||||
|
# add_item_to_playlist
|
||||||
|
#
|
||||||
|
#def_key "space"
|
||||||
|
# toggle_lyrics_update_on_song_change
|
||||||
|
#
|
||||||
|
#def_key "space"
|
||||||
|
# toggle_visualization_type
|
||||||
|
#
|
||||||
|
#def_key "delete"
|
||||||
|
# delete_playlist_items
|
||||||
|
#
|
||||||
|
#def_key "delete"
|
||||||
|
# delete_browser_items
|
||||||
|
#
|
||||||
|
#def_key "delete"
|
||||||
|
# delete_stored_playlist
|
||||||
|
#
|
||||||
|
#def_key "right"
|
||||||
|
# next_column
|
||||||
|
#
|
||||||
|
#def_key "right"
|
||||||
|
# slave_screen
|
||||||
|
#
|
||||||
|
#def_key "right"
|
||||||
|
# volume_up
|
||||||
|
#
|
||||||
|
#def_key "+"
|
||||||
|
# volume_up
|
||||||
|
#
|
||||||
|
#def_key "left"
|
||||||
|
# previous_column
|
||||||
|
#
|
||||||
|
#def_key "left"
|
||||||
|
# master_screen
|
||||||
|
#
|
||||||
|
#def_key "left"
|
||||||
|
# volume_down
|
||||||
|
#
|
||||||
|
#def_key "-"
|
||||||
|
# volume_down
|
||||||
|
#
|
||||||
|
#def_key ":"
|
||||||
|
# execute_command
|
||||||
|
#
|
||||||
|
#def_key "tab"
|
||||||
|
# next_screen
|
||||||
|
#
|
||||||
|
#def_key "shift-tab"
|
||||||
|
# previous_screen
|
||||||
|
#
|
||||||
|
#def_key "f1"
|
||||||
|
# show_help
|
||||||
|
#
|
||||||
|
#def_key "1"
|
||||||
|
# show_playlist
|
||||||
|
#
|
||||||
|
#def_key "2"
|
||||||
|
# show_browser
|
||||||
|
#
|
||||||
|
#def_key "2"
|
||||||
|
# change_browse_mode
|
||||||
|
#
|
||||||
|
#def_key "3"
|
||||||
|
# show_search_engine
|
||||||
|
#
|
||||||
|
#def_key "3"
|
||||||
|
# reset_search_engine
|
||||||
|
#
|
||||||
|
#def_key "4"
|
||||||
|
# show_media_library
|
||||||
|
#
|
||||||
|
#def_key "4"
|
||||||
|
# toggle_media_library_columns_mode
|
||||||
|
#
|
||||||
|
#def_key "5"
|
||||||
|
# show_playlist_editor
|
||||||
|
#
|
||||||
|
#def_key "6"
|
||||||
|
# show_tag_editor
|
||||||
|
#
|
||||||
|
#def_key "7"
|
||||||
|
# show_outputs
|
||||||
|
#
|
||||||
|
#def_key "8"
|
||||||
|
# show_visualizer
|
||||||
|
#
|
||||||
|
#def_key "="
|
||||||
|
# show_clock
|
||||||
|
#
|
||||||
|
#def_key "@"
|
||||||
|
# show_server_info
|
||||||
|
#
|
||||||
|
#def_key "s"
|
||||||
|
# stop
|
||||||
|
#
|
||||||
|
#def_key "p"
|
||||||
|
# pause
|
||||||
|
#
|
||||||
|
#def_key ">"
|
||||||
|
# next
|
||||||
|
#
|
||||||
|
#def_key "<"
|
||||||
|
# previous
|
||||||
|
#
|
||||||
|
#def_key "ctrl-h"
|
||||||
|
# jump_to_parent_directory
|
||||||
|
#
|
||||||
|
#def_key "ctrl-h"
|
||||||
|
# replay_song
|
||||||
|
#
|
||||||
|
#def_key "backspace"
|
||||||
|
# jump_to_parent_directory
|
||||||
|
#
|
||||||
|
#def_key "backspace"
|
||||||
|
# replay_song
|
||||||
|
#
|
||||||
|
#def_key "f"
|
||||||
|
# seek_forward
|
||||||
|
#
|
||||||
|
#def_key "b"
|
||||||
|
# seek_backward
|
||||||
|
#
|
||||||
|
#def_key "r"
|
||||||
|
# toggle_repeat
|
||||||
|
#
|
||||||
|
#def_key "z"
|
||||||
|
# toggle_random
|
||||||
|
#
|
||||||
|
#def_key "y"
|
||||||
|
# save_tag_changes
|
||||||
|
#
|
||||||
|
#def_key "y"
|
||||||
|
# start_searching
|
||||||
|
#
|
||||||
|
#def_key "y"
|
||||||
|
# toggle_single
|
||||||
|
#
|
||||||
|
#def_key "R"
|
||||||
|
# toggle_consume
|
||||||
|
#
|
||||||
|
#def_key "Y"
|
||||||
|
# toggle_replay_gain_mode
|
||||||
|
#
|
||||||
|
#def_key "T"
|
||||||
|
# toggle_add_mode
|
||||||
|
#
|
||||||
|
#def_key "|"
|
||||||
|
# toggle_mouse
|
||||||
|
#
|
||||||
|
#def_key "#"
|
||||||
|
# toggle_bitrate_visibility
|
||||||
|
#
|
||||||
|
#def_key "Z"
|
||||||
|
# shuffle
|
||||||
|
#
|
||||||
|
#def_key "x"
|
||||||
|
# toggle_crossfade
|
||||||
|
#
|
||||||
|
#def_key "X"
|
||||||
|
# set_crossfade
|
||||||
|
#
|
||||||
|
#def_key "u"
|
||||||
|
# update_database
|
||||||
|
#
|
||||||
|
#def_key "ctrl-s"
|
||||||
|
# sort_playlist
|
||||||
|
#
|
||||||
|
#def_key "ctrl-s"
|
||||||
|
# toggle_browser_sort_mode
|
||||||
|
#
|
||||||
|
#def_key "ctrl-s"
|
||||||
|
# toggle_media_library_sort_mode
|
||||||
|
#
|
||||||
|
#def_key "ctrl-r"
|
||||||
|
# reverse_playlist
|
||||||
|
#
|
||||||
|
#def_key "ctrl-f"
|
||||||
|
# apply_filter
|
||||||
|
#
|
||||||
|
#def_key "ctrl-_"
|
||||||
|
# select_found_items
|
||||||
|
#
|
||||||
|
#def_key "/"
|
||||||
|
# find
|
||||||
|
#
|
||||||
|
#def_key "/"
|
||||||
|
# find_item_forward
|
||||||
|
#
|
||||||
|
#def_key "?"
|
||||||
|
# find
|
||||||
|
#
|
||||||
|
#def_key "?"
|
||||||
|
# find_item_backward
|
||||||
|
#
|
||||||
|
#def_key "."
|
||||||
|
# next_found_item
|
||||||
|
#
|
||||||
|
#def_key ","
|
||||||
|
# previous_found_item
|
||||||
|
#
|
||||||
|
#def_key "w"
|
||||||
|
# toggle_find_mode
|
||||||
|
#
|
||||||
|
#def_key "e"
|
||||||
|
# edit_song
|
||||||
|
#
|
||||||
|
#def_key "e"
|
||||||
|
# edit_library_tag
|
||||||
|
#
|
||||||
|
#def_key "e"
|
||||||
|
# edit_library_album
|
||||||
|
#
|
||||||
|
#def_key "e"
|
||||||
|
# edit_directory_name
|
||||||
|
#
|
||||||
|
#def_key "e"
|
||||||
|
# edit_playlist_name
|
||||||
|
#
|
||||||
|
#def_key "e"
|
||||||
|
# edit_lyrics
|
||||||
|
#
|
||||||
|
#def_key "i"
|
||||||
|
# show_song_info
|
||||||
|
#
|
||||||
|
#def_key "I"
|
||||||
|
# show_artist_info
|
||||||
|
#
|
||||||
|
#def_key "g"
|
||||||
|
# jump_to_position_in_song
|
||||||
|
#
|
||||||
|
#def_key "l"
|
||||||
|
# show_lyrics
|
||||||
|
#
|
||||||
|
#def_key "ctrl-v"
|
||||||
|
# select_range
|
||||||
|
#
|
||||||
|
#def_key "v"
|
||||||
|
# reverse_selection
|
||||||
|
#
|
||||||
|
#def_key "V"
|
||||||
|
# remove_selection
|
||||||
|
#
|
||||||
|
#def_key "B"
|
||||||
|
# select_album
|
||||||
|
#
|
||||||
|
#def_key "a"
|
||||||
|
# add_selected_items
|
||||||
|
#
|
||||||
|
#def_key "c"
|
||||||
|
# clear_playlist
|
||||||
|
#
|
||||||
|
#def_key "c"
|
||||||
|
# clear_main_playlist
|
||||||
|
#
|
||||||
|
#def_key "C"
|
||||||
|
# crop_playlist
|
||||||
|
#
|
||||||
|
#def_key "C"
|
||||||
|
# crop_main_playlist
|
||||||
|
#
|
||||||
|
#def_key "m"
|
||||||
|
# move_sort_order_up
|
||||||
|
#
|
||||||
|
#def_key "m"
|
||||||
|
# move_selected_items_up
|
||||||
|
#
|
||||||
|
#def_key "n"
|
||||||
|
# move_sort_order_down
|
||||||
|
#
|
||||||
|
#def_key "n"
|
||||||
|
# move_selected_items_down
|
||||||
|
#
|
||||||
|
#def_key "M"
|
||||||
|
# move_selected_items_to
|
||||||
|
#
|
||||||
|
#def_key "A"
|
||||||
|
# add
|
||||||
|
#
|
||||||
|
#def_key "S"
|
||||||
|
# save_playlist
|
||||||
|
#
|
||||||
|
#def_key "o"
|
||||||
|
# jump_to_playing_song
|
||||||
|
#
|
||||||
|
#def_key "G"
|
||||||
|
# jump_to_browser
|
||||||
|
#
|
||||||
|
#def_key "G"
|
||||||
|
# jump_to_playlist_editor
|
||||||
|
#
|
||||||
|
#def_key "~"
|
||||||
|
# jump_to_media_library
|
||||||
|
#
|
||||||
|
#def_key "E"
|
||||||
|
# jump_to_tag_editor
|
||||||
|
#
|
||||||
|
#def_key "U"
|
||||||
|
# toggle_playing_song_centering
|
||||||
|
#
|
||||||
|
#def_key "P"
|
||||||
|
# toggle_display_mode
|
||||||
|
#
|
||||||
|
#def_key "\\"
|
||||||
|
# toggle_interface
|
||||||
|
#
|
||||||
|
#def_key "!"
|
||||||
|
# toggle_separators_between_albums
|
||||||
|
#
|
||||||
|
#def_key "L"
|
||||||
|
# toggle_lyrics_fetcher
|
||||||
|
#
|
||||||
|
#def_key "F"
|
||||||
|
# fetch_lyrics_in_background
|
||||||
|
#
|
||||||
|
#def_key "alt-l"
|
||||||
|
# toggle_fetching_lyrics_in_background
|
||||||
|
#
|
||||||
|
#def_key "ctrl-l"
|
||||||
|
# toggle_screen_lock
|
||||||
|
#
|
||||||
|
#def_key "`"
|
||||||
|
# toggle_library_tag_type
|
||||||
|
#
|
||||||
|
#def_key "`"
|
||||||
|
# refetch_lyrics
|
||||||
|
#
|
||||||
|
#def_key "`"
|
||||||
|
# add_random_items
|
||||||
|
#
|
||||||
|
#def_key "ctrl-p"
|
||||||
|
# set_selected_items_priority
|
||||||
|
#
|
||||||
|
#def_key "q"
|
||||||
|
# quit
|
||||||
|
#
|
||||||
|
#def_key "f"
|
||||||
|
# find
|
||||||
|
#def_key "f"
|
||||||
|
# find_item_forward
|
||||||
|
def_key "j"
|
||||||
|
scroll_down
|
||||||
|
def_key "k"
|
||||||
|
scroll_up
|
||||||
|
def_key "h"
|
||||||
|
previous_column
|
||||||
|
def_key "l"
|
||||||
|
next_column
|
||||||
|
def_key "n"
|
||||||
|
next_found_item
|
||||||
|
def_key "N"
|
||||||
|
previous_found_item
|
||||||
|
|
|
@ -0,0 +1,544 @@
|
||||||
|
##############################################################################
|
||||||
|
## This is the example configuration file. Copy it to $HOME/.ncmpcpp/config ##
|
||||||
|
## or $XDG_CONFIG_HOME/ncmpcpp/config and set up your preferences. ##
|
||||||
|
##############################################################################
|
||||||
|
#
|
||||||
|
##### directories ######
|
||||||
|
##
|
||||||
|
## Directory for storing ncmpcpp related files. Changing it is useful if you
|
||||||
|
## want to store everything somewhere else and provide command line setting for
|
||||||
|
## alternative location to config file which defines that while launching
|
||||||
|
## ncmpcpp.
|
||||||
|
##
|
||||||
|
#
|
||||||
|
#ncmpcpp_directory = ~/.ncmpcpp
|
||||||
|
#
|
||||||
|
##
|
||||||
|
## Directory for storing downloaded lyrics. It defaults to ~/.lyrics since other
|
||||||
|
## MPD clients (eg. ncmpc) also use that location.
|
||||||
|
##
|
||||||
|
#
|
||||||
|
#lyrics_directory = ~/.lyrics
|
||||||
|
#
|
||||||
|
##### connection settings #####
|
||||||
|
#
|
||||||
|
#mpd_host = localhost
|
||||||
|
#
|
||||||
|
#mpd_port = 6600
|
||||||
|
#
|
||||||
|
#mpd_connection_timeout = 5
|
||||||
|
#
|
||||||
|
## Needed for tag editor and file operations to work.
|
||||||
|
##
|
||||||
|
mpd_music_dir = ~/Music/library
|
||||||
|
#
|
||||||
|
#mpd_crossfade_time = 5
|
||||||
|
#
|
||||||
|
##### music visualizer #####
|
||||||
|
##
|
||||||
|
## Note: In order to make music visualizer work you'll need to use mpd fifo
|
||||||
|
## output, whose format parameter has to be set to 44100:16:1 for mono
|
||||||
|
## visualization or 44100:16:2 for stereo visualization. Example configuration
|
||||||
|
## (it has to be put into mpd.conf):
|
||||||
|
##
|
||||||
|
## audio_output {
|
||||||
|
## type "fifo"
|
||||||
|
## name "Visualizer feed"
|
||||||
|
## path "/tmp/mpd.fifo"
|
||||||
|
## format "44100:16:2"
|
||||||
|
## }
|
||||||
|
##
|
||||||
|
#
|
||||||
|
#visualizer_fifo_path = /tmp/mpd.fifo
|
||||||
|
#
|
||||||
|
##
|
||||||
|
## Note: Below parameter is needed for ncmpcpp to determine which output
|
||||||
|
## provides data for visualizer and thus allow syncing between visualization and
|
||||||
|
## sound as currently there are some problems with it.
|
||||||
|
##
|
||||||
|
#
|
||||||
|
#visualizer_output_name = Visualizer feed
|
||||||
|
#
|
||||||
|
##
|
||||||
|
## If you set format to 44100:16:2, make it 'yes'.
|
||||||
|
##
|
||||||
|
visualizer_in_stereo = yes
|
||||||
|
#
|
||||||
|
##
|
||||||
|
## Note: Below parameter defines how often ncmpcpp has to "synchronize"
|
||||||
|
## visualizer and audio outputs. 30 seconds is optimal value, but if you
|
||||||
|
## experience synchronization problems, set it to lower value. Keep in mind
|
||||||
|
## that sane values start with >=10.
|
||||||
|
##
|
||||||
|
#
|
||||||
|
#visualizer_sync_interval = 30
|
||||||
|
#
|
||||||
|
##
|
||||||
|
## Note: To enable spectrum frequency visualization you need to compile ncmpcpp
|
||||||
|
## with fftw3 support.
|
||||||
|
##
|
||||||
|
#
|
||||||
|
## Available values: spectrum, wave, wave_filled, ellipse.
|
||||||
|
##
|
||||||
|
#visualizer_type = wave
|
||||||
|
#
|
||||||
|
#visualizer_look = ●▮
|
||||||
|
#
|
||||||
|
#visualizer_color = blue, cyan, green, yellow, magenta, red
|
||||||
|
#
|
||||||
|
## Alternative subset of 256 colors for terminals that support it.
|
||||||
|
##
|
||||||
|
#visualizer_color = 41, 83, 119, 155, 185, 215, 209, 203, 197, 161
|
||||||
|
#
|
||||||
|
##### system encoding #####
|
||||||
|
##
|
||||||
|
## ncmpcpp should detect your charset encoding but if it failed to do so, you
|
||||||
|
## can specify charset encoding you are using here.
|
||||||
|
##
|
||||||
|
## Note: You can see whether your ncmpcpp build supports charset detection by
|
||||||
|
## checking output of `ncmpcpp --version`.
|
||||||
|
##
|
||||||
|
## Note: Since MPD uses UTF-8 by default, setting this option makes sense only
|
||||||
|
## if your encoding is different.
|
||||||
|
##
|
||||||
|
#
|
||||||
|
#system_encoding = ""
|
||||||
|
#
|
||||||
|
##### delays #####
|
||||||
|
#
|
||||||
|
## Time of inactivity (in seconds) after playlist highlighting will be disabled
|
||||||
|
## (0 = always on).
|
||||||
|
##
|
||||||
|
#playlist_disable_highlight_delay = 5
|
||||||
|
#
|
||||||
|
## Defines how long messages are supposed to be visible.
|
||||||
|
##
|
||||||
|
#message_delay_time = 5
|
||||||
|
#
|
||||||
|
##### song format #####
|
||||||
|
##
|
||||||
|
## For a song format you can use:
|
||||||
|
##
|
||||||
|
## %l - length
|
||||||
|
## %f - filename
|
||||||
|
## %D - directory
|
||||||
|
## %a - artist
|
||||||
|
## %A - album artist
|
||||||
|
## %t - title
|
||||||
|
## %b - album
|
||||||
|
## %y - date
|
||||||
|
## %n - track number (01/12 -> 01)
|
||||||
|
## %N - full track info (01/12 -> 01/12)
|
||||||
|
## %g - genre
|
||||||
|
## %c - composer
|
||||||
|
## %p - performer
|
||||||
|
## %d - disc
|
||||||
|
## %C - comment
|
||||||
|
## %P - priority
|
||||||
|
## $R - begin right alignment
|
||||||
|
##
|
||||||
|
## If you want to make sure that a part of the format is displayed only when
|
||||||
|
## certain tags are present, you can archieve it by grouping them with brackets,
|
||||||
|
## e.g. '{%a - %t}' will be evaluated to 'ARTIST - TITLE' if both tags are
|
||||||
|
## present or '' otherwise. It is also possible to define a list of
|
||||||
|
## alternatives by providing several groups and separating them with '|',
|
||||||
|
## e.g. '{%t}|{%f}' will be evaluated to 'TITLE' or 'FILENAME' if the former is
|
||||||
|
## not present.
|
||||||
|
##
|
||||||
|
## Note: If you want to set limit on maximal length of a tag, just put the
|
||||||
|
## appropriate number between % and character that defines tag type, e.g. to
|
||||||
|
## make album take max. 20 terminal cells, use '%20b'.
|
||||||
|
##
|
||||||
|
## In addition, formats support markers used for text attributes. They are
|
||||||
|
## followed by character '$'. After that you can put:
|
||||||
|
##
|
||||||
|
## - 0 - default window color (discards all other colors)
|
||||||
|
## - 1 - black
|
||||||
|
## - 2 - red
|
||||||
|
## - 3 - green
|
||||||
|
## - 4 - yellow
|
||||||
|
## - 5 - blue
|
||||||
|
## - 6 - magenta
|
||||||
|
## - 7 - cyan
|
||||||
|
## - 8 - white
|
||||||
|
## - 9 - end of current color
|
||||||
|
## - b - bold text
|
||||||
|
## - u - underline text
|
||||||
|
## - r - reverse colors
|
||||||
|
## - a - use alternative character set
|
||||||
|
##
|
||||||
|
## If you don't want to use a non-color attribute anymore, just put it again,
|
||||||
|
## but this time insert character '/' between '$' and attribute character,
|
||||||
|
## e.g. {$b%t$/b}|{$r%f$/r} will display bolded title tag or filename with
|
||||||
|
## reversed colors.
|
||||||
|
##
|
||||||
|
## If you want to use 256 colors and/or background colors in formats (the naming
|
||||||
|
## scheme is described below in section about color definitions), it can be done
|
||||||
|
## with the syntax $(COLOR), e.g. to set the artist tag to one of the
|
||||||
|
## non-standard colors and make it have yellow background, you need to write
|
||||||
|
## $(197_yellow)%a$(end). Note that for standard colors this is interchangable
|
||||||
|
## with attributes listed above.
|
||||||
|
##
|
||||||
|
## Note: colors can be nested.
|
||||||
|
##
|
||||||
|
#
|
||||||
|
#song_list_format = {%a - }{%t}|{$8%f$9}$R{$3(%l)$9}
|
||||||
|
#
|
||||||
|
#song_status_format = {{%a{ "%b"{ (%y)}} - }{%t}}|{%f}
|
||||||
|
#
|
||||||
|
#song_library_format = {%n - }{%t}|{%f}
|
||||||
|
#
|
||||||
|
#alternative_header_first_line_format = $b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b
|
||||||
|
#
|
||||||
|
#alternative_header_second_line_format = {{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D}
|
||||||
|
#
|
||||||
|
#current_item_prefix = $(yellow)$r
|
||||||
|
#
|
||||||
|
#current_item_suffix = $/r$(end)
|
||||||
|
#
|
||||||
|
#current_item_inactive_column_prefix = $(white)$r
|
||||||
|
#
|
||||||
|
#current_item_inactive_column_suffix = $/r$(end)
|
||||||
|
#
|
||||||
|
#now_playing_prefix = $b
|
||||||
|
#
|
||||||
|
#now_playing_suffix = $/b
|
||||||
|
#
|
||||||
|
#browser_playlist_prefix = "$2playlist$9 "
|
||||||
|
#
|
||||||
|
#selected_item_prefix = $6
|
||||||
|
#
|
||||||
|
#selected_item_suffix = $9
|
||||||
|
#
|
||||||
|
#modified_item_prefix = $3> $9
|
||||||
|
#
|
||||||
|
##
|
||||||
|
## Note: attributes are not supported for the following variables.
|
||||||
|
##
|
||||||
|
#song_window_title_format = {%a - }{%t}|{%f}
|
||||||
|
##
|
||||||
|
## Note: Below variables are used for sorting songs in browser. The sort mode
|
||||||
|
## determines how songs are sorted, and can be used in combination with a sort
|
||||||
|
## format to specify a custom sorting format. Available values for
|
||||||
|
## browser_sort_mode are "name", "mtime", "format" and "noop".
|
||||||
|
##
|
||||||
|
#
|
||||||
|
#browser_sort_mode = name
|
||||||
|
#
|
||||||
|
#browser_sort_format = {%a - }{%t}|{%f} {(%l)}
|
||||||
|
#
|
||||||
|
##### columns settings #####
|
||||||
|
##
|
||||||
|
## syntax of song columns list format is "column column etc."
|
||||||
|
##
|
||||||
|
## - syntax for each column is:
|
||||||
|
##
|
||||||
|
## (width of the column)[color of the column]{displayed tag}
|
||||||
|
##
|
||||||
|
## Note: Width is by default in %, if you want a column to have fixed size, add
|
||||||
|
## 'f' after the value, e.g. (10)[white]{a} will be the column that take 10% of
|
||||||
|
## screen (so the real width will depend on actual screen size), whereas
|
||||||
|
## (10f)[white]{a} will take 10 terminal cells, no matter how wide the screen
|
||||||
|
## is.
|
||||||
|
##
|
||||||
|
## - color is optional (if you want the default one, leave the field empty).
|
||||||
|
##
|
||||||
|
## Note: You can give a column additional attributes by putting appropriate
|
||||||
|
## character after displayed tag character. Available attributes are:
|
||||||
|
##
|
||||||
|
## - r - column will be right aligned
|
||||||
|
## - E - if tag is empty, empty tag marker won't be displayed
|
||||||
|
##
|
||||||
|
## You can also:
|
||||||
|
##
|
||||||
|
## - give a column custom name by putting it after attributes, separated with
|
||||||
|
## character ':', e.g. {lr:Length} gives you right aligned column of lengths
|
||||||
|
## named "Length".
|
||||||
|
##
|
||||||
|
## - define sequence of tags, that have to be displayed in case predecessor is
|
||||||
|
## empty in a way similar to the one in classic song format, i.e. using '|'
|
||||||
|
## character, e.g. {a|c|p:Owner} creates column named "Owner" that tries to
|
||||||
|
## display artist tag and then composer and performer if previous ones are not
|
||||||
|
## available.
|
||||||
|
##
|
||||||
|
#
|
||||||
|
#song_columns_list_format = (20)[]{a} (6f)[green]{NE} (50)[white]{t|f:Title} (20)[cyan]{b} (7f)[magenta]{l}
|
||||||
|
#
|
||||||
|
##### various settings #####
|
||||||
|
#
|
||||||
|
##
|
||||||
|
## Note: Custom command that will be executed each time song changes. Useful for
|
||||||
|
## notifications etc.
|
||||||
|
##
|
||||||
|
#execute_on_song_change = ""
|
||||||
|
#
|
||||||
|
##
|
||||||
|
## Note: Custom command that will be executed each time player state
|
||||||
|
## changes. The environment variable MPD_PLAYER_STATE is set to the current
|
||||||
|
## state (either unknown, play, pause, or stop) for its duration.
|
||||||
|
##
|
||||||
|
#
|
||||||
|
#execute_on_player_state_change = ""
|
||||||
|
#
|
||||||
|
#playlist_show_mpd_host = no
|
||||||
|
#
|
||||||
|
#playlist_show_remaining_time = no
|
||||||
|
#
|
||||||
|
#playlist_shorten_total_times = no
|
||||||
|
#
|
||||||
|
#playlist_separate_albums = no
|
||||||
|
#
|
||||||
|
##
|
||||||
|
## Note: Possible display modes: classic, columns.
|
||||||
|
##
|
||||||
|
#playlist_display_mode = columns
|
||||||
|
#
|
||||||
|
#browser_display_mode = classic
|
||||||
|
#
|
||||||
|
#search_engine_display_mode = classic
|
||||||
|
#
|
||||||
|
#playlist_editor_display_mode = classic
|
||||||
|
#
|
||||||
|
#discard_colors_if_item_is_selected = yes
|
||||||
|
#
|
||||||
|
#show_duplicate_tags = yes
|
||||||
|
#
|
||||||
|
#incremental_seeking = yes
|
||||||
|
#
|
||||||
|
#seek_time = 1
|
||||||
|
#
|
||||||
|
#volume_change_step = 2
|
||||||
|
#
|
||||||
|
#autocenter_mode = no
|
||||||
|
#
|
||||||
|
#centered_cursor = no
|
||||||
|
#
|
||||||
|
##
|
||||||
|
## Note: You can specify third character which will be used to build 'empty'
|
||||||
|
## part of progressbar.
|
||||||
|
##
|
||||||
|
#progressbar_look = =>
|
||||||
|
#
|
||||||
|
## Available values: database, playlist.
|
||||||
|
##
|
||||||
|
#default_place_to_search_in = database
|
||||||
|
#
|
||||||
|
## Available values: classic, alternative.
|
||||||
|
##
|
||||||
|
user_interface = alternative
|
||||||
|
#
|
||||||
|
#data_fetching_delay = yes
|
||||||
|
#
|
||||||
|
## Available values: artist, album_artist, date, genre, composer, performer.
|
||||||
|
##
|
||||||
|
media_library_primary_tag = album_artist
|
||||||
|
#
|
||||||
|
#media_library_albums_split_by_date = yes
|
||||||
|
#
|
||||||
|
## Available values: wrapped, normal.
|
||||||
|
##
|
||||||
|
#default_find_mode = wrapped
|
||||||
|
#
|
||||||
|
#default_tag_editor_pattern = %n - %t
|
||||||
|
#
|
||||||
|
#header_visibility = yes
|
||||||
|
#
|
||||||
|
#statusbar_visibility = yes
|
||||||
|
#
|
||||||
|
#titles_visibility = yes
|
||||||
|
#
|
||||||
|
#header_text_scrolling = yes
|
||||||
|
#
|
||||||
|
#cyclic_scrolling = no
|
||||||
|
#
|
||||||
|
#lines_scrolled = 2
|
||||||
|
#
|
||||||
|
#lyrics_fetchers = lyricwiki, azlyrics, genius, sing365, lyricsmania, metrolyrics, justsomelyrics, jahlyrics, plyrics, tekstowo, internet
|
||||||
|
#
|
||||||
|
#follow_now_playing_lyrics = no
|
||||||
|
#
|
||||||
|
#fetch_lyrics_for_current_song_in_background = no
|
||||||
|
#
|
||||||
|
#store_lyrics_in_song_dir = no
|
||||||
|
#
|
||||||
|
#generate_win32_compatible_filenames = yes
|
||||||
|
#
|
||||||
|
#allow_for_physical_item_deletion = no
|
||||||
|
#
|
||||||
|
##
|
||||||
|
## Note: If you set this variable, ncmpcpp will try to get info from last.fm in
|
||||||
|
## language you set and if it fails, it will fall back to english. Otherwise it
|
||||||
|
## will use english the first time.
|
||||||
|
##
|
||||||
|
## Note: Language has to be expressed as an ISO 639 alpha-2 code.
|
||||||
|
##
|
||||||
|
#lastfm_preferred_language = en
|
||||||
|
#
|
||||||
|
#space_add_mode = add_remove
|
||||||
|
#
|
||||||
|
#show_hidden_files_in_local_browser = no
|
||||||
|
#
|
||||||
|
##
|
||||||
|
## How shall screen switcher work?
|
||||||
|
##
|
||||||
|
## - "previous" - switch between the current and previous screen.
|
||||||
|
## - "screen1,...,screenN" - switch between given sequence of screens.
|
||||||
|
##
|
||||||
|
## Screens available for use: help, playlist, browser, search_engine,
|
||||||
|
## media_library, playlist_editor, tag_editor, outputs, visualizer, clock,
|
||||||
|
## lyrics, last_fm.
|
||||||
|
##
|
||||||
|
#screen_switcher_mode = playlist, browser
|
||||||
|
#
|
||||||
|
##
|
||||||
|
## Note: You can define startup screen by choosing screen from the list above.
|
||||||
|
##
|
||||||
|
#startup_screen = playlist
|
||||||
|
#
|
||||||
|
##
|
||||||
|
## Note: You can define startup slave screen by choosing screen from the list
|
||||||
|
## above or an empty value for no slave screen.
|
||||||
|
##
|
||||||
|
#startup_slave_screen = ""
|
||||||
|
#
|
||||||
|
#startup_slave_screen_focus = no
|
||||||
|
#
|
||||||
|
##
|
||||||
|
## Default width of locked screen (in %). Acceptable values are from 20 to 80.
|
||||||
|
##
|
||||||
|
#
|
||||||
|
#locked_screen_width_part = 50
|
||||||
|
#
|
||||||
|
#ask_for_locked_screen_width_part = yes
|
||||||
|
#
|
||||||
|
#jump_to_now_playing_song_at_start = yes
|
||||||
|
#
|
||||||
|
#ask_before_clearing_playlists = yes
|
||||||
|
#
|
||||||
|
#clock_display_seconds = no
|
||||||
|
#
|
||||||
|
#display_volume_level = yes
|
||||||
|
#
|
||||||
|
#display_bitrate = no
|
||||||
|
#
|
||||||
|
#display_remaining_time = no
|
||||||
|
#
|
||||||
|
## Available values: none, basic, extended, perl.
|
||||||
|
##
|
||||||
|
#regular_expressions = perl
|
||||||
|
#
|
||||||
|
##
|
||||||
|
## Note: if below is enabled, ncmpcpp will ignore leading "The" word while
|
||||||
|
## sorting items in browser, tags in media library, etc.
|
||||||
|
##
|
||||||
|
#ignore_leading_the = no
|
||||||
|
#
|
||||||
|
##
|
||||||
|
## Note: if below is enabled, ncmpcpp will ignore diacritics while searching and
|
||||||
|
## filtering lists. This takes an effect only if boost was compiled with ICU
|
||||||
|
## support.
|
||||||
|
##
|
||||||
|
#ignore_diacritics = no
|
||||||
|
#
|
||||||
|
#block_search_constraints_change_if_items_found = yes
|
||||||
|
#
|
||||||
|
#mouse_support = yes
|
||||||
|
#
|
||||||
|
#mouse_list_scroll_whole_page = yes
|
||||||
|
#
|
||||||
|
#empty_tag_marker = <empty>
|
||||||
|
#
|
||||||
|
#tags_separator = " | "
|
||||||
|
#
|
||||||
|
#tag_editor_extended_numeration = no
|
||||||
|
#
|
||||||
|
#media_library_sort_by_mtime = no
|
||||||
|
#
|
||||||
|
#enable_window_title = yes
|
||||||
|
#
|
||||||
|
##
|
||||||
|
## Note: You can choose default search mode for search engine. Available modes
|
||||||
|
## are:
|
||||||
|
##
|
||||||
|
## - 1 - use mpd built-in searching (no regexes, pattern matching)
|
||||||
|
##
|
||||||
|
## - 2 - use ncmpcpp searching (pattern matching with support for regexes, but
|
||||||
|
## if your mpd is on a remote machine, downloading big database to process
|
||||||
|
## it can take a while
|
||||||
|
##
|
||||||
|
## - 3 - match only exact values (this mode uses mpd function for searching in
|
||||||
|
## database and local one for searching in current playlist)
|
||||||
|
##
|
||||||
|
#
|
||||||
|
#search_engine_default_search_mode = 1
|
||||||
|
#
|
||||||
|
#external_editor = nano
|
||||||
|
#
|
||||||
|
## Note: set to yes if external editor is a console application.
|
||||||
|
##
|
||||||
|
#use_console_editor = yes
|
||||||
|
#
|
||||||
|
##### colors definitions #####
|
||||||
|
##
|
||||||
|
## It is possible to set a background color by setting a color value
|
||||||
|
## "<foreground>_<background>", e.g. red_black will set foregound color to red
|
||||||
|
## and background color to black.
|
||||||
|
##
|
||||||
|
## In addition, for terminals that support 256 colors it is possible to set one
|
||||||
|
## of them by using a number in range [1, 256] instead of color name,
|
||||||
|
## e.g. numerical value corresponding to red_black is 2_1. To find out if the
|
||||||
|
## terminal supports 256 colors, run ncmpcpp and check out the bottom of the
|
||||||
|
## help screen for list of available colors and their numerical values.
|
||||||
|
##
|
||||||
|
## What is more, there are two special values for the background color:
|
||||||
|
## "transparent" and "current". The first one explicitly sets the background to
|
||||||
|
## be transparent, while the second one allows you to preserve current
|
||||||
|
## background color and change only the foreground one. It's used implicitly
|
||||||
|
## when background color is not specified.
|
||||||
|
##
|
||||||
|
## Moreover, it is possible to attach format information to selected color
|
||||||
|
## variables by appending to their end a colon followed by one or more format
|
||||||
|
## flags, e.g. black:b or red:ur. The following variables support this syntax:
|
||||||
|
## visualizer_color, color1, color2, empty_tag_color, volume_color,
|
||||||
|
## state_line_color, state_flags_color, progressbar_color,
|
||||||
|
## progressbar_elapsed_color, player_state_color, statusbar_time_color,
|
||||||
|
## alternative_ui_separator_color.
|
||||||
|
##
|
||||||
|
## Note: due to technical limitations of older ncurses version, if 256 colors
|
||||||
|
## are used there is a possibility that you'll be able to use only colors with
|
||||||
|
## transparent background.
|
||||||
|
#
|
||||||
|
#colors_enabled = yes
|
||||||
|
#
|
||||||
|
#empty_tag_color = cyan
|
||||||
|
#
|
||||||
|
#header_window_color = default
|
||||||
|
#
|
||||||
|
#volume_color = default
|
||||||
|
#
|
||||||
|
#state_line_color = default
|
||||||
|
#
|
||||||
|
#state_flags_color = default:b
|
||||||
|
#
|
||||||
|
main_window_color = blue
|
||||||
|
#
|
||||||
|
color1 = white
|
||||||
|
#
|
||||||
|
color2 = green
|
||||||
|
#
|
||||||
|
#progressbar_color = black:b
|
||||||
|
#
|
||||||
|
#progressbar_elapsed_color = green:b
|
||||||
|
#
|
||||||
|
#statusbar_color = default
|
||||||
|
#
|
||||||
|
#statusbar_time_color = default:b
|
||||||
|
#
|
||||||
|
#player_state_color = default:b
|
||||||
|
#
|
||||||
|
#alternative_ui_separator_color = black:b
|
||||||
|
#
|
||||||
|
#window_border_color = green
|
||||||
|
#
|
||||||
|
#active_window_border = red
|
||||||
|
#
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,191 @@
|
||||||
|
"Don't try to be vi compatible
|
||||||
|
set nocompatible
|
||||||
|
|
||||||
|
" Disable folding
|
||||||
|
set nofoldenable
|
||||||
|
let g:markdown_folding=0
|
||||||
|
|
||||||
|
" Turn on syntax highlighting
|
||||||
|
syntax on
|
||||||
|
|
||||||
|
" mouse
|
||||||
|
set mouse=a
|
||||||
|
|
||||||
|
let base16colorspace=256
|
||||||
|
|
||||||
|
" Utility Functions
|
||||||
|
|
||||||
|
function! WordCount()
|
||||||
|
let currentmode = mode()
|
||||||
|
if !exists("g:lastmode_wc")
|
||||||
|
let g:lastmode_wc = currentmode
|
||||||
|
endif
|
||||||
|
" if we modify file, open a new buffer, be in visual ever, or switch modes
|
||||||
|
" since last run, we recompute.
|
||||||
|
if &modified || !exists("b:wordcount") || currentmode =~? '\c.*v' || currentmode != g:lastmode_wc
|
||||||
|
let g:lastmode_wc = currentmode
|
||||||
|
let l:old_position = getpos('.')
|
||||||
|
let l:old_status = v:statusmsg
|
||||||
|
execute "silent normal g\<c-g>"
|
||||||
|
if v:statusmsg == "--No lines in buffer--"
|
||||||
|
let b:wordcount = 0
|
||||||
|
else
|
||||||
|
let s:split_wc = split(v:statusmsg)
|
||||||
|
if index(s:split_wc, "Selected") < 0
|
||||||
|
let b:wordcount = str2nr(s:split_wc[11])
|
||||||
|
else
|
||||||
|
let b:wordcount = str2nr(s:split_wc[5])
|
||||||
|
endif
|
||||||
|
let v:statusmsg = l:old_status
|
||||||
|
endif
|
||||||
|
call setpos('.', l:old_position)
|
||||||
|
return b:wordcount
|
||||||
|
else
|
||||||
|
return b:wordcount
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! LightlineWordCount()
|
||||||
|
return &filetype =~# '\v^(markdown|txt|vimwiki)' ? WordCount() . ' Words' : ''
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Plugins
|
||||||
|
|
||||||
|
call plug#begin("~/.config/nvim/plugged")
|
||||||
|
|
||||||
|
Plug 'vimwiki/vimwiki', { 'branch': 'dev' }
|
||||||
|
Plug 'chriskempson/base16-vim'
|
||||||
|
Plug 'tpope/vim-fugitive'
|
||||||
|
Plug 'Olical/conjure'
|
||||||
|
"Plug 'dhruvasagar/vim-table-mode'
|
||||||
|
Plug 'cespare/vim-toml'
|
||||||
|
Plug 'luochen1990/rainbow'
|
||||||
|
Plug 'skywind3000/asyncrun.vim'
|
||||||
|
Plug 'guns/vim-sexp'
|
||||||
|
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
|
||||||
|
Plug 'deoplete-plugins/deoplete-jedi'
|
||||||
|
Plug 'tidalcycles/vim-tidal'
|
||||||
|
Plug 'ledger/vim-ledger'
|
||||||
|
Plug 'junegunn/fzf'
|
||||||
|
Plug 'junegunn/goyo.vim'
|
||||||
|
Plug 'https://tildegit.org/sloum/gemini-vim-syntax'
|
||||||
|
Plug 'itchyny/lightline.vim'
|
||||||
|
Plug 'junegunn/fzf.vim'
|
||||||
|
Plug '~/projects/improviz-vim'
|
||||||
|
Plug 'davidgranstrom/scnvim'
|
||||||
|
|
||||||
|
call plug#end()
|
||||||
|
|
||||||
|
au BufNewFile *vimwiki/*.wiki :0r !fragment-vimwiki-header '%'
|
||||||
|
au BufNewFile *gmi :set includeexpr=substitute(v:fname,'^/','','')
|
||||||
|
au BufRead *gmi :set includeexpr=substitute(v:fname,'^/','','')
|
||||||
|
|
||||||
|
" function! VimwikiLinkHandler(link)
|
||||||
|
" let link = a:link
|
||||||
|
" if link =~# '^file'
|
||||||
|
" let cmd = 'rifle ' . strcharpart(link, 5)
|
||||||
|
" echo cmd
|
||||||
|
" call system(cmd)
|
||||||
|
" return 0
|
||||||
|
" endif
|
||||||
|
" endfunction
|
||||||
|
|
||||||
|
let g:limelight_conceal_ctermfg = 'grey'
|
||||||
|
let g:vimwiki_global_ext = 0
|
||||||
|
let g:vimwiki_folding = ''
|
||||||
|
let g:vimwiki_markdown_link_ext = 1
|
||||||
|
let g:table_mode_corner = '|'
|
||||||
|
let g:rainbow_active = 0
|
||||||
|
let g:ledger_bin="hledger"
|
||||||
|
let g:sexp_filetypes= 'clojure,scheme,lisp,timl,janet'
|
||||||
|
let g:deoplete#enable_at_startup = 1
|
||||||
|
let mapleader = ","
|
||||||
|
let maplocalleader = ","
|
||||||
|
let g:taskwiki_markup_syntax = "markdown"
|
||||||
|
|
||||||
|
let g:tidal_target = "terminal"
|
||||||
|
|
||||||
|
let g:vimwiki_list = [{'path': '~/vimwiki', 'syntax': 'markdown', 'ext': '.wiki', 'links_space_char': '_' },
|
||||||
|
\ {'path': '~/website/wiki/vimwiki', 'syntax': 'markdown', 'ext': '.md', 'links_space_char': '_' , 'diary_rel_path' : 'blog', 'diary_index' : 'index', 'diary_header': 'Blog' }]
|
||||||
|
|
||||||
|
let g:lightline = {
|
||||||
|
\ 'colorscheme': 'Tomorrow_Night',
|
||||||
|
\ 'active': {
|
||||||
|
\ 'left': [ [ 'mode', 'paste' ],
|
||||||
|
\ [ 'gitbranch', 'readonly', 'filename', 'modified' ] ],
|
||||||
|
\
|
||||||
|
\ 'right': [ [ 'lineinfo' ],
|
||||||
|
\ [ 'percent' ],
|
||||||
|
\ [ 'wordcount', 'fileformat', 'fileencoding', 'filetype'] ]
|
||||||
|
\ },
|
||||||
|
\ 'mode_map': {
|
||||||
|
\ 'n' : 'N',
|
||||||
|
\ 'i' : 'I',
|
||||||
|
\ 'R' : 'R',
|
||||||
|
\ 'v' : 'V',
|
||||||
|
\ 'V' : 'VL',
|
||||||
|
\ "\<C-v>": 'VB',
|
||||||
|
\ 'c' : 'C',
|
||||||
|
\ 's' : 'S',
|
||||||
|
\ 'S' : 'SL',
|
||||||
|
\ "\<C-s>": 'SB',
|
||||||
|
\ 't': 'T',
|
||||||
|
\ },
|
||||||
|
\ 'component_function': {
|
||||||
|
\ 'gitbranch': 'FugitiveHead',
|
||||||
|
\ 'wordcount': 'LightlineWordCount'
|
||||||
|
\ },
|
||||||
|
\ }
|
||||||
|
|
||||||
|
set modelines=0
|
||||||
|
|
||||||
|
" Map semicolon for quicker command access
|
||||||
|
nnoremap ; :
|
||||||
|
|
||||||
|
"Pandoc Simple Build
|
||||||
|
nnoremap <leader>ps :AsyncRun pandoc --pdf-engine xelatex % -o %.pdf<Enter>
|
||||||
|
"Pandoc w/ Citations
|
||||||
|
nnoremap <leader>pc :AsyncRun pandoc --csl ~/Documents/08-Bibliography/ieee.csl --filter pandoc-citeproc --pdf-engine xelatex % -o %.pdf<Enter>
|
||||||
|
"Using makedoc script
|
||||||
|
nnoremap <leader>pd :AsyncRun makedoc %<Enter>
|
||||||
|
|
||||||
|
" Remind
|
||||||
|
" nnoremap <leader>r :!remind ~/vimwiki/calendar.rem<Enter>
|
||||||
|
|
||||||
|
set number relativenumber
|
||||||
|
set ruler
|
||||||
|
|
||||||
|
set visualbell
|
||||||
|
|
||||||
|
set encoding=utf-8
|
||||||
|
|
||||||
|
set tabstop=4
|
||||||
|
set softtabstop=0
|
||||||
|
set shiftwidth=4
|
||||||
|
set expandtab
|
||||||
|
|
||||||
|
|
||||||
|
set scrolloff=3
|
||||||
|
set backspace=indent,eol,start
|
||||||
|
set matchpairs+=<:>
|
||||||
|
|
||||||
|
|
||||||
|
set hidden
|
||||||
|
|
||||||
|
set ttyfast
|
||||||
|
|
||||||
|
set laststatus=2
|
||||||
|
|
||||||
|
set noshowmode
|
||||||
|
set showcmd
|
||||||
|
|
||||||
|
set hlsearch
|
||||||
|
set incsearch
|
||||||
|
set ignorecase
|
||||||
|
set smartcase
|
||||||
|
set showmatch
|
||||||
|
|
||||||
|
colors base16-tomorrow
|
||||||
|
hi Normal ctermbg=Black
|
||||||
|
hi LineNr ctermbg=Black
|
||||||
|
hi CursorLineNr ctermbg=Black ctermfg=Grey
|
|
@ -0,0 +1,228 @@
|
||||||
|
# Thank you code_nomad: http://9m.no/ꪯ鵞
|
||||||
|
# and Arch Wiki contributors: https://wiki.archlinux.org/index.php/Compton
|
||||||
|
|
||||||
|
#################################
|
||||||
|
#
|
||||||
|
# Backend
|
||||||
|
#
|
||||||
|
#################################
|
||||||
|
|
||||||
|
# Backend to use: "xrender" or "glx".
|
||||||
|
# GLX backend is typically much faster but depends on a sane driver.
|
||||||
|
backend = "glx";
|
||||||
|
|
||||||
|
#################################
|
||||||
|
#
|
||||||
|
# GLX backend
|
||||||
|
#
|
||||||
|
#################################
|
||||||
|
|
||||||
|
glx-no-stencil = true;
|
||||||
|
|
||||||
|
# GLX backend: Copy unmodified regions from front buffer instead of redrawing them all.
|
||||||
|
# My tests with nvidia-drivers show a 10% decrease in performance when the whole screen is modified,
|
||||||
|
# but a 20% increase when only 1/4 is.
|
||||||
|
# My tests on nouveau show terrible slowdown.
|
||||||
|
glx-copy-from-front = false;
|
||||||
|
|
||||||
|
# GLX backend: Use MESA_copy_sub_buffer to do partial screen update.
|
||||||
|
# My tests on nouveau shows a 200% performance boost when only 1/4 of the screen is updated.
|
||||||
|
# May break VSync and is not available on some drivers.
|
||||||
|
# Overrides --glx-copy-from-front.
|
||||||
|
# glx-use-copysubbuffermesa = true;
|
||||||
|
|
||||||
|
# GLX backend: Avoid rebinding pixmap on window damage.
|
||||||
|
# Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe).
|
||||||
|
# Recommended if it works.
|
||||||
|
# glx-no-rebind-pixmap = true;
|
||||||
|
|
||||||
|
# GLX backend: GLX buffer swap method we assume.
|
||||||
|
# Could be undefined (0), copy (1), exchange (2), 3-6, or buffer-age (-1).
|
||||||
|
# undefined is the slowest and the safest, and the default value.
|
||||||
|
# copy is fastest, but may fail on some drivers,
|
||||||
|
# 2-6 are gradually slower but safer (6 is still faster than 0).
|
||||||
|
# Usually, double buffer means 2, triple buffer means 3.
|
||||||
|
# buffer-age means auto-detect using GLX_EXT_buffer_age, supported by some drivers.
|
||||||
|
# Useless with --glx-use-copysubbuffermesa.
|
||||||
|
# Partially breaks --resize-damage.
|
||||||
|
# Defaults to undefined.
|
||||||
|
#glx-swap-method = "undefined";
|
||||||
|
|
||||||
|
#################################
|
||||||
|
#
|
||||||
|
# Shadows
|
||||||
|
#
|
||||||
|
#################################
|
||||||
|
|
||||||
|
# Enabled client-side shadows on windows.
|
||||||
|
shadow = true;
|
||||||
|
# The blur radius for shadows. (default 12)
|
||||||
|
shadow-radius = 5;
|
||||||
|
# The left offset for shadows. (default -15)
|
||||||
|
shadow-offset-x = -5;
|
||||||
|
# The top offset for shadows. (default -15)
|
||||||
|
shadow-offset-y = -5;
|
||||||
|
# The translucency for shadows. (default .75)
|
||||||
|
shadow-opacity = 0.5;
|
||||||
|
|
||||||
|
# Set if you want different colour shadows
|
||||||
|
# shadow-red = 0.0;
|
||||||
|
# shadow-green = 0.0;
|
||||||
|
# shadow-blue = 0.0;
|
||||||
|
|
||||||
|
# The shadow exclude options are helpful if you have shadows enabled. Due to the way picom draws its shadows, certain applications will have visual glitches
|
||||||
|
# (most applications are fine, only apps that do weird things with xshapes or argb are affected).
|
||||||
|
# This list includes all the affected apps I found in my testing. The "! name~=''" part excludes shadows on any "Unknown" windows, this prevents a visual glitch with the XFWM alt tab switcher.
|
||||||
|
shadow-exclude = [
|
||||||
|
"! name~=''",
|
||||||
|
"name = 'Notification'",
|
||||||
|
"name = 'Plank'",
|
||||||
|
"name = 'Docky'",
|
||||||
|
"name = 'Kupfer'",
|
||||||
|
"name = 'xfce4-notifyd'",
|
||||||
|
"name = 'cpt_frame_window'",
|
||||||
|
"name *= 'VLC'",
|
||||||
|
"name *= 'compton'",
|
||||||
|
"name *= 'picom'",
|
||||||
|
"name *= 'Chromium'",
|
||||||
|
"name *= 'Chrome'",
|
||||||
|
"class_g = 'Firefox' && argb",
|
||||||
|
"class_g = 'Conky'",
|
||||||
|
"class_g = 'Kupfer'",
|
||||||
|
"class_g = 'Synapse'",
|
||||||
|
"class_g ?= 'Notify-osd'",
|
||||||
|
"class_g ?= 'Cairo-dock'",
|
||||||
|
"class_g ?= 'Xfce4-notifyd'",
|
||||||
|
"class_g ?= 'Xfce4-power-manager'",
|
||||||
|
"_GTK_FRAME_EXTENTS@:c",
|
||||||
|
"_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
|
||||||
|
];
|
||||||
|
# Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners)
|
||||||
|
shadow-ignore-shaped = false;
|
||||||
|
|
||||||
|
#################################
|
||||||
|
#
|
||||||
|
# Opacity
|
||||||
|
#
|
||||||
|
#################################
|
||||||
|
|
||||||
|
inactive-opacity = 1;
|
||||||
|
active-opacity = 1;
|
||||||
|
frame-opacity = 1;
|
||||||
|
inactive-opacity-override = false;
|
||||||
|
|
||||||
|
# Dim inactive windows. (0.0 - 1.0)
|
||||||
|
# inactive-dim = 0.2;
|
||||||
|
# Do not let dimness adjust based on window opacity.
|
||||||
|
# inactive-dim-fixed = true;
|
||||||
|
# Blur background of transparent windows. Bad performance with X Render backend. GLX backend is preferred.
|
||||||
|
# blur-background = true;
|
||||||
|
# Blur background of opaque windows with transparent frames as well.
|
||||||
|
# blur-background-frame = true;
|
||||||
|
# Do not let blur radius adjust based on window opacity.
|
||||||
|
blur-background-fixed = false;
|
||||||
|
blur-background-exclude = [
|
||||||
|
"window_type = 'dock'",
|
||||||
|
"window_type = 'desktop'"
|
||||||
|
];
|
||||||
|
|
||||||
|
#################################
|
||||||
|
#
|
||||||
|
# Fading
|
||||||
|
#
|
||||||
|
#################################
|
||||||
|
|
||||||
|
# Fade windows during opacity changes.
|
||||||
|
fading = true;
|
||||||
|
# The time between steps in a fade in milliseconds. (default 10).
|
||||||
|
fade-delta = 4;
|
||||||
|
# Opacity change between steps while fading in. (default 0.028).
|
||||||
|
fade-in-step = 0.03;
|
||||||
|
# Opacity change between steps while fading out. (default 0.03).
|
||||||
|
fade-out-step = 0.03;
|
||||||
|
# Fade windows in/out when opening/closing
|
||||||
|
# no-fading-openclose = true;
|
||||||
|
|
||||||
|
# Specify a list of conditions of windows that should not be faded.
|
||||||
|
fade-exclude = [ ];
|
||||||
|
|
||||||
|
#################################
|
||||||
|
#
|
||||||
|
# Other
|
||||||
|
#
|
||||||
|
#################################
|
||||||
|
|
||||||
|
# Try to detect WM windows and mark them as active.
|
||||||
|
mark-wmwin-focused = true;
|
||||||
|
# Mark all non-WM but override-redirect windows active (e.g. menus).
|
||||||
|
mark-ovredir-focused = true;
|
||||||
|
# Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused instead of using FocusIn/Out events.
|
||||||
|
# Usually more reliable but depends on a EWMH-compliant WM.
|
||||||
|
use-ewmh-active-win = true;
|
||||||
|
# Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on.
|
||||||
|
detect-rounded-corners = true;
|
||||||
|
|
||||||
|
# Detect _NET_WM_OPACITY on client windows, useful for window managers not passing _NET_WM_OPACITY of client windows to frame windows.
|
||||||
|
# This prevents opacity being ignored for some apps.
|
||||||
|
# For example without this enabled my xfce4-notifyd is 100% opacity no matter what.
|
||||||
|
detect-client-opacity = true;
|
||||||
|
|
||||||
|
# Specify refresh rate of the screen.
|
||||||
|
# If not specified or 0, picom will try detecting this with X RandR extension.
|
||||||
|
refresh-rate = 0;
|
||||||
|
|
||||||
|
# Vertical synchronization: match the refresh rate of the monitor
|
||||||
|
vsync = true;
|
||||||
|
|
||||||
|
# Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing.
|
||||||
|
# Reported to have no effect, though.
|
||||||
|
dbe = false;
|
||||||
|
|
||||||
|
# Limit picom to repaint at most once every 1 / refresh_rate second to boost performance.
|
||||||
|
# This should not be used with --vsync drm/opengl/opengl-oml as they essentially does --sw-opti's job already,
|
||||||
|
# unless you wish to specify a lower refresh rate than the actual value.
|
||||||
|
#sw-opti = true;
|
||||||
|
|
||||||
|
# Unredirect all windows if a full-screen opaque window is detected, to maximize performance for full-screen windows, like games.
|
||||||
|
# Known to cause flickering when redirecting/unredirecting windows.
|
||||||
|
unredir-if-possible = true;
|
||||||
|
|
||||||
|
# Specify a list of conditions of windows that should always be considered focused.
|
||||||
|
focus-exclude = [ ];
|
||||||
|
|
||||||
|
# Use WM_TRANSIENT_FOR to group windows, and consider windows in the same group focused at the same time.
|
||||||
|
detect-transient = true;
|
||||||
|
# Use WM_CLIENT_LEADER to group windows, and consider windows in the same group focused at the same time.
|
||||||
|
# WM_TRANSIENT_FOR has higher priority if --detect-transient is enabled, too.
|
||||||
|
detect-client-leader = true;
|
||||||
|
|
||||||
|
#################################
|
||||||
|
#
|
||||||
|
# Window type settings
|
||||||
|
#
|
||||||
|
#################################
|
||||||
|
|
||||||
|
wintypes:
|
||||||
|
{
|
||||||
|
tooltip =
|
||||||
|
{
|
||||||
|
# fade: Fade the particular type of windows.
|
||||||
|
fade = true;
|
||||||
|
# shadow: Give those windows shadow
|
||||||
|
shadow = false;
|
||||||
|
# opacity: Default opacity for the type of windows.
|
||||||
|
opacity = 0.85;
|
||||||
|
# focus: Whether to always consider windows of this type focused.
|
||||||
|
focus = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
######################
|
||||||
|
#
|
||||||
|
# XSync
|
||||||
|
# See: https://github.com/yshui/picom/commit/b18d46bcbdc35a3b5620d817dd46fbc76485c20d
|
||||||
|
#
|
||||||
|
######################
|
||||||
|
|
||||||
|
# Use X Sync fence to sync clients' draw calls. Needed on nvidia-drivers with GLX backend for some users.
|
||||||
|
xrender-sync-fence = true;
|
|
@ -0,0 +1,10 @@
|
||||||
|
config.load_autoconfig()
|
||||||
|
|
||||||
|
config.bind(',x', 'hint links spawn termite -e "aria2c {hint-url}"')
|
||||||
|
config.bind(',m', 'spawn --userscript mpv')
|
||||||
|
config.set("content.headers.user_agent","Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)","https://*.youtube.com/*")
|
||||||
|
|
||||||
|
config.set("content.webrtc_ip_handling_policy","default-public-interface-only")
|
||||||
|
config.set("content.cookies.store",False)
|
||||||
|
|
||||||
|
config.source("block.py")
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,22 @@
|
||||||
|
// ==UserScript==
|
||||||
|
// @name BetterTTV
|
||||||
|
// @namespace BTTV
|
||||||
|
// @description Enhances Twitch with new features, emotes, and more.
|
||||||
|
// @copyright NightDev, LLC
|
||||||
|
// @icon https://cdn.betterttv.net/assets/logos/bttv_logo.png
|
||||||
|
//
|
||||||
|
// @grant none
|
||||||
|
//
|
||||||
|
// @include *://*.twitch.tv/*
|
||||||
|
//
|
||||||
|
// @version 0.0.2
|
||||||
|
// ==/UserScript==
|
||||||
|
|
||||||
|
(function betterttv() {
|
||||||
|
var script = document.createElement('script');
|
||||||
|
script.type = 'text/javascript';
|
||||||
|
script.src = 'https://cdn.betterttv.net/betterttv.js';
|
||||||
|
var head = document.getElementsByTagName('head')[0];
|
||||||
|
if (!head) return;
|
||||||
|
head.appendChild(script);
|
||||||
|
})()
|
|
@ -0,0 +1,16 @@
|
||||||
|
// ==UserScript==
|
||||||
|
// @name EmuParadise Download Workaround - 1.1.1
|
||||||
|
// @version 1.1.2
|
||||||
|
// @description Replaces the download button link with a working one
|
||||||
|
// @author Eptun
|
||||||
|
// @match https://www.emuparadise.me/*/*/*
|
||||||
|
// @require http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
|
||||||
|
// @grant none
|
||||||
|
// ==/UserScript==
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var id = ((document.URL).split("/"))[5];
|
||||||
|
$(".download-link").prepend(`<a target="_blank" href="/roms/get-download.php?gid=`+id+`&test=true" title="Download using the workaround script">Download using the workaround script</a><br><br>`);
|
||||||
|
})();
|
|
@ -0,0 +1,58 @@
|
||||||
|
// ==UserScript==
|
||||||
|
// @id frankerfacez
|
||||||
|
// @name FrankerFaceZ
|
||||||
|
// @namespace FrankerFaceZ
|
||||||
|
//
|
||||||
|
// @version 1.58
|
||||||
|
// @updateURL https://cdn.frankerfacez.com/script/ffz_injector.user.js
|
||||||
|
//
|
||||||
|
// @description FrankerFaceZ gives Twitch users custom chat emotes and introduces new features to improve the viewing experience.
|
||||||
|
// @homepage https://www.frankerfacez.com/
|
||||||
|
// @icon https://cdn.frankerfacez.com/script/icon32.png
|
||||||
|
// @icon64 https://cdn.frankerfacez.com/script/icon64.png
|
||||||
|
// @icon128 https://cdn.frankerfacez.com/script/icon128.png
|
||||||
|
//
|
||||||
|
// @include http://twitch.tv/*
|
||||||
|
// @include https://twitch.tv/*
|
||||||
|
// @include http://*.twitch.tv/*
|
||||||
|
// @include https://*.twitch.tv/*
|
||||||
|
//
|
||||||
|
// @exclude http://api.twitch.tv/*
|
||||||
|
// @exclude https://api.twitch.tv/*
|
||||||
|
//
|
||||||
|
// @grant none
|
||||||
|
// @run-at document-end
|
||||||
|
// ==/UserScript==
|
||||||
|
|
||||||
|
function ffz_init()
|
||||||
|
{
|
||||||
|
var script = document.createElement('script');
|
||||||
|
|
||||||
|
script.id = 'ffz_script';
|
||||||
|
script.type = 'text/javascript';
|
||||||
|
script.src = '//cdn.frankerfacez.com/script/script.min.js?_=' + Date.now();
|
||||||
|
|
||||||
|
if ( localStorage.ffzDebugMode == "true" ) {
|
||||||
|
// Developer Mode is enabled. But is the server running? Check before
|
||||||
|
// we include the script, otherwise someone could break their
|
||||||
|
// experience and not be able to recover.
|
||||||
|
var xhr = new XMLHttpRequest();
|
||||||
|
xhr.open("GET", "//localhost:8000/dev_server", true);
|
||||||
|
xhr.onload = function(e) {
|
||||||
|
var resp = JSON.parse(xhr.responseText);
|
||||||
|
console.log("FFZ: Development Server is present. Version " + resp.version + " running from: " + resp.path);
|
||||||
|
script.src = "//localhost:8000/script/script.js?_=" + Date.now();
|
||||||
|
document.body.classList.add("ffz-dev");
|
||||||
|
document.head.appendChild(script);
|
||||||
|
};
|
||||||
|
xhr.onerror = function(e) {
|
||||||
|
console.log("FFZ: Development Server is not present. Using CDN.");
|
||||||
|
document.head.appendChild(script);
|
||||||
|
};
|
||||||
|
return xhr.send(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
document.head.appendChild(script);
|
||||||
|
}
|
||||||
|
|
||||||
|
ffz_init();
|
|
@ -0,0 +1,143 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Behavior:
|
||||||
|
# Userscript for qutebrowser which views the current web page in mpv using
|
||||||
|
# sensible mpv-flags. While viewing the page in MPV, all <video>, <embed>,
|
||||||
|
# and <object> tags in the original page are temporarily removed. Clicking on
|
||||||
|
# such a removed video restores the respective video.
|
||||||
|
#
|
||||||
|
# In order to use this script, just start it using `spawn --userscript` from
|
||||||
|
# qutebrowser. I recommend using an alias, e.g. put this in the
|
||||||
|
# [alias]-section of qutebrowser.conf:
|
||||||
|
#
|
||||||
|
# mpv = spawn --userscript /path/to/view_in_mpv
|
||||||
|
#
|
||||||
|
# Background:
|
||||||
|
# Most of my machines are too slow to play youtube videos using html5, but
|
||||||
|
# they work fine in mpv (and mpv has further advantages like video scaling,
|
||||||
|
# etc). Of course, I don't want the video to be played (or even to be
|
||||||
|
# downloaded) twice — in MPV and in qwebkit. So I often close the tab after
|
||||||
|
# opening it in mpv. However, I actually want to keep the rest of the page
|
||||||
|
# (comments and video suggestions), i.e. only the videos should disappear
|
||||||
|
# when mpv is started. And that's precisely what the present script does.
|
||||||
|
#
|
||||||
|
# Thorsten Wißmann, 2015 (thorsten` on freenode)
|
||||||
|
# Any feedback is welcome!
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ -z "$QUTE_FIFO" ] ; then
|
||||||
|
cat 1>&2 <<EOF
|
||||||
|
Error: $0 can not be run as a standalone script.
|
||||||
|
|
||||||
|
It is a qutebrowser userscript. In order to use it, call it using
|
||||||
|
'spawn --userscript' as described in qute://help/userscripts.html
|
||||||
|
EOF
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg() {
|
||||||
|
local cmd="$1"
|
||||||
|
shift
|
||||||
|
local msg="$*"
|
||||||
|
if [ -z "$QUTE_FIFO" ] ; then
|
||||||
|
echo "$cmd: $msg" >&2
|
||||||
|
else
|
||||||
|
echo "message-$cmd '${msg//\'/\\\'}'" >> "$QUTE_FIFO"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
MPV_COMMAND=${MPV_COMMAND:-mpv}
|
||||||
|
# Warning: spaces in single flags are not supported
|
||||||
|
MPV_FLAGS=${MPV_FLAGS:- --force-window --no-terminal --keep-open=yes --ytdl --ytdl-format="bestvideo[height<=1080]+bestaudio"}
|
||||||
|
IFS=" " read -r -a video_command <<< "$MPV_COMMAND $MPV_FLAGS"
|
||||||
|
|
||||||
|
js() {
|
||||||
|
cat <<EOF
|
||||||
|
|
||||||
|
function descendantOfTagName(child, ancestorTagName) {
|
||||||
|
// tells whether child has some (proper) ancestor
|
||||||
|
// with the tag name ancestorTagName
|
||||||
|
while (child.parentNode != null) {
|
||||||
|
child = child.parentNode;
|
||||||
|
if (typeof child.tagName === 'undefined') break;
|
||||||
|
if (child.tagName.toUpperCase() == ancestorTagName.toUpperCase()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var App = {};
|
||||||
|
|
||||||
|
var all_videos = [];
|
||||||
|
all_videos.push.apply(all_videos, document.getElementsByTagName("video"));
|
||||||
|
all_videos.push.apply(all_videos, document.getElementsByTagName("object"));
|
||||||
|
all_videos.push.apply(all_videos, document.getElementsByTagName("embed"));
|
||||||
|
App.backup_videos = Array();
|
||||||
|
App.all_replacements = Array();
|
||||||
|
for (i = 0; i < all_videos.length; i++) {
|
||||||
|
var video = all_videos[i];
|
||||||
|
if (descendantOfTagName(video, "object")) {
|
||||||
|
// skip tags that are contained in an object, because we hide
|
||||||
|
// the object anyway.
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
var replacement = document.createElement("div");
|
||||||
|
replacement.innerHTML = "
|
||||||
|
<p style=\\"margin-bottom: 0.5em\\">
|
||||||
|
Opening page with:
|
||||||
|
<span style=\\"font-family: monospace;\\">${video_command[*]}</span>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
In order to restore this particular video
|
||||||
|
<a style=\\"font-weight: bold;
|
||||||
|
color: white;
|
||||||
|
background: transparent;
|
||||||
|
\\"
|
||||||
|
onClick=\\"restore_video(this, " + i + ");\\"
|
||||||
|
href=\\"javascript: restore_video(this, " + i + ")\\"
|
||||||
|
>click here</a>.
|
||||||
|
</p>
|
||||||
|
";
|
||||||
|
replacement.style.position = "relative";
|
||||||
|
replacement.style.zIndex = "100003000000";
|
||||||
|
replacement.style.fontSize = "1rem";
|
||||||
|
replacement.style.textAlign = "center";
|
||||||
|
replacement.style.verticalAlign = "middle";
|
||||||
|
replacement.style.height = "100%";
|
||||||
|
replacement.style.background = "#101010";
|
||||||
|
replacement.style.color = "white";
|
||||||
|
replacement.style.border = "4px dashed #545454";
|
||||||
|
replacement.style.padding = "2em";
|
||||||
|
replacement.style.margin = "auto";
|
||||||
|
App.all_replacements[i] = replacement;
|
||||||
|
App.backup_videos[i] = video;
|
||||||
|
video.parentNode.replaceChild(replacement, video);
|
||||||
|
}
|
||||||
|
|
||||||
|
function restore_video(obj, index) {
|
||||||
|
obj = App.all_replacements[index];
|
||||||
|
video = App.backup_videos[index];
|
||||||
|
console.log(video);
|
||||||
|
obj.parentNode.replaceChild(video, obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** force repainting the video, thanks to:
|
||||||
|
* http://martinwolf.org/2014/06/10/force-repaint-of-an-element-with-javascript/
|
||||||
|
*/
|
||||||
|
var siteHeader = document.getElementById('header');
|
||||||
|
siteHeader.style.display='none';
|
||||||
|
siteHeader.offsetHeight; // no need to store this anywhere, the reference is enough
|
||||||
|
siteHeader.style.display='block';
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
printjs() {
|
||||||
|
js | sed 's,//.*$,,' | tr '\n' ' '
|
||||||
|
}
|
||||||
|
echo "jseval -q $(printjs)" >> "$QUTE_FIFO"
|
||||||
|
|
||||||
|
msg info "Opening $QUTE_URL with mpv"
|
||||||
|
"${video_command[@]}" "$@" "$QUTE_URL"
|
|
@ -0,0 +1,62 @@
|
||||||
|
# This is a sample commands.py. You can add your own commands here.
|
||||||
|
#
|
||||||
|
# Please refer to commands_full.py for all the default commands and a complete
|
||||||
|
# documentation. Do NOT add them all here, or you may end up with defunct
|
||||||
|
# commands when upgrading ranger.
|
||||||
|
|
||||||
|
# A simple command for demonstration purposes follows.
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
from __future__ import (absolute_import, division, print_function)
|
||||||
|
|
||||||
|
# You can import any python module as needed.
|
||||||
|
import os
|
||||||
|
|
||||||
|
# You always need to import ranger.api.commands here to get the Command class:
|
||||||
|
from ranger.api.commands import Command
|
||||||
|
|
||||||
|
|
||||||
|
# Any class that is a subclass of "Command" will be integrated into ranger as a
|
||||||
|
# command. Try typing ":my_edit<ENTER>" in ranger!
|
||||||
|
class my_edit(Command):
|
||||||
|
# The so-called doc-string of the class will be visible in the built-in
|
||||||
|
# help that is accessible by typing "?c" inside ranger.
|
||||||
|
""":my_edit <filename>
|
||||||
|
|
||||||
|
A sample command for demonstration purposes that opens a file in an editor.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# The execute method is called when you run this command in ranger.
|
||||||
|
def execute(self):
|
||||||
|
# self.arg(1) is the first (space-separated) argument to the function.
|
||||||
|
# This way you can write ":my_edit somefilename<ENTER>".
|
||||||
|
if self.arg(1):
|
||||||
|
# self.rest(1) contains self.arg(1) and everything that follows
|
||||||
|
target_filename = self.rest(1)
|
||||||
|
else:
|
||||||
|
# self.fm is a ranger.core.filemanager.FileManager object and gives
|
||||||
|
# you access to internals of ranger.
|
||||||
|
# self.fm.thisfile is a ranger.container.file.File object and is a
|
||||||
|
# reference to the currently selected file.
|
||||||
|
target_filename = self.fm.thisfile.path
|
||||||
|
|
||||||
|
# This is a generic function to print text in ranger.
|
||||||
|
self.fm.notify("Let's edit the file " + target_filename + "!")
|
||||||
|
|
||||||
|
# Using bad=True in fm.notify allows you to print error messages:
|
||||||
|
if not os.path.exists(target_filename):
|
||||||
|
self.fm.notify("The given file does not exist!", bad=True)
|
||||||
|
return
|
||||||
|
|
||||||
|
# This executes a function from ranger.core.acitons, a module with a
|
||||||
|
# variety of subroutines that can help you construct commands.
|
||||||
|
# Check out the source, or run "pydoc ranger.core.actions" for a list.
|
||||||
|
self.fm.edit_file(target_filename)
|
||||||
|
|
||||||
|
# The tab method is called when you press tab, and should return a list of
|
||||||
|
# suggestions that the user will tab through.
|
||||||
|
# tabnum is 1 for <TAB> and -1 for <S-TAB> by default
|
||||||
|
def tab(self, tabnum):
|
||||||
|
# This is a generic tab-completion function that iterates through the
|
||||||
|
# content of the current directory.
|
||||||
|
return self._tab_directory_content()
|
|
@ -0,0 +1,656 @@
|
||||||
|
# ===================================================================
|
||||||
|
# This file contains the default startup commands for ranger.
|
||||||
|
# To change them, it is recommended to create the file
|
||||||
|
# ~/.config/ranger/rc.conf 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 1,3,4
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# Use one of the supported image preview protocols
|
||||||
|
set preview_images false
|
||||||
|
|
||||||
|
# Set the preview image method. Supported methods:
|
||||||
|
#
|
||||||
|
# * w3m (default):
|
||||||
|
# Preview images in full color with the external command "w3mimgpreview"?
|
||||||
|
# This requires the console web browser "w3m" and a supported terminal.
|
||||||
|
# It has been successfully tested with "xterm" and "urxvt" without tmux.
|
||||||
|
#
|
||||||
|
# * iterm2:
|
||||||
|
# Preview images in full color using iTerm2 image previews
|
||||||
|
# (http://iterm2.com/images.html). This requires using iTerm2 compiled
|
||||||
|
# with image preview support.
|
||||||
|
#
|
||||||
|
# This feature relies on the dimensions of the terminal's font. By default, a
|
||||||
|
# width of 8 and height of 11 are used. To use other values, set the options
|
||||||
|
# iterm2_font_width and iterm2_font_height to the desired values.
|
||||||
|
#
|
||||||
|
# * urxvt:
|
||||||
|
# Preview images in full color using urxvt image backgrounds. This
|
||||||
|
# requires using urxvt compiled with pixbuf support.
|
||||||
|
#
|
||||||
|
# * urxvt-full:
|
||||||
|
# The same as urxvt but utilizing not only the preview pane but the
|
||||||
|
# whole terminal window.
|
||||||
|
set preview_images_method w3m
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# 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
|
||||||
|
# set colorscheme 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 true
|
||||||
|
|
||||||
|
# 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?
|
||||||
|
set draw_borders true
|
||||||
|
|
||||||
|
# Display the directory name in tabs?
|
||||||
|
set dirname_in_tabs false
|
||||||
|
|
||||||
|
# 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 files tags in all columns or only in main column?
|
||||||
|
set display_tags_in_all_columns true
|
||||||
|
|
||||||
|
# Set a title for the window?
|
||||||
|
set update_title false
|
||||||
|
|
||||||
|
# Set the title to "ranger" in the tmux program?
|
||||||
|
set update_tmux_title false
|
||||||
|
|
||||||
|
# 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 true
|
||||||
|
|
||||||
|
# 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<tab>" 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
|
||||||
|
|
||||||
|
# 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
|
||||||
|
set line_numbers false
|
||||||
|
|
||||||
|
# Start line numbers from 1 instead of 0
|
||||||
|
set one_indexed false
|
||||||
|
|
||||||
|
# Save tabs on exit
|
||||||
|
set save_tabs_on_exit false
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# ===================================================================
|
||||||
|
# == Local Options
|
||||||
|
# ===================================================================
|
||||||
|
# You can set local options that only affect a single directory.
|
||||||
|
|
||||||
|
# Examples:
|
||||||
|
# setlocal path=~/downloads sort mtime
|
||||||
|
|
||||||
|
# ===================================================================
|
||||||
|
# == Command Aliases in the Console
|
||||||
|
# ===================================================================
|
||||||
|
|
||||||
|
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 -prt
|
||||||
|
alias find scout -aeit
|
||||||
|
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 <C-r> reset
|
||||||
|
map <C-l> redraw_window
|
||||||
|
map <C-c> abort
|
||||||
|
map <esc> change_mode normal
|
||||||
|
map ~ set viewmode!
|
||||||
|
|
||||||
|
map i display_file
|
||||||
|
map ? help
|
||||||
|
map W display_log
|
||||||
|
map w taskview_open
|
||||||
|
map S shell $SHELL
|
||||||
|
|
||||||
|
map : console
|
||||||
|
map ; console
|
||||||
|
map ! console shell%space
|
||||||
|
map @ console -p6 shell %%s
|
||||||
|
map # console shell -p%space
|
||||||
|
map s console shell%space
|
||||||
|
map r chain draw_possible_programs; console open_with%%space
|
||||||
|
map f console find%space
|
||||||
|
map cd console cd%space
|
||||||
|
|
||||||
|
# Change the line mode
|
||||||
|
map Mf linemode filename
|
||||||
|
map Mi linemode fileinfo
|
||||||
|
map Mm linemode mtime
|
||||||
|
map Mp linemode permissions
|
||||||
|
map Ms linemode sizemtime
|
||||||
|
map Mt linemode metatitle
|
||||||
|
|
||||||
|
# Tagging / Marking
|
||||||
|
map t tag_toggle
|
||||||
|
map ut tag_remove
|
||||||
|
map "<any> tag_toggle tag=%any
|
||||||
|
map <Space> mark_files toggle=True
|
||||||
|
map v mark_files all=True toggle=True
|
||||||
|
map uv mark_files all=True val=False
|
||||||
|
map V toggle_visual_mode
|
||||||
|
map uV toggle_visual_mode reverse=True
|
||||||
|
|
||||||
|
# For the nostalgics: Midnight Commander bindings
|
||||||
|
map <F1> help
|
||||||
|
map <F2> rename_append
|
||||||
|
map <F3> display_file
|
||||||
|
map <F4> edit
|
||||||
|
map <F5> copy
|
||||||
|
map <F6> cut
|
||||||
|
map <F7> console mkdir%space
|
||||||
|
map <F8> console delete
|
||||||
|
map <F10> exit
|
||||||
|
|
||||||
|
# In case you work on a keyboard with dvorak layout
|
||||||
|
map <UP> move up=1
|
||||||
|
map <DOWN> move down=1
|
||||||
|
map <LEFT> move left=1
|
||||||
|
map <RIGHT> move right=1
|
||||||
|
map <HOME> move to=0
|
||||||
|
map <END> move to=-1
|
||||||
|
map <PAGEDOWN> move down=1 pages=True
|
||||||
|
map <PAGEUP> move up=1 pages=True
|
||||||
|
map <CR> move right=1
|
||||||
|
#map <DELETE> console delete
|
||||||
|
map <INSERT> console touch%space
|
||||||
|
|
||||||
|
# VIM-like
|
||||||
|
copymap <UP> k
|
||||||
|
copymap <DOWN> j
|
||||||
|
copymap <LEFT> h
|
||||||
|
copymap <RIGHT> l
|
||||||
|
copymap <HOME> gg
|
||||||
|
copymap <END> G
|
||||||
|
copymap <PAGEDOWN> <C-F>
|
||||||
|
copymap <PAGEUP> <C-B>
|
||||||
|
|
||||||
|
map J move down=0.5 pages=True
|
||||||
|
map K move up=0.5 pages=True
|
||||||
|
copymap J <C-D>
|
||||||
|
copymap K <C-U>
|
||||||
|
|
||||||
|
# Jumping around
|
||||||
|
map H history_go -1
|
||||||
|
map L history_go 1
|
||||||
|
map ] move_parent 1
|
||||||
|
map [ move_parent -1
|
||||||
|
map } traverse
|
||||||
|
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 /run/media
|
||||||
|
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
|
||||||
|
|
||||||
|
# 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 dD console delete
|
||||||
|
|
||||||
|
map dd cut
|
||||||
|
map ud uncut
|
||||||
|
map da cut mode=add
|
||||||
|
map dr cut mode=remove
|
||||||
|
map dt cut mode=toggle
|
||||||
|
|
||||||
|
map yy copy
|
||||||
|
map uy uncut
|
||||||
|
map ya copy mode=add
|
||||||
|
map yr copy mode=remove
|
||||||
|
map yt copy mode=toggle
|
||||||
|
|
||||||
|
# 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 <C-n> tab_new
|
||||||
|
map <C-w> tab_close
|
||||||
|
map <TAB> tab_move 1
|
||||||
|
map <S-TAB> tab_move -1
|
||||||
|
map <A-Right> tab_move 1
|
||||||
|
map <A-Left> tab_move -1
|
||||||
|
map gt tab_move 1
|
||||||
|
map gT tab_move -1
|
||||||
|
map gn tab_new
|
||||||
|
map gc tab_close
|
||||||
|
map uq tab_restore
|
||||||
|
map <a-1> tab_open 1
|
||||||
|
map <a-2> tab_open 2
|
||||||
|
map <a-3> tab_open 3
|
||||||
|
map <a-4> tab_open 4
|
||||||
|
map <a-5> tab_open 5
|
||||||
|
map <a-6> tab_open 6
|
||||||
|
map <a-7> tab_open 7
|
||||||
|
map <a-8> tab_open 8
|
||||||
|
map <a-9> tab_open 9
|
||||||
|
|
||||||
|
# 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 <C-h> set show_hidden!
|
||||||
|
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
|
||||||
|
|
||||||
|
# Bookmarks
|
||||||
|
map `<any> enter_bookmark %any
|
||||||
|
map '<any> enter_bookmark %any
|
||||||
|
map m<any> set_bookmark %any
|
||||||
|
map um<any> unset_bookmark %any
|
||||||
|
|
||||||
|
map m<bg> draw_bookmarks
|
||||||
|
copymap m<bg> um<bg> `<bg> '<bg>
|
||||||
|
|
||||||
|
# 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 <tab> eval fm.ui.console.tab()
|
||||||
|
cmap <s-tab> eval fm.ui.console.tab(-1)
|
||||||
|
cmap <ESC> eval fm.ui.console.close()
|
||||||
|
cmap <CR> eval fm.ui.console.execute()
|
||||||
|
cmap <C-l> redraw_window
|
||||||
|
|
||||||
|
copycmap <ESC> <C-c>
|
||||||
|
copycmap <CR> <C-j>
|
||||||
|
|
||||||
|
# Move around
|
||||||
|
cmap <up> eval fm.ui.console.history_move(-1)
|
||||||
|
cmap <down> eval fm.ui.console.history_move(1)
|
||||||
|
cmap <left> eval fm.ui.console.move(left=1)
|
||||||
|
cmap <right> eval fm.ui.console.move(right=1)
|
||||||
|
cmap <home> eval fm.ui.console.move(right=0, absolute=True)
|
||||||
|
cmap <end> eval fm.ui.console.move(right=-1, absolute=True)
|
||||||
|
cmap <a-left> eval fm.ui.console.move_word(left=1)
|
||||||
|
cmap <a-right> eval fm.ui.console.move_word(right=1)
|
||||||
|
|
||||||
|
# Line Editing
|
||||||
|
cmap <backspace> eval fm.ui.console.delete(-1)
|
||||||
|
cmap <delete> eval fm.ui.console.delete(0)
|
||||||
|
cmap <C-w> eval fm.ui.console.delete_word()
|
||||||
|
cmap <A-d> eval fm.ui.console.delete_word(backward=False)
|
||||||
|
cmap <C-k> eval fm.ui.console.delete_rest(1)
|
||||||
|
cmap <C-u> eval fm.ui.console.delete_rest(-1)
|
||||||
|
cmap <C-y> eval fm.ui.console.paste()
|
||||||
|
|
||||||
|
# And of course the emacs way
|
||||||
|
copycmap <up> <C-p>
|
||||||
|
copycmap <down> <C-n>
|
||||||
|
copycmap <left> <C-b>
|
||||||
|
copycmap <right> <C-f>
|
||||||
|
copycmap <home> <C-a>
|
||||||
|
copycmap <end> <C-e>
|
||||||
|
copycmap <delete> <C-d>
|
||||||
|
copycmap <backspace> <C-h>
|
||||||
|
|
||||||
|
# Note: There are multiple ways to express backspaces. <backspace> (code 263)
|
||||||
|
# and <backspace2> (code 127). To be sure, use both.
|
||||||
|
copycmap <backspace> <backspace2>
|
||||||
|
|
||||||
|
# This special expression allows typing in numerals:
|
||||||
|
cmap <allow_quantifiers> false
|
||||||
|
|
||||||
|
# ===================================================================
|
||||||
|
# == Pager Keybindings
|
||||||
|
# ===================================================================
|
||||||
|
|
||||||
|
# Movement
|
||||||
|
pmap <down> pager_move down=1
|
||||||
|
pmap <up> pager_move up=1
|
||||||
|
pmap <left> pager_move left=4
|
||||||
|
pmap <right> pager_move right=4
|
||||||
|
pmap <home> pager_move to=0
|
||||||
|
pmap <end> pager_move to=-1
|
||||||
|
pmap <pagedown> pager_move down=1.0 pages=True
|
||||||
|
pmap <pageup> pager_move up=1.0 pages=True
|
||||||
|
pmap <C-d> pager_move down=0.5 pages=True
|
||||||
|
pmap <C-u> pager_move up=0.5 pages=True
|
||||||
|
|
||||||
|
copypmap <UP> k <C-p>
|
||||||
|
copypmap <DOWN> j <C-n> <CR>
|
||||||
|
copypmap <LEFT> h
|
||||||
|
copypmap <RIGHT> l
|
||||||
|
copypmap <HOME> g
|
||||||
|
copypmap <END> G
|
||||||
|
copypmap <C-d> d
|
||||||
|
copypmap <C-u> u
|
||||||
|
copypmap <PAGEDOWN> n f <C-F> <Space>
|
||||||
|
copypmap <PAGEUP> p b <C-B>
|
||||||
|
|
||||||
|
# Basic
|
||||||
|
pmap <C-l> redraw_window
|
||||||
|
pmap <ESC> pager_close
|
||||||
|
copypmap <ESC> q Q i <F3>
|
||||||
|
pmap E edit_file
|
||||||
|
|
||||||
|
# ===================================================================
|
||||||
|
# == Taskview Keybindings
|
||||||
|
# ===================================================================
|
||||||
|
|
||||||
|
# Movement
|
||||||
|
tmap <up> taskview_move up=1
|
||||||
|
tmap <down> taskview_move down=1
|
||||||
|
tmap <home> taskview_move to=0
|
||||||
|
tmap <end> taskview_move to=-1
|
||||||
|
tmap <pagedown> taskview_move down=1.0 pages=True
|
||||||
|
tmap <pageup> taskview_move up=1.0 pages=True
|
||||||
|
tmap <C-d> taskview_move down=0.5 pages=True
|
||||||
|
tmap <C-u> taskview_move up=0.5 pages=True
|
||||||
|
|
||||||
|
copytmap <UP> k <C-p>
|
||||||
|
copytmap <DOWN> j <C-n> <CR>
|
||||||
|
copytmap <HOME> g
|
||||||
|
copytmap <END> G
|
||||||
|
copytmap <C-u> u
|
||||||
|
copytmap <PAGEDOWN> n f <C-F> <Space>
|
||||||
|
copytmap <PAGEUP> p b <C-B>
|
||||||
|
|
||||||
|
# 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 <pagedown> eval -q fm.ui.taskview.task_move(-1)
|
||||||
|
tmap <pageup> eval -q fm.ui.taskview.task_move(0)
|
||||||
|
tmap <delete> eval -q fm.ui.taskview.task_remove()
|
||||||
|
|
||||||
|
# Basic
|
||||||
|
tmap <C-l> redraw_window
|
||||||
|
tmap <ESC> taskview_close
|
||||||
|
copytmap <ESC> q Q w <C-c>
|
|
@ -0,0 +1,228 @@
|
||||||
|
# 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:
|
||||||
|
# <condition1> , <condition2> , ... = 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 <regexp> | The regexp matches $1
|
||||||
|
# ext <regexp> | The regexp matches the extension of $1
|
||||||
|
# mime <regexp> | The regexp matches the mime type of $1
|
||||||
|
# name <regexp> | The regexp matches the basename of $1
|
||||||
|
# path <regexp> | The regexp matches the absolute path of $1
|
||||||
|
# has <program> | The program is installed (i.e. located in $PATH)
|
||||||
|
# env <variable> | The environment variable "variable" is non-empty
|
||||||
|
# file | $1 is a file
|
||||||
|
# directory | $1 is a directory
|
||||||
|
# number <n> | 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 <flags> | Change how the program is run. See below.
|
||||||
|
# label <label> | Assign a label or name to the command so it can
|
||||||
|
# | be started with :open_with <label> in ranger
|
||||||
|
# | or `rifle -p <label>` in the standalone executable.
|
||||||
|
# else | Always true.
|
||||||
|
#
|
||||||
|
# Flags are single characters which slightly transform the command:
|
||||||
|
# f | Fork the program, make it run in the background.
|
||||||
|
# | New command = setsid $command >& /dev/null &
|
||||||
|
# r | Execute the command with root permissions
|
||||||
|
# | New command = sudo $command
|
||||||
|
# t | Run the program in a new terminal. If $TERMCMD is not defined,
|
||||||
|
# | rifle will attempt to extract it from $TERM.
|
||||||
|
# | New command = $TERMCMD -e $command
|
||||||
|
# Note: The "New command" serves only as an illustration, the exact
|
||||||
|
# implementation may differ.
|
||||||
|
# Note: When using rifle in ranger, there is an additional flag "c" for
|
||||||
|
# only running the current file even if you have marked multiple files.
|
||||||
|
|
||||||
|
#-------------------------------------------
|
||||||
|
# Websites
|
||||||
|
#-------------------------------------------
|
||||||
|
# Rarely installed browsers get higher priority; It is assumed that if you
|
||||||
|
# install a rare browser, you probably use it. Firefox/konqueror/w3m on the
|
||||||
|
# other hand are often only installed as fallback browsers.
|
||||||
|
ext x?html?, has surf, X, flag f = surf -- file://"$1"
|
||||||
|
ext x?html?, has vimprobable, X, flag f = vimprobable -- "$@"
|
||||||
|
ext x?html?, has vimprobable2, X, flag f = vimprobable2 -- "$@"
|
||||||
|
ext x?html?, has qutebrowser, X, flag f = qutebrowser -- "$@"
|
||||||
|
ext x?html?, has dwb, X, flag f = dwb -- "$@"
|
||||||
|
ext x?html?, has jumanji, X, flag f = jumanji -- "$@"
|
||||||
|
ext x?html?, has luakit, X, flag f = luakit -- "$@"
|
||||||
|
ext x?html?, has uzbl, X, flag f = uzbl -- "$@"
|
||||||
|
ext x?html?, has uzbl-tabbed, X, flag f = uzbl-tabbed -- "$@"
|
||||||
|
ext x?html?, has uzbl-browser, X, flag f = uzbl-browser -- "$@"
|
||||||
|
ext x?html?, has uzbl-core, X, flag f = uzbl-core -- "$@"
|
||||||
|
ext x?html?, has midori, X, flag f = midori -- "$@"
|
||||||
|
ext x?html?, has chromium-browser, X, flag f = chromium-browser -- "$@"
|
||||||
|
ext x?html?, has chromium, X, flag f = chromium -- "$@"
|
||||||
|
ext x?html?, has google-chrome, X, flag f = google-chrome -- "$@"
|
||||||
|
ext x?html?, has opera, X, flag f = opera -- "$@"
|
||||||
|
ext x?html?, has firefox, X, flag f = firefox -- "$@"
|
||||||
|
ext x?html?, has seamonkey, X, flag f = seamonkey -- "$@"
|
||||||
|
ext x?html?, has iceweasel, X, flag f = iceweasel -- "$@"
|
||||||
|
ext x?html?, has epiphany, X, flag f = epiphany -- "$@"
|
||||||
|
ext x?html?, has konqueror, X, flag f = konqueror -- "$@"
|
||||||
|
ext x?html?, has elinks, terminal = elinks "$@"
|
||||||
|
ext x?html?, has links2, terminal = links2 "$@"
|
||||||
|
ext x?html?, has links, terminal = links "$@"
|
||||||
|
ext x?html?, has lynx, terminal = lynx -- "$@"
|
||||||
|
ext x?html?, has w3m, terminal = w3m "$@"
|
||||||
|
|
||||||
|
#-------------------------------------------
|
||||||
|
# Misc
|
||||||
|
#-------------------------------------------
|
||||||
|
# Define the "editor" for text files as first action
|
||||||
|
mime ^text, label editor = termite -e "${VISUAL:-$EDITOR} -- \"$@\"" &
|
||||||
|
mime ^text, label pager = "$PAGER" -- "$@"
|
||||||
|
!mime ^text, label editor, ext xml|json|csv|tex|py|pl|rb|js|sh|php = termite -e "${VISUAL:-$EDITOR} -- \"$@\"" &
|
||||||
|
!mime ^text, label pager, ext xml|json|csv|tex|py|pl|rb|js|sh|php = "$PAGER" -- "$@"
|
||||||
|
|
||||||
|
ext 1 = man "$1"
|
||||||
|
ext s[wmf]c, has zsnes, X = zsnes "$1"
|
||||||
|
ext s[wmf]c, has snes9x-gtk,X = snes9x-gtk "$1"
|
||||||
|
ext nes, has fceux, X = fceux "$1"
|
||||||
|
ext exe = wine "$1"
|
||||||
|
name ^[mM]akefile$ = make
|
||||||
|
|
||||||
|
#--------------------------------------------
|
||||||
|
# Code
|
||||||
|
#-------------------------------------------
|
||||||
|
ext py = python -- "$1"
|
||||||
|
ext pl = perl -- "$1"
|
||||||
|
ext rb = ruby -- "$1"
|
||||||
|
ext js = node -- "$1"
|
||||||
|
ext sh = sh -- "$1"
|
||||||
|
ext php = php -- "$1"
|
||||||
|
|
||||||
|
#--------------------------------------------
|
||||||
|
# Audio without X
|
||||||
|
#-------------------------------------------
|
||||||
|
mime ^audio|ogg$, terminal, has mpv = mpv -- "$@"
|
||||||
|
mime ^audio|ogg$, terminal, has mplayer2 = mplayer2 -- "$@"
|
||||||
|
mime ^audio|ogg$, terminal, has mplayer = mplayer -- "$@"
|
||||||
|
ext midi?, terminal, has wildmidi = wildmidi -- "$@"
|
||||||
|
|
||||||
|
#--------------------------------------------
|
||||||
|
# Video/Audio with a GUI
|
||||||
|
#-------------------------------------------
|
||||||
|
mime ^video|audio, has gmplayer, X, flag f = gmplayer -- "$@"
|
||||||
|
mime ^video|audio, has smplayer, X, flag f = smplayer "$@"
|
||||||
|
mime ^video, has mpv, X, flag f = mpv -- "$@"
|
||||||
|
mime ^video, has mpv, X, flag f = mpv --fs -- "$@"
|
||||||
|
mime ^video, has mplayer2, X, flag f = mplayer2 -- "$@"
|
||||||
|
mime ^video, has mplayer2, X, flag f = mplayer2 -fs -- "$@"
|
||||||
|
mime ^video, has mplayer, X, flag f = mplayer -- "$@"
|
||||||
|
mime ^video, has mplayer, X, flag f = mplayer -fs -- "$@"
|
||||||
|
mime ^video|audio, has vlc, X, flag f = vlc -- "$@"
|
||||||
|
mime ^video|audio, has totem, X, flag f = totem -- "$@"
|
||||||
|
mime ^video|audio, has totem, X, flag f = totem --fullscreen -- "$@"
|
||||||
|
|
||||||
|
ext m3u8 = mpv --playlist "$@"
|
||||||
|
#--------------------------------------------
|
||||||
|
# Video without X:
|
||||||
|
#-------------------------------------------
|
||||||
|
mime ^video, terminal, !X, has mpv = mpv -- "$@"
|
||||||
|
mime ^video, terminal, !X, has mplayer2 = mplayer2 -- "$@"
|
||||||
|
mime ^video, terminal, !X, has mplayer = mplayer -- "$@"
|
||||||
|
|
||||||
|
#-------------------------------------------
|
||||||
|
# Documents
|
||||||
|
#-------------------------------------------
|
||||||
|
ext pdf, has llpp, X, flag f = llpp "$@"
|
||||||
|
ext pdf, has zathura, X, flag f = zathura -- "$@"
|
||||||
|
ext pdf, has mupdf, X, flag f = mupdf "$@"
|
||||||
|
ext pdf, has mupdf-x11,X, flag f = mupdf-x11 "$@"
|
||||||
|
ext pdf, has apvlv, X, flag f = apvlv -- "$@"
|
||||||
|
ext pdf, has xpdf, X, flag f = xpdf -- "$@"
|
||||||
|
ext pdf, has evince, X, flag f = evince -- "$@"
|
||||||
|
ext pdf, has atril, X, flag f = atril -- "$@"
|
||||||
|
ext pdf, has okular, X, flag f = okular -- "$@"
|
||||||
|
ext pdf, has epdfview, X, flag f = epdfview -- "$@"
|
||||||
|
ext pdf, has qpdfview, X, flag f = qpdfview "$@"
|
||||||
|
ext pdf, has open, X, flat f = open "$@"
|
||||||
|
|
||||||
|
ext docx?, has catdoc, terminal = catdoc -- "$@" | "$PAGER"
|
||||||
|
|
||||||
|
ext sxc|xlsx?|xlt|xlw|gnm|gnumeric, has gnumeric, X, flag f = gnumeric -- "$@"
|
||||||
|
ext sxc|xlsx?|xlt|xlw|gnm|gnumeric, has kspread, X, flag f = kspread -- "$@"
|
||||||
|
ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has libreoffice, X, flag f = libreoffice "$@"
|
||||||
|
ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has soffice, X, flag f = soffice "$@"
|
||||||
|
ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has ooffice, X, flag f = ooffice "$@"
|
||||||
|
|
||||||
|
ext djvu, has zathura,X, flag f = zathura -- "$@"
|
||||||
|
ext djvu, has evince, X, flag f = evince -- "$@"
|
||||||
|
ext djvu, has atril, X, flag f = atril -- "$@"
|
||||||
|
|
||||||
|
ext epub, has ebook-viewer, X, flag f = ebook-viewer -- "$@"
|
||||||
|
ext mobi, has ebook-viewer, X, flag f = ebook-viewer -- "$@"
|
||||||
|
|
||||||
|
ext sc|csv|sxc|xlsx?|xlt|xlw|gnm|gnumeric, = sc-im -- "$@"
|
||||||
|
#-------------------------------------------
|
||||||
|
# Image Viewing:
|
||||||
|
#-------------------------------------------
|
||||||
|
mime ^image/svg, has inkscape, X, flag f = inkscape -- "$@"
|
||||||
|
mime ^image/svg, has display, X, flag f = display -- "$@"
|
||||||
|
|
||||||
|
mime ^image, has pqiv, X, flag f = pqiv -- "$@"
|
||||||
|
mime ^image, has sxiv, X, flag f = sxiv -- "$@"
|
||||||
|
mime ^image, has feh, X, flag f = feh -- "$@"
|
||||||
|
mime ^image, has mirage, X, flag f = mirage -- "$@"
|
||||||
|
mime ^image, has ristretto, X, flag f = ristretto "$@"
|
||||||
|
mime ^image, has eog, X, flag f = eog -- "$@"
|
||||||
|
mime ^image, has eom, X, flag f = eom -- "$@"
|
||||||
|
mime ^image, has nomacs, X, flag f = nomacs -- "$@"
|
||||||
|
mime ^image, has geeqie, X, flag f = geeqie -- "$@"
|
||||||
|
mime ^image, has gimp, X, flag f = gimp -- "$@"
|
||||||
|
ext xcf, X, flag f = gimp -- "$@"
|
||||||
|
|
||||||
|
#-------------------------------------------
|
||||||
|
# Archives
|
||||||
|
#-------------------------------------------
|
||||||
|
|
||||||
|
# avoid password prompt by providing empty password
|
||||||
|
ext 7z, has 7z = 7z -p l "$@" | "$PAGER"
|
||||||
|
# This requires atool
|
||||||
|
ext ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has atool = atool --list --each -- "$@" | "$PAGER"
|
||||||
|
ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has atool = atool --list --each -- "$@" | "$PAGER"
|
||||||
|
ext 7z|ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has atool = atool --extract --each -- "$@"
|
||||||
|
ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has atool = atool --extract --each -- "$@"
|
||||||
|
|
||||||
|
# Listing and extracting archives without atool:
|
||||||
|
ext tar|gz|bz2|xz, has tar = tar vvtf "$1" | "$PAGER"
|
||||||
|
ext tar|gz|bz2|xz, has tar = for file in "$@"; do tar vvxf "$file"; done
|
||||||
|
ext bz2, has bzip2 = for file in "$@"; do bzip2 -dk "$file"; done
|
||||||
|
ext zip, has unzip = unzip -l "$1" | less
|
||||||
|
ext zip, has unzip = for file in "$@"; do unzip -d "${file%.*}" "$file"; done
|
||||||
|
ext ace, has unace = unace l "$1" | less
|
||||||
|
ext ace, has unace = for file in "$@"; do unace e "$file"; done
|
||||||
|
ext rar, has unrar = unrar l "$1" | less
|
||||||
|
ext rar, has unrar = for file in "$@"; do unrar x "$file"; done
|
||||||
|
|
||||||
|
#-------------------------------------------
|
||||||
|
# Misc
|
||||||
|
#-------------------------------------------
|
||||||
|
label wallpaper, number 11, mime ^image, has feh, X = feh --bg-scale "$1"
|
||||||
|
label wallpaper, number 12, mime ^image, has feh, X = feh --bg-tile "$1"
|
||||||
|
label wallpaper, number 13, mime ^image, has feh, X = feh --bg-center "$1"
|
||||||
|
label wallpaper, number 14, mime ^image, has feh, X = feh --bg-fill "$1"
|
||||||
|
|
||||||
|
# Define the editor for non-text files + pager as last action
|
||||||
|
!mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = ask
|
||||||
|
label editor, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = ${VISUAL:-$EDITOR} -- "$@"
|
||||||
|
label pager, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = "$PAGER" -- "$@"
|
||||||
|
|
||||||
|
# The very last action, so that it's never triggered accidentally, is to execute a program:
|
||||||
|
mime application/x-executable = "$1"
|
|
@ -0,0 +1,178 @@
|
||||||
|
#!/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=$(echo ${FILE_EXTENSION} | tr '[:upper:]' '[:lower:]')
|
||||||
|
|
||||||
|
# Settings
|
||||||
|
HIGHLIGHT_SIZE_MAX=262143 # 256KiB
|
||||||
|
HIGHLIGHT_TABWIDTH=8
|
||||||
|
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/*)
|
||||||
|
local orientation
|
||||||
|
orientation="$( identify -format '%[EXIF:Orientation]\n' -- "${FILE_PATH}" )"
|
||||||
|
# If orientation data is present and the image actually
|
||||||
|
# needs rotating ("1" means no rotation)...
|
||||||
|
if [[ -n "$orientation" && "$orientation" != 1 ]]; then
|
||||||
|
# ...auto-rotate the image according to the EXIF data.
|
||||||
|
convert -- "${FILE_PATH}" -auto-orient "${IMAGE_CACHE_PATH}" && exit 6
|
||||||
|
fi
|
||||||
|
|
||||||
|
# `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;;
|
||||||
|
# PDF
|
||||||
|
# application/pdf)
|
||||||
|
# pdftoppm -f 1 -l 1 \
|
||||||
|
# -scale-to-x 1920 \
|
||||||
|
# -scale-to-y -1 \
|
||||||
|
# -singlefile \
|
||||||
|
# -jpeg -tiffcompression jpeg \
|
||||||
|
# -- "${FILE_PATH}" "${IMAGE_CACHE_PATH%.*}" \
|
||||||
|
# && 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 --replace-tabs="${HIGHLIGHT_TABWIDTH}" --out-format="${highlight_format}" \
|
||||||
|
--style="${HIGHLIGHT_STYLE}" --force -- "${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
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
MIMETYPE="$( file --dereference --brief --mime-type -- "${FILE_PATH}" )"
|
||||||
|
if [[ "${PV_IMAGE_ENABLED}" == 'True' ]]; then
|
||||||
|
handle_image "${MIMETYPE}"
|
||||||
|
fi
|
||||||
|
handle_extension
|
||||||
|
handle_mime "${MIMETYPE}"
|
||||||
|
handle_fallback
|
||||||
|
|
||||||
|
exit 1
|
|
@ -0,0 +1,5 @@
|
||||||
|
configuration {
|
||||||
|
modi: "run,window";
|
||||||
|
theme: "sidebar-mod";
|
||||||
|
font: "FantasqueSansMono 16";
|
||||||
|
}
|
|
@ -0,0 +1,143 @@
|
||||||
|
/**
|
||||||
|
* Base16 Tomorrow Night ROFI Color theme
|
||||||
|
* User: Chris Kempson (http://chriskempson.com)
|
||||||
|
* Copyright: Andrea Scarpino
|
||||||
|
*/
|
||||||
|
* {
|
||||||
|
selected-normal-foreground: @lightbg;
|
||||||
|
foreground: rgba ( 197, 200, 198, 100 % );
|
||||||
|
normal-foreground: @foreground;
|
||||||
|
alternate-normal-background: @lightbg;
|
||||||
|
red: rgba ( 204, 102, 102, 100 % );
|
||||||
|
selected-urgent-foreground: @background;
|
||||||
|
blue: rgba ( 129, 162, 190, 100 % );
|
||||||
|
urgent-foreground: @red;
|
||||||
|
alternate-urgent-background: @lightbg;
|
||||||
|
active-foreground: @blue;
|
||||||
|
lightbg: rgba ( 40, 42, 46, 100 % );
|
||||||
|
selected-active-foreground: @background;
|
||||||
|
alternate-active-background: @lightbg;
|
||||||
|
background: rgba ( 29, 31, 33, 100 % );
|
||||||
|
alternate-normal-foreground: @foreground;
|
||||||
|
normal-background: @background;
|
||||||
|
lightfg: rgba ( 224, 224, 224, 100 % );
|
||||||
|
selected-normal-background: @lightfg;
|
||||||
|
border-color: @foreground;
|
||||||
|
spacing: 2;
|
||||||
|
separatorcolor: @foreground;
|
||||||
|
urgent-background: @background;
|
||||||
|
selected-urgent-background: @red;
|
||||||
|
alternate-urgent-foreground: @red;
|
||||||
|
background-color: rgba ( 29, 31, 33, 0 % );
|
||||||
|
alternate-active-foreground: @blue;
|
||||||
|
active-background: @background;
|
||||||
|
selected-active-background: @blue;
|
||||||
|
}
|
||||||
|
window {
|
||||||
|
background-color: @background;
|
||||||
|
border: 1;
|
||||||
|
padding: 5;
|
||||||
|
}
|
||||||
|
mainbox {
|
||||||
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
message {
|
||||||
|
border: 1px dash 0px 0px ;
|
||||||
|
border-color: @separatorcolor;
|
||||||
|
padding: 1px ;
|
||||||
|
}
|
||||||
|
textbox {
|
||||||
|
text-color: @foreground;
|
||||||
|
}
|
||||||
|
listview {
|
||||||
|
fixed-height: 0;
|
||||||
|
border: 2px dash 0px 0px ;
|
||||||
|
border-color: @separatorcolor;
|
||||||
|
spacing: 2px ;
|
||||||
|
scrollbar: false;
|
||||||
|
padding: 2px 0px 0px ;
|
||||||
|
}
|
||||||
|
element {
|
||||||
|
border: 0;
|
||||||
|
padding: 1px ;
|
||||||
|
}
|
||||||
|
element normal.normal {
|
||||||
|
background-color: @normal-background;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
element normal.urgent {
|
||||||
|
background-color: @urgent-background;
|
||||||
|
text-color: @urgent-foreground;
|
||||||
|
}
|
||||||
|
element normal.active {
|
||||||
|
background-color: @active-background;
|
||||||
|
text-color: @active-foreground;
|
||||||
|
}
|
||||||
|
element selected.normal {
|
||||||
|
background-color: @selected-normal-background;
|
||||||
|
text-color: @selected-normal-foreground;
|
||||||
|
}
|
||||||
|
element selected.urgent {
|
||||||
|
background-color: @selected-urgent-background;
|
||||||
|
text-color: @selected-urgent-foreground;
|
||||||
|
}
|
||||||
|
element selected.active {
|
||||||
|
background-color: @selected-active-background;
|
||||||
|
text-color: @selected-active-foreground;
|
||||||
|
}
|
||||||
|
element alternate.normal {
|
||||||
|
background-color: @alternate-normal-background;
|
||||||
|
text-color: @alternate-normal-foreground;
|
||||||
|
}
|
||||||
|
element alternate.urgent {
|
||||||
|
background-color: @alternate-urgent-background;
|
||||||
|
text-color: @alternate-urgent-foreground;
|
||||||
|
}
|
||||||
|
element alternate.active {
|
||||||
|
background-color: @alternate-active-background;
|
||||||
|
text-color: @alternate-active-foreground;
|
||||||
|
}
|
||||||
|
scrollbar {
|
||||||
|
width: 4px ;
|
||||||
|
border: 0;
|
||||||
|
handle-color: @normal-foreground;
|
||||||
|
handle-width: 8px ;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
sidebar {
|
||||||
|
border: 2px dash 0px 0px ;
|
||||||
|
border-color: @separatorcolor;
|
||||||
|
}
|
||||||
|
button {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
button selected {
|
||||||
|
background-color: @selected-normal-background;
|
||||||
|
text-color: @selected-normal-foreground;
|
||||||
|
}
|
||||||
|
inputbar {
|
||||||
|
spacing: 0px;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
padding: 1px ;
|
||||||
|
children: [ prompt,textbox-prompt-colon,entry];
|
||||||
|
}
|
||||||
|
case-indicator {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
entry {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
prompt {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
textbox-prompt-colon {
|
||||||
|
expand: false;
|
||||||
|
str: ":";
|
||||||
|
margin: 0px 0.3000em 0.0000em 0.0000em ;
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
|
@ -0,0 +1,113 @@
|
||||||
|
/**
|
||||||
|
* User: qball
|
||||||
|
* Copyright: Dave Davenport
|
||||||
|
*/
|
||||||
|
* {
|
||||||
|
text-color: #ffeedd;
|
||||||
|
background-color: rgba(0,0,0,0);
|
||||||
|
dark: #1d1f21;
|
||||||
|
// Black
|
||||||
|
black: #1d1f21;
|
||||||
|
lightblack: #1d1f21;
|
||||||
|
//
|
||||||
|
// Red
|
||||||
|
red: #cc6666;
|
||||||
|
lightred: #cc6666;
|
||||||
|
//
|
||||||
|
// Green
|
||||||
|
green: #b5bd68;
|
||||||
|
lightgreen: #b5bd68;
|
||||||
|
//
|
||||||
|
// Yellow
|
||||||
|
yellow: #f0c674;
|
||||||
|
lightyellow: #f0c674;
|
||||||
|
//
|
||||||
|
// Blue
|
||||||
|
blue: #81a2be;
|
||||||
|
lightblue: #81a2be;
|
||||||
|
//
|
||||||
|
// Magenta
|
||||||
|
magenta: #b294bb;
|
||||||
|
lightmagenta: #b294bb;
|
||||||
|
//
|
||||||
|
// Cyan
|
||||||
|
cyan: #8abeb7;
|
||||||
|
lightcyan: #8abeb7;
|
||||||
|
//
|
||||||
|
// White
|
||||||
|
white: #ffffff;
|
||||||
|
lightwhite: #ffffff;
|
||||||
|
//
|
||||||
|
// Bold, Italic, Underline
|
||||||
|
highlight: bold #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window {
|
||||||
|
height: 100%;
|
||||||
|
width: 30em;
|
||||||
|
location: east;
|
||||||
|
anchor: east;
|
||||||
|
border: 0px 0px 0px 0px;
|
||||||
|
text-color: @lightwhite;
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt {
|
||||||
|
padding: 0px 8px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mode-switcher {
|
||||||
|
border: 2px 0px 0px 0px;
|
||||||
|
background-color: @lightblack;
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
#button selected {
|
||||||
|
border-color: @lightgreen;
|
||||||
|
text-color: @lightgreen;
|
||||||
|
}
|
||||||
|
#inputbar {
|
||||||
|
background-color: @lightblack;
|
||||||
|
text-color: @lightgreen;
|
||||||
|
padding: 4px;
|
||||||
|
border: 0px 0px 2px 0px;
|
||||||
|
}
|
||||||
|
#mainbox {
|
||||||
|
expand: true;
|
||||||
|
background-color: #1c1c1cee;
|
||||||
|
spacing: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#listview {
|
||||||
|
padding: 0em 1em 1em 1em;
|
||||||
|
dynamic: false;
|
||||||
|
lines: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element {
|
||||||
|
padding: 0em 0em 0.2em 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element selected normal {
|
||||||
|
background-color: @blue;
|
||||||
|
}
|
||||||
|
#element normal active {
|
||||||
|
text-color: @lightblue;
|
||||||
|
}
|
||||||
|
#element normal urgent {
|
||||||
|
text-color: @lightred;
|
||||||
|
}
|
||||||
|
#element alternate normal {
|
||||||
|
}
|
||||||
|
#element alternate active {
|
||||||
|
text-color: @lightblue;
|
||||||
|
}
|
||||||
|
#element alternate urgent {
|
||||||
|
text-color: @lightred;
|
||||||
|
}
|
||||||
|
#element selected active {
|
||||||
|
background-color: @lightblue;
|
||||||
|
text-color: @dark;
|
||||||
|
}
|
||||||
|
#element selected urgent {
|
||||||
|
background-color: @lightred;
|
||||||
|
text-color: @dark;
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
from sys import argv
|
||||||
|
from os.path import basename
|
||||||
|
|
||||||
|
print("# " + basename(argv[1]).replace("_"," ").split(".")[:1][0] + "\n")
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
busctl call --user sm.puri.OSK0 /sm/puri/OSK0 sm.puri.OSK0 SetVisible b false
|
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/bash
|
||||||
|
pactl load-module module-jack-sink client_name=pulse_sink_2 connect=yes
|
|
@ -0,0 +1,15 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
pandoc --biblatex -t latex -s -i $1 -o $1.lytex
|
||||||
|
lilypond-book $1.lytex -o textmp
|
||||||
|
cd textmp
|
||||||
|
xelatex $1.tex
|
||||||
|
if [ -f "$1.bcf" ]
|
||||||
|
then
|
||||||
|
biber $1.bcf
|
||||||
|
xelatex $1.tex
|
||||||
|
fi
|
||||||
|
cp $1.pdf ..
|
||||||
|
cd ..
|
||||||
|
rm -rf textmp
|
||||||
|
rm $1.lytex
|
|
@ -0,0 +1,14 @@
|
||||||
|
COLS="name,type,size,mountpoint"
|
||||||
|
|
||||||
|
drives="$(lsblk -rpo "$COLS" | awk '$2=="part"&&$4==""{printf "%s (%s)\n",$1,$3}')"
|
||||||
|
[ -z "$drives" ] && exit 1
|
||||||
|
chosen="$(echo "$drives" | rofi -dmenu -i -p "Mount which drive?" | awk '{print $1}')"
|
||||||
|
[ -z "$chosen" ] && exit 1
|
||||||
|
stdout=$(udisksctl mount -b "$chosen")
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]
|
||||||
|
then
|
||||||
|
notify-send Mount "$stdout"
|
||||||
|
else
|
||||||
|
notify-send Mount "Mounting Failed"
|
||||||
|
fi
|
|
@ -0,0 +1,18 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
from time import strftime, localtime
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
|
||||||
|
r = re.compile('[^a-zA-Z]')
|
||||||
|
TEMPLATE = open("/home/nihilazo/Documents/05-Templates/document.md","r").read()
|
||||||
|
date = strftime("%Y-%m-%d", localtime())
|
||||||
|
title = sys.argv[1]
|
||||||
|
ftitle = r.sub('', title.strip().lower())
|
||||||
|
fname = "{}-{}.md".format(date,ftitle)
|
||||||
|
|
||||||
|
if not os.path.isfile(fname):
|
||||||
|
with open(fname,"w+") as f:
|
||||||
|
f.write(TEMPLATE.format(title=title, date=date))
|
||||||
|
|
||||||
|
os.system("nvim " + fname)
|
|
@ -0,0 +1,12 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
sleep 0.2
|
||||||
|
|
||||||
|
STATUS=$(gsettings get org.gnome.desktop.a11y.applications screen-keyboard-enabled)
|
||||||
|
|
||||||
|
if [ "$STATUS" = "false" ]; then
|
||||||
|
echo "✘"
|
||||||
|
else
|
||||||
|
echo "✔"
|
||||||
|
fi
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
STATUS=$(gsettings get org.gnome.desktop.a11y.applications screen-keyboard-enabled)
|
||||||
|
|
||||||
|
if [ "$STATUS" = "false" ]; then
|
||||||
|
gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true
|
||||||
|
else
|
||||||
|
gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled false
|
||||||
|
fi
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
gopass ls --flat | wofi --show dmenu | xargs --no-run-if-empty gopass show | wl-copy
|
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/sh
|
||||||
|
tmux new-session -d "nvim -n -c:VimwikiIndex"
|
||||||
|
tmux new-window 'calcurse'
|
||||||
|
tmux -2 attach-session -d
|
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
pidof squeekboard || squeekboard &
|
||||||
|
busctl call --user sm.puri.OSK0 /sm/puri/OSK0 sm.puri.OSK0 SetVisible b true
|
|
@ -0,0 +1,14 @@
|
||||||
|
COLS="name,type,size,mountpoint"
|
||||||
|
|
||||||
|
drives=$(lsblk -rpo "$COLS" | awk '$2=="part"&&$4!~/boot|home|SWAP/&&length($4)>1{printf "%s (%s) on %s\n",$1,$3,$4}')
|
||||||
|
[ -z "$drives" ] && exit
|
||||||
|
chosen=$(echo "$drives" | rofi -dmenu -i -p "Unmount which drive?" | awk '{print $1}')
|
||||||
|
[ -z "$chosen" ] && exit
|
||||||
|
stdout=$(udisksctl unmount -b "$chosen")
|
||||||
|
if [ $? -eq 0 ]
|
||||||
|
then
|
||||||
|
notify-send "Mount" "$stdout"
|
||||||
|
else
|
||||||
|
notify-send "Mount" "Unmounting Failed"
|
||||||
|
fi
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import sys
|
||||||
|
from i3ipc import Connection
|
||||||
|
|
||||||
|
i3 = Connection()
|
||||||
|
ws = i3.get_workspaces()
|
||||||
|
|
||||||
|
for w in ws:
|
||||||
|
if w.focused == True:
|
||||||
|
current = w
|
||||||
|
|
||||||
|
if sys.argv[1] == "next":
|
||||||
|
i3.command(f"workspace {current.num + 1}")
|
||||||
|
elif sys.argv[1] == "prev":
|
||||||
|
if current.num == 1:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
i3.command(f"workspace {current.num - 1}")
|
|
@ -0,0 +1,20 @@
|
||||||
|
#!/bin/sh
|
||||||
|
case "${1%%:*}" in
|
||||||
|
http|https|*.pdf)
|
||||||
|
if [ $(cat /etc/hostname) = 'alarm' ]
|
||||||
|
then
|
||||||
|
exec firefox "$1"
|
||||||
|
else
|
||||||
|
exec qutebrowser "$1"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
gemini)
|
||||||
|
exec termite -e "amfora $1"
|
||||||
|
;;
|
||||||
|
mailto)
|
||||||
|
exec thunderbird "$1"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
exec /usr/bin/xdg-open "$@"
|
||||||
|
;;
|
||||||
|
esac
|
|
@ -0,0 +1,78 @@
|
||||||
|
[config]
|
||||||
|
use_i3=true # If we are connecting to i3/sway or not.
|
||||||
|
font="FantasqueSansMono" # Font
|
||||||
|
|
||||||
|
[colors] # Colors are an array of [r,g,b] as floats from 0 to 1
|
||||||
|
selected=[0.72,0.74,0.41]
|
||||||
|
deselected=[1,1,1]
|
||||||
|
background=[0.11,0.12,0.13]
|
||||||
|
|
||||||
|
# All menu options are formatted like this.
|
||||||
|
# There are 4 types: shell, internal, i3, and submenu.
|
||||||
|
[[options]]
|
||||||
|
label = "Power"
|
||||||
|
type = "submenu"
|
||||||
|
[[options.options]]
|
||||||
|
label = "Shut Down"
|
||||||
|
type = "shell"
|
||||||
|
command = "poweroff"
|
||||||
|
[[options.options]]
|
||||||
|
label = "Reboot"
|
||||||
|
type = "shell"
|
||||||
|
command = "reboot"
|
||||||
|
|
||||||
|
[[options]]
|
||||||
|
label = "Internet"
|
||||||
|
type = "submenu"
|
||||||
|
[[options.options]]
|
||||||
|
label = "Browser"
|
||||||
|
type = "shell"
|
||||||
|
command = "firefox"
|
||||||
|
[[options.options]]
|
||||||
|
label = "Telegram"
|
||||||
|
type = "shell"
|
||||||
|
command = "telegram-desktop"
|
||||||
|
|
||||||
|
[[options]]
|
||||||
|
label = "Utilities"
|
||||||
|
type = "submenu"
|
||||||
|
[[options.options]]
|
||||||
|
label = "Terminal"
|
||||||
|
type = "shell"
|
||||||
|
command = "termite"
|
||||||
|
[[options.options]]
|
||||||
|
label = "File Manager"
|
||||||
|
type = "shell"
|
||||||
|
command = "nautilus"
|
||||||
|
[[options.options]]
|
||||||
|
label = "Volume Control"
|
||||||
|
type = "shell"
|
||||||
|
command = "pavucontrol"
|
||||||
|
|
||||||
|
[[options]]
|
||||||
|
label = "Personal"
|
||||||
|
type = "submenu"
|
||||||
|
[[options.options]]
|
||||||
|
label = "Calendar"
|
||||||
|
type = "shell"
|
||||||
|
command = "/home/nihilazo/.local/bin/calcurse-ui"
|
||||||
|
[[options.options]]
|
||||||
|
label = "Anki"
|
||||||
|
type = "shell"
|
||||||
|
command = "anki"
|
||||||
|
|
||||||
|
[[options]]
|
||||||
|
label = "Media"
|
||||||
|
type = "submenu"
|
||||||
|
[[options.options]]
|
||||||
|
label = "Sunvox"
|
||||||
|
type = "shell"
|
||||||
|
command = "sunvox"
|
||||||
|
[[options.options]]
|
||||||
|
label = "PixiTracker"
|
||||||
|
type = "shell"
|
||||||
|
command = "/home/nihilazo/pixitracker/START_LINUX_ARM64"
|
||||||
|
[[options.options]]
|
||||||
|
label = "Audacity"
|
||||||
|
type = "shell"
|
||||||
|
command = "audacity"
|
|
@ -0,0 +1,108 @@
|
||||||
|
# original 1u height: 42
|
||||||
|
# original 1u width: 54
|
||||||
|
---
|
||||||
|
outlines:
|
||||||
|
default: { width: 64, height: 42 } # 1u
|
||||||
|
altline: { width: 96, height: 42 } # 1.5u
|
||||||
|
wide: { width: 128, height: 42 } # 2u
|
||||||
|
spaceline: { width: 320, height: 42 } # 5u
|
||||||
|
splitline: { width: 512, height: 42 } # 8u
|
||||||
|
special: { width: 64, height: 42 } # weird 1u
|
||||||
|
|
||||||
|
views:
|
||||||
|
base:
|
||||||
|
- "q w e r t split y u i o p BackSpace"
|
||||||
|
- " a s d f g split h j k l ; '"
|
||||||
|
- "z x c v b split n m . , / Shift_L"
|
||||||
|
- "ctrl show_numbers Return left down preferences up right space alt esc"
|
||||||
|
|
||||||
|
upper:
|
||||||
|
- "Q W E R T split Y U I O P BackSpace"
|
||||||
|
- "A S D F G split H J K L : \""
|
||||||
|
- "Z X C V B split N M < > ? Shift_L"
|
||||||
|
- "ctrl show_numbers Return left down preferences up right space alt esc"
|
||||||
|
|
||||||
|
numbers:
|
||||||
|
- "1 2 3 4 5 split 6 7 8 9 0 show_symb"
|
||||||
|
- "! @ # $ % split ^ & * ( ) ~"
|
||||||
|
- "[ ] { } | split \\ ! ? colon - tab"
|
||||||
|
- "ctrl show_letters Return left down preferences up right space alt esc"
|
||||||
|
symb:
|
||||||
|
- "F1 F2 F3 F4 F5 split F6 F7 F8 F9 F10"
|
||||||
|
- "F11 F12 - _ split + = £ show_numbers"
|
||||||
|
- "split split"
|
||||||
|
- "ctrl show_letters Return left down preferences up right space alt esc"
|
||||||
|
buttons:
|
||||||
|
left:
|
||||||
|
keysym: "Left"
|
||||||
|
label: "←"
|
||||||
|
right:
|
||||||
|
keysym: "Right"
|
||||||
|
label: "→"
|
||||||
|
up:
|
||||||
|
keysym: "Up"
|
||||||
|
label: "↑"
|
||||||
|
down:
|
||||||
|
keysym: "Down"
|
||||||
|
label: "↓"
|
||||||
|
esc:
|
||||||
|
keysym: "Escape"
|
||||||
|
# Long Keys. A workaround for getting split.
|
||||||
|
split:
|
||||||
|
outline: "splitline"
|
||||||
|
text: ""
|
||||||
|
label: ""
|
||||||
|
# Action Keys
|
||||||
|
Shift_L:
|
||||||
|
action:
|
||||||
|
locking:
|
||||||
|
lock_view: "upper"
|
||||||
|
unlock_view: "base"
|
||||||
|
outline: "default"
|
||||||
|
icon: "key-shift"
|
||||||
|
BackSpace:
|
||||||
|
outline: "default"
|
||||||
|
icon: "edit-clear-symbolic"
|
||||||
|
action: "erase"
|
||||||
|
preferences:
|
||||||
|
action: "show_prefs"
|
||||||
|
outline: "special"
|
||||||
|
icon: "keyboard-mode-symbolic"
|
||||||
|
show_numbers:
|
||||||
|
action:
|
||||||
|
set_view: "numbers"
|
||||||
|
outline: "default"
|
||||||
|
label: "123"
|
||||||
|
show_numbers_from_symbols:
|
||||||
|
action:
|
||||||
|
set_view: "numbers"
|
||||||
|
outline: "default"
|
||||||
|
label: "123"
|
||||||
|
show_letters:
|
||||||
|
action:
|
||||||
|
set_view: "base"
|
||||||
|
outline: "default"
|
||||||
|
label: "ABC"
|
||||||
|
show_symb:
|
||||||
|
action:
|
||||||
|
set_view: "symb"
|
||||||
|
outline: "default"
|
||||||
|
label: "*/="
|
||||||
|
".":
|
||||||
|
outline: "special"
|
||||||
|
text: "."
|
||||||
|
space:
|
||||||
|
outline: "spaceline"
|
||||||
|
text: " "
|
||||||
|
Return:
|
||||||
|
outline: "spaceline"
|
||||||
|
icon: "key-enter"
|
||||||
|
keysym: "Return"
|
||||||
|
colon:
|
||||||
|
text: ":"
|
||||||
|
alt:
|
||||||
|
modifier: "Alt"
|
||||||
|
ctrl:
|
||||||
|
modifier: "Control"
|
||||||
|
tab:
|
||||||
|
keysym: "Tab"
|
|
@ -0,0 +1,169 @@
|
||||||
|
# hardware config for pinetab
|
||||||
|
|
||||||
|
output * transform 90
|
||||||
|
input type:touch map_to_output DSI-1
|
||||||
|
|
||||||
|
input 65261:12384:foostan_Corne_Keyboard_(crkbd) {
|
||||||
|
xkb_layout gb
|
||||||
|
}
|
||||||
|
|
||||||
|
bindcode 124 exec swaylock -f -c 000000
|
||||||
|
bindcode --locked 124 exec killall swaylock
|
||||||
|
|
||||||
|
set $mod Mod4
|
||||||
|
font Fantasque Sans Mono 12
|
||||||
|
floating_modifier $mod
|
||||||
|
|
||||||
|
output * bg #1d1f21 solid_color
|
||||||
|
|
||||||
|
# start a terminal
|
||||||
|
bindsym $mod+Return exec termite
|
||||||
|
bindsym $mod+o exec swaylock -f -c 000000
|
||||||
|
|
||||||
|
# kill focused window
|
||||||
|
bindsym $mod+Shift+q kill
|
||||||
|
|
||||||
|
#gaps and borders, window headers:
|
||||||
|
gaps inner 5
|
||||||
|
|
||||||
|
focus_follows_mouse no
|
||||||
|
# startup programs
|
||||||
|
exec --no-startup-id nm-applet --indicator
|
||||||
|
exec mako
|
||||||
|
exec waybar -c ~/.config/waybar/config-top
|
||||||
|
exec waybar -c ~/.config/waybar/config-bottom
|
||||||
|
exec squeekboard
|
||||||
|
exec lisgd
|
||||||
|
exec hide-osk
|
||||||
|
|
||||||
|
bindsym $mod+d exec --no-startup-id wofi --show run
|
||||||
|
bindsym XF86Search exec --no-startup-id wofi --show run
|
||||||
|
|
||||||
|
# And easy access to password management
|
||||||
|
bindsym $mod+p exec --no-startup-id ~/.local/bin/password-menu-wofi
|
||||||
|
|
||||||
|
# ...And mounting menus
|
||||||
|
bindsym $mod+m exec --no-startup-id mountmenu
|
||||||
|
bindsym $mod+shift+m exec --no-startup-id unmountmenu
|
||||||
|
|
||||||
|
# notifcations
|
||||||
|
bindsym $mod+b exec --no-startup-id notify-send Battery "$(acpi)"
|
||||||
|
|
||||||
|
# Media Keys
|
||||||
|
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5%
|
||||||
|
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5%
|
||||||
|
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||||
|
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
||||||
|
|
||||||
|
bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl set +1
|
||||||
|
bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl set 1-
|
||||||
|
|
||||||
|
# focus shortcuts
|
||||||
|
bindsym $mod+h focus left
|
||||||
|
bindsym $mod+j focus down
|
||||||
|
bindsym $mod+k focus up
|
||||||
|
bindsym $mod+l focus right
|
||||||
|
|
||||||
|
# alternatively, you can use the cursor keys:
|
||||||
|
bindsym $mod+Left focus left
|
||||||
|
bindsym $mod+Down focus down
|
||||||
|
bindsym $mod+Up focus up
|
||||||
|
bindsym $mod+Right focus right
|
||||||
|
|
||||||
|
# move focused window
|
||||||
|
bindsym $mod+Shift+h move left
|
||||||
|
bindsym $mod+Shift+j move down
|
||||||
|
bindsym $mod+Shift+k move up
|
||||||
|
bindsym $mod+Shift+l move right
|
||||||
|
|
||||||
|
# alternatively, you can use the cursor keys:
|
||||||
|
bindsym $mod+Shift+Left move left
|
||||||
|
bindsym $mod+Shift+Down move down
|
||||||
|
bindsym $mod+Shift+Up move up
|
||||||
|
bindsym $mod+Shift+Right move right
|
||||||
|
|
||||||
|
# split in horizontal orientation
|
||||||
|
bindsym $mod+bar split h
|
||||||
|
|
||||||
|
# split in vertical orientation
|
||||||
|
bindsym $mod+minus split v
|
||||||
|
|
||||||
|
# enter fullscreen mode for the focused container
|
||||||
|
bindsym $mod+f fullscreen toggle
|
||||||
|
|
||||||
|
# change container layout (stacked, tabbed, toggle split)
|
||||||
|
bindsym $mod+s layout stacking
|
||||||
|
bindsym $mod+w layout tabbed
|
||||||
|
bindsym $mod+e layout toggle split
|
||||||
|
|
||||||
|
# toggle tiling / floating
|
||||||
|
bindsym $mod+Shift+space floating toggle
|
||||||
|
|
||||||
|
# change focus between tiling / floating windows
|
||||||
|
bindsym $mod+space focus mode_toggle
|
||||||
|
|
||||||
|
# focus the parent container
|
||||||
|
bindsym $mod+a focus parent
|
||||||
|
|
||||||
|
# focus the child container
|
||||||
|
#bindsym $mod+d focus child
|
||||||
|
|
||||||
|
# Make PD GEM windows not glitch out and be stupid
|
||||||
|
for_window [title="GEM"] floating enable
|
||||||
|
|
||||||
|
# switch to workspace
|
||||||
|
bindsym $mod+1 workspace 1
|
||||||
|
bindsym $mod+2 workspace 2
|
||||||
|
bindsym $mod+3 workspace 3
|
||||||
|
bindsym $mod+4 workspace 4
|
||||||
|
bindsym $mod+5 workspace 5
|
||||||
|
bindsym $mod+6 workspace 6
|
||||||
|
bindsym $mod+7 workspace 7
|
||||||
|
bindsym $mod+8 workspace 8
|
||||||
|
bindsym $mod+9 workspace 9
|
||||||
|
bindsym $mod+0 workspace 10
|
||||||
|
|
||||||
|
# move focused container to workspace
|
||||||
|
bindsym $mod+Shift+1 move container to workspace 1
|
||||||
|
bindsym $mod+Shift+2 move container to workspace 2
|
||||||
|
bindsym $mod+Shift+3 move container to workspace 3
|
||||||
|
bindsym $mod+Shift+4 move container to workspace 4
|
||||||
|
bindsym $mod+Shift+5 move container to workspace 5
|
||||||
|
bindsym $mod+Shift+6 move container to workspace 6
|
||||||
|
bindsym $mod+Shift+7 move container to workspace 7
|
||||||
|
bindsym $mod+Shift+8 move container to workspace 8
|
||||||
|
bindsym $mod+Shift+9 move container to workspace 9
|
||||||
|
bindsym $mod+Shift+0 move container to workspace 10
|
||||||
|
|
||||||
|
# reload the configuration file
|
||||||
|
bindsym $mod+Shift+c reload
|
||||||
|
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||||
|
bindsym $mod+Shift+r restart
|
||||||
|
# exit i3 (logs you out of your X session)
|
||||||
|
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
|
||||||
|
|
||||||
|
# resize window (you can also use the mouse for that)
|
||||||
|
mode "resize" {
|
||||||
|
# These bindings trigger as soon as you enter the resize mode
|
||||||
|
|
||||||
|
# Pressing left will shrink the window’s width.
|
||||||
|
# Pressing right will grow the window’s width.
|
||||||
|
# Pressing up will shrink the window’s height.
|
||||||
|
# Pressing down will grow the window’s height.
|
||||||
|
bindsym h resize shrink width 10 px or 10 ppt
|
||||||
|
bindsym j resize grow height 10 px or 10 ppt
|
||||||
|
bindsym k resize shrink height 10 px or 10 ppt
|
||||||
|
bindsym l resize grow width 10 px or 10 ppt
|
||||||
|
|
||||||
|
# same bindings, but for the arrow keys
|
||||||
|
bindsym Left resize shrink width 10 px or 10 ppt
|
||||||
|
bindsym Down resize grow height 10 px or 10 ppt
|
||||||
|
bindsym Up resize shrink height 10 px or 10 ppt
|
||||||
|
bindsym Right resize grow width 10 px or 10 ppt
|
||||||
|
|
||||||
|
# back to normal: Enter or Escape
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
}
|
||||||
|
|
||||||
|
bindsym $mod+r mode "resize"
|
|
@ -0,0 +1,99 @@
|
||||||
|
[options]
|
||||||
|
#allow_bold = true
|
||||||
|
#audible_bell = false
|
||||||
|
#clickable_url = true
|
||||||
|
#dynamic_title = true
|
||||||
|
font=Fantasquesansmono 14
|
||||||
|
#fullscreen = true
|
||||||
|
#geometry = 640x480
|
||||||
|
#icon_name = terminal
|
||||||
|
#mouse_autohide = false
|
||||||
|
#scroll_on_output = false
|
||||||
|
#scroll_on_keystroke = true
|
||||||
|
# Length of the scrollback buffer, 0 disabled the scrollback buffer
|
||||||
|
# and setting it to a negative value means "infinite scrollback"
|
||||||
|
scrollback_lines = 10000
|
||||||
|
#search_wrap = true
|
||||||
|
#urgent_on_bell = true
|
||||||
|
#hyperlinks = false
|
||||||
|
|
||||||
|
# $BROWSER is used by default if set, with xdg-open as a fallback
|
||||||
|
#browser = xdg-open
|
||||||
|
|
||||||
|
# "system", "on" or "off"
|
||||||
|
#cursor_blink = system
|
||||||
|
|
||||||
|
# "block", "underline" or "ibeam"
|
||||||
|
#cursor_shape = block
|
||||||
|
|
||||||
|
# Hide links that are no longer valid in url select overlay mode
|
||||||
|
#filter_unmatched_urls = true
|
||||||
|
|
||||||
|
# Emit escape sequences for extra modified keys
|
||||||
|
#modify_other_keys = false
|
||||||
|
|
||||||
|
# set size hints for the window
|
||||||
|
#size_hints = true
|
||||||
|
#
|
||||||
|
[hints]
|
||||||
|
#font = Monospace 12
|
||||||
|
#foreground = #dcdccc
|
||||||
|
#background = #3f3f3f
|
||||||
|
#active_foreground = #e68080
|
||||||
|
#active_background = #3f3f3f
|
||||||
|
#padding = 10
|
||||||
|
#border = #3f3f3f
|
||||||
|
#border_width = 0.5
|
||||||
|
#roundness = 2.0
|
||||||
|
|
||||||
|
# vim: ft=dosini cms=#%s
|
||||||
|
|
||||||
|
[colors]
|
||||||
|
# Base16 Tomorrow Night
|
||||||
|
# Author: Chris Kempson (http://chriskempson.com)
|
||||||
|
|
||||||
|
foreground = #c5c8c6
|
||||||
|
foreground_bold = #e0e0e0
|
||||||
|
cursor = #e0e0e0
|
||||||
|
cursor_foreground = #1d1f21
|
||||||
|
background = rgb(29, 31, 33)
|
||||||
|
|
||||||
|
# 16 color space
|
||||||
|
|
||||||
|
# Black, Gray, Silver, White
|
||||||
|
color0 = #1d1f21
|
||||||
|
color8 = #969896
|
||||||
|
color7 = #c5c8c6
|
||||||
|
color15 = #ffffff
|
||||||
|
|
||||||
|
# Red
|
||||||
|
color1 = #cc6666
|
||||||
|
color9 = #cc6666
|
||||||
|
|
||||||
|
# Green
|
||||||
|
color2 = #b5bd68
|
||||||
|
color10 = #b5bd68
|
||||||
|
|
||||||
|
# Yellow
|
||||||
|
color3 = #f0c674
|
||||||
|
color11 = #f0c674
|
||||||
|
|
||||||
|
# Blue
|
||||||
|
color4 = #81a2be
|
||||||
|
color12 = #81a2be
|
||||||
|
|
||||||
|
# Purple
|
||||||
|
color5 = #b294bb
|
||||||
|
color13 = #b294bb
|
||||||
|
|
||||||
|
# Teal
|
||||||
|
color6 = #8abeb7
|
||||||
|
color14 = #8abeb7
|
||||||
|
|
||||||
|
# Extra colors
|
||||||
|
color16 = #de935f
|
||||||
|
color17 = #a3685a
|
||||||
|
color18 = #282a2e
|
||||||
|
color19 = #373b41
|
||||||
|
color20 = #b4b7b4
|
||||||
|
color21 = #e0e0e0
|
|
@ -0,0 +1,3 @@
|
||||||
|
unbind C-b
|
||||||
|
set -g prefix C-a
|
||||||
|
bind C-a send-prefix
|
|
@ -0,0 +1,23 @@
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* Base16 Tomorrow Night
|
||||||
|
* Author: Chris Kempson (http://chriskempson.com)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
@define-color base00 #1d1f21;
|
||||||
|
@define-color base01 #282a2e;
|
||||||
|
@define-color base02 #373b41;
|
||||||
|
@define-color base03 #969896;
|
||||||
|
@define-color base04 #b4b7b4;
|
||||||
|
@define-color base05 #c5c8c6;
|
||||||
|
@define-color base06 #e0e0e0;
|
||||||
|
@define-color base07 #ffffff;
|
||||||
|
@define-color base08 #cc6666;
|
||||||
|
@define-color base09 #de935f;
|
||||||
|
@define-color base0A #f0c674;
|
||||||
|
@define-color base0B #b5bd68;
|
||||||
|
@define-color base0C #8abeb7;
|
||||||
|
@define-color base0D #81a2be;
|
||||||
|
@define-color base0E #b294bb;
|
||||||
|
@define-color base0F #a3685a;
|
|
@ -0,0 +1,31 @@
|
||||||
|
{
|
||||||
|
// "layer": "top", // Waybar at top layer
|
||||||
|
"position": "bottom", // Waybar position (top|bottom|left|right)
|
||||||
|
"height": 30, // Waybar height (to be removed for auto height)
|
||||||
|
"modules-left":["custom/kill"],
|
||||||
|
"modules-center":["custom/hide","custom/show"],
|
||||||
|
"modules-right":["custom/toggle","custom/pass"],
|
||||||
|
"custom/kill": {
|
||||||
|
"on-click":"swaymsg kill",
|
||||||
|
"format": "[X]",
|
||||||
|
},
|
||||||
|
"custom/hide": {
|
||||||
|
"on-click":"~/.local/bin/hide-osk",
|
||||||
|
"format": "Hide",
|
||||||
|
},
|
||||||
|
"custom/show": {
|
||||||
|
"on-click":"~/.local/bin/show-osk",
|
||||||
|
"format": "Show",
|
||||||
|
},
|
||||||
|
"custom/toggle": {
|
||||||
|
"on-click":"~/.local/bin/osk-toggle",
|
||||||
|
"exec":"~/.local/bin/osk-status",
|
||||||
|
"exec-on-event":true,
|
||||||
|
"interval":"once",
|
||||||
|
"format": "OSK: {}",
|
||||||
|
},
|
||||||
|
"custom/pass": {
|
||||||
|
"on-click":"~/.local/bin/password-menu-wofi",
|
||||||
|
"format": "Passwords",
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,113 @@
|
||||||
|
{
|
||||||
|
// "layer": "top", // Waybar at top layer
|
||||||
|
// "position": "bottom", // Waybar position (top|bottom|left|right)
|
||||||
|
"height": 30, // Waybar height (to be removed for auto height)
|
||||||
|
// "width": 1280, // Waybar width
|
||||||
|
// Choose the order of the modules
|
||||||
|
"modules-left": ["sway/workspaces", "sway/mode"],
|
||||||
|
"modules-center": ["clock"],
|
||||||
|
"modules-right": ["pulseaudio", "backlight", "battery", "tray"],
|
||||||
|
// Modules configuration
|
||||||
|
// "sway/workspaces": {
|
||||||
|
// "disable-scroll": true,
|
||||||
|
// "all-outputs": true,
|
||||||
|
// "format": "{name}: {icon}",
|
||||||
|
// "format-icons": {
|
||||||
|
// "1": "",
|
||||||
|
// "2": "",
|
||||||
|
// "3": "",
|
||||||
|
// "4": "",
|
||||||
|
// "5": "",
|
||||||
|
// "urgent": "",
|
||||||
|
// "focused": "",
|
||||||
|
// "default": ""
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
"sway/mode": {
|
||||||
|
"format": "<span style=\"italic\">{}</span>"
|
||||||
|
},
|
||||||
|
"tray": {
|
||||||
|
// "icon-size": 21,
|
||||||
|
"spacing": 10
|
||||||
|
},
|
||||||
|
"clock": {
|
||||||
|
"timezone": "Europe/London",
|
||||||
|
"format": "{:%H:%M %Y-%m-%d}",
|
||||||
|
"on-click": "wofi --show run"
|
||||||
|
},
|
||||||
|
"cpu": {
|
||||||
|
"format": "{usage}%",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"memory": {
|
||||||
|
"format": "{}%"
|
||||||
|
},
|
||||||
|
"temperature": {
|
||||||
|
// "thermal-zone": 2,
|
||||||
|
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
|
||||||
|
"critical-threshold": 80,
|
||||||
|
// "format-critical": "{temperatureC}°C {icon}",
|
||||||
|
"format": "{temperatureC}°C {icon}",
|
||||||
|
"format-icons": ["", "", ""]
|
||||||
|
},
|
||||||
|
"backlight": {
|
||||||
|
// "device": "acpi_video1",
|
||||||
|
"format": "Backlight {percent}%",
|
||||||
|
"format-icons": ["", ""]
|
||||||
|
},
|
||||||
|
"battery": {
|
||||||
|
"states": {
|
||||||
|
// "good": 95,
|
||||||
|
"warning": 30,
|
||||||
|
"critical": 15
|
||||||
|
},
|
||||||
|
"format": "Discharging {capacity}%",
|
||||||
|
"format-charging": "Charging {capacity}%",
|
||||||
|
"format-plugged": "Battery {capacity}% ",
|
||||||
|
"format-alt": "{time} {icon}",
|
||||||
|
// "format-good": "", // An empty format will hide the module
|
||||||
|
// "format-full": "",
|
||||||
|
"format-icons": ["", "", "", "", ""]
|
||||||
|
},
|
||||||
|
"battery#bat2": {
|
||||||
|
"bat": "BAT2"
|
||||||
|
},
|
||||||
|
"network": {
|
||||||
|
"format-wifi": "{essid} ({signalStrength}%)",
|
||||||
|
"format-ethernet": "{ifname}: {ipaddr}/{cidr}",
|
||||||
|
"format-linked": "{ifname} (No IP)",
|
||||||
|
"format-disconnected": "Disconnected",
|
||||||
|
"format-alt": "{ifname}: {ipaddr}/{cidr}"
|
||||||
|
},
|
||||||
|
"pulseaudio": {
|
||||||
|
// "scroll-step": 1, // %, can be a float
|
||||||
|
"format": "{volume}% {icon} {format_source}",
|
||||||
|
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||||
|
"format-bluetooth-muted": " {icon} {format_source}",
|
||||||
|
"format-muted": " {format_source}",
|
||||||
|
"format-source": "{volume}% ",
|
||||||
|
"format-source-muted": "",
|
||||||
|
"format-icons": {
|
||||||
|
"headphone": "",
|
||||||
|
"hands-free": "",
|
||||||
|
"headset": "",
|
||||||
|
"phone": "",
|
||||||
|
"portable": "",
|
||||||
|
"car": "",
|
||||||
|
"default": ["", "", ""]
|
||||||
|
},
|
||||||
|
"on-click": "pavucontrol"
|
||||||
|
},
|
||||||
|
"custom/media": {
|
||||||
|
"format": "{icon} {}",
|
||||||
|
"return-type": "json",
|
||||||
|
"max-length": 40,
|
||||||
|
"format-icons": {
|
||||||
|
"spotify": "",
|
||||||
|
"default": "🎜"
|
||||||
|
},
|
||||||
|
"escape": true,
|
||||||
|
"exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
|
||||||
|
// "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,212 @@
|
||||||
|
@import "./base16-tomorrow-night.css";
|
||||||
|
|
||||||
|
* {
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
/* `otf-font-awesome` is required to be installed for icons */
|
||||||
|
font-family: Fantasque Sans Mono, Roboto, Helvetica, Arial, sans-serif;
|
||||||
|
font-size: 20px;
|
||||||
|
min-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background-color: @base00;
|
||||||
|
/* border-bottom: 3px solid rgba(100, 114, 125, 0.5); */
|
||||||
|
color: #ffffff;
|
||||||
|
transition-property: background-color;
|
||||||
|
transition-duration: .5s;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar.hidden {
|
||||||
|
opacity: 0.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
window#waybar.empty {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
window#waybar.solo {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
padding: 0 5px;
|
||||||
|
background-color: transparent;
|
||||||
|
color: #ffffff;
|
||||||
|
border-bottom: 3px solid transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
|
||||||
|
#workspaces button:hover {
|
||||||
|
background: @base00;
|
||||||
|
box-shadow: inherit;
|
||||||
|
text-shadow: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.focused {
|
||||||
|
background-color: @base02;
|
||||||
|
border-bottom: 3px solid #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.urgent {
|
||||||
|
background-color: @base02;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mode {
|
||||||
|
background-color: @base08;
|
||||||
|
border-bottom: 3px solid #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock,
|
||||||
|
#battery,
|
||||||
|
#cpu,
|
||||||
|
#memory,
|
||||||
|
#temperature,
|
||||||
|
#backlight,
|
||||||
|
#network,
|
||||||
|
#pulseaudio,
|
||||||
|
#custom-media,
|
||||||
|
#custom-show,
|
||||||
|
#custom-hide,
|
||||||
|
#custom-kill,
|
||||||
|
#custom-pass,
|
||||||
|
#custom-toggle,
|
||||||
|
#tray,
|
||||||
|
#mode,
|
||||||
|
#idle_inhibitor,
|
||||||
|
#mpd {
|
||||||
|
padding: 0 10px;
|
||||||
|
margin: 0 4px;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
background-color: @base01;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery {
|
||||||
|
background-color: @base0C;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.charging {
|
||||||
|
color: #ffffff;
|
||||||
|
background-color: @base0B;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes blink {
|
||||||
|
to {
|
||||||
|
background-color: #ffffff;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.critical:not(.charging) {
|
||||||
|
background-color: @base08;
|
||||||
|
color: #ffffff;
|
||||||
|
animation-name: blink;
|
||||||
|
animation-duration: 0.5s;
|
||||||
|
animation-timing-function: linear;
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
animation-direction: alternate;
|
||||||
|
}
|
||||||
|
|
||||||
|
label:focus {
|
||||||
|
background-color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#cpu {
|
||||||
|
background-color: #2ecc71;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#memory {
|
||||||
|
background-color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
#backlight {
|
||||||
|
background-color: @base03;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network {
|
||||||
|
background-color: @base0D;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network.disconnected {
|
||||||
|
background-color: @base08;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-kill {
|
||||||
|
background-color:@base08;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-pass {
|
||||||
|
background-color:@base0C;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-toggle {
|
||||||
|
background-color:@base0A;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#pulseaudio {
|
||||||
|
background-color: @base0C;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio.muted {
|
||||||
|
background-color: #90b1b1;
|
||||||
|
color: #2a5c45;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media {
|
||||||
|
background-color: #66cc99;
|
||||||
|
color: #2a5c45;
|
||||||
|
min-width: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media.custom-spotify {
|
||||||
|
background-color: #66cc99;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media.custom-vlc {
|
||||||
|
background-color: #ffa000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature {
|
||||||
|
background-color: #f0932b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature.critical {
|
||||||
|
background-color: #eb4d4b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray {
|
||||||
|
background-color: @base00
|
||||||
|
}
|
||||||
|
|
||||||
|
#idle_inhibitor {
|
||||||
|
background-color: #2d3436;
|
||||||
|
}
|
||||||
|
|
||||||
|
#idle_inhibitor.activated {
|
||||||
|
background-color: #ecf0f1;
|
||||||
|
color: #2d3436;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd {
|
||||||
|
background-color: #66cc99;
|
||||||
|
color: #2a5c45;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd.disconnected {
|
||||||
|
background-color: #f53c3c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd.stopped {
|
||||||
|
background-color: #90b1b1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd.paused {
|
||||||
|
background-color: #51a37a;
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
location=top
|
||||||
|
width=100%
|
||||||
|
columns=1
|
|
@ -0,0 +1,13 @@
|
||||||
|
window {
|
||||||
|
background-color: #1d1f21;
|
||||||
|
font-family: "Fantasque Sans Mono";
|
||||||
|
font-size: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
input, entry {
|
||||||
|
background-color: #1d1f21;
|
||||||
|
}
|
||||||
|
|
||||||
|
#entry:selected {
|
||||||
|
background-color: #8abeb7;
|
||||||
|
}
|
|
@ -0,0 +1,45 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
userresources=$HOME/.Xresources
|
||||||
|
usermodmap=$HOME/.Xmodmap
|
||||||
|
sysresources=/etc/X11/xinit/.Xresources
|
||||||
|
sysmodmap=/etc/X11/xinit/.Xmodmap
|
||||||
|
|
||||||
|
# merge in defaults and keymaps
|
||||||
|
|
||||||
|
if [ -f $sysresources ]; then
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
xrdb -merge $sysresources
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f $sysmodmap ]; then
|
||||||
|
xmodmap $sysmodmap
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "$userresources" ]; then
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
xrdb -merge "$userresources"
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "$usermodmap" ]; then
|
||||||
|
xmodmap "$usermodmap"
|
||||||
|
fi
|
||||||
|
|
||||||
|
nvidia-settings --load-config-only
|
||||||
|
/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
|
||||||
|
~/.screenlayout/layout.sh
|
||||||
|
exec i3
|
|
@ -0,0 +1,18 @@
|
||||||
|
source /usr/share/zsh/share/antigen.zsh
|
||||||
|
source ~/.device.zsh
|
||||||
|
|
||||||
|
antigen bundle zsh-users/zsh-syntax-highlighting
|
||||||
|
|
||||||
|
#aliases
|
||||||
|
alias v=nvim
|
||||||
|
alias vw="nvim +VimwikiIndex +'lcd ~/vimwiki'"
|
||||||
|
alias sw="nvim ~/vimwiki/schoolwork/index.wiki +'lcd ~/vimwiki/schoolwork'"
|
||||||
|
alias ws="nvim +'VimwikiIndex 2' +'lcd ~/website/wiki/vimwiki'"
|
||||||
|
export EDITOR=nvim
|
||||||
|
export VISUAL=nvim
|
||||||
|
export VITASDK=~/.local/vitasdk
|
||||||
|
export LEDGER_FILE=~/hledger/personal.journal
|
||||||
|
export PATH=$HOME/.luarocks/bin:$HOME/bin:/usr/local/bin:$HOME/.cargo/bin:$HOME/.local/bin:$VITASDK/bin:$HOME/tools/rockbox/bin:$PATH:$HOME/projects/go/bin
|
||||||
|
export GOPATH=$HOME/projects/go
|
||||||
|
|
||||||
|
antigen apply
|
Reference in New Issue